From: Alan McKinnon <alan@linuxholdings.co.za>
To: gentoo-user@lists.gentoo.org
Subject: Re: [gentoo-user] Re: anti-portage wreckage?
Date: Thu, 4 Jan 2007 01:44:18 +0200 [thread overview]
Message-ID: <200701040144.18826.alan@linuxholdings.co.za> (raw)
In-Reply-To: <Pine.LNX.4.64.0701031235540.20138@iabervon.org>
On Wednesday 03 January 2007 20:24, Daniel Barkalow wrote:
> On Wed, 3 Jan 2007, Alan McKinnon wrote:
> > The only possible thing etc-update could ever do is look for
> > trivial changes and ignore them. How would you detect the
> > difference between non-trivial changes to shipped versions and
> > non-trivial changes made locally?
>
> Keep a copy of the config files for installed packages somewhere in
> /var, and provide etc-update with "this is the version we shipped
> that's going away" on package removal. Currently, it only keeps the
> hash of the config file that goes with a package, so it can only tell
> whether there was a change in the shipped version, not what that
> change was. Portage actually has enough information to detect that
> the user has modified a CONFIG_PROTECTed file (moveme and destmd5 !=
> cfgfiledict.get[myrealdest]), but doesn't test this or communicate it
> to etc-update.
That doesn't work in real life. The system can detect if files have
changed, where they changed, when they changed and even who changed
them. It does not know, and never will know, *why* the change happened
and what the intention of the user was in making the change. Even if a
config file has not been changed and a new different version exists,
the system has no way to determine whether the existing unchanged
version exactly meets my needs or not and whether an automatic update
will cause me (the admin) to flip my lid and flame the dev as a result
(or not). The machine does not know, the code does not know and the dev
does not know. Only *I* know and *I* am the only person that can make
this decision.
Unix users tend to use it because (amongst other things) the system does
not try and second guess us and pull a "we know better than you" stunt.
If I want that behaviour, I'll migrate to Windows thank you very much.
I know etc-update is a pain in the ass, especially after emerge -uND
world and I have to make decisions on 100 CONFIG_PROTECTed files. But
even so it's miles better than the alternative.
> > You can't say that if the config file exists and hasn't
> > changed since installation then overwrite it with the new shipped
> > version - that might change the behaviour of an *existing* system
> > (without notification) if the user likes the old way and does not
> > like the new way.
>
> I didn't say it shouldn't require interaction to get the new shipped
> version; I said it should require extra confirmation to discard
> changes made locally. It should also be able to offer 3-way merge
> instead of 2-way, and automatically retain local changes that don't
> conflict with shipped changes.
Please define exactly what a "change that doesn't conflict with shipped
changes" means so that I can design a correct algorithm and implement
it in C or Python. Include deprecated options, syntax changes, subtle
changes in meaning, redefined syntax commands and new conflicting
options in config files with the same name across version changes. make
it bullet proof so that any regular dev can list these things easily in
confidence of their correctness, where the user will know the impact
without resorting to looking it up every time, and where the correct
thing (defined by whatever $ARB_USER happens to believe they want) is
done in the vast overwhelming majority of cases.
I'm not jerking your chain here - that is the real spec of a system like
you propose. I'm not being pedantic and nit-picking - these are the
kind of detail things that make or break software. Windows Update fails
in the real world as Microsoft implements vast sweeping monolithic
changes leaving the user with no meaningful way to control the process
other than "do not apply SPx". Lets not even put one toe onto that
road...
The various update tools do the only realistic thing possible - the user
said to not touch these files, so it doesn't. Period.
> > > It's understood that there is a difference between what I'm using
> > > now and what new package comes with. But there's no information
> > > on whether that difference came from local modifications.
> >
> > And neither should there be. Etc-update knows the files are
> > *different* and stops right there. Evaluating what that difference
> > means is a human's job because it's not a monkey-see, monkey-do
> > process.
>
> What the difference means is up to the humans, but there's no reason,
> aside from having carelessly lost information previously, that it
> doesn't know where the change came from; that part isn't up to human
> interpretation, and it's valuable information for humans trying to
> evaluate what the difference means.
Now you are changing the goal posts. Previously you said the tools
should be doing automated changes. Now you say the tools should
highlight (as a diff perhaps) what the changes are. Which is it?
alan
--
gentoo-user@gentoo.org mailing list
next prev parent reply other threads:[~2007-01-04 7:20 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-25 1:52 [gentoo-user] anti-portage wreckage? Mike Myers
2006-12-24 14:29 ` david
2006-12-25 3:01 ` Mike Myers
2006-12-25 6:36 ` Andrey Gerasimenko
2006-12-25 8:46 ` Mike Myers
2006-12-25 9:06 ` Dale
2006-12-25 10:48 ` Andrey Gerasimenko
2006-12-25 12:11 ` Boyd Stephen Smith Jr.
2006-12-25 12:04 ` Boyd Stephen Smith Jr.
2006-12-25 20:09 ` Mike Myers
2006-12-26 0:17 ` Boyd Stephen Smith Jr.
2006-12-26 4:41 ` Mike Myers
2006-12-26 13:28 ` Boyd Stephen Smith Jr.
2006-12-25 20:15 ` Richard Fish
2006-12-25 20:34 ` Mike Myers
2006-12-26 15:56 ` [gentoo-user] " James
2006-12-26 20:02 ` Uwe Thiem
2006-12-27 9:45 ` Mike Myers
2006-12-27 22:14 ` James
2006-12-27 22:43 ` Mike Myers
2006-12-31 12:18 ` Aniruddha
2006-12-31 13:40 ` Mick
2006-12-31 16:02 ` Uwe Thiem
2006-12-31 18:20 ` Mick
2006-12-31 18:57 ` Michal 'vorner' Vaner
2006-12-31 20:50 ` Uwe Thiem
2006-12-31 20:48 ` Uwe Thiem
2006-12-31 23:29 ` Mike Myers
2007-01-01 1:01 ` Mike Myers
2007-01-01 1:34 ` Mark Kirkwood
2007-01-01 2:27 ` Mark Knecht
2007-01-01 2:36 ` Mike Myers
2007-01-01 1:40 ` Neil Walker
2007-01-01 2:34 ` Mike Myers
2007-01-01 10:36 ` Mark Kirkwood
2007-01-02 10:32 ` Neil Bothwick
2007-01-01 20:08 ` Aniruddha
2007-01-02 6:50 ` Daniel Barkalow
2007-01-02 9:11 ` Neil Bothwick
2007-01-03 5:45 ` Daniel Barkalow
2007-01-03 8:56 ` Neil Bothwick
2007-01-03 21:02 ` Daniel Barkalow
[not found] ` <20070104084454.261923bc@krikkit.digimed.co.uk>
2007-01-04 10:20 ` Bo Ørsted Andresen
2007-01-02 10:02 ` Alan McKinnon
2007-01-03 5:21 ` Daniel Barkalow
2007-01-03 7:47 ` Alan McKinnon
2007-01-03 18:24 ` Daniel Barkalow
2007-01-03 23:44 ` Alan McKinnon [this message]
2007-01-06 6:43 ` Daniel Barkalow
2007-01-06 14:11 ` Boyd Stephen Smith Jr.
2007-01-03 8:58 ` Neil Bothwick
2007-01-03 11:03 ` Nelson, David (ED, PAR&D)
2007-01-03 11:42 ` Hans-Werner Hilse
2007-01-03 11:51 ` Alan McKinnon
2007-01-03 13:04 ` Neil Bothwick
2007-01-03 20:29 ` Daniel Barkalow
2007-01-02 9:58 ` Alan McKinnon
2007-01-04 8:43 ` Mike Myers
2007-01-01 2:45 ` William Kenworthy
2007-01-01 4:35 ` Richard Fish
2007-01-01 5:58 ` William Kenworthy
2007-01-02 11:19 ` Bo Ørsted Andresen
2007-01-02 13:26 ` William Kenworthy
2007-01-03 13:52 ` Bo Ørsted Andresen
2007-01-01 10:37 ` Neil Bothwick
2007-01-02 18:28 ` Andrey Gerasimenko
2006-12-31 22:19 ` [gentoo-user] " Aniruddha
2007-01-01 1:49 ` Neil Walker
2006-12-31 22:20 ` Aniruddha
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200701040144.18826.alan@linuxholdings.co.za \
--to=alan@linuxholdings.co.za \
--cc=gentoo-user@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox