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