summaryrefslogtreecommitdiff
path: root/libre/systemd
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2018-07-12 17:19:36 -0400
committerLuke Shumaker <lukeshu@lukeshu.com>2018-07-12 17:19:36 -0400
commit759a6fc45aedef6cf6223c8c03f1737d1896f15d (patch)
tree625ec95c441aa0060916f2b6d7eef5d3aa07f241 /libre/systemd
parent36874999c237bac6bed665e4380ad5004e46fd4b (diff)
parenta51a45f18643194977b898d44ca94a88ce1105ca (diff)
downloadabslibre-759a6fc45aedef6cf6223c8c03f1737d1896f15d.tar.gz
abslibre-759a6fc45aedef6cf6223c8c03f1737d1896f15d.tar.bz2
abslibre-759a6fc45aedef6cf6223c8c03f1737d1896f15d.zip
Merge branch 'lukeshu/systemd-split'
Diffstat (limited to 'libre/systemd')
-rw-r--r--libre/systemd/0001-Use-Arch-Linux-device-access-groups.patch (renamed from libre/systemd/0001-Use-Arch-device-access-groups.patch)0
-rw-r--r--libre/systemd/PKGBUILD157
-rw-r--r--libre/systemd/systemd-hook9
-rw-r--r--libre/systemd/systemd-hwdb.hook2
-rw-r--r--libre/systemd/systemd-udev-reload.hook2
-rw-r--r--libre/systemd/udev-hook18
6 files changed, 134 insertions, 54 deletions
diff --git a/libre/systemd/0001-Use-Arch-device-access-groups.patch b/libre/systemd/0001-Use-Arch-Linux-device-access-groups.patch
index c511144de..c511144de 100644
--- a/libre/systemd/0001-Use-Arch-device-access-groups.patch
+++ b/libre/systemd/0001-Use-Arch-Linux-device-access-groups.patch
diff --git a/libre/systemd/PKGBUILD b/libre/systemd/PKGBUILD
index 81ef0929c..63789c0e7 100644
--- a/libre/systemd/PKGBUILD
+++ b/libre/systemd/PKGBUILD
@@ -1,19 +1,20 @@
# Maintainer (Arch): Christian Hesse <mail@eworm.de>
# Maintainer (Arch): Dave Reisner <dreisner@archlinux.org>
# Maintainer (Arch): Tom Gundersen <teg@jklm.no>
-# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+# Maintainer: Luke Shumaker <lukeshu@parabola.nu>
# Contributor: Omar Vega Ramos <ovruni@gnu.org.pe>
pkgbase=systemd
pkgname=('systemd' 'libsystemd' 'systemd-resolvconf' 'systemd-sysvcompat')
-# We split Arch's libsystemd into the following:
-_libsystemd=('libsystemd-standalone' 'libudev' 'nss-systemd' 'nss-myhostname' 'nss-mymachines' 'nss-resolve')
-pkgname+=("${_libsystemd[@]}")
+pkgname+=('systemd-common' 'systemd-udev')
+# We split Arch's libsystemd into the systemd-$X, for the following $X:
+_libsystemd=('libsystemd' 'libudev' 'nss-systemd' 'nss-myhostname' 'nss-mymachines' 'nss-resolve')
+pkgname+=("${_libsystemd[@]/#/systemd-}")
# Can be from either systemd or systemd-stable
_commit='de7436b02badc82200dc127ff190b8155769b8e7'
pkgver=239.0
pkgrel=2
-pkgrel+=.parabola1
+pkgrel+=.parabola2
arch=('x86_64')
arch+=('i686' 'armv7h')
url='https://www.github.com/systemd/systemd'
@@ -30,7 +31,7 @@ validpgpkeys=('63CDA1E5D3FC22B998D20DD6327F26951A015CC4' # Lennart Poettering <
source=(# fragment is latest tag for source verification, final merge in prepare()
"git+https://github.com/systemd/systemd-stable#tag=v${pkgver%.*}?signed"
"git+https://github.com/systemd/systemd#tag=v${pkgver%.*}?signed"
- '0001-Use-Arch-device-access-groups.patch'
+ '0001-Use-Arch-Linux-device-access-groups.patch'
'initcpio-hook-udev'
'initcpio-install-systemd'
'initcpio-install-udev'
@@ -39,6 +40,7 @@ source=(# fragment is latest tag for source verification, final merge in prepare
'splash-parabola.bmp'
'systemd-user.pam'
'systemd-hook'
+ 'udev-hook'
'systemd-binfmt.hook'
'systemd-catalog.hook'
'systemd-daemon-reload.hook'
@@ -65,15 +67,16 @@ sha512sums=('SKIP'
'6c6f579644ea2ebb6b46ee274ab15110718b0de40def8c30173ba8480b045d403f2aedd15b50ad9b96453f4ad56920d1350ff76563755bb9a80b10fa7f64f1d9'
'a50bc85061a9a16d776235099867bc1a17c17dddb74c1ecf5614c849735a9779c5e34e5ddca8ca6af4b59a40f57c08ecf219b98cab09476ddb0f110e6a35e45c'
'b90c99d768dc2a4f020ba854edf45ccf1b86a09d2f66e475de21fe589ff7e32c33ef4aa0876d7f1864491488fd7edb2682fc0d68e83a6d4890a0778dc2d6fe19'
- 'd228d9e17bd6061aa6c5007b66ed82c726fdcae822e80b978e707777492c198aab9041a4f31cc8412fe4f3d8c5ba7ad908e9bb9f591f7488f5d8d6772dd14d4d'
+ '12abea62121f4e0867ffbcf6ba96bb1540dd7d86775556fc180ae6c844abfd13310b6782ff6d0e665c8d875446c17b40495d6c2fbc7ddcb42f9a13e1b57a8c40'
+ 'b7ee4f212c910df62c3472103a64a3cdf0d31292bc2f8fa839e5c86f34faa3ef1a3693601f5716779c4552a0d2b1d57538d45610f4c2e1c80e155ffbf0af187d'
'5a6b6beef8c31c79018884d948de840f4d3dfb07d9a87081ebf65e2b8fe595bc8c96dbd7742920ccf948c233213ed0026abc913650cefd77ad90c6f8c89bddb8'
'4cff2ebd962e26e2f516d8b4ac45c839dbfa54dd0588b423c224a328b9f7c62306ca7b2f6cb55240c564caf9972d5bcd2e0efaf2de49d64729aeb3bc1560c9eb'
'872de70325e9798f0b5a77e991c85bd2ab6de24d9b9ba4e35002d2dd5df15f8b30739a0042a624776177ffc14a838cde7ee98622016ed41df3efda9a659730b2'
- '471342b8d0e05533908cda5d6a906050a51e3181beda1239e91d717029ee40a9eaed714996a445417d87c4e31b7f8522a665de176077fe0536d538369594996d'
+ '96bb157de6921086a2bfc45a650414fbffa787bccff2cbd838cbe05c6fc635cbabd533360608eb7ca2f80ab7df795065a27abf4a1b1ea2b406612a3fcf420bdc'
'da783e3bfc6469b92dee4064a13e2b427520d3d96b57c95a4e07aaca3e844d95210a8b16122b022080f5452d65096f274dd1c1467725bbdb2e40ef304b78774a'
'08a590d08043a21f30f04252164b94df972b1ff1022a0469d6aef713e14484a3a037cce290a2a582851e6fac3e64add69d6cc8fc130bbeeaea08626ebf3e1763'
'577e33a1c50b4b41157a67f64162b035dd0c4a541e19cee55a100048bdb50cb2c82852741b1372989a0fe4c4782ba477522747fcc81d72aed99b3db512a86447'
- 'e4a9d7607fe93daf1d45270971c8d8455c4bfc2c0bea8bcad05aeb89847edee23cd1a41073a72042622acf417018fe254f5bfc137604fe2c71292680bf67a1c2'
+ 'c4463fdd25e14a836ac3b874109861a55a0169c4206b6356b53974dd4621f645652087ebf4c738b18734a718fe7fd9ec6b700ce8dd9736525274eb16b10385e6'
'209b01b044877cc986757fa4009a92ea98f480306c2530075d153203c3cd2b3afccab6aacc1453dee8857991e04270572f1700310705d7a0f4d5bed27fab8c67'
'107d2e36544aa8ef1c6e86339fbc811acb6e1d15eb0edca9f463bdd1b0e91fa8d85cf8c9e70eeaf4196e2f942e30310b672859191f3093c4806546ae30140fb9'
'c811278fceba58b1e2919b32f51920c54a3e205c4e5f119ebd5c0445aef80560b9233a98547e845d223172fe355656acc7e8eb68528de12a446de4aa1874ef1a'
@@ -107,7 +110,7 @@ prepare() {
done
# Replace cdrom/dialout/tape groups with optical/uucp/storage
- patch -Np1 -i ../0001-Use-Arch-device-access-groups.patch
+ patch -Np1 -i ../0001-Use-Arch-Linux-device-access-groups.patch
# apply FSDG patches
local _patch
@@ -166,6 +169,9 @@ build() {
# Put things in the main systemd package by default
DESTDIR="$srcdir/dest/systemd" ninja -C build install
+ 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
@@ -178,6 +184,14 @@ build() {
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/
+ while read -d '' -r file; do
+ install -dm755 "$srcdir/dest/udev/${file%/*}"
+ mv -T "$srcdir/dest/systemd/$file" "$srcdir/dest/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}
@@ -201,14 +215,15 @@ check() {
package_systemd() {
pkgdesc='system and service manager'
- license=('GPL2' 'LGPL2.1')
+ license=('LGPL2.1')
groups=('base-devel')
- depends=('acl' 'bash' 'cryptsetup' 'dbus' 'iptables' 'kbd' 'kmod' 'hwids' 'libcap'
- 'libgcrypt' 'libsystemd' 'libidn' 'lz4' 'pam' 'libelf' 'libseccomp'
- 'util-linux' 'xz' 'pcre2')
- provides=("systemd-tools=$pkgver" "udev=$pkgver")
- replaces=('systemd-tools' 'udev')
- conflicts=('systemd-tools' 'udev')
+ depends=('bash' 'dbus' 'kbd' 'kmod'
+ 'libsystemd' 'pam' 'libelf'
+ 'util-linux' 'pcre2')
+ depends+=("systemd-common=$pkgver" 'udev')
+ provides=("systemd-tools=$pkgver")
+ replaces=('systemd-tools')
+ conflicts=('systemd-tools')
optdepends=('libmicrohttpd: remote journald capabilities'
'quota-tools: kernel-level quota management'
'systemd-sysvcompat: symlink package to provide sysvinit binaries'
@@ -222,8 +237,7 @@ package_systemd() {
etc/systemd/system.conf
etc/systemd/timesyncd.conf
etc/systemd/resolved.conf
- etc/systemd/user.conf
- etc/udev/udev.conf)
+ etc/systemd/user.conf)
install=systemd.install
cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgbase" "$pkgdir"
@@ -253,8 +267,6 @@ package_systemd() {
# add mkinitcpio hooks
install -D -m0644 initcpio-install-systemd "$pkgdir"/usr/lib/initcpio/install/systemd
- install -D -m0644 initcpio-install-udev "$pkgdir"/usr/lib/initcpio/install/udev
- install -D -m0644 initcpio-hook-udev "$pkgdir"/usr/lib/initcpio/hooks/udev
# ensure proper permissions for /var/log/journal
# The permissions are stored with named group by tar, so this works with
@@ -273,70 +285,129 @@ package_systemd() {
# pacman hooks
install -D -m0755 systemd-hook "$pkgdir"/usr/share/libalpm/scripts/systemd-hook
install -D -m0644 -t "$pkgdir"/usr/share/libalpm/hooks *.hook
+ rm -- "$pkgdir"/usr/share/libalpm/hooks/*{udev,hwdb}*
# overwrite the systemd-user PAM configuration with our own
install -D -m0644 systemd-user.pam "$pkgdir"/etc/pam.d/systemd-user
}
+package_systemd-common() {
+ pkgdesc='systemd files shared between split packages'
+ license=('LGPL2.1')
+ depends=('acl' 'cryptsetup' 'libdbus' 'glibc' 'iptables' 'libcap'
+ 'libgcrypt' 'libidn' 'libseccomp' 'libsystemd.so'
+ 'libudev.so' 'libblkid.so' 'libmount.so' 'libuuid.so' 'lz4'
+ 'xz')
+
+ cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/${pkgname#systemd-}" "$pkgdir"
+}
+
+package_systemd-udev() {
+ pkgdesc='Userspace device file manager'
+ license=('GPL2') # NB: different than the rest
+ groups=('base')
+ depends=("systemd-common=$pkgver" 'systemd-libudev'
+ 'hwids' 'kmod' 'util-linux' 'zlib')
+ backup=(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
+
+ # 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_libsystemd() {
pkgdesc='systemd client libraries metapackage'
- depends=("${_libsystemd[@]}")
- license=('GPL2')
+ depends=("${_libsystemd[@]/#/systemd-}")
+ license=('LGPL2.1')
}
-package_libsystemd-standalone() {
+package_systemd-libsystemd() {
pkgdesc='systemd client library'
depends=('glibc' 'libcap' 'libgcrypt' 'lz4' 'xz')
- license=('GPL2')
+ license=('LGPL2.1')
provides=('libsystemd.so')
- cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/libsystemd" "$pkgdir"
+ provides+=("libsystemd-standalone=$pkgver")
+ conflicts+=('libsystemd-standalone')
+ replaces+=('libsystemd-standalone')
+
+ cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/${pkgname#systemd-}" "$pkgdir"
}
-package_libudev() {
+package_systemd-libudev() {
pkgdesc='systemd library for enumerating and introspecting local devices'
depends=('glibc' 'libcap')
- license=('GPL2')
+ license=('LGPL2.1')
provides=('libudev.so')
- cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir"
+ provides+=("${pkgname#systemd-}=$pkgver")
+ conflicts+=("${pkgname#systemd-}")
+ replaces+=("${pkgname#systemd-}")
+
+ cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/${pkgname#systemd-}" "$pkgdir"
}
-package_nss-systemd() {
+package_systemd-nss-systemd() {
pkgdesc='NSS module providing user and group resolution for dynamic users and groups'
depends=('glibc' 'libcap')
- license=('GPL2')
+ license=('LGPL2.1')
- cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir"
+ provides+=("${pkgname#systemd-}=$pkgver")
+ conflicts+=("${pkgname#systemd-}")
+ replaces+=("${pkgname#systemd-}")
+
+ cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/${pkgname#systemd-}" "$pkgdir"
}
-package_nss-myhostname() {
+package_systemd-nss-myhostname() {
pkgdesc='NSS module providing hostname resolution for the locally configured system hostname'
depends=('glibc' 'libcap')
- license=('GPL2')
+ license=('LGPL2.1')
- cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir"
+ provides+=("${pkgname#systemd-}=$pkgver")
+ conflicts+=("${pkgname#systemd-}")
+ replaces+=("${pkgname#systemd-}")
+
+ cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/${pkgname#systemd-}" "$pkgdir"
}
-package_nss-mymachines() {
+package_systemd-nss-mymachines() {
pkgdesc='NSS module providing hostname resolution for local systemd-machined container instances'
depends=('glibc' 'libcap')
- license=('GPL2')
+ license=('LGPL2.1')
- cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir"
+ provides+=("${pkgname#systemd-}=$pkgver")
+ conflicts+=("${pkgname#systemd-}")
+ replaces+=("${pkgname#systemd-}")
+
+ cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/${pkgname#systemd-}" "$pkgdir"
}
-package_nss-resolve() {
+package_systemd-nss-resolve() {
pkgdesc='NSS module providing hostname resolution via systemd-resolved'
depends=('glibc' 'libcap')
- license=('GPL2')
+ license=('LGPL2.1')
- cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir"
+ 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'
- license=('GPL2')
+ license=('LGPL2.1')
depends=('systemd')
provides=('openresolv' 'resolvconf')
conflicts=('openresolv')
@@ -350,7 +421,7 @@ package_systemd-resolvconf() {
package_systemd-sysvcompat() {
pkgdesc='sysvinit compat for systemd'
- license=('GPL2')
+ license=('LGPL2.1')
groups=('base')
conflicts=('sysvinit')
depends=('systemd')
diff --git a/libre/systemd/systemd-hook b/libre/systemd/systemd-hook
index 79505dfe8..793a42943 100644
--- a/libre/systemd/systemd-hook
+++ b/libre/systemd/systemd-hook
@@ -7,22 +7,13 @@ systemd_live() {
fi
}
-udevd_live() {
- if [ ! -d /run/udev ]; then
- echo >&2 " Skipped: Device manager is not running."
- exit 0
- fi
-}
-
case $1 in
catalog) /usr/bin/journalctl --update-catalog ;;
- hwdb) /usr/bin/systemd-hwdb --usr update ;;
update) touch -c /usr ;;
sysusers) /usr/bin/systemd-sysusers ;;
tmpfiles) /usr/bin/systemd-tmpfiles --create ;;
daemon-reload) systemd_live; /usr/bin/systemctl daemon-reload ;;
- udev-reload) systemd_live; /usr/bin/udevadm control --reload ;;
binfmt) systemd_live; /usr/lib/systemd/systemd-binfmt ;;
sysctl) systemd_live; /usr/lib/systemd/systemd-sysctl ;;
diff --git a/libre/systemd/systemd-hwdb.hook b/libre/systemd/systemd-hwdb.hook
index f0440b0a6..ec5bcfb94 100644
--- a/libre/systemd/systemd-hwdb.hook
+++ b/libre/systemd/systemd-hwdb.hook
@@ -8,4 +8,4 @@ Target = usr/lib/udev/hwdb.d/*
[Action]
Description = Updating udev hardware database...
When = PostTransaction
-Exec = /usr/share/libalpm/scripts/systemd-hook hwdb
+Exec = /usr/share/libalpm/scripts/udev-hook hwdb
diff --git a/libre/systemd/systemd-udev-reload.hook b/libre/systemd/systemd-udev-reload.hook
index 04238bd58..418515daf 100644
--- a/libre/systemd/systemd-udev-reload.hook
+++ b/libre/systemd/systemd-udev-reload.hook
@@ -8,4 +8,4 @@ Target = usr/lib/udev/rules.d/*
[Action]
Description = Reloading device manager configuration...
When = PostTransaction
-Exec = /usr/share/libalpm/scripts/systemd-hook udev-reload
+Exec = /usr/share/libalpm/scripts/udev-hook udev-reload
diff --git a/libre/systemd/udev-hook b/libre/systemd/udev-hook
new file mode 100644
index 000000000..61d853293
--- /dev/null
+++ b/libre/systemd/udev-hook
@@ -0,0 +1,18 @@
+#!/bin/sh -e
+
+udevd_live() {
+ if [ ! -d /run/udev ]; then
+ echo >&2 " Skipped: Device manager is not running."
+ exit 0
+ fi
+}
+
+case $1 in
+ hwdb) /usr/bin/systemd-hwdb --usr update ;;
+
+ udev-reload) udevd_live; /usr/bin/udevadm control --reload ;;
+
+ *) echo >&2 " Invalid operation '$1'"; exit 1 ;;
+esac
+
+exit 0