From: Daan De Meyer Date: Tue, 8 Aug 2023 11:17:45 +0000 (+0200) Subject: Mark gentoo as experimental and unsupported X-Git-Tag: v15~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7bb87d7d011162f503b842b02bbe9e157cb6f116;p=thirdparty%2Fmkosi.git Mark gentoo as experimental and unsupported Gentoo issues won't be actively looked at by the core maintainers and there's no guarantee that gentoo PRs will get reviewed or not (or they might just be merged without review). Gentoo specific hacks outside of gentoo.py will generally not be accepted. - We also drop all gentoo specific modifications outside of gentoo.py - We also stop running CI for gentoo Conditions for dropping the experimental status of gentoo: - No more stage 3 tarball required to build a gentoo image. Either we only do binary packages or gentoo images can be built from directly from an immutable host system or tools tree with portage and compiler tools installed - Proper division of systemd components into subpackages so that we can build a gentoo initrd with systemd installed but without pulling in ukify and python - An official and up-to-date binary package repository that allows gentoo CI to complete in a similar amount of time as the other distributions --- diff --git a/.github/mkosi.conf.d/20-gentoo.conf b/.github/mkosi.conf.d/20-gentoo.conf deleted file mode 100644 index 415c2ec41..000000000 --- a/.github/mkosi.conf.d/20-gentoo.conf +++ /dev/null @@ -1,15 +0,0 @@ -[Match] -Distribution=gentoo - -[Content] -Environment=PORTAGE_BINHOST=https://raw.githubusercontent.com/257/binpkgs/master -# needed for system-9999 -PackageManagerTrees=mkosi.pkgmngr/gentoo -Packages=sys-kernel/gentoo-kernel-bin[initramfs] - =sys-apps/systemd-9999[boot] - # Failed to execute /usr/lib/systemd/system-environment-generators/10-gentoo-path: No such file or directory - # Failed to execute /usr/lib/systemd/system-generators/gentoo-local-generator: No such file or directory - sys-apps/gentoo-systemd-integration - app-shells/bash - # mkosi-check-and-shutdown.sh[46]: /usr/lib/systemd/mkosi-check-and-shutdown.sh: line 5: tee: command not found - sys-apps/coreutils diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 426ef6f95..6913a8831 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -95,7 +95,6 @@ jobs: - fedora - rocky - alma - - gentoo - opensuse format: - directory diff --git a/NEWS.md b/NEWS.md index ec3182ced..8e66c42f0 100644 --- a/NEWS.md +++ b/NEWS.md @@ -106,6 +106,11 @@ - Removed `--tar-strip-selinux-context=` option. We now label all files properly if selinux is enabled and if users don't want the labels, they can simply exclude them when extracting the archive. +- Gentoo is now marked as experimental and unsupported and there's no + guarantee at all that it will work. Issues related to gentoo will + generally not receive attention from core maintainers. All gentoo + specific hacks outside of the gentoo implementation module have been + removed. ## v14 diff --git a/mkosi.md b/mkosi.md index a89c824cd..2b1de0ffe 100644 --- a/mkosi.md +++ b/mkosi.md @@ -306,7 +306,7 @@ they should be specified with a boolean argument: either "1", "yes", or "true" t : The distribution to install in the image. Takes one of the following arguments: `fedora`, `debian`, `ubuntu`, `arch`, `opensuse`, `mageia`, - `centos`, `openmandriva`, `rocky`, `alma` or `gentoo`. If not + `centos`, `openmandriva`, `rocky`, `alma`. If not specified, defaults to the distribution of the host. `Release=`, `--release=`, `-r` @@ -1018,7 +1018,9 @@ distributions: * *Alma Linux* -* *Gentoo* +* *Gentoo* (**Gentoo is experimental and unsupported. We make no + guarantee that it will work at all and the core maintainers will + generally not fix gentoo specific issues**) In theory, any distribution may be used on the host for building images containing any other distribution, as long as the necessary tools are diff --git a/mkosi/__init__.py b/mkosi/__init__.py index 5122a7d65..07ef486ad 100644 --- a/mkosi/__init__.py +++ b/mkosi/__init__.py @@ -634,8 +634,6 @@ def install_unified_kernel(state: MkosiState, roothash: Optional[str]) -> None: "--package", "util-linux", "--package", "kmod", *(["--package", "dmsetup"] if state.config.distribution.is_apt_distribution() else []), - *(["--package", "udev"] if not state.config.distribution.is_portage_distribution() else []), - *(["--package", "bash"] if state.config.distribution.is_portage_distribution() else []), "--output", f"{state.config.output}-initrd", *(["--image-version", state.config.image_version] if state.config.image_version else []), "--make-initrd", "yes", diff --git a/mkosi/distributions/__init__.py b/mkosi/distributions/__init__.py index f0c4bf5d6..20d4d215b 100644 --- a/mkosi/distributions/__init__.py +++ b/mkosi/distributions/__init__.py @@ -80,9 +80,6 @@ class Distribution(StrEnum): def is_apt_distribution(self) -> bool: return self in (Distribution.debian, Distribution.ubuntu) - def is_portage_distribution(self) -> bool: - return self in (Distribution.gentoo,) - def setup(self, state: "MkosiState") -> None: return self.installer().setup(state) diff --git a/mkosi/qemu.py b/mkosi/qemu.py index 56fadb673..10b9d1b56 100644 --- a/mkosi/qemu.py +++ b/mkosi/qemu.py @@ -73,7 +73,7 @@ def find_qemu_firmware(config: MkosiConfig) -> tuple[Path, bool]: FIRMWARE_LOCATIONS = [ "/usr/share/edk2/ovmf/OVMF_CODE.secboot.fd", - "/usr/share/edk2-ovmf/OVMF_CODE.secboot.fd", # GENTOO: + "/usr/share/edk2-ovmf/OVMF_CODE.secboot.fd", "/usr/share/qemu/OVMF_CODE.secboot.fd", "/usr/share/ovmf/OVMF.secboot.fd", "/usr/share/OVMF/OVMF_CODE.secboot.fd", @@ -85,7 +85,7 @@ def find_qemu_firmware(config: MkosiConfig) -> tuple[Path, bool]: FIRMWARE_LOCATIONS = [ "/usr/share/edk2/ovmf/OVMF_CODE.fd", - "/usr/share/edk2-ovmf/OVMF_CODE.fd", # GENTOO: + "/usr/share/edk2-ovmf/OVMF_CODE.fd", "/usr/share/qemu/OVMF_CODE.fd", "/usr/share/ovmf/OVMF.fd", "/usr/share/OVMF/OVMF_CODE.fd", @@ -116,7 +116,7 @@ def find_ovmf_vars(config: MkosiConfig) -> Path: OVMF_VARS_LOCATIONS += ["/usr/share/AAVMF/AAVMF_VARS.fd"] OVMF_VARS_LOCATIONS += ["/usr/share/edk2/ovmf/OVMF_VARS.fd", - "/usr/share/edk2-ovmf/OVMF_VARS.fd", # GENTOO: + "/usr/share/edk2-ovmf/OVMF_VARS.fd", "/usr/share/qemu/OVMF_VARS.fd", "/usr/share/ovmf/OVMF_VARS.fd", "/usr/share/OVMF/OVMF_VARS.fd"]