tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: [announcement] distbb - new tool for DISTrbuted Bulk Builds!

> Is there a summary somewhere of the relative strengths and weaknesses
> of this approach versus pbulk?  While I think competition is a good
> thing, I also hope we don't let one bitrot.
- For distributing packages over network and/or chroots
  separate program is used, wip/paexec. It was also made
  by me last summer for my other works.
- New entity was introduced in distbb - pkg_src_summary. This is the same
  as pkg_summary(5) but for pkgsrc source tree, i.e. for source packages.
- A few special and standalone utilities were created for 
  manipulating pkg_summary(5) and pkg_src_summary. All they are in
  wip/pkg_summary-utils package.

  For example,
    pkg_src_summary     - for generating pkg_src_summary
    pkg_refresh_summary - for filtering only latest versions
    pkg_cmp_summary     - for comparing two summaries
    pkg_update_summary  - for updating pkg_summary(5)
    and many others

- For obtaining list of all packages from pkgsrc tree
  the standalone utility pkg_list_all_pkgs is used. It analyses
  SUBDIR variable. It is also in pkg_summary-utils package.
- /usr/pkg and optionally /var/db/pkg are deleted and bootstrap
  is unpacked before building each package. This is not a problem
  even on my old home machine. Unlike Hubert's bulk build
  framework (bulk/pre-build) directories to be removed are not hard-coded.
  You can change variable RMDIRS_CMD.
- I think distbb is more flexible than pbulk. For example,
  DESTDIR support is not a special "feature".
  For running DESTDIR bulk builds,
  you should change TARGETS and DEPENDS_TARGET variables in config file.
- I think distbb has better logging than pbulk. Both are available online
  for comparison.
- distbb is written entirely in portable shell and awk.
  wip/runawk, wip/pipestatus and wip/paexec projects are nice helpers.
- dewey algorithm is reimplemented in awk, yes I reinvent
  yet another wheel :-)
- Generating pkg_src_summary for source packages is not distributed
  _CURRENTLY_. Instead, an incremental approach is used,
  pkg_update_src_summary tool was created for this, also a part of
  pkg_summary-utils package. It uses fast method
  for obtaining PKGNAME and PKGPATH variables using some
  hacks (partial bmake emulation), and fallback to running bmake
  in case of failure. This is a trick but it works about 10 times faster
  than bmake-ing all packages. tnn@ is working on bmake improvements.
  Anyway distributing pkg_src_summary over network/chroots is not a problem.
  There is another variable for this: PKG_UPDATE_SRC_SUMMARY_CMD and
  universal tool 'paexec' already mentioned above.
- chroots can also be used for bulk building.
  TRANSPORT variable is for this. It defaults to '/usr/bin/ssh -x'
- .tbz is supported
- I'm tired of fights with Joerg.
    Fixed PRs:
    pkg/36985 pbulk doesn't like .tbz (bzip2) extension
              for binary pkgsrc packages
    pkg/37002 libexec/scan utility fails on Linux
              (already fixed differently in pkgtools/pbulk?)
    pkg/37100 scan stage fails on Linux
              (not really fixed, but not critical anymore)
    pkg/37139 report subcomponent should quote
              recipient's email addres
    pkg/37700 pbulk's resolve stage stops the bulk build
- distbb weights about ~1500 lines of code (including license text).
  pbulk - ~3800 lines of C code, ~1200 of scripts.
  wip/pkg_summary-utils, wip/pipestatus, wip/runawk are stabndalone
  and universal utilities that may be used outside distbb.
  For example pkg_cmp_summary may be used for implementing pkg_summary-based
  package management tool. pkg_refresh_summary for cleaning
  binary repositories. pkg_src_summary and pkg_update_src_summary - for
  wip/pkg_online etc.

I hope this is enough for comparison.

Best regards, Aleksey Cheusov.

Home | Main Index | Thread Index | Old Index