FS#66276 - [systemd] [p11-kit] circular dependency
Attached to Project:
Arch Linux
Opened by Daan De Meyer (DaanDeMeyer) - Thursday, 16 April 2020, 14:54 GMT
Last edited by freswa (frederik) - Monday, 01 June 2020, 22:19 GMT
Opened by Daan De Meyer (DaanDeMeyer) - Thursday, 16 April 2020, 14:54 GMT
Last edited by freswa (frederik) - Monday, 01 June 2020, 22:19 GMT
|
Details
Description:
There's a dependency cycle between systemd and p11-kit: systemd -> libelf -> curl -> ca-certificates -> ca-certificates-mozilla -> ca-certificates-utils -> p11-kit -> systemd When running pacstrap, sometimes I get the warning message: warning: dependency cycle detected: warning: p11-kit will be installed before its systemd dependency This then leads to errors in the installation of p11-kit since it tries to execute systemctl operations which fail because systemctl is not available yet at the time p11-kit is installed. Steps to reproduce: - sudo pacstrap <any-empty-directory> systemd |
This task depends upon
Closed by freswa (frederik)
Monday, 01 June 2020, 22:19 GMT
Reason for closing: Fixed
Additional comments about closing: fixed in p11-kit
Monday, 01 June 2020, 22:19 GMT
Reason for closing: Fixed
Additional comments about closing: fixed in p11-kit
FS#65769...Are you installing from out-of-date mirror?
warning: dependency cycle detected:
warning: libelf will be installed before its curl dependency
I think we have two options here:
* move the dependency on ca-certificates from curl to base
* make libelf's dependency on curl optional
I think splitting off libdebuginfod is not worth the trouble.
FS#66276?[09:02:11] <heftig|M> I would like base to depend on ca-certificates. Having it installed just through curl is a bit weak
[09:09:41] <barthalion> +1
[09:15:39] <eworm> Anybody wants his hands dirty or do you want me to do the change?
[09:18:58] <eworm> Well anthraxx owns base...
anthraxx: added you to this bug
FS#65769(systemd now links to p11-kit?), and the venerableFS#59897which added the problematic systemd dependency to p11-kit in the first place, which is 3 bugs because we are running systemctl commands in the post-install of this package.This is not a new problem. gnupg solves the same problem by not using systemctl and instead using mkdir -p && ln -sf; that's all systemctl does anyway. heftig, you're even the one who added this to the gnupg package... this should be reused in p11-kit too.
Then we can drop the dependency on systemd to resolve the circular dependency:
systemd: still depends on libp11-kit, which doesn't have a bootstrap problem
p11-kit: the dependency is nothing -> systemd -> libelf -> curl -> ca-certificates{,-mozilla,-utils} -> p11-kit -> systemd-libs -> nothing
We don't need to reinvent base or perform additional package splitting or what-have-you.
In fact, we can even merge p11-kit back together, and make systemd just depend on p11-kit, which in turn depends on systemd-libs.