Gentoo Archives: gentoo-dev

From: Daniel Campbell <zlg@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Auto adding packages to world was -> Sets vs Meta ebuilds
Date: Tue, 11 Jul 2017 21:32:40
Message-Id: c88c7f54-5a1c-b768-5f8e-0b781519fd74@gentoo.org
In Reply to: Re: [gentoo-dev] Auto adding packages to world was -> Sets vs Meta ebuilds by "William L. Thomson Jr."
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

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies

Subject Author
Re: [gentoo-dev] Auto adding packages to world was -> Sets vs Meta ebuilds "William L. Thomson Jr." <wlt-ml@××××××.com>