diff options
Diffstat (limited to 'libre/pacman/PKGBUILD')
-rw-r--r-- | libre/pacman/PKGBUILD | 127 |
1 files changed, 79 insertions, 48 deletions
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" } |