sys-apps/systemd-tmpfiles: add 249.2, unkeyworded for more testing

Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
This commit is contained in:
Georgy Yakovlev 2021-08-04 03:57:35 -07:00
parent b31c80827b
commit db2fad6c5a
No known key found for this signature in database
GPG Key ID: A272C8F015129D52
3 changed files with 319 additions and 0 deletions

View File

@ -1,4 +1,6 @@
DIST systemd-246.tar.gz 9534036 BLAKE2B 71b72abcd4d066d35d45d9835d41bec8faa9a7eddc80b48fe7073223f07d32f78a8442c52dc0800940f9750d9c5502123a633738981d797cf610d85df2035bf0 SHA512 7103f7da53f7ced3b5543c238f23bd11c82af8e37166c1720a90576b6b431b4329320c78726166c65a9f5e101dd465c0a86dd13c586c4e55e608a6273d8f324f
DIST systemd-musl-patches-249.1-r0.tar.xz 24276 BLAKE2B ba96bcfb04096d639d7ee028b219bb90648b6aa8aaefe804cd658d3fb8c4f9770b617dc9c5ddfb93e876b739ad927d037c881cbfb19d2db095fa897f3bb83d20 SHA512 9bd7ea515184e44bfa50c9f415200c62f931c657a49cd53a15ee9719991f3773c12ca7162dc12f61a7e67ed791405e879f9b5a13c9fa09fab464be269508f31f
DIST systemd-stable-248.3.tar.gz 10320940 BLAKE2B 725494e0197dd182de55e4967088f4b4b709e6b2242723368b6cd95606582e01a57322b1f18fa194149055140a90993696734ad3c004843bfaceb72cd04a3a84 SHA512 8e7ff0d5e63cc933e4dc23f7e0bef9707fde90396605eb8822d34de90d7abe8fd37e5739e33b657868218aa7281147cc944c096c007324c3e6fb54d833a83485
DIST systemd-stable-249.2.tar.gz 10591728 BLAKE2B fb24c681cf2328aa26fa49a8ba20cccd1ee0fae82ec9f9931a69eaa377fc01b2ece12fdf407444514d494b8ac1418f155b0fceeff4925bebaba691f0b8a2acc8 SHA512 4f42a0b93156529a464545361436fa98193e12a7e0809315b9fdedbcf33b81dd2037acac27fb0dfefcb2679bc49ebb6da4d152ecb4b15db797c81f7ca4588a11
DIST systemd-tmpfiles-246-musl.tar.xz 25860 BLAKE2B 87fc4ca37abec9c1a0cee48bf78c575bd53e16a50d427eff338159dc6d5474ffd328af533ccf90a0e1e160a16baa7378070f418f2be0d7f77e00907a5d07d30e SHA512 4a93d9f0cb2df2dd0a2f91820615dd3a95d19583f45dc0589e37ceaedfc2040112310a6e3fc525e28e222e96a91498af2fe8541b5bf86a635c0f52dd1a84deb7
DIST systemd-tmpfiles-248.3-musl.tar.xz 22904 BLAKE2B a277ce86577644cecbca5dbfde34aec494e3e14075ab4f7fcbb02f9307d714a93ca63f38e346a1e98391ca9c55860c7e90789cd5edb9b196cf638d54bfe1153b SHA512 d3db6a90bed6b6c1a9f6bce138137554742d1bc60da142fbadbd49b64677a562e47d8140b9c413857106e053d740476744b7f7e05af9dd4a1329058c78cef940

View File

@ -0,0 +1,67 @@
Silence annoying #warning's on musl
https://github.com/systemd/systemd/pull/20362
https://github.com/systemd/systemd/pull/20364
From f8d54f7810aeea5ff27a5db03e1aab7ea54c8268 Mon Sep 17 00:00:00 2001
From: David Seifert <soap@gentoo.org>
Date: Mon, 2 Aug 2021 12:41:38 +0200
Subject: [PATCH] Use correct `<fcntl.h>` include
* `<sys/fcntl.h>` is not specified in POSIX
---
src/basic/fileio.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/basic/fileio.h b/src/basic/fileio.h
index af797cfafdbf..4295b84a85c5 100644
--- a/src/basic/fileio.h
+++ b/src/basic/fileio.h
@@ -2,11 +2,11 @@
#pragma once
#include <dirent.h>
+#include <fcntl.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdio.h>
#include <sys/stat.h>
-#include <sys/fcntl.h>
#include <sys/types.h>
#include "macro.h"
From 2b6c0bb2a341c95223ce672249e43c743b03d78c Mon Sep 17 00:00:00 2001
From: David Seifert <soap@gentoo.org>
Date: Mon, 2 Aug 2021 16:09:10 +0200
Subject: [PATCH] Use correct `<poll.h>` include
* `<sys/poll.h>` is not specified in POSIX
---
src/shared/nscd-flush.c | 2 +-
src/shared/varlink.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/shared/nscd-flush.c b/src/shared/nscd-flush.c
index dfc47c423441..19e16d93455c 100644
--- a/src/shared/nscd-flush.c
+++ b/src/shared/nscd-flush.c
@@ -1,5 +1,5 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
-#include <sys/poll.h>
+#include <poll.h>
#include "fd-util.h"
#include "io-util.h"
diff --git a/src/shared/varlink.c b/src/shared/varlink.c
index 3a53c16a7242..4033947d3b8c 100644
--- a/src/shared/varlink.c
+++ b/src/shared/varlink.c
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <malloc.h>
-#include <sys/poll.h>
+#include <poll.h>
#include "alloc-util.h"
#include "errno-util.h"

View File

@ -0,0 +1,250 @@
# 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%.*}.1-r0"
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 ~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= )
!sys-apps/opentmpfiles
!sys-apps/systemd
"
DEPEND="
${RDEPEND}
>=sys-kernel/linux-headers-${MINKV}
"
BDEPEND="
${PYTHON_DEPS}
app-text/docbook-xml-dtd:4.2
app-text/docbook-xml-dtd:4.5
app-text/docbook-xsl-stylesheets
dev-libs/libxslt:0
dev-util/gperf
>=dev-util/meson-0.46
>=sys-apps/coreutils-8.16
sys-devel/gettext
sys-devel/m4
virtual/pkgconfig
"
S="${WORKDIR}/${MY_PN}-${PV}"
PATCHES=(
# backport from 250 to silence musl warnings
"${FILESDIR}/249-sys-include-posix.patch"
)
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=(
-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
}