diff options
Diffstat (limited to 'libre-testing/pacman/PKGBUILD')
-rw-r--r-- | libre-testing/pacman/PKGBUILD | 182 |
1 files changed, 182 insertions, 0 deletions
diff --git a/libre-testing/pacman/PKGBUILD b/libre-testing/pacman/PKGBUILD new file mode 100644 index 000000000..4e9b31394 --- /dev/null +++ b/libre-testing/pacman/PKGBUILD @@ -0,0 +1,182 @@ +# vim: set ts=2 sw=2 et: +# $Id$ +# Maintainer (Arch): Dan McGee <dan@archlinux.org> +# Maintainer (Arch): Dave Reisner <dreisner@archlinux.org> +# Contributor (Hyperbola): André Silva <emulatorman@hyperbola.info> +# Contributor (Hyperbola): Márcio Silva <coadde@hyperbola.info> +# Maintainer: Luke Shumaker <lukeshu@parabola.nu> +# Contributor: Omar Vega Ramos <ovruni@gnu.org.pe> +# Contributor: Nicolás Reynolds <fauno@kiwwwi.com.ar> +# Contributor: Daniel Milewski <niitotantei@riseup.net> + +pkgname=pacman +pkgver=5.1.1 +pkgrel=1 +pkgrel+=.parabola8 +pkgdesc="A library-based package manager with dependency support" +arch=('x86_64') +arch+=('i686' 'armv7h' 'ppc64le') +url="http://www.archlinux.org/pacman/" +license=('GPL') +groups=('base' 'base-devel') +groups+=('base-openrc') +depends=('bash' 'glibc' 'libarchive' 'curl' + 'gpgme' 'pacman-mirrorlist' 'archlinux-keyring') +depends+=('parabola-keyring' 'archlinuxarm-keyring' 'archlinux32-keyring') +makedepends=('asciidoc') +checkdepends=('python2' 'fakechroot') +optdepends=('perl-locale-gettext: translation support in makepkg-template') +provides=('pacman-parabola') +conflicts=('pacman-parabola') +replaces=('pacman-parabola') +backup=(etc/pacman.conf etc/makepkg.conf) +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.gz{,.sig} + ltmain-asneeded.patch::"https://git.archlinux.org/pacman.git/plain/build-aux/ltmain-asneeded.patch?id=28cb22e3c20676c42a08593b5553ee896b53e030" + "${arch[@]/#/pacman.conf.}" + makepkg.conf.in + pacman-keyring.service + pacman-keyring.timer + 0001-makepkg-Better-error-messages-for-versions-in-check-.patch + 0002-makepkg-check_pkgrel-Don-t-say-decimal-in-the-error-.patch + 0003-makepkg-check_pkgver-Report-what-the-bad-pkgver-is.patch + 0004-makepkg-Treat-pkgrel-more-similarly-to-pkgver.patch + 0001-Revert-makepkg-add-whirlpool-to-the-list-of-hashing-.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=('be04b9162d62d2567e21402dcbabb5bedfdb03909fa5ec6e8568e02ab325bd8d' + 'SKIP' + '8e29d09b8ccf78eda393c44acc027b7b6125d89e5a586ad78991752fc9e62a8c' + '53c3d28314fd8fc6f92a0720c41fc5bd4c7b24793f84158d07988b294c5480a2' + '6baddd5a4651f147b9412d86dc8c5b4763e4f34deaf140a7fb986fb4d4a05949' + '435f4e93355048f83697317b35aad7788162bab5f58f1b9268bc83ad03ed41d8' + '88359b6a39c8c1d43b1d1ead05425b0199f8783c330f1b5ec84edcdba5ffb06e' + 'c0cbdc0df96f13a73d241c1eb85a969098bd414f12ecd7c045922b154537e00a' + '220f1b25a64727041dc6fa3fd486b0a043f735a3f6cecedc4e2f7c47ec6ce66d' + '2a857061f032ff5485f5c75ab74e6f6532621e08963ef48640a792cca16cacd6' + '075ac1f8d782ac9868f5e7f3043f684a00da33915eba9ec7e4a8940992ddc269' + '8065c468706be669bc6718a6634e5e58507cba9b8121bf5cfe1703daacab1c3e' + 'd01100d19b9868da8c689a7a14b6340574ecca0105a8d8ef866b281ad3d7e637' + 'cc2c82ca0c3a45dd4e200fa2219da52912a8718ab7e16091ad2938ada657f033' + '1f6a0a8518dc912bc5d9df335b6da220bd3cc51630b6b47c09ec9d4cd47ae432') +sha256sums_armv7h=('8d70fb5094f58aad98b601bbc42be354c2014b9fe734a1ee0b1e14bb041cc9cc' + '0e771370da68c855bfb4eaad4c2ae137883a474886a049b934dac2e775574cb9' + '2f586f72c34150330389854575a21be1d3ef3637c4f94bec2e948c2717a5aecb') + +prepare() { + cd "$pkgname-$pkgver" + + # From Arch ARM + if [ "${CARCH}" = "armv7h" ]; then + patch -p1 -i ../0001-Sychronize-filesystem.patch + patch -p1 -i ../0002-Revert-close-stdin-before-running-install-scripts.patch + patch -p1 -i ../0003-Revert-alpm_run_chroot-always-connect-parent2child-p.patch + fi + + # From Parabola + patch -p1 -i ../0001-makepkg-Better-error-messages-for-versions-in-check-.patch + patch -p1 -i ../0002-makepkg-check_pkgrel-Don-t-say-decimal-in-the-error-.patch + patch -p1 -i ../0003-makepkg-check_pkgver-Report-what-the-bad-pkgver-is.patch + patch -p1 -i ../0004-makepkg-Treat-pkgrel-more-similarly-to-pkgver.patch + + # From pacman-dev mailing list + # Properly drop whirlpoolsums support (instead of mysteriously + # failing). Backported because some Parabola packages actually use + # whirlpoolsums. + patch -p1 -i ../0001-Revert-makepkg-add-whirlpool-to-the-list-of-hashing-.patch + + # Because a Makefile.am was edited by + # 0001-makepkg-Better-error-messages-for-versions-in-check-.patch + # + # This is based of of the 'autogen.sh' script, which is in + # pacman.it, but not included in the tarball. + autoreconf -i + patch -d build-aux -Np0 -i "$srcdir/ltmain-asneeded.patch" +} + +build() { + cd "$pkgname-$pkgver" + + ./configure --prefix=/usr --sysconfdir=/etc \ + --localstatedir=/var --enable-doc \ + --with-scriptlet-shell=/usr/bin/bash \ + --with-ldconfig=/usr/bin/ldconfig + make V=1 + + # Generate the architecture-specific makepkg.conf files + local carch mycarch mychost myflags myldflags + for carch in "${arch[@]}"; do + case $carch in + i686) + mycarch="i686" + mychost="i686-pc-linux-gnu" + myflags="-march=i686 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt" + ;; + x86_64) + mycarch="x86_64" + mychost="x86_64-pc-linux-gnu" + myflags="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt" + ;; + armv7h) + mycarch="armv7h" + mychost="armv7l-unknown-linux-gnueabihf" + myflags="-march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fstack-protector-strong -fno-plt" + ;; + ppc64le) + mycarch="ppc64le" + mychost="powerpc64le-unknown-linux-gnu" + myflags="-mcpu=native -O2 -pipe -fstack-protector-strong -fno-plt" + ;; + esac + myldflags="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now" + + # set things correctly in the default conf file + sed < "$srcdir/makepkg.conf.in" > "$srcdir/makepkg.conf.$carch" \ + -e "s|@CARCH[@]|$mycarch|g" \ + -e "s|@CHOST[@]|$mychost|g" \ + -e "s|@LDFLAGS[@]|$myldflags|g" \ + -e "s|@CARCHFLAGS[@]|$myflags|g" + done +} + +check() { + make -C "$pkgname-$pkgver" check +} + +package() { + cd "$pkgname-$pkgver" + + make DESTDIR="$pkgdir" install + + # install distro-specific stuff + install -dm755 "$pkgdir"/etc/{makepkg,pacman}.d + 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" + local carch + 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 + + # put bash_completion in the right location + install -dm755 "$pkgdir/usr/share/bash-completion/completions" + mv "$pkgdir/etc/bash_completion.d/pacman" "$pkgdir/usr/share/bash-completion/completions" + rmdir "$pkgdir/etc/bash_completion.d" + + for f in makepkg pacman-key; do + ln -s pacman "$pkgdir/usr/share/bash-completion/completions/$f" + 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" +} |