[MacPorts] #50703: ffmpeg port modifications to enable splitting off legacy port versions with minimal effort
MacPorts
noreply at macports.org
Tue Feb 23 10:46:44 PST 2016
#50703: ffmpeg port modifications to enable splitting off legacy port versions with
minimal effort
-------------------------+--------------------------------
Reporter: rjvbertin@… | Owner: macports-tickets@…
Type: enhancement | Status: new
Priority: Normal | Milestone:
Component: ports | Version:
Keywords: has_patch | Port: ffmpeg
-------------------------+--------------------------------
As announced elsewhere, I've implemented a proof of concept set of changes
to the current (2.8.6) FFMpeg port so that it becomes trivial to support a
legacy version installed in parallel to a current version. This would make
it possible to keep the main `port:ffmpeg` at the latest/current release
even if because of ABI changes certain dependent ports still require an
older version.
The principle is simple: use FFMpeg's configure options to build the
binaries and libraries using an appropriate suffix (tentatively called
`compat_version` in my draft) and accompanying options to ensure that
items under ${prefix}/include and ${prefix}/share do not cause version
conflicts.
If the port is not configured in legacy mode, symlinks are used to make
the relevant items available where they would be in a simple installation.
Legacy mode is currently implemented as an inactive
`port:ffmpeg-${compat_version}` subport, which means that dependents can
request that compat_version explicitly.
Thus:
- dependents will find the main ffmpeg port and files as usual
- dependents that need to use a legacy version only need to be patched so
that they request the suffixed pkgconfig files (ports not using pkgconfig
for this will take a bit more work)
- currently installed dependents will continue to work thanks to the
symlinks to (only) the runtime shared libraries (`libfoo.N.dylib`). This
is a personal preference of mine; those symlinks could of course also be
omitted in legacy mode too.
Note that these modifications can be applied only to the v2.8.6 ffmpeg
port; it should be able to co-exist peacefully with a v3.0.0 ffmpeg port
built normally. I'd advise building all ffmpeg ports like this in the
future though, if the possibility to keep a legacy version around is
judged important enough.
--
Ticket URL: <https://trac.macports.org/ticket/50703>
MacPorts <https://www.macports.org/>
Ports system for OS X
More information about the macports-tickets
mailing list