[PC-BSD Testing] Small thought about PBIs... Request for comments :)
yerenkow at uct.ua
Tue Jul 21 13:27:53 PDT 2009
I'm again writing some crazy concept about PBIs ;)
Kris, and othersm if you have time, please read this :)
Currently, to build a PBI, all sources must be compiled from scratch.
But we have "distfiles" dir, this is for "not download same thing over
Why we haven't same way for storing built packages? Like for example
I try to explain how this can be done, in good way.
We need two directories,
make -C category/portname -V PORTVERSION
can give us the exact version of any port (I hope).
make -C category/portname -V LIB_DEPENDS
make -C category/portname -V RUN_DEPENDS
make -C category/portname -V BUILD_DEPENDS
can give us the ports, on which we are depends.
Assume we are building port "misc/sys1", version 2.00
It depends on "misc/libone", version 4.5
let's make package of misc/sys1, it could be something like
let's store it in
and let's create file
contains info about self version, and about each dependency port:
3. The logic of usage of this is simple:
foreach ls packages_info/* as packageinfo
if version from packageinfo didn't match that in ports tree:
delete all packages and info, which have dependency on packageinfo,
(so in the end there will be no package exist which depend on lib
which depend on lib2 which depend on this particular port -- I hope,
this is clear: )
find all dependecies for this port, for this dependencies, and etc,
make an ordered list of this;
(if port A depend on B, and B depend on C and D, and D depends on
E, list will be E,D,C,B,A)
iterating by creates list
if we have package - pkg_add it;
if we haven't package - build package, and store info about all
4. What this give us?
This give us a boost in PBI building. While there are less than 100 of
them, maybe that's not so significant, but later... :)
Currently, we have 28 wine's built every time, and that's first level
dependency (it's OTHERPORT, and not RUN_ or LIB_ or BUILD_ dependancy)
And we always can have different packages stored, for different
MAKE_OPTS, for example storing package as
Ideas/Comments MUCH appreciated!
More information about the Testing