[pacman-dev] [PATCH v2] makepkg: add the $startdir to package .BUILDINFO

Eli Schwartz eschwartz at archlinux.org
Fri Nov 15 14:32:12 UTC 2019


This value is needed for reproducible builds. The reason is because
$BUILDDIR changes its behavior depending on whether it is the same as
$startdir, and the result is that we cannot know whether $srcdir (the
path that is potentially embedded into the final package) is actually
"$BUILDDIR/src" or "$BUILDDIR/$pkgbase/src".

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

v2: add documentation and bump the format version. I went with '2'
rather than require a pre-release bump to get a 'real number' which we
might forget, so if anything else gets added in the current patch
release cycle (unlikely?) we can just skip the bumping.

 doc/BUILDINFO.5.asciidoc | 3 +++
 scripts/makepkg.sh.in    | 3 ++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/doc/BUILDINFO.5.asciidoc b/doc/BUILDINFO.5.asciidoc
index 3db1e12f..bb300e18 100644
--- a/doc/BUILDINFO.5.asciidoc
+++ b/doc/BUILDINFO.5.asciidoc
@@ -53,6 +53,9 @@ BUILDINFO file format.
 *builddir*::
 	The directory where the package was built.
 
+*startdir*::
+	The directory from which makepkg was executed.
+
 *buildenv (array)*::
 	The build environment specified in makepkg.conf.
 
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 2deb61da..ca3e7459 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -626,7 +626,7 @@ write_pkginfo() {
 }
 
 write_buildinfo() {
-	write_kv_pair "format" "1"
+	write_kv_pair "format" "2"
 
 	write_kv_pair "pkgname" "$pkgname"
 	write_kv_pair "pkgbase" "$pkgbase"
@@ -643,6 +643,7 @@ write_buildinfo() {
 	write_kv_pair "packager" "${PACKAGER}"
 	write_kv_pair "builddate" "${SOURCE_DATE_EPOCH}"
 	write_kv_pair "builddir"  "${BUILDDIR}"
+	write_kv_pair "startdir"  "${startdir}"
 	write_kv_pair "buildenv" "${BUILDENV[@]}"
 	write_kv_pair "options" "${OPTIONS[@]}"
 
-- 
2.24.0


More information about the pacman-dev mailing list