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

Tanu Kaskinen tanu.kaskinen at linux.intel.com
Sat Jul 25 07:29:33 UTC 2015


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





More information about the Openembedded-core mailing list