[Dev] libretools 20140120.1 release announcement [stable]

Luke T. Shumaker lukeshu at sbcglobal.net
Wed Jan 22 05:44:02 GMT 2014


I just moved libretools 20140120.1 from [libre-testing] to [libre].

TL;DR version:
 * Merge your .pacnew files!
 * librefetch is cooler now, see "Exciting changes" for details.
 * If you have any issues, yell at me: here, on IRC, or on the bug
   tracker.
(end TL;DR)

______________________________________________________________________
It was long path to get here.

This is the culmination of introducing new features and fighting
bugs that started with v20140106.

    v20131112 [*]                     # previous stable release
        |
        V
    v20140106                         # introduced many instabilities
        |
        V
    v20140106.1 -> testing-20140106.1 # fixed some, still unstable, moved to testing
        |                  |
        V                  |
    v20131112 [*]          V          # rolled back to previous stable version
        |          testing-20140119
        |                  |
        |                  V
        |          testing-20140120   # no release announcement, sorry
        |                  |
        V                  V
    v20140120.1 <- testing-20140120.1 # deemed stable, moved to [libre]

Because everything starting with v20140106 was considered unstable,
I'm going to cover all the net changes made.

Interestingly enough, the most serious and mysterious bugs were mostly
unrelated to the new features, but were due to other bugs manifesting
themselves because of small changes.

I especially want to thank André Delgado (Emulatorman) for patiently
trying each testing release and running various tests for me when it
didn't work; as there were multiple bugs that I couldn't replicate.

______________________________________________________________________
Exciting changes

 * librefetch got a whole lot cooler.
 * librestage/librerelease got cooler to match.

It used to be that if you needed a custom source tarball, you:
 1. Generated it manually.
 2. Manually uploaded it to https://repo.parabolagnulinux.org/other/${whatever}.tar.gz
 3. Wrote your PKGBUILD using that URL.
 4. Built your package.
 5. Used `librestage`/`librerelease` to release the package.

And it was a pain.  Then, I created librefetch, which automated parts
of it, and made things mostly pleasant:
 1. Define your PKGBUILD with a "libre://" URL.
 2. Build your package, letting librefetch generate the source file automagically. 
 3. Manually upload it to https://repo.parabolagnulinux.org/other/${whatever}.tar.gz
 4. Use `librestage`/`librerelease` to release the package.

Definitely better, but you still had to manually upload the generated
source file.  But, worse is that you now had this "libre://" URL that
was gibberish unless the user had librefetch installed.  That's no
good.

So, in v20140106, librefetch learned how to recognize when an HTTPS
URL is a place that we upload them to, and only generate the file if
that's the case.  Now, we can use plain HTTPS URLs for generated
source files, while still taking advantage of librefetch:
 1. Define your PKGBUILD with an "https://repo.parabolagnulinux.org/other/" URL.
 2. Build your package, letting librefetch generate the source file automagically. 
 3. Manually upload it to https://repo.parabolagnulinux.org/other/${whatever}.tar.gz
 4. Use `librestage`/`librerelease` to release the package.

This does mean that librefetch is now handling all https:// URLs, but
it passes them straight through to `curl` if they don't match one of
the configured patterns.  You probably don't need to touch the default
configuration file, but this does mean that the configuration
changed.

But that still wasn't good enough, so I taught `librestage` and
`librerelease` how to upload the generated source file for you.  Now
the process is just:

 1. Define your PKGBUILD with an "https://repo.parabolagnulinux.org/other/" URL.
 2. Build your package, letting librefetch generate the source file automagically. 
 3. Use `librestage`/`librerelease` to release the package and upload the source.

Now, about the plain HTTPS URLs... where should you put the exact
paths?  Please have the source files follow one of these formats:
 - `other/$pkgbase/$pkgbase-$pkgver.tar.gz`
 - `other/~yourname/$pkgbase/$pkgbase-$pkgver.tar.gz` (for personal repos)

______________________________________________________________________
Boring changes

 * libremakepkg
    * Can now build `make --(all)source` files
    * Support the -r and -w flags do do bind mounts, same as
      librechroot.
 * librerelease
    * No longer cleans non-package files found in the staging
      directory.
    * The output format of `librerelease -l` changed a bit.
 * libremessages:
    * Added `find_cached_package`, which does what it sounds like.
    * Added `setup_traps`, which sets up the traps on TERM, HUP, QUIT,
      INT and ERR; correctly and simply.  (Though currently it is only
      used by `librefetch`)
 * The chroot unit tests now run faster if $TMPDIR is on btrfs
 * Added INSTALL and HACKING.md files

______________________________________________________________________
Configuration changes

 * The former "DIFFTOOL" is now called "DIFFPROG", for consistency
   with Arch devtools.  This affects `aur` and `diff-unfree`.
 * The value of REPODEST has changed to cause less clutter in ~repo on
   the server.
 * The librefetch configuration has changed, see above.

______________________________________________________________________
Boring ol' bugfixes

These are the bug that were present in v20131112 and are fixed in
v20140120.1; bugs in intermediate versions are not mentioned.

 * librechroot:
    * When deleting a chroot copy, it said 'temporary copy'.
    * Now handles mountpoints inside of CHROOTDIR correctly.
    * Fix minor grammar mistakes in the `librechroot help` text.
 * libremakepkg:
    * Now symlinks source files in the chroot when appropriate instead
      of copying them all the time.  Yes, actually a bug, it was
      supposed to do this all along, the weird part is that the bug
      manifest itself in a way that resulted in it working anyway.
    * Can now build bzr VCS packages (don't do this).  This had to do
      with how directories in $SRCDEST were handled.  I merged the
      bugfix to make it possible, but really, DON'T do this; use
      `librefetch` instead.
    * Now plays "nice" with restricted file permissions and
      restrictive ACLs.  By "nice", I mean it fails and informs the
      user in sane ways, instead of mysteriously failing.
    * A couple of theoretical fixes with whitespace in filenames with
      the distcc module.
    * The support for LOGDEST was documented; support was added in
      version 20130914, but it wasn't ever documented.
 * librefetch:
    * Now correctly handles destination file paths containing the
      string "%u".
 * librelib:
    * Now sets TEXTDOMAIN in a way making it suitable for use by
      other, non-libretools applications.
 * checkpkg: (These came from Arch's devtools)
    * Create symlinks to old packages in $TEMPDIR isntead of $PWD.
    * Fixed the soname check. (Flags to tar were in the wrong order)
    * Only match .so at the end of filename in the soname check.
    * Fix finding local package files. 

Happy hacking,
~ Luke Shumaker



More information about the Dev mailing list