From ef28748167d96899bd8d8d3183c306eb50b0ff53 Mon Sep 17 00:00:00 2001 From: Ludovic Bellier Date: Wed, 2 Jul 2025 23:23:56 +0000 Subject: [PATCH] R4.2: add gentoo --- dockerfiles/Makefile | 1 + dockerfiles/vm-gentoo.Dockerfile | 24 ++++++++++++++++ r4.2/gitlab-host-vm-openqa.yml | 1 + r4.2/gitlab-vm-gentoo-build-template.yml | 4 +++ r4.2/gitlab-vm-gentoo-build.yml | 4 +++ r4.2/gitlab-vm-gentoo-chroot.yml | 35 ++++++++++++++++++++++++ r4.2/gitlab-vm-gentoo-install.yml | 5 ++++ r4.2/gitlab-vm-gentoo.yml | 3 ++ r4.2/gitlab-vm.yml | 2 +- scripts/gitlab-builderv2.yml | 3 ++ scripts/gitlab-installv2 | 3 ++ 11 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 dockerfiles/vm-gentoo.Dockerfile create mode 100644 r4.2/gitlab-vm-gentoo-build-template.yml create mode 100644 r4.2/gitlab-vm-gentoo-build.yml create mode 100644 r4.2/gitlab-vm-gentoo-chroot.yml create mode 100644 r4.2/gitlab-vm-gentoo-install.yml create mode 100644 r4.2/gitlab-vm-gentoo.yml diff --git a/dockerfiles/Makefile b/dockerfiles/Makefile index f23804d..f2bdae3 100644 --- a/dockerfiles/Makefile +++ b/dockerfiles/Makefile @@ -8,6 +8,7 @@ DOCKER_IMAGES ?= \ vm-bullseye \ vm-archlinux \ vm-centos-stream8 \ + vm-gentoo \ vm-jammy \ vm-fc39 \ vm-fc40 \ diff --git a/dockerfiles/vm-gentoo.Dockerfile b/dockerfiles/vm-gentoo.Dockerfile new file mode 100644 index 0000000..bdef638 --- /dev/null +++ b/dockerfiles/vm-gentoo.Dockerfile @@ -0,0 +1,24 @@ +FROM gentoo/stage3:latest + +## TODO +# - add notset(?) gentoo mirror keys +# - add notset(?) gentoo repositories +# - add package use (see https://github.com/QubesOS/qubes-builder-gentoo/blob/main/prepare-chroot-base#L149) +# - install packages (see https://github.com/QubesOS/qubes-builder-gentoo/blob/main/prepare-chroot-base#L154) + +# ArchLinux example as a reference: +# RUN pacman-key --init && pacman-key --populate && pacman -Syu --noconfirm wget sudo +# RUN wget -O /tmp/qubes-repo-archlinux-key.asc https://raw.githubusercontent.com/QubesOS/qubes-builderv2/main/qubesbuilder/plugins/chroot_archlinux/keys/qubes-repo-archlinux-key.asc +# RUN pacman-key --add - < /tmp/qubes-repo-archlinux-key.asc +# RUN pacman-key --lsign "$(gpg --with-colons --show-key /tmp/qubes-repo-archlinux-key.asc -| grep ^fpr: | cut -d : -f 10)" +# +# RUN printf '\ +# [qubes-r4.2-current-testing]\n\ +# Server = https://archlinux.qubes-os.org/r4.2/current-testing/vm/archlinux/pkgs\n\ +# [qubes-r4.2-current]\n\ +# Server = https://archlinux.qubes-os.org/r4.2/current/vm/archlinux/pkgs\n\ +# '\ >> /etc/pacman.conf +# +# RUN wget -O /usr/local/bin/faketime https://raw.githubusercontent.com/rustybird/realfaketime/main/faketime +# +# RUN useradd -m user diff --git a/r4.2/gitlab-host-vm-openqa.yml b/r4.2/gitlab-host-vm-openqa.yml index 0c5bbb8..2415839 100644 --- a/r4.2/gitlab-host-vm-openqa.yml +++ b/r4.2/gitlab-host-vm-openqa.yml @@ -7,3 +7,4 @@ r4.2:publish:repo: - r4.2:build:vm-fc41 - r4.2:build:vm-fc42 - r4.2:build:vm-archlinux + - r4.2:build:vm-gentoo diff --git a/r4.2/gitlab-vm-gentoo-build-template.yml b/r4.2/gitlab-vm-gentoo-build-template.yml new file mode 100644 index 0000000..ccdd419 --- /dev/null +++ b/r4.2/gitlab-vm-gentoo-build-template.yml @@ -0,0 +1,4 @@ +r4.2:build:vm-gentoo: + extends: .r4.2_templates_build + needs: + - r4.2:prep:sources diff --git a/r4.2/gitlab-vm-gentoo-build.yml b/r4.2/gitlab-vm-gentoo-build.yml new file mode 100644 index 0000000..59dff1c --- /dev/null +++ b/r4.2/gitlab-vm-gentoo-build.yml @@ -0,0 +1,4 @@ +r4.2:build:vm-gentoo: + extends: .r4.2_components_build + needs: + - r4.2:prep:sources diff --git a/r4.2/gitlab-vm-gentoo-chroot.yml b/r4.2/gitlab-vm-gentoo-chroot.yml new file mode 100644 index 0000000..378ca88 --- /dev/null +++ b/r4.2/gitlab-vm-gentoo-chroot.yml @@ -0,0 +1,35 @@ +chroot:vm-gentoo: + extends: .chroot_prepare + tags: + - vm + - long-living-job + needs: + - prep:sources + variables: + DISTS_VM: gentoo + USE_QUBES_REPO_VERSION: "4.1" + USE_QUBES_REPO_TESTING: "1" + +# chroot:vm-gentoo-minimal: +# extends: .chroot_prepare +# tags: +# - vm +# - long-living-job +# needs: +# - prep:sources +# variables: +# DISTS_VM: gentoo+minimal +# USE_QUBES_REPO_VERSION: "4.1" +# USE_QUBES_REPO_TESTING: "1" +# +# chroot:vm-gentoo-xfce: +# extends: .chroot_prepare +# tags: +# - vm +# - long-living-job +# needs: +# - prep:sources +# variables: +# DISTS_VM: gentoo+xfce +# USE_QUBES_REPO_VERSION: "4.1" +# USE_QUBES_REPO_TESTING: "1" diff --git a/r4.2/gitlab-vm-gentoo-install.yml b/r4.2/gitlab-vm-gentoo-install.yml new file mode 100644 index 0000000..5ea9810 --- /dev/null +++ b/r4.2/gitlab-vm-gentoo-install.yml @@ -0,0 +1,5 @@ +r4.2:build:vm-gentoo: + extends: .r4.2_components_install + needs: + - r4.2:prep:sources + - r4.2:build:vm-gentoo diff --git a/r4.2/gitlab-vm-gentoo.yml b/r4.2/gitlab-vm-gentoo.yml new file mode 100644 index 0000000..5254edb --- /dev/null +++ b/r4.2/gitlab-vm-gentoo.yml @@ -0,0 +1,3 @@ +include: + - '/r4.2/gitlab-vm-gentoo-build.yml' + - '/r4.2/gitlab-vm-gentoo-install.yml' diff --git a/r4.2/gitlab-vm.yml b/r4.2/gitlab-vm.yml index 693f655..42fc01d 100644 --- a/r4.2/gitlab-vm.yml +++ b/r4.2/gitlab-vm.yml @@ -3,4 +3,4 @@ include: - '/r4.2/gitlab-vm-debian.yml' - '/r4.2/gitlab-vm-archlinux.yml' - '/r4.2/gitlab-vm-ubuntu.yml' -# - '/r4.2/gitlab-vm-gentoo.yml' + - '/r4.2/gitlab-vm-gentoo.yml' diff --git a/scripts/gitlab-builderv2.yml b/scripts/gitlab-builderv2.yml index a2b8b95..e08e663 100644 --- a/scripts/gitlab-builderv2.yml +++ b/scripts/gitlab-builderv2.yml @@ -43,6 +43,7 @@ distributions: - vm-focal - vm-jammy - vm-noble + - vm-gentoo +templates: - fedora-40: @@ -99,6 +100,8 @@ distributions: dist: centos-stream10 - archlinux: dist: archlinux + - gentoo: + dist: gentoo executor: type: docker diff --git a/scripts/gitlab-installv2 b/scripts/gitlab-installv2 index 67f1bab..dc948e7 100755 --- a/scripts/gitlab-installv2 +++ b/scripts/gitlab-installv2 @@ -57,6 +57,9 @@ def main(release: str, qubes_distribution: QubesDistribution, repository: Path): f"sed -i -e 's/4\\.2/{release}/g ' /etc/pacman.conf && " "pacman -Sy --noprogressbar && pacman -U --noconfirm --noprogressbar" ) + elif qubes_distribution.fullname == "gentoo": + pkgext = "ebuild" + run_cmd = "emerge --sync && emerge --usepkg" else: raise CIError("Unsupported distribution!")