Re: [OE-core] [oe-core][PATCH v3 2/3] systemd.bbclass: Use systemd_system_unitdir

2015-07-27 Thread Pau Espin Pedrol
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

2015-07-27 Thread Pau Espin Pedrol
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

2015-07-25 Thread Tanu Kaskinen
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

2015-07-24 Thread Pau Espin Pedrol
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

2015-07-24 Thread Pau Espin Pedrol
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

2015-07-24 Thread Khem Raj
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