[79909] trunk/dports/multimedia/ffmpeg-devel

Ryan Schmidt ryandesign at macports.org
Wed Jun 29 02:01:28 PDT 2011


On Jun 29, 2011, at 02:45, jeremyhu at macports.org wrote:

> Revision: 79909
>          http://trac.macports.org/changeset/79909
> Author:   jeremyhu at macports.org
> 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?





More information about the macports-dev mailing list