commit:     b324973d5d49f86742e70b3d6520ec78a4ea4162
Author:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
AuthorDate: Thu Nov  4 00:28:53 2021 +0000
Commit:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
CommitDate: Thu Nov  4 00:44:51 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b324973d

sys-apps/systemd-tmpfiles: add 249.5

Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>

 sys-apps/systemd-tmpfiles/Manifest                 |   2 +
 .../systemd-tmpfiles/systemd-tmpfiles-249.5.ebuild | 257 +++++++++++++++++++++
 2 files changed, 259 insertions(+)

diff --git a/sys-apps/systemd-tmpfiles/Manifest 
b/sys-apps/systemd-tmpfiles/Manifest
index 5a60708f74a..f49d92d0bd1 100644
--- a/sys-apps/systemd-tmpfiles/Manifest
+++ b/sys-apps/systemd-tmpfiles/Manifest
@@ -1,4 +1,6 @@
 DIST systemd-246.tar.gz 9534036 BLAKE2B 
71b72abcd4d066d35d45d9835d41bec8faa9a7eddc80b48fe7073223f07d32f78a8442c52dc0800940f9750d9c5502123a633738981d797cf610d85df2035bf0
 SHA512 
7103f7da53f7ced3b5543c238f23bd11c82af8e37166c1720a90576b6b431b4329320c78726166c65a9f5e101dd465c0a86dd13c586c4e55e608a6273d8f324f
 DIST systemd-musl-patches-249.1-r1.tar.xz 24536 BLAKE2B 
25135519112b2a1c638046addb6971ea1997fc7dd8626de90d162a4beb6383b5724df78a14c73be1283df58632fb4a0fcb32f90f50f1886f31a1aded15e9567c
 SHA512 
4655f2a06e1b3310cb27b839360353dfbfdbdaa86f4392aeebf63f63efd441d1953f7ac108be7fed7ea721596d191988ed999e34443e47922afca92db779175a
+DIST systemd-musl-patches-249.5.tar.xz 25020 BLAKE2B 
728580573dce974514e71eb22996c35baf781a45d3867f239eec5a1b83f1fd5a06bc92ad9b32b77da5bc20818f25dc7d36f5a157df890b66b86a67701e615fde
 SHA512 
4f9ea3bf98ea56a89c0a3847b4ce446968863d3986810aca0f51f44d31d0bc6cba9127b9cf1ec29b5ebb667fbf6a381fcfae7a3690f3d91eb3e0fa9ab052986d
 DIST systemd-stable-249.2.tar.gz 10591728 BLAKE2B 
fb24c681cf2328aa26fa49a8ba20cccd1ee0fae82ec9f9931a69eaa377fc01b2ece12fdf407444514d494b8ac1418f155b0fceeff4925bebaba691f0b8a2acc8
 SHA512 
4f42a0b93156529a464545361436fa98193e12a7e0809315b9fdedbcf33b81dd2037acac27fb0dfefcb2679bc49ebb6da4d152ecb4b15db797c81f7ca4588a11
+DIST systemd-stable-249.5.tar.gz 10597897 BLAKE2B 
5c573322ef9bcd9d019776d6e2d8625a741c1535c0d06661b5666c2438a70cfc4dc182919bb419829de27a4d93c16717ce24e668faf9bd6b09e57f8bd88be725
 SHA512 
d6f1a5a6f03f0ed05b111aee75da509c5868c523af6209f33e630724dd0c7e0d0abf16920795d587e6c31a5915d247ebc613cf26d4aecf39f82ebb0690fab75f
 DIST systemd-tmpfiles-246-musl.tar.xz 25860 BLAKE2B 
87fc4ca37abec9c1a0cee48bf78c575bd53e16a50d427eff338159dc6d5474ffd328af533ccf90a0e1e160a16baa7378070f418f2be0d7f77e00907a5d07d30e
 SHA512 
4a93d9f0cb2df2dd0a2f91820615dd3a95d19583f45dc0589e37ceaedfc2040112310a6e3fc525e28e222e96a91498af2fe8541b5bf86a635c0f52dd1a84deb7

diff --git a/sys-apps/systemd-tmpfiles/systemd-tmpfiles-249.5.ebuild 
b/sys-apps/systemd-tmpfiles/systemd-tmpfiles-249.5.ebuild
new file mode 100644
index 00000000000..d81d6c206c6
--- /dev/null
+++ b/sys-apps/systemd-tmpfiles/systemd-tmpfiles-249.5.ebuild
@@ -0,0 +1,257 @@
+# Copyright 2020-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+if [[ ${PV} == *.* ]]; then
+       MY_PN=systemd-stable
+else
+        MY_PN=systemd
+fi
+
+MINKV="3.11"
+MUSL_PATCHSET="${PV}"
+PYTHON_COMPAT=( python3_{8..10} )
+inherit flag-o-matic meson python-any-r1
+
+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/${MY_PN}/archive/v${PV}.tar.gz -> 
${MY_PN}-${PV}.tar.gz
+       elibc_musl? (
+               
https://dev.gentoo.org/~gyakovlev/distfiles/systemd-musl-patches-${MUSL_PATCHSET}.tar.xz
+               
https://dev.gentoo.org/~soap/distfiles/systemd-musl-patches-${MUSL_PATCHSET}.tar.xz
+       )"
+
+LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT public-domain"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 
sparc x86"
+IUSE="selinux test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       sys-apps/acl:0=
+       >=sys-apps/util-linux-2.30:0=
+       sys-libs/libcap:0=
+       selinux? ( sys-libs/libselinux:0= )
+       virtual/libcrypt:=
+       !sys-apps/opentmpfiles
+       !sys-apps/systemd
+"
+
+DEPEND="
+       ${RDEPEND}
+       >=sys-kernel/linux-headers-${MINKV}
+"
+
+BDEPEND="
+       ${PYTHON_DEPS}
+       $(python_gen_any_dep 'dev-python/jinja[${PYTHON_USEDEP}]')
+       app-text/docbook-xml-dtd:4.2
+       app-text/docbook-xml-dtd:4.5
+       app-text/docbook-xsl-stylesheets
+       dev-libs/libxslt
+       dev-util/gperf
+       >=dev-util/meson-0.46
+       >=sys-apps/coreutils-8.16
+       sys-devel/gettext
+       virtual/pkgconfig
+"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+python_check_deps() {
+       has_version -b "dev-python/jinja[${PYTHON_USEDEP}]"
+}
+
+pkg_pretend() {
+       if [[ -n ${EPREFIX} ]]; then
+               ewarn "systemd-tmpfiles uses un-prefixed paths at runtime.".
+       fi
+}
+
+pkg_setup() {
+       python-any-r1_pkg_setup
+}
+
+src_prepare() {
+       # musl patchset from:
+       # 
http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-core/systemd/systemd
+       # check SRC_URI_MUSL in systemd_${PV}.bb file for exact list of musl 
patches
+       # we share patch tarball with sys-fs/udev
+       if use elibc_musl; then
+               einfo "applying musl patches and workarounds"
+               eapply "${WORKDIR}/musl-patches"
+
+               # avoids re-definition of struct ethhdr, also 
0006-Include-netinet-if_ether.h.patch
+               append-cppflags '-D__UAPI_DEF_ETHHDR=0'
+
+               # src/basic/rlimit-util.c:46:19: error: format ‘%lu’ expects 
argument of type ‘long unsigned int’,
+               # but argument 9 has type ‘rlim_t’ {aka ‘long long unsigned 
int’}
+               # not a nice workaround, but it comes from debug messages and 
we don't really use this component.
+               append-cflags '-Wno-error=format'
+       fi
+
+       default
+
+       # https://bugs.gentoo.org/767403
+       python_fix_shebang src/test/*.py
+       python_fix_shebang test/*.py
+       python_fix_shebang tools/*.py
+}
+
+src_configure() {
+       # disable everything until configure says "enabled features: ACL, 
tmpfiles, standalone-binaries, static-libsystemd(true)"
+       # and optionally selinux feature can be enabled to make tmpfiles 
secontext-aware
+       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
+               nscd
+               nss-myhostname
+               nss-resolve
+               nss-systemd
+               oomd
+               openssl
+               p11kit
+               pam
+               pcre2
+               polkit
+               portabled
+               pstore
+               pwquality
+               randomseed
+               resolve
+               rfkill
+               seccomp
+               smack
+               sysext
+               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=(
+               -Drootprefix="${EPREFIX:-/}"
+               -Dacl=true
+               -Dtmpfiles=true
+               -Dstandalone-binaries=true # this and below option does the 
magic
+               -Dstatic-libsystemd=true
+               -Dsysvinit-path=''
+               ${systemd_disable_options[@]}
+               $(meson_use selinux)
+       )
+       meson_src_configure
+}
+
+src_compile() {
+       # tmpfiles and sysusers can be built as standalone and 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
+
+       # same content, but install as different file
+       newconfd "${FILESDIR}"/stmpfiles.confd stmpfiles-dev
+       newconfd "${FILESDIR}"/stmpfiles.confd stmpfiles-setup
+}
+
+src_test() {
+       # 'meson test' will compile full systemd, but we can still outsmart it
+       "${EPYTHON}" test/test-systemd-tmpfiles.py \
+               "${BUILD_DIR}"/systemd-tmpfiles.standalone || die "${FUNCNAME} 
failed"
+}
+
+# stolen 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 "${EPREFIX}/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