Skip to content

Make the build reproducible #6

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Denton-L
Copy link
Contributor

@Denton-L Denton-L commented Jun 2, 2025

help2man was vendored as part of d5d5253 (Fix bugs reported by Dominique, 2000-10-06) because at the time, help2man did not have a --version-option argument and one needed to be patched in. However, as of help2man 1.29, released in July 2003, this option was added.

Remove the vendored version of help2man and use the help2man on the system. It's been released for long enough that all users should be using a version of help2man that's less than 22 years old.

This helps because distros such as Arch Linux patch the vendored version of help2man in order to make the build reproducible0. However, help2man has been updated to support $SOURCE_DATE_EPOCH for a long time now.

Add -n to the gzip call so that the timestamp of the files are not saved.

While we're at it, add the generated files to the .gitignore.

@Denton-L Denton-L force-pushed the reproducible-build branch from 572d766 to 9473392 Compare June 2, 2025 02:57
@mwichmann
Copy link
Member

If I ever knew, I don't recall the full logic of vendoring help2man - it could be it was also to make sure it's self-contained. I can't recall that help2man was ever installed on my main system, for example - it's not currently (Fedora 42).

Things are not active on this project any longer, but I'll see we if can get this merged.

@Denton-L
Copy link
Contributor Author

Denton-L commented Jun 2, 2025

Thanks, I appreciate it!

@Denton-L Denton-L force-pushed the reproducible-build branch from 9473392 to 6821036 Compare June 2, 2025 18:26
help2man was vendored as part of d5d5253 (Fix bugs reported by
Dominique, 2000-10-06) because at the time, help2man did not have a
--version-option argument and one needed to be patched in. However, as
of help2man 1.29, released in July 2003, this option was added.

Remove the vendored version of help2man and use the help2man on the
system. It's been released for long enough that all users should be
using a version of help2man that's less than 22 years old.

This helps because distros such as Arch Linux patch the vendored version
of help2man in order to make the build reproducible[0]. However, help2man
has been updated to support $SOURCE_DATE_EPOCH for a long time now.

Add -n to the gzip call so that the timestamp of the files are not
saved.

While we're at it, add the generated files to the .gitignore.

[0]: https://gitlab.archlinux.org/archlinux/packaging/packages/lsb-release/-/blob/e5ce86591a488e1089e1c246a296adc70679588b/lsb_release_make_man_page_reproducible.patch
@Denton-L Denton-L force-pushed the reproducible-build branch from 6821036 to c7d6a40 Compare June 2, 2025 18:26
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.

2 participants