opkbuild 4.2.0 released


opkbuild is a distribution build system -- a set of tools for building
software packages.  From source packages it builds binary packages for
use with the opkg package manager.

Currently one format of source package is supported by opkbuild:
ProteanOS Source Package Format 2.0:


opkbuild is similar in function to the development library and utilities
of dpkg, the Debian package manager:



Source archives are available from the files site by HTTP or FTP:


Here are the MD5 checksums:

    11f97280b2ecf8a1ca5ea409ae6a264c  opkbuild-4.2.0.tar.gz
    0620591808e452029b15442b472b8db8  opkbuild-4.2.0.tar.bz2
    9a47347616812a34bc7c21bdc3368653  opkbuild-4.2.0.tar.xz

Here are the SHA-256 checksums:

    6099ad0aba5a8468dfda7c85e8b1217bbe2b6c4bd775083c19fa86e1e277ef47  opkbuild-4.2.0.tar.gz
    368d362da0f78e8f27e63b4a58f1659cee904cae931a5ece667ef224f6bae12f  opkbuild-4.2.0.tar.bz2
    4eaed8a54551749f80ddf8797496be6a14a34795506fe3150b65d4f7ed1d8699  opkbuild-4.2.0.tar.xz

The sources are maintained in a Git repository:


This release is marked by the "opkbuild/4.2.0" tag.

NEWS for Version 4.2.0

The major new features in this version are the utilization of package
archive sections and the architecture qualification of the names of
coinstallable packages, both necessary for multiarch (and therefore
cross building) in ProteanOS.


  * ob-buildopk now correctly checks for the BusyBox tar reverse
    ordering bug.
  * ob-gencontrol now generates a "Format" field to indicate the source
    package format version.
  * ob-gencontrol now generates a "Section" field when defined for a
    binary package.
  * ob-genchanges now organizes source packages into section "src"
    instead of "base".
  * ob-genchanges now organizes binary packages into sections specified
    by "Section" field when present.
  * Names of packages in certain sections ("lib" on ProteanOS) are now
    qualified with their host architectures (in the form
    - ob-installdocs qualifies names in package documentation
    - ob-gencontrol qualifies names in "Package" fields.
    - ob-buildopk and ob-genchanges qualify names in "*.opk" file names.
  * ob-buildopk no longer sets the owner and group of all data files to
    0:0, as done since version 4.1.0.  This is not expected to change
    file owners or groups in any ProteanOS packages at this time,
    - oh-fixperms (used in most packages) also sets owners and groups
    - "build" makefile "install" targets are run with (fake) superuser
  * opkbuild now runs the "build" makefile's "install" target and all
    ob-* commands under the same (fake) superuser environment.  This was
    the behavior in versions 3.0.0-alpha1 through 3.0.0-beta7.  Since
    version 4.0.0, commands were run in separate (fake) superuser
    environments, which may not preserve superuser ownership of files.
  * Source package names are now prefixed with "src:" instead of "src-".
    pro-archman has supported this in its package name hashing since
    version 2.0.0.
  * With ob_get_binary_packages() becoming always pure (see below), all
    utilities now scan the file system for binary packages only once.


  * ob_get_source_parameter() now supports a "Format" field to get the
    source package formate version.
  * An optional "Section" control field has been added to source package
    format 2.x.
  * The modification time in manual pages is now parsed and formatted
  * New functions ob_validate_section() and ob_qualify_package_name()
    have been added.
  * ob_get_binary_packages() is now always pure (without side effects
    that would preclude use in a subshell environment).  Side effects
    have been factored out into a new internal function called by

Shortlog of Changes Since Version 4.1.4

Patrick McDermott (38):
      NEWS, configure.ac: Set version to 4.1.4+dev
      ob-buildopk: Really check for BB tar reverse ordering bug
      ob-gencontrol: Generate a "Format" field
      tools/mtime.sh: Fix ls parsing
      NEWS: Fix spelling
      Clean up "if :; then" from commit 3bc002a3
      ob-gencontrol: Generate a "Section" field
      ob-genchanges: Put source packages in src section
      ob-genchanges: Use "Section" field when present
      ob_qualify_package_name(): New function
      ob-*: Architecture-qualify package names
      ob-buildopk: Fix crash on src packages
      TODO: Should ob-buildopk chown all data?
      TODO: Note s/src-/src:/ also affects pro-archman
      TODO: pro-archman already handles s/src-/src:/
      ob-buildopk: Don't chown data
      opkbuild: Run ob-* commands from a child shell
      NEWS, configure.ac: Set version to 4.2.0
      ob-*, opkbuild: s/src-/src:/
      config.sh.in: Add SH
      TODO: Always arch-qualify docs paths
      Revert "TODO: Always arch-qualify docs paths"
      tests: Verify arch-qualification
      tests/exe/ob-installdocs.sh: Check link dest
      NEWS: Highlight major features
      ob_validate_section(): New function
      ob_get_binary_packages(): Validate section
      _ob_parse_package_metadata_2(): Validate section
      _ob_set_binary_packages(): Remove
      ob_get_binary_packages(): Factor out side effects
      _ob_parse_package_metadata_2(): Validate sections only if present
      tests: s/utils/util/ in Section
      ob-genchanges: Sort Binary and drop trailing space
      notes/*: Remove old opkbuild 2.0.0 design notes
      NEWS: Explain significance of major new features
      ob_init_package(): Defend against CDPATH in Bash
      ob-buildopk: chown data of src packages
      NEWS: Release opkbuild 4.2.0

Diffstat of Changes Since Version 4.1.4

 NEWS                           | 62 ++++++++++++++++++++++
 TODO                           |  1 -
 config.sh.in                   |  1 +
 configure.ac                   |  2 +-
 lib/metadata.sh                | 43 +++++++++++++++
 lib/metadata/proteanos.sh      | 30 +++++++++++
 lib/package.sh                 | 96 +++++++++++++++-------------------
 lib/package/2.sh               | 15 +++---
 locale/en_US/libopkbuild_2.sh  |  3 ++
 man/local.mk                   |  2 +
 notes/libopkbuild.1.txt        | 38 --------------
 notes/opkbuild.txt             | 41 ---------------
 src/ob-buildopk.sh             | 31 +++++++----
 src/ob-genchanges.sh           | 17 ++++--
 src/ob-gencontrol.sh           | 84 +++++++++++++++--------------
 src/ob-installdocs.sh          |  7 ++-
 src/opkbuild.sh                | 19 ++++---
 tests/data/pkg/bar.pkg/control |  1 +
 tests/data/pkg/foo.pkg/control |  1 +
 tests/exe/ob-buildopk.sh       |  5 +-
 tests/exe/ob-genchanges.sh     |  8 +--
 tests/exe/ob-gencontrol.sh     |  9 ++--
 tests/exe/ob-installdocs.sh    | 10 ++--
 tests/exe/opkbuild.sh          | 22 ++++----
 tools/mtime.sh                 |  3 +-
 25 files changed, 323 insertions(+), 228 deletions(-)

Patrick McDermott, CEO
Putting customers in control of high-quality technologies

Attachment: pgpxjML9zhCZj.pgp
Description: OpenPGP digital signature