Holly Bostick wrote:

Mark Knecht schreef:
On 8/19/05, Holly Bostick <[EMAIL PROTECTED]> wrote:

Mark Knecht schreef:

Hi,
 I wonder what the explanation in the emerge man page about the
--update option really means. What is meant by, and how does emerge
pick, "the best version available"?

- Mark

For those wondering, here's the quote:

--update (-u)
            Updates packages to the best version available, which may
not always be the highest version number due to masking for testing and
development.   This will also update direct dependencies which may not
be what you want.  In general, use this option only in combination with
the world or system target.

I accept that this is somewhat unclear, but to explain it fully would
take more space than a man page really is for.

<SNIP>

media-video/ati-drivers
   Available versions:  8.8.25-r3 8.10.19 8.12.10 [M]8.13.3 [M]8.13.4
8.14.13 8.14.13-r1 8.14.13-r2 [M]8.14.13-r3 *8.16.20
   Installed:           8.14.13-r2
   Homepage:            http://www.ati.com
   Description:         Ati precompiled drivers for r350, r300, r250
and r200 chipsets

Now in this case, the 'best' version is the most recent stable. The
second most recent version (8.14.13-r3) is hard masked, but if I
unmasked it with /etc/portage/package.unmask (and possibly also
/etc/portage/package.keywords), then Portage would consider it the
'best', insofar as it would attempt to install it if I upgraded the
drivers. Of course, the very fact that you have to manually unmask the
packages should give you pause as to whether you really want to consider
this the 'best' for you.

The very most recent version (8.16.20) is 'not available' -- meaning
that it will never be considered the 'best' version until it returns to
Portage; masking or unmasking is of no use here. I know, because I had
unmasked and installed the latest drivers, which did not work well, to
put it mildly, and today I synced and Portage downgraded them. I would
have downgraded them manually anyway, but it  was interesting to see
Portage downgrade them by force despite the fact that they were still
unmasked.  They have so many problems that they are no longer on the
Portage radar until the issues are determined to at least an extent that
someone knows what to fix, and who has to fix it (Gentoo, the kernel
guys if it's a kernel conflict, ATI).

Hi Holly,
  Yes, the explanation you give is pretty much what I already knew,
with the exception of the ati-drivers example. If this thread is worth
continuing then it's probably around that sort of situation.

  So far:

MASKED == not available unless we unmask a package by hand.

for stable - highest available stable version would be chosen
for ~arch - highest version available, whether stable or ~arch, would be chosen

However, in your ati-drivers example you use the term 'not available'
for the 8.16.20 version. That's an interesting choice of words since
any version 'not available' would (in my mind) never be chosen by
--update. It's not part of 'best' because it's not available, or so it
seems to me.

It's not my choice of words. Look at packages.gentoo.org and search
ati-drivers.

8.16.20 is - for x86, which in the legend is listed as 'not available'.
However, this is a status change from yesterday, when it was hard masked
(actually hard masked so I had to unmask it in package.unmask). Today
the package is no longer available, so when I went to update the package
again (after a sync), the package was downgraded, despite still being
unmasked. Atm I still have the ebuild, but I imagine if I synced again,
it would be removed. The reason I mention it is that if 'best' means
'the most recent' (which is really the only way to quantify such a
subjective quality as 'best' for an automated system like Portage), the
'best' version has been known to be removed from Portage completely.
Consider the case of unace, for example. The version available in
Portage is quite old, and won't open newer *.ace files due to its age,
but the 'best' version (i.e., the most current) is not available in
Portage at all (unstable or masked; it's just 'not available', because
of serious security bugs.

I don't believe the ebuild will be removed at any stage from portage for 8.16.20. I'd say this is so people (more the developers with more skills than I) can have a crack at fixing the problems encountered with the ebuild. What they have done is remove all architectures from the ebuild so that it won't be installed without user intervention (exactly like gcc4 versions)

KEYWORDS="-*" #~amd64 ~x86" (The #~amd64 ~x86" part is not included as the brackets are already closed)

The package is not available on any architectures (therefore no longer masked) The way to make it available (not that I'd recommend it) is to put the following in /etc/portage/package.keywords

media-video/ati-drivers -*

By doing that (and only that) has the new version become available to emerge

*  media-video/ati-drivers
     Latest version available: 8.16.20
     Latest version installed: [ Not Installed ]
     Size of downloaded files: 27,140 kB

Peter

Best is still the highest version using stable and only
changes (I think) if you do an umask in portage.unmask.

'Best' is the highest version available in Portage, based on your
profile (profiles mask packages or keywords based on the needs of the
profile), your ACCEPT_KEYWORDS setting in /etc/make.conf (which may be
~arch, after all, so "the highest version using stable" would not be
accurate in that case), and any adjustments you may have made in
/etc/portage/package.keywords and/or /etc/portage/package.unmask.

Because 'best' is a matter of judgement, and these settings are your
judgement as to what is 'best' for you.

Holly

--
gentoo-user@gentoo.org mailing list

Reply via email to