[pacman-dev] messy %REASON% handling

Nagy Gabor ngaba at bibl.u-szeged.hu
Fri Sep 7 13:56:39 EDT 2007

> > A bit off:
> > So I prefer "original reason" way, which can be changed by the user later.
> > Only explicit packages are important to the user, all others are needed to
> > satisfy deps of explicit packages. So I prefer using the important word
> instead
> > of reason (HoldPkgs are the most important packages.)
> > So I'd prefer
> > important = 0 <=> depend && !HoldPkg
> > important = 1 <=> explicit && !HoldPkg
> > important = 2 <=> HoldPkg; so I think HoldPkg should be stored in local db;
> and
> > in sync db
> > 
> Now I am afraid I lost you, I am not sure how this would be useful.

Well, this is not so important.
1. I tried to explain why I prefer the way described above (with no success
:-P), I wanted to explain my "concept".
So explicitly installed package means (for me) that user need this package,
because he installed by hand (he mentioned in the target list); dependency
package means, that pacman installed that "behind" the user, so it is needed to
satisfy the dependencies of explicitly installed packages only, so they are not
so important (they can be removed, as no longer needed by other packages). We
need to decide that a package is explicit or not when it first appears in local
db, and we keep this property during upgrades (I derived this rule from the
current behaviour of -U; someone may prefer the following: when we mention the
package in the target list in case of -S, -U then that means that user really
need that package, so we can change the reason to explicit.)
2. I don't like the current HoldPkg implementation, this should be totally
handled by libalpm IMHO. HoldPkg means (for me) that the package is really
important; IMHO this should be recorded to localdb and to syncdb (e.g.
current/glibc should be flagged as HoldPkg). So we may add HoldPkg property to
reason (important) field to unify, but if you want to keep the current reason
field, you may add a new HOLDPKG entry...
(If user could change the reason field then he could also "set" HoldPkg "flag";
orphan remove ignores HoldPkg and explicitly installed packages, so it removes
the unneeded (reason/important == 0) ones only; if a package is holdpkg then its
reason==explicit/depend is not important...)

Bye, ngaba

SZTE Egyetemi Könyvtár - http://www.bibl.u-szeged.hu
This mail sent through IMP: http://horde.org/imp/

More information about the pacman-dev mailing list