public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Mike Gilbert" <floppym@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-apps/systemd-tmpfiles/
Date: Tue, 11 Jan 2022 01:01:42 +0000 (UTC)	[thread overview]
Message-ID: <1641862897.2606e84e36c1bf0515947e4d744e6990526ba366.floppym@gentoo> (raw)

commit:     2606e84e36c1bf0515947e4d744e6990526ba366
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 11 00:54:09 2022 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Jan 11 01:01:37 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2606e84e

sys-apps/systemd-tmpfiles: add 249.7

Includes backport for CVE-2021-3997.

Bug: https://bugs.gentoo.org/830967
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 sys-apps/systemd-tmpfiles/Manifest                 |   2 +
 .../systemd-tmpfiles/systemd-tmpfiles-249.7.ebuild | 260 +++++++++++++++++++++
 2 files changed, 262 insertions(+)

diff --git a/sys-apps/systemd-tmpfiles/Manifest b/sys-apps/systemd-tmpfiles/Manifest
index 56ae06fe69b3..8f7f65ff7640 100644
--- a/sys-apps/systemd-tmpfiles/Manifest
+++ b/sys-apps/systemd-tmpfiles/Manifest
@@ -1,2 +1,4 @@
+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
+DIST systemd-stable-249.7.tar.gz 10608252 BLAKE2B a5597c4973b24c962779622cae47dbf8351af49f8cd898d9c16a967c6f3600c6feb293e9b03eab0423b860eef5b04b287185fb9827cb323429d0ab9fc6d809b2 SHA512 4daf8570621fdcda5c94d982908c64eddfeef989005f4fd79a10f199dbc6f366354177bb59dff34bcb14764fb4423a870ffabac1163849ec53592e29760105fc

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..8d386973e34a
--- /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 <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-11  1:01 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-11  1:01 Mike Gilbert [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-13  0:20 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
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=1641862897.2606e84e36c1bf0515947e4d744e6990526ba366.floppym@gentoo \
    --to=floppym@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