Skip to content

make dependency builds independent of the temporary directory path (reproducible build) - #159

Merged
TheAssassin merged 1 commit into
AppImage:mainfrom
f321x:reproducible-build
Oct 19, 2026
Merged

TheAssassin merged 1 commit into
AppImage:mainfrom
f321x:reproducible-build

Conversation

@f321x

@f321x f321x commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

libfuse is built with debug info, so the random mktemp path ends up in libfuse3.a and, through static linking, in the runtime's debug info, build ID and .gnu_debuglink CRC.
Two builds of the same build environment therefore yield different runtime binaries.

Map the path to a fixed one using -ffile-prefix-map.
With this change, separate builds produce bit-identical runtime and .debug files (tested for x86_64).

Refs #133

libfuse is built with debug info, so the random mktemp path ends up in
libfuse3.a and, through static linking, in the runtime's debug info,
build ID and .gnu_debuglink CRC. Two builds of the same build
environment therefore yield different runtime binaries.

Map the path to a fixed one using -ffile-prefix-map. With this change,
separate builds produce bit-identical runtime and .debug files (tested
for x86_64 and i686).

Refs AppImage#133
@probonopd
probonopd requested a review from TheAssassin October 19, 2026 17:57
@github-actions

Copy link
Copy Markdown

Build for testing:
artifacts i686
artifacts x86_64
artifacts aarch64
artifacts armhf
Use at your own risk.

@TheAssassin
TheAssassin merged commit fedfad5 into AppImage:main Oct 19, 2026
9 checks passed
@TheAssassin

Copy link
Copy Markdown
Member

Thanks!

@f321x
f321x deleted the reproducible-build branch October 19, 2026 21:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants