Gentoo Archives: gentoo-dev

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Re: Stable sys-devel/gcc USE flag changes
Date: Thu, 17 Jan 2013 23:56:30
Message-Id: pan.2013.01.17.23.55.58@cox.net
In Reply to: Re: [gentoo-dev] Stable sys-devel/gcc USE flag changes by Michael Orlitzky
1 Michael Orlitzky posted on Thu, 17 Jan 2013 11:31:53 -0500 as excerpted:
2
3 > In either case, to keep your world file accurate, you have to remember
4 > to type an additional useless parameter every time you run the command.
5 > When you're running depclean, you have to cross your fingers and hope
6 > nobody forgot the magic --dont-break-world parameter.
7 >
8 > I've "solved" this by installing every single package as a dependency
9 > of something in our company repo. So we emerge
10 > dev-util/mike_wants_to_be_able_to_run_strace_on_apache (depending on
11 > strace) instead of dev-util/strace. This makes it obvious what can be
12 > removed; we don't have normal packages listed in the world file, so if
13 > you see one, it was a mistake.
14
15 Different (and IMO nicer, but it requires portage sets support) solution
16 here, same problem.
17
18 Two part solution:
19
20 1) For years, I've had a set of aliases to emerge, most of which add -1,
21 so I don't have to worry about world-file pollution. The aliases break
22 down into two sets, ea* and ep*, emerge --ask and emerge --pretend.
23
24 Examples:
25
26 eaw emerge --ask @world (--update --deep --newuse are there too, and
27 --jobs, etc, --with-bdeps=y is in my emerge defaults)
28
29 epw same thing basically, but --pretend instead of --ask.
30
31 eptw emerge --pretend --tree @world
32
33 ea emerge -av1 $*
34
35 epl emerge -pvlO $* (see the changelog for an upgrade before I do it)
36
37 Significant to this discussion:
38
39 ea2 emerge -av --select $* (the 2 being shorthand for NOT oneshot)
40
41 (I have tab-completion stubs built on the normal emerge completions, too,
42 so get full tab-completion on my short forms. =:^)
43
44
45 I don't even /use/ the long forms any longer, except for copying to bugs,
46 etc, only my short forms. So no weird stuff in @world, as I have -1 on
47 my short forms by default, and specifically use the e*2 forms when I WANT
48 it in world. As I said, I've been doing this for years now.
49
50 2) Portage sets support made things even better. They first appeared
51 shortly before I setup my netbook, and in the process of going thru my
52 existing world file to figure out what I wanted on the netbook, I simply
53 split the world file into a bunch of categorized sets, beginning with the
54 kde sets, which I manage in parallel to the ones found in the kde overlay
55 (but with some package entries commented out), but extended to dev,
56 net.admin, net.user, etc.
57
58 Now my world-file is normally empty, with all packages that would
59 normally be in world listed in a set instead, with the sets in turn
60 listed in the world_sets file.
61
62 So there's only two conditions under which a package would be listed in
63 the world file instead of in a set to be found in world_sets:
64
65 2a) I sometimes use the world file as a "package purgatory", for packages
66 I'm testing so I don't want them removed by depclean, but I've not yet
67 decided to keep, so I don't want them in my normal sets, either. The
68 world file is thus a very convenient middle ground. =:^)
69
70 2b) I somehow made a mistake, and something ended up in world that
71 shouldn't have. (Due to my longstanding alias usage, this case has so
72 far been entirely theoretical; I've not made that mistake since the
73 introduction of sets... yet. But I'm glad the protection's there, in
74 case I do. =:^)
75
76 --
77 Duncan - List replies preferred. No HTML msgs.
78 "Every nonfree program has a lord, a master --
79 and if you use the program, he is your master." Richard Stallman