[presentations] 01/01: LibrePlanet 2017: You, too, can write reproducible software!

Ximin Luo infinity0 at debian.org
Wed Apr 5 20:08:17 UTC 2017


This is an automated email from the git hooks/post-receive script.

infinity0 pushed a commit to branch master
in repository presentations.

commit ad3a215ce8922cc4c9e84b91bf74e5ad7202bd27
Author: Ximin Luo <infinity0 at debian.org>
Date:   Wed Apr 5 22:07:44 2017 +0200

    LibrePlanet 2017: You, too, can write reproducible software!
---
 .../libre-reproducible.txt                         | 125 +++++++++++++++++++++
 1 file changed, 125 insertions(+)

diff --git a/2017-03-25-libreplanet-You-too-can-write-reproducible-software/libre-reproducible.txt b/2017-03-25-libreplanet-You-too-can-write-reproducible-software/libre-reproducible.txt
new file mode 100644
index 0000000..f11da98
--- /dev/null
+++ b/2017-03-25-libreplanet-You-too-can-write-reproducible-software/libre-reproducible.txt
@@ -0,0 +1,125 @@
+-----------------------
+| General Information |
+-----------------------
+
+IRC:
+    reproducible-builds on OFTC
+general information: 
+    reproducible-builds.org
+test website: 
+    tests.reproducible-builds.org
+
+-------------------------
+| What you can work on! |
+-------------------------
+
+File reproducible bugs (with patches!) against Debian packages:
+
+	(1) Find an irreproducible package 
+	     These packages are all tagged with specific know issues. After navigating to a package page, click 
+	     "Notes" at the top of the left navigation:
+			https://tests.reproducible-builds.org/debian/unstable/amd64/index_notes.html
+	(2) Patch and submit a bug:
+        Please use this bug format and add user tags for tracking our work!
+        https://wiki.debian.org/ReproducibleBuilds/Contribute#How_to_report_bugs
+
+To see irreproducible packages with bugs presently file against them (for inspiration or out of curiousity), check out the packages in this list. Those with a red "#" have bugs filed against the package, linked from the package page:
+	https://tests.reproducible-builds.org/debian/unstable/amd64/index_notes.html
+
+Want something of NEXT LEVEL difficulty?
+Investigate packages with unknown sources of irreproducibility:
+
+These packages have no "notes" -- their source of irreproduciblity is UNKNOWN:
+https://tests.reproducible-builds.org/debian/unstable/amd64/index_no_notes.html
+
+They might have an existing issue:
+	*  https://tests.reproducible-builds.org/debian/index_issues.html
+Or, they might not! If you discover the issue:
+	* Talk to the people in the #reproducible-builds on the OFTC irc channel to create a new issue to tag the package with.
+	* Submit a bug+patch! 
+		https://wiki.debian.org/ReproducibleBuilds/Contribute#How_to_report_bugs
+
+
+Check the reproduciblity of your own binaries:
+
+	(1) Use diffiscope to compare binaries
+	    https://diffoscope.org/
+	(2) Optionally, check out reprotest to build you binaries or packages twice then compare the result
+		https://packages.debian.org/sid/reprotest
+
+----------------------------------------
+| Help achieving binary reproduciblity |
+----------------------------------------
+
+Need help identify sources of irreproducibility?
+
+	* See TIMESTAMPS?
+		* https://reproducible-builds.org/docs/timestamps/
+	* Differences due to different timezones?
+		* https://reproducible-builds.org/docs/timezones/
+	* Different locales?
+		* https://reproducible-builds.org/docs/locales/
+	* Random bits due to unitialized values?
+		* https://reproducible-builds.org/docs/value-initialization/
+	* Differences in file modifications dates, users or groups or numeric ids, file lists in documentation?
+		* https://reproducible-builds.org/docs/archives/
+	* Capturing the build path
+		* e.g. https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/music.html
+		* don't need to fix/analyse yet, awaiting some GCC patches which will fix most of these
+		* afterwards, some things might remain unfixed, but it would be easier to figure this out after the patches are applied
+	* Did you sort your inputs at each stage of the build process?
+		* https://reproducible-builds.org/docs/stable-inputs/
+	* Need (psuedo-)randomness in your build process?
+		* https://reproducible-builds.org/docs/randomness/
+	* Using perl, python or ruby? Remember to sort outputs!
+		* https://reproducible-builds.org/docs/stable-outputs/
+
+---------------------------
+| Diffoscope introduction |
+---------------------------
+
+Making specific tools reproducible
+	* Ideally, patch the tool that produces the unreproducibility
+		* But sometimes this is not possible for backwards-compat reasons and others
+	* More tool-specific options:
+		* https://wiki.debian.org/ReproducibleBuilds/Howto
+	* Our standardised environment variables
+		* SOURCE_DATE_EPOCH https://reproducible-builds.org/specs/source-date-epoch/
+		* more general info https://wiki.debian.org/ReproducibleBuilds/StandardEnvironmentVariables
+
+
+Go over examples unreproducible packages on tests.r-b.org
+	* https://tests.reproducible-builds.org/debian/unstable/amd64/pkg_set_required.html
+		* bash, perl, build-path, can ignore for the time being (until after our GCC patches)
+		* xz-utils: sorting/locale, $SHELL
+		* dash is hard, might be good as a manual example to demonstrate the diffoscope+rebuild workflow
+	* https://tests.reproducible-builds.org/debian/unstable/amd64/pkg_set_build-essential.html
+		* haven't seen these before, good to demonstrate "how to analyse"
+		* systemd, lots of differences but very similar issues
+
+
+Go through previous blog posts
+	* analyse chris' and others' patches on existing patches, usually they are smaller and easier to "digest"
+		* https://reproducible.alioth.debian.org/blog/
+
+
+More examples:
+  - https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/diffoscope-results/html2canvas.html
+    sorting, probably best to patch uglifyjs, might be locale-affected
+  - https://tests.reproducible-builds.org/debian/rb-pkg/testing/i386/diffoscope-results/naga.html
+    sorting, javadoc, might be locale-dependent
+
+
+== outline of talk ==
+
+- Introductions of people in the room, what projects they work on, what they would like to get out of the workshop
+- Introduction to Debian
+- Introduction to our test website
+  - What the icons mean
+  - Diffoscope output
+  - Notes / Issues
+- Vagrant introduces reprotest
+- Ximin's outline of how we approach making individual packages reproducible
+- Individual work time!
+
+

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/presentations.git



More information about the Reproducible-commits mailing list