[gentoo-user] Two portage questions

2011-05-14 Thread Alan Mackenzie
Hi, Gentoo.

Two questions about Portage whose ansers I haven't found in the fine
manuals:

1. Where is it specified what is in system in the same way that
world is in the file /var/lib/portage/world?

2. How does emerge know which mutt to build when I do emerge mutt?
There are three candidate files in /usr/portage/mail-client/mutt, e.g.
mutt-1.5.21-r1.ebuild.

Thanks!

-- 
Alan Mackenzie (Nuremberg, Germany).



Re: [gentoo-user] Two portage questions

2011-05-14 Thread Alan McKinnon
Apparently, though unproven, at 12:31 on Saturday 14 May 2011, Alan Mackenzie 
did opine thusly:

 Hi, Gentoo.
 
 Two questions about Portage whose ansers I haven't found in the fine
 manuals:
 
 1. Where is it specified what is in system in the same way that
 world is in the file /var/lib/portage/world?

That is defined in your system profile, not by you.

/etc/make.profile is a symlink to something in $PORTDIR/profiles/ and that 
defines the profile you are using. A profile is nothing more than a bunch of 
files that define what your basic system consists of - things like minimum 
packages to install, things that must not be installed, starting point for USE 
flags, etc etc.

Profiles are cascading, meaning that more specific profiles can include other 
more general ones, defined in files called parent. These contain paths to 
other directories (which themselves can have parents), and the whole lots os 
recursively traversed from the bottom up till all the branches dead-end. The 
full complete set of data you get out of all that is your complete profile.

The specific files that define the system set are called packages

 2. How does emerge know which mutt to build when I do emerge mutt?
 There are three candidate files in /usr/portage/mail-client/mutt, e.g.
 mutt-1.5.21-r1.ebuild.

It will pick the ebuild with the highest version number, modified by your 
rules concerning ACCEPT_KEYWORDS=, unmasked and masked packages.

If your system is set to stable (ACCEPT_KEYOWRDS=amd64 for example), it ill 
pick between mutt-1.5.20-r18 and mutt-1.5.21-r1 as those are both stable. 
Usually it will be 1.5.21-r1 as that is the most recent version. Normally you 
will find two or more stable versions for most packages. This is by design so 
that if an update on a stable system by chance breaks something, you still 
have an earlier version to fall back on should the need arise.

If your system is set to unstable (ACCEPT_KEYOWRDS=~amd64 for example), it 
will pick mutt-1.5.21-r2 as that version is unstable (displayed with a 
~ symbol next to it in output).

Sometimes you get packages that are masked, indicated with [m] or [M]. These 
are for lunatics to test, and there are rules concerning masking that you can 
use to free these up for use (it's all in the man pages). Mutt does not have 
any such packages but nvidia-drivers for example does. You must take explicit 
steps to obtain the latest version. This is so that the odds of validly being 
able to blame anyone at all when nvidia trashes your system are reduced to 
exactly zero.

Do you have eix installed? You should, great tool, and makes figuring all this 
out a whole lot easier.


-- 
alan dot mckinnon at gmail dot com



Re: [gentoo-user] Two portage questions

2011-05-14 Thread Alan Mackenzie
Hi, Alan.

On Sat, May 14, 2011 at 12:51:14PM +0200, Alan McKinnon wrote:
 Apparently, though unproven, at 12:31 on Saturday 14 May 2011, Alan Mackenzie 
 did opine thusly:

  1. Where is it specified what is in system in the same way that
  world is in the file /var/lib/portage/world?

 That is defined in your system profile, not by you.

 /etc/make.profile is a symlink to something in $PORTDIR/profiles/ and that 
 defines the profile you are using. A profile is nothing more than a bunch of 
 files that define what your basic system consists of - things like minimum 
 packages to install, things that must not be installed, starting point for 
 USE 
 flags, etc etc.

 Profiles are cascading, meaning that more specific profiles can include other 
 more general ones, defined in files called parent. These contain paths to 
 other directories (which themselves can have parents), and the whole lots os 
 recursively traversed from the bottom up till all the branches dead-end. The 
 full complete set of data you get out of all that is your complete profile.

 The specific files that define the system set are called packages

OK.  Some of these directories have got three parents.  ;-)  The people
deciding what goes into the packageses must have very steady hands.

  2. How does emerge know which mutt to build when I do emerge mutt?
  There are three candidate files in /usr/portage/mail-client/mutt, e.g.
  mutt-1.5.21-r1.ebuild.

 It will pick the ebuild with the highest version number, modified by your 
 rules concerning ACCEPT_KEYWORDS=, unmasked and masked packages.

 If your system is set to stable (ACCEPT_KEYOWRDS=amd64 for example), it will 
 pick between mutt-1.5.20-r18 and mutt-1.5.21-r1 as those are both stable. 
 Usually it will be 1.5.21-r1 as that is the most recent version. Normally you 
 will find two or more stable versions for most packages. This is by design so 
 that if an update on a stable system by chance breaks something, you still 
 have an earlier version to fall back on should the need arise.

OK, I get it.

 If your system is set to unstable (ACCEPT_KEYOWRDS=~amd64 for example), it 
 will pick mutt-1.5.21-r2 as that version is unstable (displayed with a 
 ~ symbol next to it in output).

I think I'll leave the unstable stuff alone.

 Sometimes you get packages that are masked, indicated with [m] or [M]. These 
 are for lunatics to test, and there are rules concerning masking that you can 
 use to free these up for use (it's all in the man pages). Mutt does not have 
 any such packages but nvidia-drivers for example does. You must take explicit 
 steps to obtain the latest version. This is so that the odds of validly being 
 able to blame anyone at all when nvidia trashes your system are reduced to 
 exactly zero.

 Do you have eix installed? You should, great tool, and makes figuring all 
 this 
 out a whole lot easier.

I've got it now.  I'll go and have a look at it's /usr/share/doc / man
page.

Thanks!

 -- 
 alan dot mckinnon at gmail dot com

-- 
Alan Mackenzie (Nuremberg, Germany).



Re: [gentoo-user] Two portage questions

2011-05-14 Thread Kevin O'Gorman
On Sat, May 14, 2011 at 3:51 AM, Alan McKinnon alan.mckin...@gmail.comwrote:

 Apparently, though unproven, at 12:31 on Saturday 14 May 2011, Alan
 Mackenzie
 did opine thusly:

  Hi, Gentoo.
 
  Two questions about Portage whose ansers I haven't found in the fine
  manuals:
 
  1. Where is it specified what is in system in the same way that
  world is in the file /var/lib/portage/world?

 That is defined in your system profile, not by you.

 /etc/make.profile is a symlink to something in $PORTDIR/profiles/ and that


Odd.  Not on my system, it's not.  It's a directory with two  entries:
  eapi: a text file, length 2, with contents 2\n.
  parent: a text file with two lines:
 ..
 ../../../../../../targets/desktop/kde
The parent is obviously not relative to the /etc/make.profile directory.
Portage works,
pretty much, although I have an unbuildable essential package at the moment
with a bug just filed.  Eix says my portage is 2.1.9.42.

defines the profile you are using. A profile is nothing more than a bunch of
 files that define what your basic system consists of - things like minimum
 packages to install, things that must not be installed, starting point for
 USE
 flags, etc etc.

[snippage]

 --
 alan dot mckinnon at gmail dot com

 --
Kevin O'Gorman, PhD


Re: [gentoo-user] Two portage questions

2011-05-14 Thread Alan McKinnon
Apparently, though unproven, at 16:12 on Saturday 14 May 2011, Alan Mackenzie 
did opine thusly:

  The specific files that define the system set are called packages
 
 OK.  Some of these directories have got three parents.  ;-)  The people
 deciding what goes into the packageses must have very steady hands.


hehehe :-)


That just means that that part of the profile has three completely different 
aspects to it. Think of it this way (sucked out of my thumb, too lazy to cat 
through files right now):

A desktop profile might want to inherit it's config from the

amd64
testing
kde

profiles. This make sense, all three are completely different things and by 
and large won't have conflicting things in them. This saves the devs having to 
maintain 9 different profiles (all combinations of the above) and keep 
everything in sync. With cascading profiles they maintain three simple, easy 
to understand things that (seldom) go fubar


-- 
alan dot mckinnon at gmail dot com



Re: [gentoo-user] Two portage questions

2011-05-14 Thread Alan McKinnon
Apparently, though unproven, at 17:38 on Saturday 14 May 2011, Kevin O'Gorman 
did opine thusly:

  /etc/make.profile is a symlink to something in $PORTDIR/profiles/ and
  that
 
 Odd.  Not on my system, it's not.  It's a directory with two  entries:
   eapi: a text file, length 2, with contents 2\n.
   parent: a text file with two lines:
  ..
  ../../../../../../targets/desktop/kde
 The parent is obviously not relative to the /etc/make.profile directory.
 Portage works,
 pretty much, although I have an unbuildable essential package at the moment
 with a bug just filed.  Eix says my portage is 2.1.9.42.


You ls'ed the target of the symlink, not the symlink itself. Omit the trailing 
slash in the argument to ls and you'll see it.

Either that, or your system is busted.




-- 
alan dot mckinnon at gmail dot com



Re: [gentoo-user] Two portage questions

2011-05-14 Thread Neil Bothwick
On Sat, 14 May 2011 08:38:04 -0700, Kevin O'Gorman wrote:

  /etc/make.profile is a symlink to something in $PORTDIR/profiles/ and
  that 
 
 Odd.  Not on my system, it's not.  It's a directory with two  entries:
   eapi: a text file, length 2, with contents 2\n.
   parent: a text file with two lines:
  ..
  ../../../../../../targets/desktop/kde
 The parent is obviously not relative to the /etc/make.profile directory.

No, it's relative to the real file.


-- 
Neil Bothwick

There are two ways to live: you can live as if nothing is a miracle;
 you can live as if everything is a miracle.
 (Albert Einstein)


signature.asc
Description: PGP signature


Re: [gentoo-user] Two portage questions

2011-05-14 Thread Mike Edenfield

On 5/14/2011 11:38 AM, Kevin O'Gorman wrote:

On Sat, May 14, 2011 at 3:51 AM, Alan McKinnon



/etc/make.profile is a symlink to something in
$PORTDIR/profiles/ and that



Odd.  Not on my system, it's not.


I bet it is:

kutulu@basement ~ $ ls -l /etc/make.profile
lrwxrwxrwx 1 root root 44 Nov 25 12:21 /etc/make.profile - 
../usr/portage/profiles/hardened/linux/amd64