[Bug 2036195] Re: Any packages installed in binary hooks are marked as manually installed - even dependencies
Philip Roche
2036195 at bugs.launchpad.net
Tue Feb 6 11:39:50 UTC 2024
I have verified this change once more with test build using livecd-
rootfs 2.664.52 in focal-proposed.
Any dependent packages on packages removed during build were
successfully removed as they were successfully marked as autoremovable.
Also confirmed that any dependent packages also marked auto auto
installed.
Marking as `verification-done-focal`
** Tags removed: verification-needed-focal
** Tags added: verification-done-focal
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to livecd-rootfs in Ubuntu.
https://bugs.launchpad.net/bugs/2036195
Title:
Any packages installed in binary hooks are marked as manually
installed - even dependencies
Status in livecd-rootfs package in Ubuntu:
Fix Released
Status in livecd-rootfs source package in Xenial:
Fix Released
Status in livecd-rootfs source package in Bionic:
Fix Released
Status in livecd-rootfs source package in Focal:
Fix Committed
Status in livecd-rootfs source package in Jammy:
Fix Released
Status in livecd-rootfs source package in Lunar:
Fix Released
Bug description:
After much debugging trying to understand why `apt-get autoremove` was
not working in a binary hook I realised that all packages installed in
a binary hook are marked as manually installed - even the dependencies
of packages. This is a bug.
Another side affect of this is that any dependency of a package in the
base chroot that is removed in a binary hook is not autoremovable in
the binary hook.
It is autoremovable once the image is created and launched though.
This is due to how the `setup_mountpoint` function works (see
https://git.launchpad.net/livecd-rootfs/tree/live-
build/functions#n123) specifically
```
mount -t tmpfs none "$mountpoint/var/lib/apt"
```
Which means that inside the chroot that the binary hook works on, the
`/var/lib/apt` directory is empty... including the
`/var/lib/apt/extended_states` file which is used to store whether a
package was auto installed or not.
The same goes the other way - any changes to the
`/var/lib/apt/extended_states` file inside chroot that the binary
hook is changing are not reflected in the final image due to the
`teardown_mountpoint` (see https://git.launchpad.net/livecd-
rootfs/tree/live-build/functions#n152) not persisting any of those
changes.
The end result being.
* If a package is removed in the binary hook then the resulting image will likely have autoremovable packages at first launch
* Any package and their dependencies installed in a binary hook will all be marked as manually installed.
SRU
====
[ Impact ]
* Packages installed in a binary hook are marked as manually
installed - even the dependencies of packages
[ Test Plan ]
* Build test images and remove a package with dependencies.
* Confirm that the dependencies are marked as autoremovable.
* Confirm there are packages marked as auto installed
[ Where problems could occur ]
* Is any dependent packages are not marked as autremovable.
* If no packages are marked as auto installed
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/livecd-rootfs/+bug/2036195/+subscriptions
More information about the foundations-bugs
mailing list