opkbuild 4.0.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:

    7babb2a43b2f5225777b43570e1d8cb5  opkbuild-4.0.0.tar.gz
    3ca81936dd403367741f0dabc6bf5f34  opkbuild-4.0.0.tar.bz2
    a83a0d910d4cb31454915937f3929540  opkbuild-4.0.0.tar.xz

Here are the SHA-256 checksums:

    bb68723c55550ce59a1df94c6dc612aba3c4da3e9f2fc24a7f8a5252682d2602  opkbuild-4.0.0.tar.gz
    7e4f37d42abc6898a939eef50ca82c2ae0547e3fabb48fa0d8b72000428aee80  opkbuild-4.0.0.tar.bz2
    6d220dcf221868331bb7f1adea25938a09d264174c42759418dd295776b84517  opkbuild-4.0.0.tar.xz

The sources are maintained in a Git repository:


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

NEWS for Version 4.0.0

This is a major new release of opkbuild.  Major user-facing changes
include xz decompression and binary package substitution variables.
There are also many behind-the-scenes improvements to code quality,
safety, and test suite coverage.

Trivia: Since opkbuild was part of opkhelper in versions up to and
including the incomplete and unreleased 2.0.0, and since version 3.0.0
never officially left "beta" status, version 4.0.0 is technically the
first released version of opkbuild in its seven-year history.


  * ob-unpacksource now supports decompression of xz-compressed upstream
  * ob-gencontrol now substitutes variables from "<binpkg>.substvars"
    files in the build work area, enabling new use cases such as
    automatic shared library dependencies.
  * ob-applypatches now tracks and skips applied patches, instead of
    re-running the patch command and throwing an error.
  * Manual pages for all utilities have been updated/written and are now
    built and installed for the first time since opkhelper 1.0.0.
  * Utilities can now be run in-place without installation by setting
    libopkbuild's OB_LIB_BUILDDIR and OB_EXE_BUILDDIR environment
    variables to the "locale" directory in the build directory.
  * All utilities except ob-checkbuilddeps and ob-installplatconf are
    now covered by the test suite.


  * libopkbuild's "shared object version" has been bumped to 2 to
    reflect a new incompatible API.
  * libopkbuild now aborts the program, instead of just returning 125
    if any function is called with missing arguments.
  * The following functions have been removed from the libopkbuild API:
    - ob_match_arch() -- use ob_arch_is_concerned() instead
    - ob_match_plat() -- use ob_plat_is_concerned() instead
    - ob_parse_package_metadata() -- merged into ob_init_package()
    - ob_set_locale_path() -- set OB_LIB_BUILDDIR and/or OB_EXE_BUILDDIR
      environment variables to load localized messages from a build
    - ob_summarize_package_arch() -- was an unimplemented stub
    - ob_summarize_package_plat() -- was an unimplemented stub
    - ob_use() -- libopkbuild modules are now "linked" together into one
      library file, so this function is no longer needed
  * ob_set_substvar() has been renamed to ob_set_source_substvar(), a
    new function ob_set_binary_substvar() has been added, and
    ob_substvars() now has an optional "package" operand.
  * ob_parse_changelog() and ob_parse_control() now pass arguments to
    user callbacks instead of setting global variables.
  * Option letters have changed for ob_parse_dep(), ob_reduce_deps(),
    and ob_get_binary_packages().
  * All libopkbuild functions are now documented in manual pages
    generated from inline comments.
  * Test suite coverage has improved slightly.

Build system:

  * The build system is now generated by GNU Autoconf and Automake.
  * libopkbuild is now distributed as a sort of shared library object,
    "linked" by the shld linker tool.  By default, it is installed into
  * The test suite now uses the Test Anything Protocol and Automake's
    TAP driver.
  * The mksysconf tool (used to generate "proteanos_arch" and
    "proteanos_plat" system configuration files for testing opkbuild)
    has been removed.

Bug fixes and minor changes:

  * A bug in the option parsing of ob_parse_dep(), ob_reduce_deps(),
    ob_parse_version(), ob_parse_package_metadata(), and
    ob_get_binary_packages() that affects GNU Bash and possibly other
    shells has been fixed.
  * A bug in opkbuild that would ignore errors from the "build"
    makefile's "build" target has been fixed.
  * ob_set_substvar()'s (now ob_set_source_substvar()'s) return value on
    success has been fixed.
  * ob-gencontrol now drops trailing commas and spaces in dependencies.
  * ob-installdocs now correctly handles "docs" file lines with
    destinations omitted.
  * Underscores are no longer allowed in substitution variable names, in
    stricter compliance with SPF 2.0.
  * Code quality has been improved: eval commands are now safer against
    mistakes in input validation/escaping, echo commands have been
    replaced with printf and here-documents, errors are handled (making
    the shell "-e" option safe), no undefined variables are expanded
    (making the shell "-u" option safe), obselescent [ (test) command
    options have been replaced, commands are protected from variable
    arguments beginning with "-", and printf commands are protected
    against variable format strings that might contain "%".


  * The minimum version of the GNU General Public License has been
    bumped to version 3.

Shortlog of Changes Since Version 3.0.0-beta7

     1	P. J. McDermott
   556	Patrick McDermott

Commit descriptions suppressed for brevity.  To see a log summary with
descriptions, run:

    $ git shortlog opkbuild-3.0.0-beta7..opkbuild/4.0.0

Diffstat of Changes Since Version 3.0.0-beta7

 124 files changed, 7308 insertions(+), 5382 deletions(-)

Difference statistics truncated for brevity.  To see full statistics,

    $ git diff --stat --find-renames=50% \
    > opkbuild-3.0.0-beta7..opkbuild/4.0.0

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

Attachment: pgpgV8Usa1rzh.pgp
Description: OpenPGP digital signature