Bug 11856

Summary: Dependency loop in systemd/cryptsetup.
Product: [Build System, Metadata & Runtime] Meta-yocto Reporter: Johan Anderholm <johan.anderholm>
Component: meta-yoctoAssignee: Richard Purdie <richard.purdie>
Status: RESOLVED INVALID QA Contact:
Severity: normal    
Priority: Undecided CC: johan.anderholm, luca.boccassi, poky.bs.watcher, poky.watcher
Version: unspecified   
Target Milestone: ---   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: Don't know
Attachments:
Description Flags
Log from running bitbake core-image-minimal with systemd and cryptsetup. none

Description Johan Anderholm 2017-07-28 09:03:42 UTC
Created attachment 3898 [details]
Log from running bitbake core-image-minimal with systemd and cryptsetup.

There seem to be a dependency loop in systemd and cryptsetup when building core image minimal. When using the following in my local.conf:

DISTRO_FEATURES_append = " systemd"
PACKAGECONFIG_append_pn-systemd = " cryptsetup"

I get some dependency loops. I don't quite understand where the loop occurs, but I have attached the logs.

I am using the master branches of git://git.yoctoproject.org/poky and git://git.openembedded.org/meta-openembedded (as can be seen in the logs).

This is a regression, as the issue does not exist on the pyro branches.


Build Configuration:
BB_VERSION        = "1.35.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "ubuntu-17.04"
TARGET_SYS        = "i586-poky-linux"
MACHINE           = "qemux86"
DISTRO            = "poky"
DISTRO_VERSION    = "2.3"
TUNE_FEATURES     = "m32 i586"
TARGET_FPU        = ""
meta
meta-poky
meta-yocto-bsp    = "master:3c1c4ceaa470957fe5633d65215f165a38d61be7"
meta-oe           = "master:a8b54e300be027fefe8a774ca1861d0fb8e80d99"
Comment 1 Johan Anderholm 2017-07-28 09:09:44 UTC
There's a commit in meta-openembedded that references this issue:

lvm2: separate libdevmapper to avoid circular dependency (7f17da154372b5ec33947766783444961e8aa67c)

However this doesn't seem to have fixed the issue.
Comment 2 Johan Anderholm 2017-07-28 09:20:07 UTC
I randomly reverted 6aa1dd223a140abc9f7fb6c9e9bf7134abfde5cc in meta-openembedded and that seem to have solved the issue. I'm guessing that commit introduced a systemd dependency in libdevmapper.
Comment 3 Richard Purdie 2017-07-30 10:52:10 UTC
cryptsetup comes from meta-openembedded so its really outside the scope of what we can address within the Yocto Project bugzilla (which doesn't cover meta-oe). You probably need to take this up on the openembedded-devel mailing list with the meta-oe maintainers (or send them a patch fixing it).
Comment 4 Luca Boccassi 2019-09-27 11:16:46 UTC
For posterity, and folks coming from Google, the following commits currently in meta-openembedded/master (queued for Zeus) appear to fix the issue:

64ed8b631 lvm2: Fix RDEPEND on lvm2 to lvm2-udevrules
fbe17b57d lvm2: fix circular dependencies while systemd enable cryptsetup
3f64779ea libdevmapper/lvm2: force recipe libdevmapper to populate sysroot only