[Git][pacman/pacman][master] 8 commits: makepkg: use bsdtar --no-read-sparse for archive creation if available

Allan McRae (@allan) allan at archlinux.org
Sat Jun 25 12:49:46 UTC 2022



Allan McRae pushed to branch master at Pacman / Pacman


Commits:
f5f9e0f4 by Jonas Witschel at 2022-03-11T09:43:59+10:00
makepkg: use bsdtar --no-read-sparse for archive creation if available

bsdtar uses the "pax" TAR archive format by default, which has support for
storing sparse file information in the archive. Unfortunately this is a source
of unreproducibility because the sparse encoding is taken from the file system
and different file systems handle sparse files differently: some file systems
have no support for sparsely encoded files at all, and even file systems with
sparse file support can report different file information for identical files
due to differing implementations.

As a real world example where this happens, consider the Arch Linux package
"brotli-testdata 1.0.9-7", which contains a sparsely encoded all-zeros file
"usr/share/brotli/testdata/zeros". Building this package on a btrfs file system
yields a different package than building it on tmpfs or ext4 solely due to
different sparse file information that gets recorded in the package tarball.

To improve the reproducibility of archives containing sparsely encoded files,
libarchive version 3.6.0 introduces a new --no-read-sparse option. This skips
reading sparse file information from disk entirely and therefore stores files
"expanded" in the archive, which is the only way to make them reliably
reproducible across file systems.

makepkg will use this option if libarchive is recent enough to support it,
which is detected at build time.

Signed-off-by: Allan McRae <allan at archlinux.org>

- - - - -
18152a21 by Allan McRae at 2022-05-12T09:45:12+10:00
libmakepkg: Do not "strip" files when the format is not recognised

We use a multi step process during stripping to ensure permissions do
not get changed.  However, if the initial objcopy fails, the subsequent cat
results in a blank file.  Abandon early if objcopy fails.

Fixes FS#74486

Signed-off-by: Allan McRae <allan at archlinux.org>

- - - - -
fdf04cda by Allan McRae at 2022-05-18T22:06:07+10:00
doc/PKGBUILD: remove Arch Linux specific advise

The documentation for the license array was specific to Arch Linux.
Remove it and some minor other Arch Linux specific references.

Signed-off-by: Allan McRae <allan at archlinux.org>

- - - - -
84dc662d by Allan McRae at 2022-05-31T20:13:14+10:00
makepkg: add source signing PGP keys to source package if available

Arch Linux is adding source signing PGP keys to their package source
tree alongside PKGBUILDs in the form keys/pgp/$fingerprint.asc. As the
PGP keyserver infrastructure is a mess, this helps other people validate
sources in a PKGBUILD.

Add the keys to source packages if found alongside the PKGBUILD.

Signed-off-by: Allan McRae <allan at archlinux.org>

- - - - -
d1e95c4e by Allan McRae at 2022-06-16T09:00:18+10:00
Gitlab CI: Install glibc-debug valgrind test

Currently our gitlab CI is failing due to valgrind breakage. With
Arch stripping glibc, valgrind now requires debuginfod to be active.
However the gitlab CI system combined without our testsuite does not
retrieve these symbols, even when the appropriate environmental
variable is set.

Work around this by installing the glibc-debug package directly
using a slight kludge...  All blame for this approach is assigned
to foutrelis!

Signed-off-by: Allan McRae <allan at archlinux.org>

- - - - -
0031cd1e by Levente Polyak at 2022-06-25T10:25:36+10:00
doc/BUILDINFO.5: document buildtool and buildtoolver properties

The feature has been introduced in commit a33cdac10bf1a682
The buildinfo version has been bumped in commit 0428f6213bcb5586

Signed-off-by: Levente Polyak <anthraxx at archlinux.org>

- - - - -
776b7c1e by Morten Linderud at 2022-06-25T10:45:04+10:00
debugflags: Ensure we have unique source paths

In some cases packages are built outside of a directory which contains
pkgname-pkgver, this results in source listing in debug packages having
a conflicting path like `/usr/src/debug/build/` which is not ideal.

This patch ensures we always include the pkgbase to ensure the paths are
unique.

Signed-off-by: Morten Linderud <morten at linderud.pw>
Signed-off-by: Allan McRae <allan at archlinux.org>

- - - - -
6daeb37f by Jean Raby at 2022-06-25T22:45:00+10:00
pacman: silence "info" msg when using --print

This allows for parsing the output of:
    pacman --upgrade --print-format '<format>' pkg.zst

without having to remove info messages from it.

Signed-off-by: Allan McRae <allan at archlinux.org>

- - - - -


9 changed files:

- .gitlab-ci.yml
- build-aux/edit-script.sh.in
- doc/BUILDINFO.5.asciidoc
- doc/PKGBUILD.5.asciidoc
- meson.build
- scripts/libmakepkg/buildenv/debugflags.sh.in
- scripts/libmakepkg/tidy/strip.sh.in
- scripts/makepkg.sh.in
- src/pacman/upgrade.c


View it on GitLab: https://gitlab.archlinux.org/pacman/pacman/-/compare/bddfcc3f40ce1a19d4c9552cddbf2cab07c94d4b...6daeb37fe8a49e507ab4416df25506633bedb6ae

-- 
View it on GitLab: https://gitlab.archlinux.org/pacman/pacman/-/compare/bddfcc3f40ce1a19d4c9552cddbf2cab07c94d4b...6daeb37fe8a49e507ab4416df25506633bedb6ae
You're receiving this email because of your account on gitlab.archlinux.org.




More information about the pacman-dev mailing list