On Jun 29, 2011, at 02:45, [email protected] wrote:

> Revision: 79909
>          http://trac.macports.org/changeset/79909
> Author:   [email protected]
> Date:     2011-06-29 00:45:36 -0700 (Wed, 29 Jun 2011)
> Log Message:
> -----------
> ffmpeg-devel: Update to current ffmpeg git, clang build fixes
> 
> Modified Paths:
> --------------
>    trunk/dports/multimedia/ffmpeg-devel/Portfile


> pre-fetch {
> -    if {[file isdirectory ${distpath}/${svn_rev}]} {
> -        if {![file isdirectory ${distpath}/${svn_rev}/trunk/.svn] || ![file 
> exists ${distpath}/${svn_rev}/trunk/.complete]} {
> -             file delete -force ${distpath}/${svn_rev}
> +    if {[file isdirectory ${distpath}/${rev}]} {
> +        if {![file exists ${distpath}/${rev}/.complete]} {
> +             file delete -force ${distpath}/${rev}
>         }
>     }
> }
> 
> fetch {
> -    if {![file isdirectory ${distpath}/${svn_rev}]} {
> -        file mkdir ${distpath}/${svn_rev}
> -        system "svn co --ignore-externals 
> svn://svn.ffmpeg.org/ffmpeg/trunk@${svn_rev} ${distpath}/${svn_rev}/trunk"
> -        system "svn co 
> svn://svn.ffmpeg.org/mplayer/trunk/libswscale@${swscale_rev} 
> ${distpath}/${svn_rev}/trunk/libswscale"
> -        system "touch ${distpath}/${svn_rev}/trunk/.complete"
> +    if {![file isdirectory ${distpath}/${rev}]} {
> +        file mkdir ${distpath}/${rev}/ffmpeg
> +        system "git clone --depth 1000 git://git.videolan.org/ffmpeg.git 
> ${distpath}/${rev}/ffmpeg"
> +        system "cd ${distpath}/${rev}/ffmpeg && git checkout -f ${rev}"
> +        system "touch ${distpath}/${rev}/.complete"
>     }
> }
> 
> @@ -96,11 +95,9 @@
> minimum_xcodeversions {9 3.1}
> 
> extract {
> -    file copy ${distpath}/${svn_rev}/trunk ${worksrcpath}
> +    file copy ${distpath}/${rev}/ffmpeg ${worksrcpath}
> }

All this fetching strangeness was only needed before because ffmpeg-devel 
fetched from Subversion, and this repository used Subversion externals (in 
particular for libswscale), and those externals were not pegged to a specific 
revision, meaning that even if we asked for revision X of ffmpeg, we would 
always get revision HEAD of swscale, not the revision of swscale that had been 
current as of revision X of ffmpeg, and this frequently caused breakage as 
libswscale's HEAD advanced in ways which were incompatible with old versions of 
ffmpeg.

Now that git is being used instead of svn, is any of this special code still 
necessary? Or can the port simplify to using the normal "fetch.type git" 
mechanism? I am not familiar with git; how is libswscale now being handled in 
this git repository?



_______________________________________________
macports-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Reply via email to