[Piuparts-devel] Bug#1084173: piuparts: allow-remove-essential exception should be transitive

Shengqi Chen harry-chen at outlook.com
Sun Oct 6 07:21:25 BST 2024


Package: piuparts
Version: 1.4.4
Severity: normal

Dear Maintainer,

I observed errors in recent piuparts run of zfs-linux [1]. dracut 103-2
adds init as its dependency, i.e. there is an dep chain:

zfs-dracut -> dracut -> dracut-core -> init

When piuparts tries to uninstall zfs-dracut, it would also remove all
its dependencies, including init, thus hitting an APT error:

> WARNING: The following essential packages will be removed.
> This should NOT be done unless you know exactly what you are doing!
>   init systemd-sysv (due to init)
> 0 upgraded, 0 newly installed, 74 to remove and 0 not upgraded.
> E: Essential packages were removed and -y was used without --allow-remove-essential.

However, dracut itself does not encounter such error [2] thanks to an
exception rule [3].

Adding zfs-dracut could definitely eliminate this error. Yet all pkgs
depending on dracut (or any pkg in this exception list) will be affected
by this, if I understand how piuparts works correctly.

So I think it might be better to allow some "transitivity", i.e., if any
package has a transitive dependency in this list, then the exception
should also apply to it.

[1]: https://salsa.debian.org/zfsonlinux-team/zfs/-/jobs/6380796/raw
[2]: https://piuparts.debian.org/sid/pass/dracut_103-2.log
[3]: https://salsa.debian.org/debian/piuparts/-/commit/f0f1b5e83c704cb08c6cf32757b05e9c8946f3c1

Thanks,
Shengqi Chen

-- System Information:
Debian Release: 12.7
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)



More information about the Piuparts-devel mailing list