On 2026-05-02, Vagrant Cascadian wrote: > On 2025-01-24, Vagrant Cascadian wrote: >> On 2024-04-11, Chris Lamb wrote: >>> Whilst working on the Reproducible Builds effort [0], we noticed that >>> pympress could not be built reproducibly. >>> >>> This is because the generated documentation included memory references >>> such as the following: >>> >>> pointer = <GdkPixbuf.Pixbuf object at 0x7f2d6ee3e700 (GdkPixbuf at >>> 0x1d4cf90)> >>> >>> A patch attached that uses Python's "default = None […] if default is >>> None: default = realdefault" pattern. >> >> I found two more issues: >> >> The documentation is afffected by LANGUAGE and LC_ALL environment >> variables. >> >> The kernel version is embeded in the documentation. >> >> With the two additional patches applied and the original patch submitted >> by Chris, I think pympress should build reproducibly! > > I have confirmed that the patches are still needed and still fix the > issues. An updated diff attached. > > I would like to fix this with an NMU sometime in the coming week or two, > please let me know if there are any outstanding concerns!
I have uploaded an NMU to DELAYED/10. Debdiff attached! live well, vagrant
diff -Nru pympress-1.8.5/debian/changelog pympress-1.8.5/debian/changelog --- pympress-1.8.5/debian/changelog 2025-05-09 21:19:22.000000000 -0700 +++ pympress-1.8.5/debian/changelog 2026-05-14 10:08:25.000000000 -0700 @@ -1,3 +1,17 @@ +pympress (1.8.5-4.1) unstable; urgency=medium + + * Non-maintainer upload. + + [ Chris Lamb ] + * Make the build reproducible (Closes: #1068795) + + [ Vagrant Cascadian ] + * pympress/app.py: Redact platform.release and platform.version for + reproducible builds. + * debian/rules: Force locale for documentation generation. + + -- Vagrant Cascadian <[email protected]> Thu, 14 May 2026 10:08:25 -0700 + pympress (1.8.5-4) unstable; urgency=medium * Team upload. diff -Nru pympress-1.8.5/debian/patches/make-the-build-reproducible-closes-10687.patch pympress-1.8.5/debian/patches/make-the-build-reproducible-closes-10687.patch --- pympress-1.8.5/debian/patches/make-the-build-reproducible-closes-10687.patch 1969-12-31 16:00:00.000000000 -0800 +++ pympress-1.8.5/debian/patches/make-the-build-reproducible-closes-10687.patch 2026-05-14 10:08:25.000000000 -0700 @@ -0,0 +1,49 @@ +From: Chris Lamb <[email protected]> +Date: Thu, 11 Apr 2024 17:33:55 -0700 +X-Dgit-Generated: 1.8.5-4 aa7e3587e4dbd812b31a72c314b9685ef01a20ed +Subject: Make the build reproducible (Closes: #1068795) + + +--- + +diff --git a/pympress/app.py b/pympress/app.py +index 7f5e3b7..70dd42c 100644 +--- a/pympress/app.py ++++ b/pympress/app.py +@@ -150,11 +150,14 @@ class Pympress(Gtk.Application): + Gtk.Application.do_startup(self) + + +- def do_activate(self, timestamp=GLib.get_current_time()): ++ def do_activate(self, timestamp=None): + """ Activate: show UI windows. + + Build them if they do not exist, otherwise bring to front. + """ ++ if timestamp is None: ++ timestamp = GLib.get_current_time() ++ + if self.gui is None: + if self.auto_log_level: + self.activate_action('log-level', logging.INFO) +diff --git a/pympress/pointer.py b/pympress/pointer.py +index 1e02b40..98ab58a 100644 +--- a/pympress/pointer.py ++++ b/pympress/pointer.py +@@ -57,7 +57,7 @@ class Pointer(object): + builder (:class:`~pympress.builder.Builder`): A builder from which to load widgets + """ + #: :class:`~GdkPixbuf.Pixbuf` to read XML descriptions of GUIs and load them. +- pointer = GdkPixbuf.Pixbuf() ++ pointer = None + #: `(float, float)` of position relative to slide, where the pointer should appear + pointer_pos = (.5, .5) + #: `bool` indicating whether we should show the pointer +@@ -84,6 +84,7 @@ class Pointer(object): + + def __init__(self, config, builder): + super(Pointer, self).__init__() ++ self.pointer = GdkPixbuf.Pixbuf() + self.config = config + + builder.load_widgets(self) diff -Nru pympress-1.8.5/debian/patches/pympressapp.py-redact-platform.release-a.patch pympress-1.8.5/debian/patches/pympressapp.py-redact-platform.release-a.patch --- pympress-1.8.5/debian/patches/pympressapp.py-redact-platform.release-a.patch 1969-12-31 16:00:00.000000000 -0800 +++ pympress-1.8.5/debian/patches/pympressapp.py-redact-platform.release-a.patch 2026-05-14 10:08:25.000000000 -0700 @@ -0,0 +1,22 @@ +From: Vagrant Cascadian <[email protected]> +Date: Fri, 24 Jan 2025 14:53:44 -0800 +X-Dgit-Generated: 1.8.5-4 6bbd467f18ec43b22862edb8dd90e2f820ef799d +Subject: pympress/app.py: Redact platform.release and platform.version for + +reproducible builds. + +--- + +diff --git a/pympress/app.py b/pympress/app.py +index 70dd42c..9d9b882 100644 +--- a/pympress/app.py ++++ b/pympress/app.py +@@ -91,7 +91,7 @@ class Pympress(Gtk.Application): + version_string = ' '.join([ + 'Pympress:', util.get_pympress_meta()['version'], + '; Python:', platform.python_version(), +- '; OS:', platform.system(), platform.release(), platform.version(), ++ '; OS:', platform.system(), 'REDACTED', 'REDACTED', + '; Gtk {}.{}.{}'.format(Gtk.get_major_version(), Gtk.get_minor_version(), Gtk.get_micro_version()), + '; GLib {}.{}.{}'.format(GLib.MAJOR_VERSION, GLib.MINOR_VERSION, GLib.MICRO_VERSION), + '; Poppler', document.Poppler.get_version(), document.Poppler.get_backend().value_nick, diff -Nru pympress-1.8.5/debian/patches/series pympress-1.8.5/debian/patches/series --- pympress-1.8.5/debian/patches/series 2025-05-09 21:19:22.000000000 -0700 +++ pympress-1.8.5/debian/patches/series 2026-05-14 10:08:25.000000000 -0700 @@ -4,3 +4,5 @@ fix-docs-build.patch setup.cfg-underscore.patch 0006-Work-around-pygobject-iterator.patch +make-the-build-reproducible-closes-10687.patch +pympressapp.py-redact-platform.release-a.patch diff -Nru pympress-1.8.5/debian/rules pympress-1.8.5/debian/rules --- pympress-1.8.5/debian/rules 2025-05-09 21:19:22.000000000 -0700 +++ pympress-1.8.5/debian/rules 2026-05-14 10:08:25.000000000 -0700 @@ -6,6 +6,9 @@ # Needed by sphinx build export HOME=$(CURDIR)/debian/fakehome/ +export LANGUAGE=en +export LC_ALL=C.UTF-8 + %: dh $@ --with sphinxdoc --buildsystem=pybuild
signature.asc
Description: PGP signature

