makepkg: do not save fflags when creating packages

Saving fflages breaks reproducible builds due to encoding information
specific to the filesystem that was used to build the package. This
information is not needed for packaging purposes anyway.

Including fflags also means that attempting to extract a package file as
root (or fakeroot) might result in angry warnings being printed to the
console by bsdtar, followed by a non-zero exit code, unless the user
remembers to use --no-fflags during extraction. This is unpleasant UI, even
if pacman itself won't care about these.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
Eli Schwartz 2019-10-07 17:18:11 -04:00 committed by Allan McRae
parent e8d4228614
commit a897599fa5

View file

@ -719,7 +719,7 @@ create_package() {
msg2 "$(gettext "Compressing package...")" msg2 "$(gettext "Compressing package...")"
# TODO: Maybe this can be set globally for robustness # TODO: Maybe this can be set globally for robustness
shopt -s -o pipefail shopt -s -o pipefail
list_package_files | LANG=C bsdtar -cnf - --null --files-from - | list_package_files | LANG=C bsdtar --no-fflags -cnf - --null --files-from - |
compress_as "$PKGEXT" > "${pkg_file}" || ret=$? compress_as "$PKGEXT" > "${pkg_file}" || ret=$?
shopt -u -o pipefail shopt -u -o pipefail
@ -810,7 +810,7 @@ create_srcpackage() {
# TODO: Maybe this can be set globally for robustness # TODO: Maybe this can be set globally for robustness
shopt -s -o pipefail shopt -s -o pipefail
LANG=C bsdtar -cLf - ${pkgbase} | compress_as "$SRCEXT" > "${pkg_file}" || ret=$? LANG=C bsdtar --no-fflags -cLf - ${pkgbase} | compress_as "$SRCEXT" > "${pkg_file}" || ret=$?
shopt -u -o pipefail shopt -u -o pipefail