From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mail.openembedded.org (Postfix) with ESMTP id 064886E6C2 for ; Tue, 3 Feb 2015 21:33:43 +0000 (UTC) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga102.jf.intel.com with ESMTP; 03 Feb 2015 13:30:14 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.09,515,1418112000"; d="scan'208";a="646871306" Received: from bottazzini-thinkpad-t430.bz.intel.com (HELO bottazzini-ThinkPad-T430) ([10.218.99.44]) by orsmga001.jf.intel.com with ESMTP; 03 Feb 2015 13:33:42 -0800 Date: Tue, 3 Feb 2015 19:33:22 -0200 From: "Bottazzini, Bruno" To: Randy Witt Message-ID: <20150203193322.36432698@bottazzini-ThinkPad-T430> In-Reply-To: <54D13C54.2020508@linux.intel.com> References: <1422987664-26903-1-git-send-email-bruno.bottazzini@intel.com> <1422987664-26903-2-git-send-email-bruno.bottazzini@intel.com> <54D13C54.2020508@linux.intel.com> Organization: Intel X-Mailer: Claws Mail 3.9.3 (GTK+ 2.24.23; x86_64-pc-linux-gnu) MIME-Version: 1.0 Cc: openembedded-core@lists.openembedded.org Subject: Re: [PATCH] systemd: update version from 216 to 218 X-BeenThere: openembedded-core@lists.openembedded.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Patches and discussions about the oe-core layer List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Feb 2015 21:33:45 -0000 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Tue, 3 Feb 2015 13:23:32 -0800 Randy Witt wrote: > On 02/03/2015 10:21 AM, Bruno Bottazzini wrote: > > Spliting into packages to be able to choose what to be installed. > > The final result may get smaller, if the user wanted to. > > By default it will install the whole systemd which may be big. > > --- > > ...r-executing-scripts-under-etc-systemd-218.patch | 131 ++ > > .../systemd/systemd_218-pam-fix-fallocate.patch | 91 ++ > > meta/recipes-core/systemd/systemd_218.bb | 1251 > > ++++++++++++++++++++ 3 files changed, 1473 insertions(+) > > create mode 100644 > > meta/recipes-core/systemd/systemd/0001-add-support-for-executing-scripts-under-etc-systemd-218.patch > > create mode 100644 > > meta/recipes-core/systemd/systemd/systemd_218-pam-fix-fallocate.patch > > create mode 100644 meta/recipes-core/systemd/systemd_218.bb > > > > diff --git > > a/meta/recipes-core/systemd/systemd/0001-add-support-for-executing-scripts-under-etc-systemd-218.patch > > b/meta/recipes-core/systemd/systemd/0001-add-support-for-executing-scripts-under-etc-systemd-218.patch > > new file mode 100644 index 0000000..d50f2cb --- /dev/null > > +++ > > b/meta/recipes-core/systemd/systemd/0001-add-support-for-executing-scripts-under-etc-systemd-218.patch > > @@ -0,0 +1,131 @@ +From 0dec519c563654148d3cdd363d2598b50313de60 > > Mon Sep 17 00:00:00 2001 +From: Bruno Bottazzini > > +Date: Mon, 2 Feb 2015 13:53:24 -0200 > > +Subject: [PATCH 1/1] add support for executing scripts > > under /etc/rcS.d/ + > > +To be compatible, all services translated from scripts > > under /etc/rcS.d would +run before services translated from scripts > > under /etc/rcN.d. +--- > > + src/sysv-generator/sysv-generator.c | 46 > > ++++++++++++++++++++++++++++--------- > > + 1 file changed, 35 insertions(+), 11 deletions(-) > > + > > +diff --git a/src/sysv-generator/sysv-generator.c > > b/src/sysv-generator/sysv-generator.c +index b8b77aa..9494afb 100644 > > +--- a/src/sysv-generator/sysv-generator.c > > ++++ b/src/sysv-generator/sysv-generator.c > > +@@ -42,7 +42,8 @@ > > + > > + typedef enum RunlevelType { > > + RUNLEVEL_UP, > > +- RUNLEVEL_DOWN > > ++ RUNLEVEL_DOWN, > > ++ RUNLEVEL_SYSINIT > > + } RunlevelType; > > + > > + static const struct { > > +@@ -57,6 +58,9 @@ static const struct { > > + { "rc4.d", SPECIAL_RUNLEVEL4_TARGET, RUNLEVEL_UP }, > > + { "rc5.d", SPECIAL_RUNLEVEL5_TARGET, RUNLEVEL_UP }, > > + > > ++ /* Debian style rcS.d, also adopted by OE */ > > ++ { "rcS.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT}, > > ++ > > + /* Standard SysV runlevels for shutdown */ > > + { "rc0.d", SPECIAL_POWEROFF_TARGET, RUNLEVEL_DOWN }, > > + { "rc6.d", SPECIAL_REBOOT_TARGET, RUNLEVEL_DOWN } > > +@@ -65,7 +69,7 @@ static const struct { > > + directories in this order, and we want to make sure > > that > > + sysv_start_priority is known when we first load the > > + unit. And that value we only know from S links. Hence > > +- UP must be read before DOWN */ > > ++ UP/SYSINIT must be read before DOWN */ > > + }; > > + > > + typedef struct SysvStub { > > +@@ -81,6 +85,8 @@ typedef struct SysvStub { > > + char **conflicts; > > + bool has_lsb; > > + bool reload; > > ++ bool default_dependencies; > > ++ bool from_rcsd; > > + } SysvStub; > > + > > + const char *arg_dest = "/tmp"; > > +@@ -189,6 +195,8 @@ static int generate_unit_file(SysvStub *s) { > > + "Description=%s\n", > > + s->path, s->description); > > + > > ++ if (!s->default_dependencies) > > ++ fprintf(f, "DefaultDependencies=no\n"); > > + if (!isempty(before)) > > + fprintf(f, "Before=%s\n", before); > > + if (!isempty(after)) > > +@@ -717,15 +725,26 @@ static int fix_order(SysvStub *s, Hashmap > > *all_services) { > > + r = strv_extend(&s->after, other->name); > > + if (r < 0) > > + return log_oom(); > > +- } > > +- else if (other->sysv_start_priority > > > s->sysv_start_priority) { +- r = > > strv_extend(&s->before, other->name); ++ } else if > > (other->from_rcsd && !s->from_rcsd) { ++ r = > > strv_extend(&s->after, other->name); > > + if (r < 0) > > + return log_oom(); > > +- } > > +- else > > +- continue; > > +- > > ++ } else { > > ++ /* All scripts under /etc/rcS.d should execute before > > scripts under ++ * /etc/rcN.d */ > > ++ if (!other->from_rcsd && s->from_rcsd) { > > ++ r = strv_extend(&s->before, other->name); > > ++ if (r < 0) > > ++ return log_oom(); > > ++ } > > ++ else if (other->sysv_start_priority > > > s->sysv_start_priority) { ++ r = > > strv_extend(&s->before, other->name); > > ++ if (r < 0) > > ++ return log_oom(); > > ++ } ++ else > > ++ continue; > > ++ } > > + /* FIXME: Maybe we should compare the name here > > lexicographically? */ > > + } > > + > > +@@ -784,6 +803,8 @@ static int enumerate_sysv(LookupPaths lp, > > Hashmap *all_services) { > > + return log_oom(); > > + > > + service->sysv_start_priority = -1; > > ++ service->default_dependencies = true; > > ++ service->from_rcsd = false; > > + service->name = name; > > + service->path = fpath; > > + > > +@@ -869,9 +890,11 @@ static int > > set_dependencies_from_rcnd(LookupPaths lp, Hashmap *all_services) > > { + > > + if (de->d_name[0] == 'S') { > > + > > +- if (rcnd_table[i].type == > > RUNLEVEL_UP) { ++ if > > (rcnd_table[i].type == RUNLEVEL_UP || rcnd_table[i].type == > > RUNLEVEL_SYSINIT) { > > + > > service->sysv_start_priority = > > + MAX(a*10 > > + b, service->sysv_start_priority); > > ++ > > service->default_dependencies = (rcnd_table[i].type == > > RUNLEVEL_SYSINIT)?false:true; > > ++ > > service->from_rcsd = (rcnd_table[i].type == > > RUNLEVEL_SYSINIT)?true:false; > > + } > > + > > + r = > > set_ensure_allocated(&runlevel_services[i], NULL); +@@ -883,7 > > +906,8 @@ static int set_dependencies_from_rcnd(LookupPaths lp, > > Hashmap *all_services) { > > + goto finish; > > + > > + } else if (de->d_name[0] == 'K' && > > +- (rcnd_table[i].type == > > RUNLEVEL_DOWN)) { ++ > > (rcnd_table[i].type == RUNLEVEL_DOWN || > > ++ rcnd_table[i].type == > > RUNLEVEL_SYSINIT)) { + > > + r = > > set_ensure_allocated(&shutdown_services, NULL); > > + if (r < 0) > > +-- > > +1.9.1 > > + > > diff --git > > a/meta/recipes-core/systemd/systemd/systemd_218-pam-fix-fallocate.patch > > b/meta/recipes-core/systemd/systemd/systemd_218-pam-fix-fallocate.patch > > new file mode 100644 index 0000000..2fbf4b4 --- /dev/null > > +++ > > b/meta/recipes-core/systemd/systemd/systemd_218-pam-fix-fallocate.patch > > @@ -0,0 +1,91 @@ +From 84c87cf474f9ffd23332a40b7e06900ff8272a69 Mon > > Sep 17 00:00:00 2001 +From: Bruno Bottazzini > > +Date: Fri, 30 Jan 2015 18:14:42 -0200 > > +Subject: [PATCH 1/1] This patch is uclibc specific, thus not > > suitable for > > + upstream. > > + > > +--- > > + src/journal/journal-file.c | 15 ++++++++++++++- > > + src/journal/journald-kmsg.c | 16 ++++++++++++++-- > > + 2 files changed, 28 insertions(+), 3 deletions(-) > > + > > +diff --git a/src/journal/journal-file.c > > b/src/journal/journal-file.c +index ec12e89..3d21528 100644 > > +--- a/src/journal/journal-file.c > > ++++ b/src/journal/journal-file.c > > +@@ -35,6 +35,7 @@ > > + #include "lookup3.h" > > + #include "compress.h" > > + #include "fsprg.h" > > ++#include "config.h" > > + > > + #define DEFAULT_DATA_HASH_TABLE_SIZE (2047ULL*sizeof(HashItem)) > > + #define DEFAULT_FIELD_HASH_TABLE_SIZE (333ULL*sizeof(HashItem)) > > +@@ -354,7 +355,7 @@ static int journal_file_fstat(JournalFile *f) { > > + > > + static int journal_file_allocate(JournalFile *f, uint64_t offset, > > uint64_t size) { > > + uint64_t old_size, new_size; > > +- int r; > > ++ int r = 0; > > + > > + assert(f); > > + > > +@@ -418,9 +419,21 @@ static int journal_file_allocate(JournalFile > > *f, uint64_t offset, uint64_t size) > > + /* Note that the glibc fallocate() fallback is very > > + inefficient, hence we try to minimize the allocation > > area > > + as we can. */ > > ++#ifdef HAVE_POSIX_FALLOCATE > > + r = posix_fallocate(f->fd, old_size, new_size - old_size); > > + if (r != 0) > > + return -r; > > ++#else > > ++ /* Write something every 512 bytes to make sure the block > > is allocated */ ++ uint64_t len = new_size - old_size; > > ++ uint64_t offset = old_size; > > ++ for (offset += (len-1) % 512; len > 0; offset += 512) { > > ++ len -= 512; > > ++ if (pwrite(f->fd, "", 1, offset) != 1) > > ++ return -errno; > > ++ } > > ++ > > ++#endif /* HAVE_POSIX_FALLOCATE */ > > + > > + f->header->arena_size = htole64(new_size - > > le64toh(f->header->header_size)); + > > +diff --git a/src/journal/journald-kmsg.c > > b/src/journal/journald-kmsg.c +index aca4571..f3c2c19 100644 > > +--- a/src/journal/journald-kmsg.c > > ++++ b/src/journal/journald-kmsg.c > > +@@ -437,6 +437,7 @@ fail: > > + int server_open_kernel_seqnum(Server *s) { > > + _cleanup_close_ int fd; > > + uint64_t *p; > > ++ int r = 0; > > + > > + assert(s); > > + > > +@@ -449,8 +450,19 @@ int server_open_kernel_seqnum(Server *s) { > > + log_error_errno(errno, "Failed to > > open /run/systemd/journal/kernel-seqnum, ignoring: %m"); > > + return 0; > > + } > > +- > > +- if (posix_fallocate(fd, 0, sizeof(uint64_t)) < 0) { > > ++#ifdef HAVE_POSIX_FALLOCATE > > ++ r = posix_fallocate(fd, 0, sizeof(uint64_t)); > > ++#else > > ++ /* Use good old method to write zeros into the journal file > > ++ perhaps very inefficient yet working. */ > > ++ char *buf = alloca(sizeof(uint64_t)); > > ++ off_t oldpos = lseek(fd, 0, SEEK_CUR); > > ++ bzero(buf, sizeof(uint64_t)); > > ++ lseek(fd, 0, SEEK_SET); > > ++ r = write(fd, buf, sizeof(uint64_t)); > > ++ lseek(fd, oldpos, SEEK_SET); > > ++#endif /* HAVE_POSIX_FALLOCATE */ > > ++ if (r < 0) { > > + log_error_errno(errno, "Failed to allocate > > sequential number file, ignoring: %m"); > > + return 0; > > + } > > +-- > > +1.9.1 > > + > > diff --git a/meta/recipes-core/systemd/systemd_218.bb > > b/meta/recipes-core/systemd/systemd_218.bb new file mode 100644 > > index 0000000..9f9dbb0 > > --- /dev/null > > +++ b/meta/recipes-core/systemd/systemd_218.bb > > @@ -0,0 +1,1251 @@ > > +SUMMARY = "System and service manager for Linux, replacing > > SysVinit" +HOMEPAGE = > > "http://www.freedesktop.org/wiki/Software/systemd" + > > +LICENSE = "GPLv2 & LGPLv2.1 & MIT" > > +LIC_FILES_CHKSUM = > > "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ > > + > > file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c \ > > + > > file://LICENSE.MIT;md5=544799d0b492f119fa04641d1b8868ed" + > > +PE = "1" > > + > > +DEPENDS = "docbook-sgml-dtd-4.1-native intltool-native > > gperf-native libcap qemu-native curl glibc" +DEPENDS += > > "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" + > > +SECTION = "base/shell" > > + > > +inherit gtk-doc pkgconfig autotools perlnative update-rc.d > > update-alternatives qemu systemd ptest gettext + > > +SRCREV = "820aced6f6067a6b7c57b7d36e44f64378870cbf" > > + > > +PV = "218+git${SRCPV}" > > + > > +SRC_URI = > > "git://anongit.freedesktop.org/systemd/systemd;branch=master;protocol=git > > \ > > + file://systemd-pam-configure-check-uclibc.patch \ > > + file://systemd-pam-fix-execvpe.patch \ > > + file://systemd-pam-fix-mkostemp.patch \ > > + file://systemd_218-pam-fix-fallocate.patch \ > > + file://optional_secure_getenv.patch \ > > + file://uclibc-get-physmem.patch \ > > + > > file://0001-add-support-for-executing-scripts-under-etc-systemd-218.patch > > \ > > + file://0001-systemd-user-avoid-using-system-auth.patch \ > > + file://touchscreen.rules \ > > + file://00-create-volatile.conf \ > > + file://init \ > > + file://run-ptest \ > > + " > > + > > +S = "${WORKDIR}/git" > > + > > +SRC_URI_append_libc-uclibc = "\ > > + > > file://systemd-pam-fix-getty-unit.patch \ > > + " > > +LDFLAGS_append_libc-uclibc = " -lrt" > > + > > +GTKDOC_DOCDIR = "${S}/docs/" > > + > > +# regardless of PACKAGECONFIG, libgcrypt is always required to > > expand +# the AM_PATH_LIBGCRYPT autoconf macro > > +DEPENDS += "libgcrypt" > > + > > +PACKAGECONFIG ??= "acl blkid efi kmod gcrypt lz4 xz libidn" > > + > > +PACKAGECONFIG[glib] = "--enable-gudev,--disable-gudev,glib-2.0" > > + > > + > > +######################################################################## > > +# Highly Recommended Section > > +######################################################################## > > + > > +# ACL (Access Control List), see > > http://savannah.nongnu.org/projects/acl +# used by systemd, > > journald and logind to provide fine grained access to files. +# > > NOTE: do not remove unless you know what you are doing. > > +PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl" + > > +# blkid from util-linux to read block devices, see > > ftp://ftp.kernel.org/pub/linux/utils/util-linux +# required to: > > +# - discover and mount GPT partitions as /, /home and /srv based > > on GUIDs. +# - nspawn to locate partitions > > +# - udev to probe and use block devices > > +# NOTE: do not remove unless you know what you are doing. > > +PACKAGECONFIG[blkid] = "--enable-blkid,--disable-blkid,util-linux" > > + > > +# EFI support in systemd and udev, includes discovery and mount of > > partitions and efivars. +# NOTE: do not remove unless you know what > > you are doing. +PACKAGECONFIG[efi] = "--enable-efi,--disable-efi" > > + > > +# kmod to load kernel modules, provides modprobe, insmod et al, > > see https://www.kernel.org/pub/linux/utils/kernel/kmod/ +# required > > to: +# - let systemd load required modules automatically (ipv6, > > unix, kdbus...) +# - let udev load modules for devices (hotplug > > and coldplug) using a built-in +# NOTE: do not remove unless you > > know what you are doing. +PACKAGECONFIG[kmod] = > > "--enable-kmod,--disable-kmod,kmod" + > > +# D-Bus policy and authentication framework, see > > http://www.freedesktop.org/wiki/Software/polkit/ +# WARN: no > > package "polkit" in poky +PACKAGECONFIG[polkit] = > > "--enable-polkit,--disable-polkit,,polkit" + > > + > > +######################################################################## > > +# Security Section > > +######################################################################## > > + > > +# SELinux (Security Enhanced Linux), see > > http://selinuxproject.org/page/Main_Page +# WARN: no package > > "libselinux" in poky +PACKAGECONFIG[selinux] = > > "--enable-selinux,--disable-selinux,libselinux" + > > +# See http://people.redhat.com/sgrubb/audit/ > > +# WARN: no package "libaudit" in poky > > +PACKAGECONFIG[audit] = "--enable-audit,--disable-audit,libaudit" > > + > > +# SMACK (Simplified Mandatory Access Control Kernel), see > > http://schaufler-ca.com/ +# needs Kernel CONFIG_SECURITY_SMACK > > and /etc/smack/accesses.d/ to be useful, otherwise is unused. > > +PACKAGECONFIG[smack] = "--enable-smack,--disable-smack" + > > +# IMA (Integrity Measurement Architecture) setup, see > > http://linux-ima.sourceforge.net/ +# needs Kernel CONFIG_IMA > > and /etc/ima/ima-policy to be useful, otherwise is unused. > > +PACKAGECONFIG[ima] = "--enable-ima,--disable-ima" + > > +# AppArmor, proactively protects the operating system and > > applications +# from external or internal threats, even zero-day > > attacks, by +# enforcing good behavior and preventing even unknown > > application flaws +# from being exploited. See > > http://wiki.apparmor.net/index.php/Main_Page +# needs Kernel > > CONFIG_SECURITY_APPARMOR to be useful, otherwise is unused. +# > > WARN: no package "libapparmor" in poky +PACKAGECONFIG[apparmor] = > > "--enable-apparmor,--disable-apparmor,libapparmor" + > > +# SECCOMP provides syscall filtering and sandboxing, see > > http://sourceforge.net/projects/libseccomp/ +# It is used by > > browsers to implement their plugins. +# systemd will allow > > restricting the syscalls available to an application with a line > > like below +# in [Service] block: +# SystemCallFilter=brk mmap > > access open fstat close read fstat mprotect arch_prctl munmap write > > +# needs Kernel CONFIG_SECCOMP, CONFIG_SECCOMP_FILTER and > > CONFIG_HAVE_ARCH_SECCOMP_FILTER to be useful. +# WARN: no package > > "libseccomp" in poky +PACKAGECONFIG[seccomp] = > > "--enable-seccomp,--disable-seccomp,libseccomp" + + > > +######################################################################## > > +# Journal Section > > +######################################################################## > > + > > +# extract ELF symbols and store the stack trace along the coredump > > +PACKAGECONFIG[elfutils] = > > "--enable-elfutils,--disable-elfutils,elfutils (>= 0.158)" + > > +# Sign the journal for anti-tampering > > +PACKAGECONFIG[gcrypt] = > > "--enable-gcrypt,--disable-gcrypt,libgcrypt" + > > +# Compress the journal (and coredumps stored in the journal) using > > lz4 +PACKAGECONFIG[lz4] = "--enable-lz4,--disable-lz4,lz4" > > + > > +# Compress the journal (and coredumps stored in the journal) using > > xz (lzma) +# xz has lower priority than lz4 for compression, but > > having both may help to extract and decompress +# journal entries > > generated in other systems. +PACKAGECONFIG[xz] = > > "--enable-xz,--disable-xz,xz" + > > +# when generating gcrypt verification keys (journalctl > > --setup-keys), output the secret +# as QR code so it can be easily > > scanned by a phone or systems with digital camera and QR scanner. > > +# WARN: no package "libqrencode" in poky +PACKAGECONFIG[qrencode] > > = "--enable-qrencode,--disable-qrencode,libqrencode" + > > + > > +######################################################################## > > +# Resolve Daemon Section > > +######################################################################## > > + > > +# IDN (Internationalized Domain Name) see > > http://www.gnu.org/software/libidn/ +PACKAGECONFIG[libidn] = > > "--enable-libidn,--disable-libidn,libidn" + > > +CACHED_CONFIGUREVARS = "ac_cv_path_KILL=${base_bindir}/kill" > > + > > +# Helper variables to clarify locations. This mirrors the logic > > in systemd's +# build system. > > +rootprefix ?= "${base_prefix}" > > +rootlibdir ?= "${base_libdir}" > > +rootlibexecdir = "${rootprefix}/lib" > > + > > +EXTRA_OECONF = " --with-rootprefix=${rootprefix} \ > > + --with-rootlibdir=${rootlibdir} \ > > + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', > > '--enable-pam', '--disable-pam', d)} \ > > + --disable-manpages \ > > + --disable-introspection \ > > + --disable-kdbus \ > > + --disable-terminal \ > > + --enable-split-usr \ > > + --without-python \ > > + --enable-libcurl \ > > + --enable-coredump \ > > + --enable-ldconfig \ > > + --enable-backlight \ > > + --enable-binfmt \ > > + --enable-bootchart \ > > + --enable-firstboot \ > > + --enable-hostnamed \ > > + --enable-localed \ > > + --enable-logind \ > > + --enable-machined \ > > + --enable-networkd \ > > + --enable-quotacheck \ > > + --enable-randomseed \ > > + --enable-resolved \ > > + --enable-rfkill \ > > + --enable-sysusers \ > > + --enable-vconsole \ > > + --with-sysvrcnd-path=${sysconfdir} \ > > + ac_cv_path_KILL=${base_bindir}/kill \ > > + " > > + > > +# uclibc does not have NSS > > +EXTRA_OECONF_append_libc-uclibc = " --disable-myhostname " > > + > > +do_configure_prepend() { > > + export CPP="${HOST_PREFIX}cpp ${TOOLCHAIN_OPTIONS} > > ${HOST_CC_ARCH}" > > + export NM="${HOST_PREFIX}gcc-nm" > > + export AR="${HOST_PREFIX}gcc-ar" > > + export RANLIB="${HOST_PREFIX}gcc-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:=/root:=${ROOT_HOME}:g' ${S}/units/*.service* > > + sed -i '/ln --relative --help/d' ${S}/configure.ac > > + sed -i -e 's:\$(LN_S) --relative -f:lnr:g' ${S}/Makefile.am > > + sed -i -e 's:\$(LN_S) --relative:lnr:g' ${S}/Makefile.am > > +} > > + > > +do_install() { > > + autotools_do_install > > + install -d ${D}/${base_sbindir} > > + > > + # Provide support for initramfs > > + [ ! -e ${D}/init ] && ln -s > > ${rootlibexecdir}/systemd/systemd ${D}/init > > + [ ! -e ${D}/${base_sbindir}/udevd ] && ln -s > > ${rootlibexecdir}/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 -m 0644 ${WORKDIR}/*.rules > > ${D}${rootlibexecdir}/udev/rules.d/ + > > + install -m 0644 ${WORKDIR}/00-create-volatile.conf > > ${D}${exec_prefix}/lib/tmpfiles.d/ + > > + if > > ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; > > then > > + install -d ${D}${sysconfdir}/init.d > > + install -m 0755 ${WORKDIR}/init > > ${D}${sysconfdir}/init.d/systemd-udevd > > + sed -i > > s%@UDEVD@%${rootlibexecdir}/systemd/systemd-udevd% > > ${D}${sysconfdir}/init.d/systemd-udevd > > + fi > > + > > + # Move libgudev back to ${rootlibdir} to keep backward > > compatibility > > + if > > ${@bb.utils.contains('PACKAGECONFIG','glib','true','false',d)}; then > > + if [ ${rootlibdir} != ${exec_prefix}/lib ]; then > > + mv -t ${D}${rootlibdir} > > ${D}${exec_prefix}/lib/libgudev* > > + fi > > + fi > > + > > + # Delete journal README, as log can be symlinked inside > > volatile. > > + rm -f ${D}/${localstatedir}/log/README > > +} > > + > > +do_install_ptest () { > > + install -d ${D}${PTEST_PATH}/test > > + cp -rf ${S}/test/* ${D}${PTEST_PATH}/test > > + install -m 0755 ${B}/test-udev ${D}${PTEST_PATH}/ > > + install -d ${D}${PTEST_PATH}/build-aux > > + cp ${S}/build-aux/test-driver ${D}${PTEST_PATH}/build-aux/ > > + cp -rf ${B}/rules ${D}${PTEST_PATH}/ > > + # This directory needs to be there for udev-test.pl to work. > > + install -d ${D}${libdir}/udev/rules.d > > + cp ${B}/Makefile ${D}${PTEST_PATH}/ > > + cp ${S}/test/sys.tar.xz ${D}${PTEST_PATH}/test > > + sed -i 's/"tree"/"ls"/' ${D}${PTEST_PATH}/test/udev-test.pl > > + sed -i 's#${S}#${PTEST_PATH}#g' ${D}${PTEST_PATH}/Makefile > > + sed -i 's#${B}#${PTEST_PATH}#g' ${D}${PTEST_PATH}/Makefile > > +} > > + > > +python populate_packages_prepend (){ > > + systemdlibdir = d.getVar("rootlibdir", True) > > + do_split_packages(d, systemdlibdir, > > '^lib(udev|gudev|systemd|nss)\.so\.*', 'lib%s', 'Systemd %s > > library', extra_depends='', allow_links=True) +} +PACKAGES_DYNAMIC > > += "^lib(udev|gudev|systemd|nss).*" + > > +######################################################################## > > +# Base Packages > > +######################################################################## > > + > > +PACKAGES =+ "${PN}-generators-filesystems" > > +SUMMARY_${PN}-generators-filesystems = "systemd's generator for > > filesystem services based on fstab and GPT" > > +RDEPENDS_${PN}-generators-filesystems = "${PN}-services-fsck" > > +FILES_${PN}-generators-filesystems = "\ > > + > > ${rootlibexecdir}/systemd/system-generators/systemd-fstab-generator > > \ > > + > > ${rootlibexecdir}/systemd/system-generators/systemd-gpt-auto-generator > > \ > > + ${rootlibexecdir}/systemd/systemd-remount-fs \ > > + > > ${systemd_unitdir}/system/local-fs.target.wants/systemd-remount-fs.service > > \ > > + ${systemd_unitdir}/system/systemd-remount-fs.service \ > > +" > > + > > +PACKAGES =+ "${PN}-generators-getty" > > +SUMMARY_${PN}-generators-getty = "systemd's generator TTY services" > > +RDEPENDS_${PN}-generators-getty = "${PN}-services-getty" > > +FILES_${PN}-generators-getty = "\ > > + > > ${rootlibexecdir}/systemd/system-generators/systemd-getty-generator > > \ +" + > > +PACKAGES =+ "${PN}-tools" > > +SUMMARY_${PN}-tools = "systemd command line tools (cgls, delta, > > run, analyze...)" +RRECOMMENDS_${PN}-tools = "${PN}-services-base" > > +FILES_${PN}-tools = "\ > > + ${base_bindir}/systemd-machine-id-setup \ > > + ${bindir}/busctl \ > > + ${bindir}/coredumpctl \ > > + ${bindir}/systemd-analyze \ > > + ${bindir}/systemd-cat \ > > + ${bindir}/systemd-cgls \ > > + ${bindir}/systemd-cgtop \ > > + ${bindir}/systemd-delta \ > > + ${bindir}/systemd-detect-virt \ > > + ${bindir}/systemd-path \ > > + ${bindir}/systemd-run \ > > + ${rootlibexecdir}/systemd/systemd-ac-power \ > > + ${rootlibexecdir}/systemd/systemd-activate \ > > + ${rootlibexecdir}/systemd/systemd-reply-password \ > > + ${rootprefix}/bin/systemd-escape \ > > + ${rootprefix}/bin/systemd-notify \ > > +" > > + > > +######################################################################## > > +# Services Packages > > +######################################################################## > > + > > +PACKAGES =+ "${PN}-services-ask-password" > > +SUMMARY_${PN}-services-ask-password = "systemd's service and tool > > to query the user for a system password" > > +RRECOMMENDS_${PN}-services-ask-password = "${PN}-services-base" > > +FILES_${PN}-services-ask-password = "\ > > + ${rootprefix}/bin/systemd-ask-password \ > > + ${rootprefix}/bin/systemd-tty-ask-password-agent \ > > + > > ${systemd_unitdir}/system/multi-user.target.wants/systemd-ask-password-wall.path > > \ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/systemd-ask-password-console.path > > \ > > + > > ${systemd_unitdir}/system/systemd-ask-password-console.path \ > > + > > ${systemd_unitdir}/system/systemd-ask-password-console.service \ > > + ${systemd_unitdir}/system/systemd-ask-password-wall.path \ > > + > > ${systemd_unitdir}/system/systemd-ask-password-wall.service \ +" > > + > > +PACKAGES =+ "${PN}-services-backlight" > > +SUMMARY_${PN}-services-backlight = "systemd's backlight state > > save/restore service" +FILES_${PN}-services-backlight = "\ > > + ${systemd_unitdir}/system/systemd-backlight@.service \ > > + ${rootlibexecdir}/systemd/systemd-backlight \ > > +" > > + > > +PACKAGES =+ "${PN}-services-binfmt" > > +SUMMARY_${PN}-services-binfmt = "systemd's service to configure > > additional binary formats for executables" > > +RRECOMMENDS_${PN}-services-binfmt = "kernel-module-binfmt-misc" > > +FILES_${PN}-services-binfmt = "\ > > + ${sysconfdir}/binfmt.d/ \ > > + ${exec_prefix}/lib/binfmt.d/ \ > > + > > ${systemd_unitdir}/system/proc-sys-fs-binfmt_misc.automount \ > > + ${systemd_unitdir}/system/proc-sys-fs-binfmt_misc.mount \ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/proc-sys-fs-binfmt_misc.automount > > \ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/systemd-binfmt.service > > \ > > + ${systemd_unitdir}/system/systemd-binfmt.service \ > > + ${rootlibexecdir}/systemd/systemd-binfmt \ > > +" > > + > > +PACKAGES =+ "${PN}-services-bootchart" > > +SUMMARY_${PN}-services-bootchart = "systemd's boot performance > > service and graphing tool" +CONFFILES_${PN}-services-bootchart = > > "${sysconfdir}/systemd/bootchart.conf" > > +FILES_${PN}-services-bootchart = "\ > > + ${sysconfdir}/systemd/bootchart.conf \ > > + ${rootlibexecdir}/systemd/systemd-bootchart \ > > +" > > + > > +PACKAGES =+ "${PN}-services-coredump" > > +SUMMARY_${PN}-services-coredump = "systemd's coredump log hook and > > service" +RDEPENDS_${PN}-services-coredump = "${PN}-services-sysctl" > > +CONFFILES_${PN}-services-coredump = > > "${sysconfdir}/systemd/coredump.conf" > > +FILES_${PN}-services-coredump = "\ > > + ${exec_prefix}/lib/sysctl.d/50-coredump.conf \ > > + ${sysconfdir}/systemd/coredump.conf \ > > + ${rootlibexecdir}/systemd/systemd-coredump \ > > +" > > + > > +PACKAGES =+ "${PN}-services-cryptsetup" > > +SUMMARY_${PN}-services-cryptsetup = "systemd's disk decryption > > service" +ALLOW_EMPTY_${PN}-services-cryptsetup = "1" > > +FILES_${PN}-services-cryptsetup = "\ > > + > > ${rootlibexecdir}/systemd/system-generators/systemd-cryptsetup-generator > > \ > > + ${systemd_unitdir}/system/cryptsetup-pre.target \ > > + ${systemd_unitdir}/system/cryptsetup.target \ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/cryptsetup.target \ > > + ${rootlibexecdir}/systemd/systemd-cryptsetup \ > > +" > > + > > +PACKAGES =+ "${PN}-services-dbus" > > +SUMMARY_${PN}-services-dbus = "systemd's DBus daemon system > > service" +# NOTE: dbus dependency will go away when kdbus is in use > > +RDEPENDS_${PN}-services-dbus = "dbus" > > +FILES_${PN}-services-dbus = "\ > > + > > ${datadir}/dbus-1/services/org.freedesktop.systemd1.service \ > > + > > ${datadir}/dbus-1/system-services/org.freedesktop.systemd1.service \ > > + > > ${datadir}/dbus-1/system-services/org.freedesktop.import1.service \ > > + > > ${sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf \ > > + ${sysconfdir}/dbus-1/system.d/org.freedesktop.import1.conf > > \ > > + ${systemd_unitdir}/system/sockets.target.wants/dbus.socket > > \ > > + ${systemd_unitdir}/system/dbus.target.wants/dbus.socket \ > > + > > ${systemd_unitdir}/system/multi-user.target.wants/dbus.service \ > > + ${systemd_unitdir}/system/dbus.socket \ > > + ${systemd_unitdir}/system/dbus.service \ > > +" > > + > > +PACKAGES =+ "${PN}-services-debug" > > +SUMMARY_${PN}-services-debug = "systemd's debug service" > > +RRECOMMENDS_${PN}-services-debug = "${PN}-services-base > > ${PN}-tools" +FILES_${PN}-services-debug = "\ > > + > > ${rootlibexecdir}/systemd/system-generators/systemd-debug-generator > > \ > > + ${systemd_unitdir}/system/debug-shell.service \ > > + ${systemd_unitdir}/system/sys-kernel-config.mount \ > > + ${systemd_unitdir}/system/sys-kernel-debug.mount \ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/sys-kernel-config.mount > > \ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/sys-kernel-debug.mount > > \ +" + > > +PACKAGES =+ "${PN}-services-firstboot" > > +SUMMARY_${PN}-services-firstboot = "systemd's service to > > initialize basic system settings" +FILES_${PN}-services-firstboot = > > "\ > > + ${base_bindir}/systemd-firstboot \ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/systemd-firstboot.service > > \ > > + ${systemd_unitdir}/system/systemd-firstboot.service \ > > +" > > + > > +PACKAGES =+ "${PN}-services-fsck" > > +SUMMARY_${PN}-services-fsck = "systemd's filesystem check service" > > +RRECOMMENDS_${PN}-services-fsck = "util-linux-fsck > > e2fsprogs-e2fsck" +FILES_${PN}-services-fsck = "\ > > + ${systemd_unitdir}/system/systemd-fsck-root.service \ > > + ${systemd_unitdir}/system/systemd-fsck@.service \ > > + ${rootlibexecdir}/systemd/systemd-fsck \ > > +" > > + > > +PACKAGES =+ "${PN}-services-fuse" > > +SUMMARY_${PN}-services-fuse = "systemd's FUSE (filesystem in > > userspace) service" +FILES_${PN}-services-fuse = "\ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/sys-fs-fuse-connections.mount > > \ > > + ${systemd_unitdir}/system/sys-fs-fuse-connections.mount \ > > +" > > + > > +PACKAGES =+ "${PN}-services-getty" > > +SUMMARY_${PN}-services-getty = "systemd's getty service" > > +RRECOMMENDS_${PN}-services-getty = "util-linux-agetty > > ${PN}-generators-getty" +FILES_${PN}-services-getty = "\ > > + ${systemd_unitdir}/system/autovt@.service \ > > + ${systemd_unitdir}/system/console-getty.service \ > > + ${systemd_unitdir}/system/container-getty@.service \ > > + ${systemd_unitdir}/system/getty@.service \ > > + ${systemd_unitdir}/system/serial-getty@.service \ > > + ${sysconfdir}/systemd/system/getty.target.wants/ \ > > +" > > + > > +PACKAGES =+ "${PN}-services-hostnamed" > > +SUMMARY_${PN}-services-hostnamed = "systemd's hostname management > > service" +RDEPENDS_${PN}-services-hostnamed = "${PN}-services-dbus" > > +CONFFILES_${PN}-services-hostnamed = > > "${sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf" > > +FILES_${PN}-services-hostnamed = "\ > > + > > ${sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf \ > > + ${bindir}/hostnamectl \ > > + > > ${systemd_unitdir}/system/busnames.target.wants/org.freedesktop.hostname1.busname > > \ > > + > > ${systemd_unitdir}/system/dbus-org.freedesktop.hostname1.service \ > > + > > ${systemd_unitdir}/system/org.freedesktop.hostname1.busname \ > > + ${systemd_unitdir}/system/systemd-hostnamed.service \ > > + ${rootlibexecdir}/systemd/systemd-hostnamed \ > > + > > ${datadir}/dbus-1/system-services/org.freedesktop.hostname1.service > > \ > > + > > ${datadir}/polkit-1/actions/org.freedesktop.hostname1.policy \ +" > > + > > +PACKAGES =+ "${PN}-services-journal" > > +SUMMARY_${PN}-services-journal = "systemd's journal (logging) > > service" +CONFFILES_${PN}-services-journal = > > "${sysconfdir}/systemd/journald.conf" +FILES_${PN}-services-journal > > = "\ > > + ${base_bindir}/journalctl \ > > + ${rootlibexecdir}/systemd/systemd-journald \ > > + ${sysconfdir}/systemd/journald.conf \ > > + > > ${systemd_unitdir}/system/sockets.target.wants/systemd-journald-dev-log.socket > > \ > > + > > ${systemd_unitdir}/system/sockets.target.wants/systemd-journald.socket > > \ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/systemd-journal-catalog-update.service > > \ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/systemd-journal-flush.service > > \ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/systemd-journald.service > > \ > > + > > ${systemd_unitdir}/system/systemd-journal-catalog-update.service \ > > + ${systemd_unitdir}/system/systemd-journal-flush.service \ > > + ${systemd_unitdir}/system/systemd-journald-dev-log.socket \ > > + ${systemd_unitdir}/system/systemd-journald.service \ > > + ${systemd_unitdir}/system/systemd-journald.socket \ > > + ${exec_prefix}/lib/systemd/catalog/ \ > > +" > > + > > + > > +PACKAGES =+ "${PN}-services-journal-remote" > > +SUMMARY_${PN}-services-journal-remote = "systemd's service and > > tools to receive journal messages over the network" > > +RDEPENDS_${PN}-services-journal-remote = "${PN}-services-journal" > > +# NOTE: if no sysusers or tmpfiles, then users/groups and FS > > structure must be setup +RRECOMMENDS_${PN}-services-journal-remote > > = "${PN}-services-sysusers ${PN}-services-tmpfiles" > > +CONFFILES_${PN}-services-journal-remote = > > "${sysconfdir}/systemd/journald-remote.conf" > > +FILES_${PN}-services-journal-remote = "\ > > + ${exec_prefix}/lib/sysusers.d/systemd-remote.conf \ > > + ${exec_prefix}/lib/tmpfiles.d/systemd-remote.conf \ > > + ${rootlibexecdir}/systemd/systemd-journal-remote \ > > + ${sysconfdir}/systemd/journal-remote.conf \ > > +" > > + > > +PACKAGES =+ "${PN}-services-journal-upload" > > +SUMMARY_${PN}-services-journal-upload = "systemd's service and > > tools to send journal messages over the network" > > +RDEPENDS_${PN}-services-journal-upload = "${PN}-services-journal" > > +# NOTE: if no sysusers, then users/groups must be setup > > +RRECOMMENDS_${PN}-services-journal-upload = > > "${PN}-services-sysusers" +CONFFILES_${PN}-services-journal-upload > > = "${sysconfdir}/systemd/journald-upload.conf" > > +FILES_${PN}-services-journal-upload = "\ > > + ${rootlibexecdir}/systemd/systemd-journal-upload \ > > + ${sysconfdir}/systemd/journal-upload.conf \ > > + ${systemd_unitdir}/system/systemd-journal-upload.service \ > > +" > > + > > +PACKAGES =+ "${PN}-services-ldconfig" > > +SUMMARY_${PN}-services-ldconfig = "systemd's service to run > > ldconfig after updates" +FILES_${PN}-services-ldconfig = "\ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/ldconfig.service \ > > + ${systemd_unitdir}/system/ldconfig.service \ > > +" > > + > > +PACKAGES =+ "${PN}-services-localed" > > +SUMMARY_${PN}-services-localed = "systemd's locale management > > service" +RDEPENDS_${PN}-services-localed = "${PN}-services-dbus" > > +CONFFILES_${PN}-services-localed = > > "${sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf" > > +FILES_${PN}-services-localed = "\ > > + ${sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf > > \ > > + ${bindir}/localectl \ > > + > > ${systemd_unitdir}/system/busnames.target.wants/org.freedesktop.locale1.busname > > \ > > + > > ${systemd_unitdir}/system/dbus-org.freedesktop.locale1.service \ > > + ${systemd_unitdir}/system/org.freedesktop.locale1.busname \ > > + ${systemd_unitdir}/system/systemd-localed.service \ > > + ${rootlibexecdir}/systemd/systemd-localed \ > > + > > ${datadir}/dbus-1/system-services/org.freedesktop.locale1.service \ > > + ${datadir}/polkit-1/actions/org.freedesktop.locale1.policy > > \ > > + ${datadir}/systemd/kbd-model-map \ > > +" > > + > > +PACKAGES =+ "${PN}-services-logind" > > +SUMMARY_${PN}-services-logind = "systemd's login management > > service" +RDEPENDS_${PN}-services-logind = "${PN}-services-dbus > > ${PN}-services-tmpfiles" +RRECOMMENDS_${PN}-services-logind = "udev" > > +CONFFILES_${PN}-services-logind = "\ > > + ${sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf \ > > + ${sysconfdir}/systemd/logind.conf \ > > +" > > +FILES_${PN}-services-logind = "\ > > + ${sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf \ > > + ${sysconfdir}/systemd/logind.conf \ > > + ${base_bindir}/loginctl \ > > + ${base_bindir}/systemd-inhibit \ > > + > > ${systemd_unitdir}/system/busnames.target.wants/org.freedesktop.login1.busname > > \ > > + > > ${systemd_unitdir}/system/dbus-org.freedesktop.login1.service \ > > + > > ${systemd_unitdir}/system/multi-user.target.wants/systemd-logind.service > > \ > > + > > ${systemd_unitdir}/system/multi-user.target.wants/systemd-user-sessions.service > > \ > > + ${systemd_unitdir}/system/org.freedesktop.login1.busname \ > > + ${systemd_unitdir}/system/systemd-logind.service \ > > + ${systemd_unitdir}/system/systemd-user-sessions.service \ > > + ${systemd_unitdir}/system/user@.service \ > > + ${rootlibexecdir}/systemd/systemd-logind \ > > + ${rootlibexecdir}/systemd/systemd-user-sessions \ > > + > > ${datadir}/dbus-1/system-services/org.freedesktop.login1.service \ > > + ${datadir}/polkit-1/actions/org.freedesktop.login1.policy \ > > + ${rootlibexecdir}/udev/rules.d/70-uaccess.rules \ > > + ${rootlibexecdir}/udev/rules.d/70-power-switch.rules \ > > + ${rootlibexecdir}/udev/rules.d/71-seat.rules \ > > + ${rootlibexecdir}/udev/rules.d/73-seat-late.rules \ > > +" > > + > > +PACKAGES =+ "${PN}-services-machined" > > +SUMMARY_${PN}-services-machined = "systemd's virtual machine and > > container management service" +RDEPENDS_${PN}-services-machined = > > "${PN}-services-dbus" +CONFFILES_${PN}-services-machined = > > "${sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf" > > +FILES_${PN}-services-machined = "\ > > + > > ${sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf \ > > + ${base_bindir}/machinectl \ > > + ${exec_prefix}/lib/libnss_mymachines.so.2 \ > > + > > ${systemd_unitdir}/system/busnames.target.wants/org.freedesktop.machine1.busname > > \ > > + > > ${systemd_unitdir}/system/dbus-org.freedesktop.machine1.service \ > > + ${systemd_unitdir}/system/machine.slice \ > > + ${systemd_unitdir}/system/org.freedesktop.machine1.busname > > \ > > + ${systemd_unitdir}/system/systemd-machined.service \ > > + ${rootlibexecdir}/systemd/systemd-machined \ > > + > > ${datadir}/dbus-1/system-services/org.freedesktop.machine1.service > > \ +" + > > +PACKAGES =+ "${PN}-services-modules-load" > > +SUMMARY_${PN}-services-modules-load = "systemd's kernel module > > loading service" +FILES_${PN}-services-modules-load = "\ > > + ${sysconfdir}/modules-load.d/ \ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/systemd-modules-load.service > > \ > > + ${systemd_unitdir}/system/systemd-modules-load.service \ > > + ${rootlibexecdir}/systemd/systemd-modules-load \ > > + ${exec_prefix}/lib/modules-load.d \ > > +" > > + > > +PACKAGES =+ "${PN}-services-modules-static-nodes" > > +SUMMARY_${PN}-services-modules-static-nodes = "systemd's kernel > > module static nodes creation service" > > +RDEPENDS_${PN}-services-modules-static-nodes = "kmod > > ${PN}-services-tmpfiles" +FILES_${PN}-services-modules-static-nodes > > = "\ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/kmod-static-nodes.service > > \ > > + ${systemd_unitdir}/system/kmod-static-nodes.service \ > > +" > > + > > + > > +PACKAGES =+ "${PN}-services-multi-seat-x" > > +SUMMARY_${PN}-services-multi-seat-x = "systemd's X11 multi-seat > > support service" +RDEPENDS_${PN}-services-multi-seat-x = > > "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/xserver', > > '', d)}" +FILES_${PN}-services-multi-seat-x = "\ > > + ${rootlibexecdir}/systemd/systemd-multi-seat-x \ > > +" > > + > > +PACKAGES =+ "${PN}-services-networkd" > > +SUMMARY_${PN}-services-networkd = "systemd's network management > > (static, DHCP, bridge...) service" +# NOTE: if no sysusers, then > > users/groups must be setup +RRECOMMENDS_${PN}-services-networkd = > > "${PN}-services-sysusers" +FILES_${PN}-services-networkd = "\ > > + ${sysconfdir}/systemd/network/ \ > > + > > ${sysconfdir}/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service > > \ > > + > > ${sysconfdir}/systemd/system/multi-user.target.wants/systemd-networkd.service > > \ > > + ${base_bindir}/networkctl \ > > + > > ${rootlibexecdir}/systemd/network/80-container-host0.network \ > > + ${rootlibexecdir}/systemd/network/80-container-ve.network \ > > + ${rootlibexecdir}/systemd/network/99-default.link \ > > + > > ${systemd_unitdir}/system/systemd-networkd-wait-online.service \ > > + ${systemd_unitdir}/system/systemd-networkd.service \ > > + ${rootlibexecdir}/systemd/systemd-networkd \ > > + ${rootlibexecdir}/systemd/systemd-networkd-wait-online \ > > + ${exec_prefix}/lib/systemd/network \ > > +" > > + > > +PACKAGES =+ "${PN}-services-nspawn" > > +SUMMARY_${PN}-services-nspawn = "systemd's namespace spawing > > service and tool" +FILES_${PN}-services-nspawn = "\ > > + ${systemd_unitdir}/system/systemd-nspawn@.service \ > > + ${bindir}/systemd-nspawn \ > > +" > > + > > +PACKAGES =+ "${PN}-services-quota" > > +SUMMARY_${PN}-services-quota = "systemd's file system quota enable > > and check service" +RDEPENDS_${PN}-services-quota = "quota" > > +FILES_${PN}-services-quota = "\ > > + ${systemd_unitdir}/system/quotaon.service \ > > + ${systemd_unitdir}/system/systemd-quotacheck.service \ > > + ${rootlibexecdir}/systemd/systemd-quotacheck \ > > +" > > + > > +PACKAGES =+ "${PN}-services-randomseed" > > +SUMMARY_${PN}-services-randomseed = "systemd's random seed > > save/restore service" +FILES_${PN}-services-randomseed = "\ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/systemd-random-seed.service > > \ > > + ${systemd_unitdir}/system/systemd-random-seed.service \ > > + ${rootlibexecdir}/systemd/systemd-random-seed \ > > +" > > + > > +PACKAGES =+ "${PN}-services-readahead" > > +SUMMARY_${PN}-services-readahead = "systemd's disk read ahead > > service" +FILES_${PN}-services-readahead = "\ > > + > > ${systemd_unitdir}/system/systemd-readahead-collect.service \ > > + ${systemd_unitdir}/system/systemd-readahead-done.service \ > > + ${systemd_unitdir}/system/systemd-readahead-done.timer \ > > + ${systemd_unitdir}/system/systemd-readahead-drop.service \ > > + ${systemd_unitdir}/system/systemd-readahead-replay.service > > \ > > + ${rootlibexecdir}/systemd/systemd-readahead \ > > +" > > + > > +PACKAGES =+ "${PN}-services-resolved" > > +SUMMARY_${PN}-services-resolved = "systemd's network name > > resolution management service" +# NOTE: if no sysusers or tmpfiles, > > then users/groups and FS structure must be setup > > +RRECOMMENDS_${PN}-services-resolved = "${PN}-services-dbus > > ${PN}-services-sysusers ${PN}-services-tmpfiles" > > +CONFFILES_${PN}-services-resolved = "\ > > + > > ${sysconfdir}/dbus-1/system.d/org.freedesktop.resolve1.conf \ > > + ${sysconfdir}/systemd/resolved.conf \ > > +" > > +FILES_${PN}-services-resolved = "\ > > + > > ${sysconfdir}/dbus-1/system.d/org.freedesktop.resolve1.conf \ > > + ${sysconfdir}/systemd/resolved.conf \ > > + > > ${sysconfdir}/systemd/system/multi-user.target.wants/systemd-resolved.service > > \ > > + ${exec_prefix}/lib/libnss_resolve.so.2 \ > > + > > ${systemd_unitdir}/system/busnames.target.wants/org.freedesktop.resolve1.busname > > \ > > + > > ${systemd_unitdir}/system/dbus-org.freedesktop.resolve1.service \ > > + ${systemd_unitdir}/system/org.freedesktop.resolve1.busname > > \ > > + ${systemd_unitdir}/system/systemd-resolved.service \ > > + ${rootlibexecdir}/systemd/systemd-resolve-host \ > > + ${rootlibexecdir}/systemd/systemd-resolved \ > > + > > ${datadir}/dbus-1/system-services/org.freedesktop.resolve1.service > > \ +" + > > +PACKAGES =+ "${PN}-services-rfkill" > > +SUMMARY_${PN}-services-rfkill = "systemd's rfkill state > > save/restore service" +FILES_${PN}-services-rfkill = "\ > > + ${systemd_unitdir}/system/systemd-rfkill@.service \ > > + ${rootlibexecdir}/systemd/systemd-rfkill \ > > +" > > + > > +PACKAGES =+ "${PN}-services-sleep" > > +SUMMARY_${PN}-services-sleep = "systemd's sleep, suspend and > > hiberate services" +FILES_${PN}-services-sleep = "\ > > + ${systemd_unitdir}/system/systemd-hybrid-sleep.service \ > > + ${systemd_unitdir}/system/systemd-suspend.service \ > > + ${systemd_unitdir}/system/systemd-hibernate.service \ > > + ${systemd_unitdir}/system-sleep/ \ > > + ${rootlibexecdir}/systemd/systemd-sleep \ > > +" > > + > > +PACKAGES =+ "${PN}-services-sysctl" > > +SUMMARY_${PN}-services-sysctl = "systemd's kernel parameters > > configuration service" +FILES_${PN}-services-sysctl = "\ > > + ${sysconfdir}/sysctl.d/ \ > > + ${exec_prefix}/lib/sysctl.d/ \ > > + ${exec_prefix}/lib/sysctl.d/50-default.conf \ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/systemd-sysctl.service > > \ > > + ${systemd_unitdir}/system/systemd-sysctl.service \ > > + ${rootlibexecdir}/systemd/systemd-sysctl \ > > +" > > + > > +PACKAGES =+ "${PN}-services-sysusers" > > +SUMMARY_${PN}-services-sysusers = "systemd's service and tool to > > allocate system users and groups" +FILES_${PN}-services-sysusers = > > "\ > > + ${base_bindir}/systemd-sysusers \ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/systemd-sysusers.service > > \ > > + ${systemd_unitdir}/system/systemd-sysusers.service \ > > + ${exec_prefix}/lib/sysusers.d/basic.conf \ > > + ${exec_prefix}/lib/sysusers.d/systemd.conf \ > > +" > > + > > +PACKAGES =+ "${PN}-services-sysvcompat" > > +SUMMARY_${PN}-services-sysvcompat = "systemd's SYSV legacy and > > compatibility service" +# NOTE: if no sysusers or tmpfiles, then > > users/groups and FS structure must be setup > > +RRECOMMENDS_${PN}-services-sysvcompat = "${PN}-services-sysusers > > ${PN}-services-tmpfiles" +FILES_${PN}-services-sysvcompat = "\ > > + ${rootlibexecdir}/systemd/systemd-bus-proxyd \ > > + ${rootlibexecdir}/systemd/systemd-socket-proxyd \ > > + ${bindir}/systemd-stdio-bridge \ > > + > > ${rootlibexecdir}/systemd/system-generators/systemd-rc-local-generator > > \ > > + > > ${rootlibexecdir}/systemd/system-generators/systemd-sysv-generator \ > > + ${rootlibexecdir}/systemd/systemd-initctl \ > > + ${rootlibexecdir}/systemd/systemd-update-utmp \ > > + ${systemd_unitdir}/system/halt-local.service \ > > + ${systemd_unitdir}/system/rc-local.service \ > > + > > ${systemd_unitdir}/system/runlevel1.target.wants/systemd-update-utmp-runlevel.service > > \ > > + > > ${systemd_unitdir}/system/runlevel2.target.wants/systemd-update-utmp-runlevel.service > > \ > > + > > ${systemd_unitdir}/system/runlevel3.target.wants/systemd-update-utmp-runlevel.service > > \ > > + > > ${systemd_unitdir}/system/runlevel4.target.wants/systemd-update-utmp-runlevel.service > > \ > > + > > ${systemd_unitdir}/system/runlevel5.target.wants/systemd-update-utmp-runlevel.service > > \ > > + > > ${systemd_unitdir}/system/sockets.target.wants/systemd-initctl.socket > > \ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/systemd-update-utmp.service > > \ > > + ${systemd_unitdir}/system/systemd-initctl.service \ > > + ${systemd_unitdir}/system/systemd-initctl.socket \ > > + > > ${systemd_unitdir}/system/systemd-update-utmp-runlevel.service \ > > + ${systemd_unitdir}/system/systemd-update-utmp.service \ > > + ${exec_prefix}/lib/tmpfiles.d/legacy.conf \ > > +" > > + > > +PACKAGES =+ "${PN}-services-timedated" > > +SUMMARY_${PN}-services-timedated = "systemd's time and date > > management service" +RDEPENDS_${PN}-services-timedated = > > "${PN}-services-dbus" +CONFFILES_${PN}-services-timedated = > > "${sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf" > > +FILES_${PN}-services-timedated = "\ > > + > > ${sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf \ > > + ${bindir}/timedatectl \ > > + > > ${systemd_unitdir}/system/busnames.target.wants/org.freedesktop.timedate1.busname > > \ > > + > > ${systemd_unitdir}/system/dbus-org.freedesktop.timedate1.service \ > > + > > ${systemd_unitdir}/system/org.freedesktop.timedate1.busname \ > > + ${systemd_unitdir}/system/systemd-timedated.service \ > > + ${rootlibexecdir}/systemd/systemd-timedated \ > > + > > ${datadir}/dbus-1/system-services/org.freedesktop.timedate1.service > > \ > > + > > ${datadir}/polkit-1/actions/org.freedesktop.timedate1.policy \ +" > > + > > +PACKAGES =+ "${PN}-services-timesyncd" > > +SUMMARY_${PN}-services-timesyncd = "systemd's NTP sync service" > > +# NOTE: if no sysusers, then users/groups must be setup > > +RRECOMMENDS_${PN}-services-timesyncd = "${PN}-services-sysusers" > > +CONFFILES_${PN}-services-timesyncd = > > "${sysconfdir}/systemd/timesyncd.conf" > > +FILES_${PN}-services-timesyncd = "\ > > + > > ${sysconfdir}/systemd/system/sysinit.target.wants/systemd-timesyncd.service > > \ > > + ${sysconfdir}/systemd/timesyncd.conf \ > > + ${systemd_unitdir}/system/systemd-timesyncd.service \ > > + ${rootlibexecdir}/systemd/systemd-timesyncd \ > > +" > > + > > +PACKAGES =+ "${PN}-services-tmpfiles" > > +SUMMARY_${PN}-services-tmpfiles = "systemd's service to create, > > delete and clean up volatile/tmp files/dirs" > > +FILES_${PN}-services-tmpfiles = "\ > > + ${sysconfdir}/tmpfiles.d/ \ > > + ${base_bindir}/systemd-tmpfiles \ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/systemd-tmpfiles-setup-dev.service > > \ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/systemd-tmpfiles-setup.service > > \ > > + ${systemd_unitdir}/system/systemd-tmpfiles-clean.service \ > > + ${systemd_unitdir}/system/systemd-tmpfiles-clean.timer \ > > + > > ${systemd_unitdir}/system/systemd-tmpfiles-setup-dev.service \ > > + ${systemd_unitdir}/system/systemd-tmpfiles-setup.service \ > > + > > ${systemd_unitdir}/system/timers.target.wants/systemd-tmpfiles-clean.timer > > \ > > + ${exec_prefix}/lib/tmpfiles.d/etc.conf \ > > + ${exec_prefix}/lib/tmpfiles.d/systemd-nologin.conf \ > > + ${exec_prefix}/lib/tmpfiles.d/systemd.conf \ > > + ${exec_prefix}/lib/tmpfiles.d/tmp.conf \ > > + ${exec_prefix}/lib/tmpfiles.d/var.conf \ > > + ${exec_prefix}/lib/tmpfiles.d/00-create-volatile.conf \ > > + ${exec_prefix}/lib/tmpfiles.d/x11.conf \ > > +" > > + > > +PACKAGES =+ "${PN}-services-udev" > > +SUMMARY_${PN}-services-udev = "systemd's udev services" > > +RDEPENDS_${PN}-services-udev = "udev" > > +FILES_${PN}-services-udev = "\ > > + > > ${systemd_unitdir}/system/initrd-udevadm-cleanup-db.service \ > > + ${systemd_unitdir}/system/systemd-udev-hwdb-update.service > > \ > > + ${systemd_unitdir}/system/systemd-udev-settle.service \ > > + ${systemd_unitdir}/system/systemd-udev-trigger.service \ > > + ${systemd_unitdir}/system/systemd-udevd-control.socket \ > > + ${systemd_unitdir}/system/systemd-udevd-kernel.socket \ > > + ${systemd_unitdir}/system/systemd-udevd.service \ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/systemd-udevd.service > > \ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/systemd-udev-trigger.service > > \ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/systemd-udev-hwdb-update.service > > \ > > + > > ${systemd_unitdir}/system/sockets.target.wants/systemd-udevd-kernel.socket > > \ > > + > > ${systemd_unitdir}/system/sockets.target.wants/systemd-udevd-control.socket > > \ +" + > > +PACKAGES =+ "${PN}-services-update" > > +SUMMARY_${PN}-services-update = "systemd's post update service" > > +FILES_${PN}-services-update = "\ > > + > > ${rootlibexecdir}/systemd/system-generators/systemd-system-update-generator > > \ > > + ${rootlibexecdir}/systemd/systemd-update-done \ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/systemd-update-done.service > > \ > > + ${systemd_unitdir}/system/systemd-update-done.service \ > > +" > > + > > +PACKAGES =+ "${PN}-services-vconsole" > > +SUMMARY_${PN}-services-vconsole = "systemd's service to configure > > the virtual console (keyboard/font)" > > +RDEPENDS_${PN}-services-vconsole = "kbd kbd-consolefonts > > kbd-keymaps" +FILES_${PN}-services-vconsole = "\ > > + > > ${systemd_unitdir}/system/sysinit.target.wants/systemd-vconsole-setup.service > > \ > > + ${systemd_unitdir}/system/systemd-vconsole-setup.service \ > > + ${rootlibexecdir}/systemd/systemd-vconsole-setup \ > > +" > > + > > +######################################################################## > > +# Standard BitBake Packages > > +######################################################################## > > + > > +FILES_${PN}-dbg += "\ > > + ${base_libdir}/security/.debug/ \ > > + ${libdir}/systemd/ptest/.debug \ > > + ${rootlibdir}/.debug \ > > + ${systemd_unitdir}/*/.debug \ > > + ${systemd_unitdir}/.debug \ > > +" > > + > > +FILES_${PN}-dev += "\ > > + ${base_libdir}/security/*.la \ > > + ${datadir}/dbus-1/interfaces/ \ > > +" > > + > > +# The test cases need perl and bash to run correctly. > > +RDEPENDS_${PN}-ptest += "perl bash" > > +FILES_${PN}-ptest += "\ > > + ${libdir}/udev/rules.d \ > > +" > > + > > +######################################################################## > > +# Misc Packages > > +######################################################################## > > + > > +PACKAGES =+ "${PN}-bash" > > +SUMMARY_${PN}-bash = "systemd bash shell commands completion" > > +FILES_${PN}-bash = "\ > > + ${datadir}/bash-completion/completions/bootctl \ > > + ${datadir}/bash-completion/completions/busctl \ > > + ${datadir}/bash-completion/completions/coredumpctl \ > > + ${datadir}/bash-completion/completions/hostnamectl \ > > + ${datadir}/bash-completion/completions/journalctl \ > > + ${datadir}/bash-completion/completions/kernel-install \ > > + ${datadir}/bash-completion/completions/localectl \ > > + ${datadir}/bash-completion/completions/loginctl \ > > + ${datadir}/bash-completion/completions/machinectl \ > > + ${datadir}/bash-completion/completions/systemctl \ > > + ${datadir}/bash-completion/completions/systemd-* \ > > + ${datadir}/bash-completion/completions/timedatectl \ > > +" > > + > > +PACKAGES =+ "${PN}-initramfs" > > +SUMMARY_${PN}-initramfs = "systemd's initramfs support" > > +FILES_${PN}-initramfs = "/init" > > +RDEPENDS_${PN}-initramfs = "${PN}" > > + > > +PACKAGES =+ "${PN}-kernel-install" > > +SUMMARY_${PN}-kernel-install = "systemd tool to add/remove kernel > > and initramfs images to/from /boot" +RDEPENDS_${PN}-kernel-install > > = "bash kmod" +FILES_${PN}-kernel-install = "\ > > + ${bindir}/kernel-install \ > > + ${sysconfdir}/kernel/install.d/ \ > > + ${exec_prefix}/lib/kernel/install.d/ \ > > +" > > + > > +PACKAGES =+ "${PN}-pam" > > +SUMMARY_${PN}-pam = "systemd PAM modules and configuration" > > +FILES_${PN}-pam = "\ > > + ${sysconfdir}/pam.d \ > > + ${base_libdir}/security/pam_systemd.so \ > > +" > > + > > +PACKAGES =+ "${PN}-preset" > > +SUMMARY_${PN}-preset = "systemd's service enablement presets" > > +FILES_${PN}-preset = > > "${systemd_unitdir}/system-preset/90-systemd.preset" + > > +PACKAGES =+ "${PN}-rpm-macros" > > +SUMMARY_${PN}-rpm-macros = "systemd RPM macros" > > +FILES_${PN}-rpm-macros = > > "${exec_prefix}/lib/rpm/macros.d/macros.systemd" + > > +PACKAGES =+ "${PN}-zsh" > > +SUMMARY_${PN}-zsh = "systemd zsh shell commands completion" > > +FILES_${PN}-zsh = "\ > > + ${datadir}/zsh/site-functions/_bootctl \ > > + ${datadir}/zsh/site-functions/_busctl \ > > + ${datadir}/zsh/site-functions/_coredumpctl \ > > + ${datadir}/zsh/site-functions/_hostnamectl \ > > + ${datadir}/zsh/site-functions/_journalctl \ > > + ${datadir}/zsh/site-functions/_kernel-install \ > > + ${datadir}/zsh/site-functions/_localectl \ > > + ${datadir}/zsh/site-functions/_loginctl \ > > + ${datadir}/zsh/site-functions/_machinectl \ > > + ${datadir}/zsh/site-functions/_sd_* \ > > + ${datadir}/zsh/site-functions/_systemctl \ > > + ${datadir}/zsh/site-functions/_systemd \ > > + ${datadir}/zsh/site-functions/_systemd-* \ > > + ${datadir}/zsh/site-functions/_timedatectl \ > > +" > > + > > + > > +######################################################################## > > +# Aggregation of Split Packages > > +######################################################################## > > + > > +PACKAGES =+ "${PN}-services-essential" > > +SUMMARY_${PN}-services-essential = "systemd's essential services > > aggregation" +ALLOW_EMPTY_${PN}-services-essential = "1" > > +RDEPENDS_${PN}-services-essential = "\ > > + ${PN}-generators-filesystems \ > > + ${PN}-preset \ > > + ${PN}-services-fsck \ > > + ${PN}-services-journal \ > > + ${PN}-services-modules-load \ > > + ${PN}-services-randomseed \ > > + ${PN}-services-sleep \ > > + ${PN}-services-sysctl \ > > + ${PN}-services-sysusers \ > > + ${PN}-services-tmpfiles \ > > + ${PN}-services-udev \ > > + udev-rules-systemd \ > > +" > > + > > +PACKAGES =+ "${PN}-services-base" > > +SUMMARY_${PN}-services-base = "systemd's base services aggregation" > > +ALLOW_EMPTY_${PN}-services-base = "1" > > +RDEPENDS_${PN}-services-base = "${PN}-services-essential \ > > + ${PN}-services-ask-password \ > > + ${PN}-services-backlight \ > > + ${PN}-services-binfmt \ > > + ${PN}-services-coredump \ > > + ${PN}-services-dbus \ > > + ${PN}-services-firstboot \ > > + ${PN}-services-fuse \ > > + ${PN}-services-hostnamed \ > > + ${PN}-services-ldconfig \ > > + ${PN}-services-localed \ > > + ${PN}-services-logind \ > > + ${PN}-services-networkd \ > > + ${PN}-services-quota \ > > + ${PN}-services-resolved \ > > + ${PN}-services-rfkill \ > > + ${PN}-services-timedated \ > > + ${PN}-services-timesyncd \ > > + ${PN}-services-update \ > > + ${PN}-services-vconsole \ > > +" > > + > > +PACKAGES =+ "${PN}-services-all" > > +SUMMARY_${PN}-services-all = "systemd's all services and tools > > aggregation" +ALLOW_EMPTY_${PN}-services-all = "1" > > +RDEPENDS_${PN}-services-all = "${PN}-services-base \ > > + ${PN}-services-bootchart \ > > + ${PN}-services-cryptsetup \ > > + ${PN}-services-debug \ > > + ${PN}-services-journal-remote \ > > + ${PN}-services-journal-upload \ > > + ${PN}-services-machined \ > > + ${PN}-services-nspawn \ > > + ${PN}-services-sysvcompat \ > > + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', > > '${PN}-services-multi-seat-x', '', d)} \ > > + ${PN}-tools \ > > +" > > + > > + > > +######################################################################## > > +# Core Package > > +######################################################################## > > + > > +CONFFILES_${PN} = "\ > > + ${sysconfdir}/machine-id \ > > + ${sysconfdir}/systemd/system.conf \ > > + ${sysconfdir}/systemd/user.conf \ > > +" > > + > > +FILES_${PN} = "\ > > + ${base_bindir}/systemctl \ > > + ${base_bindir}/systemd-hwdb \ > > + ${bindir}/bootctl \ > > + ${datadir}/${BPN} \ > > + ${datadir}/factory \ > > + ${exec_prefix}/lib/libnss_myhostname* \ > > + ${libdir}/systemd/user-generators/ \ > > + ${libdir}/systemd/user/ \ > > + ${localstatedir} \ > > + ${rootlibexecdir}/systemd/systemd \ > > + ${rootlibexecdir}/systemd/systemd-cgroups-agent \ > > + ${rootlibexecdir}/systemd/systemd-shutdown \ > > + ${rootlibexecdir}/systemd/systemd-shutdownd \ > > + ${rootlibexecdir}/systemd/systemd-machine-id-commit \ > > + ${rootlibexecdir}/systemd/systemd-hibernate-resume \ > > + ${rootlibexecdir}/systemd/systemd-importd \ > > + ${rootlibexecdir}/systemd/import-pubring.gpg \ > > + ${rootlibexecdir}/systemd/systemd-pull \ > > + ${sysconfdir}/init.d/README \ > > + ${sysconfdir}/machine-id \ > > + ${sysconfdir}/systemd/system.conf \ > > + ${sysconfdir}/systemd/system/ \ > > + ${sysconfdir}/systemd/user.conf \ > > + ${sysconfdir}/systemd/user/ \ > > + ${sysconfdir}/xdg/systemd/ \ > > + ${systemd_unitdir}/system-generators/ \ > > + ${systemd_unitdir}/system-preset/ \ > > + ${systemd_unitdir}/system-shutdown/ \ > > + ${systemd_unitdir}/system/ \ > > +" > > + > > +#RDEPENDS_${PN} += "volatile-binds" > > + > > +RRECOMMENDS_${PN} += "\ > > + ${PN}-services-base \ > > + ${PN}-services-essential \ > > + ${PN}-generators-getty \ > > + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', > > '${PN}-pam', '', d)} \ > > + ${PN}-services-getty \ > > + ${PN}-tools \ > > + kernel-module-autofs4 \ > > + kernel-module-ipv6 \ > > + kernel-module-unix \ > > + os-release \ > > + udev (= ${EXTENDPKGV}) \ > > + udev-hwdb \ > > +" > > + > > +ALTERNATIVE_${PN} = "init halt reboot shutdown poweroff runlevel" > > + > > +ALTERNATIVE_TARGET[init] = "${rootlibexecdir}/systemd/systemd" > > +ALTERNATIVE_LINK_NAME[init] = "${base_sbindir}/init" > > +ALTERNATIVE_PRIORITY[init] ?= "300" > > + > > +ALTERNATIVE_TARGET[halt] = "${base_bindir}/systemctl" > > +ALTERNATIVE_LINK_NAME[halt] = "${base_sbindir}/halt" > > +ALTERNATIVE_PRIORITY[halt] ?= "300" > > + > > +ALTERNATIVE_TARGET[reboot] = "${base_bindir}/systemctl" > > +ALTERNATIVE_LINK_NAME[reboot] = "${base_sbindir}/reboot" > > +ALTERNATIVE_PRIORITY[reboot] ?= "300" > > + > > +ALTERNATIVE_TARGET[shutdown] = "${base_bindir}/systemctl" > > +ALTERNATIVE_LINK_NAME[shutdown] = "${base_sbindir}/shutdown" > > +ALTERNATIVE_PRIORITY[shutdown] ?= "300" > > + > > +ALTERNATIVE_TARGET[poweroff] = "${base_bindir}/systemctl" > > +ALTERNATIVE_LINK_NAME[poweroff] = "${base_sbindir}/poweroff" > > +ALTERNATIVE_PRIORITY[poweroff] ?= "300" > > + > > +ALTERNATIVE_TARGET[runlevel] = "${base_bindir}/systemctl" > > +ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel" > > +ALTERNATIVE_PRIORITY[runlevel] ?= "300" > > + > > + > > +######################################################################## > > +# UDEV Section > > +######################################################################## > > + > > +PACKAGES =+ "udev-dbg" > > +SUMMARY_udev-dbg = "Dynamic device management - Debugging files" > > +RRECOMMENDS_udev-dbg += "${PN}-dbg" > > +FILES_udev-dbg = "\ > > + ${rootlibexecdir}/udev/.debug \ > > + ${base_sbindir}/.debug/udevd \ > > + ${base_bindir}/.debug/udevadm \ > > + ${rootlibexecdir}/systemd/.debug/systemd-udevd \ > > + ${base_libdir}/.debug/libudev* \ > > + ${base_libdir}/.debug/libgudev* \ > > + ${exec_prefix}/lib/.debug/libgudev* \ > > +" > > + > > +PACKAGES =+ "udev-dev" > > +SUMMARY_udev-dev = "Dynamic device management - Development files" > > +RRECOMMENDS_udev-dev += "${PN}-dev" > > +FILES_udev-dev = "\ > > + ${datadir}/pkgconfig/*udev* \ > > + ${libdir}/pkgconfig/*udev* \ > > + ${libdir}/lib*udev*.la \ > > + ${includedir}/*udev* \ > > +" > > + > > +PACKAGES =+ "udev-hwdb" > > +SUMMARY_udev-hwdb = "Dynamic device management - Hardware database" > > +RDEPENDS_udev-hwdb = "udev" > > +FILES_udev-hwdb = "\ > > + ${rootlibexecdir}/udev/hwdb.d/ \ > > +" > > + > > +pkg_postinst_udev-hwdb () { > > + if test -n "$D"; then > > + ${@qemu_run_binary(d, '$D', > > '${base_bindir}/udevadm')} hwdb --update \ > > + --root $D > > + else > > + udevadm hwdb --update > > + fi > > +} > > + > > +pkg_prerm_udev-hwdb () { > > + if test -n "$D"; then > > + exit 1 > > + fi > > + > > + rm -f ${sysconfdir}/udev/hwdb.bin > > +} > > + > > +PACKAGES =+ "udev-bash" > > +SUMMARY_udev-bash = "Dynamic device management - Bash shell > > commands completion" +FILES_udev-bash = > > "${datadir}/bash-completion/completions/udevadm" + > > +PACKAGES =+ "udev-zsh" > > +SUMMARY_udev-zsh = "Dynamic device management - zsh shell commands > > completion" +FILES_udev-zsh = > > "${datadir}/zsh/site-functions/_udevadm" + > > + > > +######################################################################## > > +# UDEV Rules Packages > > +# split rules that require external programs or dependencies. > > +# those that use only builtins are not split > > +######################################################################## > > + > > +PACKAGES =+ "udev-rules-accelerometer" > > +SUMMARY_udev-rules-accelerometer = "Dynamic device management - > > accelerometer rules" +FILES_udev-rules-accelerometer = "\ > > + ${rootlibexecdir}/udev/accelerometer \ > > + ${rootlibexecdir}/udev/rules.d/61-accelerometer.rules \ > > +" > > + > > +PACKAGES =+ "udev-rules-cdrom" > > +SUMMARY_udev-rules-cdrom = "Dynamic device management - cdrom > > rules" +FILES_udev-rules-cdrom = "\ > > + ${rootlibexecdir}/udev/cdrom_id \ > > + ${rootlibexecdir}/udev/rules.d/60-cdrom_id.rules \ > > +" > > + > > +PACKAGES =+ "udev-rules-mtd" > > +SUMMARY_udev-rules-mtd = "Dynamic device management - mtd rules" > > +FILES_udev-rules-mtd = "\ > > + ${rootlibexecdir}/udev/mtd_probe \ > > + ${rootlibexecdir}/udev/rules.d/75-probe_mtd.rules \ > > +" > > + > > +PACKAGES =+ "udev-rules-persistent-storage" > > +SUMMARY_udev-rules-persistent-storage = "Dynamic device management > > - persistent storage rules" +FILES_udev-rules-persistent-storage = > > "\ > > + ${rootlibexecdir}/udev/ata_id \ > > + ${rootlibexecdir}/udev/scsi_id \ > > + ${rootlibexecdir}/udev/rules.d/60-persistent-storage.rules > > \ > > + > > ${rootlibexecdir}/udev/rules.d/60-persistent-storage-tape.rules \ +" > > + > > +PACKAGES =+ "udev-rules-systemd" > > +SUMMARY_udev-rules-systemd = "Dynamic device management - systemd > > rules" +RDEPENDS_udev-rules-systemd = "${PN} ${PN}-services-sysctl" > > +FILES_udev-rules-systemd = "\ > > + ${rootlibexecdir}/udev/rules.d/99-systemd.rules \ > > +" > > + > > +PACKAGES =+ "udev-rules-v4l" > > +SUMMARY_udev-rules-v4l = "Dynamic device management - v4l rules" > > +FILES_udev-rules-v4l = "\ > > + ${rootlibexecdir}/udev/v4l_id \ > > + ${rootlibexecdir}/udev/rules.d/*-persistent-v4l.rules \ > > +" > > + > > +PACKAGES =+ "udev-rules-all" > > +SUMMARY_udev-rules-all = "Dynamic device management - all rules > > aggregation" +ALLOW_EMPTY_udev-rules-all = "1" > > +RDEPENDS_udev-rules-all = "\ > > + udev-rules-accelerometer \ > > + udev-rules-cdrom \ > > + udev-rules-mtd \ > > + udev-rules-persistent-storage \ > > + udev-rules-systemd \ > > + udev-rules-v4l \ > > +" > > + > > +PACKAGES =+ "udev" > > +SUMMARY_udev = "Dynamic device management" > > +RPROVIDES_udev = "hotplug" > > +PROVIDES = "udev" > > +CONFFILES_udev = "${sysconfdir}/udev/udev.conf" > > +FILES_udev = "\ > > + ${base_bindir}/udevadm \ > > + ${base_sbindir}/udevd \ > > + ${rootlibexecdir}/systemd/systemd-udevd \ > > + ${rootlibexecdir}/udev/collect \ > > + ${rootlibexecdir}/udev/rules.d/42-usb-hid-pm.rules \ > > + ${rootlibexecdir}/udev/rules.d/50-firmware.rules \ > > + ${rootlibexecdir}/udev/rules.d/50-udev-default.rules \ > > + ${rootlibexecdir}/udev/rules.d/60-drm.rules \ > > + ${rootlibexecdir}/udev/rules.d/60-keyboard.rules \ > > + ${rootlibexecdir}/udev/rules.d/60-persistent-alsa.rules \ > > + ${rootlibexecdir}/udev/rules.d/60-persistent-input.rules \ > > + ${rootlibexecdir}/udev/rules.d/60-persistent-serial.rules \ > > + ${rootlibexecdir}/udev/rules.d/64-btrfs.rules \ > > + ${rootlibexecdir}/udev/rules.d/75-net-description.rules \ > > + ${rootlibexecdir}/udev/rules.d/75-tty-description.rules \ > > + ${rootlibexecdir}/udev/rules.d/78-sound-card.rules \ > > + ${rootlibexecdir}/udev/rules.d/80-drivers.rules \ > > + ${rootlibexecdir}/udev/rules.d/80-net-setup-link.rules \ > > + ${rootlibexecdir}/udev/rules.d/95-udev-late.rules \ > > + ${rootlibexecdir}/udev/rules.d/70-mouse.rules \ > > + ${rootlibexecdir}/udev/rules.d/90-vconsole.rules \ > > + ${rootlibexecdir}/udev/rules.d/touchscreen.rules \ > > + ${sysconfdir}/init.d/systemd-udevd \ > > + ${sysconfdir}/udev \ > > +" > > + > > +RRECOMMENDS_udev = "\ > > + udev-hwdb \ > > + udev-rules-all \ > > +" > > + > > +INITSCRIPT_PACKAGES = "udev" > > +INITSCRIPT_NAME_udev = "systemd-udevd" > > +INITSCRIPT_PARAMS_udev = "start 03 S ." > > + > > +python __anonymous() { > > + if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, > > False, d): > > + d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1") > > +} > > + > > +# As this recipe builds udev, respect systemd being in > > DISTRO_FEATURES so +# that we don't build both udev and systemd in > > world builds. +python () { > > + if not bb.utils.contains ('DISTRO_FEATURES', 'systemd', True, > > False, d): > > + raise bb.parse.SkipPackage("'systemd' not in > > DISTRO_FEATURES") +} > > > > Bruno, could you create separate patches for the upgrade and for the > repackaging? Also what type of testing has been done for partial > installs? > > Randy, Sure thing I can separate it. I will send to the mailing list later. I wrote on my local.conf the following as an example: PACKAGE_EXCLUDE = "systemd-services-base systemd-services-essential" Also, doing this you can remove some lib dependency such as: PACKAGECONFIG_remove_pn-systemd = " \ acl \ blkid \ efi \ gcrypt \ lz4 \ xz \ libidn \ " This example will install the smallest possible.