Re: [OE-core] [oe-core][PATCH v3 2/3] systemd.bbclass: Use systemd_system_unitdir
Hi Khem, This series of patches have as an objective to improve systemd support in OE, specifically improve support for user services. If you want more information, you can follow the discussion from last patch version I sent and also the yocto bug report: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7801 http://patches.openembedded.org/patch/97291/ Pau Espin Pedrol mail/jabber: pespin.s...@gmail.com http://blog.espeweb.net 2015-07-25 3:26 GMT+02:00 Khem Raj raj.k...@gmail.com: On Fri, Jul 24, 2015 at 7:02 AM, Pau Espin Pedrol pau.es...@aweurope.be wrote: Signed-off-by: Pau Espin Pedrol pau.es...@aweurope.be --- meta/classes/systemd.bbclass | 9 - 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/meta/classes/systemd.bbclass b/meta/classes/systemd.bbclass index cfe1eb5..46e72c7 100644 --- a/meta/classes/systemd.bbclass +++ b/meta/classes/systemd.bbclass @@ -136,8 +136,7 @@ python systemd_populate_packages() { # Check service-files and call systemd_add_files_and_parse for each entry def systemd_check_services(): searchpaths = [oe.path.join(d.getVar(sysconfdir, True), systemd, system),] -searchpaths.append(oe.path.join(d.getVar(nonarch_base_libdir, True), systemd, system)) -searchpaths.append(oe.path.join(d.getVar(exec_prefix, True), d.getVar(nonarch_base_libdir, True), systemd, system)) +searchpaths.append(d.getVar(systemd_system_unitdir, True)) systemd_packages = d.getVar('SYSTEMD_PACKAGES', True) keys = 'Also' @@ -185,10 +184,10 @@ python rm_sysvinit_initddir (){ if bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d) and \ not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d) and \ os.path.exists(sysv_initddir): -systemd_unitdir = oe.path.join(d.getVar(D, True), d.getVar('systemd_unitdir', True), system) +systemd_system_unitdir = oe.path.join(d.getVar(D, True), d.getVar('systemd_system_unitdir', True)) -# If systemd_unitdir contains anything, delete sysv_initddir -if (os.path.exists(systemd_unitdir) and os.listdir(systemd_unitdir)): +# If systemd_system_unitdir contains anything, delete sysv_initddir +if (os.path.exists(systemd_system_unitdir) and os.listdir(systemd_system_unitdir)): shutil.rmtree(sysv_initddir) } do_install[postfuncs] += rm_sysvinit_initddir what does this patch solve ? -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [oe-core][PATCH v3 2/3] systemd.bbclass: Use systemd_system_unitdir
OK Tanu, I will try to do some tests and prepare new patches during the following days. Thanks for reviewing, Pau Espin Pedrol mail/jabber: pespin.s...@gmail.com http://blog.espeweb.net 2015-07-25 9:29 GMT+02:00 Tanu Kaskinen tanu.kaski...@linux.intel.com: On Fri, 2015-07-24 at 17:10 +0200, Pau Espin Pedrol wrote: Hi, actually this breaks build of systemd.bb itself, because it installs its system recipes using paths from Makefile.am: userunitdir=$(prefix)/lib/systemd/user systemunitdir=$(rootprefix)/lib/systemd/system And in the recipe for systemd_219.bb we have: # Helper variables to clarify locations. This mirrors the logic in systemd's # build system. rootprefix ?= ${base_prefix} rootlibdir ?= ${base_libdir} rootlibexecdir = ${rootprefix}/lib So, that means it installs its own services into /lib, not /usr/lib. The changes done in systemd.bbclass in this patch remove the search path of /lib, allowing only ${system_system_unitdir} which is /usr/lib/systemd/system. I tried changing rootprefix to use ${prefix} but then I get other problems: ERROR: QA Issue: systemd: Files/directories were installed but not shipped /usr/bin/udevadm /usr/bin/journalctl /usr/bin/loginctl /usr/bin/machinectl /usr/bin/systemctl /usr/lib/udev/.debug /usr/lib/udev/.debug/cdrom_id /usr/lib/udev/.debug/collect /usr/lib/udev/.debug/ata_id /usr/lib/udev/.debug/v4l_id /usr/lib/udev/.debug/mtd_probe /usr/lib/udev/.debug/scsi_id /usr/lib/udev/.debug/accelerometer /usr/lib/udev/rules.d/70-uaccess.rules /usr/lib/udev/rules.d/73-seat-late.rules /usr/lib/udev/rules.d/71-seat.rules /usr/lib/udev/rules.d/99-systemd.rules Which at the end makes me think... is it really a good idea to set systemd_unitdir and system_system_unitdir to use ${nonarch_libdir}? I think we should be better using ${nonarch_base_libdir} for those, as systemd guys themselves make distinction between both (prefix vs rootprefix). I agree. ${nonarch_base_libdir} seems to be definitely the right place to put system service files. This may change if some day nobody will have a separate /usr partition any more (which is what the systemd developers are pushing for, AFAIK), but as long as we have to deal with systems with a separate /usr partition, I think using /lib is the only safe choice. -- Tanu -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [oe-core][PATCH v3 2/3] systemd.bbclass: Use systemd_system_unitdir
On Fri, 2015-07-24 at 17:10 +0200, Pau Espin Pedrol wrote: Hi, actually this breaks build of systemd.bb itself, because it installs its system recipes using paths from Makefile.am: userunitdir=$(prefix)/lib/systemd/user systemunitdir=$(rootprefix)/lib/systemd/system And in the recipe for systemd_219.bb we have: # Helper variables to clarify locations. This mirrors the logic in systemd's # build system. rootprefix ?= ${base_prefix} rootlibdir ?= ${base_libdir} rootlibexecdir = ${rootprefix}/lib So, that means it installs its own services into /lib, not /usr/lib. The changes done in systemd.bbclass in this patch remove the search path of /lib, allowing only ${system_system_unitdir} which is /usr/lib/systemd/system. I tried changing rootprefix to use ${prefix} but then I get other problems: ERROR: QA Issue: systemd: Files/directories were installed but not shipped /usr/bin/udevadm /usr/bin/journalctl /usr/bin/loginctl /usr/bin/machinectl /usr/bin/systemctl /usr/lib/udev/.debug /usr/lib/udev/.debug/cdrom_id /usr/lib/udev/.debug/collect /usr/lib/udev/.debug/ata_id /usr/lib/udev/.debug/v4l_id /usr/lib/udev/.debug/mtd_probe /usr/lib/udev/.debug/scsi_id /usr/lib/udev/.debug/accelerometer /usr/lib/udev/rules.d/70-uaccess.rules /usr/lib/udev/rules.d/73-seat-late.rules /usr/lib/udev/rules.d/71-seat.rules /usr/lib/udev/rules.d/99-systemd.rules Which at the end makes me think... is it really a good idea to set systemd_unitdir and system_system_unitdir to use ${nonarch_libdir}? I think we should be better using ${nonarch_base_libdir} for those, as systemd guys themselves make distinction between both (prefix vs rootprefix). I agree. ${nonarch_base_libdir} seems to be definitely the right place to put system service files. This may change if some day nobody will have a separate /usr partition any more (which is what the systemd developers are pushing for, AFAIK), but as long as we have to deal with systems with a separate /usr partition, I think using /lib is the only safe choice. -- Tanu -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [oe-core][PATCH v3 2/3] systemd.bbclass: Use systemd_system_unitdir
Hi, actually this breaks build of systemd.bb itself, because it installs its system recipes using paths from Makefile.am: userunitdir=$(prefix)/lib/systemd/user systemunitdir=$(rootprefix)/lib/systemd/system And in the recipe for systemd_219.bb we have: # Helper variables to clarify locations. This mirrors the logic in systemd's # build system. rootprefix ?= ${base_prefix} rootlibdir ?= ${base_libdir} rootlibexecdir = ${rootprefix}/lib So, that means it installs its own services into /lib, not /usr/lib. The changes done in systemd.bbclass in this patch remove the search path of /lib, allowing only ${system_system_unitdir} which is /usr/lib/systemd/system. I tried changing rootprefix to use ${prefix} but then I get other problems: ERROR: QA Issue: systemd: Files/directories were installed but not shipped /usr/bin/udevadm /usr/bin/journalctl /usr/bin/loginctl /usr/bin/machinectl /usr/bin/systemctl /usr/lib/udev/.debug /usr/lib/udev/.debug/cdrom_id /usr/lib/udev/.debug/collect /usr/lib/udev/.debug/ata_id /usr/lib/udev/.debug/v4l_id /usr/lib/udev/.debug/mtd_probe /usr/lib/udev/.debug/scsi_id /usr/lib/udev/.debug/accelerometer /usr/lib/udev/rules.d/70-uaccess.rules /usr/lib/udev/rules.d/73-seat-late.rules /usr/lib/udev/rules.d/71-seat.rules /usr/lib/udev/rules.d/99-systemd.rules Which at the end makes me think... is it really a good idea to set systemd_unitdir and system_system_unitdir to use ${nonarch_libdir}? I think we should be better using ${nonarch_base_libdir} for those, as systemd guys themselves make distinction between both (prefix vs rootprefix). Any thoughts on this? I will redo the patches accordingly once I get some more opinions. Pau Espin Pedrol mail/jabber: pespin.s...@gmail.com http://blog.espeweb.net 2015-07-24 16:02 GMT+02:00 Pau Espin Pedrol pau.es...@aweurope.be: Signed-off-by: Pau Espin Pedrol pau.es...@aweurope.be --- meta/classes/systemd.bbclass | 9 - 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/meta/classes/systemd.bbclass b/meta/classes/systemd.bbclass index cfe1eb5..46e72c7 100644 --- a/meta/classes/systemd.bbclass +++ b/meta/classes/systemd.bbclass @@ -136,8 +136,7 @@ python systemd_populate_packages() { # Check service-files and call systemd_add_files_and_parse for each entry def systemd_check_services(): searchpaths = [oe.path.join(d.getVar(sysconfdir, True), systemd, system),] -searchpaths.append(oe.path.join(d.getVar(nonarch_base_libdir, True), systemd, system)) -searchpaths.append(oe.path.join(d.getVar(exec_prefix, True), d.getVar(nonarch_base_libdir, True), systemd, system)) +searchpaths.append(d.getVar(systemd_system_unitdir, True)) systemd_packages = d.getVar('SYSTEMD_PACKAGES', True) keys = 'Also' @@ -185,10 +184,10 @@ python rm_sysvinit_initddir (){ if bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d) and \ not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d) and \ os.path.exists(sysv_initddir): -systemd_unitdir = oe.path.join(d.getVar(D, True), d.getVar('systemd_unitdir', True), system) +systemd_system_unitdir = oe.path.join(d.getVar(D, True), d.getVar('systemd_system_unitdir', True)) -# If systemd_unitdir contains anything, delete sysv_initddir -if (os.path.exists(systemd_unitdir) and os.listdir(systemd_unitdir)): +# If systemd_system_unitdir contains anything, delete sysv_initddir +if (os.path.exists(systemd_system_unitdir) and os.listdir(systemd_system_unitdir)): shutil.rmtree(sysv_initddir) } do_install[postfuncs] += rm_sysvinit_initddir -- 1.9.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [oe-core][PATCH v3 2/3] systemd.bbclass: Use systemd_system_unitdir
Signed-off-by: Pau Espin Pedrol pau.es...@aweurope.be --- meta/classes/systemd.bbclass | 9 - 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/meta/classes/systemd.bbclass b/meta/classes/systemd.bbclass index cfe1eb5..46e72c7 100644 --- a/meta/classes/systemd.bbclass +++ b/meta/classes/systemd.bbclass @@ -136,8 +136,7 @@ python systemd_populate_packages() { # Check service-files and call systemd_add_files_and_parse for each entry def systemd_check_services(): searchpaths = [oe.path.join(d.getVar(sysconfdir, True), systemd, system),] -searchpaths.append(oe.path.join(d.getVar(nonarch_base_libdir, True), systemd, system)) -searchpaths.append(oe.path.join(d.getVar(exec_prefix, True), d.getVar(nonarch_base_libdir, True), systemd, system)) +searchpaths.append(d.getVar(systemd_system_unitdir, True)) systemd_packages = d.getVar('SYSTEMD_PACKAGES', True) keys = 'Also' @@ -185,10 +184,10 @@ python rm_sysvinit_initddir (){ if bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d) and \ not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d) and \ os.path.exists(sysv_initddir): -systemd_unitdir = oe.path.join(d.getVar(D, True), d.getVar('systemd_unitdir', True), system) +systemd_system_unitdir = oe.path.join(d.getVar(D, True), d.getVar('systemd_system_unitdir', True)) -# If systemd_unitdir contains anything, delete sysv_initddir -if (os.path.exists(systemd_unitdir) and os.listdir(systemd_unitdir)): +# If systemd_system_unitdir contains anything, delete sysv_initddir +if (os.path.exists(systemd_system_unitdir) and os.listdir(systemd_system_unitdir)): shutil.rmtree(sysv_initddir) } do_install[postfuncs] += rm_sysvinit_initddir -- 1.9.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [oe-core][PATCH v3 2/3] systemd.bbclass: Use systemd_system_unitdir
On Fri, Jul 24, 2015 at 7:02 AM, Pau Espin Pedrol pau.es...@aweurope.be wrote: Signed-off-by: Pau Espin Pedrol pau.es...@aweurope.be --- meta/classes/systemd.bbclass | 9 - 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/meta/classes/systemd.bbclass b/meta/classes/systemd.bbclass index cfe1eb5..46e72c7 100644 --- a/meta/classes/systemd.bbclass +++ b/meta/classes/systemd.bbclass @@ -136,8 +136,7 @@ python systemd_populate_packages() { # Check service-files and call systemd_add_files_and_parse for each entry def systemd_check_services(): searchpaths = [oe.path.join(d.getVar(sysconfdir, True), systemd, system),] -searchpaths.append(oe.path.join(d.getVar(nonarch_base_libdir, True), systemd, system)) -searchpaths.append(oe.path.join(d.getVar(exec_prefix, True), d.getVar(nonarch_base_libdir, True), systemd, system)) +searchpaths.append(d.getVar(systemd_system_unitdir, True)) systemd_packages = d.getVar('SYSTEMD_PACKAGES', True) keys = 'Also' @@ -185,10 +184,10 @@ python rm_sysvinit_initddir (){ if bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d) and \ not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d) and \ os.path.exists(sysv_initddir): -systemd_unitdir = oe.path.join(d.getVar(D, True), d.getVar('systemd_unitdir', True), system) +systemd_system_unitdir = oe.path.join(d.getVar(D, True), d.getVar('systemd_system_unitdir', True)) -# If systemd_unitdir contains anything, delete sysv_initddir -if (os.path.exists(systemd_unitdir) and os.listdir(systemd_unitdir)): +# If systemd_system_unitdir contains anything, delete sysv_initddir +if (os.path.exists(systemd_system_unitdir) and os.listdir(systemd_system_unitdir)): shutil.rmtree(sysv_initddir) } do_install[postfuncs] += rm_sysvinit_initddir what does this patch solve ? -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core