[Dev] libretools 20170505 release announcement

Luke Shumaker lukeshu at lukeshu.com
Sat May 6 02:14:33 GMT 2017

I just released libretools 20170505 to [libre], and pushed the source
tarball to <https://repo.parabola.nu/other/libretools/>.

This feels like a big release to me, but to a user it's actually
probably pretty minor.

The TL;DR of changes from 20170117 to 20170505:

 - librechroot/libremakepkg:
   * The chroot version has been bumped from v3 to v4.  You will need
     to re-create your chroots.
   * Bugfix: Correctly handles when a btrfs subvolume exists inside of
     a chroot.  It no longer errors when trying to delete or sync that
 - libremakepkg
   * Now produces full-sourceballs ($pkgbase-$fullpkgver-$arch$SRCEXT)
     of the sources used to compile a package.  Unlike sourceballs
     produced by `makepkg --allsource`, the architecture is included
     in the filename.
 - librestage:
   * Will stage the sourceballs that libremakepkg now creates (see above).
   * Will no longer complain if you have uncommitted changes in the
     current directory.

The new sourceballs are important for GPL compliance, and for coming
reproducible builds.

Ok, the detailed change notes:

Lots and lots of code cleanup and tests and maintenance.

As you may be aware, libretools includes modified copies of several
programs from Arch's devtools.  With this release, I have worked hard
to organize the modifications made, and submit many of them upstream
to Arch.  I am very pleased at the number of times "@parabola.nu" now
appears in Arch's devtools commit log.

The bigger of changes from 20170117 to 20170505:

 - libremessages/messages.sh
   . common.sh:
     * find_cached_srcpackage was added
     * the (undocumented) check_root function is gone
 - librechroot/libremakepkg:
   . makechrootpkg.sh:
     * Do a better job of deciding when to use btrfs code.
     * (see above) Bugfix: Handles nested btrfs subvolumes.
   . arch-nspawn:
     * Bugfix: It should now be impossible for it to accidentally
       choose a file://var/cache URL as the pacman mirror URL.
     * Chroots now run with LANG=en_US.UTF-8 instead of LANG=C.
     * (see above) The chroot version has been bumped from v3 to v4.
 - libremakepkg:
   . makechrootpkg.sh:
     * Chroot preparation has been simplified; no instead of having
       /startdir_host and such be bind-mounted to the outside, with
       symlinks in /startdir, the directories are bind-mounted directly.
       Also, the build user numeric UID now matches the numeric UID of
       the invoking $SUDO_USER.
     * (see above) now produces full-sourceballs
   . distcc-tool:
     * Uses SO_REUSEADDR, so errors with calling it rapidly should be
     * More sub-process management; there should be fewer superfluous
       error messages.
   * Bugfix: Correctly fail if a hook fails.
   * Bugfix: distcc should work correctly again.
   * Document that the MAKEFLAGS variable is set in the chroot.  Also,
     generally touch up the documentation.
 - gitget:
   * Bugfix: correctly hande the -f[orce] flag on bare repositories.
 - librefetch:
   * Bugfix: Correctly handle existing SRCBUILD files.
   * Bugfix: Correctly fail if given bogus flags.
 - libredbdiff
   * Bugfix: correctly handle packages with multiple provides.
   * Has a configuration file now, instead of hardcoding everything.
   * Has more detailed --help text.
 - toru-path:
   * Bugfix: shouldn't be broken anymore
   * Has help text now.
 - librestage:
   * (see above) Stages libremakepkg-generated sourceballs.
   * (see above) No longer calls XBS; so it will no longer complain if
     you have uncommitted changes in the current directory.
   * Is ready for ${pkgbase}-debug packages that will be produced by
     the next version of pacman (are produced by pacman-git).
   * No longer requires the ARCHES libretools.conf variable, it now
     knows automatically
 - other
   * Update the build system from autothing v2 to v3
   * Lots of general code cleanup
     . Lots of shellcheck-running
   * Lots more tests
   * Emacs is no longer required during the build process.  This is a
     result of getting changes upstreamed in Arch.

Happy hacking,
~ Luke Shumaker

More information about the Dev mailing list