ffmpeg/libav conflict management: USE=libav

Title: ffmpeg/libav conflict management: USE=libav
Author: Michał Górny <mgorny@gentoo.org>
Content-Type: text/plain
Posted: 2015-02-01
Revision: 2
News-Item-Format: 1.0
Display-If-Installed: media-video/ffmpeg
Display-If-Installed: media-video/libav

The support for automatic choice between ffmpeg and libav is going to be
deprecated in favor of explicit choice via USE flags. This change aims
to solve multiple repeating issues, including Portage undesirably
wanting to replace one package with the other, lack of proper reverse
dependency on ffmpeg/libav upgrades and some of the hard-to-understand
upgrade failures involving blockers. It also may be used to make ffmpeg
and libav co-installable in the future.

The current USE=ffmpeg will maintain its role of enabling optional
support for ffmpeg or a compatible implementation (libav) in a package.
However, whenever appropriate additional USE=libav will be introduced to
control the preference of one implementation over the other.

Users who currently use libav need to enable USE=libav in
/etc/portage/make.conf. It should be noted that users still need to
enable USE=ffmpeg on packages with optional libav support as well.
Users who currently use ffmpeg need to take no action.

Please also note that some packages support only one of the two
implementations. An attempt to install one of those packages may result
in blockers requiring the user changes the global USE=libav state.

Please do not alter the state of 'libav' flag on a per-package basis
(e.g. via package.use). The flag needs to be set globally to have
consistent value throughout all packages. Otherwise, blockers will
prevent upgrades.