public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-apps/systemd-tmpfiles/
Date: Thu, 13 Jan 2022 00:20:03 +0000 (UTC)	[thread overview]
Message-ID: <1642033170.ec4a94845f76a144736e85f708e4b5cdd5c5793c.sam@gentoo> (raw)

commit:     ec4a94845f76a144736e85f708e4b5cdd5c5793c
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 13 00:15:37 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Jan 13 00:19:30 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ec4a9484

sys-apps/systemd-tmpfiles: add 249.9

Note that systemd-tmpfiles-249.7 in Gentoo already had a backport
for the CVE-2021-3997 fix, so there's no explicit _need_ to upgrade
from 249.7->249.9 for the security bug.

Of course, if running <249.7, please do upgrade.

Anyway, this is the first release upstream packaged in Gentoo
with the fix, so I'm adding it to avoid confusion and to generally
minimise upstream delta so we notice issues sooner.

Bug: https://bugs.gentoo.org/830967
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-apps/systemd-tmpfiles/Manifest                 |   1 +
 .../systemd-tmpfiles/systemd-tmpfiles-249.9.ebuild | 257 +++++++++++++++++++++
 2 files changed, 258 insertions(+)

diff --git a/sys-apps/systemd-tmpfiles/Manifest b/sys-apps/systemd-tmpfiles/Manifest
index 8f7f65ff7640..70031c2ea400 100644
--- a/sys-apps/systemd-tmpfiles/Manifest
+++ b/sys-apps/systemd-tmpfiles/Manifest
@@ -2,3 +2,4 @@ DIST systemd-249.7-CVE-2021-3997.tar.gz 8431 BLAKE2B 167ae8bfb3b653fa4a7a62eee16
 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
 DIST systemd-stable-249.7.tar.gz 10608252 BLAKE2B a5597c4973b24c962779622cae47dbf8351af49f8cd898d9c16a967c6f3600c6feb293e9b03eab0423b860eef5b04b287185fb9827cb323429d0ab9fc6d809b2 SHA512 4daf8570621fdcda5c94d982908c64eddfeef989005f4fd79a10f199dbc6f366354177bb59dff34bcb14764fb4423a870ffabac1163849ec53592e29760105fc
+DIST systemd-stable-249.9.tar.gz 10613893 BLAKE2B fc7a14fa3b0cc3d05fa9f20fde2efedd3ef0f011d9dce53b0a418994b4257cf753b228cf98f749fb2028d81db55ef30a6e3d9b138d86239cad4fc730d845f9e2 SHA512 ce57bc6c522082e55649fc1886c4dc818c89607e175df2c92feffe288dbd38757f36b30abeebe153f5be6b664a49d729405040a952473cb2133a2e39cf9cc164

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..437f7b42c6b0
--- /dev/null
+++ b/sys-apps/systemd-tmpfiles/systemd-tmpfiles-249.9.ebuild
@@ -0,0 +1,257 @@
+# 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() {
+	# 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	other threads:[~2022-01-13  0:20 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-13  0:20 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-06-04  2:21 [gentoo-commits] repo/gentoo:master commit in: sys-apps/systemd-tmpfiles/ Sam James
2022-06-03  7:05 Sam James
2022-06-03  0:52 Sam James
2022-06-03  0:52 Sam James
2022-06-03  0:37 Sam James
2022-06-02  1:52 Sam James
2022-06-02  1:52 Sam James
2022-05-30  7:15 Sam James
2022-04-16 23:13 Mike Gilbert
2022-01-18 22:12 Sam James
2022-01-15 22:07 Georgy Yakovlev
2022-01-15 22:07 Georgy Yakovlev
2022-01-15 22:01 Sam James
2022-01-14 21:27 Sam James
2022-01-14 21:27 Sam James
2022-01-14 21:26 Sam James
2022-01-14 21:25 Sam James
2022-01-13 16:29 Mike Gilbert
2022-01-13  7:18 Sam James
2022-01-13  4:45 Sam James
2022-01-11  3:49 Sam James
2022-01-11  3:49 Sam James
2022-01-11  3:22 Georgy Yakovlev
2022-01-11  3:10 Georgy Yakovlev
2022-01-11  2:59 Georgy Yakovlev
2022-01-11  2:53 Georgy Yakovlev
2022-01-11  1:22 Mike Gilbert
2022-01-11  1:01 Mike Gilbert
2021-12-14 22:16 Sam James
2021-12-13 22:55 Sam James
2021-12-13 22:54 Sam James
2021-12-13  5:43 Sam James
2021-12-13  5:16 Sam James
2021-12-13  5:16 Sam James
2021-12-13  5:15 Sam James
2021-11-09  1:10 Georgy Yakovlev
2021-11-04  0:48 Georgy Yakovlev
2021-11-04  0:46 Georgy Yakovlev
2021-09-21 17:44 Sam James
2021-09-04 21:39 Sam James
2021-09-04 14:19 Mike Gilbert
2021-09-04 14:19 Mike Gilbert
2021-09-01 18:32 Sam James
2021-09-01 13:39 Agostino Sarubbo
2021-09-01  7:55 Agostino Sarubbo
2021-09-01  7:55 Agostino Sarubbo
2021-09-01  7:54 Agostino Sarubbo
2021-09-01  7:53 Agostino Sarubbo
2021-08-31 15:07 Georgy Yakovlev
2021-08-21 22:15 James Le Cuirot
2021-08-08 23:33 William Hubbs
2021-08-06 11:47 Georgy Yakovlev
2021-08-06  2:30 Georgy Yakovlev
2021-08-04 18:07 Georgy Yakovlev
2021-08-04 18:07 Georgy Yakovlev
2021-07-21  2:50 Sam James
2021-07-13 18:52 Georgy Yakovlev
2021-07-08  6:38 Joshua Kinard
2021-07-07  1:49 Georgy Yakovlev
2021-07-07  1:46 Georgy Yakovlev
2021-07-07  1:39 Georgy Yakovlev
2021-07-06 22:31 Sam James
2021-06-12  3:54 Georgy Yakovlev
2021-05-31  5:28 Georgy Yakovlev
2021-05-31  5:22 Georgy Yakovlev
2021-05-31  4:58 Georgy Yakovlev
2021-05-31  3:19 Georgy Yakovlev
2021-04-07 21:38 Georgy Yakovlev
2021-03-01 11:27 Georgy Yakovlev
2021-01-26 20:56 Mikle Kolyada
2020-12-13  0:16 Sam James
2020-12-10 19:19 Georgy Yakovlev
2020-12-10  2:13 Matt Turner
2020-12-02 19:20 Georgy Yakovlev
2020-11-28 11:26 Sergei Trofimovich
2020-11-22 23:59 Sam James
2020-11-22 23:44 Sam James
2020-11-22 20:50 Georgy Yakovlev
2020-11-22 20:50 Georgy Yakovlev
2020-11-22  3:27 Sam James
2020-11-22  3:26 Sam James
2020-11-22  0:31 Thomas Deutschmann
2020-10-30 18:29 Georgy Yakovlev
2020-10-30 12:44 Georgy Yakovlev
2020-10-30  4:35 Georgy Yakovlev
2020-10-30  4:35 Georgy Yakovlev
2020-10-30  2:05 Sam James
2020-10-30  2:04 Sam James
2020-10-30  2:01 Sam James
2020-10-30  1:59 Sam James
2020-10-29 22:24 Georgy Yakovlev
2020-10-29  6:42 Georgy Yakovlev

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1642033170.ec4a94845f76a144736e85f708e4b5cdd5c5793c.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox