From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 5802B158086 for ; Thu, 4 Nov 2021 00:46:38 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id ACCD9E0825; Thu, 4 Nov 2021 00:46:37 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id BB8D3E0825 for ; Thu, 4 Nov 2021 00:46:36 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 90F43342C7F for ; Thu, 4 Nov 2021 00:46:34 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 3D234D0 for ; Thu, 4 Nov 2021 00:46:33 +0000 (UTC) From: "Georgy Yakovlev" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Georgy Yakovlev" Message-ID: <1635986691.b324973d5d49f86742e70b3d6520ec78a4ea4162.gyakovlev@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: sys-apps/systemd-tmpfiles/ X-VCS-Repository: repo/gentoo X-VCS-Files: sys-apps/systemd-tmpfiles/Manifest sys-apps/systemd-tmpfiles/systemd-tmpfiles-249.5.ebuild X-VCS-Directories: sys-apps/systemd-tmpfiles/ X-VCS-Committer: gyakovlev X-VCS-Committer-Name: Georgy Yakovlev X-VCS-Revision: b324973d5d49f86742e70b3d6520ec78a4ea4162 X-VCS-Branch: master Date: Thu, 4 Nov 2021 00:46:33 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 03485fa5-8689-4d37-9067-eec8aceba326 X-Archives-Hash: 2dbbadd4c2d3e0b712dff0b20788990c commit: b324973d5d49f86742e70b3d6520ec78a4ea4162 Author: Georgy Yakovlev gentoo org> AuthorDate: Thu Nov 4 00:28:53 2021 +0000 Commit: Georgy Yakovlev gentoo 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 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 .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 +}