1 |
On 07/11/2017 01:57 PM, William L. Thomson Jr. wrote: |
2 |
> On Tue, 11 Jul 2017 13:27:57 -0700 |
3 |
> Daniel Campbell <zlg@g.o> wrote: |
4 |
> |
5 |
>> On 07/10/2017 04:37 PM, William L. Thomson Jr. wrote: |
6 |
>>> On Mon, 10 Jul 2017 19:22:47 -0400 |
7 |
>> |
8 |
>>> A rule for portage could be; |
9 |
>>> |
10 |
>>> - If the package is not in world and already installed. Do not add |
11 |
>>> the package to world. If you are re-emerging a package already |
12 |
>>> installed. You do not have to use the -1 option. |
13 |
>>> |
14 |
>>> I have polluted so many world files with system packages and/or |
15 |
>>> dependencies I re-emerged directly without -1. Those IMHO should |
16 |
>>> never have been recorded to that file. They were brought in by |
17 |
>>> other things. Only things in my world should be packages merged |
18 |
>>> directly, not from profile, set, or a dep. |
19 |
> |
20 |
>> Portage's fault. If you don't want a package added to a set or world, |
21 |
>> you'll need to use the -1 (--oneshot) option. |
22 |
> |
23 |
> Did you even read above? I clearly state WITHOUT -1 option.... |
24 |
> |
25 |
>> I added it to my default |
26 |
>> emerge options in make.conf for exactly that reason (clean world); |
27 |
> |
28 |
> The point is people should not have to do such. Or remember to always |
29 |
> use -1 when re-emerging a dep, system, world, or set package. |
30 |
> |
31 |
>> though, I have to be careful and make sure packages I care about are |
32 |
>> in a set somewhere or --depclean will wipe'em out. In short, Portage |
33 |
>> won't stop you from shooting yourself in the foot. |
34 |
> |
35 |
> If those package are in your world file portage will not remove on |
36 |
> depclean. |
37 |
> |
38 |
>> If you decide you want to add a package to world without re-merging |
39 |
>> it, -n (--noreplace) will do the job. |
40 |
> |
41 |
> Or you can add it to the world file, or your profile/packages |
42 |
> in /etc/portage, etc. There are other places, one does not have to |
43 |
> emerge every package then want in world. Just the same it should not |
44 |
> add stuff just the same from system, world, sets, or deps of any of |
45 |
> those 3. |
46 |
> |
47 |
>> That said, having helpful messages is a good addition, but needs to be |
48 |
>> done in a way that is unambiguous and gives the user a clear solution. |
49 |
> |
50 |
> So now it must be clear to the user? That is the entire point I am |
51 |
> making. The output now is not clear... But in improving such now there |
52 |
> is concern over something no one cares about now.... Funny stuff!!! |
53 |
> |
54 |
|
55 |
I understand where you're coming from, I just thought to give a few tips |
56 |
to make life a bit easier for you since it works out pretty well for |
57 |
myself. I think your idea has merit, just unsure of where the |
58 |
functionality goes, since I'm not a Portage developer. |
59 |
|
60 |
I think the hard part of implementing this will be detecting whether a |
61 |
command-line-given package is (a) in a set/profile/world and (b) part of |
62 |
a dependency tree (i.e. shouldn't be removed). |
63 |
|
64 |
-c already traverses the dependency tree. This one message may mean |
65 |
iterating through the list of candidate packages and comparing them |
66 |
against a set/profile/world *per package*, unless the vdb/cache makes |
67 |
this lookup cheap in terms of cycles. The message would be helpful, |
68 |
though again, eix-test-obsolete might be the right tool to build that |
69 |
feature into. I'd be interested in following the bug discussion, if |
70 |
you've already filed it. |
71 |
|
72 |
If you're really interested in the message from -C, it could be done by |
73 |
checking the argument list for packages in sets or profiles. But it's |
74 |
going to incur similar overhead that -c has because it necessarily has |
75 |
to check some sort of list before producing the message. |
76 |
|
77 |
I do not think this message belongs in -C output, however; -C is |
78 |
intentionally meant for operations where you don't care what happens to |
79 |
the dependency tree. Sometimes that's good (resolving a blocker the hard |
80 |
way), sometimes it's bad (removing gcc on a whim). Warnings won't stop a |
81 |
user doing that, because --unmerge is already documented with the |
82 |
caveat. There must be a certain point where we as developers have to say |
83 |
"You're on your own," or there will be so many rails and training wheels |
84 |
that it loses value for the more experienced users, or a bunch of bugs |
85 |
filed over failing to heed documentation, i.e. PEBKAC. I think -C is a |
86 |
great place to draw that line. |
87 |
|
88 |
The best way to get the ball rolling is file a feature request against |
89 |
Portage and see what 'upstream' has to say. In the meantime, maybe try |
90 |
your hand at hacking it. I've found people are a lot more receptive to |
91 |
suggestions when you've already attempted to provide it. Even if the |
92 |
solution is crap, people seem willing to help those who have the |
93 |
gumption to help themselves. |
94 |
|
95 |
Please don't interpret this e-mail as aggressive or dismissive. I'm |
96 |
simply trying to offer explanation and guidance to help you make this |
97 |
happen. It's clear that you care about it, so I'm sure there's a way for |
98 |
this to go forward. |
99 |
-- |
100 |
Daniel Campbell - Gentoo Developer |
101 |
OpenPGP Key: 0x1EA055D6 @ hkp://keys.gnupg.net |
102 |
fpr: AE03 9064 AE00 053C 270C 1DE4 6F7A 9091 1EA0 55D6 |