Reproducible builds folks: Reproducible Builds: Weekly report #128
Here's what happened in the Reproducible Builds effort between Sunday October 1 and Saturday October 7 2017:
Media coverage
- Bernhard sent another report about the status of Reproducible openSUSE. They currently they are at 478 unreproducible and 11,111 reproducible packages out of 11,821, so also at 93%!
- Holger attempted to get a Reproducible Builds devroom at FOSDEM 2018 but sadly this proposal was not accepted.
- Bernhard M. Wiedemann:
- Chris Lamb:
- jathan:
- Adrian Bunk (27)
- Chris Lamb:
- Mattia Rizzolo:
- Chris Lamb:
- jar.pm: Clojure considers the .class file to be stale if it shares the same timestamp of the .clj. We thus adjust the timestamps of the .clj to always be younger.. (Closes: #877418)
- jar.pm, zip.pm: Allow $options member_normalizer callback to support specifying the timestamp.
- zip.pm: Ensure that we don't try and write an old timestamp; Archive::Zip will do this anyway, just noisily.
- zip.pm: Calculate the target canonical time in just one place.
- bin/strip-nondeterminism: Print a warning in --verbose mode if no canonical time specified.
- jar.pm: Update comment to reflect that NTFS/FAT has a 2s timestamp granularity.
- jar.pm: s/NTFS/FAT/. Thanks to James Ross.
- New features:
- Add a
--auto-buildoption to try to determine which specific variations cause unreproducibility. - Add a
--source-patternoption to restrict copying ofsource_root, and set this automatically in our presets.
- Add a
- Usability improvements:
- Improve error messages in some common scenarios.
- Fiving a
source_rootorbuild_commandthat doesn't exist - Using reprotest with default settings after not installing Recommends
- Fiving a
- Output hashes after a successful
--auto-build. - Print a warning message if we reproduced successfully but didn't vary everything.
- Improve error messages in some common scenarios.
- Fix varying both
umaskanduser_groupat the same time. - Have
dpkg-sourceextract to different build dir if varying the build-path. - Pass
--exclude-directory-metadatatodiffoscope(1)by default as this is the majority use-case. - Various bug fixes to get the basic
dsc+schrootexample working.
- Ximin Luo:
- Mattia Rizzolo:
- Re-deploy
odxu4aafter being reinstalled and renamed fromodxu4.
- Re-deploy
- Vagrant Cascadian:
pristine-tar 1.41: support for signatures
This release saw the addition of support for storage and retrieval of upstream signatures, contributed by Chris Lamb.
pristine-tar 1.42: optionally recompressing tarballs
I had this idea and wanted to try it out: most of our problems reproducing tarballs come from tarballs produced with old compressors, or from changes in compressor behavior, or from uncommon compression options being used. What if we could just recompress the tarballs before importing then? Yes, this kind of breaks the pristine bit of the whole business, but on the other hand, 1) the contents of the tarball are not affected, and 2) even if the initial tarball is not bit by bit the same that upstream release, at least future uploads of that same upstream version with Debian revisions can be regenerated just fine.
In some cases, as the case for the test tarball
In other cases, if the current heuristics can t produce a reasonably small delta, recompressing makes a huge difference. It s the case for
Recompressing is not enabled by default, and can be enabled by passing the
Watch out for future events in Prishtina, the pizzas are huge, but that didn't stop them disappearing before we finished the photos:
I've just released
Some things I don't really understand reading in German media

.
Both Richard and I first tried to extract all the metadata to display fonts in a proper way to the users from the font files directly. This turned out to be very difficult, since font metadata is often wrong or incomplete, and certain desirable bits of metadata (like a longer description) are missing entirely. After messing around with different ways to solve this for days (afterall, by extracting the data from font files directly we would have hundreds of fonts directly available in software centers), I also came to the same conclusion as Richard: The best and easiest solution here is to mandate the availability of metainfo files per font.
Which brings me to the second issue: What is a font? For any person knowing about fonts, they will understand one font as one font face, e.g. Lato Regular Italic or Lato Bold . A user however will see the font family as a font, e.g. just Lato instead of all the font faces separated out. Since AppStream data is used primarily by software centers, we want something that is easy for users to understand. Hence, an AppStream font components really describes a font family or collection of fonts, instead of individual font faces. We do also want AppStream data to be useful for system components looking for a specific font, which is why font components will advertise the individual font face names they contain via a 
I fixed a bug in Launchpad recently that led me deeper than I expected.
Launchpad uses