[pacman-dev] [RFC PATCH] makepkg: extend the .BUILDINFO for enhanced reproducible support

Allan McRae allan at archlinux.org
Wed Jul 18 22:07:50 UTC 2018


On 19/07/18 02:12, Eli Schwartz wrote:
> 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>
> ---
> 

Fairly sure we already rejected this...  The assumption is that a
distribution is using the default makepkg.conf options unless they are
explicitly changed in the PKGBUILD.


> 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 pacman-dev mailing list