]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Use Gentoo.EMERGE_UPDATE_OPTS for invoke_emerge call to install pkgs_boot 902/head
authorMarcel Sackermann <marcel@m0gg.org>
Wed, 9 Feb 2022 21:06:27 +0000 (22:06 +0100)
committerMarcel Sackermann <marcel@m0gg.org>
Wed, 9 Feb 2022 21:06:27 +0000 (22:06 +0100)
Using Gentoo.EMERGE_UPDATE_OPTS allows for greater maintainability than directly
specifying `--update` and `--deep`.

The configured `opts` for `invoke_emerge` enable the package manager to replace
blocking packages. This is required to successfully replace
`sys-kernel/installkernel-gentoo` (which is already installed in the gentoo
stage3 tar ball) with the requested `sys-kernel/installkernel-systemd-boot`.

mkosi/__init__.py

index a0553f4176aa8453560a4533f38c6860ff6b08af..4f04b7406f67a3326ee1562ec12229ae1be9ec8a 100644 (file)
@@ -3122,11 +3122,10 @@ def install_gentoo(
         # Please don't move, needs to be called before installing dracut
         # dracut is part of gentoo_pkgs_boot
         configure_dracut(args, packages={"dracut"}, root=root)
-        # Installing sys-kernel/installkernel-systemd-boot fails spectacularly
-        # due to beeing soft blocked by sys-kernel/installkernel-gentoo (which
-        # is pulled in by debianutils) unless --update and --deep is also
-        # specified
-        gentoo.invoke_emerge(args, root, pkgs=gentoo.pkgs_boot, opts=["--update", "--deep"])
+        # The gentoo stage3 tarball includes packages that may block chosen
+        # pkgs_boot. Using Gentoo.EMERGE_UPDATE_OPTS for opts allows the
+        # package manager to uninstall blockers.
+        gentoo.invoke_emerge(args, root, pkgs=gentoo.pkgs_boot, opts=Gentoo.EMERGE_UPDATE_OPTS)
 
     if args.packages:
         gentoo.invoke_emerge(args, root, pkgs=args.packages)