From 90eb3e2ada0d1e00d99ae15961dc6e639839bf6d Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Wed, 25 May 2016 17:43:11 -0400 Subject: libre/systemd: further split the package Also, put library-related files (man pages, includes, pkgconfig entries) in the package with the library. Splitting out the libraries should help with the openrc efforts. Or at least avoid the awkward repackaging of libsystemd that is currently happening. --- libre/systemd/PKGBUILD | 99 +++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 81 insertions(+), 18 deletions(-) (limited to 'libre/systemd/PKGBUILD') diff --git a/libre/systemd/PKGBUILD b/libre/systemd/PKGBUILD index 7ce39780f..11067955f 100644 --- a/libre/systemd/PKGBUILD +++ b/libre/systemd/PKGBUILD @@ -4,7 +4,8 @@ # Contributor: Luke Shumaker pkgbase=systemd -pkgname=('systemd' 'libsystemd' 'systemd-sysvcompat') +pkgname=('systemd' 'libsystemd' 'systemd-sysvcompat' + 'libsystemd-standalone' 'libudev' 'nss-myhostname' 'nss-mymachines' 'nss-resolve') pkgver=229 pkgrel=3.parabola1 arch=('i686' 'x86_64' 'armv7h') @@ -101,6 +102,38 @@ build() { --with-ntp-servers="${timeservers[*]}" make + + # 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 + make DESTDIR="$srcdir/dest/systemd" install + + 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/ + + local nssmodule + for nssmodule in myhostname mymachines resolve; do + install -dm755 "$srcdir/dest/nss-$nssmodule"/usr/{lib,share/man/man8} + mv -T "$srcdir/dest"/{systemd,nss-$nssmodule}/usr/share/man/man8/nss-$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/{telinit,halt,reboot,poweroff,runlevel,shutdown}.8 \ + -t "$srcdir/dest/systemd-sysvcompat"/usr/share/man/man8 + + rmdir "$srcdir/dest"/systemd/usr/{share/man/man3,lib/pkgconfig,include} } package_systemd() { @@ -109,9 +142,9 @@ package_systemd() { depends=('acl' 'bash' 'dbus' 'iptables' 'kbd' 'kmod' 'hwids' 'libcap' 'libgcrypt' 'libsystemd' 'libidn' 'lz4' 'pam' 'libelf' 'libseccomp' 'util-linux' 'xz') - provides=('nss-myhostname' "systemd-tools=$pkgver" "udev=$pkgver") - replaces=('nss-myhostname' 'systemd-tools' 'udev') - conflicts=('nss-myhostname' 'systemd-tools' 'udev') + provides=("systemd-tools=$pkgver" "udev=$pkgver") + replaces=('systemd-tools' 'udev') + conflicts=('systemd-tools' 'udev') optdepends=('cryptsetup: required for encrypted block devices' 'libmicrohttpd: remote journald capabilities' 'quota-tools: kernel-level quota management' @@ -139,7 +172,7 @@ package_systemd() { etc/udev/udev.conf) install="systemd.install" - make -C "$pkgbase" DESTDIR="$pkgdir" install + cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir" # don't write units to /etc by default. some of these will be re-enabled on # post_install. @@ -177,12 +210,6 @@ package_systemd() { # ship default policy to leave services disabled echo 'disable *' >"$pkgdir"/usr/lib/systemd/system-preset/99-default.preset - ### manpages shipped with systemd-sysvcompat - rm "$pkgdir"/usr/share/man/man8/{telinit,halt,reboot,poweroff,runlevel,shutdown}.8 - - ### runtime libraries shipped with libsystemd - rm "$pkgdir"/usr/lib/lib{nss,systemd,udev}*.so* - # add example bootctl configuration install -Dm644 "$srcdir/parabola.conf" "$pkgdir"/usr/share/systemd/bootctl/parabola.conf install -Dm644 "$srcdir/loader.conf" "$pkgdir"/usr/share/systemd/bootctl/loader.conf @@ -190,12 +217,51 @@ package_systemd() { } package_libsystemd() { - pkgdesc="systemd client libraries" + pkgdesc="systemd client libraries metapackage" + depends=(libsystemd-standalone libudev nss-myhostname nss-mymachines nss-resolve) + license=('GPL2') +} + +package_libsystemd-standalone() { + pkgdesc="systemd client library" depends=('glibc' 'libcap' 'libgcrypt' 'lz4' 'xz') license=('GPL2') - provides=('libsystemd.so' 'libudev.so') + provides=('libsystemd.so') + + cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/libsystemd" "$pkgdir" +} + +package_libudev() { + pkgdesc="systemd library for enumerating and introspecting local devices" + depends=('glibc' 'libcap') + license=('GPL2') + provides=('libudev.so') + + cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir" +} + +package_nss-myhostname() { + pkgdesc="NSS module providing hostname resolution for the locally configured system hostname" + depends=('glibc' 'libcap') + license=('GPL2') + + cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir" +} + +package_nss-mymachines() { + pkgdesc="NSS module providing hostname resolution for local systemd-machined container instances" + depends=('glibc' 'libcap') + license=('GPL2') + + cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir" +} + +package_nss-resolve() { + pkgdesc="NSS module providing hostname resolution via systemd-resolved" + depends=('glibc' 'libcap') + license=('GPL2') - make -C "$pkgbase" DESTDIR="$pkgdir" install-libLTLIBRARIES + cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir" } package_systemd-sysvcompat() { @@ -205,10 +271,7 @@ package_systemd-sysvcompat() { conflicts=('sysvinit') depends=('systemd') - install -dm755 "$pkgdir"/usr/share/man/man8 - cp -d --no-preserve=ownership,timestamp \ - "$pkgbase"/man/{telinit,halt,reboot,poweroff,runlevel,shutdown}.8 \ - "$pkgdir"/usr/share/man/man8 + cp -rT -d --no-preserve=ownership,timestamp "$srcdir/dest/$pkgname" "$pkgdir" install -dm755 "$pkgdir/usr/bin" for tool in runlevel reboot shutdown poweroff halt telinit; do -- cgit v1.2.3