Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/build-support
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2025-03-23 14:58:41 +0100
committerAndreas Baumann <mail@andreasbaumann.cc>2025-03-23 14:58:41 +0100
commit88c052a933c5c72be1dd29a2ba2c4315bd666387 (patch)
tree9d4143d07595a6092f40e405de6710c272add602 /build-support
parentb8e951250bdfc18832fbfa7fdf070bec53ad1ece (diff)
build-support/pacman-static: using patches for muon from pacman
Diffstat (limited to 'build-support')
-rw-r--r--build-support/pacman-static/PKGBUILD112
1 files changed, 111 insertions, 1 deletions
diff --git a/build-support/pacman-static/PKGBUILD b/build-support/pacman-static/PKGBUILD
index 3fada20d..9a2f0ca0 100644
--- a/build-support/pacman-static/PKGBUILD
+++ b/build-support/pacman-static/PKGBUILD
@@ -338,7 +338,7 @@ build() {
package() {
cd "${srcdir}"/pacman
- DESTDIR="${pkgdir}" meson install -C build
+ DESTDIR="${pkgdir}" ninja install -C build
rm -rf "${pkgdir}"/usr/share "${pkgdir}"/etc
for exe in "${pkgdir}"/usr/bin/*; do
@@ -354,3 +354,113 @@ package() {
"${pkgdir}"/usr/lib/pacman/lib/pkgconfig/*.pc \
"${pkgdir}"/usr/lib/pacman/bin/*
}
+# upstream git revision: 1a52f2e1d641587a1514c99b96d839368076288d
+
+depends+=(archlinux32-keyring)
+
+# fail if upstream changes makepkg.conf or pacman.conf
+for ((i=0; i<${#sha256sums[@]}; i++)); do
+ # pacman.conf
+ if [ "${sha256sums[${i}]}" = 'bc80e9d0439caddd29b99a69b5060b5589cad2398c23abc5b2b8b990fae6ad8c' ]; then
+ sha256sums[${i}]='3e482ca4e98386679cec02b51e32c6a13caf3dee365a850567547f616a69408f'
+ fi
+ # makepkg.conf
+ if [ "${sha256sums[${i}]}" = 'd99c1f9608362fff9ab3a2ca0a3096a317927b42a6725bc86599da6849c9c67c' ]; then
+ sha256sums[${i}]='82e963060a02c9a04cf5296bb4c5e732d3c3d0666d221ddaf2b3367989b9d894'
+ fi
+ # rust.conf (for now keep the upstream one)
+done
+
+if [ ! "${CARCH}" = "i686" ]; then
+ # patch architecture where needed
+ eval "$(
+ declare -f package | \
+ sed '
+ /install.*makepkg.conf/ a \
+ sed -i "s@i686@'"${CARCH}"'@g; /^CHOST/ s/pentium4-/i686-/" "$pkgdir/etc/makepkg.conf"
+ '
+ )"
+fi
+
+# patch pacman for automatic architecture detection (applied in wildcard patch above)
+source+=('replace-i686-by-pentium4-when-architecture-is-auto.patch')
+sha256sums+=('6a7906bd28a57cbcff58d856ffefbbb9096a163aaff79913b4fac69d75d0028a')
+
+# not supported on i486 -fcf-protection
+# LTO currently no available on i486
+if [ "${CARCH}" = "i486" ]; then
+ eval "$(
+ {
+ declare -f package || \
+ printf 'package() {\n}\n'
+ } \
+ | sed '
+ $i sed -i "s/-fcf-protection//g" "$pkgdir/etc/makepkg.conf"
+ $i sed -i "s/LTOFLAGS.*/LTOFLAGS=\\\"-fno-lto\\\"/" "$pkgdir/etc/makepkg.conf"
+ '
+ )"
+fi
+
+# If this still applies, it only does for i486:
+# (while not having Python, it's not working on any CARCH)
+makedepends=(${makedepends[@]//doxygen/})
+#if [ "${CARCH}" = "i486" ]; then
+# broken Python/asciidoc
+ eval "$(
+ declare -f build | \
+ sed '
+ /meson/s/-Ddoc=enabled/-Ddoc=disabled/
+ /meson/s/-DDdoxygen=enabled/-DDdoxygen=disabled/
+ '
+ )"
+#fi
+
+# gettext is linked against old ICU verison on i486, use ICU 72 stub
+#if [ "${CARCH}" = "i486" ]; then
+# makedepends+=(icu72)
+#fi
+
+# git on i486 problem, cannot make sums of git checkout (yet?)
+if [ "${CARCH}" = "i486" ]; then
+ sha256sums[0]='SKIP'
+fi
+
+# use muon instead of meson, no python (and meson needs python)
+makedepends=(${makedepends[@]//meson/})
+makedepends+=(muon-meson)
+
+source+=(pacman-trailing-slash-muon.patch)
+sha256sums+=(f295ff9967d38117bb5a29237716abb997197c69d8d2eeb449db49b85582be02)
+
+eval "$(
+ declare -f build | \
+ sed '
+ /meson compile/ i \
+ cd $srcdir/pacman/build
+ s/meson compile.*/muon samu -v -j1/
+ s/meson\(.* build\)/muon meson setup -D default_library=shared \1/
+ '
+ declare -f check | \
+ sed '
+ /meson test/ i \
+ cd $srcdir/pacman/build
+ s/meson.*/muon test -v/
+ '
+ declare -f package | \
+ sed '
+ /meson install/ i \
+ cd $srcdir/pacman/build
+ /meson install/ a \
+ cd ..
+ s/DESTDIR="$pkgdir" meson install -C build/muon install -d "$pkgdir"/
+ '
+)"
+
+# fails happilly at the moment, going full risk now and installing it anyway..
+unset check
+unset checkdepends
+
+# overwrite wrong checksum on rust.conf? does't work in buildmaster, works
+# in chroot?! Disabling again..
+#sha256sums[5]='6fe03e6ea3f69d99d59a48847a8ae97c2160fca847c7aedf7b89d05e4aa9386d'
+