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