1 |
Hello |
2 |
|
3 |
I'm writing about the enforcement of default/expected 'vanilla' behaviour of |
4 |
various attributes of the operating system. These issues have been an |
5 |
annoyance for some time and are only being ventilated now that I have some |
6 |
time so please forgive me if I seem a little edgy. My intention is to make |
7 |
suggestions and reach discussed optimal solutions. When reading bear in |
8 |
mind the philosophy of putting control into the user's hand and providing |
9 |
choice to the user. |
10 |
|
11 |
-------------------------------- |
12 |
Scenario 1: slocate and updatedb |
13 |
-------------------------------- |
14 |
Out of the blue my hard drive starts roaring flat out. This happens |
15 |
generally after the first reboot after installation or every day on a |
16 |
working system. Given that this happens without any prior warning or any |
17 |
explicit consent or instruction during any part of install or configuration |
18 |
it can become extremely unpleasant especially if doing something rather |
19 |
important and resource intensive. The culprit here is slocate and the |
20 |
makewhatis and updatedb cron scripts added to the daily cron duties! One of |
21 |
the reasons I use Linux is because it only does things when I tell it to. |
22 |
Problems like this one sadly resemble Windows which when idle begins to |
23 |
grind away at hidden activities. updatedb also requires root access to kill |
24 |
which can be an added hassle. My requests: |
25 |
|
26 |
1) Remove slocate from base system |
27 |
2) Remove makewhatis from daily cron duties |
28 |
3) Remove updatedb from daily cron duties |
29 |
|
30 |
I'm probably not alone in the fact that I never use slocate and given fixed |
31 |
location of package files and other files in gentoo finding things is easier |
32 |
than other distros especially given qpkg -l and etcat -f. |
33 |
|
34 |
------------------------------------- |
35 |
Scenario 2: baselayout and /etc/issue |
36 |
------------------------------------- |
37 |
With every emerge or update of baselayout or invocation of emerge -e a file |
38 |
called /etc/issue is placed on my system. It serves no purpose other than |
39 |
to tell me what I already know such as what kernel, architecture and machine |
40 |
name I am using. And on server machines with no monitor it does not even do |
41 |
that much. Every time I have to delete this file and it gets added back in |
42 |
later. Is this an example of developer preference deviating from vanilla |
43 |
behaviour? There have been bugs filed about the removal of graphical |
44 |
/etc/issue which was later removed. Why not give the user the choice and |
45 |
put control in his or her hands? Customisation is a preference. My requests: |
46 |
|
47 |
1) Eliminate /etc/issue and rename it if it must be added to the system |
48 |
|
49 |
--------------------------------------------------- |
50 |
Scenario 3: vanilla kernels and development sources |
51 |
--------------------------------------------------- |
52 |
Usually, I get the latest bk snapshot from kernel.org, unpack and compile |
53 |
manually. However, recently, on a new install I emerged development-sources |
54 |
to fulfill virtual/linux-sources and was later puzzled to find its contents |
55 |
in /usr/src/linux/linux-2.6.x-test-y-patchset-a.b and many other involuntary |
56 |
steps being taken by the ebuild. This confounded many users and bugs were |
57 |
filed about install locations, alsa actions and also about adding gentoo |
58 |
patchsets to dev-sources. On forums, I heard something about a 'vanilla' |
59 |
use flag to prevent the gentoo patchset although now I only see it in IUSE |
60 |
and not in emerge -vp oddly. Why can't it be as simple as download > unpack |
61 |
> merge rather than download > unpack > play with permissions > run |
62 |
genpatches to patch sources > merge into different location? What is the |
63 |
2.6-test gentoo patchset and why is it necessary and applied by default on |
64 |
an unfinished release? My requests: |
65 |
|
66 |
1) Provide the kernel in vanilla fashion without customisations |
67 |
2) Reconsider using the alsa and vanilla use flags here as they violates the |
68 |
rule of using use flags only for compile time switches. |
69 |
|
70 |
------------------------------------- |
71 |
scenario 4: kernel sources on portage |
72 |
------------------------------------- |
73 |
$ emerg -qs sources |
74 |
<snip> |
75 |
$ emerge -qs sources | grep -c '^*' |
76 |
38 |
77 |
|
78 |
Currently, there are 38 kernel sources on portage. A few weeks back there |
79 |
were 36. Then gentoo-test-sources was added as a branch to gentoo-sources |
80 |
and also recently gentoo-dev-sources has been added as a branch to |
81 |
development-sources. Now, does this only strike me as being a very large |
82 |
number resulting from liberal means? Are there any rules that govern |
83 |
creating new kernel sources and justifying their need? Providing choice is |
84 |
good but having this many kernel sources not only confuses the user and |
85 |
makes him indecisive but it also makes dev maintenance and administration |
86 |
more difficult. Also, problems such as the description for |
87 |
gentoo-dev-sources being exactly the same as development-sources will only |
88 |
serve to increase confusion. Is it necessary to provide gentoo patchsets |
89 |
for every possible kernel variant? Even if you go by the rule that stable |
90 |
kernels will have patchsets the current dev-sources violates it. My requests: |
91 |
|
92 |
1) Create gentoo patchsets only for finished releases and separate into |
93 |
different sources |
94 |
2) Provide vanilla kernels as unaltered, unpatched and uncustomised sources |
95 |
just as they would be if done manually |
96 |
3) Agree on prerequisites that must be fulfilled prior to adding new |
97 |
kernels-sources or in fact any new packages onto portage. |
98 |
|
99 |
------------------------- |
100 |
Scenario 5: Ebuild speech |
101 |
------------------------- |
102 |
On completion of merging the portage ebuild sleeps for ~15 seconds, the |
103 |
baselayout ebuild for ~10 seconds and even dev-sources sleeps for ~5 seconds |
104 |
whilst all these packages display messages. In my opinion, this is |
105 |
downright pointless. On a source distribution like this one especially |
106 |
where claims about speed are made not only of portage but also the packages |
107 |
themselves what is the point in gaining ~10 seconds load time when you lose |
108 |
~15 seconds compile time? What is the net gain? To make matters worse, |
109 |
ebuilds beep out loud through pc speaker on important sys-apps merges whilst |
110 |
sleeping in between which can make one very uncomfortable in office or quiet |
111 |
environments. I understand it is important to get messages to the user but |
112 |
this is not the way. There should be other means whereby all messages are |
113 |
accumulated and logged and displayed at the end of all merges (bugs are |
114 |
open). I currently this as follows. |
115 |
|
116 |
$ emerge -Du world | tee updates.log |
117 |
$ grep '01m' updates.log ( <-- this gives all messages in log file without |
118 |
use of sleep) |
119 |
|
120 |
My requests: |
121 |
|
122 |
1) Eliminate all use of sleep in ebuilds |
123 |
2) Eliminate all use of beeps via echo -ne "\a" |
124 |
3) Write eclasses or modifications to portage which control logging and |
125 |
display - I have even written a bash wrapper (unfinished) around emerge |
126 |
which does log all output and displays all messages at end of every emerge |
127 |
separated according to package names. |
128 |
4) If there absolutely has to be sound it must be done through |
129 |
FEATURES="sound". FEATURES="notify" can be used for message waits if |
130 |
absolutely necessary. It's a shame that finally EULA's have made ebuilds |
131 |
interactive and sound and message waits are further increasing merge time |
132 |
|
133 |
Overall, I would say vanilla behaviour should always be exhibited by default |
134 |
in all aspects of the operating system in favour of user preference or dev |
135 |
preference. Focus should be on instructing the user on how to make a change |
136 |
rather than making the change and expecting the user to reverse it. |
137 |
Exceptions are where the change is vanilla in itself like providing stock |
138 |
kernel configs to newbie users as genkernel does. |
139 |
|
140 |
Please discuss as you wish. I would be grateful if these issues were paid |
141 |
some attention and I look forward to receiving feedback whether you share |
142 |
the same experience or have opposing views. If any of them should be filed |
143 |
as bugs |
144 |
|
145 |
with sincere regards |
146 |
Dhruba Bandopadhyay |
147 |
|
148 |
-- |
149 |
gentoo-dev@g.o mailing list |