| Submitter | Khem Raj |
|---|---|
| Date | Jan. 6, 2013, 9:12 a.m. |
| Message ID | <1357463568-26241-18-git-send-email-raj.khem@gmail.com> |
| Download | mbox | patch |
| Permalink | /patch/42045/ |
| State | Accepted, archived |
| Headers | show |
Comments
On Sun, Jan 06, 2013 at 01:12:41AM -0800, Khem Raj wrote: > 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 Whole V3 merged today, bitbake world has some new build issues but none of them is caused by those changes. Thanks khem! Please double check that your systemd changes are also merged to oe-core at some point (I don't think "[OE-core] [PATCH 00/21][RFC v3] systemd Integration" have them all now). Cheers, > Signed-off-by: Khem Raj <raj.khem@gmail.com> > --- > meta-systemd/classes/systemd.bbclass | 7 +- > meta-systemd/recipes-core/systemd/systemd_git.bb | 77 ++++++++++++---------- > 2 files changed, 45 insertions(+), 39 deletions(-) > > diff --git a/meta-systemd/classes/systemd.bbclass b/meta-systemd/classes/systemd.bbclass > index f26c6d1..9582492 100644 > --- a/meta-systemd/classes/systemd.bbclass > +++ b/meta-systemd/classes/systemd.bbclass > @@ -70,7 +70,8 @@ def systemd_after_parse(d): > bpn = d.getVar('BPN', 1) > if bpn + "-native" != 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() > for pkg_systemd in d.getVar('SYSTEMD_PACKAGES', 1).split(): > systemd_create_package(pkg_systemd) > @@ -158,8 +159,8 @@ python populate_packages_prepend () { > def systemd_check_services(): > base_libdir = d.getVar('base_libdir', 1) > searchpaths = '/etc/systemd/system/' + ' ' > - searchpaths += d.getVar('base_libdir', 1) + '/systemd/system/' + ' ' > - searchpaths += d.getVar('libdir', 1) + '/systemd/system/' + ' ' > + searchpaths += '/lib/systemd/system/' + ' ' > + searchpaths += '/usr/lib/systemd/system/' + ' ' > systemd_packages = d.getVar('SYSTEMD_PACKAGES', 1) > has_exactly_one_service = len(systemd_packages.split()) == 1 > if has_exactly_one_service: > diff --git a/meta-systemd/recipes-core/systemd/systemd_git.bb b/meta-systemd/recipes-core/systemd/systemd_git.bb > index 7fa7ac6..5722d35 100644 > --- a/meta-systemd/recipes-core/systemd/systemd_git.bb > +++ b/meta-systemd/recipes-core/systemd/systemd_git.bb > @@ -90,6 +90,7 @@ do_configure_prepend() { > > do_install() { > autotools_do_install > + install -d ${D}${base_sbindir} > # provided by a seperate recipe > rm ${D}${systemd_unitdir}/system/serial-getty* -f > > @@ -98,7 +99,10 @@ do_install() { > > # create dir for 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 > # 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 > @@ -159,24 +163,24 @@ FILES_${PN} = " ${base_bindir}/* \ > ${sysconfdir}/init.d/README \ > ${systemd_unitdir}/* \ > ${systemd_unitdir}/system/* \ > - ${base_libdir}/udev/rules.d/99-systemd.rules \ > + /lib/udev/rules.d/99-systemd.rules \ > ${base_libdir}/security/*.so \ > /cgroup \ > ${bindir}/systemd* \ > ${bindir}/localectl \ > ${bindir}/hostnamectl \ > ${bindir}/timedatectl \ > - ${libdir}/tmpfiles.d/*.conf \ > - ${libdir}/systemd \ > - ${libdir}/binfmt.d \ > - ${libdir}/modules-load.d \ > - ${libdir}/sysctl.d \ > + ${exec_prefix}/lib/tmpfiles.d/*.conf \ > + ${exec_prefix}/lib/systemd \ > + ${exec_prefix}/lib/binfmt.d \ > + ${exec_prefix}/lib/modules-load.d \ > + ${exec_prefix}/lib/sysctl.d \ > ${localstatedir} \ > ${libexecdir} \ > - ${base_libdir}/udev/rules.d/70-uaccess.rules \ > - ${base_libdir}/udev/rules.d/71-seat.rules \ > - ${base_libdir}/udev/rules.d/73-seat-late.rules \ > - ${base_libdir}/udev/rules.d/99-systemd.rules \ > + /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 \ > " > 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" > @@ -200,42 +204,43 @@ RRECOMMENDS_${PN} += "systemd-serialgetty \ > > 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" > RPROVIDES_udev = "hotplug" > > -FILES_udev += "${base_libdir}/udev/udevd \ > - ${base_libdir}/systemd/systemd-udevd \ > - ${base_libdir}/udev/accelerometer \ > - ${base_libdir}/udev/ata_id \ > - ${base_libdir}/udev/cdrom_id \ > - ${base_libdir}/udev/collect \ > - ${base_libdir}/udev/findkeyboards \ > - ${base_libdir}/udev/keyboard-force-release.sh \ > - ${base_libdir}/udev/keymap \ > - ${base_libdir}/udev/mtd_probe \ > - ${base_libdir}/udev/scsi_id \ > - ${base_libdir}/udev/v4l_id \ > - ${base_libdir}/udev/keymaps \ > - ${base_libdir}/udev/rules.d/4*.rules \ > - ${base_libdir}/udev/rules.d/5*.rules \ > - ${base_libdir}/udev/rules.d/6*.rules \ > - ${base_libdir}/udev/rules.d/70-power-switch.rules \ > - ${base_libdir}/udev/rules.d/75*.rules \ > - ${base_libdir}/udev/rules.d/78*.rules \ > - ${base_libdir}/udev/rules.d/8*.rules \ > - ${base_libdir}/udev/rules.d/95*.rules \ > - ${base_libdir}/udev/hwdb.d \ > +FILES_udev += "${base_sbindir}/udevd \ > + /lib/udev/udevd \ > + /lib/systemd/systemd-udevd \ > + /lib/udev/accelerometer \ > + /lib/udev/ata_id \ > + /lib/udev/cdrom_id \ > + /lib/udev/collect \ > + /lib/udev/findkeyboards \ > + /lib/udev/keyboard-force-release.sh \ > + /lib/udev/keymap \ > + /lib/udev/mtd_probe \ > + /lib/udev/scsi_id \ > + /lib/udev/v4l_id \ > + /lib/udev/keymaps \ > + /lib/udev/rules.d/4*.rules \ > + /lib/udev/rules.d/5*.rules \ > + /lib/udev/rules.d/6*.rules \ > + /lib/udev/rules.d/70-power-switch.rules \ > + /lib/udev/rules.d/75*.rules \ > + /lib/udev/rules.d/78*.rules \ > + /lib/udev/rules.d/8*.rules \ > + /lib/udev/rules.d/95*.rules \ > + /lib/udev/hwdb.d \ > ${sysconfdir}/udev \ > " > > -FILES_udev-consolekit += "${libdir}/ConsoleKit" > +FILES_udev-consolekit += "/lib/ConsoleKit" > RDEPENDS_udev-consolekit += "${@base_contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d)}" > > 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" > > # TODO: > -- > 1.7.9.5 > > > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
Patch
diff --git a/meta-systemd/classes/systemd.bbclass b/meta-systemd/classes/systemd.bbclass index f26c6d1..9582492 100644 --- a/meta-systemd/classes/systemd.bbclass +++ b/meta-systemd/classes/systemd.bbclass @@ -70,7 +70,8 @@ def systemd_after_parse(d): bpn = d.getVar('BPN', 1) if bpn + "-native" != 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() for pkg_systemd in d.getVar('SYSTEMD_PACKAGES', 1).split(): systemd_create_package(pkg_systemd) @@ -158,8 +159,8 @@ python populate_packages_prepend () { def systemd_check_services(): base_libdir = d.getVar('base_libdir', 1) searchpaths = '/etc/systemd/system/' + ' ' - searchpaths += d.getVar('base_libdir', 1) + '/systemd/system/' + ' ' - searchpaths += d.getVar('libdir', 1) + '/systemd/system/' + ' ' + searchpaths += '/lib/systemd/system/' + ' ' + searchpaths += '/usr/lib/systemd/system/' + ' ' systemd_packages = d.getVar('SYSTEMD_PACKAGES', 1) has_exactly_one_service = len(systemd_packages.split()) == 1 if has_exactly_one_service: diff --git a/meta-systemd/recipes-core/systemd/systemd_git.bb b/meta-systemd/recipes-core/systemd/systemd_git.bb index 7fa7ac6..5722d35 100644 --- a/meta-systemd/recipes-core/systemd/systemd_git.bb +++ b/meta-systemd/recipes-core/systemd/systemd_git.bb @@ -90,6 +90,7 @@ do_configure_prepend() { do_install() { autotools_do_install + install -d ${D}${base_sbindir} # provided by a seperate recipe rm ${D}${systemd_unitdir}/system/serial-getty* -f @@ -98,7 +99,10 @@ do_install() { # create dir for 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 # 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 @@ -159,24 +163,24 @@ FILES_${PN} = " ${base_bindir}/* \ ${sysconfdir}/init.d/README \ ${systemd_unitdir}/* \ ${systemd_unitdir}/system/* \ - ${base_libdir}/udev/rules.d/99-systemd.rules \ + /lib/udev/rules.d/99-systemd.rules \ ${base_libdir}/security/*.so \ /cgroup \ ${bindir}/systemd* \ ${bindir}/localectl \ ${bindir}/hostnamectl \ ${bindir}/timedatectl \ - ${libdir}/tmpfiles.d/*.conf \ - ${libdir}/systemd \ - ${libdir}/binfmt.d \ - ${libdir}/modules-load.d \ - ${libdir}/sysctl.d \ + ${exec_prefix}/lib/tmpfiles.d/*.conf \ + ${exec_prefix}/lib/systemd \ + ${exec_prefix}/lib/binfmt.d \ + ${exec_prefix}/lib/modules-load.d \ + ${exec_prefix}/lib/sysctl.d \ ${localstatedir} \ ${libexecdir} \ - ${base_libdir}/udev/rules.d/70-uaccess.rules \ - ${base_libdir}/udev/rules.d/71-seat.rules \ - ${base_libdir}/udev/rules.d/73-seat-late.rules \ - ${base_libdir}/udev/rules.d/99-systemd.rules \ + /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 \ " 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" @@ -200,42 +204,43 @@ RRECOMMENDS_${PN} += "systemd-serialgetty \ 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" RPROVIDES_udev = "hotplug" -FILES_udev += "${base_libdir}/udev/udevd \ - ${base_libdir}/systemd/systemd-udevd \ - ${base_libdir}/udev/accelerometer \ - ${base_libdir}/udev/ata_id \ - ${base_libdir}/udev/cdrom_id \ - ${base_libdir}/udev/collect \ - ${base_libdir}/udev/findkeyboards \ - ${base_libdir}/udev/keyboard-force-release.sh \ - ${base_libdir}/udev/keymap \ - ${base_libdir}/udev/mtd_probe \ - ${base_libdir}/udev/scsi_id \ - ${base_libdir}/udev/v4l_id \ - ${base_libdir}/udev/keymaps \ - ${base_libdir}/udev/rules.d/4*.rules \ - ${base_libdir}/udev/rules.d/5*.rules \ - ${base_libdir}/udev/rules.d/6*.rules \ - ${base_libdir}/udev/rules.d/70-power-switch.rules \ - ${base_libdir}/udev/rules.d/75*.rules \ - ${base_libdir}/udev/rules.d/78*.rules \ - ${base_libdir}/udev/rules.d/8*.rules \ - ${base_libdir}/udev/rules.d/95*.rules \ - ${base_libdir}/udev/hwdb.d \ +FILES_udev += "${base_sbindir}/udevd \ + /lib/udev/udevd \ + /lib/systemd/systemd-udevd \ + /lib/udev/accelerometer \ + /lib/udev/ata_id \ + /lib/udev/cdrom_id \ + /lib/udev/collect \ + /lib/udev/findkeyboards \ + /lib/udev/keyboard-force-release.sh \ + /lib/udev/keymap \ + /lib/udev/mtd_probe \ + /lib/udev/scsi_id \ + /lib/udev/v4l_id \ + /lib/udev/keymaps \ + /lib/udev/rules.d/4*.rules \ + /lib/udev/rules.d/5*.rules \ + /lib/udev/rules.d/6*.rules \ + /lib/udev/rules.d/70-power-switch.rules \ + /lib/udev/rules.d/75*.rules \ + /lib/udev/rules.d/78*.rules \ + /lib/udev/rules.d/8*.rules \ + /lib/udev/rules.d/95*.rules \ + /lib/udev/hwdb.d \ ${sysconfdir}/udev \ " -FILES_udev-consolekit += "${libdir}/ConsoleKit" +FILES_udev-consolekit += "/lib/ConsoleKit" RDEPENDS_udev-consolekit += "${@base_contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d)}" 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" # TODO:
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> --- meta-systemd/classes/systemd.bbclass | 7 +- meta-systemd/recipes-core/systemd/systemd_git.bb | 77 ++++++++++++---------- 2 files changed, 45 insertions(+), 39 deletions(-)