# Adapted from the Arch Linux systemd build script. # Maintainer: Jack L. Frost pkgbase=systemd-libs pkgname=('systemd-libs-systemd' 'systemd-libs-udev') _tag='42f5ba1e56ddb81c244e0d85f13109acdb14cbee' # git rev-parse v${_tag_name} _tag_name=254.5 pkgver="${_tag_name/-/}" pkgrel=1 arch=('x86_64') url='https://www.github.com/systemd/systemd' makedepends=('acl' 'cryptsetup' 'docbook-xsl' 'gperf' 'lz4' 'xz' 'pam' 'libelf' 'intltool' 'iptables' 'kmod' 'libcap' 'libidn2' 'libgcrypt' 'libmicrohttpd' 'libxcrypt' 'libxslt' 'util-linux' 'linux-api-headers' 'python-jinja' 'python-lxml' 'quota-tools' 'shadow' 'git' 'meson' 'libseccomp' 'pcre2' 'audit' 'kexec-tools' 'libxkbcommon' 'bash-completion' 'p11-kit' 'systemd' 'libfido2' 'tpm2-tss' 'rsync' 'bpf' 'libbpf' 'clang' 'llvm' 'curl' 'gnutls' 'python-pyelftools' 'lib32-gcc-libs') options=('strip') #validpgpkeys=('63CDA1E5D3FC22B998D20DD6327F26951A015CC4' # Lennart Poettering # '5C251B5FC54EB2F80F407AAAC54CA336CFEB557E') # Zbigniew Jędrzejewski-Szmek source=("git+https://github.com/systemd/systemd-stable#tag=${_tag}" "git+https://github.com/systemd/systemd#tag=v${_tag_name%.*}" '0001-Use-Arch-Linux-device-access-groups.patch') _backports=( ) _reverts=( ) prepare() { cd "systemd-stable" # add upstream repository for cherry-picking git remote add -f upstream ../systemd local _c for _c in "${_backports[@]}"; do if [[ $_c == *..* ]]; then git log --oneline --reverse "${_c}" else git log --oneline -1 "${_c}" fi git cherry-pick -n -m1 "${_c}" done for _c in "${_reverts[@]}"; do git log --oneline -1 "${_c}" git revert -n "${_c}" done # Replace cdrom/dialout/tape groups with optical/uucp/storage patch -Np1 -i ../0001-Use-Arch-Linux-device-access-groups.patch } build() { local _timeservers=({0..3}.arch.pool.ntp.org) local _nameservers=( # We use these public name services, ordered by their # privacy policy (hopefully): # * Cloudflare (https://1.1.1.1/) # * Quad9 without filtering (https://www.quad9.net/) # * Google (https://developers.google.com/speed/public-dns/) 1.1.1.1 9.9.9.10 8.8.8.8 2606:4700:4700::1111 2620:fe::10 2001:4860:4860::8888 ) local _meson_options=( # internal version comparison is incompatible with pacman: # 249~rc1 < 249 < 249.1 < 249rc -Dversion-tag="${_tag_name/-/\~}-${pkgrel}-arch" -Dshared-lib-tag="${pkgver}-${pkgrel}" -Dmode=release -Dbootloader=true -Dbpf-framework=true -Dima=false -Dlibidn2=true -Dlz4=true -Dman=true -Dnscd=false # We disable DNSSEC by default, it still causes trouble: # https://github.com/systemd/systemd/issues/10579 -Ddbuspolicydir=/usr/share/dbus-1/system.d -Ddefault-dnssec=no -Ddefault-hierarchy=unified -Ddefault-kill-user-processes=false -Ddefault-locale='C.UTF-8' -Dlocalegen-path=/usr/bin/locale-gen -Ddns-over-tls=openssl -Dfallback-hostname='archlinux' -Dnologin-path=/usr/bin/nologin -Dntp-servers="${_timeservers[*]}" -Ddns-servers="${_nameservers[*]}" -Drpmmacrosdir=no -Dsysvinit-path= -Dsysvrcnd-path= -Dsbat-distro='arch' -Dsbat-distro-summary='Arch Linux' -Dsbat-distro-pkgname="systemd" -Dsbat-distro-version="${pkgver}" -Dsbat-distro-url="https://archlinux.org/packages/core/x86_64/systemd/" ) # this uses malloc_usable_size, which is incompatible with fortification level 3 export CFLAGS="${CFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}" export CXXFLAGS="${CXXFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}" arch-meson "systemd-stable" build "${_meson_options[@]}" meson compile -C build } #check() { meson test -C build; } package_systemd-libs-systemd() { pkgdesc='systemd client libraries' depends=('glibc' 'libcap' 'libgcrypt' 'lz4' 'xz' 'zstd') license=('LGPL2.1') provides=('libsystemd' 'libsystemd.so' 'systemd-libs') conflicts=('libsystemd') replaces=('libsystemd') DESTDIR="$srcdir/full-install" meson install -C build install -d -m0755 "$pkgdir"/usr/lib cp --archive "$srcdir/full-install/usr/lib/"lib{nss,systemd}*.so* "$pkgdir/usr/lib/" install -d -m0755 "$pkgdir"/usr/lib/include cp --archive "$srcdir/full-install/usr/include/systemd" "$pkgdir/usr/include/" } package_systemd-libs-udev() { pkgdesc="udev client libraries" depends=('glibc' 'libcap' 'libgcrypt' 'lz4' 'xz') license=('LGPL2.1') provides=('libudev' 'libudev.so') # udev libs install -d -m0755 "$pkgdir"/usr/lib cp --archive "$srcdir/full-install/usr/lib/"libudev* "$pkgdir/usr/lib/" install -d -m0755 "$pkgdir"/usr/include cp --archive "$srcdir/full-install/usr/include/libudev.h" "$pkgdir/usr/include/" } sha1sums=('SKIP' 'SKIP' '0486ab66087de95ac304d6f599d914172d740a7c')