o/ This week I worked on a new feature in germinate that very much improves our ability to express dependencies in the meta packages:
You can now list alternatives for seed entries. For example, and this is the reason that triggered this feature: * systemd-timesyncd | time-daemon How does this work? Germinate will continue to seed the first package as before, it generally ignores any alternatives present, but will add them back when generating meta package dependencies. This means that only the first package ends up getting a Task field, and hence installation during image build - which uses the task feature of apt (apt install task-name^) is still as predictable as before - the resolving there doesn't change (task-name^ expands to all packages with Task: task-name). However, you can then later replace the first package with an alternative. For example, after installing the cloud-minimal task, you can then install chrony and it will replace systemd-timesyncd and satisfy the | time-daemon part of ubuntu-cloud-minimal's dependency. You can also install the meta package and an alternative together, but do note that apt may also pick alternatives for other stuff you did not intend (e.g. if a package was seeded that depends on firefox | www-browser and you install the metapackage and have another www-browser installed, it would not install firefox whereas apt install seed^ would still install firefox despite you having another www-browser), so generally you want to rely on the task field to install and then install anything conflicting with that later. I expect this is mostly useful for virtual packages with a default provider like time-daemon above. It is standard practice for debs to always have `default | virtual-package` as the dependency, and now we can express that in the metapackages as well. Please make sure to use germinate 2.4.2 which will land in mantic probably tomorrow (it needs to be synced from Debian) to update ubuntu-meta to ensure that the alternatives are present. Thank you! -- debian developer - deb.li/jak | jak-linux.org - free software dev ubuntu core developer i speak de, en
signature.asc
Description: PGP signature
-- ubuntu-devel mailing list ubuntu-devel@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel