1 |
Hello, |
2 |
|
3 |
As we've discussed multiple times, the following kind of dependencies |
4 |
is completely broken and can't work: |
5 |
|
6 |
|| ( media-libs/libav:= media-libs/ffmpeg:= ) |
7 |
|
8 |
For this reason, I would like to employ the solution used by Exherbo. |
9 |
More specifically, use: |
10 |
|
11 |
libav? ( media-libs/libav:= ) |
12 |
!libav? ( media-libs/ffmpeg:= ) |
13 |
|
14 |
This has two advantages: |
15 |
|
16 |
1. gives users more explicit control over whether they want to use |
17 |
libav or ffmpeg. Since the two have mutual blockers, right now random |
18 |
packages could have tried to force you to switch from one to the other. |
19 |
However, most often Portage would just give you terribly unreadable |
20 |
blockers. |
21 |
|
22 |
2. Subslots work correctly. Rebuilds are forced when the chosen library |
23 |
is upgraded. Moreover, USE flag change causes a rebuild when user |
24 |
decides to change the ffmpeg provider. |
25 |
|
26 |
The new USE flag descriptions would be: |
27 |
|
28 |
ffmpeg - Enable ffmpeg- or libav-based audio/video codec support |
29 |
libav - Prefer libav over ffmpeg |
30 |
|
31 |
This implies that USE=ffmpeg is only present if ffmpeg/libav support is |
32 |
optional while USE=libav is present to provide the choice between |
33 |
ffmpeg and libav. While this isn't the most clear solution, it provides |
34 |
backwards compatibility with the current use of USE=ffmpeg. |
35 |
|
36 |
Any comments? |
37 |
|
38 |
-- |
39 |
Best regards, |
40 |
Michał Górny |