tech-pkg archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: distbb: new helpful feature
Another megafeature is ready.
Now distbb can build multi-variant packages, i.e.
py{23,24,25}, apache{13,2,22} etc. modules.
No wonder. pbulk already does this.
But distbb implements things in a flexible way
(this is one of the main goal if it).
This new feature leads to one interesting side-effect.
Now you can pass distbb PKGPATHs to be built "enriched" with
building options. For example
textproc/dictem:EMACS_TYPE=xemacs214
www/ap2-wsgi:PKG_APACHE=apache22,PYTHON_VERSION_REQD=25
Even more, "multi-option" packages are also supported. If you want to
build several variants of mplayer, it is easy to do this now with
distbb. Example:
sysutils/mc:PKG_OPTIONS.mc=-subshell~-slang~-charset,PKGNAME=mc-light-4.6.1nb4
sysutils/mc:PKG_OPTIONS.mc=samba,PKGNAME=mc-full-4.6.1nb4
sysutils/mc:PKG_OPTIONS.mc=-x11,PKGNAME=mc-nox11-4.6.1nb4
Test bulk build results
http://mova.org/~cheusov/pub/pkgsrc-distbb/Linux/current-unprivileged/log/20080913.1011/META/report.html
for the following "enriched" packages
textproc/dictem:EMACS_TYPE=xemacs214
multimedia/mplayer:PKG_OPTIONS.mplayer=mplayer-menu~-aalib~-arts~-cdparanoia~-dvdread~-esound~-gif~-jpeg~-png~-nas~-mplayer-win32~-xvid
sysutils/mc:PKG_OPTIONS.mc=-subshell~-slang~-charset,PKGNAME=mc-light-4.6.1nb4
sysutils/mc:PKG_OPTIONS.mc=samba,PKGNAME=mc-full-4.6.1nb4
sysutils/mc:PKG_OPTIONS.mc=-x11,PKGNAME=mc-nox11-4.6.1nb4
and "multivariant" packages
www/php-apc
www/ap2-python
This is just a test (last test bulk build before release)
but you can see how it works.
Full release description is below.
Suggestions, bug report etc. are welcomed as always
(constructive please).
--------------------------------------------------------------------
--------------------------------------------------------------------
--------------------------------------------------------------------
Version 0.19.0, by Aleksey Cheusov, Sat, 13 Sep 2008 12:00:06 +0300
Multivariant packages, that is packages/modules for different
versions of Apache, Python and PHP can be built by "distbb". To
enable this set PKG_UPDATE_SRC_SUMMARY variable to
'pkg_src_summary -m ...'
in your distbb.conf. Because of this new feature per-package
logging directories are changed from PKGPATH to PKGNAME. I don't
like this (sometimes this makes untrivial the searching for logs of
a particular packages) but I don't see any reasonable
alternatives. AFAIK Joerg's pbulk does the same.
"support for multivariant packages" feature has one interesting
side-effect. PKGPATHs passed to distbb (by -f, -p options or
LIST_ALL_PKGS_CMD variable in config file) can now be "enriched"
with building options.
Format for this "enriched" PKGPATH:
category/package[:var1=value1[,var2=value2[,...]]]
For example:
textproc/dictem:EMACS_TYPE=xemacs214
www/ap2-wsgi:PKG_APACHE=apache22,PYTHON_VERSION_REQD=25
Spaces are also allowed inside "valueN", they should be encoded as
symbol ~ (tilde).
As a result you can build several variants of a given package
with different options (see OPTIONS framework) by passing to distbb
"enriched" PKGPATHs like the following
sysutils/mc:PKG_OPTIONS.mc=-subshell~-slang~-charset,PKGNAME=mc-light-4.6.1nb4
sysutils/mc:PKG_OPTIONS.mc=samba,PKGNAME=mc-full-4.6.1nb4
sysutils/mc:PKG_OPTIONS.mc=-x11,PKGNAME=mc-nox11-4.6.1nb4
Local copy of pkg_src_summary (i.e. META/pkg_src_summary.txt) is
used for building packages and generating report. This means that
after stage_init finished, you may change PKG_SRC_SUMMARY file (by
another distbb bulk build, pkg_update_src_summary or whatever).
distbb.conf.in: no need for DISTBB_LOCK variable
stage_init.in: minor fixes (awk getline vs. end of file)
stage_init.in: if PKG_UPDATE_SRC_SUMMARY_CMD fails, its stderr is
output to stderr too, not only to META/build_src_summary_log.txt
(normally PKG_UPDATE_SRC_SUMMARY_CMD should always exit with exit
status 0, failure means fatal error).
Directories for logging (REPORT1_DIR/PKGNAME) are created as soon as
they become necessary, not all at once at the beginning...
Code for removing the empty logging directories is moved from
stage_gen_report to stage_build
--
Best regards, Aleksey Cheusov.
Home |
Main Index |
Thread Index |
Old Index