Christoph Reiter 6f0a8510ba
pacman: restore COMPRESSZST defaults (#5605)
With https://github.com/msys2/msys2-autobuild/commit/dc632d99340da8b204fa2d7
we can now override COMPRESSZST in autobuild, to use higher than default
compression when building packages for the repo.

This means we can revert the default COMPRESSZST back to the default
zstd compression level (3) and make packaging faster for development/CI
etc.
2025-08-30 18:24:40 +02:00

254 lines
11 KiB
Bash

# Maintainer: Alexey Pavlov <alexpux@gmail.com>
# Contributor: Martell Malone <martellmalone@gmail.com>
# Contributor: Ray Donnelly <mingw.android@gmail.com>
pkgname=pacman
pkgver=6.1.0
pkgrel=19
pkgdesc="A library-based package manager with dependency support (MSYS2 port)"
arch=('i686' 'x86_64')
url="https://www.archlinux.org/pacman/"
msys2_repository_url="https://github.com/msys2/msys2-pacman"
msys2_references=(
"cpe: cpe:/a:pacman_project:pacman"
)
license=('spdx:GPL-2.0-or-later')
depends=('bash>=4.2.045'
'gettext'
'gnupg'
'curl'
'pacman-mirrors'
'msys2-keyring'
'which'
'bzip2'
'xz'
'zstd')
checkdepends=('python')
makedepends=('asciidoc'
'doxygen'
'git'
'gcc'
'meson'
'ninja'
'gettext-devel'
'heimdal-devel'
'libarchive-devel'
'libcurl-devel'
'libgpgme-devel'
'libsqlite-devel'
'libunistring-devel')
backup=("etc/pacman.conf"
"etc/makepkg.conf"
"etc/makepkg_mingw.conf")
_commit="e3dc296ba35d5039775c6e53decc7296b3bce396"
source=(pacman::git+https://gitlab.archlinux.org/pacman/pacman.git#commit=${_commit}
"pacman.conf"
"makepkg.conf"
"makepkg_mingw.conf"
"makepkg_mingw.d.clang64.conf"
"makepkg_mingw.d.clangarm64.conf"
"makepkg_mingw.d.mingw32.conf"
"makepkg_mingw.d.mingw64.conf"
"makepkg_mingw.d.ucrt64.conf"
"makepkg-mingw"
0001-makepkg-clean-up-more-things.patch
0002-makepkg-build-env-export.patch
0003-fill_progress.patch
0004-test-fixes.patch
0005-Remove-everything-related-to-sudo-fakeroot-file-perm.patch
0006-change-shebang.patch
0007-Set-fixed-paths-for-various-tools.patch
0008-makepkg-port-staticlibs-to-Windows.patch
0009-makepkg-port-strip-debug-to-Windows.patch
0010-makepkg-lint_package-Warn-on-package-files-referenci.patch
0011-Core-update.patch
0012-Remove-ldconfig.patch
0013-Change-the-epoch-separator.patch
0014-makepkg-avoid-creating-.tar-files-with-extended-attr.patch
0015-pacman-libalpm-ignore-file-conflicts-for-foo.exe-foo.patch
0016-Change-default-answer-of-all-queries-to-yes.patch
0017-Use-pipe-instead-of-socket.patch
0018-pacman-make-file-list-comparisons-between-packages-c.patch
0019-Workaround-compressing-packages-with-bsdtar-under-Ac.patch
0020-Fix-asciidoc-argparse.patch
0021-Export-CC-and-CXX-variables-explicitly.patch
0022-pacman.c-handle-cr-on-stdin-as-well.patch
0023-Fix-building-staticlibs-with-LTO.patch
0024-Make-lint_pkgbuild-opt-in-via-MAKEPKG_LINT_PKGBUILD-.patch
0025-pacman-key-pass-allow-weak-key-signatures-during-imp.patch
0026-Disable-autodep-scripts.patch
0027-Fix-read-after-free-issue-parsing-config-files.patch
0028-Fetch-signature-and-database-from-the-same-URL.patch
0029-libmakepkg-remove-MAKEFLAGS-from-buildenv_vars.patch
0030-libmakepkg-do-not-unset-CHOST-with-buildflags.patch
0031-repo-add-unconditionally-create-the-database-if-it-i.patch
0032-Translate-MSYS2-specific-messages-into-Japanese.patch
0033-fixup-Core-update.patch
0034-pacman-key-disable-WKD-by-default.patch)
validpgpkeys=('6645B0A8C7005E78DB1D7864F99FFE0FEAE999BD' # Allan McRae <allan@archlinux.org>
'B8151B117037781095514CA7BBDFFC92306B1121') # Andrew Gregory (pacman) <andrew@archlinux.org>
sha256sums=('803cba087e713a59866797747c3c63abbc0e4354c45cc2c0467d11e78364d66f'
'0f25288c70ade80c7fac57d3149209b64a7ba23f00232b7e42103f6330b0c1c0'
'613b52b753fa9ad5e991648726ef6519845c23569ff630c9adb3db84b6046c58'
'2bd47103eedebc0a18619a8866f612c3accc89544d73649987e3289af62c35af'
'e1a2b77526f279532cb46a6a76046adaeff4693c9ad4da41a5ff76616a187bcc'
'659b558831632a4d6efb9daa5a38ae8a5d3bad5fa81485fc692a04c929ef7e8b'
'b8cab28667f6bbe6e16d579e3dbba6abf048d5ca5762710ca51a0daefb2f5910'
'c3d5e802117f9adc7dc5a5f397c2f01ea98741cf7f6c94612e637d521853dc25'
'56e55083caf3d46ab0d36dee4b9a3b28e7b184886176dcfe93ab1ff277b5e5a4'
'906b5558f5158143dfee2140a7ee464594a90c58622079f2b51a42d1db425d83'
'167e9ffe59e55fb07d47e0c9a4bddd9d967c50ec2c8711a0a0bbe4b184fc8b0f'
'1021dc5950ff9f9efac795688c4b53a1d3cda42b0f270ee755a038bbcf9eccab'
'af0c734c6efa167bdd9505f0cf8d5d85a8d535a5062a69b6e38473bb43b37aff'
'635a83766a0cdf47cfc51b648b80ceea1d05cfa664f44785caaeef93681f08bf'
'ce5e0b89b5054f561585ab1e14ab9c160319def3e5249495d883492edb3341f4'
'76a3764b5e556b5d68d2b56776082db45e00a9571e1ba6f53a1e4a2041f7d818'
'69c4fd8cd0322dbdbe99cdb41020222ed84fbeda24781b39eaa154703b64a3fa'
'7b699981a007c6c3acea5950db4ddee9c2c488083cd4266793d8b22d1843ebc7'
'53811beed6feaacb0c5ebd7c1e4dcc6de4dde5c06e4d027bdd3ba85bc40a2926'
'088a3f80ee0c81b9ca02ad83a35a1f45f86e85d37243e1f0ed521caee191ceab'
'e7b11b8c847b3a4b7062026b73b97561b2a92c60d746e509acace63c65e29ee1'
'd1432a11149402601d0542b8b9b61b0987714099eeaf18744d4ef5986e49f4d9'
'09e8c61dc9622cdee94e4ad857675e6408953db3ca60a33288eb5404ad9937eb'
'87fd787dbd11a7d3472828b1be3d1c283bd177831fcc4d39e8e52592e2c88afc'
'0a5e65369539ee2fae3856e961609dbabef765fd0db41c61cfe8aa36dcafdd40'
'c2ce3f1c4926073bcfd99e60be2b5c674f1e91cc1e1ddde33ab3d3b9470e964d'
'5f40e2dab8459e69d36ad1fba2ee5b5bbdc487f7f4aa4acd052359b41fb1e3e9'
'9e10f39679b2a047e0eff6da1cd4027b556bdac3106cc1cf0f5fec30cccb7ba7'
'907c8e4c534cab259f7cc737eb43809c76d1d37514e9ae42efd77d5b74993215'
'9331939cbb5f7b698855343186e28f1e3e6ecde16b3b63fceb0b030bcbda9eb0'
'b1a374ab70382e20d00b9a7eee498824005f132dbceba8fdab4fd8c56167f3ef'
'77b15b3ea34de3f1d0757287192e424fad61b40e2c066da9158cd2659d2b4e93'
'3009d2c5c4b497eb3f1fd1ce3c2ee4baa8b6d804a213886286edc128786ad554'
'4bfcc39459e422c842f5bb40db35fe212f110233ecb7372cce3cb10577eaf6fe'
'9b59b70d8cebd2334f824a6ef6afa685f7301197f1fda7336b95a1ecf772519c'
'c221e17ebb8637f92e699f27bbb0995a8d16a80fe583e4f6e84a1c5e4147ae7d'
'8439e55bc3fb8e0e2dacffcd45a27762e538fdcbf6e39432773602e4a26dd9fd'
'56f660d747241514aee05a497be3924b41d2bf53a0ac77e2d6aee7c718ee7c03'
'25229ab3f14460d14b58e37984262e26655110d3b2cdee74b345a3ccb8536cf1'
'c4762de7bb589b5ed84f0474e7a2ba8bf3c6447db153099816cba9cf8cf01cee'
'f090e9c042c901c52f13a8639577f3a97fcac20fc4f2c21a27e7d9223f5dfe2c'
'3de0512e99d5b13ecffd192b019ba2f77e0f238112d2578ae10cbb1cbdd39e47'
'd093221c40c9a96e0303f299f5df31f5cd100e83e8ceb9eccaffee07a60ef338'
'5a31b6b09db89935664ec3e640e3a24a03c75657c3d61463c0e38f7b7da34339')
apply_git_with_msg() {
for _patch in "$@"
do
msg2 "Applying $_patch"
git apply "${srcdir}/${_patch}"
done
}
prepare() {
cd ${srcdir}/${pkgname}
# fixup symlinks
git config core.symlinks true
git reset HEAD --hard
apply_git_with_msg 0001-makepkg-clean-up-more-things.patch \
0002-makepkg-build-env-export.patch \
0003-fill_progress.patch \
0004-test-fixes.patch \
0005-Remove-everything-related-to-sudo-fakeroot-file-perm.patch \
0006-change-shebang.patch \
0007-Set-fixed-paths-for-various-tools.patch \
0008-makepkg-port-staticlibs-to-Windows.patch \
0009-makepkg-port-strip-debug-to-Windows.patch \
0010-makepkg-lint_package-Warn-on-package-files-referenci.patch \
0011-Core-update.patch \
0012-Remove-ldconfig.patch \
0013-Change-the-epoch-separator.patch \
0014-makepkg-avoid-creating-.tar-files-with-extended-attr.patch \
0015-pacman-libalpm-ignore-file-conflicts-for-foo.exe-foo.patch \
0016-Change-default-answer-of-all-queries-to-yes.patch \
0017-Use-pipe-instead-of-socket.patch \
0018-pacman-make-file-list-comparisons-between-packages-c.patch \
0019-Workaround-compressing-packages-with-bsdtar-under-Ac.patch \
0020-Fix-asciidoc-argparse.patch \
0021-Export-CC-and-CXX-variables-explicitly.patch \
0022-pacman.c-handle-cr-on-stdin-as-well.patch \
0023-Fix-building-staticlibs-with-LTO.patch \
0024-Make-lint_pkgbuild-opt-in-via-MAKEPKG_LINT_PKGBUILD-.patch \
0025-pacman-key-pass-allow-weak-key-signatures-during-imp.patch \
0026-Disable-autodep-scripts.patch \
0027-Fix-read-after-free-issue-parsing-config-files.patch \
0028-Fetch-signature-and-database-from-the-same-URL.patch \
0029-libmakepkg-remove-MAKEFLAGS-from-buildenv_vars.patch \
0030-libmakepkg-do-not-unset-CHOST-with-buildflags.patch \
0031-repo-add-unconditionally-create-the-database-if-it-i.patch \
0032-Translate-MSYS2-specific-messages-into-Japanese.patch \
0033-fixup-Core-update.patch \
0034-pacman-key-disable-WKD-by-default.patch
}
build() {
cd ${srcdir}/${pkgname}
# https://gitlab.archlinux.org/pacman/pacman/-/issues/254#note_289040
CFLAGS+=" -fzero-init-padding-bits=unions"
LDFLAGS+=" -static-libgcc" \
meson setup build-${CARCH} \
--buildtype=plain \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--default-library=static \
-Dbuildstatic=true \
-Ddoc=enabled \
-Ddoxygen=enabled \
-Dgpgme=enabled \
-Dcurl=enabled \
-Duse-git-version=false \
-Dpkg-ext=.pkg.tar.xz \
-Dscriptlet-shell=/usr/bin/bash
meson compile -C build-${CARCH}
}
check() {
cd ${srcdir}/${pkgname}
meson test -C build-${CARCH}
}
package() {
cd ${srcdir}/${pkgname}
DESTDIR=${pkgdir} meson install -C build-${CARCH}
# install Arch specific stuff
install -dm755 ${pkgdir}/etc
install -m644 ${srcdir}/pacman.conf ${pkgdir}/etc/pacman.conf
# Fixup .pc file
sed -i "s|/usr/.*libintl.a|-lintl|g" ${pkgdir}/usr/lib/pkgconfig/libalpm.pc
case "${CARCH}" in
i686)
mycarch="i686"
mychost="i686-pc-cygwin"
myflags="-march=pentium4"
;;
x86_64)
mycarch="x86_64"
mychost="x86_64-pc-cygwin"
myflags="-march=nocona -msahf"
;;
esac
install -m644 ${srcdir}/makepkg.conf ${pkgdir}/etc/
install -m644 ${srcdir}/makepkg_mingw.conf ${pkgdir}/etc/
install -dm755 ${pkgdir}/etc/makepkg_mingw.d
for f in "${srcdir}/"makepkg_mingw.d.*.conf; do
install -m644 "${f}" "${pkgdir}/etc/makepkg_mingw.d/${f#${srcdir}/makepkg_mingw.d.}"
done
install -m755 ${srcdir}/makepkg-mingw ${pkgdir}/usr/bin/
# set things correctly in the default conf file
sed -i ${pkgdir}/etc/makepkg.conf \
-e "s|@CARCH[@]|${mycarch}|g" \
-e "s|@CHOST[@]|${mychost}|g" \
-e "s|@CARCHFLAGS[@]|${myflags}|g"
}