1 |
Mark Knecht <markknecht@×××××.com> posted |
2 |
5bdc1c8b0906101803i48368ddsfff153f61a0dcb96@××××××××××.com, excerpted |
3 |
below, on Wed, 10 Jun 2009 18:03:26 -0700: |
4 |
|
5 |
> On Wed, Jun 10, 2009 at 5:55 PM, Duncan<1i5t5.duncan@×××.net> wrote: |
6 |
|
7 |
[make.conf file consisting entirely of source <subfile> lines] |
8 |
>> |
9 |
>> WORKSFORME ! =:^) |
10 |
> |
11 |
> My, my. that's the first time I've heard of someone doing that! |
12 |
> |
13 |
> As always Duncan, you are an interesting guy! :-) |
14 |
|
15 |
I remember when I first saw someone (perhaps Zac himself) mention that |
16 |
"source" was a valid make.conf directive. I could hardly wait to try it! |
17 |
=:^) |
18 |
|
19 |
Two observations. First, as with a reasonable amount of what I post, I |
20 |
don't expect most folks to find my particular solution all that useful |
21 |
for them, tho they're certainly free to use it if they do (and chances |
22 |
are at least fair that part of it's useful to someone, somewhere). It's |
23 |
a solution particularly crafted to be useful to me, not someone else, |
24 |
and I'm old enough to realize the world doesn't revolve around me, nor |
25 |
would I even /want/ everyone to be like me. I appreciate being unique |
26 |
and if everyone were like me, I'd just have to find some other way to be! |
27 |
=:^) |
28 |
|
29 |
So the reason I post such stuff isn't so everyone else can do it too, but |
30 |
to encourage people to realized just how flexible Gentoo is, to "Think |
31 |
Outside the Bun" to use an ad phrase (anyone remember "Forget Typical! |
32 |
Say goodbye to the usual", I had that one up as a personal motto, for |
33 |
awhile! =:^). If what I post encourages them to create a solution unique |
34 |
to their installation that works as well for them, that they wouldn't |
35 |
have come up with or that would have taken them longer to realize, |
36 |
without my prodding, then I've done a good thing. =:^) |
37 |
|
38 |
Second, this sort of thing really /does/ help one appreciate just how |
39 |
open and customizable Gentoo really is, all while staying within the |
40 |
general framework created to help people continue to manage their |
41 |
systems, not just now, but thru more or less constant updating, into the |
42 |
future. |
43 |
|
44 |
Back in 2002-ish, I was on Mandrake. Know how I learned bash? I took |
45 |
apart their boot scripts, modularizing their hurkin' big primary rc |
46 |
script into several much smaller components, each of which managed its |
47 |
one thing (much as I did with make.conf, above). It was certainly |
48 |
effective at helping me learn real-world bash scripting, not just |
49 |
textbook stuff, but how it was actually used in the real-world to boot a |
50 |
system. On the way, it sure helped me appreciate Linux, as opposed to MS |
51 |
Windows where most of the boot sequence is "magic", hidden behind some |
52 |
proprietary curtain, with, pretty much, only a yes/no on whether |
53 |
individual components will load by whether you list them in the registry |
54 |
or not. Thus it was wonderful to actually find that stuff exposed where |
55 |
a "mere sysadmin level user", even a beginning one, could hack on it. |
56 |
(BTW, that's something that's a bit distressing about Baselayout-2/ |
57 |
OpenRC, it hides a bit of this behind C code. But it's faster and as it |
58 |
turns out, most of the good stuff is exposed in bash code after all, so |
59 |
it's not actually that bad.) |
60 |
|
61 |
But you know what happened when I upgraded? Right, all my hard work |
62 |
disappeared down the drain, as the new monster rc script replaced my |
63 |
carefully componentized one. What's worse, individual changes and |
64 |
updates they made weren't exposed in the changelog, and the big hurkin' |
65 |
script was just too big and hurkin' to efficiently parse for individual |
66 |
changes on my own (I didn't know about checking CVS logs at the time, and |
67 |
probably wouldn't have understood a lot if I had done so) so I had no |
68 |
easy way to simply update my scripts. |
69 |
|
70 |
Of course by then, I knew a bit better what I was doing, and I actually |
71 |
recomponentized it, once, thus learning even more. But after that I just |
72 |
left it alone, pretty much, diving in and making individual changes when |
73 |
necessary, but otherwise leaving their hurkin' monster rc script |
74 |
untouched. |
75 |
|
76 |
What's so great about Gentoo is that it gives us the tools to actually |
77 |
maintain our own configs and systems separate from Gentoo, when we want |
78 |
to. I don't have to worry about my super-customized make.conf being |
79 |
overwritten, and if it were normally overwritten, there are nicely |
80 |
exposed CONFIG_PROTECT and CONFIG_PROTECT_MASK variables that control |
81 |
those overwrites, and neat tools like etc_update that layout the diffs |
82 |
between our versions and the as-shipped versions. For stuff like |
83 |
/etc/profile, where I have again gone entirely my own way, using |
84 |
FEATURES=buildpkg, I can browse the archive of both the new and the old |
85 |
version and diff the changes between the two versions, thus showing me |
86 |
what they changed, thus what I might wish to consider changing in my |
87 |
customized solution, as well. (FWIW, I've done something similar there. |
88 |
My /etc/profile simply sources a bunch of component files, each of which |
89 |
manages one little thing. And I've integrated the default/skeleton |
90 |
user .bashrc into the same system, so it too sources the various |
91 |
components.) |
92 |
|
93 |
The difference is, Gentoo is /designed/ to make such customized solutions |
94 |
not only possible, but easy to do and more importantly, to maintain. No |
95 |
fighting the distribution's update system to try and keep and maintain |
96 |
the customizations, Gentoo is designed from the beginning with that in |
97 |
mind, making it oh so much simpler, and actually a joy to work with! =:^) |
98 |
|
99 |
> My machine is now moderately cleaned up. 137 packages in @system. Clean |
100 |
> in emerge @world, revdep-rebuild and eix-test-obsolete. |
101 |
|
102 |
Good to see. But I wonder what was doing it, as I have both cups and kde |
103 |
in my global USE flags, and even with that, only have 149 packages pulled |
104 |
in with an emerge -pve @system. Unless gnome really is /that/ bad about |
105 |
things, and even as someone who really can't stand gnome, I find it hard |
106 |
to believe that it's /that/ bad. 200-ish packages added to system deps |
107 |
just for it? Come /on/! |
108 |
|
109 |
But it was certainly coming from somewhere, and I certainly can't argue |
110 |
with your results, getting back down to 130-some packages from 300-some, |
111 |
mainly by killing the kde gnome and cups global USE flags, even if I |
112 |
/don't/ see it with just kde and cups, and find it hard to believe gnome |
113 |
would be /that/ bad. <shrug> Oh, well, regardless, I have -gnome in the |
114 |
global USE flags and don't have the problem, for which I am grateful, |
115 |
whether that's the reason or not. |
116 |
|
117 |
-- |
118 |
Duncan - List replies preferred. No HTML msgs. |
119 |
"Every nonfree program has a lord, a master -- |
120 |
and if you use the program, he is your master." Richard Stallman |