summaryrefslogtreecommitdiff
path: root/libre/systemd/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'libre/systemd/PKGBUILD')
-rw-r--r--libre/systemd/PKGBUILD695
1 files changed, 485 insertions, 210 deletions
diff --git a/libre/systemd/PKGBUILD b/libre/systemd/PKGBUILD
index 13225f6c6..8e1d030f4 100644
--- a/libre/systemd/PKGBUILD
+++ b/libre/systemd/PKGBUILD
@@ -1,90 +1,175 @@
-# Maintainer (Arch): Christian Hesse <mail@eworm.de>
-# Maintainer (Arch): Dave Reisner <dreisner@archlinux.org>
-# Maintainer (Arch): Tom Gundersen <teg@jklm.no>
+# Maintainer (arch): Christian Hesse <mail@eworm.de>
# Maintainer: Luke Shumaker <lukeshu@parabola.nu>
# Contributor: Omar Vega Ramos <ovruni@gnu.org.pe>
# Contributor: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+# Contributor: bill-auger <bill-auger@programmer.net>
+
+# Tips for the maintainer (i.e.: future me?):
+#
+# - I check in the .SRCINFO file because it makes it easier to verify
+# that the metadata changes are what you expect.
+# - I use the `./srcinfo.sh` script to update .SRCINFO after
+# `libremakepkg`ing the package.
+
+# There are a lot of pkgnames in this file, whether in the pkgname=()
+# array, or in provides=(), conflicts=(), or replaces=(). Let's go
+# over where each comes from and what it means, for clarity.
+#
+# Inherited from Arch:
+# * systemd's current pkgname=():
+# - `systemd`: Duh
+# - `systemd-libs`: `libsystemd.so`, `libudev.so`, and the NSS modules
+# - `systemd-resolvconf`: resolvconf(1)
+# - `systemd-sysvcompat`: init(1), halt(8), poweroff(8), reboot(8), shutdown(8)
+# - `systemd-ukify`: ukify(1)
+# * historical systemd pkgname=() values:
+# - `udev`: existed as a split package 2012-02 to 2012-05, when it merged into
+# `systemd-tools`
+# - `systemd-tools`: existed as a split package 2012-02 to 2012-08, when it
+# merged into `systemd`
+# - `libsystemd`: the name of `systemd-libs` prior to 2019-02
+# * separate packages:
+# - `systemd-sysvcompat`: existed as a separate package (not a split package)
+# 2012-02 to 2012-06
+# - `nss-myhostname`: a separate that existed first in `extra` then in `core`,
+# 2012-02 to 2013-01, when it became part of systemd
+# - `sysvinit`: a separate package that existed in `core` until 2013-05
+# - `openresolv`: prior to 2018-06 this was Arch's only `resolvconf`
+# implementation, so most packages depended on it instead of the `resolvconf`
+# virtual package
+# * virtual packages:
+# - `resolvconf`: since 2018-06, resolvconf(1)
+#
+# From Parabola (mostly by the decision-making of lukeshu):
+# * systemd's current pkgname=():
+# - We further split `systemd` into:
+# + `systemd`: systemd itself
+# + `systemd-udev`: just udev
+# + `systemd-common`: files shared between `systemd` and `systemd-udev`
+# - We further split `systemd-libs` into a separate package for each
+# library and NSS module:
+# + `systemd-libsystemd`
+# + `systemd-libudev`
+# + `systemd-nss-systemd`
+# + `systemd-nss-myhostname`
+# + `systemd-nss-mymachines`
+# + `systemd-nss-resolve`
+# Separating libsystemd and libudev are obvious. I can make a good case for
+# separating nss-myhostname, because it's useful on nonsystemd boxes. But I
+# guess I (lukeshu) separated out the other NSS modules too just for
+# consistency with nss-myhostname? I'm sure I felt strongly about it at the
+# time.
+# * separate packages:
+# - `notsystemd-resolvconf`: existed 2018-07 to 2018-08, was identical to
+# `systemd-resolvconf`
+# * virtual packages:
+# - `init`: `/usr/bin/init`; invented by lukeshu in order to have mutual
+# provides/conflicts between `systemd-sysvcompat`, `sysvinit`, and
+# `openrc-init`.
+# - `libsystemd-standalone`: `libsystemd.so`; the pkgname has `-standalone`
+# appended because we inherited from Arch a different (historical) meaning of
+# what the `libsystemd` pkgname is.
+# - `libudev`: `libudev.so`
+# - `nss-systemd`: `libnss_systemd.so`
+# - `nss-myhostname`: `libnss_myhostname.so`
+# - `nss-mymachines`: `libnss_mymachines.so`
+# - `nss-resolve`: `libnss_resolve.so`
pkgbase=systemd
-pkgname=('systemd' 'systemd-libs' 'systemd-resolvconf' 'systemd-sysvcompat')
+pkgname=('systemd'
+ 'systemd-libs'
+ 'systemd-resolvconf'
+ 'systemd-sysvcompat'
+ 'systemd-ukify')
pkgname+=('systemd-common' 'systemd-udev')
# We split Arch's systemd-libs into systemd-$X, for the following $X:
_systemd_libs=('libsystemd' 'libudev' 'nss-systemd' 'nss-myhostname' 'nss-mymachines' 'nss-resolve')
pkgname+=("${_systemd_libs[@]/#/systemd-}")
-_tag='7570cf07107685ae6fac3989e3fc3e40fdd1db55' # git rev-parse v${pkgver}
-pkgver=246.5
-pkgrel=1
+_tag='4003dd6754e3446691402d3cc389fbfd4faccc90' # git rev-parse v${_tag_name}
+_tag_name=255.4
+# Upstream versioning is incompatible with pacman's version comparisons so we
+# replace tildes with the empty string to make sure pacman's version comparing
+# does the right thing for rc versions:
+# ➜ vercmp 255~rc1 255
+# 1
+# ➜ vercmp 255rc1 255
+# -1
+pkgver="${_tag_name/~/}"
+pkgrel=2
pkgrel+=.parabola1
arch=('x86_64')
arch+=('i686' 'armv7h' 'ppc64le')
+license=('LGPL-2.1-or-later')
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-lxml' 'quota-tools' 'shadow' 'git'
+ 'python-jinja' 'python-lxml' 'quota-tools' 'shadow' 'git'
'meson' 'libseccomp' 'pcre2' 'audit' 'kexec-tools' 'libxkbcommon'
- 'bash-completion' 'p11-kit' 'systemd')
-makedepends_i686=('gnu-efi-libs' 'pkgconf')
-makedepends_x86_64=('gnu-efi-libs')
-options=('strip')
+ 'bash-completion' 'p11-kit' 'systemd' 'libfido2' 'tpm2-tss' 'rsync'
+ 'bpf' 'libbpf' 'clang' 'llvm' 'curl' 'gnutls' 'python-pyelftools'
+ 'libpwquality' 'qrencode' 'lib32-gcc-libs' 'python-pefile')
+makedepends=(${makedepends[*]/lib32-gcc-libs}) # only include lib32-gcc-libs on x86_64
+makedepends_x86_64=('lib32-gcc-libs')
+makedepends_i686=('pkgconf') # FIXME(lukeshu): Why do we need to request `pkgconf` on i686?
+conflicts=("mkinitcpio<38-1")
validpgpkeys=('63CDA1E5D3FC22B998D20DD6327F26951A015CC4' # Lennart Poettering <lennart@poettering.net>
+ 'A9EA9081724FFAE0484C35A1A81CEA22BC8C7E2E' # Luca Boccassi <luca.boccassi@gmail.com>
+ '9A774DB5DB996C154EBBFBFDA0099A18E29326E1' # Yu Watanabe <watanabe.yu+github@gmail.com>
'5C251B5FC54EB2F80F407AAAC54CA336CFEB557E') # Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
source=("git+https://github.com/systemd/systemd-stable#tag=${_tag}?signed"
- "git+https://github.com/systemd/systemd#tag=v${pkgver%.*}?signed"
+ "git+https://github.com/systemd/systemd#tag=v${_tag_name%.*}?signed"
'0001-Use-Arch-Linux-device-access-groups.patch'
- 'initcpio-hook-udev'
- 'initcpio-install-systemd'
- 'initcpio-install-udev'
+ '0001-FSDG-bootctl-Say-Systemd-Boot-Manager-instead-of-Lin.patch'
+ '0002-FSDG-os-release-Default-PRETTY_NAME-to-GNU-Linux-ins.patch'
+ '0003-FSDG-os-release-Default-NAME-to-GNU-Linux-instead-of.patch'
+ '0004-FSDG-os-release-Default-ID-to-gnu-linux-instead-of-l.patch'
+ '0005-FSDG-systemd-resolved-Fallback-hostname-to-gnu-linux.patch'
+ '0006-FSDG-man-Mention-Parabola-instead-of-Arch.patch'
+ '0007-FSDG-man-Refer-to-the-operating-system-as-GNU-Linux.patch'
+ # bootloader files
'parabola.conf'
'loader.conf'
'splash-parabola.bmp'
+ # pam configuration
'systemd-user.pam'
+ # pacman / libalpm hooks
'systemd-hook'
'20-systemd-sysusers.hook'
- 'udev-hook'
'30-systemd-binfmt.hook'
'30-systemd-catalog.hook'
- '30-systemd-daemon-reload.hook'
+ '30-systemd-daemon-reload-system.hook'
+ '30-systemd-daemon-reload-user.hook'
'30-systemd-hwdb.hook'
'30-systemd-sysctl.hook'
'30-systemd-tmpfiles.hook'
'30-systemd-udev-reload.hook'
- '30-systemd-update.hook'
- '0001-FSDG-man-Refer-to-the-operating-system-as-GNU-Linux.patch'
- '0002-FSDG-os-release-Default-PRETTY_NAME-to-GNU-Linux-ins.patch'
- '0003-FSDG-os-release-Default-NAME-to-GNU-Linux-instead-of.patch'
- '0004-FSDG-os-release-Default-ID-to-gnu-linux-instead-of-l.patch'
- '0005-FSDG-systemd-resolved-Fallback-hostname-to-gnu-linux.patch'
- '0006-FSDG-man-Use-FSDG-operating-systems-as-examples.patch'
- '0007-FSDG-bootctl-Say-Systemd-Boot-Manager-instead-of-Lin.patch')
+ '30-systemd-update.hook')
sha512sums=('SKIP'
'SKIP'
- 'e38c7c422c82953f9c2476a5ab8009d614cbec839e4088bff5db7698ddc84e3d8ed64f32ed323f57b1913c5c9703546f794996cb415ed7cdda930b627962a3c4'
- 'f0d933e8c6064ed830dec54049b0a01e27be87203208f6ae982f10fb4eddc7258cb2919d594cbfb9a33e74c3510cfd682f3416ba8e804387ab87d1a217eb4b73'
- 'f1f0bc599eb73b96f81e5413a55617ab82978d057dc0cabf226d225bb836a967fe13b84c4f24f64c074b6568026ab81d457512ff20a5918892c47a3a603eaa6e'
- 'a25b28af2e8c516c3a2eec4e64b8c7f70c21f974af4a955a4a9d45fd3e3ff0d2a98b4419fe425d47152d5acae77d64e69d8d014a7209524b75a81b0edb10bf3a'
+ '3ccf783c28f7a1c857120abac4002ca91ae1f92205dcd5a84aff515d57e706a3f9240d75a0a67cff5085716885e06e62597baa86897f298662ec36a940cf410e'
+ 'b01d28646bca80c33192a10728218427b95246f904d921d00451bd32673f6352aefe6a8168942e796f4b7d1682921cc5c6adb895c9d9cdc0365606bfd4eca391'
+ 'fb1f75ded29d635c9e746ce76a99ace4e79694eea6d6ec7e8a84d7700e92ee5698576b979e16d71316c3e9276f285e3db248f74e8e55a8cf719456f6abc362b1'
+ '03df948013f353e3fb6db745a01520c2dc8278b823e57178aca1c59786b81dd8a2e10e7f603e33028e1e9084a753cb7a09ebd4b4291dbdda30a16eba39628866'
+ '2e89361d6af47464b91a04dc4be7a941ff12894b56831702deb6063d8d386141ff04989d1ecb39dbc452d83caacd5830c8eb6b06350c4bee6ccd3383aa2b1c8f'
+ '0b634f674468e6c859e7faff9bbf9d310a2c1feac2ceb4bfd5cb132e9b706f512908c1c905c72181395a5f0d0af40600e62ef46ce1ab534beb0b8d16aba0a2be'
+ '819331360737c59bc6fa2ca681da16bdae599d83289d619da802c4ffff2fe3b72852b11d50caecc058c80022b6b5158c5309560670fa2c30c08e9bb14b7e0454'
+ 'eb4ca9b4460f19ac93885d8e22ae4e844d0798918d692d84333e4f1b5ae6fa28a2443d156e31202c1c05f97c3f61531a8822f1b0e66ccc00e20743b871322aa8'
'70b3f1d6aaa9cd4b6b34055a587554770c34194100b17b2ef3aaf4f16f68da0865f6b3ae443b3252d395e80efabd412b763259ffb76c902b60e23b6b522e3cc8'
'6c6f579644ea2ebb6b46ee274ab15110718b0de40def8c30173ba8480b045d403f2aedd15b50ad9b96453f4ad56920d1350ff76563755bb9a80b10fa7f64f1d9'
'a50bc85061a9a16d776235099867bc1a17c17dddb74c1ecf5614c849735a9779c5e34e5ddca8ca6af4b59a40f57c08ecf219b98cab09476ddb0f110e6a35e45c'
'b90c99d768dc2a4f020ba854edf45ccf1b86a09d2f66e475de21fe589ff7e32c33ef4aa0876d7f1864491488fd7edb2682fc0d68e83a6d4890a0778dc2d6fe19'
- 'd8ed2e26a6562ed7835a861a7a534842befec22475db0442cd26350ac54446bc9fec6b4c8429ed6d983cc600564446ab2827ea10cacef7e950220d01f0961214'
+ '3cb8f88c1bffc753d0c540be5d25a0fdb9224478cca64743b5663340f2f26b197775286e6e680228db54c614dcd11da1135e625674a622127681662bec4fa886'
'299dcc7094ce53474521356647bdd2fb069731c08d14a872a425412fcd72da840727a23664b12d95465bf313e8e8297da31259508d1c62cc2dcea596160e21c5'
- 'b7ee4f212c910df62c3472103a64a3cdf0d31292bc2f8fa839e5c86f34faa3ef1a3693601f5716779c4552a0d2b1d57538d45610f4c2e1c80e155ffbf0af187d'
'0d6bc3d928cfafe4e4e0bc04dbb95c5d2b078573e4f9e0576e7f53a8fab08a7077202f575d74a3960248c4904b5f7f0661bf17dbe163c524ab51dd30e3cb80f7'
'2b50b25e8680878f7974fa9d519df7e141ca11c4bfe84a92a5d01bb193f034b1726ea05b3c0030bad1fbda8dbb78bf1dc7b73859053581b55ba813c39b27d9dc'
- '63e55b3acd14bc54320b6f2310b43398651ad4e262d4f4a0135e05d34a993e56ed673cc46e57f15b418371df5c4cef6f54486db96325e4abb1d33fb1a3946254'
- 'cee9240dac5888d1dde916429ac25c022e30b5d7c53ba9e699e281021d2224bfd6e4cc4ac1c71c15f768b720d524cac0dabaae06d026a68759f6fe84b4c62751'
+ 'a436d3f5126c6c0d6b58c6865e7bd38dbfbfb7babe017eeecb5e9d162c21902cbf4e0a68cf3ac2f99815106f9fa003b075bd2b4eb5d16333fa913df6e2f3e32a'
+ '190112e38d5a5c0ca91b89cd58f95595262a551530a16546e1d84700fc9644aa2ca677953ffff655261e8a7bff6e6af4e431424df5f13c00bc90b77c421bc32d'
+ 'a1661ab946c6cd7d3c6251a2a9fd68afe231db58ce33c92c42594aedb5629be8f299ba08a34713327b373a3badd1554a150343d8d3e5dfb102999c281bd49154'
'9426829605bbb9e65002437e02ed54e35c20fdf94706770a3dc1049da634147906d6b98bf7f5e7516c84068396a12c6feaf72f92b51bdf19715e0f64620319de'
'da7a97d5d3701c70dd5388b0440da39006ee4991ce174777931fea2aa8c90846a622b2b911f02ae4d5fffb92680d9a7e211c308f0f99c04896278e2ee0d9a4dc'
- '5aa475f37d35752a95e73417c38c4d3bc4d15d5f1052e95d75b4c4144b74c79af94da1d1e954be536339f9829a1ceb3a1bc5c6adceb187df7a8e5f5a83e4a850'
- '825b9dd0167c072ba62cabe0677e7cd20f2b4b850328022540f122689d8b25315005fa98ce867cf6e7460b2b26df16b88bb3b5c9ebf721746dce4e2271af7b97'
- 'e94ac3884237bd95b3e2b183b71e7aae4fdbacce043368d32deee9f6da15d9d61b57a78bc889ef1b69f85499bfaec9f4121adb3f81a01a28571e7905be96231b'
- '3536a497e4d6cfae76296be7bf903c7645d6a85f96f57256196282f91d3845876d74ca121efeb81df8d524ec3c53f614157a90d213a5d3c4bb14958be701fff9'
- 'fd0df3d365892d4d461a78bb0b728201e81c1269af07a38e134fadfc0ffb29aade7642142d128abcf88803b86494d7629ff5990359ef067feea3d476c7238a67'
- 'e9e884015a40dc796fd8cbd8f79b3b9eebc7e48a332b22d52104c21c492be9982b35b7dd30bc29f2c2d274707ffd043eda059659844a4cd50eb433b8a3f7648c'
- '0d6b894149ec8d0612d1be1dee5daa1768345232e450435ddc750e36a8309dd96782a92f0220169c69103b1c4632af708e4a737cb7ba817944c92dcb61379a30'
- '49ee2af68a256d523143c830e7efcea8b75265b39c06880a53acaf178125b644baa39bc71b7217ea54dd0c31d8fa1fce9328a7169c9ca24fe6c0e37faab50464'
- '28a5b3fc9e2c5cec9267bb96725c73ee77788514f140c0cf8df765af64bc8130dd02f4863d9128ac45d54256b2ab4f2b06d1a3f65660ce1dfba5727618cd1839')
+ 'a50d202a9c2e91a4450b45c227b295e1840cc99a5e545715d69c8af789ea3dd95a03a30f050d52855cabdc9183d4688c1b534eaa755ebe93616f9d192a855ee3'
+ '825b9dd0167c072ba62cabe0677e7cd20f2b4b850328022540f122689d8b25315005fa98ce867cf6e7460b2b26df16b88bb3b5c9ebf721746dce4e2271af7b97')
_backports=(
)
@@ -98,14 +183,16 @@ prepare() {
# add upstream repository for cherry-picking
git remote add -f upstream ../systemd
- local _c
+ local _c _l
for _c in "${_backports[@]}"; do
- git log --oneline -1 "${_c}"
- git cherry-pick -n "${_c}"
+ if [[ "${_c}" == *..* ]]; then _l='--reverse'; else _l='--max-count=1'; fi
+ git log --oneline "${_l}" "${_c}"
+ git cherry-pick --mainline 1 --no-commit "${_c}"
done
for _c in "${_reverts[@]}"; do
- git log --oneline -1 "${_c}"
- git revert -n "${_c}"
+ if [[ "${_c}" == *..* ]]; then _l='--reverse'; else _l='--max-count=1'; fi
+ git log --oneline "${_l}" "${_c}"
+ git revert --mainline 1 --no-commit "${_c}"
done
# Replace cdrom/dialout/tape groups with optical/uucp/storage
@@ -114,6 +201,7 @@ prepare() {
# apply FSDG patches
local _patch
for _patch in "$srcdir"/????-FSDG-*.patch; do
+ echo "applying $_patch"
patch -Np1 -i "$_patch"
done
}
@@ -121,17 +209,16 @@ prepare() {
build() {
local _timeservers=({0..3}.arch.pool.ntp.org)
local _nameservers=(
- # We use these public name services, ordered by their
- # privacy policy (hopefully):
+ # 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/)
+ # * Quad9 (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
+ '1.1.1.1#cloudflare-dns.com'
+ '9.9.9.9#dns.quad9.net'
+ '8.8.8.8#dns.google'
+ '2606:4700:4700::1111#cloudflare-dns.com'
+ '2620:fe::9#dns.quad9.net'
+ '2001:4860:4860::8888#dns.google'
)
if [ "$CARCH" = "armv7h" ]; then
@@ -141,21 +228,32 @@ build() {
fi
local _meson_options=(
- -Dversion-tag="${pkgver}-${pkgrel}-parabola"
-
+ -Dversion-tag="${_tag_name}-${pkgrel}-parabola"
+ # We use the version without tildes as the shared library tag because
+ # pacman looks at the shared library version.
+ -Dshared-lib-tag="${pkgver}-${pkgrel}"
+ -Dmode=release
+
+ -Dapparmor=false
+ -Dbootloader=true
+ -Dxenctrl=false
+ -Dbpf-framework=true
-Dima=false
-Dlibidn2=true
-Dlz4=true
-Dman=true
+ -Dnscd=false
+ -Dselinux=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=hybrid
+ -Ddefault-hierarchy=unified
-Ddefault-kill-user-processes=false
- -Ddefault-locale=C
+ -Ddefault-locale='C.UTF-8'
+ -Dlocalegen-path=/usr/bin/locale-gen
-Ddns-over-tls=openssl
-Dfallback-hostname='parabola'
-Dnologin-path=/usr/bin/nologin
@@ -164,288 +262,465 @@ build() {
-Drpmmacrosdir=no
-Dsysvinit-path=
-Dsysvrcnd-path=
+
+ -Dsbat-distro='parabola'
+ -Dsbat-distro-summary='Parabola GNU/Linux-libre'
+ -Dsbat-distro-pkgname="${pkgname}"
+ -Dsbat-distro-version="${pkgver}"
+ -Dsbat-distro-url="https://www.parabola.nu/packages/libre/${CARCH}/${pkgname}/"
)
- if [ "$CARCH" != "armv7h" ]; then
- _meson_options+=(-Dgnu-efi=true)
- fi
arch-meson "$pkgbase-stable" build "${_meson_options[@]}"
- ninja -C build
+ meson compile -C build
# Go ahead and split the package now. It's easier this way, because
- # we can use mv instead of awkward, error-prone rm/cp pairs.
- rm -rf "$srcdir/dest"
-
- # Put things in the main systemd package by default
- DESTDIR="$srcdir/dest/systemd" meson install -C build
-
- install -dm755 "$srcdir/dest/common"/usr/lib/systemd
- mv -T "$srcdir/dest"/{systemd,common}/usr/lib/systemd/libsystemd-shared-${pkgver%%.*}.so
-
- install -dm755 "$srcdir/dest/libsystemd"/usr/{lib/pkgconfig,share/man/man3,include}
- mv -T "$srcdir/dest"/{systemd,libsystemd}/usr/include/systemd
- mv -T "$srcdir/dest"/{systemd,libsystemd}/usr/lib/pkgconfig/libsystemd.pc
- mv "$srcdir/dest"/systemd/usr/lib/libsystemd.so* -t "$srcdir/dest"/libsystemd/usr/lib/
- mv "$srcdir/dest"/systemd/usr/share/man/man3/{SD,sd}* -t "$srcdir/dest"/libsystemd/usr/share/man/man3/
-
- install -dm755 "$srcdir/dest/libudev"/usr/{lib/pkgconfig,share/man/man3,include}
- mv -T "$srcdir/dest"/{systemd,libudev}/usr/include/libudev.h
- mv -T "$srcdir/dest"/{systemd,libudev}/usr/lib/pkgconfig/libudev.pc
- mv "$srcdir/dest"/systemd/usr/lib/libudev.so* -t "$srcdir/dest"/libudev/usr/lib/
- mv "$srcdir/dest"/systemd/usr/share/man/man3/*udev* -t "$srcdir/dest"/libudev/usr/share/man/man3/
-
- install -dm755 "$srcdir/dest/udev"/{etc,usr/lib}
- mv -T "$srcdir/dest"/{systemd,udev}/etc/udev/
- mv -T "$srcdir/dest"/{systemd,udev}/usr/lib/udev/
+ # we can use `mv` instead of awkward+error-prone pairs of `rm`ing
+ # the files in package_systemd() and then re-creating them in the
+ # other package_ functions.
+
+ # Put things in the main `systemd` package by default.
+ meson install -C build --destdir "$srcdir/dest/systemd"
+
+ # Parabola: Pull out `systemd-common`.
+ install -dm755 "$srcdir/dest/systemd-common"/usr/lib/systemd
+ mv -T "$srcdir/dest"/systemd{,-common}/usr/lib/systemd/"libsystemd-shared-${pkgver}-${pkgrel}.so"
+
+ # Pull out `systemd-libs`.
+ install -d -m0755 "$srcdir/dest/systemd-libs"/usr/{lib,share/man/man8}
+ mv "$srcdir/dest/systemd"/usr/lib/lib{nss,systemd,udev}*.so* -t "$srcdir/dest/systemd-libs"/usr/lib/
+ mv "$srcdir/dest/systemd"/usr/lib/pkgconfig -t "$srcdir/dest/systemd-libs"/usr/lib/
+ mv "$srcdir/dest/systemd"/usr/include -t "$srcdir/dest/systemd-libs"/usr/
+ mv "$srcdir/dest/systemd"/usr/share/man/man3 -t "$srcdir/dest/systemd-libs"/usr/share/man/
+ mv "$srcdir/dest/systemd"/usr/share/man/man8/{nss-,libnss_}* -t "$srcdir/dest/systemd-libs"/usr/share/man/man8/
+
+ # Parabola: Further split `systemd-libs`
+ {
+ # Pull out `systemd-libsystemd`.
+ install -dm755 "$srcdir/dest/systemd-libsystemd"/usr/{lib/pkgconfig,share/man/man3,include}
+ mv -T "$srcdir/dest"/systemd-{libs,libsystemd}/usr/include/systemd
+ mv -T "$srcdir/dest"/systemd-{libs,libsystemd}/usr/lib/pkgconfig/libsystemd.pc
+ mv "$srcdir/dest/systemd-libs"/usr/lib/libsystemd.so* -t "$srcdir/dest/systemd-libsystemd"/usr/lib/
+ mv "$srcdir/dest/systemd-libs"/usr/share/man/man3/{SD,sd,libsystemd}* -t "$srcdir/dest/systemd-libsystemd"/usr/share/man/man3/
+
+ # Pull out `systemd-libudev`.
+ install -dm755 "$srcdir/dest/systemd-libudev"/usr/{lib/pkgconfig,share/man/man3,include}
+ mv -T "$srcdir/dest"/systemd-{libs,libudev}/usr/include/libudev.h
+ mv -T "$srcdir/dest"/systemd-{libs,libudev}/usr/lib/pkgconfig/libudev.pc
+ mv "$srcdir/dest/systemd-libs"/usr/lib/libudev.so* -t "$srcdir/dest/systemd-libudev"/usr/lib/
+ mv "$srcdir/dest/systemd-libs"/usr/share/man/man3/*udev* -t "$srcdir/dest/systemd-libudev"/usr/share/man/man3/
+
+ # Pull out `systemd-nss-*`.
+ local nssmodule
+ for nssmodule in systemd myhostname mymachines resolve; do
+ install -dm755 "$srcdir/dest/systemd-nss-$nssmodule"/usr/{lib,share/man/man8}
+ mv -t "$srcdir/dest/systemd-nss-$nssmodule"/usr/share/man/man8/ -- \
+ "$srcdir/dest/systemd-libs"/usr/share/man/man8/nss-$nssmodule.8 \
+ "$srcdir/dest/systemd-libs"/usr/share/man/man8/libnss_$nssmodule.*.8
+ mv -t "$srcdir/dest/systemd-nss-$nssmodule"/usr/lib/ -- \
+ "$srcdir/dest/systemd-libs"/usr/lib/libnss_$nssmodule.so*
+ done
+
+ # Verify that there's nothing left in `systemd-libs`.
+ diff -u /dev/null <(find "$srcdir/dest/systemd-libs" -not -type d)
+ }
+
+ # Parabola: Pull out `systemd-udev`.
+ # NB: Must do this *after* pulling out `systemd-libudev`.
+ install -dm755 "$srcdir/dest/systemd-udev"/{etc,usr/lib}
+ mv -T "$srcdir/dest"/systemd{,-udev}/etc/udev/
+ mv -T "$srcdir/dest"/systemd{,-udev}/usr/lib/udev/
while read -d '' -r file; do
- install -dm755 "$srcdir/dest/udev/${file%/*}"
- mv -T "$srcdir/dest/systemd/$file" "$srcdir/dest/udev/$file"
+ install -dm755 "$srcdir/dest/systemd-udev/${file%/*}"
+ mv -T "$srcdir/dest/systemd/$file" "$srcdir/dest/systemd-udev/$file"
done < <(find "$srcdir/dest/systemd" \( -name '*udev*' -o -name '*hwdb*' \) -printf '%P\0')
- local nssmodule
- for nssmodule in systemd myhostname mymachines resolve; do
- install -dm755 "$srcdir/dest/nss-$nssmodule"/usr/{lib,share/man/man8}
- mv -t "$srcdir/dest"/nss-$nssmodule/usr/share/man/man8/ -- \
- "$srcdir/dest"/systemd/usr/share/man/man8/nss-$nssmodule.8 \
- "$srcdir/dest"/systemd/usr/share/man/man8/libnss_$nssmodule.*.8
- mv "$srcdir/dest"/systemd/usr/lib/libnss_$nssmodule.so* -t "$srcdir/dest"/nss-$nssmodule/usr/lib/
- done
-
- install -dm755 "$srcdir/dest/systemd-sysvcompat"/usr/share/man/man8
- mv "$srcdir/dest/systemd"/usr/share/man/man8/{halt,poweroff,reboot,shutdown}.8 \
- -t "$srcdir/dest/systemd-sysvcompat"/usr/share/man/man8
-
- rmdir "$srcdir/dest"/systemd/usr/{share/man/man3,lib/pkgconfig,include}
+ # Pull out `systemd-ukify`.
+ install -d -m0755 "$srcdir/dest/systemd-ukify"/usr/{bin,lib/{systemd,kernel/install.d},share/man/man1}
+ mv "$srcdir/dest/systemd"/usr/bin/ukify -t "$srcdir/dest/systemd-ukify"/usr/bin/
+ mv "$srcdir/dest/systemd"/usr/lib/systemd/ukify -t "$srcdir/dest/systemd-ukify"/usr/lib/systemd/
+ mv "$srcdir/dest/systemd"/usr/share/man/man1/ukify.1 -t "$srcdir/dest/systemd-ukify"/usr/share/man/man1/
+ # we move the ukify hook itself, but keep 90-uki-copy.install in place,
+ # because there are other ways to generate UKIs w/o ukify, e.g. w/ mkinitcpio
+ mv "$srcdir/dest/systemd"/usr/lib/kernel/install.d/60-ukify.install -t "$srcdir/dest/systemd-ukify"/usr/lib/kernel/install.d
+
+ # Pull out `systemd-sysvcompat`.
+ install -d -m0755 "$srcdir/dest/systemd-sysvcompat"/usr/{bin,share/man/man{1,8}}
+ mv "$srcdir/dest/systemd"/usr/share/man/man1/init.1 -t "$srcdir/dest/systemd-sysvcompat"/usr/share/man/man1/
+ mv "$srcdir/dest/systemd"/usr/share/man/man8/{halt,poweroff,reboot,shutdown}.8 -t "$srcdir/dest/systemd-sysvcompat"/usr/share/man/man8/
+ mv "$srcdir/dest/systemd"/usr/bin/{halt,init,poweroff,reboot,shutdown} -t "$srcdir/dest/systemd-sysvcompat"/usr/bin/
+
+ # Pull out `systemd-resolvconf`.
+ install -d -m0755 "$srcdir/dest/systemd-resolvconf"/usr/{bin,share/man/man1}
+ mv "$srcdir/dest/systemd"/usr/share/man/man1/resolvconf.1 -t "$srcdir/dest/systemd-resolvconf"/usr/share/man/man1/
+ mv "$srcdir/dest/systemd"/usr/bin/resolvconf -t "$srcdir/dest/systemd-resolvconf"/usr/bin/
}
check() {
- meson test -C build
+ # FIXME: tests fail on armv7h
+ # $ grep -E 'TIMEOUT|FAIL' systemd-253-1.parabola1-armv7h-check.log
+ # 377/1081 systemd:netlink / test-netlink FAIL 0.72s killed by signal 6 SIGABRT
+ # 414/1081 systemd:network / test-network FAIL 0.88s killed by signal 6 SIGABRT
+ # 451/1081 systemd:resolve / test-resolved-stream FAIL 6.38s killed by signal 6 SIGABRT
+ # 452/1081 systemd:test / test-blockdev-util FAIL 2.24s killed by signal 6 SIGABRT
+ # 467/1081 systemd:test / test-raw-clone FAIL 0.56s killed by signal 6 SIGABRT
+ # 480/1081 systemd:test / test-mountpoint-util FAIL 0.61s killed by signal 6 SIGABRT
+ # 495/1081 systemd:test / test-stat-util FAIL 0.60s killed by signal 6 SIGABRT
+ # 533/1081 systemd / test-sysusers TIMEOUT 30.32s killed by signal 15 SIGTERM
+ # 534/1081 systemd / test-systemctl-enable TIMEOUT 30.43s killed by signal 15 SIGTERM
+ # 537/1081 systemd:test / test-sigbus TIMEOUT 30.36s killed by signal 15 SIGTERM
+ # 559/1081 systemd:test / test-fileio FAIL 1.93s killed by signal 6 SIGABRT
+ [[ "${CARCH}" == armv7h ]] ||
+ meson test -C build --print-errorlogs
+}
+
+# How we use this function might seem like "overthinking it", and it
+# sorta is, but it's doing the (tedious, error-prone) comparisons that
+# I'd otherwise have to do manually when merging from Arch.
+_lib_deps() {
+ # Resolve short names, to make calling code readable.
+ # Where, relative to $srcdir, each .so file lives.
+ declare -A paths=(
+ [libsystemd-shared]="dest/systemd-common/usr/lib/systemd/libsystemd-shared-${pkgver}-${pkgrel}.so"
+ [libsystemd]='dest/systemd-libsystemd/usr/lib/libsystemd.so'
+ [libudev]='dest/systemd-libudev/usr/lib/libudev.so'
+ [libnss_systemd]='dest/systemd-nss-systemd/usr/lib/libnss_systemd.so.2'
+ [libnss_myhostname]='dest/systemd-nss-myhostname/usr/lib/libnss_myhostname.so.2'
+ [libnss_mymachines]='dest/systemd-nss-mymachines/usr/lib/libnss_mymachines.so.2'
+ [libnss_resolve]='dest/systemd-nss-resolve/usr/lib/libnss_resolve.so.2'
+ )
+
+ local libname libfile txtfile mode
+ for libname in "$@"; do
+ # Save the raw list to a textfile so that `makepkg --printsrcinfo`
+ # works.
+ libfile="${_existing_srcdir:-${srcdir:-.}}/${paths[$libname]}"
+ txtfile="srcinfo-${libname}.txt"
+
+ # mode is: 'gen', 'lib', 'txt', 'nop', or 'err:*'
+ mode="err:TXTFILE:'${txtfile}' and LIBFILE:'${libfile}' are both missing"
+ if [[ -n "${_existing_srcdir:-}" ]]; then
+ if [[ -f "$libfile" ]]; then
+ mode=gen
+ else
+ mode="err:LIBFILE:'${libfile}' is missing"
+ fi
+ elif [[ -f "$libfile" ]]; then
+ mode=lib
+ elif [[ -f "$txtfile" ]]; then
+ mode=txt
+ elif [[ "${FUNCNAME[*]}" == *' lint_depends '* ]]; then
+ mode=nop
+ fi
+ case "$mode" in
+ gen) LC_ALL=C readelf -d "$libfile" | sed -nE 's/.* Shared library: \[(lib.*\.so)(\.[0-9.]+)?\]/\1/p' | tee "$txtfile";;
+ lib) LC_ALL=C readelf -d "$libfile" | sed -nE 's/.* Shared library: \[(lib.*\.so)(\.[0-9.]+)?\]/\1/p';;
+ txt) cat "$txtfile";;
+ nop) true;;
+ err:*) error '%s' "${mode#err:}";;
+ esac
+ done |
+ # Add some redundant transitive dependecies, idk why, it's what
+ # Arch does.
+ sed -e 's/^libpam\.so$/libaudit.so\n&/' |
+ # Refer to these by their just pkgname instead of .so, idk why,
+ # it's what Arch does.
+ sed -e 's/^lib[cm]\.so$/glibc/' \
+ -e 's/^libgcc_s\.so$/gcc-libs/' \
+ -e 's/^libgcrypt\.so$/libgcrypt/' \
+ -e 's/^libip4tc\.so$/iptables/' \
+ -e 's/^liblz4\.so$/lz4/' \
+ -e 's/^liblzma\.so$/xz/' \
+ -e 's/^libpam\.so$/pam/' \
+ -e 's/^libzstd\.so$/zstd/' |
+ # Refer to these by both their pkgname and .so, idk why, it's what
+ # Arch does.
+ sed -E \
+ -e 's/^libcrypt\.so$/libxcrypt\n&/' \
+ -e 's/^libcrypto\.so$/openssl\n&/' \
+ -e 's/^lib(mount|libblkid)\.so$/util-linux\n&/' \
+ -e 's/^lib(acl|audit|kmod)\.so$/\1\n&/' \
+ -e 's/^(lib(cap|seccomp))\.so$/\1\n&/' |
+ # Sort and de-duplicate.
+ sort -u
}
package_systemd() {
pkgdesc='system and service manager'
- license=('LGPL2.1')
- depends=('bash' 'dbus' 'kbd' 'kmod' 'libkmod.so'
- 'systemd-libs' 'pam' 'libelf'
- 'util-linux' 'pcre2')
- depends+=("systemd-common=$pkgver-$pkgrel" 'udev')
- provides=("systemd-tools=$pkgver")
- replaces=('systemd-tools')
- conflicts=('systemd-tools')
- optdepends=('libmicrohttpd: remote journald capabilities'
+ license+=(
+ 'CC0-1.0' # siphash # Parabola: ends up in systemd-common
+ 'GPL-2.0-or-later' # udev # Parabola: ends up in systemd-udev
+ 'MIT-0' # documentation and config files
+ )
+ depends=('acl' 'libacl.so' 'bash' 'cryptsetup' 'libcryptsetup.so' 'dbus'
+ 'dbus-units' 'kbd' 'kmod' 'libkmod.so' 'hwdata' 'libcap' 'libcap.so'
+ 'libgcrypt' 'libxcrypt' 'libcrypt.so' 'systemd-libs' 'libidn2' 'lz4' 'pam'
+ 'libelf' 'libseccomp' 'libseccomp.so' 'util-linux' 'libblkid.so'
+ 'libmount.so' 'xz' 'pcre2' 'audit' 'libaudit.so'
+ 'openssl' 'libcrypto.so' 'libssl.so')
+ provides=('nss-myhostname' "systemd-tools=$pkgver" "udev=$pkgver")
+ replaces=('nss-myhostname' 'systemd-tools' 'udev')
+ conflicts=('nss-myhostname' 'systemd-tools' 'udev')
+ optdepends=('libmicrohttpd: systemd-journal-gatewayd and systemd-journal-remote'
'quota-tools: kernel-level quota management'
'systemd-sysvcompat: symlink package to provide sysvinit binaries'
+ 'systemd-ukify: combine kernel and initrd into a signed Unified Kernel Image'
'polkit: allow administration as unprivileged user'
- 'curl: machinectl pull-tar and pull-raw')
+ 'curl: systemd-journal-upload, machinectl pull-tar and pull-raw'
+ 'gnutls: systemd-journal-gatewayd and systemd-journal-remote'
+ 'qrencode: show QR codes'
+ 'iptables: firewall features'
+ 'libbpf: support BPF programs'
+ 'libpwquality: check password quality'
+ 'libfido2: unlocking LUKS2 volumes with FIDO2 token'
+ 'libp11-kit: support PKCS#11'
+ 'tpm2-tss: unlocking LUKS2 volumes with TPM2')
backup=(etc/pam.d/systemd-user
etc/systemd/coredump.conf
+ etc/systemd/homed.conf
etc/systemd/journald.conf
etc/systemd/journal-remote.conf
etc/systemd/journal-upload.conf
etc/systemd/logind.conf
etc/systemd/networkd.conf
+ etc/systemd/oomd.conf
+ etc/systemd/pstore.conf
etc/systemd/resolved.conf
etc/systemd/sleep.conf
etc/systemd/system.conf
etc/systemd/timesyncd.conf
- etc/systemd/user.conf)
+ etc/systemd/user.conf
+ etc/udev/iocost.conf
+ etc/udev/udev.conf)
install=systemd.install
+ # Parabola: Split the package.
+ # (the "eval"/"outputvar" parts are so that `makepkg --printsrcinfo` works)
+ license=($(eval "printf '%s\n' \"\${${outputvar:-license}[@]}\"|grep -vFx -e CC0-1.0 -e GPL-2.0-or-later")) # the CC0 parts end up in systemd-common, the GPL2 parts end up in systemd-udev
+ depends=($(eval "printf '%s\n' \"\${${outputvar:-depends}[@]}\"|grep -vFx -f <(_lib_deps libsystemd-shared)"))
+ depends+=("systemd-common=$pkgver-$pkgrel" 'udev')
+ provides=($(eval "printf '%s\n' \"\${${outputvar:-provides}[@]}\"|grep -v -e nss-myhostname -e ^udev="))
+ replaces=($(eval "printf '%s\n' \"\${${outputvar:-replaces}[@]}\"|grep -v -e nss-myhostname -e ^udev"))
+ conflicts=($(eval "printf '%s\n' \"\${${outputvar:-conflicts}[@]}\"|grep -v -e nss-myhostname -e ^udev"))
+ backup=($(eval "printf '%s\n' \"\${${outputvar:-backup}[@]}\"|grep -v -e etc/udev"))
+
cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir"
# we'll create this on installation
rmdir "$pkgdir"/var/log/journal/remote
- # executable (symlinks) shipped with systemd-sysvcompat
- rm "$pkgdir"/usr/bin/{halt,init,poweroff,reboot,shutdown}
-
- # files shipped with systemd-resolvconf
- rm "$pkgdir"/usr/{bin/resolvconf,share/man/man1/resolvconf.1}
-
# avoid a potential conflict with [core]/filesystem
rm "$pkgdir"/usr/share/factory/etc/{issue,nsswitch.conf}
sed -i -e '/^C \/etc\/nsswitch\.conf/d' \
-e '/^C \/etc\/issue/d' "$pkgdir"/usr/lib/tmpfiles.d/etc.conf
- # add back tmpfiles.d/legacy.conf, normally omitted without sysv-compat
- install -m0644 $pkgbase-stable/tmpfiles.d/legacy.conf "$pkgdir"/usr/lib/tmpfiles.d
-
# ship default policy to leave services disabled
echo 'disable *' >"$pkgdir"/usr/lib/systemd/system-preset/99-default.preset
- # add mkinitcpio hooks
- install -D -m0644 initcpio-install-systemd "$pkgdir"/usr/lib/initcpio/install/systemd
-
# The group 'systemd-journal' is allocated dynamically and may have varying
# gid on different systems. Let's install with gid 0 (root), systemd-tmpfiles
# will fix the permissions for us. (see /usr/lib/tmpfiles.d/systemd.conf)
install -d -o root -g root -m 2755 "$pkgdir"/var/log/journal
- # match directory owner/group and mode from [extra]/polkit
- install -d -o root -g 102 -m 0750 "$pkgdir"/usr/share/polkit-1/rules.d
-
# add example bootctl configuration
install -D -m0644 parabola.conf "$pkgdir"/usr/share/systemd/bootctl/parabola.conf
install -D -m0644 loader.conf "$pkgdir"/usr/share/systemd/bootctl/loader.conf
install -D -m0644 splash-parabola.bmp "$pkgdir"/usr/share/systemd/bootctl/splash-parabola.bmp
# pacman hooks
- install -D -m0755 systemd-hook "$pkgdir"/usr/share/libalpm/scripts/systemd-hook
+ #install -D -m0755 systemd-hook "$pkgdir"/usr/share/libalpm/scripts/systemd-hook Parabola: moved to package_systemd-common()
install -D -m0644 -t "$pkgdir"/usr/share/libalpm/hooks *.hook
- rm -- "$pkgdir"/usr/share/libalpm/hooks/*{udev,hwdb}*
+ rm -- "$pkgdir"/usr/share/libalpm/hooks/*{udev,hwdb}* # Parabola: we put these in our `systmed-udev` package
# overwrite the systemd-user PAM configuration with our own
install -D -m0644 systemd-user.pam "$pkgdir"/etc/pam.d/systemd-user
}
+package_systemd-libs() {
+ pkgdesc='systemd client libraries'
+ depends=('glibc' 'gcc-libs' 'libcap' 'libgcrypt' 'lz4' 'xz' 'zstd')
+ license+=(
+ 'CC0-1.0' # siphash
+ 'GPL-2.0-or-later WITH Linux-syscall-note' # src/basic/linux/*
+ 'MIT-0' # documentation
+ )
+ provides=('libsystemd' 'libsystemd.so' 'libudev.so')
+ conflicts=('libsystemd')
+ replaces=('libsystemd')
+
+ # Parabola: First, sanity check that _lib_deps finds all of the
+ # packages that are in Arch's depends=() list.
+ diff -u /dev/null <(printf '%s\n' "${depends[@]}" | grep -vFx -f <(
+ _lib_deps libsystemd libudev libnss_{systemd,myhostname,mymachines,resolve}))
+
+ # Parabola: Split the package.
+ pkgdesc+=' metapackage'
+ depends=("${_systemd_libs[@]}")
+ # (the "eval"/"outputvar" parts are so that `makepkg --printsrcinfo` works)
+ provides=($(eval "printf '%s\n' \"\${${outputvar:-provides}[@]}\"|grep -v -e '\.so$'"))
+ return
+
+ cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir"
+}
+
+package_systemd-resolvconf() {
+ pkgdesc='systemd resolvconf replacement (for use with systemd-resolved)'
+ depends=('systemd')
+ provides=('openresolv' 'resolvconf')
+ conflicts=('resolvconf')
+
+ replaces+=('notsystemd-resolvconf') # notsystemd-resolvconf should have never existed
+
+ cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir"
+}
+
+package_systemd-sysvcompat() {
+ pkgdesc='sysvinit compat for systemd'
+ conflicts=('sysvinit')
+ depends=('systemd')
+
+ provides=('init')
+ conflicts+=('init')
+
+ cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir"
+}
+
+package_systemd-ukify() {
+ pkgdesc='Combine kernel and initrd into a signed Unified Kernel Image'
+ provides=('ukify')
+ depends=('binutils' 'python-cryptography' 'python-pefile' 'systemd')
+ optdepends=('python-pillow: Show the size of splash image'
+ 'sbsigntools: Sign the embedded kernel')
+
+ cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir"
+}
+
+# vim:ft=sh syn=sh et sw=2:
+
+# Parabola: The remainder of the file is our additional split packages.
+
package_systemd-common() {
pkgdesc='systemd files shared between split packages'
- license=('LGPL2.1')
- depends=('acl' 'libacl.so' 'cryptsetup' 'libcryptsetup.so' 'libdbus'
- 'glibc' 'iptables' 'libcap' 'libcap.so'
- 'libgcrypt' 'libxcrypt' 'libcrypt.so' 'libidn2' 'libidn2.so' 'libseccomp' 'libseccomp.so' 'libsystemd.so'
- 'libudev.so' 'libblkid.so' 'libmount.so' 'libuuid.so' 'lz4'
- 'xz' 'audit' 'libaudit.so' 'libp11-kit' 'libp11-kit.so' 'openssl')
-
- cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/${pkgname#systemd-}" "$pkgdir"
+ depends=($(_lib_deps libsystemd-shared))
+ license+=(
+ 'CC0-1.0' # siphash
+ )
+
+ cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir"
+ install -D -m0755 systemd-hook "$pkgdir"/usr/share/libalpm/scripts/systemd-hook
}
package_systemd-udev() {
pkgdesc='Userspace device file manager'
- license=('GPL2') # NB: different than the rest
+ license+=('GPL-2.0-or-later')
depends=("systemd-common=$pkgver-$pkgrel" 'systemd-libudev'
- 'hwids' 'kmod' 'libkmod.so' 'util-linux' 'zlib')
- backup=(etc/udev/udev.conf)
+ 'hwdata' 'kmod' 'libkmod.so' 'util-linux' 'zlib')
+ backup=(etc/udev/iocost.conf
+ etc/udev/udev.conf)
provides+=("${pkgname#systemd-}=$pkgver")
conflicts+=("${pkgname#systemd-}")
replaces+=("${pkgname#systemd-}")
- cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/${pkgname#systemd-}" "$pkgdir"
-
- # add mkinitcpio hooks
- install -D -m0644 initcpio-install-udev "$pkgdir"/usr/lib/initcpio/install/udev
- install -D -m0644 initcpio-hook-udev "$pkgdir"/usr/lib/initcpio/hooks/udev
+ cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir"
# pacman hooks
- install -D -m0755 udev-hook "$pkgdir"/usr/share/libalpm/scripts/udev-hook
install -D -m0644 -t "$pkgdir"/usr/share/libalpm/hooks *{udev,hwdb}*.hook
}
-package_systemd-libs() {
- pkgdesc='systemd client libraries metapackage'
- depends=("${_systemd_libs[@]}")
- license=('LGPL2.1')
- provides=('libsystemd')
- conflicts=('libsystemd')
- replaces=('libsystemd')
-}
+# TODO(lukeshu): I might have been over-zealous adding the licenses
+# for `siphash` and `src/basic/linux/*` to the following packages;
+# audit whether those packages actually inclode that code.
package_systemd-libsystemd() {
pkgdesc='systemd client library'
- depends=('glibc' 'libcap' 'libcap.so' 'libgcrypt' 'lz4' 'xz' 'zstd')
- license=('LGPL2.1')
+ depends=($(_lib_deps libsystemd))
+ license+=(
+ 'CC0-1.0' # siphash
+ 'GPL-2.0-or-later WITH Linux-syscall-note' # src/basic/linux/*
+ 'MIT-0' # documentation
+ )
provides=('libsystemd.so')
provides+=("libsystemd-standalone=$pkgver")
conflicts+=('libsystemd-standalone')
replaces+=('libsystemd-standalone')
- cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/${pkgname#systemd-}" "$pkgdir"
+ cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir"
}
package_systemd-libudev() {
pkgdesc='systemd library for enumerating and introspecting local devices'
- depends=('glibc' 'libcap' 'libcap.so')
- license=('LGPL2.1')
+ depends=($(_lib_deps libudev))
+ license+=(
+ 'CC0-1.0' # siphash
+ 'GPL-2.0-or-later WITH Linux-syscall-note' # src/basic/linux/*
+ )
provides=('libudev.so')
provides+=("${pkgname#systemd-}=$pkgver")
conflicts+=("${pkgname#systemd-}")
replaces+=("${pkgname#systemd-}")
- cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/${pkgname#systemd-}" "$pkgdir"
+ cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir"
}
package_systemd-nss-systemd() {
pkgdesc='NSS module providing user and group resolution for dynamic users and groups'
- depends=('glibc' 'libcap' 'libcap.so')
- license=('LGPL2.1')
+ depends=($(_lib_deps libnss_systemd))
+ license+=(
+ 'CC0-1.0' # siphash
+ 'GPL-2.0-or-later WITH Linux-syscall-note' # src/basic/linux/*
+ )
provides+=("${pkgname#systemd-}=$pkgver")
conflicts+=("${pkgname#systemd-}")
replaces+=("${pkgname#systemd-}")
- cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/${pkgname#systemd-}" "$pkgdir"
+ cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir"
}
package_systemd-nss-myhostname() {
pkgdesc='NSS module providing hostname resolution for the locally configured system hostname'
- depends=('glibc' 'libcap' 'libcap.so')
- license=('LGPL2.1')
+ depends=($(_lib_deps libnss_myhostname))
+ license+=(
+ 'CC0-1.0' # siphash
+ 'GPL-2.0-or-later WITH Linux-syscall-note' # src/basic/linux/*
+ )
provides+=("${pkgname#systemd-}=$pkgver")
conflicts+=("${pkgname#systemd-}")
replaces+=("${pkgname#systemd-}")
- cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/${pkgname#systemd-}" "$pkgdir"
+ cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir"
}
package_systemd-nss-mymachines() {
pkgdesc='NSS module providing hostname resolution for local systemd-machined container instances'
- depends=('glibc' 'libcap' 'libcap.so')
- license=('LGPL2.1')
+ depends=($(_lib_deps libnss_mymachines))
+ license+=(
+ 'CC0-1.0' # siphash
+ 'GPL-2.0-or-later WITH Linux-syscall-note' # src/basic/linux/*
+ )
provides+=("${pkgname#systemd-}=$pkgver")
conflicts+=("${pkgname#systemd-}")
replaces+=("${pkgname#systemd-}")
- cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/${pkgname#systemd-}" "$pkgdir"
+ cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir"
}
package_systemd-nss-resolve() {
pkgdesc='NSS module providing hostname resolution via systemd-resolved'
- depends=('glibc' 'libcap' 'libcap.so')
- license=('LGPL2.1')
+ depends=($(_lib_deps libnss_resolve))
+ license+=(
+ 'CC0-1.0' # siphash
+ 'GPL-2.0-or-later WITH Linux-syscall-note' # src/basic/linux/*
+ )
provides+=("${pkgname#systemd-}=$pkgver")
conflicts+=("${pkgname#systemd-}")
replaces+=("${pkgname#systemd-}")
- cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/${pkgname#systemd-}" "$pkgdir"
-}
-
-package_systemd-resolvconf() {
- pkgdesc='systemd resolvconf replacement (for use with systemd-resolved)'
- license=('LGPL2.1')
- depends=('systemd')
- provides=('openresolv' 'resolvconf')
- conflicts=('openresolv')
-
- replaces+=('notsystemd-resolvconf') # notsystemd-resolvconf should have never existed
-
- install -d -m0755 "$pkgdir"/usr/bin
- ln -s resolvectl "$pkgdir"/usr/bin/resolvconf
-
- install -d -m0755 "$pkgdir"/usr/share/man/man1
- ln -s resolvectl.1.gz "$pkgdir"/usr/share/man/man1/resolvconf.1.gz
-}
-
-package_systemd-sysvcompat() {
- pkgdesc='sysvinit compat for systemd'
- license=('LGPL2.1')
- provides=('init')
- conflicts=('init' 'sysvinit')
- depends=('systemd')
-
cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir"
-
- install -d -m0755 "$pkgdir"/usr/bin
- ln -s ../lib/systemd/systemd "$pkgdir"/usr/bin/init
- for tool in halt poweroff reboot shutdown; do
- ln -s systemctl "$pkgdir"/usr/bin/$tool
- done
}
-
-# vim:ft=sh syn=sh et sw=2: