[Dev] libretools 20130605.1 release anouncement [libre]

Luke T. Shumaker lukeshu at sbcglobal.net
Fri Jun 7 03:05:29 GMT 2013

Last night I pushed libretools 20130605.1 to [libre].

Things you will NEED to do:
 1. Merge /etc/libretools.conf{,.pacnew}
    The defaults in the new file are good.
 2. Set GPGKEY in /etc/makepkg.conf or the environment
    This replaces SIGID from /etc/libretools.conf
 3. Add 'repo' to your ~/.ssh/config
    Get the details from /etc/libretools.conf
    This replaces the 'parabola' host, you can just rename it.

If you want more details, read on.

I can read `command -h`, just give me a few more key points.

The `librerelease` command by default runs
`sudo librechroot clean-repo` after releasing the packages.  If you
don't want this, change HOOKPOSTRELEASE in libretools.conf.

The `libremakepkg` command dissables networking during build() and
package().  This is a feature (though ATM it breaks distcc, we're
working on that).  If you build a package that fetches the source from
version control, you should be using librefetch instead.

To use `librefetch`, do something like this:


Then run `librefetch -g >> PKGBUILD`, then `makepkg -g >> PKGBUILD.
You can manipulate the source before it is tar'ed up by adding an
mksource() function.

I want a full release announcment.

The prior version of libretools depended on and was tightly coupled
with devtools.  libretools now bundles it's own (patched) version of
devtools to be rid of this fragile dependency.

There was also a lot of cleanup, several tools were removed, added, or

 - Tools that were removed:
   - abslibre-commit: just use `git commit`
   - buildenv
   - is_unfree
   - lb
   - librecommit: just use `git commit`
   - librediff: just use `diff`
   - libremkchroot: use `librechroot make`
   - librerepkg: This and 'rePKGBUILD's have been deprecated.
   - updateabslibre: Just use `git pull`
   - update-cleansystem: No longer nescessary
 - Tools that moved to libretools-mips64el
   - add-mips64el
   - librebasebuilder
   - mips-add
   - mipsrelease
 - Tools that were adopted from devtools:
   - mkarchroot => archroot: adapted version of mkarchroot
   - checkpkg: helps compare a new package to the version on repos
   - finddeps
   - find-libdeps
   - find-libprovides
   - lddd
 - Tools that are new:
   - libreblacklist: Is to blacklist.txt what libremessages is to
   - librefetch: Automates mksource/SRCBUILD source generation/fetching
   - librelib: for internal use by libretools
   - pkgbuild-check-licenses: checks the license arrays of PKGBUILDs

Now, for changes (as opposed to additions and subtractions).

There are so many bugfixes that if I listed them all, you would wonder
that the old version ever worked at all.

I put a ton of work into making things detect, and have reasonable
defaults.  You shouldn't need to make any changes to the default

The chroot system

The whole chroot system changed significantly:
 - Read `librechroot help`, it explains a ton.
 - The archroot version was bumped from 2 to 3, so existing chroots
   will have to be rebuilt (or you could bump the version, but if you
   can do that, you don't need to be reading this).
 - The chroot tools are configured in /etc/libretools.d/chroot.conf or

About libremakepkg specifically:
 - Look at `librechroot -h` for invocation.
 - The advantage of libremakepkg, as opposed to plain makepkg, is that
   it takes a few extra steps to ensure the quality of the package:
   - Removes packages that aren't dependencies or in 'base-devel', to
     ensure no unintended deps.
   - Disables networking during build() and package()
   - Has hooks to examine the PKGBUILD, source directory, and final
     package; though these are currently under-utilized, and it only
     runs `pkgbuild-check-nonfree`.
 - It will automatically add packages built to a local pacman
   repository, so that they can be used as dependencies for other
   packages that you are building.  The local repository is at `/repo`
   in the chroot.
 - It works from inside of the chroot! Fauno will be happy.  Notes
   about using it from inside of a chroot:
   - It will fail at adding the packages to the local repository unless
     `PKGDEST=/pkgdest` and `SRCDEST=/srcdest`.[0]
     effort this will take to fix; the relevent 
   - It still must be run with `sudo`, but the user you run it with
     will properly own the files.
   - I haven't written anything to help you set up a user in the


librefetch streamlines creating packages that require a mksource()
function or a SRCBUILD.  Specifying a "libre://filename.tar.gz" URL in
source=() causes it to try downloading an already-built sourceball,
and if it doesn't exist to run SRCBUILD or mksource() automagically.
It's really neat and convienient; now one can build the source and the
package with one call to `makepkg`.

Getting help

Any flags or options that aren't well explaind in the help output of
the command may be considered a bug, please report it (see below).

You can get help from the Parabola wiki's package maintainer guide:
Or this mailing list:  (put "[libretools] in the subject to get my attention)
   dev at list.parabolagnulinux.org
Or the #parabola IRC channel:
   Put 'lukeshu' to get my attention, however, right now I can only
   get on in evenings, so it might be a while before I reply.  Also, I
   only speak English (dumb American).

Reporting bugs

Please report bugs at

It also works to complain at 'lukeshu' on the #parabola IRC channel.
However, right now I can only get on in evenings, so it might be a
while before I reply.  Also, I only speak English (dumb American).

Happy hacking,
~ Luke Shumaker

[0] I'm not sure how much effort this would be to fix. The relevent
function is `chroot_add_to_local_repo()` in `makechrootpkg.sh`.

More information about the Dev mailing list