From f96b7a27eaed5af58b190664eeab6b1dd31ea9bb Mon Sep 17 00:00:00 2001 From: Marcel Sackermann Date: Wed, 9 Feb 2022 22:06:27 +0100 Subject: [PATCH] Use Gentoo.EMERGE_UPDATE_OPTS for invoke_emerge call to install pkgs_boot 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 | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/mkosi/__init__.py b/mkosi/__init__.py index a0553f417..4f04b7406 100644 --- a/mkosi/__init__.py +++ b/mkosi/__init__.py @@ -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) -- 2.47.2