[pacman-dev] [PATCH] makepkg: add the $startdir to package .BUILDINFO
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 builddir is actually 'builddir' or 'builddir' + '/$pkgbase'. Signed-off-by: Eli Schwartz <eschwartz@archlinux.org> --- scripts/makepkg.sh.in | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 2deb61da..f95f7168 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -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
On 13/11/19 9:07 am, Eli Schwartz wrote:
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 builddir is actually 'builddir' or 'builddir' + '/$pkgbase'.
Signed-off-by: Eli Schwartz <eschwartz@archlinux.org> ---
Man page. Also bump the specification version to 1.1 (or 2).
scripts/makepkg.sh.in | 1 + 1 file changed, 1 insertion(+)
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 2deb61da..f95f7168 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -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[@]}"
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@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
On 16/11/19 12:32 am, Eli Schwartz wrote:
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@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.
Ack. A
participants (2)
-
Allan McRae
-
Eli Schwartz