Certainly,
chroot combined with lvm snapshots would be the easiest way.
If you want to focus on binary packages, you might want to start with not
doing it automatically, but using some crude heuristics. You can make it
configurable for when the heuristics don't work.
Basically what is the difference between a binary package and the source
package is the dependencies.
You can regard a dependency as a restriction on the configurations in which
the package can be installed. For binary packages only runtime dependencies
are relevant (well in gentoo anyway, we don't have initial configuration
deps). Binary packages do however further restrict the configurations from
the runtime dependencies. These restrictions originate from the configuration
when compiling the package.
Then I have some good and bad news. The good news:
- Binary dependencies are as necessary for binary packages, as for validating
a current configuration (set of installed packages).
The bad:
- For proper binary dependencies the depend _expression_ possibilities must be
extended. Useflag dependencies would be at least usefull. BINSLOT would be
almost required. We already saw that SLOT can't always be used for BINSLOT.
BINSLOT is a new word for me.
I dont see any meaning in calculating dependencies after build. There would be too much problems:
* If any of packages you depend on, are masked, you get an error after build, but should get it before
* In many cases, not only libs, but also headers are included from another pack [kernel headers, for example, as i have seen from error messages]
* You cant pre-calculate dependancies
My interest, for sure, is code dependancies. At first i see a clear way to get it work for now, secondly i think it can be used for bin deps, also.
In cases, where both headers and libs are included from other pack, which is same on both cases, this is totally irrelevant for deps if this other pack is statically or dynamically used.
In cases, where headers are in pack to be compiled and .so is in another package, i havent yet checked, how to understand if dependancy is binary -- i cant say for sure that this does not include some work from user.
Ok, i better write few lines of code now as i know where i should start (or at least i have one part of code, which could be discussed here, in front of my minds-eye).
Thanks. You will understand me better when something works :)
Paul
--
Paul de Vrieze
Gentoo Developer
Mail: [EMAIL PROTECTED]
Homepage: http://www.devrieze.net
--
tvali
Measuring programming progress by lines of code is like measuring aircraft building progress by weight. -Bill Gates
For every complex problem there is an answer that is clear, simple, and wrong. -H L Mencken
Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why.
http://www.eskimo.com/~hottub/software/programming_quotes.html
http://www.softwarequotes.com/