]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Mark gentoo as experimental and unsupported
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Tue, 8 Aug 2023 11:17:45 +0000 (13:17 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Tue, 8 Aug 2023 11:56:34 +0000 (13:56 +0200)
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

.github/mkosi.conf.d/20-gentoo.conf [deleted file]
.github/workflows/ci.yml
NEWS.md
mkosi.md
mkosi/__init__.py
mkosi/distributions/__init__.py
mkosi/qemu.py

diff --git a/.github/mkosi.conf.d/20-gentoo.conf b/.github/mkosi.conf.d/20-gentoo.conf
deleted file mode 100644 (file)
index 415c2ec..0000000
+++ /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
index 426ef6f9505d5ab4c88bc78b338f66d8241a7faa..6913a8831d35bc4c595cc5854a09b7a948d227ff 100644 (file)
@@ -95,7 +95,6 @@ jobs:
           - fedora
           - rocky
           - alma
-          - gentoo
           - opensuse
         format:
           - directory
diff --git a/NEWS.md b/NEWS.md
index ec3182ced9a50dadae5251d534e26b757c5c517c..8e66c42f0a4bcbe43f315dfb62ca629a64186ac2 100644 (file)
--- a/NEWS.md
+++ b/NEWS.md
 - 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
 
index a89c824cd305b097f84cf615c2e8807a02f76337..2b1de0ffeeaea100830b9e965b598420576fde46 100644 (file)
--- 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
index 5122a7d654858fada13b783eeef42ce65dd88ded..07ef486ad2ed9ce0894acc9d1ed393206d0e5542 100644 (file)
@@ -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",
index f0c4bf5d6fa53e9774fc1d7338fa33f2b2ea2fe4..20d4d215b3d6c274aabd019af8ac94988374b145 100644 (file)
@@ -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)
 
index 56fadb673e406839b4466986defb95e25777e10c..10b9d1b564c881c38a3602c9e1a75ae0192d4241 100644 (file)
@@ -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"]