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[@]}"
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[@]}"
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
pacman-dev@lists.archlinux.org