summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libre/pacman/9001-makepkg-Treat-pkgrel-more-similarly-to-pkgver.patch (renamed from libre/pacman/0004-makepkg-Treat-pkgrel-more-similarly-to-pkgver.patch)0
-rw-r--r--libre/pacman/PKGBUILD127
-rw-r--r--libre/pacman/add-flto-to-LDFLAGS-for-clang.patch24
-rw-r--r--libre/pacman/dummy.conf1
-rw-r--r--libre/pacman/libmakepkg-add-extra-buildflags-only-when-buildflags.patch41
-rw-r--r--libre/pacman/make-link-time-optimization-flags-configurable.patch108
-rw-r--r--libre/pacman/makepkg-use-ffile-prefix-map-instead-of-fdebug-prefi.patch40
-rw-r--r--libre/pacman/pacman-keyring8
-rw-r--r--libre/pacman/pacman-keyring.initd26
-rw-r--r--libre/pacman/pacman.conf.armv7h2
-rw-r--r--libre/pacman/pacman.conf.i6862
-rw-r--r--libre/pacman/pacman.conf.x86_642
12 files changed, 322 insertions, 59 deletions
diff --git a/libre/pacman/0004-makepkg-Treat-pkgrel-more-similarly-to-pkgver.patch b/libre/pacman/9001-makepkg-Treat-pkgrel-more-similarly-to-pkgver.patch
index eff801b55..eff801b55 100644
--- a/libre/pacman/0004-makepkg-Treat-pkgrel-more-similarly-to-pkgver.patch
+++ b/libre/pacman/9001-makepkg-Treat-pkgrel-more-similarly-to-pkgver.patch
diff --git a/libre/pacman/PKGBUILD b/libre/pacman/PKGBUILD
index 17eb6e44c..ae5d4e909 100644
--- a/libre/pacman/PKGBUILD
+++ b/libre/pacman/PKGBUILD
@@ -7,13 +7,20 @@
# Contributor: Daniel Milewski <niitotantei@riseup.net>
# Contributor: bill-auger <bill-auger@programmer.net>
+
+# parabola changes and rationale:
+# - adapt config files to support multiple arches
+# - install keyring updater service files
+# - allow pacstrap to create cross-arch chroots
+
+
pkgname=pacman
-pkgver=6.0.0
-pkgrel=3
+pkgver=6.0.1
+pkgrel=4
pkgrel+=.parabola2
pkgdesc="A library-based package manager with dependency support"
arch=('x86_64')
-arch+=('i686' 'armv7h')
+arch+=('armv7h' 'i686')
url="https://www.archlinux.org/pacman/"
license=('GPL')
groups=('base-devel')
@@ -32,36 +39,47 @@ options=('strip' 'debug')
validpgpkeys=('6645B0A8C7005E78DB1D7864F99FFE0FEAE999BD' # Allan McRae <allan@archlinux.org>
'B8151B117037781095514CA7BBDFFC92306B1121') # Andrew Gregory (pacman) <andrew@archlinux.org>
source=(https://sources.archlinux.org/other/pacman/$pkgname-$pkgver.tar.xz{,.sig}
- pacman-6.0.0-fix-404-download.patch::https://git.archlinux.org/pacman.git/patch/?id=3401f9e142ac4c701cd98c52618cb13164f2146b
- pacman-6.0.0-fix-key-import-double-free.patch::https://git.archlinux.org/pacman.git/patch/?id=542910d684191eb7f25ddc5d3d8fe3060028a267
- "${arch[@]/#/pacman.conf.}"
- makepkg.conf.in
- pacman-keyring.service
- pacman-keyring.timer
- 0004-makepkg-Treat-pkgrel-more-similarly-to-pkgver.patch)
+ add-flto-to-LDFLAGS-for-clang.patch
+ makepkg-use-ffile-prefix-map-instead-of-fdebug-prefi.patch
+ libmakepkg-add-extra-buildflags-only-when-buildflags.patch
+ make-link-time-optimization-flags-configurable.patch
+ pacman.conf
+ makepkg.conf)
+source=( ${source[*]/pacman.conf/} $(printf "pacman.conf.%s\n" "${arch[@]}" | sort) ) # pacman.conf.{armv7h,i686,x86_64}
+source=( ${source[*]/makepkg.conf/makepkg.conf.in} ) # makepkg.conf.in
+source+=(dummy.conf
+ pacman-keyring.service
+ pacman-keyring.timer
+ pacman-keyring.initd
+ 9001-makepkg-Treat-pkgrel-more-similarly-to-pkgver.patch)
source_armv7h=(0001-Sychronize-filesystem.patch
0002-Revert-close-stdin-before-running-install-scripts.patch
0003-Revert-alpm_run_chroot-always-connect-parent2child-p.patch)
-sha256sums=('004448085a7747bdc7a0a4dd5d1fb7556c6b890111a06e029ab088f9905d4808'
+sha256sums=('0db61456e56aa49e260e891c0b025be210319e62b15521f29d3e93b00d3bf731'
'SKIP'
- 'fe7e037e1b84bfa5bc401650d148c2a2e87d827705a6ec18a596ff5eea3cc0fd'
- 'a51b57dd47818d97e29ac0b8604b4b409916bbe6029adfbb03ac7e7c2b2a0819'
- 'c974c1cc256f77238be31562344170e1ed2ee715d7beb0ce309d6adccda8de85'
- '04e4ab5d45444f405d94aeb5dc65037e40b1e934ce0aa34b5f92b698805dd85a'
- '003c557bda471e6b567f58e6509a3df26b7f408a29117ccac172e64a4965102b'
- '20e9de1b612c3f24736e76a753cd38b7ea0f80160185012a538a77297acfb31f'
- '220f1b25a64727041dc6fa3fd486b0a043f735a3f6cecedc4e2f7c47ec6ce66d'
- '2a857061f032ff5485f5c75ab74e6f6532621e08963ef48640a792cca16cacd6'
- '9ccc7ef5bd27a68d8788f10c6e5b36495c5d9038d4eb160f9ea4dc9901b622d8')
+ '82ff91b85f4c6ceba19f9330437e2a22aabc966c2b9e2a20a53857f98a42c223'
+ 'b940e6c0c05a185dce1dbb9da0dcbebf742fca7a63f3e3308d49205afe5a6582'
+ '7d0aee976c9c71fcf7c96ef1d99aa76efe47d8c1f4451842d6d159ec7deb4278'
+ '5b43e26a76be3ed10a69d4bfb2be48db8cce359baf46583411c7f124737ebe6a'
+ '20e9de1b612c3f24736e76a753cd38b7ea0f80160185012a538a77297acfb31f' # makepkg.conf.in
+ '655a1e9a198ccd93313d26327fd20c4d7e4a630840c6e5615143953d2418c3d6' # pacman.conf.armv7h
+ 'f8069c81ddcba59fce6884002f5f40374859dd60610bae1ff99f93827b796e80' # pacman.conf.i686
+ '748310c1c63dd9d4da2c452938757f82345a0bc0da520968c30048105bbe9b46') # pacman.conf.x86_64
+sha256sums+=('ab10d0156ef1f7cd67c5e7365687f754020ae3b4ab79a23a1882cd78ede15fb3'
+ '220f1b25a64727041dc6fa3fd486b0a043f735a3f6cecedc4e2f7c47ec6ce66d'
+ '2a857061f032ff5485f5c75ab74e6f6532621e08963ef48640a792cca16cacd6'
+ '3a0115c5441e565eab0f72e4154440e640be6317cfa13dee0f36b058f63e1774'
+ '9ccc7ef5bd27a68d8788f10c6e5b36495c5d9038d4eb160f9ea4dc9901b622d8')
sha256sums_armv7h=('8d70fb5094f58aad98b601bbc42be354c2014b9fe734a1ee0b1e14bb041cc9cc'
'0e771370da68c855bfb4eaad4c2ae137883a474886a049b934dac2e775574cb9'
'2f586f72c34150330389854575a21be1d3ef3637c4f94bec2e948c2717a5aecb')
prepare() {
cd "$pkgname-$pkgver"
-
- patch -p1 -i "$srcdir"/pacman-6.0.0-fix-404-download.patch
- patch -p1 -i "$srcdir"/pacman-6.0.0-fix-key-import-double-free.patch
+ patch -Np1 -i ../add-flto-to-LDFLAGS-for-clang.patch
+ patch -Np1 -i ../makepkg-use-ffile-prefix-map-instead-of-fdebug-prefi.patch
+ patch -Np1 -i ../libmakepkg-add-extra-buildflags-only-when-buildflags.patch
+ patch -Np1 -i ../make-link-time-optimization-flags-configurable.patch
# From Arch ARM
if [ "${CARCH}" = "armv7h" ]; then
@@ -71,21 +89,7 @@ prepare() {
fi
# From Parabola
- patch -p1 -i ../0004-makepkg-Treat-pkgrel-more-similarly-to-pkgver.patch
-}
-
-build() {
- cd "$pkgname-$pkgver"
-
- meson --prefix=/usr \
- --buildtype=plain \
- -Ddoc=enabled \
- -Ddoxygen=enabled \
- -Dscriptlet-shell=/usr/bin/bash \
- -Dldconfig=/usr/bin/ldconfig \
- build
-
- meson compile -C build
+ patch -p1 -i ../9001-makepkg-Treat-pkgrel-more-similarly-to-pkgver.patch
# Generate the architecture-specific makepkg.conf files
local carch mycarch mychost myflags myldflags
@@ -124,6 +128,20 @@ build() {
done
}
+build() {
+ cd "$pkgname-$pkgver"
+
+ meson --prefix=/usr \
+ --buildtype=plain \
+ -Ddoc=enabled \
+ -Ddoxygen=enabled \
+ -Dscriptlet-shell=/usr/bin/bash \
+ -Dldconfig=/usr/bin/ldconfig \
+ build
+
+ meson compile -C build
+}
+
check() {
cd "$pkgname-$pkgver"
@@ -135,23 +153,36 @@ package() {
DESTDIR="$pkgdir" meson install -C build
- # install distro-specific stuff
- install -dm755 "$pkgdir"/etc/{makepkg,pacman}.d
+ # install Arch specific stuff
+ install -dm755 "$pkgdir/etc"
install -m644 "$srcdir/pacman.conf.$CARCH" "$pkgdir/etc/pacman.conf"
install -m644 "$srcdir/makepkg.conf.$CARCH" "$pkgdir/etc/makepkg.conf"
- echo '# There must be at least 1 file matching /etc/pacman.d/*.conf' > "$pkgdir/etc/pacman.d/empty.conf"
- install -dm755 "$pkgdir/usr/share/pacman/defaults"
+ ## install Parabola specific stuff ##
+
+ # pacman.d/dummy.conf
+ install -dm755 "$pkgdir/etc/pacman.d"
+ install -m644 "$srcdir/dummy.conf" "$pkgdir/etc/pacman.d/"
+
+ # per-arch pacman.conf(s) and makepkg.conf(s)
local carch
+ install -dm755 "$pkgdir/usr/share/pacman/defaults"
for carch in "${arch[@]}"; do
install -m644 "$srcdir/pacman.conf.$carch" "$pkgdir/usr/share/pacman/defaults/"
install -m644 "$srcdir/makepkg.conf.$carch" "$pkgdir/usr/share/pacman/defaults/"
done
- # Parabola's pacman began shipping a weekly job for this back in
- # 2014. Why is it nescessary for Parabola installs, but it
- # seemingly isn't for Arch installs?
- install -Dm644 "$srcdir/pacman-keyring.service" "$pkgdir/usr/lib/systemd/system/pacman-keyring.service"
- install -Dm644 "$srcdir/pacman-keyring.timer" "$pkgdir/usr/lib/systemd/system/pacman-keyring.timer"
- install -Dm644 /dev/stdin "$pkgdir/usr/lib/systemd/system-preset/90-pacman.preset" <<<"enable pacman-keyring.timer"
+ # systemd service
+ install -dm755 "$pkgdir/usr/lib/systemd/system"
+ install -dm755 "$pkgdir/usr/lib/systemd/system-preset"
+ install -m644 "$srcdir/pacman-keyring.service" "$pkgdir/usr/lib/systemd/system/"
+ install -m644 "$srcdir/pacman-keyring.timer" "$pkgdir/usr/lib/systemd/system/"
+ install -m644 /dev/stdin "$pkgdir/usr/lib/systemd/system-preset/90-pacman.preset" \
+ <<<"enable pacman-keyring.timer"
+
+ # openrc service
+ install -dm755 "$pkgdir/etc/init.d"
+ install -dm755 "$pkgdir/etc/runlevels/default"
+ install -m755 "$srcdir/pacman-keyring.initd" "$pkgdir/etc/init.d/pacman-keyring"
+ ln -s /etc/init.d/pacman-keyring "$pkgdir/etc/runlevels/default/pacman-keyring"
}
diff --git a/libre/pacman/add-flto-to-LDFLAGS-for-clang.patch b/libre/pacman/add-flto-to-LDFLAGS-for-clang.patch
new file mode 100644
index 000000000..b3c139de4
--- /dev/null
+++ b/libre/pacman/add-flto-to-LDFLAGS-for-clang.patch
@@ -0,0 +1,24 @@
+From 26ee6ff6adbcd8560ec3a65cf219d2ab98edb804 Mon Sep 17 00:00:00 2001
+From: Allan McRae <allan@archlinux.org>
+Date: Fri, 24 Dec 2021 17:59:32 +1000
+Subject: [PATCH] LTO: Add -flto to LDFLAGS for clang
+
+GCC automatically detects when it is linking LTO objects, but clang does
+not. Add -flto to LDFLAGS to make this work for clang too.
+
+Signed-off-by: Allan McRae <allan@archlinux.org>
+---
+ scripts/libmakepkg/buildenv/lto.sh.in | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/scripts/libmakepkg/buildenv/lto.sh.in b/scripts/libmakepkg/buildenv/lto.sh.in
+index 1f1ca53f..c3bd0fa4 100644
+--- a/scripts/libmakepkg/buildenv/lto.sh.in
++++ b/scripts/libmakepkg/buildenv/lto.sh.in
+@@ -33,5 +33,6 @@ buildenv_lto() {
+ if check_option "lto" "y"; then
+ CFLAGS+=" -flto"
+ CXXFLAGS+=" -flto"
++ LDFLAGS+=" -flto"
+ fi
+ }
diff --git a/libre/pacman/dummy.conf b/libre/pacman/dummy.conf
new file mode 100644
index 000000000..8d7df06d6
--- /dev/null
+++ b/libre/pacman/dummy.conf
@@ -0,0 +1 @@
+# parabola's pacman.conf expects at least 1 file matching /etc/pacman.d/*.conf
diff --git a/libre/pacman/libmakepkg-add-extra-buildflags-only-when-buildflags.patch b/libre/pacman/libmakepkg-add-extra-buildflags-only-when-buildflags.patch
new file mode 100644
index 000000000..365993571
--- /dev/null
+++ b/libre/pacman/libmakepkg-add-extra-buildflags-only-when-buildflags.patch
@@ -0,0 +1,41 @@
+From 42fe4864a0c8e2846007ffee532fe0cf4b321cdd Mon Sep 17 00:00:00 2001
+From: Allan McRae <allan@archlinux.org>
+Date: Sun, 9 Jan 2022 12:45:58 +1000
+Subject: [PATCH] libmakepkg: add extra buildflags only when buildflags is not
+ disabled
+
+This means options=('!buildflags') will disable the addition of CFLAG
+etc for LTO and debug building.
+
+Signed-off-by: Allan McRae <allan@archlinux.org>
+---
+ scripts/libmakepkg/buildenv/debugflags.sh.in | 2 +-
+ scripts/libmakepkg/buildenv/lto.sh.in | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/scripts/libmakepkg/buildenv/debugflags.sh.in b/scripts/libmakepkg/buildenv/debugflags.sh.in
+index 84ca7b71..1cb58613 100644
+--- a/scripts/libmakepkg/buildenv/debugflags.sh.in
++++ b/scripts/libmakepkg/buildenv/debugflags.sh.in
+@@ -29,7 +29,7 @@ source "$LIBRARY/util/option.sh"
+ buildenv_functions+=('buildenv_debugflags')
+
+ buildenv_debugflags() {
+- if check_option "debug" "y"; then
++ if check_option "debug" "y" && ! check_option "buildflags" "n"; then
+ DEBUG_CFLAGS+=" -ffile-prefix-map=$srcdir=${DBGSRCDIR:-/usr/src/debug}"
+ DEBUG_CXXFLAGS+=" -ffile-prefix-map=$srcdir=${DBGSRCDIR:-/usr/src/debug}"
+ DEBUG_RUSTFLAGS+=" --remap-path-prefix=$srcdir=${DBGSRCDIR:-/usr/src/debug}"
+diff --git a/scripts/libmakepkg/buildenv/lto.sh.in b/scripts/libmakepkg/buildenv/lto.sh.in
+index 081d5648..6e500eab 100644
+--- a/scripts/libmakepkg/buildenv/lto.sh.in
++++ b/scripts/libmakepkg/buildenv/lto.sh.in
+@@ -30,7 +30,7 @@ build_options+=('lto')
+ buildenv_functions+=('buildenv_lto')
+
+ buildenv_lto() {
+- if check_option "lto" "y"; then
++ if check_option "lto" "y" && ! check_option "buildflags" "n"; then
+ CFLAGS+=" -flto"
+ CXXFLAGS+=" -flto"
+ LDFLAGS+=" -flto"
diff --git a/libre/pacman/make-link-time-optimization-flags-configurable.patch b/libre/pacman/make-link-time-optimization-flags-configurable.patch
new file mode 100644
index 000000000..1406b7b49
--- /dev/null
+++ b/libre/pacman/make-link-time-optimization-flags-configurable.patch
@@ -0,0 +1,108 @@
+From e1ce2351f5c00dd90104e0f4ce3bf176da28af08 Mon Sep 17 00:00:00 2001
+From: Evangelos Foutras <evangelos@foutrelis.com>
+Date: Thu, 10 Feb 2022 05:15:01 +0200
+Subject: [PATCH] Make link time optimization flags configurable
+
+We want to use -flto=auto in Arch Linux to speed up building, but we
+can't hardcode it in buildenv/lto.sh because other downstreams might
+have clang < 13.0.0 which did not recognize -flto=auto as equivalent
+to -flto=full.
+
+Introducing an LTOFLAGS variable to makepkg.conf seems the way to go.
+
+Signed-off-by: Allan McRae <allan@archlinux.org>
+---
+ doc/makepkg.conf.5.asciidoc | 10 ++++++++--
+ etc/makepkg.conf.in | 1 +
+ scripts/libmakepkg/buildenv/buildflags.sh.in | 2 +-
+ scripts/libmakepkg/buildenv/lto.sh.in | 6 +++---
+ scripts/libmakepkg/lint_config/variable.sh.in | 8 ++++----
+ 5 files changed, 17 insertions(+), 10 deletions(-)
+
+diff --git a/doc/makepkg.conf.5.asciidoc b/doc/makepkg.conf.5.asciidoc
+index 39c5c808..a0d9a6d4 100644
+--- a/doc/makepkg.conf.5.asciidoc
++++ b/doc/makepkg.conf.5.asciidoc
+@@ -81,6 +81,11 @@ Options
+ usage resembling ``-Wl,--hash-style=gnu''. Read ld(1) for more details on
+ available linker flags.
+
++**LTOFLAGS=**"ltoflags"::
++ Additional compiler and linker flags appended to `CFLAGS`, `CXXFLAGS`
++ and `LDFLAGS` when building with link time optimization. If empty,
++ ``-flto'' is used.
++
+ **MAKEFLAGS=**"makeflags"::
+ This is often used to set the number of jobs used; for example, `-j2`.
+ Other flags that make accepts can also be passed.
+@@ -190,8 +195,9 @@ Options
+ package containing the debug symbols when used with `strip'.
+
+ *lto*;;
+- Enable building packages using link time optimization. Adds '-flto'
+- to both CFLAGS and CXXFLAGS.
++ Enable building packages using link time optimization. Adds the
++ flags specified in LTOFLAGS to CFLAGS, CXXFLAGS and LDFLAGS (or
++ ``-flto'' if LTOFLAGS is empty).
+
+ *autodep*;;
+ Enable the automatic addition of libraries to the depends and
+diff --git a/etc/makepkg.conf.in b/etc/makepkg.conf.in
+index 0c911cce..edc5f442 100644
+--- a/etc/makepkg.conf.in
++++ b/etc/makepkg.conf.in
+@@ -41,6 +41,7 @@ CHOST="@CHOST@"
+ #CFLAGS="-O2 -pipe"
+ #CXXFLAGS="-O2 -pipe"
+ #LDFLAGS=""
++#LTOFLAGS="-flto"
+ #RUSTFLAGS="-C opt-level=2"
+ #-- Make Flags: change this for DistCC/SMP systems
+ #MAKEFLAGS="-j2"
+diff --git a/scripts/libmakepkg/buildenv/buildflags.sh.in b/scripts/libmakepkg/buildenv/buildflags.sh.in
+index 74f91988..07b4a730 100644
+--- a/scripts/libmakepkg/buildenv/buildflags.sh.in
++++ b/scripts/libmakepkg/buildenv/buildflags.sh.in
+@@ -30,6 +30,6 @@ buildenv_functions+=('buildenv_buildflags')
+
+ buildenv_buildflags() {
+ if check_option "buildflags" "n"; then
+- unset CPPFLAGS CFLAGS DEBUG_CFLAGS CXXFLAGS DEBUG_CXXFLAGS LDFLAGS RUSTFLAGS DEBUG_RUSTFLAGS
++ unset CPPFLAGS CFLAGS DEBUG_CFLAGS CXXFLAGS DEBUG_CXXFLAGS LDFLAGS LTOFLAGS RUSTFLAGS DEBUG_RUSTFLAGS
+ fi
+ }
+diff --git a/scripts/libmakepkg/buildenv/lto.sh.in b/scripts/libmakepkg/buildenv/lto.sh.in
+index 6e500eab..6492def7 100644
+--- a/scripts/libmakepkg/buildenv/lto.sh.in
++++ b/scripts/libmakepkg/buildenv/lto.sh.in
+@@ -31,8 +31,8 @@ buildenv_functions+=('buildenv_lto')
+
+ buildenv_lto() {
+ if check_option "lto" "y" && ! check_option "buildflags" "n"; then
+- CFLAGS+=" -flto"
+- CXXFLAGS+=" -flto"
+- LDFLAGS+=" -flto"
++ CFLAGS+=" ${LTOFLAGS:--flto}"
++ CXXFLAGS+=" ${LTOFLAGS:--flto}"
++ LDFLAGS+=" ${LTOFLAGS:--flto}"
+ fi
+ }
+diff --git a/scripts/libmakepkg/lint_config/variable.sh.in b/scripts/libmakepkg/lint_config/variable.sh.in
+index 8327b0a5..03a67ee2 100644
+--- a/scripts/libmakepkg/lint_config/variable.sh.in
++++ b/scripts/libmakepkg/lint_config/variable.sh.in
+@@ -32,10 +32,10 @@ lint_config_variables() {
+ local array=(DLAGENTS VCSCLIENTS BUILDENV OPTIONS INTEGRITY_CHECK MAN_DIRS
+ DOC_DIRS PURGE_TARGETS COMPRESSGZ COMPRESSBZ2 COMPRESSXZ
+ COMPRESSLRZ COMPRESSLZO COMPRESSZ)
+- local string=(CARCH CHOST CPPFLAGS CFLAGS CXXFLAGS RUSTFLAGS LDFLAGS DEBUG_CFLAGS
+- DEBUG_CXXFLAGS DEBUG_RUSTFLAGS DISTCC_HOSTS BUILDDIR STRIP_BINARIES
+- STRIP_SHARED STRIP_STATIC PKGDEST SRCDEST SRCPKGDEST LOGDEST PACKAGER
+- GPGKEY PKGEXT SRCEXT)
++ local string=(CARCH CHOST CPPFLAGS CFLAGS CXXFLAGS RUSTFLAGS LDFLAGS LTOFLAGS
++ DEBUG_CFLAGS DEBUG_CXXFLAGS DEBUG_RUSTFLAGS DISTCC_HOSTS BUILDDIR
++ STRIP_BINARIES STRIP_SHARED STRIP_STATIC PKGDEST SRCDEST SRCPKGDEST
++ LOGDEST PACKAGER GPGKEY PKGEXT SRCEXT)
+
+ local i keys ret=0
+
diff --git a/libre/pacman/makepkg-use-ffile-prefix-map-instead-of-fdebug-prefi.patch b/libre/pacman/makepkg-use-ffile-prefix-map-instead-of-fdebug-prefi.patch
new file mode 100644
index 000000000..ca667d88f
--- /dev/null
+++ b/libre/pacman/makepkg-use-ffile-prefix-map-instead-of-fdebug-prefi.patch
@@ -0,0 +1,40 @@
+From e37f7d8b6b4d2f9accf97eb96d0eacbddf2a1345 Mon Sep 17 00:00:00 2001
+From: Xiretza <xiretza@xiretza.xyz>
+Date: Sat, 1 Jan 2022 14:40:24 +0100
+Subject: [PATCH] makepkg: use -ffile-prefix-map instead of -fdebug-prefix-map
+
+>From gcc(1):
+
+-ffile-prefix-map=old=new
+ [...] Specifying this option is equivalent to specifying all the
+ individual -f*-prefix-map options. This can be used to make reproducible
+ builds that are location independent.
+
+Specifically, this additionally enables -fmacro-prefix-map=, which causes
+prefix mapping to be applied to expansions of __FILE__ and similar macros.
+
+Without this option, if source files are compiled by passing the
+absolute file path to the compiler (as done by e.g. cmake), any
+expansions of __FILE__ (e.g. from uses of assert()) will contain
+$srcdir.
+
+Signed-off-by: Allan McRae <allan@archlinux.org>
+---
+ scripts/libmakepkg/buildenv/debugflags.sh.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/scripts/libmakepkg/buildenv/debugflags.sh.in b/scripts/libmakepkg/buildenv/debugflags.sh.in
+index e0a1ed00..84ca7b71 100644
+--- a/scripts/libmakepkg/buildenv/debugflags.sh.in
++++ b/scripts/libmakepkg/buildenv/debugflags.sh.in
+@@ -30,8 +30,8 @@ buildenv_functions+=('buildenv_debugflags')
+
+ buildenv_debugflags() {
+ if check_option "debug" "y"; then
+- DEBUG_CFLAGS+=" -fdebug-prefix-map=$srcdir=${DBGSRCDIR:-/usr/src/debug}"
+- DEBUG_CXXFLAGS+=" -fdebug-prefix-map=$srcdir=${DBGSRCDIR:-/usr/src/debug}"
++ DEBUG_CFLAGS+=" -ffile-prefix-map=$srcdir=${DBGSRCDIR:-/usr/src/debug}"
++ DEBUG_CXXFLAGS+=" -ffile-prefix-map=$srcdir=${DBGSRCDIR:-/usr/src/debug}"
+ DEBUG_RUSTFLAGS+=" --remap-path-prefix=$srcdir=${DBGSRCDIR:-/usr/src/debug}"
+ CFLAGS+=" $DEBUG_CFLAGS"
+ CXXFLAGS+=" $DEBUG_CXXFLAGS"
diff --git a/libre/pacman/pacman-keyring b/libre/pacman/pacman-keyring
deleted file mode 100644
index b3558d563..000000000
--- a/libre/pacman/pacman-keyring
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/sbin/openrc-run
-
-command=/usr/bin/pacman-key
-command_args="--refresh-keys"
-pidfile=
-
-name="pacman-keyring"
-description="Refresh pacman keyring"
diff --git a/libre/pacman/pacman-keyring.initd b/libre/pacman/pacman-keyring.initd
new file mode 100644
index 000000000..1945af58b
--- /dev/null
+++ b/libre/pacman/pacman-keyring.initd
@@ -0,0 +1,26 @@
+#!/sbin/openrc-run
+
+# This is not a daemon; but a short-lived process,
+# which only needs to run occasionally.
+# Running it as a pseudo-service,
+# simplifies the install (rather than requiring a cron deamon).
+# Users must only add it to the 'default' runlevel.
+
+
+name="pacman-keyring"
+description="Refresh pacman keyring"
+
+
+depend() {
+ need net
+ after logger
+}
+
+# Custom start() function with wrapper, to always exit "success" status.
+# The command will exit non-zero upon any failed key retrieval;
+# which is common if not likely, due to the large number of keys it fetches.
+start() {
+ ebegin "Starting ${RC_SVCNAME}"
+ start-stop-daemon --start --exec /usr/bin/bash -- -c '/usr/bin/pacman-key --refresh-keys || :'
+ eend $?
+}
diff --git a/libre/pacman/pacman.conf.armv7h b/libre/pacman/pacman.conf.armv7h
index 737357ab9..b8c90dee4 100644
--- a/libre/pacman/pacman.conf.armv7h
+++ b/libre/pacman/pacman.conf.armv7h
@@ -62,7 +62,7 @@ LocalFileSigLevel = Optional
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
-# un-commented to enable the repo.
+# uncommented to enable the repo.
#
# Some repositories are disabled by default. To enable them, un-comment the
# repo name header (e.g. '[nonprism]') and the following 'Include' line.
diff --git a/libre/pacman/pacman.conf.i686 b/libre/pacman/pacman.conf.i686
index c8a23cbc2..5025e92e1 100644
--- a/libre/pacman/pacman.conf.i686
+++ b/libre/pacman/pacman.conf.i686
@@ -62,7 +62,7 @@ LocalFileSigLevel = Optional
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
-# un-commented to enable the repo.
+# uncommented to enable the repo.
#
# Some repositories are disabled by default. To enable them, un-comment the
# repo name header (e.g. '[nonprism]') and the following 'Include' line.
diff --git a/libre/pacman/pacman.conf.x86_64 b/libre/pacman/pacman.conf.x86_64
index 56130460b..ff5d6385c 100644
--- a/libre/pacman/pacman.conf.x86_64
+++ b/libre/pacman/pacman.conf.x86_64
@@ -62,7 +62,7 @@ LocalFileSigLevel = Optional
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
-# un-commented to enable the repo.
+# uncommented to enable the repo.
#
# Some repositories are disabled by default. To enable them, un-comment the
# repo name header (e.g. '[nonprism]') and the following 'Include' line.