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