upgrade to systemd 239

This commit is contained in:
Bruce Leidl 2019-01-15 12:22:05 -05:00
parent 2c05f2ee9c
commit c22b03e533
6 changed files with 148 additions and 683 deletions

View File

@ -0,0 +1,4 @@
do_install_append() {
echo "a4e415feff81466c925aab34b0c35a3c" > ${D}${sysconfdir}/machine-id
}

View File

@ -8,11 +8,11 @@ ALTERNATIVE_${PN}_remove = "resolv-conf"
GROUPADD_PARAM_${PN} += "; -r kvm" GROUPADD_PARAM_${PN} += "; -r kvm"
PACKAGECONFIG = "\ PACKAGECONFIG = "\
efi ldconfig pam usrmerge rfkill backlight binfmt hostnamed ima localed logind machined myhostname \ efi acl ldconfig pam usrmerge rfkill backlight binfmt hostnamed localed logind machined myhostname \
nss polkit randomseed seccomp timedated utmp vconsole timesyncd \ nss polkit randomseed seccomp timedated utmp timesyncd kmod sysusers gshadow \
" "
do_install_append() { do_install_append() {
rm -f ${D}${sysconfdir}/tmpfiles.d/00-create-volatile.conf rm -f ${D}${sysconfdir}/tmpfiles.d/00-create-volatile.conf
echo "a4e415feff81466c925aab34b0c35a3c" > ${D}${sysconfdir}/machine-id ln -s rescue.target ${D}${systemd_unitdir}/system/kbrequest.target
} }

View File

@ -1,257 +0,0 @@
From 4acd56b6297b1f36e24c5e1d9f97ece24ad2b67f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Wed, 21 Feb 2018 14:04:50 +0100
Subject: [PATCH] missing_syscall: when adding syscall replacements, use
different names (#8229)
In meson.build we check that functions are available using:
meson.get_compiler('c').has_function('foo')
which checks the following:
- if __stub_foo or __stub___foo are defined, return false
- if foo is declared (a pointer to the function can be taken), return true
- otherwise check for __builtin_memfd_create
_stub is documented by glibc as
It defines a symbol '__stub_FUNCTION' for each function
in the C library which is a stub, meaning it will fail
every time called, usually setting errno to ENOSYS.
So if __stub is defined, we know we don't want to use the glibc version, but
this doesn't tell us if the name itself is defined or not. If it _is_ defined,
and we define our replacement as an inline static function, we get an error:
In file included from ../src/basic/missing.h:1358:0,
from ../src/basic/util.h:47,
from ../src/basic/calendarspec.h:29,
from ../src/basic/calendarspec.c:34:
../src/basic/missing_syscall.h:65:19: error: static declaration of 'memfd_create' follows non-static declaration
static inline int memfd_create(const char *name, unsigned int flags) {
^~~~~~~~~~~~
.../usr/include/bits/mman-shared.h:46:5: note: previous declaration of 'memfd_create' was here
int memfd_create (const char *__name, unsigned int __flags) __THROW;
^~~~~~~~~~~~
To avoid this problem, call our inline functions different than glibc,
and use a #define to map the official name to our replacement.
Fixes #8099.
v2:
- use "missing_" as the prefix instead of "_"
v3:
- rebase and update for statx()
Unfortunately "statx" is also present in "struct statx", so the define
causes issues. Work around this by using a typedef.
I checked that systemd compiles with current glibc
(glibc-devel-2.26-24.fc27.x86_64) if HAVE_MEMFD_CREATE, HAVE_GETTID,
HAVE_PIVOT_ROOT, HAVE_SETNS, HAVE_RENAMEAT2, HAVE_KCMP, HAVE_KEYCTL,
HAVE_COPY_FILE_RANGE, HAVE_BPF, HAVE_STATX are forced to 0.
Setting HAVE_NAME_TO_HANDLE_AT to 0 causes an issue, but it's not because of
the define, but because of struct file_handle.
(cherry picked from commit 5187dd2c403caf92d09f3491e41f1ceb3f10491f)
(cherry picked from commit 7909254c7a8ee09d91b8b21fd779320b3e2fe716)
---
src/basic/missing_syscall.h | 55 ++++++++++++++++++++++++++++++++-------------
1 file changed, 40 insertions(+), 15 deletions(-)
diff --git a/src/basic/missing_syscall.h b/src/basic/missing_syscall.h
index 898116c7b..e2860fc26 100644
--- a/src/basic/missing_syscall.h
+++ b/src/basic/missing_syscall.h
@@ -23,9 +23,11 @@
/* Missing glibc definitions to access certain kernel APIs */
#if !HAVE_DECL_PIVOT_ROOT
-static inline int pivot_root(const char *new_root, const char *put_old) {
+static inline int missing_pivot_root(const char *new_root, const char *put_old) {
return syscall(SYS_pivot_root, new_root, put_old);
}
+
+# define pivot_root missing_pivot_root
#endif
/* ======================================================================= */
@@ -59,7 +61,7 @@ static inline int pivot_root(const char *new_root, const char *put_old) {
# endif
# endif
-static inline int memfd_create(const char *name, unsigned int flags) {
+static inline int missing_memfd_create(const char *name, unsigned int flags) {
# ifdef __NR_memfd_create
return syscall(__NR_memfd_create, name, flags);
# else
@@ -67,6 +69,8 @@ static inline int memfd_create(const char *name, unsigned int flags) {
return -1;
# endif
}
+
+# define memfd_create missing_memfd_create
#endif
/* ======================================================================= */
@@ -106,7 +110,7 @@ static inline int memfd_create(const char *name, unsigned int flags) {
# endif
# endif
-static inline int getrandom(void *buffer, size_t count, unsigned flags) {
+static inline int missing_getrandom(void *buffer, size_t count, unsigned flags) {
# ifdef __NR_getrandom
return syscall(__NR_getrandom, buffer, count, flags);
# else
@@ -114,14 +118,18 @@ static inline int getrandom(void *buffer, size_t count, unsigned flags) {
return -1;
# endif
}
+
+# define getrandom missing_getrandom
#endif
/* ======================================================================= */
#if !HAVE_DECL_GETTID
-static inline pid_t gettid(void) {
+static inline pid_t missing_gettid(void) {
return (pid_t) syscall(SYS_gettid);
}
+
+# define gettid missing_gettid
#endif
/* ======================================================================= */
@@ -149,7 +157,7 @@ struct file_handle {
unsigned char f_handle[0];
};
-static inline int name_to_handle_at(int fd, const char *name, struct file_handle *handle, int *mnt_id, int flags) {
+static inline int missing_name_to_handle_at(int fd, const char *name, struct file_handle *handle, int *mnt_id, int flags) {
# ifdef __NR_name_to_handle_at
return syscall(__NR_name_to_handle_at, fd, name, handle, mnt_id, flags);
# else
@@ -157,6 +165,8 @@ static inline int name_to_handle_at(int fd, const char *name, struct file_handle
return -1;
# endif
}
+
+# define name_to_handle_at missing_name_to_handle_at
#endif
/* ======================================================================= */
@@ -174,7 +184,7 @@ static inline int name_to_handle_at(int fd, const char *name, struct file_handle
# endif
# endif
-static inline int setns(int fd, int nstype) {
+static inline int missing_setns(int fd, int nstype) {
# ifdef __NR_setns
return syscall(__NR_setns, fd, nstype);
# else
@@ -182,6 +192,8 @@ static inline int setns(int fd, int nstype) {
return -1;
# endif
}
+
+# define setns missing_setns
#endif
/* ======================================================================= */
@@ -227,7 +239,7 @@ static inline pid_t raw_getpid(void) {
# endif
# endif
-static inline int renameat2(int oldfd, const char *oldname, int newfd, const char *newname, unsigned flags) {
+static inline int missing_renameat2(int oldfd, const char *oldname, int newfd, const char *newname, unsigned flags) {
# ifdef __NR_renameat2
return syscall(__NR_renameat2, oldfd, oldname, newfd, newname, flags);
# else
@@ -235,12 +247,14 @@ static inline int renameat2(int oldfd, const char *oldname, int newfd, const cha
return -1;
# endif
}
+
+# define renameat2 missing_renameat2
#endif
/* ======================================================================= */
#if !HAVE_DECL_KCMP
-static inline int kcmp(pid_t pid1, pid_t pid2, int type, unsigned long idx1, unsigned long idx2) {
+static inline int missing_kcmp(pid_t pid1, pid_t pid2, int type, unsigned long idx1, unsigned long idx2) {
# ifdef __NR_kcmp
return syscall(__NR_kcmp, pid1, pid2, type, idx1, idx2);
# else
@@ -248,36 +262,45 @@ static inline int kcmp(pid_t pid1, pid_t pid2, int type, unsigned long idx1, uns
return -1;
# endif
}
+
+# define kcmp missing_kcmp
#endif
+
/* ======================================================================= */
#if !HAVE_DECL_KEYCTL
-static inline long keyctl(int cmd, unsigned long arg2, unsigned long arg3, unsigned long arg4,unsigned long arg5) {
+static inline long missing_keyctl(int cmd, unsigned long arg2, unsigned long arg3, unsigned long arg4,unsigned long arg5) {
# ifdef __NR_keyctl
return syscall(__NR_keyctl, cmd, arg2, arg3, arg4, arg5);
# else
errno = ENOSYS;
return -1;
# endif
+
+# define keyctl missing_keyctl
}
-static inline key_serial_t add_key(const char *type, const char *description, const void *payload, size_t plen, key_serial_t ringid) {
+static inline key_serial_t missing_add_key(const char *type, const char *description, const void *payload, size_t plen, key_serial_t ringid) {
# ifdef __NR_add_key
return syscall(__NR_add_key, type, description, payload, plen, ringid);
# else
errno = ENOSYS;
return -1;
# endif
+
+# define add_key missing_add_key
}
-static inline key_serial_t request_key(const char *type, const char *description, const char * callout_info, key_serial_t destringid) {
+static inline key_serial_t missing_request_key(const char *type, const char *description, const char * callout_info, key_serial_t destringid) {
# ifdef __NR_request_key
return syscall(__NR_request_key, type, description, callout_info, destringid);
# else
errno = ENOSYS;
return -1;
# endif
+
+# define request_key missing_request_key
}
#endif
@@ -304,10 +327,10 @@ static inline key_serial_t request_key(const char *type, const char *description
# endif
# endif
-static inline ssize_t copy_file_range(int fd_in, loff_t *off_in,
- int fd_out, loff_t *off_out,
- size_t len,
- unsigned int flags) {
+static inline ssize_t missing_copy_file_range(int fd_in, loff_t *off_in,
+ int fd_out, loff_t *off_out,
+ size_t len,
+ unsigned int flags) {
# ifdef __NR_copy_file_range
return syscall(__NR_copy_file_range, fd_in, off_in, fd_out, off_out, len, flags);
# else
@@ -315,4 +338,6 @@ static inline ssize_t copy_file_range(int fd_in, loff_t *off_in,
return -1;
# endif
}
+
+# define copy_file_range missing_copy_file_range
#endif

View File

@ -1,75 +0,0 @@
Upstream-Status: Backport
Signed-off-by: Ross Burton <ross.burton@intel.com>
From 227b8a762fea1458547be2cdf0e6e4aac0079730 Mon Sep 17 00:00:00 2001
From: Michael Olbrich <m.olbrich@pengutronix.de>
Date: Mon, 26 Mar 2018 17:34:53 +0200
Subject: [PATCH] core: don't include libmount.h in a header file (#8580)
linux/fs.h sys/mount.h, libmount.h and missing.h all include MS_*
definitions.
To avoid problems, only one of linux/fs.h, sys/mount.h and libmount.h
should be included. And missing.h must be included last.
Without this, building systemd may fail with:
In file included from [...]/libmount/libmount.h:31:0,
from ../systemd-238/src/core/manager.h:23,
from ../systemd-238/src/core/emergency-action.h:37,
from ../systemd-238/src/core/unit.h:34,
from ../systemd-238/src/core/dbus-timer.h:25,
from ../systemd-238/src/core/timer.c:26:
[...]/sys/mount.h:57:2: error: expected identifier before numeric constant
---
src/core/dbus-execute.c | 1 +
src/core/manager.h | 3 ++-
src/core/mount.c | 2 ++
3 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c
index 7344623ebf6..c342093bca4 100644
--- a/src/core/dbus-execute.c
+++ b/src/core/dbus-execute.c
@@ -18,6 +18,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
+#include <sys/mount.h>
#include <sys/prctl.h>
#include <stdio_ext.h>
diff --git a/src/core/manager.h b/src/core/manager.h
index 28c5da225b1..e09e0cdf5e9 100644
--- a/src/core/manager.h
+++ b/src/core/manager.h
@@ -20,7 +20,6 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
-#include <libmount.h>
#include <stdbool.h>
#include <stdio.h>
@@ -34,6 +33,8 @@
#include "list.h"
#include "ratelimit.h"
+struct libmnt_monitor;
+
/* Enforce upper limit how many names we allow */
#define MANAGER_MAX_NAMES 131072 /* 128K */
diff --git a/src/core/mount.c b/src/core/mount.c
index 0e755da5c02..0154ebda5d6 100644
--- a/src/core/mount.c
+++ b/src/core/mount.c
@@ -23,6 +23,8 @@
#include <stdio.h>
#include <sys/epoll.h>
+#include <libmount.h>
+
#include "sd-messages.h"
#include "alloc-util.h"

View File

@ -1,348 +0,0 @@
SUMMARY = "systemd configured for use in initramfs"
HOMEPAGE = "http://www.freedesktop.org/wiki/Software/systemd"
LICENSE = "GPLv2 & LGPLv2.1"
LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
DEPENDS = "intltool-native gperf-native libcap libcgroup util-linux kmod cryptsetup"
inherit useradd pkgconfig autotools
SRCREV = "c1edab7ad1e7ccc9be693bedfd464cd1cbffb395"
# Added by useradd class
DEPENDS_remove = "base-files"
SRC_URI = "git://github.com/systemd/systemd.git;protocol=git"
SRC_URI += "file://0032-memfd.patch \
file://libmount.patch \
"
S = "${WORKDIR}/git"
USERADD_PACKAGES = "${PN}"
GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal; -r kvm"
# Hardcode target binary paths to avoid AC_PROG_PATH in the systemd
# configure script detecting and setting paths from sysroot or host.
CACHED_CONFIGUREVARS_class-target = " \
ac_cv_path_KEXEC=${sbindir}/kexec \
ac_cv_path_KILL=${base_bindir}/kill \
ac_cv_path_KMOD=${base_bindir}/kmod \
ac_cv_path_MOUNT_PATH=${base_bindir}/mount \
ac_cv_path_QUOTACHECK=${sbindir}/quotacheck \
ac_cv_path_QUOTAON=${sbindir}/quotaon \
ac_cv_path_SULOGIN=${base_sbindir}/sulogin \
ac_cv_path_UMOUNT_PATH=${base_bindir}/umount \
"
# Helper variables to clarify locations. This mirrors the logic in systemd's
# build system.
rootprefix ?= "${root_prefix}"
rootlibdir ?= "${base_libdir}"
systemd_unitdir = "${rootprefix}/lib"
EXTRA_OECONF = " \
--without-python \
--with-rootlibdir=${rootlibdir} \
--with-rootprefix=${rootprefix} \
--with-sysvrcnd-path=${sysconfdir} \
--disable-audit \
--disable-binfmt \
--disable-bzip2 \
--disable-coredump \
--disable-dbus \
--disable-efi \
--disable-elfutils \
--disable-firstboot \
--disable-gcrypt \
--disable-hibernate \
--disable-ima \
--disable-importd \
--disable-libiptc \
--disable-libcurl \
--disable-libidn \
--disable-localed \
--disable-lz4 \
--disable-machined \
--disable-manpages \
--disable-microhttpd \
--disable-myhostname \
--disable-networkd \
--disable-nss-systemd \
--disable-pam \
--disable-polkit \
--disable-qrencode \
--disable-quotacheck \
--disable-randomseed \
--disable-resolved \
--disable-rfkill \
--disable-seccomp \
--disable-selinux \
--disable-smack \
--disable-sysusers \
--disable-timedated \
--disable-timesyncd \
--disable-utmp \
--disable-xkbcommon \
--disable-xz \
--disable-zlib \
\
--enable-backlight \
--enable-libcryptsetup \
--enable-split-usr \
--enable-vconsole \
--enable-logind \
"
COMPILER_NM ?= "${HOST_PREFIX}gcc-nm"
COMPILER_AR ?= "${HOST_PREFIX}gcc-ar"
COMPILER_RANLIB ?= "${HOST_PREFIX}gcc-ranlib"
do_configure_prepend() {
export NM="${COMPILER_NM}"
export AR="${COMPILER_AR}"
export RANLIB="${COMPILER_RANLIB}"
export KMOD="${base_bindir}/kmod"
if [ -d ${S}/units.pre_sed ] ; then
cp -r ${S}/units.pre_sed ${S}/units
else
cp -r ${S}/units ${S}/units.pre_sed
fi
sed -i -e 's:-DTEST_DIR=\\\".*\\\":-DTEST_DIR=\\\"${PTEST_PATH}/tests/test\\\":' ${S}/Makefile.am
sed -i -e 's:-DCATALOG_DIR=\\\".*\\\":-DCATALOG_DIR=\\\"${PTEST_PATH}/tests/catalog\\\":' ${S}/Makefile.am
}
do_install() {
autotools_do_install
# Provide support for initramfs
install -d ${D}/sysroot
[ ! -e ${D}/init ] && ln -s ${systemd_unitdir}/systemd/systemd ${D}/init
#[ ! -e ${D}/${base_sbindir}/udevd ] && ln -s ${systemd_unitdir}/systemd/systemd-udevd ${D}/${base_sbindir}/udevd
# Create machine-id
# 20:12 < mezcalero> koen: you have three options: a) run systemd-machine-id-setup at install time, b) have / read-only and an empty file there (for stateless) and c) boot with / writable
touch ${D}${sysconfdir}/machine-id
install -d ${D}${sysconfdir}/udev/rules.d/
install -d ${D}${sysconfdir}/tmpfiles.d
#install -m 0644 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/
#install -d ${D}${libdir}/pkgconfig
#install -m 0644 ${B}/src/udev/udev.pc ${D}${libdir}/pkgconfig/
#install -m 0644 ${WORKDIR}/00-create-volatile.conf ${D}${sysconfdir}/tmpfiles.d/
#chown root:systemd-journal ${D}/${localstatedir}/log/journal
# Delete journal README, as log can be symlinked inside volatile.
rm -f ${D}/${localstatedir}/log/README
# Set the maximium size of runtime journal to 64M as default
sed -i -e 's/.*RuntimeMaxUse.*/RuntimeMaxUse=64M/' ${D}${sysconfdir}/systemd/journald.conf
# this file is needed to exist if networkd is disabled but timesyncd is still in use since timesyncd checks it
# for existence else it fails
if [ -s ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf ]; then
${@bb.utils.contains('PACKAGECONFIG', 'networkd', ':', 'sed -i -e "\$ad /run/systemd/netif/links 0755 root root -" ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf', d)}
fi
if ! ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'true', 'false', d)}; then
echo 'L! ${sysconfdir}/resolv.conf - - - - ../run/systemd/resolve/resolv.conf' >>${D}${exec_prefix}/lib/tmpfiles.d/etc.conf
echo 'd /run/systemd/resolve 0755 root root -' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
echo 'f /run/systemd/resolve/resolv.conf 0644 root root' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
ln -s ../run/systemd/resolve/resolv.conf ${D}${sysconfdir}/resolv-conf.systemd
else
sed -i -e "s%^L! /etc/resolv.conf.*$%L! /etc/resolv.conf - - - - ../run/systemd/resolve/resolv.conf%g" ${D}${exec_prefix}/lib/tmpfiles.d/etc.conf
ln -s ../run/systemd/resolve/resolv.conf ${D}${sysconfdir}/resolv-conf.systemd
fi
install -Dm 0755 ${S}/src/systemctl/systemd-sysv-install.SKELETON ${D}${systemd_system_unitdir}/systemd-sysv-install
# If polkit is setup fixup permissions and ownership
if ${@bb.utils.contains('PACKAGECONFIG', 'polkit', 'true', 'false', d)}; then
if [ -d ${D}${datadir}/polkit-1/rules.d ]; then
chmod 700 ${D}${datadir}/polkit-1/rules.d
chown polkitd:root ${D}${datadir}/polkit-1/rules.d
fi
fi
}
PACKAGES += "${PN}-analyze ${PN}-not-used"
FILES_${PN}-analyze = "${bindir}/systemd-analyze"
RDEPENDS_${PN}-analyze = "${PN}"
RDEPENDS_${PN}-not-used = "bash"
FILES_${PN}-not-used = "\
${sysconfdir} \
${datadir}/zsh \
${datadir}/dbus-1 \
${datadir}/bash-completion \
${datadir}/factory \
${libdir}/udev/hwdb.d \
${libdir}/udev/collect \
${libdir}/udev/v4l_id \
${libdir}/udev/mtd_probe \
${libdir}/rpm \
${libdir}/environment.d \
${libdir}/kernel/install.d \
${libdir}/modules-load.d \
${libdir}/tmpfiles.d \
${bindir}/systemd-* \
${bindir}/busctl \
${bindir}/hostnamectl \
${bindir}/loginctl \
${bindir}/kernel-install \
${systemd_unitdir}/systemd/systemd-hostnamed \
${systemd_unitdir}/systemd/systemd-backlight \
${systemd_unitdir}/systemd/systemd-logind \
${systemd_unitdir}/systemd/systemd-socket-proxyd \
${systemd_unitdir}/systemd/systemd-sleep \
${systemd_unitdir}/systemd/systemd-volatile-root \
${systemd_unitdir}/systemd/systemd-dissect \
${systemd_unitdir}/systemd/systemd-remount-fs \
${systemd_unitdir}/systemd/systemd-ac-power \
${systemd_unitdir}/systemd/systemd-update-done \
${systemd_unitdir}/systemd/systemd-initctl \
${systemd_unitdir}/systemd \
${localstatedir}/lib/systemd \
"
INSANE_SKIP_${PN} += "dev-so"
PRIVATE_LIBS = "libsystemd-shared-${PV}.so libsystemd.so.0 libudev.so.1"
FILES_${PN} = "\
${libdir}/libudev* \
${libdir}/libsystemd* \
${systemd_unitdir}/systemd/libsystemd-shared* \
\
${systemd_unitdir}/systemd/systemd \
${systemd_unitdir}/systemd/systemd-cgroups-agent \
${systemd_unitdir}/systemd/systemd-cryptsetup \
${systemd_unitdir}/systemd/systemd-shutdown \
${systemd_unitdir}/systemd/systemd-reply-password \
${systemd_unitdir}/systemd/systemd-fsck \
${systemd_unitdir}/systemd/systemd-udevd \
${systemd_unitdir}/systemd/systemd-journald \
${systemd_unitdir}/systemd/systemd-sysctl \
${systemd_unitdir}/systemd/systemd-modules-load \
${systemd_unitdir}/systemd/systemd-veritysetup \
${systemd_unitdir}/systemd/systemd-vconsole-setup \
${systemd_unitdir}/systemd/system-generators/systemd-fstab-generator \
${systemd_unitdir}/systemd/system-generators/systemd-gpt-auto-generator \
${systemd_unitdir}/systemd/system-generators/systemd-cryptsetup-generator \
\
${systemd_system_unitdir}/cryptsetup-pre.target \
${systemd_system_unitdir}/cryptsetup.target \
${systemd_system_unitdir}/emergency.target \
${systemd_system_unitdir}/emergency.service \
${systemd_system_unitdir}/sysinit.target \
${systemd_system_unitdir}/basic.target \
${systemd_system_unitdir}/halt.target \
${systemd_system_unitdir}/kexec.target \
${systemd_system_unitdir}/local-fs.target \
${systemd_system_unitdir}/local-fs-pre.target \
${systemd_system_unitdir}/remote-fs.target \
${systemd_system_unitdir}/remote-fs-pre.target \
${systemd_system_unitdir}/multi-user.target \
${systemd_system_unitdir}/network.target \
${systemd_system_unitdir}/network-pre.target \
${systemd_system_unitdir}/network-online.target \
${systemd_system_unitdir}/nss-lookup.target \
${systemd_system_unitdir}/nss-user-lookup.target \
${systemd_system_unitdir}/poweroff.target \
${systemd_system_unitdir}/reboot.target \
${systemd_system_unitdir}/rescue.target \
${systemd_system_unitdir}/rpcbind.target \
${systemd_system_unitdir}/shutdown.target \
${systemd_system_unitdir}/final.target \
${systemd_system_unitdir}/sigpwr.target \
${systemd_system_unitdir}/sockets.target \
${systemd_system_unitdir}/swap.target \
${systemd_system_unitdir}/timers.target \
${systemd_system_unitdir}/paths.target \
${systemd_system_unitdir}/umount.target \
\
${systemd_system_unitdir}/sys-kernel-config.mount \
\
${systemd_system_unitdir}/kmod-static-nodes.service \
${systemd_system_unitdir}/systemd-tmpfiles-setup.service \
${systemd_system_unitdir}/systemd-tmpfiles-setup-dev.service \
${systemd_system_unitdir}/systemd-ask-password-console.path \
${systemd_system_unitdir}/systemd-udevd-control.socket \
${systemd_system_unitdir}/systemd-udevd-kernel.socket \
${systemd_system_unitdir}/systemd-ask-password-plymouth.path \
${systemd_system_unitdir}/systemd-journald.socket \
${systemd_system_unitdir}/systemd-journald-audit.socket \
${systemd_system_unitdir}/systemd-ask-password-console.service \
${systemd_system_unitdir}/systemd-modules-load.service \
${systemd_system_unitdir}/systemd-halt.service \
${systemd_system_unitdir}/systemd-poweroff.service \
${systemd_system_unitdir}/systemd-reboot.service \
${systemd_system_unitdir}/systemd-kexec.service \
${systemd_system_unitdir}/systemd-fsck@.service \
${systemd_system_unitdir}/systemd-udevd.service \
${systemd_system_unitdir}/systemd-udev-trigger.service \
${systemd_system_unitdir}/systemd-udev-settle.service \
${systemd_system_unitdir}/systemd-ask-password-plymouth.service \
${systemd_system_unitdir}/systemd-journald.service \
${systemd_system_unitdir}/systemd-vconsole-setup.service \
${systemd_system_unitdir}/systemd-random-seed-load.service \
${systemd_system_unitdir}/systemd-random-seed.service \
${systemd_system_unitdir}/systemd-sysctl.service \
\
${systemd_system_unitdir}/sysinit.target.wants/systemd-modules-load.service \
${systemd_system_unitdir}/sysinit.target.wants/systemd-ask-password-console.path \
${systemd_system_unitdir}/sysinit.target.wants/systemd-journald.service \
${systemd_system_unitdir}/sockets.target.wants/systemd-udevd-control.socket \
${systemd_system_unitdir}/sockets.target.wants/systemd-udevd-kernel.socket \
${systemd_system_unitdir}/sockets.target.wants/systemd-journald.socket \
${systemd_system_unitdir}/sockets.target.wants/systemd-journald-audit.socket \
${systemd_system_unitdir}/sysinit.target.wants/systemd-udevd.service \
${systemd_system_unitdir}/sysinit.target.wants/systemd-udev-trigger.service \
${systemd_system_unitdir}/sysinit.target.wants/kmod-static-nodes.service \
${systemd_system_unitdir}/sysinit.target.wants/systemd-tmpfiles-setup.service \
${systemd_system_unitdir}/sysinit.target.wants/systemd-tmpfiles-setup-dev.service \
${systemd_system_unitdir}/sysinit.target.wants/systemd-sysctl.service \
\
${systemd_system_unitdir}/ctrl-alt-del.target \
${systemd_system_unitdir}/reboot.target \
${systemd_system_unitdir}/systemd-reboot.service \
${systemd_system_unitdir}/syslog.socket \
\
${systemd_system_unitdir}/slices.target \
${systemd_system_unitdir}/system.slice \
${systemd_system_unitdir}/-.slice \
\
${libdir}/sysctl.d/50-default.conf \
${libdir}/tmpfiles.d/systemd.conf \
${libdir}/udev/rules.d \
${libdir}/udev/ata_id \
${libdir}/udev/cdrom_id \
${libdir}/udev/scsi_id \
\
${bindir}/journalctl \
${bindir}/systemctl \
${bindir}/systemd-ask-password \
${bindir}/systemd-run \
${bindir}/systemd-escape \
${bindir}/systemd-cgls \
${bindir}/systemd-tmpfiles \
${bindir}/systemd-tty-ask-password-agent \
${bindir}/udevadm \
\
${systemd_system_unitdir}/initrd.target \
${systemd_system_unitdir}/initrd-fs.target \
${systemd_system_unitdir}/initrd-root-device.target \
${systemd_system_unitdir}/initrd-fs.target \
${systemd_system_unitdir}/initrd-root-fs.target \
${systemd_system_unitdir}/initrd-switch-root.target \
${systemd_system_unitdir}/initrd-switch-root.service \
${systemd_system_unitdir}/initrd-cleanup.service \
${systemd_system_unitdir}/initrd-udevadm-cleanup-db.service \
${systemd_system_unitdir}/initrd-parse-etc.service \
\
${localstatedir}/log \
${localstatedir}/volatile/log \
/init \
/sysroot \
\
${systemd_unitdir}/systemd/systemd-sulogin-shell \
"

View File

@ -0,0 +1,141 @@
FILESEXTRAPATHS_prepend := "${COREBASE}/meta/recipes-core/systemd/systemd:"
require ${COREBASE}/meta/recipes-core/systemd/systemd_${PV}.bb
PROVIDES_remove = "udev"
RDEPENDS_${PN}_remove = "dbus"
PACKAGECONFIG = "acl cryptsetup usrmerge kmod"
do_install() {
meson_do_install
install -d ${D}/sysroot
[ ! -e ${D}/init ] && ln -s ${rootlibexecdir}/systemd/systemd ${D}/init
chown root:systemd-journal ${D}/${localstatedir}/log/journal
}
ALTERNATIVE_${PN}_remove = "resolv-conf"
sockets_wants = "${systemd_system_unitdir}/sockets.target.wants"
sysinit_wants = "${systemd_system_unitdir}/sysinit.target.wants"
SYSTEMD_WANTS = "\
${sockets_wants}/systemd-journald-audit.socket \
${sockets_wants}/systemd-journald.socket \
${sockets_wants}/systemd-journald-udevd-control.socket \
${sockets_wants}/systemd-journald-udevd-kernel.socket \
\
${sysinit_wants}/kmod-static-nodes.service \
${sysinit_wants}/systemd-ask-password-console.path \
${sysinit_wants}/systemd-journald.service \
${sysinit_wants}/systemd-modules-load.service \
${sysinit_wants}/systemd-sysctl.service \
${sysinit_wants}/systemd-udev-trigger.service \
${sysinit_wants}/systemd-udevd.service \
"
SYSTEMD_TARGETS = "\
${systemd_system_unitdir}/sysinit.target \
${systemd_system_unitdir}/basic.target \
${systemd_system_unitdir}/cryptsetup-pre.target \
${systemd_system_unitdir}/cryptsetup.target \
${systemd_system_unitdir}/sockets.target \
${systemd_system_unitdir}/paths.target \
${systemd_system_unitdir}/slices.target \
${systemd_system_unitdir}/halt.target \
${systemd_system_unitdir}/poweroff.target \
${systemd_system_unitdir}/reboot.target \
${systemd_system_unitdir}/rescue.target \
${systemd_system_unitdir}/shutdown.target \
${systemd_system_unitdir}/final.target \
${systemd_system_unitdir}/sigpwr.target \
${systemd_system_unitdir}/sockets.target \
${systemd_system_unitdir}/swap.target \
${systemd_system_unitdir}/timers.target \
${systemd_system_unitdir}/paths.target \
${systemd_system_unitdir}/umount.target \
${systemd_system_unitdir}/local-fs.target \
${systemd_system_unitdir}/local-fs-pre.target \
"
generators = "${systemd_unitdir}/system-generators"
SYSTEMD_GENERATORS = "\
${generators}/systemd-debug-generator \
${generators}/systemd-cryptsetup-generator \
${generators}/systemd-fstab-generator \
"
SYSTEMD_BINARIES = "\
${bindir}/journalctl \
${bindir}/systemctl \
${bindir}/systemd-ask-password \
${bindir}/systemd-run \
${bindir}/systemd-escape \
${bindir}/systemd-cgls \
${bindir}/systemd-tmpfiles \
${bindir}/systemd-tty-ask-password-agent \
"
SYSTEMD_UNITS = "\
${systemd_system_unitdir}/emergency.target \
${systemd_system_unitdir}/emergency.service \
${systemd_system_unitdir}/rescue.target \
${systemd_system_unitdir}/rescue.service \
${systemd_system_unitdir}/debug-shell.service \
\
${systemd_system_unitdir}/initrd.target \
${systemd_system_unitdir}/initrd-fs.target \
${systemd_system_unitdir}/initrd-root-device.target \
${systemd_system_unitdir}/initrd-root-fs.target \
${systemd_system_unitdir}/initrd-switch-root.target \
${systemd_system_unitdir}/initrd-switch-root.service \
${systemd_system_unitdir}/initrd-cleanup.service \
${systemd_system_unitdir}/initrd-udevadm-cleanup-db.service \
${systemd_system_unitdir}/initrd-parse-etc.service \
${systemd_system_unitdir}/kmod-static-nodes.service \
${systemd_system_unitdir}/systemd-ask-password-console.path \
${systemd_system_unitdir}/systemd-ask-password-console.service \
${systemd_system_unitdir}/systemd-journald.service \
${systemd_system_unitdir}/systemd-ask-password-plymouth.path \
${systemd_system_unitdir}/systemd-ask-password-plymouth.service \
${systemd_system_unitdir}/systemd-fsck@.service \
${systemd_system_unitdir}/systemd-fsck-root.service \
${systemd_system_unitdir}/systemd-journald.socket \
${systemd_system_unitdir}/systemd-journald-audit.socket \
${systemd_system_unitdir}/systemd-udevd-control.socket \
${systemd_system_unitdir}/systemd-udevd-kernel.socket \
${systemd_system_unitdir}/systemd-modules-load.service \
${systemd_system_unitdir}/systemd-sysctl.service \
${systemd_system_unitdir}/systemd-udevd.service \
${systemd_system_unitdir}/systemd-udev-trigger.service \
${systemd_system_unitdir}/systemd-udev-settle.service \
${systemd_system_unitdir}/systemd-volatile-root \
"
FILES_${PN} = "\
/init /sysroot \
${libdir}/lib* \
${libdir}/sysctl.d/50-default.conf \
${libdir}/tmpfiles.d/systemd.conf \
${systemd_unitdir}/libsystemd* \
${systemd_unitdir}/systemd* \
${base_sbindir} \
${SYSTEMD_WANTS} \
${SYSTEMD_TARGETS} \
${SYSTEMD_UNITS} \
${SYSTEMD_GENERATORS} \
${SYSTEMD_BINARIES} \
"
python populate_packages_prepend() {
# hack to sabotage do_split_packages
d.setVar("rootlibdir", "/nowhere")
}
PRIVATE_LIBS = "libsystemd-shared-${PV}.so libsystemd.so.0 libudev.so.1"
PACKAGES = "${PN} ${PN}-dbg ${PN}-dev ${PN}-unused"
RDEPENDS_${PN}-unused += "bash ${PN}"
FILES_${PN}-unused = "/"