On Tue, 14 Aug 2007, Alec Warner wrote:
> On 8/13/07, Nathan Smith <[EMAIL PROTECTED]> wrote:
> >
> > I suppose this comes down to weighing the utility of such a feature
> > against the amount of effort which would go into adding it to Portage.
>
> Its trivial to implement, but I think its a long standing decision of
> the portage team to not do it.

Please allow me to give some arguments why maybe this decision should be
thought over once more:

> We typically don't write things for emerge that touch your
> /etc/portage files (aside from updates/)

Which is good.
There is no need to change such a file for the required feature
(only oppositely: Without the feature, the user is forced to change
this files)

> We also don' t like one-offs.  We used to recommend people do stuff like
> "ACCEPT_KEYWORDS=~x86 emerge foo"
> or
> "USE='foo bar baz' emerge foo"
>
> which both suck because the next time you use emerge
> your settings are lost.

With the second claim I completely agree:
It is good to not recommend such things in general (in particular,
not to an unexperienced user).
However, I cannot see why one-offs should be bad in general:
There are always cases where people *intentionally* want one-offs.
For USE or ACCEPT_KEYWORDS, this might simply be for a (temporary)
testing purpose. However, concerning the selection of packages which are
updated there are more serious reasons why one might want a one-off.
Some examples:
1. You want to upgrade a machine, but also a new version of
   openoffice would be installed for which you currently do not
   have the bandwidth to download or the time to install.
   So you want to emerge -NDu world except for openoffice.
   Of course, one might argue that you should then put the new version
   of openoffice in /etc/portage/package.mask, but actually, you would
   like to see openoffice in the next emerge command again - in fact,
   when you call emerge next time you might even have forgotten that
   you had masked openoffice the previous time for a temporary reason.
2. You want to upgrade a machine which should do something in the
   next 24 hours (e.g. record a movie) and you suspect that the
   suggested upgrade of e.g. expat might break the application without
   a revdep-rebuild. So you want to emerge -NDu world except for
   expat. (And, of course, you will want to emerge expat next time).
3. You have reached your band-limit for this month and so cannot afford
   to download the new kernel sources until next week. So you want to
   emerge -fDu world except for the new kernel (and perhaps later
   emerge -Du world except for the new kernel).
4. You want to upgrade on your laptop 100 binary packages. However,
   since your laptop has only a small harddisk, these 100 *.tbz2's do
   not fit all on your laptop - you should exclude 3 or 4 of the large
   ones in the first step and then can install these large ones
   in the second step.

In all of the above cases you usually want that the corresponding
packages are contained in the next emerge -NDu world; you just want
to exclude the packages for one particular call of emerge.

Of course, currently this can be done with some hacks:

> Echoing crap to to package.mask or running a utility that does it is
> pretty easy imho.

But why force the user to hack to achieve a reasonable goal?
The files in /etc/portage/* should IMHO be well cared by the user
and not be misused for temporary hacks.
Moreover, if you modify e.g. package.mask just to get one of the tasks
in the above example done, it is easy to forget to undo
this modification after the emerge.
-- 
[EMAIL PROTECTED] mailing list

Reply via email to