systemd: Fix build when base_libdir is not /lib

we were carrying a wrong patch to fix rootlibdir
to adapt systemd to OE's notion of base_libdir
but thats not right and the units dont get initialised
properly when we have base_libdir which is not /lib

This patch fixes the use of base_libdir where
it should have been catering to notions of systemd/udev
for putting unit files and init scripts in /lib
and not in base_libdir

It also ignores the lib32-* packages so that systemd
build works for multilib enabled systems.

Adapt to nativesdk renaming

Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Khem Raj
2012-10-09 06:44:06 +00:00
parent 4202d1a6e6
commit 69b0e85b41
2 changed files with 45 additions and 39 deletions
+4 -3
View File
@@ -70,7 +70,8 @@ def systemd_after_parse(d):
bpn = d.getVar('BPN', 1) bpn = d.getVar('BPN', 1)
if bpn + "-native" != d.getVar('PN', 1) and \ if bpn + "-native" != d.getVar('PN', 1) and \
bpn + "-cross" != d.getVar('PN', 1) and \ bpn + "-cross" != d.getVar('PN', 1) and \
bpn + "-nativesdk" != d.getVar('PN', 1): not d.getVar('MLPREFIX', 1) and \
"nativesdk-" + bpn != d.getVar('PN', 1):
systemd_check_vars() systemd_check_vars()
for pkg_systemd in d.getVar('SYSTEMD_PACKAGES', 1).split(): for pkg_systemd in d.getVar('SYSTEMD_PACKAGES', 1).split():
systemd_create_package(pkg_systemd) systemd_create_package(pkg_systemd)
@@ -158,8 +159,8 @@ python populate_packages_prepend () {
def systemd_check_services(): def systemd_check_services():
base_libdir = d.getVar('base_libdir', 1) base_libdir = d.getVar('base_libdir', 1)
searchpaths = '/etc/systemd/system/' + ' ' searchpaths = '/etc/systemd/system/' + ' '
searchpaths += d.getVar('base_libdir', 1) + '/systemd/system/' + ' ' searchpaths += '/lib/systemd/system/' + ' '
searchpaths += d.getVar('libdir', 1) + '/systemd/system/' + ' ' searchpaths += '/usr/lib/systemd/system/' + ' '
systemd_packages = d.getVar('SYSTEMD_PACKAGES', 1) systemd_packages = d.getVar('SYSTEMD_PACKAGES', 1)
has_exactly_one_service = len(systemd_packages.split()) == 1 has_exactly_one_service = len(systemd_packages.split()) == 1
if has_exactly_one_service: if has_exactly_one_service:
@@ -90,6 +90,7 @@ do_configure_prepend() {
do_install() { do_install() {
autotools_do_install autotools_do_install
install -d ${D}${base_sbindir}
# provided by a seperate recipe # provided by a seperate recipe
rm ${D}${systemd_unitdir}/system/serial-getty* -f rm ${D}${systemd_unitdir}/system/serial-getty* -f
@@ -98,7 +99,10 @@ do_install() {
# create dir for journal # create dir for journal
install -d ${D}${localstatedir}/log/journal install -d ${D}${localstatedir}/log/journal
# udevd is needed in initramfs which was provided by udev in OE-Core
# so we need to provide that otherwise it pulls in both systemd and
# udev
ln -s ${systemd_unitdir}/systemd-udevd ${D}${base_sbindir}/udevd
# create machine-id # 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 # 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 touch ${D}${sysconfdir}/machine-id
@@ -159,24 +163,24 @@ FILES_${PN} = " ${base_bindir}/* \
${sysconfdir}/init.d/README \ ${sysconfdir}/init.d/README \
${systemd_unitdir}/* \ ${systemd_unitdir}/* \
${systemd_unitdir}/system/* \ ${systemd_unitdir}/system/* \
${base_libdir}/udev/rules.d/99-systemd.rules \ /lib/udev/rules.d/99-systemd.rules \
${base_libdir}/security/*.so \ ${base_libdir}/security/*.so \
/cgroup \ /cgroup \
${bindir}/systemd* \ ${bindir}/systemd* \
${bindir}/localectl \ ${bindir}/localectl \
${bindir}/hostnamectl \ ${bindir}/hostnamectl \
${bindir}/timedatectl \ ${bindir}/timedatectl \
${libdir}/tmpfiles.d/*.conf \ ${exec_prefix}/lib/tmpfiles.d/*.conf \
${libdir}/systemd \ ${exec_prefix}/lib/systemd \
${libdir}/binfmt.d \ ${exec_prefix}/lib/binfmt.d \
${libdir}/modules-load.d \ ${exec_prefix}/lib/modules-load.d \
${libdir}/sysctl.d \ ${exec_prefix}/lib/sysctl.d \
${localstatedir} \ ${localstatedir} \
${libexecdir} \ ${libexecdir} \
${base_libdir}/udev/rules.d/70-uaccess.rules \ /lib/udev/rules.d/70-uaccess.rules \
${base_libdir}/udev/rules.d/71-seat.rules \ /lib/udev/rules.d/71-seat.rules \
${base_libdir}/udev/rules.d/73-seat-late.rules \ /lib/udev/rules.d/73-seat-late.rules \
${base_libdir}/udev/rules.d/99-systemd.rules \ /lib/udev/rules.d/99-systemd.rules \
" "
FILES_${PN}-dbg += "${systemd_unitdir}/.debug ${systemd_unitdir}/*/.debug ${base_libdir}/security/.debug/ ${PYTHON_SITEPACKAGES_DIR}/systemd/.debug/" FILES_${PN}-dbg += "${systemd_unitdir}/.debug ${systemd_unitdir}/*/.debug ${base_libdir}/security/.debug/ ${PYTHON_SITEPACKAGES_DIR}/systemd/.debug/"
FILES_${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd ${PYTHON_SITEPACKAGES_DIR}/systemd/*.la" FILES_${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd ${PYTHON_SITEPACKAGES_DIR}/systemd/*.la"
@@ -200,42 +204,43 @@ RRECOMMENDS_${PN} += "systemd-serialgetty \
PACKAGES =+ "udev-dbg udev udev-consolekit udev-utils udev-systemd" PACKAGES =+ "udev-dbg udev udev-consolekit udev-utils udev-systemd"
FILES_udev-dbg += "${base_libdir}/udev/.debug" FILES_udev-dbg += "/lib/udev/.debug"
RDEPENDS_udev += "udev-utils" RDEPENDS_udev += "udev-utils"
RPROVIDES_udev = "hotplug" RPROVIDES_udev = "hotplug"
FILES_udev += "${base_libdir}/udev/udevd \ FILES_udev += "${base_sbindir}/udevd \
${base_libdir}/systemd/systemd-udevd \ /lib/udev/udevd \
${base_libdir}/udev/accelerometer \ /lib/systemd/systemd-udevd \
${base_libdir}/udev/ata_id \ /lib/udev/accelerometer \
${base_libdir}/udev/cdrom_id \ /lib/udev/ata_id \
${base_libdir}/udev/collect \ /lib/udev/cdrom_id \
${base_libdir}/udev/findkeyboards \ /lib/udev/collect \
${base_libdir}/udev/keyboard-force-release.sh \ /lib/udev/findkeyboards \
${base_libdir}/udev/keymap \ /lib/udev/keyboard-force-release.sh \
${base_libdir}/udev/mtd_probe \ /lib/udev/keymap \
${base_libdir}/udev/scsi_id \ /lib/udev/mtd_probe \
${base_libdir}/udev/v4l_id \ /lib/udev/scsi_id \
${base_libdir}/udev/keymaps \ /lib/udev/v4l_id \
${base_libdir}/udev/rules.d/4*.rules \ /lib/udev/keymaps \
${base_libdir}/udev/rules.d/5*.rules \ /lib/udev/rules.d/4*.rules \
${base_libdir}/udev/rules.d/6*.rules \ /lib/udev/rules.d/5*.rules \
${base_libdir}/udev/rules.d/70-power-switch.rules \ /lib/udev/rules.d/6*.rules \
${base_libdir}/udev/rules.d/75*.rules \ /lib/udev/rules.d/70-power-switch.rules \
${base_libdir}/udev/rules.d/78*.rules \ /lib/udev/rules.d/75*.rules \
${base_libdir}/udev/rules.d/8*.rules \ /lib/udev/rules.d/78*.rules \
${base_libdir}/udev/rules.d/95*.rules \ /lib/udev/rules.d/8*.rules \
${base_libdir}/udev/hwdb.d \ /lib/udev/rules.d/95*.rules \
/lib/udev/hwdb.d \
${sysconfdir}/udev \ ${sysconfdir}/udev \
" "
FILES_udev-consolekit += "${libdir}/ConsoleKit" FILES_udev-consolekit += "/lib/ConsoleKit"
RDEPENDS_udev-consolekit += "${@base_contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d)}" RDEPENDS_udev-consolekit += "${@base_contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d)}"
FILES_udev-utils = "${bindir}/udevadm" FILES_udev-utils = "${bindir}/udevadm"
FILES_udev-systemd = "${base_libdir}/systemd/system/*udev* ${base_libdir}/systemd/system/*.wants/*udev*" FILES_udev-systemd = "${systemd_unitdir}/system/*udev* ${systemd_unitdir}/system/*.wants/*udev*"
RDEPENDS_udev-systemd = "udev" RDEPENDS_udev-systemd = "udev"
# TODO: # TODO: