[rb-general] [RFC PATCH] makepkg: extend the .BUILDINFO for enhanced reproducible support

Eli Schwartz eschwartz at archlinux.org
Wed Jul 18 18:12:36 CEST 2018


Encode information about the compiler and strip flags used, as these
will impact the resulting generated binaries.

Signed-off-by: Eli Schwartz <eschwartz at archlinux.org>
---

See
https://kanboard.archlinux.org/public/task/40/7359bddc6311e0c07c31e421b6b496ea8fdac4994e4681fa14ef3b37fefe
for details.

I've left out MAKEFLAGS as I'm unsure how this would actually affect the
build.

Also the various COMPRESS* options I simply don't know what to do
with since we periodically add new ones and this results in updating
them all over the place. Plus this isn't typically modified anyway and
e.g. multithreaded compression tends to not be reproducible between two
identical runs regardless, so I'm not sure we should be solving it...

 scripts/makepkg.sh.in | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 548feb91..3d6277d1 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -680,7 +680,7 @@ write_pkginfo() {
 write_buildinfo() {
 	msg2 "$(gettext "Generating %s file...")" ".BUILDINFO"

-	write_kv_pair "format" "1"
+	write_kv_pair "format" "2"

 	write_kv_pair "pkgname" "$pkgname"
 	write_kv_pair "pkgbase" "$pkgbase"
@@ -699,6 +699,13 @@ write_buildinfo() {
 	write_kv_pair "builddir"  "${BUILDDIR}"
 	write_kv_pair "buildenv" "${BUILDENV[@]}"
 	write_kv_pair "options" "${OPTIONS[@]}"
+	write_kv_pair "cppflags" "$CPPFLAGS"
+	write_kv_pair "cflags" "$CFLAGS"
+	write_kv_pair "cxxflags" "$CXXFLAGS"
+	write_kv_pair "ldflags" "$LDFLAGS"
+	write_kv_pair "strip_binaries" "$STRIP_BINARIES"
+	write_kv_pair "strip_shared" "$STRIP_SHARED"
+	write_kv_pair "strip_static" "$STRIP_STATIC"

 	local pkglist=($(run_pacman -Qq))
 	local pkginfos="$(LC_ALL=C run_pacman -Qi ${pkglist[@]})"
--
2.18.0


More information about the rb-general mailing list