[oe] Dependency loop in cryptsetup

ChenQi Qi.Chen at windriver.com
Wed Feb 28 07:05:17 UTC 2018


On 02/28/2018 11:48 AM, Md Ismail, Zakiah wrote:
> Hi,
>
> I want to enable cyrptsetup in systemd by adding PACKAGECONFIG_append_pn-systemd = " cryptsetup" in my local.conf; however, I encounter the dependency loop issue. The issue is similar to this: https://bugzilla.yoctoproject.org/show_bug.cgi?id=11856. The difference is I'm using the latest commit from meta-openembedded rocko branch. Please advise on the steps to solve this issue. Thanks in advance!
>
> Regards,
> Zakiah
>
>
I'd like to provide some information here, as I worked on this issue.
When I first encountered this circular dependency problem, I solved this 
problem by separating lvm2 into two recipes and making them having 
different dependencies.
After that, I found that if we do so, then using tools from lvm2 would 
have problem. I did some investigation and found that lvm2 and 
libdevmapper recipes must have the same dependencies to work correctly 
at runtime. So I sent patches to fix this runtime problem, and 
introducing this circular dependency problem back.

That's the whole history of this problem. The current status is that, we 
still have this circular dependency problem.

I thought about this problem for quite a while at that. The circular 
dependency is about the following three packages.
libdevmapper, udev, cryptsetup.
cryptsetup depends on libdevmapper, I checked the its configure and can 
confirm that it's a necessity.
libdevmapper depends on udev (provided by systemd), and this dependency 
could be broke by removing udev from PACKAGECONFIG, with the cost of 
losing of functionality.
udev depends on cryptsetup, and as this is what user wants, the 
dependency could not be broke.

In summary, your only option at the moment is to remove 'udev' from lvm2 
and libdevmapper with the cost of losing some functionality.

P.S.
To totally solve this problem, in the scheme of OE, the only option 
seems to break systemd into multiple recipes, which I really don't 
suggest to do.

Best Regards,
Chen Qi



More information about the Openembedded-devel mailing list