From 88f6a29cfc6bc47cd8e5d2a41191c708e313146e Mon Sep 17 00:00:00 2001 From: Agathe Porte Date: Fri, 13 Feb 2026 18:07:39 +0100 Subject: [PATCH] [WIP] feat: add gnome-desktop variant This reuses the existing work for the XFCE variant, the difference is that task-gnome-desktop was not manually pruned down as I cannot think of specific packages to remove from it yet. GNOME is not known for being small on disk in the first place. Due to this, the image size and the debos `--scratchsize` need to be bumped to 5.5GiB. The generated image was successfully boot-tested on qemu and a Thinkpad T14s. GDM asks for a password change and then the GNOME desktop can be used as expected. Signed-off-by: Agathe Porte --- Makefile | 2 +- README.md | 1 + .../qualcomm-linux-debian-image.yaml | 2 +- .../qualcomm-linux-debian-rootfs.yaml | 37 +++++++++++++++++++ 4 files changed, 40 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 012321dc..c63274ea 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ # To build large images, the debos resource defaults are not sufficient. These # provide defaults that work for us as universally as we can manage. FAKEMACHINE_BACKEND = $(shell [ -c /dev/kvm ] && echo kvm || echo qemu) -DEBOS_OPTS := --fakemachine-backend $(FAKEMACHINE_BACKEND) --memory 1GiB --scratchsize 4GiB +DEBOS_OPTS := --fakemachine-backend $(FAKEMACHINE_BACKEND) --memory 1GiB --scratchsize 6GiB DEBOS := debos $(DEBOS_OPTS) # Use http_proxy from the environment, or apt's http_proxy if set, to speed up diff --git a/README.md b/README.md index b39941dd..41f9ea43 100644 --- a/README.md +++ b/README.md @@ -135,6 +135,7 @@ debos --fakemachine-backend qemu --memory 1GiB --scratchsize 4GiB debos-recipes/ A few options are provided in the debos recipes; for the root filesystem recipe: - `localdebs`: path to a directory with local deb packages to install (NB: debos expects relative pathnames) - `xfcedesktop`: install an Xfce desktop environment; default: console only environment +- `gnomedesktop`: install a Gnome desktop environment; default: console only environment For the image recipe: - `dtb`: override the firmware provided device tree with one from the Linux kernel, e.g. `qcom/qcs6490-rb3gen2.dtb`; default: don't override diff --git a/debos-recipes/qualcomm-linux-debian-image.yaml b/debos-recipes/qualcomm-linux-debian-image.yaml index 773e69f9..c62ef63e 100644 --- a/debos-recipes/qualcomm-linux-debian-image.yaml +++ b/debos-recipes/qualcomm-linux-debian-image.yaml @@ -1,5 +1,5 @@ {{- $dtb := or .dtb "firmware" }} -{{- $imagesize := or .imagesize "4.5GiB" }} +{{- $imagesize := or .imagesize "5.5GiB" }} {{- $imagetype := or .imagetype "ufs" }} {{- $image := printf "disk-%s.img" $imagetype }} diff --git a/debos-recipes/qualcomm-linux-debian-rootfs.yaml b/debos-recipes/qualcomm-linux-debian-rootfs.yaml index 910f34be..161577e9 100644 --- a/debos-recipes/qualcomm-linux-debian-rootfs.yaml +++ b/debos-recipes/qualcomm-linux-debian-rootfs.yaml @@ -1,4 +1,5 @@ {{- $xfcedesktop := or .xfcedesktop "false" }} +{{- $gnomedesktop := or .gnomedesktop "false" }} {{- $localdebs := or .localdebs "none" }} {{- $aptlocalrepo := or .aptlocalrepo "none" }} {{- $kernelpackage := or .kernelpackage "linux-image-arm64" }} @@ -252,6 +253,40 @@ actions: - libcamera-v4l2 {{- end }} +{{- if eq $gnomedesktop "true" }} + - action: apt + description: Install Gnome desktop + recommends: false + packages: + - plymouth-label- # we probably don't need a boot splash + # from task-gnome-desktop + - gnome-core + # from task-desktop + - desktop-base + - xdg-utils + - fonts-symbola + - avahi-daemon + - libnss-mdns + # browser + - chromium + # bluetooth settings + - blueman + # audio: wireplumber for session integration, pipewire-pulse for chromium + - pavucontrol + - pipewire-pulse + - wireplumber + # camera: mostly supported through pipewire, but pull the qcam app + # and cam CLI tool from libcamera-tools; also install libcamera + # gstreamer plugins for for gstreamer based apps; ideally, cam and + # qcam would be packaged separately as to allow pulling the CLI + # version outside of the desktop list. libcamera-v4l2 provides a + # LD_PRELOAD library for compatiblity with apps relying on v4l2 + # (similar to pipewire and pulse situation) + - gstreamer1.0-libcamera + - libcamera-tools + - libcamera-v4l2 +{{- end }} + - action: run description: Set default locale chroot: true @@ -274,6 +309,8 @@ actions: echo "BUILD_ID={{$buildid}}" >>/etc/buildinfo {{- if eq $xfcedesktop "true" }} echo "VARIANT_ID=xfce" >>/etc/buildinfo +{{- else if eq $gnomedesktop "true" }} + echo "VARIANT_ID=gnome" >>/etc/buildinfo {{- else }} echo "VARIANT_ID=console" >>/etc/buildinfo {{- end }}