lib32/lib32-systemd/PKGBUILD
2018-02-03 13:08:32 +01:00

143 lines
3.3 KiB
Bash

pkgname=lib32-systemd
_pkgbasename=systemd
# latest commit on stable branch
_commit='743b771c559c6101544f7358a42c8c519fe4b0db'
# Bump this to latest major release for signed tag verification,
# the commit count is handled by pkgver() function.
pkgver=235.38
pkgrel=2
pkgdesc="system and service manager (32-bit)"
arch=('x86_64')
url="https://www.github.com/systemd/systemd"
license=('GPL2' 'LGPL2.1')
depends=('lib32-libgcrypt' 'lib32-xz' 'lib32-libcap' 'lib32-gcc-libs' "$_pkgbasename=$pkgver")
makedepends=('lib32-gcc-libs' 'gcc-multilib' 'lib32-libidn' 'lib32-glib2' 'intltool' 'gperf'
'lib32-curl' 'lib32-bzip2' 'lib32-acl' 'lib32-gnutls' 'git' 'meson' 'libxslt')
options=('strip')
validpgpkeys=('63CDA1E5D3FC22B998D20DD6327F26951A015CC4') # Lennart Poettering <lennart@poettering.net>
source=('git://github.com/systemd/systemd-stable.git'
'git://github.com/systemd/systemd.git') # pull in for tags, backports & reverts
sha256sums=('SKIP'
'SKIP')
_backports=(
)
_reverts=(
)
_validate_tag() {
local success fingerprint trusted status tag=v${pkgver%.*}
parse_gpg_statusfile /dev/stdin < <(git verify-tag --raw "$tag" 2>&1)
if (( ! success )); then
error 'failed to validate tag %s\n' "$tag"
return 1
fi
if ! in_array "$fingerprint" "${validpgpkeys[@]}" && (( ! trusted )); then
error 'unknown or untrusted public key: %s\n' "$fingerprint"
return 1
fi
case $status in
'expired')
warning 'the signature has expired'
;;
'expiredkey')
warning 'the key has expired'
;;
esac
return 0
}
pkgver() {
local version count
cd "$_pkgbasename-stable"
git checkout "${_commit}"
version="$(git describe --abbrev=0 --tags)"
count="$(git rev-list --count ${version}..)"
printf '%s.%s' "${version#v}" "${count}"
}
prepare() {
cd "$_pkgbasename-stable"
git remote add upstream ../systemd/
git fetch --all
git checkout "${_commit}"
_validate_tag || return
local _commit
for _commit in "${_backports[@]}"; do
git cherry-pick -n "$_commit"
done
for _commit in "${_reverts[@]}"; do
git revert -n "$_commit"
done
}
build() {
export CC="gcc -m32"
export CXX="g++ -m32"
export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
local timeservers=({0..3}.chakra.pool.ntp.org)
local meson_options=(
--libexecdir /usr/lib32
--libdir /usr/lib32
-Daudit=false
-Dgnuefi=false
-Dima=false
-Dlz4=false
-Dblkid=false
-Dkmod=false
-Dlibcryptsetup=false
-Dlibiptc=false
-Dmanpages=false
-Dnetworkd=false
-Dpam=false
-Dpython=false
-Dseccomp=false
-Dman=false
-Dhtml=false
-Dmicrohttpd=false
-Dqrencode=false
-Dxkbcommon=false
-Ddbuspolicydir=/usr/share/dbus-1/system.d
-Ddefault-dnssec=no
# TODO(dreisner): consider changing this to unified
-Ddefault-hierarchy=hybrid
-Ddefault-kill-user-processes=false
-Dfallback-hostname='archlinux'
-Dntp-servers="${timeservers[*]}"
-Drpmmacrosdir=no
-Dsysvinit-path=
-Dsysvrcnd-path=
)
chakra-meson "$_pkgbasename-stable" build "${meson_options[@]}"
ninja -C build
}
package() {
DESTDIR="$pkgdir" ninja -C build install
rm -rf "${pkgdir}"/{etc,var}
rm -rf "${pkgdir}"/usr/{bin,include,lib,share}
install -m755 -d "${pkgdir}/usr/share/licenses"
ln -s systemd "$pkgdir/usr/share/licenses/lib32-systemd"
}