Re: [gentoo-user] Bin packages Portage (-g/-k)

2003-12-20 Thread Spider
begin  quote
On Fri, 19 Dec 2003 23:23:55 -0500 (EST)
Nick Fisher [EMAIL PROTECTED] wrote:

  Metadata is all data that relates about a package. Most important
  are the dependencies, controlled by USE flags, the license,
  homepage, description and so on. :)

 This explains alot how can I query it? Is there some gentoolkit
 thing? 

Other than portage, not that I know of.

 Is it just a file in the tbz?

The latter part of the .tbz is a compressed plaintextblock, so I guess
thats it.


  I
  guess you'd need to have them around for dependency tracking though.
  (since portage in this mode probably doesn't even use the portage
  tree )

 The only thing that makes real sence to me is that -K doesn't consult
 the portage tree in /usr/portage but what would the point of that
 be?
Versioning probably. And the fact that this might allow you to remove
all ebuilds and so on from your portage tree.


 I can see why the dependancys of the packages have to be found from
 the metadata in the tbz, but why does the dependancy's dependancys
 have to be found from a tbz of that dependancy?

Because it needs to calculate a full dependency graph to make sure
everything is satisfied.  

 
 On a slightly different note, is the building of binary packages realy
 all that rare? I would have thought that there were a few good few
 power users out there with multiple systems doing this all the time...
 but I can find next to nothing about it in the docs or searching... is
 this just done by the gentoo maintainers for GRPs and stuff?

quite rare.  To build them reproducibly you have to wipe the buildhost
between the builds, or build-sessions. This takes time and is rather
demanding on systems.

My current system is that of manual intervention, most things are
scripted, but I oversee them for hand with each build. (this is also
necessary for signing and upload, the keys have passwords. And I don't
trust automation.) 

http://chinstrap.alternating.net/   for the URI.


//Spider


-- 
begin  .signature
This is a .signature virus! Please copy me into your .signature!
See Microsoft KB Article Q265230 for more information.
end


pgp0.pgp
Description: PGP signature


[gentoo-user] Bin packages Portage (-g/-k)

2003-12-19 Thread Nick Fisher
Hello People,
  I have been playing with binary packages in portage for a week or so
now, I have a laptop that takes AGES to do compiles. I've tryed a number
of other approaches (distcc, nfs portage ect) but binary packages seem
to work the best for my situation. However there don't appear to be any
docs on this subject, indeed even some of the flags that portage uses
(like -g) for binary packages do not even appear to be in the man pages.
This makes the whole process a *bit* confusing. So if there are any
people out there who deal with binary packages alot... please can you
help me out with the following questions.

What and how is metadata stored in binary packages?
I read about the metadata all the time but I'm not sure what it
actually consists of. I would guess the USE flags and gcc options that
were used to make the package. but I really would like to find out for
sure. I'm fairly sure if I understood that a number fo the below questions
would answer them selfs.

Should -K require binpackages for all dependancys?
I *have* read the docs here. I can understand some of the rational.
However if I have packages B and C installed and I want to install
package A, with -K. not only do I have to have a binary for package A,
but I also have to have binarys for B and C too. This seems odd to me, I
was expecting that -K would require that all unmerged packages and
unmerged dependancys would require a binary package, not that all merged
and unmerged packages require binarys. Does anyone know if that is the way
it's supposed to work? Perhaps does anyone know why? -K would be an
excellent idiot switch to stop my laptop doing compiles if I forgot to
make a package but currently it's WAY too much hassle to use.

Why does -puvg --deep world differ from -puv --deep world?
Any ideas? Recently I got this from wihtout -g:
[ebuild U ] media-libs/libvorbis-1.0.1 [1.0-r4]
[ebuild  N] app-text/docbook-xsl-stylesheets-1.62.0-r1
[ebuild  N] app-text/docbook-xml-dtd-4.1.2-r4
and this with -g:
[ebuild U ] media-libs/libvorbis-1.0.1 [1.0-r4]
Does --deep just not work with -g? I thought of that and ran --puv world
but I still got the first answer and not the second.

Why does -g download already merged dependancys?
Now this is getting on my nerves as I really don't have much room on my
laptop's disk. When I use -g with BINHOST (set in make.conf), I don't just
download the required packages from BINHOST, I also download a pantload of
the dependancys. This *really* confuses me, especially as the deps are
already calculated and installed. Why does portage need the binarys too?
Is there any way to stop that? Is it a bug?

Many thanks to any portage gurus responding ;)

  Nick

--
[EMAIL PROTECTED] mailing list



Re: [gentoo-user] Bin packages Portage (-g/-k)

2003-12-19 Thread Nick Fisher
  So if there are any  people out there who deal with binary packages
  alot... please can you help me out with the following questions.
 I guess I should volounteer here as that is something I do ;)
Cool!

 What and how is metadata stored in binary packages?

 USE flags used, and thereby dependencies are stored in the package, so
 when you use downloaded packages, they override your own USE flags.

 CFLAGS are stored there as well (obviously , they are binary)

 I read about the metadata all the time but I'm not sure what it
 actually consists of. I would guess the USE flags and gcc options that
 were used to make the package. but I really would like to find out
 for sure. I'm fairly sure if I understood that a number fo the below
 questions would answer them selfs.


 Metadata is all data that relates about a package. Most important are
 the dependencies , controlled by USE flags, the license, homepage,
 description and so on. :)
This explains alot how can I query it? Is there some gentoolkit thing?
Is it just a file in the tbz?

 Should -K require binpackages for all dependancys?
 I *have* read the docs here. I can understand some of the rational.

 from man emerge
 quote
 --usepkgonly (-K)
  Behaves just as --usepkg  except  that  this  will  only emerge binary
 packages.   All the binary packages must be available at the time of
 depend
 /quote
Yup that was all I could find...

 As I understand it it will only use binaries, never compile locally.
Well that's the way I took it too. And at the time I took it as a bug (as
you suggest below) and this was the result:
http://bugs.gentoo.org/show_bug.cgi?id=35070

 However if I have packages B and C installed and I want to install
 package A, with -K. not only do I have to have a binary for
 package A, but I also have to have binarys for B and C too. This seems
 odd to me, I was expecting that -K would require that all unmerged
 packages and unmerged dependancys would require a binary package, not
 that all merged and unmerged packages require binarys.
 Seems a bit odd that it would force the -re- emerging of packages.
I think you misunderstand... it doesn't want to remerge them, it just
wants the tbzs present.

 I
 guess you'd need to have them around for dependency tracking though.
 (since portage in this mode probably doesn't even use the portage tree )
The only thing that makes real sence to me is that -K doesn't consult the
portage tree in /usr/portage but what would the point of that be?
I can see why the dependancys of the packages have to be found from the
metadata in the tbz, but why does the dependancy's dependancys have to be
found from a tbz of that dependancy?

  Does anyone know if that is the way it's supposed to work? Perhaps
  does anyone know why? -K would be an
 excellent idiot switch to stop my laptop doing compiles if I forgot to
 make a package but currently it's WAY too much hassle to use.
 Not too sure. :/
It's not the end of the world... I'm just want to get it straight whats
going on before I move on. I get the feeling that there is some clever
'thing' that portage was designed to do with -K that I havn't thought of.

 Why does -puvg --deep world differ from -puv --deep world?
 Any ideas?
 USE flags probably.  as -puvg --deep world will use USE flags and
 therefore dependencies from the online packages, and not those
 calculated from your machine and its tree.
Actually I'm pretty sure it's not. I wrote a little python script, it gets
a system's USE, CHOST and CFLAGS, sshs over to annother machine and sets
the ENV to override the local portage then you compile...
*perhaps* portage is finding the dependacys the packages listed in the
world file by querying the metadata in the tbzs on the BINHOST that
would be a real pain in the butt but would explain the behaviour.

 Now this is getting on my nerves as I really don't have much room on
 my laptop's disk. When I use -g with BINHOST (set in make.conf), I
 don't just  download the required packages from BINHOST, I also
 download a pantload of  the dependancys. This *really* confuses me,
 especially as the deps are already calculated and installed. Why does
 portage need the binarys too?
 Now this is is strange behaviour, I think it might be a safteyprecaution
 but I'm not sure at all. :/
 Is there any way to stop that? Is it a bug?
 File a bug , put it nicely and question it, I'm sure that if the portage
 devs don't have a good reason, they can change the behaviour. :)
I will have to pay extra carefull attention next time I'm doing a world
build and make a bugzilla post I guess.

On a slightly different note, is the building of binary packages realy all
that rare? I would have thought that there were a few good few power users
out there with multiple systems doing this all the time... but I can find
next to nothing about it in the docs or searching... is this just done by
the gentoo maintainers for GRPs and stuff?

 Many thanks to any