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

Pau Espin Pedrol pespin.shar at gmail.com
Fri Jul 24 15:10:31 UTC 2015


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.shar at gmail.com
http://blog.espeweb.net

2015-07-24 16:02 GMT+02:00 Pau Espin Pedrol <pau.espin at aweurope.be>:

> Signed-off-by: Pau Espin Pedrol <pau.espin at 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20150724/c1e8fc8c/attachment-0002.html>


More information about the Openembedded-core mailing list