1 |
Dnia 2014-03-28, o godz. 19:53:07 |
2 |
Rich Freeman <rich0@g.o> napisał(a): |
3 |
|
4 |
> On Fri, Mar 28, 2014 at 5:48 PM, Rick "Zero_Chaos" Farina |
5 |
> <zerochaos@g.o> wrote: |
6 |
> > All in all, this isn't a bad idea on the surface, but the first |
7 |
> > arguement shows immediately when this is scaled up. How many other |
8 |
> > packages have multiple libs with different sonames? Off hand, I can |
9 |
> > think of poplar, but I'm sure there must be more. Is it really |
10 |
> > scalable, desirable, or sane, to break each package on the system into |
11 |
> > multiple different virtuals like this? |
12 |
> |
13 |
> Clever idea, actually, though I'd be interested in whether anybody |
14 |
> else can think of any unintended consequences. |
15 |
> |
16 |
> I agree that there could end up being many cases of this, but that |
17 |
> really just amounts to clutter, and more granular dependencies (which |
18 |
> also make me think that a next step could actually be packages that |
19 |
> only install the necessary libraries, and somehow controlling this by |
20 |
> dependencies rather than USE flags which are a bit more cumbersome). |
21 |
|
22 |
This is the other side of this. People already requested libudev |
23 |
without whole udev, and this is a way of allowing it in the future. |
24 |
|
25 |
> There really isn't anything special about virtual packages other than |
26 |
> the fact that they don't install anything. I wonder if it would make |
27 |
> sense to actually create a new category for virtuals that only exist |
28 |
> to express library dependencies. Functionally it would be no |
29 |
> different, but it would split up the namespace so that we don't have |
30 |
> an additional 193 packages in the virtual category. Plus, when |
31 |
> looking at ebuilds it will be a bit more clear what each dependency is |
32 |
> actually pulling in. |
33 |
|
34 |
I have already suggested separate category for perl virtuals but been |
35 |
quieted down at the time. I doubt people really want another category |
36 |
for virtuals since some of their poor tools rely on 'virtual/'. |
37 |
|
38 |
> One thing you didn't mention in your email is the interaction with |
39 |
> conventional virtuals. The dep string for libudev reads: |
40 |
> RDEPEND=" |
41 |
> || ( |
42 |
> >=sys-fs/udev-208:0/0[${MULTILIB_USEDEP},static-libs?] |
43 |
> >=sys-apps/systemd-208:0/2[${MULTILIB_USEDEP},static-libs(-)?] |
44 |
> >=sys-apps/systemd-208:0/1[${MULTILIB_USEDEP},static-libs(-)?] |
45 |
> >=sys-apps/systemd-208:0/0[${MULTILIB_USEDEP},static-libs(-)?] |
46 |
> >=sys-fs/eudev-1.3:0/0[${MULTILIB_USEDEP},static-libs?] |
47 |
> )" |
48 |
> |
49 |
> What happens if eudev-209 and udev-209 don't bundle the sane SONAME |
50 |
> for libudev, and thus need different subslots? The virtual libudev is |
51 |
> versioned 208. |
52 |
|
53 |
There's an exact subslot dep in there (:M/N). If either of them changes |
54 |
SONAME of any of the libraries, the provider subslot is bumped |
55 |
and the virtual no longer matches it. |
56 |
|
57 |
The systemd deps are a good example of that. The subslots 0, 1 and 2 |
58 |
correspond to changes in libsystemd.so. Now, if any of SONAMES |
59 |
in systemd change, it will have subslot 3 and the virtual will no |
60 |
longer match. If it's libudev or libgudev changing, we'd introduce |
61 |
a new version (subslot) of the virtual; otherwise, a new revision with |
62 |
systemd:0/3 added. |
63 |
|
64 |
In fact, the versions are not even really necessary there. |
65 |
|
66 |
-- |
67 |
Best regards, |
68 |
Michał Górny |