christian-heusel ยท GitHub

Hello everyone ๐Ÿ‘‹๐Ÿป

I maintain the ueberzug package in Arch Linux that recently switched to using meson-python. Now that I have migrated the package to the new build backend on the new release the repo package has become unreproducible. This is most likely due to a path embedding in the package / debug package.

Since this seems to be considered a bug in meson I thought I'd just open an issue here:

Meson aims to support reproducible builds out of the box with zero additional work (assuming the rest of the build environment is set up for reproducibility). If you ever find a case where this is not happening, it is a bug. Please file an issue with as much information as possible and we'll get it fixed.

https://mesonbuild.com/Reproducible-builds.html

The diff on the package itself contains not much information:

--- /tmp/rebuilderddAxlb8/inputs/ueberzug-18.3.0-1-x86_64.pkg.tar.zst
+++ /tmp/rebuilderddAxlb8/out/ueberzug-18.3.0-1-x86_64.pkg.tar.zst
โ”œโ”€โ”€ ueberzug-18.3.0-1-x86_64.pkg.tar
โ”‚ โ”œโ”€โ”€ file list
โ”‚ โ”‚ @@ -1,9 +1,9 @@
โ”‚ โ”‚  -rw-r--r--   0 root         (0) root         (0)     6709 2024-11-04 09:38:44.000000 .BUILDINFO
โ”‚ โ”‚ --rw-r--r--   0 root         (0) root         (0)     3346 2024-11-04 09:38:44.000000 .MTREE
โ”‚ โ”‚ +-rw-r--r--   0 root         (0) root         (0)     3344 2024-11-04 09:38:44.000000 .MTREE
โ”‚ โ”‚  -rw-r--r--   0 root         (0) root         (0)      657 2024-11-04 09:38:44.000000 .PKGINFO
โ”‚ โ”‚  drwxr-xr-x   0 root         (0) root         (0)        0 2024-11-04 09:38:44.000000 usr/
โ”‚ โ”‚  drwxr-xr-x   0 root         (0) root         (0)        0 2024-11-04 09:38:44.000000 usr/bin/
โ”‚ โ”‚  -rwxr-xr-x   0 root         (0) root         (0)      215 2024-11-04 09:38:44.000000 usr/bin/ueberzug
โ”‚ โ”‚  drwxr-xr-x   0 root         (0) root         (0)        0 2024-11-04 09:38:44.000000 usr/lib/
โ”‚ โ”‚  drwxr-xr-x   0 root         (0) root         (0)        0 2024-11-04 09:38:44.000000 usr/lib/python3.12/
โ”‚ โ”‚  drwxr-xr-x   0 root         (0) root         (0)        0 2024-11-04 09:38:44.000000 usr/lib/python3.12/site-packages/
โ”‚ โ”œโ”€โ”€ .MTREE
โ”‚ โ”‚ โ”œโ”€โ”€ .MTREE-content
โ”‚ โ”‚ โ”‚ @@ -7,15 +7,15 @@
โ”‚ โ”‚ โ”‚  ./usr/bin time=1730713124.0 type=dir
โ”‚ โ”‚ โ”‚  ./usr/bin/ueberzug time=1730713124.0 size=215 sha256digest=b522624b354c337d1df752b23d358cccd7711adb83fef3e85cdccf3403d6b210
โ”‚ โ”‚ โ”‚  ./usr/lib time=1730713124.0 type=dir
โ”‚ โ”‚ โ”‚  ./usr/lib/python3.12 time=1730713124.0 type=dir
โ”‚ โ”‚ โ”‚  ./usr/lib/python3.12/site-packages time=1730713124.0 type=dir
โ”‚ โ”‚ โ”‚  /set mode=644
โ”‚ โ”‚ โ”‚  ./usr/lib/python3.12/site-packages/ueberzug time=1730713124.0 mode=755 type=dir
โ”‚ โ”‚ โ”‚ -./usr/lib/python3.12/site-packages/ueberzug/X.cpython-312-x86_64-linux-gnu.so time=1730713124.0 mode=755 size=29056 sha256digest=7a898e301c3b8758eb54cd10f8c20543fef7a20b49ca2a5b6a733f84efc0f4c2
โ”‚ โ”‚ โ”‚ +./usr/lib/python3.12/site-packages/ueberzug/X.cpython-312-x86_64-linux-gnu.so time=1730713124.0 mode=755 size=29056 sha256digest=5110efe2c8729a583a2ebfbbf152a76afe691897dbce4cf787c376896bc41526
โ”‚ โ”‚ โ”‚  ./usr/lib/python3.12/site-packages/ueberzug/__init__.py time=1730713124.0 size=339 sha256digest=95e90a97c28dd1c465d97ddb8b466dececfa78c99a010bc120654e8bfce6f065
โ”‚ โ”‚ โ”‚  ./usr/lib/python3.12/site-packages/ueberzug/__main__.py time=1730713124.0 mode=755 size=1823 sha256digest=42c89d2b99fbd4c94f410ef13bd61c2b7d311fb41679b21aaf55ce2dc68a7116
โ”‚ โ”‚ โ”‚  ./usr/lib/python3.12/site-packages/ueberzug/action.py time=1730713124.0 size=11430 sha256digest=34bad4d4f30de325406b76d4150f668834432de9ef17e235a0aa3d3eb1c10d22
โ”‚ โ”‚ โ”‚  ./usr/lib/python3.12/site-packages/ueberzug/batch.py time=1730713124.0 size=8269 sha256digest=1a07cd958339477b2cc76a75ea618fc50e2335edf699df422d59db3006361443
โ”‚ โ”‚ โ”‚  ./usr/lib/python3.12/site-packages/ueberzug/conversion.py time=1730713124.0 size=1888 sha256digest=943aa4b945a4ce556250276c1946c1c7879ce65cad570ca87ccb543e6b451fbe
โ”‚ โ”‚ โ”‚  ./usr/lib/python3.12/site-packages/ueberzug/files.py time=1730713124.0 size=1226 sha256digest=817b4c0b7a7d9c2b713c3f1757a09c3bf06b7a984861ae9c2c15f62e11cca3bc
โ”‚ โ”‚ โ”‚  ./usr/lib/python3.12/site-packages/ueberzug/geometry.py time=1730713124.0 size=522 sha256digest=46fa80346163bb28571aef981c7cd812a64ff5e46d3a570adfe8e5bc0c1ed22f
โ”‚ โ”‚ โ”‚ @@ -86,10 +86,10 @@
โ”‚ โ”‚ โ”‚  ./usr/lib/python3.12/site-packages/ueberzug/lib/v0/__init__.py time=1730713124.0 size=13530 sha256digest=3328fca102caf101b9402ac2392910be247e7606ec5fef499bafb4afedc6f181
โ”‚ โ”‚ โ”‚  ./usr/lib/python3.12/site-packages/ueberzug/lib/v0/__pycache__ time=1730713124.0 mode=755 type=dir
โ”‚ โ”‚ โ”‚  ./usr/lib/python3.12/site-packages/ueberzug/lib/v0/__pycache__/__init__.cpython-312.opt-1.pyc time=1730713124.0 size=21498 sha256digest=808aec8b9f8693cc53eef6bfd635b6a7bcdea105ceee43de519a52a5af4c5059
โ”‚ โ”‚ โ”‚  ./usr/lib/python3.12/site-packages/ueberzug/lib/v0/__pycache__/__init__.cpython-312.pyc time=1730713124.0 size=21526 sha256digest=c1595fe23bdde7ed7335724c4069c94ccd08f3bb4be79e79f68e730dd26ea296
โ”‚ โ”‚ โ”‚  ./usr/lib/python3.12/site-packages/ueberzug-18.3.0.dist-info time=1730713124.0 mode=755 type=dir
โ”‚ โ”‚ โ”‚  ./usr/lib/python3.12/site-packages/ueberzug-18.3.0.dist-info/LICENSE time=1730713124.0 size=35147 sha256digest=8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903
โ”‚ โ”‚ โ”‚  ./usr/lib/python3.12/site-packages/ueberzug-18.3.0.dist-info/METADATA time=1730713124.0 size=41966 sha256digest=608a1cf2e0d316e102f5aba7f1eca10bc093147072f8e616e77080a936f2a335
โ”‚ โ”‚ โ”‚ -./usr/lib/python3.12/site-packages/ueberzug-18.3.0.dist-info/RECORD time=1730713124.0 size=2409 sha256digest=22e82ea7bafe22b26b942f4dc408d047fe8a1b979f5c027f0127bba195b95140
โ”‚ โ”‚ โ”‚ +./usr/lib/python3.12/site-packages/ueberzug-18.3.0.dist-info/RECORD time=1730713124.0 size=2409 sha256digest=3d1cafaaf355c84bae41b0dcc56b4e16f77ee02465efe95502e923a650690262
โ”‚ โ”‚ โ”‚  ./usr/lib/python3.12/site-packages/ueberzug-18.3.0.dist-info/WHEEL time=1730713124.0 size=88 sha256digest=634159ee5c5f58a5b2d30fe69e35e1149cf5f2be37f307e1642a9742d342a6f5
โ”‚ โ”‚ โ”‚  ./usr/lib/python3.12/site-packages/ueberzug-18.3.0.dist-info/entry_points.txt time=1730713124.0 size=53 sha256digest=38fb85108bb7f654f5f65de387720ea401501a2d6d241570c9d43d7ff6790217
โ”‚ โ”œโ”€โ”€ usr/lib/python3.12/site-packages/ueberzug-18.3.0.dist-info/RECORD
โ”‚ โ”‚ @@ -1,13 +1,13 @@
โ”‚ โ”‚  ../../../bin/ueberzug,sha256=tSJiSzVMM30d91KyPTWMzNdxGtuD_vPoXNzPNAPWshA,215
โ”‚ โ”‚  ueberzug-18.3.0.dist-info/METADATA,sha256=YIoc8uDTFuEC9aun8eyhC8CTFHBy-OYW53CAqTbyozU,41966
โ”‚ โ”‚  ueberzug-18.3.0.dist-info/WHEEL,sha256=Y0FZ7lxfWKWy0w_mnjXhFJz18r438wfhZCqXQtNCpvU,88
โ”‚ โ”‚  ueberzug-18.3.0.dist-info/entry_points.txt,sha256=OPuFEIu39lT19l3jh3IOpAFQGi1tJBVwydQ9f_Z5Ahc,53
โ”‚ โ”‚  ueberzug-18.3.0.dist-info/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
โ”‚ โ”‚ -ueberzug/X.cpython-312-x86_64-linux-gnu.so,sha256=k7X1ee65C_vhwZfKQB4MAfhM4aftyaHtkcEmoVKR_9o,113784
โ”‚ โ”‚ +ueberzug/X.cpython-312-x86_64-linux-gnu.so,sha256=XyiOVWJtrFh_4wb_eL02EOETLoROQcE_pC4lpll3EHw,113784
โ”‚ โ”‚  ueberzug/__init__.py,sha256=lekKl8KN0cRl2X3bi0Zt7Oz6eMmaAQvBIGVOi_zm8GU,339
โ”‚ โ”‚  ueberzug/__main__.py,sha256=QsidK5n71MlPQQ7xO9YcK30xH7QWebIar1XOLcaKcRY,1823
โ”‚ โ”‚  ueberzug/action.py,sha256=NLrU1PMN4yVAa3bUFQ9miDRDLenvF-I1oKo9PrHBDSI,11430
โ”‚ โ”‚  ueberzug/batch.py,sha256=GgfNlYM5R3ssx2p16mGPxQ4jNe32md9CLVnbMAY2FEM,8269
โ”‚ โ”‚  ueberzug/conversion.py,sha256=lDqkuUWkzlViUCdsGUbBx4ec5lytVwyofMtUPmtFH74,1888
โ”‚ โ”‚  ueberzug/files.py,sha256=gXtMC3p9nCtxPD8XV6CcO_BrephIYa6cLBX2LhHMo7w,1226
โ”‚ โ”‚  ueberzug/geometry.py,sha256=RvqANGFjuyhXGu-YHHzYEqZP9eRtOlcK3-jlvAwe0i8,522
โ”‚ โ”œโ”€โ”€ usr/lib/python3.12/site-packages/ueberzug/X.cpython-312-x86_64-linux-gnu.so
โ”‚ โ”‚ โ”œโ”€โ”€ readelf --wide --notes {}
โ”‚ โ”‚ โ”‚ @@ -1,8 +1,8 @@
โ”‚ โ”‚ โ”‚
โ”‚ โ”‚ โ”‚  Displaying notes found in: .note.gnu.property
โ”‚ โ”‚ โ”‚    Owner                Data size 	Description
โ”‚ โ”‚ โ”‚    GNU                  0x00000030	NT_GNU_PROPERTY_TYPE_0	      Properties: x86 feature: IBT, SHSTK, x86 feature used: x86, XMM, x86 ISA used: x86-64-baseline
โ”‚ โ”‚ โ”‚
โ”‚ โ”‚ โ”‚  Displaying notes found in: .note.gnu.build-id
โ”‚ โ”‚ โ”‚    Owner                Data size 	Description
โ”‚ โ”‚ โ”‚ -  GNU                  0x00000014	NT_GNU_BUILD_ID (unique build ID bitstring)	    Build ID: d0c2bc0ad8235c8ff0e4b4911edb0733baf37994
โ”‚ โ”‚ โ”‚ +  GNU                  0x00000014	NT_GNU_BUILD_ID (unique build ID bitstring)	    Build ID: 8cddf4baae52f965ebb93a93981c0c682cbf1041
โ”‚ โ”‚ โ”œโ”€โ”€ readelf --wide --decompress --hex-dump=.gnu_debuglink {}
โ”‚ โ”‚ โ”‚ @@ -1,6 +1,6 @@
โ”‚ โ”‚ โ”‚
โ”‚ โ”‚ โ”‚  Hex dump of section '.gnu_debuglink':
โ”‚ โ”‚ โ”‚    0x00000000 582e6370 7974686f 6e2d3331 322d7838 X.cpython-312-x8
โ”‚ โ”‚ โ”‚    0x00000010 365f3634 2d6c696e 75782d67 6e752e73 6_64-linux-gnu.s
โ”‚ โ”‚ โ”‚ -  0x00000020 6f2e6465 62756700 afaf760e          o.debug...v.
โ”‚ โ”‚ โ”‚ +  0x00000020 6f2e6465 62756700 928a3b0f          o.debug...;.

But the diffs on the debug packages reveals that there is most likely an issue with the changing path:

โ”‚ โ”‚ โ”œโ”€โ”€ readelf --wide --notes {}
โ”‚ โ”‚ โ”‚ @@ -1,8 +1,8 @@
โ”‚ โ”‚ โ”‚
โ”‚ โ”‚ โ”‚  Displaying notes found in: .note.gnu.property
โ”‚ โ”‚ โ”‚    Owner                Data size 	Description
โ”‚ โ”‚ โ”‚    GNU                  0x00000030	NT_GNU_PROPERTY_TYPE_0	      Properties: x86 feature: IBT, SHSTK, x86 feature used: x86, XMM, x86 ISA used: x86-64-baseline
โ”‚ โ”‚ โ”‚
โ”‚ โ”‚ โ”‚  Displaying notes found in: .note.gnu.build-id
โ”‚ โ”‚ โ”‚    Owner                Data size 	Description
โ”‚ โ”‚ โ”‚ -  GNU                  0x00000014	NT_GNU_BUILD_ID (unique build ID bitstring)	    Build ID: 4f2aff58a906e4ad8ae23382df717094116fe451
โ”‚ โ”‚ โ”‚ +  GNU                  0x00000014	NT_GNU_BUILD_ID (unique build ID bitstring)	    Build ID: 4483c37f5316e95346fdff5540a0e7331f1b812e
โ”‚ โ”‚ โ”œโ”€โ”€ readelf --wide --debug-dump=rawline {}
โ”‚ โ”‚ โ”‚ @@ -25,15 +25,15 @@
โ”‚ โ”‚ โ”‚    Opcode 9 has 1 arg
โ”‚ โ”‚ โ”‚    Opcode 10 has 0 args
โ”‚ โ”‚ โ”‚    Opcode 11 has 0 args
โ”‚ โ”‚ โ”‚    Opcode 12 has 1 arg
โ”‚ โ”‚ โ”‚
โ”‚ โ”‚ โ”‚   The Directory Table (offset 0x22, lines 8, columns 1):
โ”‚ โ”‚ โ”‚    Entry	Name
โ”‚ โ”‚ โ”‚ -  0	(line_strp)	(offset: 0x12): /usr/src/debug/ueberzug/ueberzug-18.3.0/.mesonpy-xl7i9lgh
โ”‚ โ”‚ โ”‚ +  0	(line_strp)	(offset: 0x12): /usr/src/debug/ueberzug/ueberzug-18.3.0/.mesonpy-v7qtp5jb
โ”‚ โ”‚ โ”‚    1	(line_strp)	(offset: 0x4c): ../ueberzug/X
โ”‚ โ”‚ โ”‚    2	(line_strp)	(offset: 0x5a): /usr/include/bits
โ”‚ โ”‚ โ”‚    3	(line_strp)	(offset: 0x6c): /usr/include/python3.12
โ”‚ โ”‚ โ”‚    4	(line_strp)	(offset: 0x84): /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include
โ”‚ โ”‚ โ”‚    5	(line_strp)	(offset: 0xb4): /usr/include/sys
โ”‚ โ”‚ โ”‚    6	(line_strp)	(offset: 0xc5): /usr/include/python3.12/cpython
โ”‚ โ”‚ โ”‚    7	(line_strp)	(offset: 0xe5): /usr/include/X11
โ”‚ โ”‚ โ”‚ @@ -302,15 +302,15 @@
โ”‚ โ”‚ โ”‚    Opcode 9 has 1 arg
โ”‚ โ”‚ โ”‚    Opcode 10 has 0 args
โ”‚ โ”‚ โ”‚    Opcode 11 has 0 args
โ”‚ โ”‚ โ”‚    Opcode 12 has 1 arg
โ”‚ โ”‚ โ”‚
โ”‚ โ”‚ โ”‚   The Directory Table (offset 0x22d, lines 11, columns 1):
โ”‚ โ”‚ โ”‚    Entry	Name
โ”‚ โ”‚ โ”‚ -  0	(line_strp)	(offset: 0x12): /usr/src/debug/ueberzug/ueberzug-18.3.0/.mesonpy-xl7i9lgh
โ”‚ โ”‚ โ”‚ +  0	(line_strp)	(offset: 0x12): /usr/src/debug/ueberzug/ueberzug-18.3.0/.mesonpy-v7qtp5jb
โ”‚ โ”‚ โ”‚    1	(line_strp)	(offset: 0x4c): ../ueberzug/X
โ”‚ โ”‚ โ”‚    2	(line_strp)	(offset: 0x6c): /usr/include/python3.12
โ”‚ โ”‚ โ”‚    3	(line_strp)	(offset: 0x5a): /usr/include/bits
โ”‚ โ”‚ โ”‚    4	(line_strp)	(offset: 0x84): /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include
โ”‚ โ”‚ โ”‚    5	(line_strp)	(offset: 0xb4): /usr/include/sys
โ”‚ โ”‚ โ”‚    6	(line_strp)	(offset: 0x1ba): /usr/include
โ”‚ โ”‚ โ”‚    7	(line_strp)	(offset: 0xc5): /usr/include/python3.12/cpython
โ”‚ โ”‚ โ”‚ @@ -1433,15 +1433,15 @@
โ”‚ โ”‚ โ”‚    Opcode 9 has 1 arg
โ”‚ โ”‚ โ”‚    Opcode 10 has 0 args
โ”‚ โ”‚ โ”‚    Opcode 11 has 0 args
โ”‚ โ”‚ โ”‚    Opcode 12 has 1 arg
โ”‚ โ”‚ โ”‚
โ”‚ โ”‚ โ”‚   The Directory Table (offset 0xa29, lines 10, columns 1):
โ”‚ โ”‚ โ”‚    Entry	Name
โ”‚ โ”‚ โ”‚ -  0	(line_strp)	(offset: 0x12): /usr/src/debug/ueberzug/ueberzug-18.3.0/.mesonpy-xl7i9lgh
โ”‚ โ”‚ โ”‚ +  0	(line_strp)	(offset: 0x12): /usr/src/debug/ueberzug/ueberzug-18.3.0/.mesonpy-v7qtp5jb
โ”‚ โ”‚ โ”‚    1	(line_strp)	(offset: 0x4c): ../ueberzug/X
โ”‚ โ”‚ โ”‚    2	(line_strp)	(offset: 0x6c): /usr/include/python3.12
โ”‚ โ”‚ โ”‚    3	(line_strp)	(offset: 0x5a): /usr/include/bits
โ”‚ โ”‚ โ”‚    4	(line_strp)	(offset: 0x84): /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include
โ”‚ โ”‚ โ”‚    5	(line_strp)	(offset: 0xb4): /usr/include/sys
โ”‚ โ”‚ โ”‚    6	(line_strp)	(offset: 0xc5): /usr/include/python3.12/cpython
โ”‚ โ”‚ โ”‚    7	(line_strp)	(offset: 0xe5): /usr/include/X11
โ”‚ โ”‚ โ”‚ @@ -2639,15 +2639,15 @@
โ”‚ โ”‚ โ”‚    Opcode 9 has 1 arg
โ”‚ โ”‚ โ”‚    Opcode 10 has 0 args
โ”‚ โ”‚ โ”‚    Opcode 11 has 0 args
โ”‚ โ”‚ โ”‚    Opcode 12 has 1 arg
โ”‚ โ”‚ โ”‚
โ”‚ โ”‚ โ”‚   The Directory Table (offset 0x1251, lines 10, columns 1):
โ”‚ โ”‚ โ”‚    Entry	Name
โ”‚ โ”‚ โ”‚ -  0	(line_strp)	(offset: 0x12): /usr/src/debug/ueberzug/ueberzug-18.3.0/.mesonpy-xl7i9lgh
โ”‚ โ”‚ โ”‚ +  0	(line_strp)	(offset: 0x12): /usr/src/debug/ueberzug/ueberzug-18.3.0/.mesonpy-v7qtp5jb
โ”‚ โ”‚ โ”‚    1	(line_strp)	(offset: 0x4c): ../ueberzug/X
โ”‚ โ”‚ โ”‚    2	(line_strp)	(offset: 0x6c): /usr/include/python3.12
โ”‚ โ”‚ โ”‚    3	(line_strp)	(offset: 0x5a): /usr/include/bits
โ”‚ โ”‚ โ”‚    4	(line_strp)	(offset: 0x84): /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include
โ”‚ โ”‚ โ”‚    5	(line_strp)	(offset: 0xb4): /usr/include/sys
โ”‚ โ”‚ โ”‚    6	(line_strp)	(offset: 0x1ba): /usr/include
โ”‚ โ”‚ โ”‚    7	(line_strp)	(offset: 0xc5): /usr/include/python3.12/cpython

The package is built as follows (see the full PKGBUILD):

build() {
    cd $pkgname-$pkgver
    python -m build --wheel --no-isolation
}
package() {
    cd $pkgname-$pkgver
    python -m installer --destdir="$pkgdir" dist/*.whl
}

If there is any more information needed feel free to ask, I hope I provided all the details! ๐Ÿค—

Read the original on github.com โ†—