[OE-core] [PATCH V3 3/3] systemd: split modules into packages

Bottazzini, Bruno bruno.bottazzini at intel.com
Thu May 7 22:45:49 UTC 2015


On Qui, 2015-05-07 at 20:58 +0200, Andreas Oberritter wrote:
> On 07.05.2015 18:40, Bruno Bottazzini wrote:
> > if one wants to launch a simple deamon, most modules are not
> > required.
> > He will be able to save space and exclude unwanted packages
> > from the final image.
> > 
> > Signed-off-by: Bruno Bottazzini <bruno.bottazzini at intel.com>
> > ---
> >  meta/recipes-core/systemd/systemd_219.bb | 1063 ++++++++++++++++++++++++++----
> >  1 file changed, 938 insertions(+), 125 deletions(-)
> > 
> > diff --git a/meta/recipes-core/systemd/systemd_219.bb b/meta/recipes-core/systemd/systemd_219.bb
> > index b4bff18..629c7fc 100644
> > --- a/meta/recipes-core/systemd/systemd_219.bb
> > +++ b/meta/recipes-core/systemd/systemd_219.bb
> > @@ -60,9 +60,55 @@ LDFLAGS_append_libc-uclibc = " -lrt"
> >  GTKDOC_DOCDIR = "${S}/docs/"
> >  
> >  PACKAGECONFIG ??= "xz ldconfig \
> > +                   getty \
> > +                   sysvcompat \
> > +                   nspawn \
> > +                   machined \
> > +                   bootchart \
> > +                   zsh \
> > +                   rpm-macros \
> > +                   kernel-install \
> > +                   initramfs \
> > +                   bash \
> > +                   tools \
> > +                   udev \
> > +                   tmpfiles \
> > +                   sysusers \
> > +                   sysctl \
> > +                   sleep \
> > +                   randomseed \
> > +                   modules-load \
> > +                   journal \
> > +                   fsck \
> > +                   preset \
> > +                   filesystems \
> > +                   vconsole \
> > +                   update \
> > +                   timesyncd \
> > +                   rfkill \
> > +                   quota \
> > +                   fuse \
> > +                   firstboot \
> > +                   dbus \
> > +                   binfmt \
> > +                   backlight \
> > +                   ask-password \
> 
> I think it may be better to sort this quite long list alphabetically.
> 
> Are these options already enabled today? 

Yes, it is enabled. 

This is the default packages enabled in the current recipe.

> Because of the new
> packageconfig entries, I would have expected changes to EXTRA_OECONF and
> DEPENDS, which I don't see in your patch.

Some packages does not have EXTRA_OECONF.

You can see what this recipe DEPENDS by looking at ${PN}-services-base.

Regards,

> 
> Regards,
> Andreas
> 
> >                     ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \
> >                     ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xkbcommon', '', d)}"
> >  
> > +PACKAGECONFIG[glib] = "--enable-gudev,--disable-gudev,glib-2.0"
> > +PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl"
> > +PACKAGECONFIG[blkid] = "--enable-blkid,--disable-blkid,util-linux"
> > +PACKAGECONFIG[efi] = "--enable-efi,--disable-efi"
> > +PACKAGECONFIG[kmod] = "--enable-kmod,--disable-kmod,kmod"
> > +PACKAGECONFIG[polkit] = "--enable-polkit,--disable-polkit,polkit"
> > +PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"
> > +PACKAGECONFIG[smack] = "--enable-smack,--disable-smack"
> > +PACKAGECONFIG[ima] = "--enable-ima,--disable-ima"
> > +PACKAGECONFIG[apparmor] = "--enable-apparmor,--disable-apparmor,libapparmor"
> > +PACKAGECONFIG[seccomp] = "--enable-seccomp,--disable-seccomp,libseccomp"
> > +PACKAGECONFIG[qrencode] = "--enable-qrencode,--disable-qrencode,libqrencode"
> > +PACKAGECONFIG[lz4] = "--enable-lz4,--disable-lz4,lz4"
> >  PACKAGECONFIG[journal-upload] = "--enable-libcurl,--disable-libcurl,curl"
> >  # Sign the journal for anti-tampering
> >  PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,libgcrypt"
> > @@ -206,158 +252,742 @@ do_install_ptest () {
> >  
> >  python populate_packages_prepend (){
> >      systemdlibdir = d.getVar("rootlibdir", True)
> > -    do_split_packages(d, systemdlibdir, '^lib(.*)\.so\.*', 'lib%s', 'Systemd %s library', extra_depends='', allow_links=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|systemd).*"
> > +PACKAGES_DYNAMIC += "^lib(udev|gudev|systemd|nss).*"
> > +
> > +########################################################################
> > +# Base Packages
> > +########################################################################
> > +
> > +PACKAGES =+ "${PN}-generators-filesystems"
> > +SUMMARY_${PN}-generators-filesystems = "Unit generator for /etc/fstab"
> > +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}-gui ${PN}-vconsole-setup ${PN}-initramfs ${PN}-analyze ${PN}-kernel-install \
> > -             ${PN}-rpm-macros ${PN}-binfmt ${PN}-pam ${PN}-zsh libgudev"
> > +PACKAGES =+ "${PN}-generators-getty"
> > +SUMMARY_${PN}-generators-getty = "Generator for enabling getty instances on the console"
> > +RDEPENDS_${PN}-generators-getty = "${PN}-services-getty"
> > +FILES_${PN}-generators-getty = "\
> > +        ${rootlibexecdir}/systemd/system-generators/systemd-getty-generator \
> > +"
> >  
> > -SYSTEMD_PACKAGES = "${PN}-binfmt"
> > -SYSTEMD_SERVICE_${PN}-binfmt = "systemd-binfmt.service"
> > +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 \
> > +"
> >  
> > -USERADD_PACKAGES = "${PN}"
> > -USERADD_PARAM_${PN} += "--system systemd-journal-gateway; --system systemd-timesync"
> > -GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"
> > +########################################################################
> > +# Services Packages
> > +########################################################################
> > +
> > +PACKAGES =+ "${PN}-services-ask-password"
> > +SUMMARY_${PN}-services-ask-password = "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 \
> > +"
> >  
> > -FILES_${PN}-analyze = "${bindir}/systemd-analyze"
> > +PACKAGES =+ "${PN}-services-backlight"
> > +SUMMARY_${PN}-services-backlight = "Load and save the display backlight brightness at boot and shutdown"
> > +FILES_${PN}-services-backlight = "\
> > +        ${systemd_unitdir}/system/systemd-backlight at .service \
> > +        ${rootlibexecdir}/systemd/systemd-backlight \
> > +"
> >  
> > -FILES_${PN}-initramfs = "/init"
> > -RDEPENDS_${PN}-initramfs = "${PN}"
> > +PACKAGES =+ "${PN}-services-binfmt"
> > +SUMMARY_${PN}-services-binfmt = "Configure additional binary formats for executables at boot"
> > +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/proc-sys-fs-binfmt_misc.* \
> > +        ${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 = "Boot performance graphing tool"
> > +CONFFILES_${PN}-services-bootchart = "${sysconfdir}/systemd/bootchart.conf"
> > +FILES_${PN}-services-bootchart = "\
> > +        ${sysconfdir}/systemd/bootchart.conf \
> > +        ${rootlibexecdir}/systemd/systemd-bootchart \
> > +"
> >  
> > -FILES_libgudev = "${libdir}/libgudev*${SOLIBS}"
> > +PACKAGES =+ "${PN}-services-coredump"
> > +SUMMARY_${PN}-services-coredump = "Log and store core dumps"
> > +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 \
> > +"
> >  
> > -RDEPENDS_${PN}-ptest += "perl python bash"
> > -FILES_${PN}-ptest += "${libdir}/udev/rules.d"
> > +PACKAGES =+ "${PN}-services-cryptsetup"
> > +SUMMARY_${PN}-services-cryptsetup = "Unit generator for /etc/crypttab"
> > +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 = "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 = "Generator for enabling a runtime debug shell and masking specific units at boot"
> > +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 = "Initialize basic system settings on or before the first boot-up of a system"
> > +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 = "File system checker logic"
> > +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 at .service \
> > +        ${rootlibexecdir}/systemd/systemd-fsck \
> > +"
> >  
> > -FILES_${PN}-dbg += "${libdir}/systemd/ptest/.debug"
> > +PACKAGES =+ "${PN}-services-fuse"
> > +SUMMARY_${PN}-services-fuse = "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 = "Getty service"
> > +RRECOMMENDS_${PN}-services-getty = "util-linux-agetty ${PN}-generators-getty"
> > +FILES_${PN}-services-getty = "\
> > +        ${systemd_unitdir}/system/autovt at .service \
> > +        ${systemd_unitdir}/system/console-getty.service \
> > +        ${systemd_unitdir}/system/container-getty at .service \
> > +        ${systemd_unitdir}/system/getty at .service \
> > +        ${systemd_unitdir}/system/serial-getty at .service \
> > +        ${sysconfdir}/systemd/system/getty.target.wants/ \
> > +"
> > +
> > +PACKAGES =+ "${PN}-services-hostnamed"
> > +SUMMARY_${PN}-services-hostnamed = "Host name bus mechanism"
> > +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 = "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-ldconfig"
> > +SUMMARY_${PN}-services-ldconfig = "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 = "Locale bus mechanism"
> > +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 = "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 at .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 = "Virtual machine and container registration manager"
> > +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 \
> > +        ${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 = "Load kernel modules at boot"
> > +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 = "Create list of required static device nodes for the current kernel"
> > +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 = "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 = "Network manager (static, DHCP, bridge...)"
> > +# 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 \
> > +        ${sysconfdir}/dbus-1/system.d/org.freedesktop.network1.conf \
> > +        ${datadir}/dbus-1/system-services/org.freedesktop.network1.service \
> > +"
> > +
> > +PACKAGES += "${PN}-services-journal-gatewayd"
> > +SUMMARY_${PN}-services-journal-gatewayd = "HTTP server for journal events"
> > +RRECOMMENDS_${PN}-services-journal-gatewayd = "${PN}-services-networkd"
> > +FILES_${PN}-services-journal-gatewayd = "\
> > +	${rootlibexecdir}/systemd/systemd-journal-gatewayd \
> > +	${rootlibexecdir}/systemd/systemd-journal-remote \
> > +	${exec_prefix}/lib/sysusers.d/systemd-remote.conf \
> > +	${exec_prefix}/lib/tmpfiles.d/systemd-remote.conf \
> > +	${sysconfdir}/systemd/journal-remote.conf \
> > +"
> > +
> > +PACKAGES =+ "${PN}-services-nspawn"
> > +SUMMARY_${PN}-services-nspawn = "Spawn a namespace container for debugging, testing and building"
> > +FILES_${PN}-services-nspawn = "\
> > +        ${systemd_unitdir}/system/systemd-nspawn at .service \
> > +        ${bindir}/systemd-nspawn \
> > +"
> > +
> > +PACKAGES =+ "${PN}-services-quota"
> > +SUMMARY_${PN}-services-quota = "File system quota checker logic"
> > +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 = "Load and save the system random seed at boot and shutdown"
> > +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-rfkill"
> > +SUMMARY_${PN}-services-rfkill = "Load and save the RF kill switch state at boot and shutdown"
> > +FILES_${PN}-services-rfkill = "\
> > +        ${systemd_unitdir}/system/systemd-rfkill at .service \
> > +        ${rootlibexecdir}/systemd/systemd-rfkill \
> > +"
> > +
> > +PACKAGES =+ "${PN}-services-sleep"
> > +SUMMARY_${PN}-services-sleep = "System sleep state logic"
> > +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 = "Configure kernel parameters at boot"
> > +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 = "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 = "SYSV legacy and compatibility services"
> > +# 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 = "Time and date bus mechanism"
> > +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 = "Network Time Synchronization"
> > +# 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 = "Creates, deletes and cleans up volatile and temporary files and directories"
> > +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 = "Device event managing daemon"
> > +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 = "Mark /etc and /var fully updated"
> > +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 = "Configure the virtual console at boot"
> > +RECOMMENDS_${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}-gui = "${bindir}/systemadm"
> >  
> > -FILES_${PN}-vconsole-setup = "${rootlibexecdir}/systemd/systemd-vconsole-setup \
> > -                              ${systemd_unitdir}/system/systemd-vconsole-setup.service \
> > -                              ${systemd_unitdir}/system/sysinit.target.wants/systemd-vconsole-setup.service"
> > +FILES_${PN}-dev += "\
> > +        ${base_libdir}/security/*.la \
> > +        ${datadir}/dbus-1/interfaces/ \
> > +        ${sysconfdir}/rpm/macros.systemd \
> > +"
> >  
> > -RDEPENDS_${PN}-kernel-install += "bash"
> > -FILES_${PN}-kernel-install = "${bindir}/kernel-install \
> > -                              ${sysconfdir}/kernel/ \
> > -                              ${exec_prefix}/lib/kernel \
> > -                             "
> > -FILES_${PN}-rpm-macros = "${exec_prefix}/lib/rpm \
> > -                         "
> > -
> > -FILES_${PN}-zsh = "${datadir}/zsh/site-functions"
> > -
> > -FILES_${PN}-binfmt = "${sysconfdir}/binfmt.d/ \
> > -                      ${exec_prefix}/lib/binfmt.d \
> > -                      ${rootlibexecdir}/systemd/systemd-binfmt \
> > -                      ${systemd_unitdir}/system/proc-sys-fs-binfmt_misc.* \
> > -                      ${systemd_unitdir}/system/systemd-binfmt.service"
> > -RRECOMMENDS_${PN}-binfmt = "kernel-module-binfmt-misc"
> > -
> > -RRECOMMENDS_${PN}-vconsole-setup = "kbd kbd-consolefonts kbd-keymaps"
> > -
> > -CONFFILES_${PN} = "${sysconfdir}/systemd/journald.conf \
> > -                ${sysconfdir}/systemd/logind.conf \
> > -                ${sysconfdir}/systemd/system.conf \
> > -                ${sysconfdir}/systemd/user.conf"
> > -
> > -FILES_${PN} = " ${base_bindir}/* \
> > -                ${datadir}/bash-completion \
> > -                ${datadir}/dbus-1/services \
> > -                ${datadir}/dbus-1/system-services \
> > -                ${datadir}/polkit-1 \
> > -                ${datadir}/${BPN} \
> > -                ${datadir}/factory \
> > -                ${sysconfdir}/bash_completion.d/ \
> > -                ${sysconfdir}/dbus-1/ \
> > -                ${sysconfdir}/machine-id \
> > -                ${sysconfdir}/modules-load.d/ \
> > -                ${sysconfdir}/pam.d/ \
> > -                ${sysconfdir}/sysctl.d/ \
> > -                ${sysconfdir}/systemd/ \
> > -                ${sysconfdir}/tmpfiles.d/ \
> > -                ${sysconfdir}/xdg/ \
> > -                ${sysconfdir}/init.d/README \
> > -                ${rootlibexecdir}/systemd/* \
> > -                ${systemd_unitdir}/* \
> > -                ${base_libdir}/security/*.so \
> > -                ${libdir}/libnss_* \
> > -                /cgroup \
> > -                ${bindir}/systemd* \
> > -                ${bindir}/busctl \
> > -                ${bindir}/localectl \
> > -                ${bindir}/hostnamectl \
> > -                ${bindir}/timedatectl \
> > -                ${bindir}/bootctl \
> > -                ${bindir}/kernel-install \
> > -                ${exec_prefix}/lib/tmpfiles.d/*.conf \
> > -                ${exec_prefix}/lib/systemd \
> > -                ${exec_prefix}/lib/modules-load.d \
> > -                ${exec_prefix}/lib/sysctl.d \
> > -                ${exec_prefix}/lib/sysusers.d \
> > -                ${localstatedir} \
> > -                /lib/udev/rules.d/70-uaccess.rules \
> > -                /lib/udev/rules.d/71-seat.rules \
> > -                /lib/udev/rules.d/73-seat-late.rules \
> > -                /lib/udev/rules.d/99-systemd.rules \
> > -               "
> > +USERADD_PACKAGES = "${PN}"
> > +USERADD_PARAM_${PN} += "--system systemd-journal-gateway; --system systemd-timesync"
> > +GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"
> >  
> > -FILES_${PN}-dbg += "${rootlibdir}/.debug ${systemd_unitdir}/.debug ${systemd_unitdir}/*/.debug ${base_libdir}/security/.debug/"
> > -FILES_${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd"
> > +# The test cases need perl and bash to run correctly.
> > +RDEPENDS_${PN}-ptest += "perl python bash"
> > +FILES_${PN}-ptest += "\
> > +        ${libdir}/udev/rules.d \
> > +"
> >  
> > -RDEPENDS_${PN} += "kmod dbus util-linux-mount udev (= ${EXTENDPKGV})"
> > -RDEPENDS_${PN} += "volatile-binds"
> > +########################################################################
> > +# Misc Packages
> > +########################################################################
> > +
> > +PACKAGES =+ "${PN}-bash"
> > +SUMMARY_${PN}-bash = "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 = "Initramfs support"
> > +FILES_${PN}-initramfs = "/init"
> > +RDEPENDS_${PN}-initramfs = "${PN}"
> >  
> > -RRECOMMENDS_${PN} += "systemd-serialgetty systemd-compat-units udev-hwdb\
> > -                      util-linux-agetty \
> > -                      util-linux-fsck e2fsprogs-e2fsck \
> > -                      kernel-module-autofs4 kernel-module-unix kernel-module-ipv6 os-release \
> > +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"
> > +FILES_${PN}-kernel-install = "\
> > +        ${bindir}/kernel-install \
> > +        ${sysconfdir}/kernel/ \
> > +        ${exec_prefix}/lib/kernel \
> >  "
> >  
> > -PACKAGES =+ "udev-dbg udev udev-hwdb"
> > +PACKAGES =+ "${PN}-pam"
> > +SUMMARY_${PN}-pam = "systemd PAM modules and configuration"
> > +FILES_${PN}-pam = "\
> > +        ${sysconfdir}/pam.d \
> > +        ${base_libdir}/security/pam_systemd.so \
> > +"
> >  
> > -FILES_udev-dbg += "/lib/udev/.debug"
> > +PACKAGES =+ "${PN}-preset"
> > +SUMMARY_${PN}-preset = "Service enablement presets"
> > +FILES_${PN}-preset = "${systemd_unitdir}/system-preset/90-systemd.preset"
> >  
> > -RPROVIDES_udev = "hotplug"
> > +PACKAGES =+ "${PN}-rpm-macros"
> > +SUMMARY_${PN}-rpm-macros = "RPM macros"
> > +FILES_${PN}-rpm-macros = "${exec_prefix}/lib/rpm \
> > +			 "
> >  
> > -RDEPENDS_udev-hwdb += "udev"
> > +PACKAGES =+ "${PN}-zsh"
> > +SUMMARY_${PN}-zsh = "Zsh shell commands completion"
> > +FILES_${PN}-zsh = "\
> > +        ${datadir}/zsh/site-functions \
> > +"
> >  
> > -FILES_udev += "${base_sbindir}/udevd \
> > -               ${rootlibexecdir}/systemd/systemd-udevd \
> > -               ${rootlibexecdir}/udev/accelerometer \
> > -               ${rootlibexecdir}/udev/ata_id \
> > -               ${rootlibexecdir}/udev/cdrom_id \
> > -               ${rootlibexecdir}/udev/collect \
> > -               ${rootlibexecdir}/udev/findkeyboards \
> > -               ${rootlibexecdir}/udev/keyboard-force-release.sh \
> > -               ${rootlibexecdir}/udev/keymap \
> > -               ${rootlibexecdir}/udev/mtd_probe \
> > -               ${rootlibexecdir}/udev/scsi_id \
> > -               ${rootlibexecdir}/udev/v4l_id \
> > -               ${rootlibexecdir}/udev/keymaps \
> > -               ${rootlibexecdir}/udev/rules.d/*.rules \
> > -               ${sysconfdir}/udev \
> > -               ${sysconfdir}/init.d/systemd-udevd \
> > -               ${systemd_unitdir}/system/*udev* \
> > -               ${systemd_unitdir}/system/*.wants/*udev* \
> > -               ${base_bindir}/udevadm \
> > -               ${datadir}/bash-completion/completions/udevadm \
> > -              "
> > -
> > -FILES_udev-hwdb = "${rootlibexecdir}/udev/hwdb.d"
> > +########################################################################
> > +# Aggregation of Split Packages
> > +########################################################################
> > +PACKAGES =+ "${PN}-services-base"
> > +SUMMARY_${PN}-services-base = "Base services aggregation"
> > +ALLOW_EMPTY_${PN}-services-base = "1"
> > +RDEPENDS_${PN}-services-base = " \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'ask-password', '${PN}-services-ask-password', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'backlight', '${PN}-services-backlight', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'binfmt', '${PN}-services-binfmt', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'dbus', '${PN}-services-dbus', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'firstboot', '${PN}-services-firstboot', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'fuse', '${PN}-services-fuse', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'quota', '${PN}-services-quota', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'rfkill', '${PN}-services-rfkill', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'timesyncd', '${PN}-services-timesyncd', '', d)}  \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'update', '${PN}-services-update', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'vconsole', '${PN}-services-vconsole', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'filesystems', '${PN}-generators-filesystems', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'preset', '${PN}-preset', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'fsck', '${PN}-services-fsck', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'journal', '${PN}-services-journal', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'modules-load', '${PN}-services-modules-load', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'randomseed', '${PN}-services-randomseed', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'sleep', '${PN}-services-sleep', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'sysctl', '${PN}-services-sysctl', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'sysusers', '${PN}-services-sysusers', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'tmpfiles', '${PN}-services-tmpfiles', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'udev', '${PN}-services-udev', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'tools', '${PN}-tools', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'bash', '${PN}-bash', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'initramfs', '${PN}-initramfs', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'kernel-install', '${PN}-kernel-install', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'rpm-macros', '${PN}-rpm-macros', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'zsh', '${PN}-zsh', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'bootchart', '${PN}-services-bootchart', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'debug', '${PN}-services-debug', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'machined', '${PN}-services-machined', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'nspawn', '${PN}-services-nspawn', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'sysvcompat', '${PN}-services-sysvcompat', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'getty', '${PN}-generators-getty', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'getty', '${PN}-services-getty', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'ldconfig', '${PN}-services-ldconfig', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'polkit', '${PN}-services-hostnamed', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'polkit', '${PN}-services-localed', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'polkit', '${PN}-services-logind', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'polkit', '${PN}-services-timedated', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'pam', '${PN}-pam', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'networkd', '${PN}-services-networkd', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-services-networkd', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-services-journal-gatewayd', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'cryptsetup', '${PN}-services-cryptsetup', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'gudev', 'udev-dbg', '', d)} \
> > +        ${@bb.utils.contains('PACKAGECONFIG', 'x11', '${PN}-services-multi-seat-x', '', d)} \
> > +"
> >  
> > -INITSCRIPT_PACKAGES = "udev"
> > -INITSCRIPT_NAME_udev = "systemd-udevd"
> > -INITSCRIPT_PARAMS_udev = "start 03 S ."
> > +########################################################################
> > +# Core Package
> > +########################################################################
> >  
> > -python __anonymous() {
> > -    if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d):
> > -        d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1")
> > -}
> > +CONFFILES_${PN} = "\
> > +        ${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* \
> > +        ${exec_prefix}/lib/libnss_mymachines.so.2 \
> > +        ${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/ \
> > +        ${sysconfdir}/X11/xinit/xinitrc.d/50-systemd-user.sh \
> > +        ${systemd_unitdir}/system-generators/ \
> > +        ${systemd_unitdir}/system-preset/ \
> > +        ${systemd_unitdir}/system-shutdown/ \
> > +        ${systemd_unitdir}/system/ \
> > +"
> >  # TODO:
> >  # u-a for runlevel and telinit
> > +RDEPENDS_${PN} += "kmod dbus util-linux-mount udev (= ${EXTENDPKGV})"
> > +RDEPENDS_${PN} += "volatile-binds"
> > +
> > +RRECOMMENDS_${PN} += "\
> > +        ${PN}-services-base \
> > +        kernel-module-autofs4 \
> > +        kernel-module-ipv6 \
> > +        kernel-module-unix \
> > +        util-linux-agetty \
> > +        util-linux-fsck \
> > +        e2fsprogs-e2fsck \
> > +        os-release \
> > +        udev-hwdb \
> > +        systemd-serialgetty \
> > +        systemd-compat-units \
> > +"
> >  
> >  ALTERNATIVE_${PN} = "init halt reboot shutdown poweroff runlevel"
> >  
> > @@ -385,6 +1015,41 @@ 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 \
> > @@ -402,6 +1067,154 @@ pkg_prerm_udev-hwdb () {
> >  	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 \
> > +        ${rootlibexecdir}/udev/rules.d/70-touchpad.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"
> > +RDEPENDS_udev += "${PN}-services-vconsole"
> > +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")
> > +}
> > +
> > +# TODO:
> > +# u-a for runlevel and telinit
> > +
> > +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"
> > +
> >  # 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 () {
> > 
> 





More information about the Openembedded-core mailing list