From 2fd57282f0262ca084e05b0f2c63fbada395d02b Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 16 Jan 2022 20:27:28 +0000 Subject: gentoo resync : 16.01.2021 --- sys-apps/systemd-tmpfiles/Manifest | 10 +- .../files/249.9-cross-compile.patch | 23 ++ sys-apps/systemd-tmpfiles/metadata.xml | 9 +- .../systemd-tmpfiles/systemd-tmpfiles-249.5.ebuild | 257 -------------------- .../systemd-tmpfiles/systemd-tmpfiles-249.7.ebuild | 260 +++++++++++++++++++++ .../systemd-tmpfiles/systemd-tmpfiles-249.9.ebuild | 260 +++++++++++++++++++++ 6 files changed, 552 insertions(+), 267 deletions(-) create mode 100644 sys-apps/systemd-tmpfiles/files/249.9-cross-compile.patch delete mode 100644 sys-apps/systemd-tmpfiles/systemd-tmpfiles-249.5.ebuild create mode 100644 sys-apps/systemd-tmpfiles/systemd-tmpfiles-249.7.ebuild create mode 100644 sys-apps/systemd-tmpfiles/systemd-tmpfiles-249.9.ebuild (limited to 'sys-apps/systemd-tmpfiles') diff --git a/sys-apps/systemd-tmpfiles/Manifest b/sys-apps/systemd-tmpfiles/Manifest index f8e907072b65..ef6768c27f43 100644 --- a/sys-apps/systemd-tmpfiles/Manifest +++ b/sys-apps/systemd-tmpfiles/Manifest @@ -1,7 +1,11 @@ +AUX 249.9-cross-compile.patch 1070 BLAKE2B 45586e1d76f6eed0e6f4ae27c5c93f9495bfde2b2bb3b1853bdda22f341787747ea7d7a02a1d582e6ba7e113fd2aed94bfa72616a6a9139ec18c89f85d176646 SHA512 97e919c30fc5ff39f50908f63fee23371047223d12874e68fe74ae545acea7a1dd0d1f0147e2d8a95a49e1943a276148011294b33a8f7fcfa11c91f275e87194 AUX stmpfiles-dev.initd 421 BLAKE2B af962a76a2f3985aff460193a9bdcb7d340a3cf0a5c7cb65150dade564dc780d91634028b5f8a87750be66e6c47bbe519088fbc0c46047f180e93c3eabffc16d SHA512 1eac910984bda9ba5d8e9c5b17718c356f90b41ccf22bb68393b4f00901c8999501e1b482decbf22e6a16157f430eee159b3332f6e82a9442423adc884057475 AUX stmpfiles-setup.initd 396 BLAKE2B 54796d5db9fc350a98e467cf763afaa82bc27f547755f0631f5f37f2d6e1382e361878aed80545bbb5ba198b564337e4083c073f73552d8bed4a8732ff6b819f SHA512 12201b6a3d7f4a178ca9504638cbbc7e518c5075ce9a3b2653650960b54225f3516381dd4e0366d13f16aecaa1dec40ad1a41ef1f849b6c45be81c49108bdccd AUX stmpfiles.confd 56 BLAKE2B c26aafd0e47b01354c7f20869cd71d36d7a8560e9013863eca6abb736d78c1eeb3eec00427c6bc8d37ab5b9bb88155d11b9e18809da9110ed40c77a34ebb1a82 SHA512 464cb238b87a8fbeb57e6534d0f2d861e8ade4219be9b7e2faf05c799f717cd2f23d176393bdd3c3b236058aa6f8bda837ad947fbe8f9489405760e9bfedbe40 +DIST systemd-249.7-CVE-2021-3997.tar.gz 8431 BLAKE2B 167ae8bfb3b653fa4a7a62eee164f2a7edf2f0fb312db8ed955634030c95dfdbd747821b4652620cd34a7af38fe0b77e48ed61096b5d076c3eb2f56371e191c8 SHA512 b17a60a0862743faee0153218792a77b5d06a44876e0c53c264e98d62786442c165f47136d7bc2857edcedc24e667c220a2e7d065e77f9a957804131acb26598 DIST systemd-musl-patches-249.5-r1.tar.xz 25148 BLAKE2B 6717291b5335997dcc327764beffc4ded50a5ac0e777bb3c540b5e355bee419c3d9b4a5605c239392d4c1b0e70792bc87282fa15dc9c09a0465b5608f2909006 SHA512 4bb7566437c280e75402fc435a3437aedad127f7b94c9bd54b94e9e1e7507409ad0898681f23e813b9b47414f58e4ca413b6d4e520bbbf578faec09054bf7f9b -DIST systemd-stable-249.5.tar.gz 10597897 BLAKE2B 5c573322ef9bcd9d019776d6e2d8625a741c1535c0d06661b5666c2438a70cfc4dc182919bb419829de27a4d93c16717ce24e668faf9bd6b09e57f8bd88be725 SHA512 d6f1a5a6f03f0ed05b111aee75da509c5868c523af6209f33e630724dd0c7e0d0abf16920795d587e6c31a5915d247ebc613cf26d4aecf39f82ebb0690fab75f -EBUILD systemd-tmpfiles-249.5.ebuild 5968 BLAKE2B 72a4b96753da7d54754c79d2dd90c669987adfc1fae84a9bb4985cb953702db10d74e2cb4f6e7bb34d11afa43506c16f5a63b8e6b4f15e041c95d817f64931aa SHA512 2acbac61323d3d744e9e0ee9362cee06b8460ab8673cf07181e4a76a44a0b287516f634abe8fdea1ca2ee143364ee56e6e8f85ec8a1651a5d056c136bfe148b2 -MISC metadata.xml 361 BLAKE2B 51c4e3dcb18cea86f9508c51e534a670e92e81aefe8e04af436f279d3158999d6dd8836dd53abcd4b35cacfeffff829a4157d2a63ce08d4eea62791b6761feb4 SHA512 6645f474e642a386927ae353561fadda273327321705500ddb8de14ed53f94788d782680b4b765c5da0151395a9f3f3c9bea2726c05cb79e52ee26a6e033c63f +DIST systemd-stable-249.7.tar.gz 10608252 BLAKE2B a5597c4973b24c962779622cae47dbf8351af49f8cd898d9c16a967c6f3600c6feb293e9b03eab0423b860eef5b04b287185fb9827cb323429d0ab9fc6d809b2 SHA512 4daf8570621fdcda5c94d982908c64eddfeef989005f4fd79a10f199dbc6f366354177bb59dff34bcb14764fb4423a870ffabac1163849ec53592e29760105fc +DIST systemd-stable-249.9.tar.gz 10613893 BLAKE2B fc7a14fa3b0cc3d05fa9f20fde2efedd3ef0f011d9dce53b0a418994b4257cf753b228cf98f749fb2028d81db55ef30a6e3d9b138d86239cad4fc730d845f9e2 SHA512 ce57bc6c522082e55649fc1886c4dc818c89607e175df2c92feffe288dbd38757f36b30abeebe153f5be6b664a49d729405040a952473cb2133a2e39cf9cc164 +EBUILD systemd-tmpfiles-249.7.ebuild 6091 BLAKE2B 63064cd496f780af754185f05a47551804f05d2b21c58d4b173d2a2ec82b7ba986c947ca1fc15cfc793f411caebf2b7586315ef7e741c534e00649c26c5d5bcf SHA512 e56de86404b80d686e233a17761adfd7f7f59afd1a8f90c2a50658d1fd04e8d1a8b62acbc4cc1d882d094fac10ed5964a03edc1f182c00b3821c856245e33eb3 +EBUILD systemd-tmpfiles-249.9.ebuild 5990 BLAKE2B 9739faa844c7ad1a449c229bf8696cb4ef1af75ecbe6a7c788b8b9299785dc66b09fb83534b289a5499687a263018d6b58369eca84e116e045a6b695b1db80c8 SHA512 cab2c35242e3cee3b441c50c2596f83217f39a68b6a102e7307e1fc81a372adec594b7a935cc22a0dbb264db7f791a3f4221562a4e52d459cee035135d337d9b +MISC metadata.xml 220 BLAKE2B f37e1abb12c69fa1b4b3bf9ad39205355a3d1f1921479546d7e41d6874f2b36176c35f662a9d4c972f0d949faeff8aec17ad7c76350c37fae1a9c9f76063b424 SHA512 c75e34a124cc02a9537bee3f0966d3372b9ab12ac62e590784f9ca4f0c07a43c5949c22055e202321f97b38f4e7c0e09e670511008b6692141339335a3821ccc diff --git a/sys-apps/systemd-tmpfiles/files/249.9-cross-compile.patch b/sys-apps/systemd-tmpfiles/files/249.9-cross-compile.patch new file mode 100644 index 000000000000..e063d303c7d8 --- /dev/null +++ b/sys-apps/systemd-tmpfiles/files/249.9-cross-compile.patch @@ -0,0 +1,23 @@ +From 3d7fd38ea938ab194366f40ed7aa413ad33f2fad Mon Sep 17 00:00:00 2001 +From: Yu Watanabe +Date: Tue, 21 Dec 2021 20:10:09 +0900 +Subject: [PATCH] meson: fix cross compiling + +(cherry picked from commit 3112d756a36993900b70fbff98e69a2a43b970a8) +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 02495d16c9..c76cab535d 100644 +--- a/meson.build ++++ b/meson.build +@@ -442,7 +442,7 @@ conf.set('SIZEOF_DEV_T', cc.sizeof('dev_t', prefix : '#include ')) + conf.set('SIZEOF_INO_T', cc.sizeof('ino_t', prefix : '#include ')) + conf.set('SIZEOF_TIME_T', cc.sizeof('time_t', prefix : '#include ')) + conf.set('SIZEOF_RLIM_T', cc.sizeof('rlim_t', prefix : '#include ')) +-conf.set('SIZEOF_TIMEX_MEMBER', cc.sizeof('((struct timex *)0)->freq', prefix : '#include ')) ++conf.set('SIZEOF_TIMEX_MEMBER', cc.sizeof('typeof(((struct timex *)0)->freq)', prefix : '#include ')) + + decl_headers = ''' + #include diff --git a/sys-apps/systemd-tmpfiles/metadata.xml b/sys-apps/systemd-tmpfiles/metadata.xml index de4a6cef156b..31123d01cb4d 100644 --- a/sys-apps/systemd-tmpfiles/metadata.xml +++ b/sys-apps/systemd-tmpfiles/metadata.xml @@ -1,12 +1,7 @@ - - gyakovlev@gentoo.org - Georgy Yakovlev - - - williamh@gentoo.org - William Hubbs + + systemd@gentoo.org diff --git a/sys-apps/systemd-tmpfiles/systemd-tmpfiles-249.5.ebuild b/sys-apps/systemd-tmpfiles/systemd-tmpfiles-249.5.ebuild deleted file mode 100644 index d4b97e07bdd5..000000000000 --- a/sys-apps/systemd-tmpfiles/systemd-tmpfiles-249.5.ebuild +++ /dev/null @@ -1,257 +0,0 @@ -# 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}-r1" -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 .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 -} diff --git a/sys-apps/systemd-tmpfiles/systemd-tmpfiles-249.7.ebuild b/sys-apps/systemd-tmpfiles/systemd-tmpfiles-249.7.ebuild new file mode 100644 index 000000000000..f9142ca4addc --- /dev/null +++ b/sys-apps/systemd-tmpfiles/systemd-tmpfiles-249.7.ebuild @@ -0,0 +1,260 @@ +# Copyright 2020-2022 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="249.5-r1" +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 + https://dev.gentoo.org/~floppym/dist/systemd-249.7-CVE-2021-3997.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() { + eapply "${WORKDIR}/systemd-249.7-CVE-2021-3997" + + # 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 .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 +} diff --git a/sys-apps/systemd-tmpfiles/systemd-tmpfiles-249.9.ebuild b/sys-apps/systemd-tmpfiles/systemd-tmpfiles-249.9.ebuild new file mode 100644 index 000000000000..77ba2a1996bb --- /dev/null +++ b/sys-apps/systemd-tmpfiles/systemd-tmpfiles-249.9.ebuild @@ -0,0 +1,260 @@ +# Copyright 2020-2022 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="249.5-r1" +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() { + local PATCHES=( + "${FILESDIR}/249.9-cross-compile.patch" + ) + + # 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 + PATCHES+=( "${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 .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 +} -- cgit v1.2.3