- From: Patrick McDermott <patrick DОТ mcdermott АТ libiquity DОТ com>
- To: proteanos-dev АТ lists DОТ proteanos DОТ com
- Date: Tue, 18 Jun 2019 01:56:45 -0400
- Message-id: 20190618015645 DОТ patrick DОТ mcdermott АТ libiquity DОТ com
About ===== 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: http://specs.proteanos.com/spf-2.0/ opkbuild is similar in function to the development library and utilities of dpkg, the Debian package manager: https://packages.debian.org/sid/dpkg-dev https://packages.debian.org/sid/libdpkg-perl https://wiki.debian.org/Teams/Dpkg/ Downloading =========== Source archives are available from the files site by HTTP or FTP: http://files.proteanos.com/pub/opkbuild/4.1.0/ ftp://files.proteanos.com/pub/opkbuild/4.1.0/ Here are the MD5 checksums: 5d445460be2cf1780612b6b3afb87b6d opkbuild-4.1.0.tar.gz 7ebcf4b6bad44ae49720d610d5f47c2e opkbuild-4.1.0.tar.bz2 20d8b063937ea270f7702c4171a4e2e1 opkbuild-4.1.0.tar.xz Here are the SHA-256 checksums: b37da5aa54726d5230b6aa51853392fc2bd4edb3afcdb4e34c32d78eba852def opkbuild-4.1.0.tar.gz 63ebaa1006401769c0bbc14c8a80b57942e2ab7debc82581236e6befc625c47f opkbuild-4.1.0.tar.bz2 9522f8c7e770c896d64db9fc007a035a07da5795167d20239e6f0e8ac83a4496 opkbuild-4.1.0.tar.xz The sources are maintained in a Git repository: http://git.proteanos.com/opkbuild/opkbuild.git/ git://git.proteanos.com/opkbuild/opkbuild.git/ This release is marked by the "opkbuild/4.1.0" tag. NEWS for Version 4.1.0 ====================== The "build-dependency hell and determinism" release. Utilities: * opkbuild now sets the standardized "SOURCE_DATE_EPOCH" environment variable to assist in making builds reproducible. See specification at <https://reproducible-builds.org/specs/source-date-epoch/>. * ob-buildopk now strives to build reproducible opk archives. Specifically, archive and member modification times are set to a package's changelog date, owners and groups are set to 0, and file ordering is now deterministic. Setting modification times of symbolic links requires a "touch" utility that accepts the non- standard "-h" option (supported in BusyBox 1.22.0 and later); without it, packages with symbolic links won't be fully reproducible. * ob-gencontrol now generates source package control files with "Binary" and "Build-Depends" fields. * ob-installplatconf now supports platconf directories with upstream versions containing pattern matching notation (e.g. "foo_1.*"). This complies with the latest draft of SPF 2.0. * ob-installplatconf is now covered by the test suite. libopkbuild: * New functions ob_rfc822_mktime() and ob_iso8601_gmtime() have been added. * ob_set_source_substvar(), ob_set_binary_substvar(), and ob_substvars() are now covered by the test suite. * ob_get_system_path() with the "platconf" path_id now accepts a single "plat" argument. The three-argument form is now deprecated. * ob_get_system_path() with the "buildflags" or "platconf" path_id now accepts an "OB_TEST_DATADIR" to override the data directory prefix. Build system: * configure now checks for fakeroot, touch (preferably with the "-h" option), tar (with the "-T" and "--no-recursion" options), and gzip. Documentation: * The manual is now called "OPK Build System" instead of the ambiguous "Distribution Build System". Shortlog of Changes Since Version 4.0.2 ======================================= Patrick McDermott (76): Makefile.am: Add spaces around "=" tests/lib/ob_substvars.sh: New test file ob_set_*_substvar(), ob_substvars(): Use lowercase eval vars _ob_parse_control_error(): Make arg vars local tests/lib/ob_parse_control.sh: Use tests/aux/common.sh tests/aux/common.sh: Check whitespace in cmd_is() Makefile.am: Make detached OpenPGP signatures lib/time.sh: New file tests/lib/ob_rfc822_mktime.sh: New file ob_rfc822_mktime(): Fix parsing tests/lib/ob_rfc822_mktime.sh: Make all tests after 1970 local time ob_rfc822_mktime(): Parse month tests/lib/ob_rfc822_mktime.sh: Test Y2k38 ob_rfc822_mktime(): Drop "+" TZ sign tests/lib/ob_rfc822_mktime.sh: Fix test result tests/lib/ob_iso8601_gmtime.sh: New file ob_iso8601_gmtime(): Fix dates after leap days opkbuild: Set SOURCE_DATE_EPOCH ob-buildopk: Make archive member mtimes deterministic ob-buildopk: Add control.tar.gz before data.tar.gz ob-buildopk: Make archive member ordering deterministic ob-buildopk: Make archive member owners/groups deterministic TODO: Scrap outer archive conversion to ar TODO: Reproducible .opk's is done? TODO: Add more tasks opkbuild: Drop useless fake privileges tests/data/pkg/changelog: Change date tests/aux/common.sh: Set SOURCE_DATE_EPOCH tests/exe/ob-genchanges.sh: Update date (changed in 895ed22) tests/exe/ob-buildopk.sh: Run ob-buildopk with fakeroot tests/exe/ob-buildopk.sh: Test member ordering tests/exe/ob-buildopk.sh: Remove directories from test results ob-buildopk: Don't reverse sort archive members with -T configure.ac, config.sh.in: Check whether touch accepts -h ob-buildopk: Use ${TOUCH} ob-buildopk: Use ${HAVE_TOUCH_NODEREF} ob-buildopk: Use chown -h tests/exe/opkbuild.sh: Update and check archive member ordering MD5SUMS, SHA256SUMS: Exclude from Git ob-gencontrol: Move Installed-Size calculation into separate func tests/data/pkg/control: Add B-D tests/exe/opkbuild.sh: Don't check build deps ob-gencontrol: Generate different fields for source packages tests/exe/ob-gencontrol.sh: Test source package control contents ob-gencontrol: Sort source package Binary field value NEWS, configure.ac: Set version to 4.0.2+dev NEWS: List recent changes NEWS: Mention SOURCE_DATE_EPOCH ob_get_system_path(): Allow package-less platconf ob_get_system_path(): Allow overriding DATADIR tests: Add platconf tests/exe/ob-installplatconf.sh: New file ob-installplatconf: Match upstream version patterns tests: Add data for commit dfb9fee tests: Generate rather than distribute platconf data TODO: Drop unnecessary task configure.ac, config.sh.in: Check for fakeroot configure.ac: Fix copy/paste error in "touch" section opkbuild, tests: Parameterize fakeroot NEWS, configure.ac: Set version to 4.1.0 NEWS: Add slogan, SPF note, and configure changes man/local.mk: Rename manual ob-gencontrol: Fix missing "src-" in source package names configure.ac, config.sh.in: Check for tar with options configure.ac: Unquote ${TOUCH} in test configure.ac: Fix line continuations configure.ac: Don't check for tar --numeric-owner Revert "tests/exe/ob-buildopk.sh: Remove directories from test results" tests/exe/opkbuild.sh: Add directories to test results ob-buildopk: Re-add directories to archives ob-buildopk, ob-unpacksource, tests: Use ${TAR} configure.ac: Redirect test output to config.log configure.ac, config.sh.in: Find gzip ob-buildopk: Fix non-deterministic mtimes in gzip headers NEWS: Eliminate reference link NEWS: Release opkbuild 4.1.0 Diffstat of Changes Since Version 4.0.2 ======================================= .gitignore | 2 + Makefile.am | 4 +- NEWS | 48 +++++++++ TODO | 9 -- config.sh.in | 5 + configure.ac | 144 ++++++++++++++++++++++++- lib/control.sh | 34 +++--- lib/local.mk | 3 +- lib/metadata.sh | 8 +- lib/metadata/proteanos.sh | 20 +++- lib/time.sh | 183 ++++++++++++++++++++++++++++++++ man/local.mk | 6 +- src/ob-buildopk.sh | 45 ++++++-- src/ob-gencontrol.sh | 89 +++++++++++++--- src/ob-installplatconf.sh | 26 +++-- src/ob-unpacksource.sh | 4 +- src/opkbuild.sh | 14 ++- tests/aux/common.sh | 73 ++++++++++++- tests/data/pkg/changelog | 2 +- tests/data/pkg/control | 1 + tests/data/pkg/platconf | 1 + tests/exe/ob-buildopk.sh | 8 +- tests/exe/ob-genchanges.sh | 2 +- tests/exe/ob-gencontrol.sh | 17 ++- tests/exe/ob-installplatconf.sh | 37 +++++++ tests/exe/ob-unpacksource.sh | 2 +- tests/exe/opkbuild.sh | 10 +- tests/lib/ob_iso8601_gmtime.sh | 43 ++++++++ tests/lib/ob_parse_control.sh | 18 +--- tests/lib/ob_rfc822_mktime.sh | 43 ++++++++ tests/lib/ob_substvars.sh | 45 ++++++++ tests/local.mk | 7 ++ 32 files changed, 839 insertions(+), 114 deletions(-) -- Patrick McDermott, CEO Libiquity Putting customers in control of high-quality technologies http://www.libiquity.com/
Attachment:
pgpYSfe7fShfn.pgp
Description: OpenPGP digital signature
- opkbuild 4.1.0 released, Patrick McDermott