1 |
Hi |
2 |
|
3 |
I have not been impressed by the handling of configfiles (updating them) |
4 |
by neither etc-update nor dispatch-conf, so I pondered on an |
5 |
alternative. Not an alternative to those packages, but some extra help, |
6 |
possibly integrated into one of those tools. Please bear with me... |
7 |
|
8 |
What tickles me the most about the current process is that one sometimes |
9 |
gets huge lists of updated files by updating a single package. A package |
10 |
which may have never been used, or at least configured, by the user. |
11 |
For instance, updating webmin, or snort, yields many many ._cfg files an |
12 |
average user knows little about, and does not care about since he never |
13 |
tweaked them. In other words, they are in their distibution-default |
14 |
state, never edited. It stands to reason everyone would want all those |
15 |
files overwritten by the new ones, is it not ? Well, neither tool does |
16 |
that now. The user is left with two options to handle the task: |
17 |
1) Pick out all non-trivial files in a massive list of over 150 files, |
18 |
merge those, and after due consideration have dispatch-conf do all the |
19 |
remaining files automatically. (I suspect this is what most people do) |
20 |
2) Go through all the files step by step and choose either overwrite or |
21 |
skip as fast as possible, and re-run the tool on the remaining files, |
22 |
and this time carefully decide what to do with it, overwrite, shred, or |
23 |
merge. |
24 |
Well, neither is comfortable. Especially since 'trivial merges' like |
25 |
CVS- or revision info are advertized as being dealt with, but in reality |
26 |
are often not. I cannot tell you how many 'changes' I get confronted |
27 |
with are just trivial changes (like added commentary, and so on) |
28 |
|
29 |
|
30 |
I propose to add an additional mechanism to 'see' whether a file was |
31 |
actively changed during the lifetime of the machine, by a very simple |
32 |
and dumb means, but nevertheless a very effective one. |
33 |
This would work like this: upon extraction of the stage tarball (or at |
34 |
least very very early in the install process) one should set all the |
35 |
dates of all the potential configfiles to a set date in the (distant) |
36 |
past. Let's say, feb 29 1988. Only thereafter, we start configuring the |
37 |
system, editing fstab, hostname, etc. |
38 |
|
39 |
Now when we run dispatch-conf, it will first check the date of the file |
40 |
that corresponds with a ._cfg file. If that file has that magic date, |
41 |
overwrite it by the new file, and (this is important) re-set the date of |
42 |
that new file to that old magic date. The user thus needn't be bothered |
43 |
by numerous files he didn't touch, and a very significant time-saving is |
44 |
realized for everyone. |
45 |
|
46 |
If I'm not mistaken, other distributions have had solutions like this |
47 |
for ages. For instance, SuSE's YaST had/has a way to see if a user |
48 |
touched the configfile, and refuses to touch it if it found out the user |
49 |
had changed it manually. (Not a very succesful strategy for people who |
50 |
routinely did edit the files, but considering all that, it was still not |
51 |
bad. |
52 |
|
53 |
...What do you think ? Has this idea been suggested before ? |
54 |
Wouldn't this make the updating a much less painful process ? |
55 |
What, if any, would be possible pitfalls using this approach ? |
56 |
|
57 |
Thank you for your time reading this, |
58 |
|
59 |
Maarten v d Berg |
60 |
|
61 |
-- |
62 |
gentoo-user@g.o mailing list |