[PC-BSD Pbi-dev] PBI building simplifying
yerenkow at uct.ua
Thu Dec 24 15:25:50 PST 2009
Long time ago I once started this topic - How to simplify PBI building.
I suggest then use packages, and now I see how it's going to be.
/pbi-build would have a new directory, "cached-packages"
/pbisandbox scripts would have a LOCALBASE set to something like this:
for example, we are building Firefox.
we creating locabase like this:
and linking to this directory
/usr/veryveryveryveryverylongprobably256symbolslonglocalbase (so this
isn't real dir, it's symlink to /Programs/Firefox)
2. all required soft installed via packages from "cached-packages".
Localbase of these packages of course is our long one.
If such package not exists, we are iterating by dependencies deeper,
checking the same.
If there is no dependencies, build package for long Localbase, copy
package to /pbi-build/cached-packages.
After one run, we'll have all needed ports as packages.
Of course, there have to be a black-list, a list where ports have to be
built against real localbase, such as /Programs/Firefox -- ports which
are not respecting LOCALBASE, and/or have somewhere hardcoded usage of
localbase resources. But we anyway install's them to long localbase, to
satisfy dependencies for now.
3. After target port installed OK - Iterate by blacklisted ports,
deinstall packages from
/usr/veryveryveryveryverylongprobably256symbolslonglocalbase and install
it via ports to /Programs/Firefox
4. after all installed to
/usr/veryveryveryveryverylongprobably256symbolslonglocalbase, which is
really /Programs/Firefox, do this:
- find all executable files
- chrpath it's RPATH to /Programs/Firefox
About chrpath: http://www.freshports.org/devel/chrpath/
5. How to make a black-list ports:
make package for
/usr/veryveryveryveryverylongprobably256symbolslonglocalbase, install it,
change in all elfs RPATH, after this: if somewhere there exists elf
file, which contains
blacklist it. probably even not elf file, text one, or other if contains
long localbase - better blacklist it.
This will significantly make PBI builds easier; almost all PBIs installs
xorg, perl, etc. - some of this ports can be chrpath'ed, and all time
required to build PBI will be reduced.
Maybe not significantly, but I think this is worth thing.
More information about the Pbi-dev