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=1 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 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" }