MT#62436 Support Debian/trixie in ensure_packages_installed

vboxadd-service.service fails on our Debian/trixie systems:

| root@spce:~# lsb_release -c
| Codename:       trixie
|
| root@spce:~# systemctl --failed
|   UNIT                    LOAD   ACTIVE SUB    DESCRIPTION
| ● vboxadd-service.service loaded failed failed VirtualBox Guest Additions Services Daemon
|
| Legend: LOAD   → Reflects whether the unit definition was properly loaded.
|         ACTIVE → The high-level unit activation state, i.e. generalization of SUB.
|         SUB    → The low-level unit activation state, values depend on unit type.
|
| 1 loaded units listed.
|
| root@spce:~# sudo systemctl status vboxadd-service.service
| × vboxadd-service.service - VirtualBox Guest Additions Services Daemon
|      Loaded: loaded (/etc/systemd/system/vboxadd-service.service; disabled; preset: disabled)
|     Drop-In: /etc/systemd/system/vboxadd-service.service.d
|              └─override.conf
|      Active: failed (Result: exit-code) since Thu 2025-04-24 09:08:15 CEST; 34min ago
|  Invocation: 4e151a29f0054a90a717a928fcfb3f8d
|    Mem peak: 2.2M
|         CPU: 17ms
|
| Apr 24 09:08:15 spce systemd[1]: Starting vboxadd-service.service...
| Apr 24 09:08:15 spce vboxadd-service[1934]: vboxadd-service.sh: Starting VirtualBox Guest Addition service.
| Apr 24 09:08:15 spce vboxadd-service.sh[1937]: Starting VirtualBox Guest Addition service.
| Apr 24 09:08:15 spce vboxadd-service[1940]: VBoxService: error: VbglR3Init failed with rc=VERR_FILE_NOT_FOUND
| Apr 24 09:08:15 spce vboxadd-service.sh[1943]: VirtualBox Guest Addition service started.
| Apr 24 09:08:15 spce systemd[1]: vboxadd-service.service: Control process exited, code=exited, status=1/FAILURE
| Apr 24 09:08:15 spce systemd[1]: vboxadd-service.service: Failed with result 'exit-code'.
| Apr 24 09:08:15 spce systemd[1]: Failed to start vboxadd-service.service.
|
| root@spce:~# cat /etc/systemd/system/vboxadd.service.d/override.conf
| [Unit]
| ConditionVirtualization=oracle
|
| root@spce:~# cat /var/log/vboxadd-setup.log
| Building the main Guest Additions 7.0.6 module for kernel 6.12.22-amd64.
| Error building the module.  Build output follows.
| make V=1 CONFIG_MODULE_SIG= CONFIG_MODULE_SIG_ALL= -C /lib/modules/6.12.22-amd64/build M=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 -j2 modules
| make[1]: warning: -j2 forced in submake: resetting jobserver mode.
| [...]
| [,,,] /tmp/vbox.0/VBoxGuest-common.c
| /tmp/vbox.0/VBoxGuest-linux.c:196:21: error: ‘no_llseek’ undeclared here (not in a function); did you mean ‘noop_llseek’?
|   196 |     llseek:         no_llseek,
|       |                     ^~~~~~~~~
|       |                     noop_llseek
| /tmp/vbox.0/VBoxGuest-linux.c: In function ‘vgdrvLinuxParamLogGrpSet’:
| /tmp/vbox.0/VBoxGuest-linux.c:1364:9: error: implicit declaration of function ‘strlcpy’; did you mean ‘strncpy’? [-Wimplicit-function-declaration]
|  1364 |         strlcpy(&g_szLogGrp[0], pszValue, sizeof(g_szLogGrp));
|       |         ^~~~~~~
|       |         strncpy
| make[2]: *** [/usr/src/linux-headers-6.12.22-common/scripts/Makefile.build:234: /tmp/vbox.0/VBoxGuest-linux.o] Error 1
| make[2]: *** Waiting for unfinished jobs....
| [...]

We get virtualbox-guest-additions-iso v7.0.6-1 for Debian
stable/bookworm, but virtualbox-guest-additions-iso v7.0.20-1 is
available in current Debian testing AKA trixie. Ensure we use the
package from trixie for trixie based systems, even though the the
VirtualBox Guest Additions v7.0.20 don't work for kernel 6.12.22 either,
yet.

Also adjust ensure_packages_installed to fail installation, if we're
using a yet unknown/unexpected Debian release, to not fall back to
Debian/bookworm, to prevent issue like it has been observed here.

See MT#60815 for main tracking issue WRT Debian/trixie

Change-Id: I030525d37edbe1cf75065d021b51d38273ce81ef
master
Michael Prokop 2 days ago
parent b2e2954852
commit 779b43b915

@ -282,13 +282,13 @@ ensure_packages_installed() {
local deb_release
case "${DEBIAN_RELEASE}" in
buster|bullseye|bookworm)
buster|bullseye|bookworm|trixie)
deb_release="${DEBIAN_RELEASE}"
echo "Using ${deb_release} as Debian repository for ${FUNCNAME[0]}"
;;
*)
deb_release='bookworm'
echo "Enabling fallback to Debian ${deb_release} repository for ${FUNCNAME[0]}"
echo "Error: Unsupported Debian release '${DEBIAN_RELEASE}' in ensure_packages_installed()" >&2
exit 1
;;
esac

Loading…
Cancel
Save