What happened in the Reproducible Builds effort between Sunday January 1 and Saturday January 7 2017:
GSoC and Outreachy updates
- Maria Glukhova blogged about Getting to know diffoscope better.
- #849999 was filed: “dpkg-dev should not set SOURCE_DATE_EPOCH to the empty string”
Packages reviewed and fixed, and bugs filed
Reviews of unreproducible packages
13 package reviews have been added, 4 have been updated and 6 have been removed in this week, adding to our knowledge about identified issues.
2 issue types have been added/updated:
- Add new randomness_in_documentation_generated_by_yardoc toolchain issue.
- Add fix for randomness_in_documentation_generated_by_yardoc toolchain issue.
Upstreaming of reproducibility fixes
Weekly QA work
During our reproducibility testing, the following FTBFS bugs have been detected and reported by:
- Chris Lamb (4)
[ Chris Lamb ] * Optimisations: - Avoid multiple iterations over archive by unpacking once for an ~8X runtime optimisation. - Avoid unnecessary splitting and interpolating for a ~20X optimisation when writing --text output. - Avoid expensive diff regex parsing until we need it, speeding up diff parsing by 2X. - Alias expensive Config() in diff parsing lookup for a 10% optimisation. * Progress bar: - Show filenames, ELF sections, etc. in progress bar. - Emit JSON on the the status file descriptor output instead of a custom format. * Logging: - Use more-Pythonic logging functions and output based on __name__, etc. - Use Debian-style "I:", "D:" log level format modifier. - Only print milliseconds in output, not microseconds. - Print version in debug output so that saved debug outputs can standalone as bug reports. * Profiling: - Also report the total number of method calls, not just the total time. - Report on the total wall clock taken to execute diffoscope, including cleanup. * Tidying: - Rename "NonExisting" -> "Missing". - Entirely rework diffoscope.comparators module, splitting as many separate concerns into a different utility package, tidying imports, etc. - Split diffoscope.difference into diffoscope.diff, etc. - Update file references in debian/copyright post module reorganisation. - Many other cleanups, etc. * Misc: - Clarify comment regarding why we call python3(1) directly. Thanks to Jérémy Bobbio <email@example.com>. - Raise a clearer error if trying to use --html-dir on a file. - Fix --output-empty when files are identical and no outputs specified. [ Reiner Herrmann ] * Extend .apk recognition regex to also match zip archives (Closes: #849638) [ Mattia Rizzolo ] * Follow the rename of the Debian package "python-jsbeautifier" to "jsbeautifier". [ siamezzze ] * Fixed no newline being classified as order-like difference.
[ Ximin Luo ] * Stop advertising variations that we're not actually varying. That is: domain_host, shell, user_group. * Fix auto-presets in the case of a file in the current directory. * Allow disabling build-path variations. (Closes: #833284) * Add a faketime variation, with NO_FAKE_STAT=1 to avoid messing with various buildsystems. This is on by default; if it causes your builds to mess up please do file a bug report. * Add a --store-dir option to save artifacts.
Other contributions (not yet uploaded):
- Chris Lamb:
reproducible-builds.org website development
``website.git notifications now go to
#reproducible-builds. Thanks to
danielshand the KGB bot maintainers.
- Daniel Shahaf:
- Holger Levsen:
- Chris Lamb:
arm64architecture was fully tested in all three suites in just 15 days. Thanks again to Codethink.co.uk for their support!
- Log diffoscope profiling info. (lamby)
-O --column-insertsto make easier to import our main database dump into a non-PostgreSQL database. (mapreri)
armhfnetwork: CPU frequency scaling was enabled for three Firefly boards, enabling the CPUs to run at full speed. (vagrant)
- Arch Linux and Fedora tests have been disabled (h01ger)
- Improve mail notifications about daily problems. (h01ger)
This week’s edition was written by Chris Lamb, Holger Levsen and Vagrant Cascadian, reviewed by a bunch of Reproducible Builds folks on IRC & the mailing lists.