1 |
On Thu, Nov 13, 2014 at 9:38 PM, Michael Palimaka <kensington@g.o> wrote: |
2 |
> On 14/11/14 11:06, Rich Freeman wrote: |
3 |
>> |
4 |
>> Well, the idea would be to maintain the virtual INSTEAD of @system, or |
5 |
>> have @system just pull in the virtual and make some arch-specific |
6 |
>> additions. |
7 |
> |
8 |
> Will that work? Some profiles remove packages from the base @system and |
9 |
> replace it with their own implementations (eg. BSD). |
10 |
|
11 |
Maybe. The thing is that a package either depends on something or it |
12 |
doesn't. If it really does depend on something, then the fact that it |
13 |
isn't available on BSD/etc isn't going to magically make the package |
14 |
work. We just loosely define system dependencies in a way that makes |
15 |
them work 98% of the time, basically accepting that things are going |
16 |
to break and we get away with it because few of our users actually run |
17 |
on BSD/etc. |
18 |
|
19 |
If it is just a matter of preference then a profile could install an |
20 |
alternative package that is in a virtual. However, this won't work if |
21 |
everybody still uses some convenience virtual that pulls in bash/etc |
22 |
and the BSD folks don't want to install bash unnecessarily. |
23 |
|
24 |
The only perfect solution is explicit dependencies across the board. |
25 |
If we want to be lazy and not have to list 50 deps for hello world, |
26 |
then the package manager isn't going to know whether hello world |
27 |
actually works on every arch/profile/etc. |
28 |
|
29 |
Maybe the better solution is some kind of automation around (R)DEPEND. |
30 |
In any case, I agree that it is a bit beyond the original scope of |
31 |
this. |
32 |
|
33 |
> Maybe some dependencies (within reason) should always be listed, for |
34 |
> example when there's linkage eg. to libbzip2 or liblzma. That would make |
35 |
> it easy to find consumers eg. if an alternate implementation appeared, |
36 |
> and already appears to be a common practice. |
37 |
|
38 |
The problem is that if it isn't 100% then it isn't all that great a |
39 |
solution. It also isn't really necessary unless you want to remove a |
40 |
package from the system set. If an alternative implementation |
41 |
appears, then you create a virtual, place that virtual in the system |
42 |
set, and all the packages in the tree remain happy to use whatever |
43 |
implementation the user has installed without the risk of it getting |
44 |
depcleaned. |
45 |
|
46 |
In the past when we've considered removing a package from @system |
47 |
there is usually a thread on -dev, and if there is a general sense |
48 |
that we want to move forward then the announcement goes out for |
49 |
everybody to check their packages and add an explicit dependency if |
50 |
needed (often with tinderbox runs and the like). Then after a delay |
51 |
the package is removed from @system and maintainers get to deal with |
52 |
anything they missed. |
53 |
|
54 |
I don't have a problem with devs listing dependencies anytime they're |
55 |
real and they feel it makes sense to do so. I wouldn't make a push to |
56 |
have them go out of their way to do it for any particular package |
57 |
unless we are actively looking to remove it from @system, or there is |
58 |
some other driver. Slot operator deps would be the one case where I |
59 |
would try to push on maintainers to list deps. |
60 |
|
61 |
And I do apologize for piling on a bit - trying to get rid of @system |
62 |
has been one of my soap box issues for a while. It really seems like |
63 |
an ugly, if practical, solution. |
64 |
|
65 |
-- |
66 |
Rich |