From: Marcel Sackermann Date: Wed, 9 Feb 2022 21:06:27 +0000 (+0100) Subject: Use Gentoo.EMERGE_UPDATE_OPTS for invoke_emerge call to install pkgs_boot X-Git-Tag: v13~82^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F902%2Fhead;p=thirdparty%2Fmkosi.git 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`. --- 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)