Hello,

As we've discussed multiple times, the following kind of dependencies
is completely broken and can't work:

  || ( media-libs/libav:= media-libs/ffmpeg:= )

For this reason, I would like to employ the solution used by Exherbo.
More specifically, use:

  libav? ( media-libs/libav:= )
  !libav? ( media-libs/ffmpeg:= )

This has two advantages:

1. gives users more explicit control over whether they want to use
libav or ffmpeg. Since the two have mutual blockers, right now random
packages could have tried to force you to switch from one to the other.
However, most often Portage would just give you terribly unreadable
blockers.

2. Subslots work correctly. Rebuilds are forced when the chosen library
is upgraded. Moreover, USE flag change causes a rebuild when user
decides to change the ffmpeg provider.

The new USE flag descriptions would be:

  ffmpeg - Enable ffmpeg- or libav-based audio/video codec support
  libav - Prefer libav over ffmpeg

This implies that USE=ffmpeg is only present if ffmpeg/libav support is
optional while USE=libav is present to provide the choice between
ffmpeg and libav. While this isn't the most clear solution, it provides
backwards compatibility with the current use of USE=ffmpeg.

Any comments?

--
Best regards,
Michał Górny

Reply via email to