commit:     06d012cc3dacb4a2c7ac2e28553c96965f9ddea9
Author:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 29 04:57:19 2020 +0000
Commit:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
CommitDate: Thu Oct 29 05:03:19 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=06d012cc

sys-apps/systemd-tmpfiles: new package

Package-Manager: Portage-3.0.8, Repoman-3.0.2
Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>

 sys-apps/systemd-tmpfiles/Manifest                 |   1 +
 .../systemd-tmpfiles/files/stmpfiles-dev.confd     |   2 +
 .../systemd-tmpfiles/files/stmpfiles-dev.initd     |  20 +++
 .../systemd-tmpfiles/files/stmpfiles-setup.confd   |   2 +
 .../systemd-tmpfiles/files/stmpfiles-setup.initd   |  19 +++
 sys-apps/systemd-tmpfiles/metadata.xml             |   8 +
 .../systemd-tmpfiles/systemd-tmpfiles-246.ebuild   | 173 +++++++++++++++++++++
 7 files changed, 225 insertions(+)

diff --git a/sys-apps/systemd-tmpfiles/Manifest 
b/sys-apps/systemd-tmpfiles/Manifest
new file mode 100644
index 00000000000..0e7a4c8589d
--- /dev/null
+++ b/sys-apps/systemd-tmpfiles/Manifest
@@ -0,0 +1 @@
+DIST systemd-246.tar.gz 9534036 BLAKE2B 
71b72abcd4d066d35d45d9835d41bec8faa9a7eddc80b48fe7073223f07d32f78a8442c52dc0800940f9750d9c5502123a633738981d797cf610d85df2035bf0
 SHA512 
7103f7da53f7ced3b5543c238f23bd11c82af8e37166c1720a90576b6b431b4329320c78726166c65a9f5e101dd465c0a86dd13c586c4e55e608a6273d8f324f

diff --git a/sys-apps/systemd-tmpfiles/files/stmpfiles-dev.confd 
b/sys-apps/systemd-tmpfiles/files/stmpfiles-dev.confd
new file mode 100644
index 00000000000..2ec4b5f0d8b
--- /dev/null
+++ b/sys-apps/systemd-tmpfiles/files/stmpfiles-dev.confd
@@ -0,0 +1,2 @@
+# Extra options to pass to stmpfiles
+#stmpfiles_opts=""

diff --git a/sys-apps/systemd-tmpfiles/files/stmpfiles-dev.initd 
b/sys-apps/systemd-tmpfiles/files/stmpfiles-dev.initd
new file mode 100644
index 00000000000..0952ef12cc2
--- /dev/null
+++ b/sys-apps/systemd-tmpfiles/files/stmpfiles-dev.initd
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+# Copyright 1999-2020 Gentoo Authors
+# Released under the 2-clause BSD license.
+
+description="Set up tmpfiles.d entries for /dev"
+
+depend()
+{
+       provide stmpfiles-dev stmpfiles.dev tmpfiles-dev tmpfiles.dev
+       use dev-mount
+       before dev
+       keyword -prefix -vserver
+}
+
+start()
+{
+       ebegin "Setting up tmpfiles.d entries for /dev"
+       /bin/systemd-tmpfiles --prefix=/dev --create --boot ${stmpfiles_opts}
+       eend $?
+}

diff --git a/sys-apps/systemd-tmpfiles/files/stmpfiles-setup.confd 
b/sys-apps/systemd-tmpfiles/files/stmpfiles-setup.confd
new file mode 100644
index 00000000000..2ec4b5f0d8b
--- /dev/null
+++ b/sys-apps/systemd-tmpfiles/files/stmpfiles-setup.confd
@@ -0,0 +1,2 @@
+# Extra options to pass to stmpfiles
+#stmpfiles_opts=""

diff --git a/sys-apps/systemd-tmpfiles/files/stmpfiles-setup.initd 
b/sys-apps/systemd-tmpfiles/files/stmpfiles-setup.initd
new file mode 100644
index 00000000000..a55163d3fd6
--- /dev/null
+++ b/sys-apps/systemd-tmpfiles/files/stmpfiles-setup.initd
@@ -0,0 +1,19 @@
+#!/sbin/openrc-run
+# Copyright 1999-2020 Gentoo Authors
+# Released under the 2-clause BSD license.
+
+description="Set up tmpfiles.d entries"
+
+depend()
+{
+       provide stmpfiles-setup stmpfiles.setup tmpfiles-setup tmpfiles.setup
+       need localmount
+}
+
+start()
+{
+       ebegin "Setting up tmpfiles.d entries"
+       /bin/systemd-tmpfiles --exclude-prefix=/dev --create --remove --boot \
+               ${stmpfiles_opts}
+       eend $?
+}

diff --git a/sys-apps/systemd-tmpfiles/metadata.xml 
b/sys-apps/systemd-tmpfiles/metadata.xml
new file mode 100644
index 00000000000..efcd58fe0b9
--- /dev/null
+++ b/sys-apps/systemd-tmpfiles/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person">
+               <email>gyakov...@gentoo.org</email>
+               <name>Georgy Yakovlev</name>
+       </maintainer>
+</pkgmetadata>

diff --git a/sys-apps/systemd-tmpfiles/systemd-tmpfiles-246.ebuild 
b/sys-apps/systemd-tmpfiles/systemd-tmpfiles-246.ebuild
new file mode 100644
index 00000000000..5b99c6958bc
--- /dev/null
+++ b/sys-apps/systemd-tmpfiles/systemd-tmpfiles-246.ebuild
@@ -0,0 +1,173 @@
+# Copyright 2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+MINKV="3.11"
+inherit meson
+
+DESCRIPTION="Creates, deletes and cleans up volatile and temporary files and 
directories"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/systemd";
+SRC_URI="https://github.com/systemd/systemd/archive/v${PV}.tar.gz -> 
systemd-${PV}.tar.gz"
+
+LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT public-domain"
+SLOT="0"
+KEYWORDS=""
+
+DEPEND="
+       >=sys-kernel/linux-headers-${MINKV}
+       sys-apps/acl:0=
+       >=sys-apps/util-linux-2.30:0=
+       sys-libs/libcap:0=
+"
+RDEPEND="${DEPEND}
+       !sys-apps/opentmpfiles
+       !sys-apps/systemd
+"
+
+S="${WORKDIR}/systemd-${PV}"
+
+src_configure() {
+       # disable everything until configure says "enabled features: ACL, 
tmpfiles"
+       local systemd_disable_options=(
+               adm-group
+               analyze
+               apparmor
+               audit
+               backlight
+               binfmt
+               blkid
+               bzip2
+               coredump
+               dbus
+               efi
+               elfutils
+               environment-d
+               fdisk
+               gcrypt
+               glib
+               gshadow
+               gnutls
+               hibernate
+               hostnamed
+               hwdb
+               idn
+               ima
+               initrd
+               firstboot
+               kernel-install
+               kmod
+               ldconfig
+               libcryptsetup
+               libcurl
+               libfido2
+               libidn
+               libidn2
+               libiptc
+               link-networkd-shared
+               link-systemctl-shared
+               link-timesyncd-shared
+               link-udev-shared
+               localed
+               logind
+               lz4
+               machined
+               microhttpd
+               networkd
+               nss-myhostname
+               nss-resolve
+               nss-systemd
+               openssl
+               p11kit
+               pam
+               pcre2
+               polkit
+               portabled
+               pstore
+               pwquality
+               randomseed
+               resolve
+               rfkill
+               seccomp
+               selinux
+               smack
+               sysusers
+               timedated
+               timesyncd
+               tpm
+               qrencode
+               quotacheck
+               userdb
+               utmp
+               vconsole
+               wheel-group
+               xdg-autostart
+               xkbcommon
+               xz
+               zlib
+               zstd
+       )
+
+       # prepend -D and append =false, e.g. zstd becomes -Dzstd=false
+       systemd_disable_options=( ${systemd_disable_options[@]/#/-D} )
+       systemd_disable_options=( ${systemd_disable_options[@]/%/=false} )
+
+       local emesonargs=(
+               -Dtmpfiles=true
+               -Dacl=true
+               -Dstandalone-binaries=true # this and below option does the 
magic
+               -Dstatic-libsystemd=true
+               -Dsysvinit-path=''
+               ${systemd_disable_options[@]}
+       )
+       meson_src_configure
+}
+
+src_compile() {
+       # tmpfiles and sysusers can be built as standalone, link systemd-shared 
in statically.
+       # https://github.com/systemd/systemd/pull/16061 original implementation
+       # we just need to pass -Dstandalone-binaries=true and
+       # use <name>.standalone target below.
+       # check meson.build for if have_standalone_binaries condition per 
target.
+       local mytargets=(
+               systemd-tmpfiles.standalone
+               man/tmpfiles.d.5
+               man/systemd-tmpfiles.8
+       )
+       meson_src_compile "${mytargets[@]}"
+}
+
+src_install() {
+       # lean and mean installation, single binary and man-pages
+       pushd "${BUILD_DIR}" > /dev/null || die
+       into /
+       newbin systemd-tmpfiles.standalone systemd-tmpfiles
+
+       doman man/{systemd-tmpfiles.8,tmpfiles.d.5}
+
+       popd > /dev/null || die
+
+       # service files adapter from opentmpfiles
+       newinitd "${FILESDIR}"/stmpfiles-dev.initd stmpfiles-dev
+       newinitd "${FILESDIR}"/stmpfiles-setup.initd stmpfiles-setup
+
+       newconfd "${FILESDIR}"/stmpfiles-dev.confd stmpfiles-dev
+       newconfd "${FILESDIR}"/stmpfiles-setup.confd stmpfiles-setup
+}
+
+# adapted from opentmpfiles ebuild
+add_service() {
+       local initd=$1
+       local runlevel=$2
+
+       elog "Auto-adding '${initd}' service to your ${runlevel} runlevel"
+       mkdir -p "${EROOT}/etc/runlevels/${runlevel}"
+       ln -snf "${EROOT}/etc/init.d/${initd}" 
"${EROOT}/etc/runlevels/${runlevel}/${initd}"
+}
+
+pkg_postinst() {
+       if [[ -z $REPLACING_VERSIONS ]]; then
+               add_service stmpfiles-dev sysinit
+               add_service stmpfiles-setup boot
+       fi
+}

Reply via email to