Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package agama-installer-Leap for openSUSE:Leap:16.0 checked in at 2025-07-02 18:02:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:16.0/agama-installer-Leap (Old) and /work/SRC/openSUSE:Leap:16.0/.agama-installer-Leap.new.7067 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "agama-installer-Leap" Wed Jul 2 18:02:29 2025 rev:19 rq:1289845 version:16.0.0 Changes: -------- --- /work/SRC/openSUSE:Leap:16.0/agama-installer-Leap/agama-installer.changes 2025-06-17 11:29:06.547655302 +0200 +++ /work/SRC/openSUSE:Leap:16.0/.agama-installer-Leap.new.7067/agama-installer.changes 2025-07-02 18:02:30.125992345 +0200 @@ -1,0 +2,55 @@ +Mon Jun 30 15:51:37 UTC 2025 - Imobach Gonzalez Sosa <igonzalezs...@suse.com> + +- Version 16 + +------------------------------------------------------------------- +Fri Jun 20 14:57:08 UTC 2025 - Ladislav Slezák <lsle...@suse.com> + +- Install "gdm-systemd" and enable "gdm.service" to start the + graphical desktop, this is a new way for starting display managers + +------------------------------------------------------------------- +Thu Jun 19 09:06:50 UTC 2025 - Knut Anderssen <kanders...@suse.com> + +- Add hyper-v on x86_64 and aarch64 only (related to bsc#1236961). + +------------------------------------------------------------------- +Wed Jun 18 11:29:08 UTC 2025 - David Diaz <dgonza...@suse.com> + +- Make web bundled fonts available for the system via config + file (gh#agama-project/agama#2488, bsc#1236261). + +------------------------------------------------------------------- +Tue Jun 17 08:47:46 UTC 2025 - Knut Anderssen <kanders...@suse.com> + +- Add hyper-v package (bsc#1236961). + +------------------------------------------------------------------- +Fri Jun 13 10:41:15 UTC 2025 - Imobach Gonzalez Sosa <igonzalezs...@suse.com> + +- Add initial support to apply updates from RPM packages and DUD archives + (gh#agama-project/agama#2466). + +------------------------------------------------------------------- +Tue Jun 10 14:40:21 UTC 2025 - José Iván López González <jlo...@suse.com> + +- Add iscsiuio kernel driver (gh#agama-project/agama#2460). + +------------------------------------------------------------------- +Thu Jun 5 08:28:10 UTC 2025 - Ladislav Slezák <lsle...@suse.com> + +- Disable Firefox extensions autoupdate + (gh#agama-project/agama#2441) + +------------------------------------------------------------------- +Tue Jun 3 07:35:56 UTC 2025 - Michal Filka <mfi...@suse.cz> + +- Switched live ISO to use Wayland (gh#agama-project/agama#1781) +- Do not require microos-tools as we don't need it anymore. bsc#1237366 + +------------------------------------------------------------------- +Thu May 29 07:16:11 UTC 2025 - Ladislav Slezák <lsle...@suse.com> + +- Keep the nvmem kernel drivers (bsc#1243350) + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ agama-installer.kiwi ++++++ --- /var/tmp/diff_new_pack.k83X6E/_old 2025-07-02 18:02:30.446005631 +0200 +++ /var/tmp/diff_new_pack.k83X6E/_new 2025-07-02 18:02:30.450005797 +0200 @@ -21,7 +21,7 @@ <profile name="Leap_16.0_PXE" description="openSUSE Leap OEM image for remote installation" import="true" /> </profiles> <preferences> - <version>15.0.0</version> + <version>16.0.0</version> <packagemanager>zypper</packagemanager> <locale>en_US</locale> <keytable>us</keytable> @@ -108,6 +108,7 @@ <package name="systemd"/> <package name="procps"/> <package name="iputils"/> + <package name="hyper-v" arch="aarch64,x86_64"/> <package name="vim"/> <package name="vim-data"/> <package name="grub2"/> @@ -131,6 +132,7 @@ <package name="ipw-firmware"/> <package name="mpt-firmware"/> <package name="zd1211-firmware"/> + <package name="iscsiuio"/> <package name="systemd-zram-service"/> <!--- needed for zram --> <package name="shim" arch="aarch64,x86_64"/> <package name="timezone"/> @@ -146,7 +148,6 @@ <package name="agama-auto"/> <package name="rubygem(agama-yast)"/> <package name="rubygem(byebug)"/> - <package name="microos-tools"/> <package name="psmisc"/> <package name="joe"/> <package name="checkmedia"/> @@ -156,9 +157,12 @@ <package name="qrencode"/> <package name="qemu-guest-agent" /> <package name="aaa_base-extras"/> + <package name="createrepo_c" /> <!-- it can be used by users in AutoYaST pre-scripts --> <package name="perl-XML-Simple"/> <archive name="live-root.tar.xz"/> + <!-- IPMI support --> + <package name="ipmitool" /> </packages> <!-- packages for local installation (desktop, browser, etc.) --> @@ -167,16 +171,12 @@ <package name="agama-integration-tests"/> <package name="fontconfig"/> <package name="fonts-config"/> - <package name="adobe-sourcecodepro-fonts"/> - <package name="adobe-sourcehansans-jp-fonts"/> <package name="xauth"/> <package name="MozillaFirefox"/> - <package name="icewm-lite"/> - <package name="xinit"/> - <package name="xset"/> - <package name="xorg-x11-server"/> - <package name="xorg-x11-fonts-core"/> - <package name="xf86-input-libinput" /> + <package name="gdm-systemd"/> + <package name="gnome-shell"/> + <package name="gnome-session-wayland"/> + <package name="gnome-kiosk"/> <package name="spice-vdagent"/> </packages> ++++++ config-cdroot.tar.xz ++++++ ++++++ config.sh ++++++ --- /var/tmp/diff_new_pack.k83X6E/_old 2025-07-02 18:02:30.582011278 +0200 +++ /var/tmp/diff_new_pack.k83X6E/_new 2025-07-02 18:02:30.582011278 +0200 @@ -54,7 +54,6 @@ systemctl enable agama.service systemctl enable agama-web-server.service systemctl enable agama-dbus-monitor.service -systemctl enable agama-dud.service systemctl enable agama-auto.service systemctl enable agama-hostname.service systemctl enable agama-proxy-setup.service @@ -72,8 +71,8 @@ systemctl enable checkmedia.service systemctl enable qemu-guest-agent.service systemctl enable setup-systemd-proxy-env.path -systemctl enable x11-autologin.service -test -f /usr/lib/systemd/system/spice-vdagentd.service && systemctl enable spice-vdagentd.service +test -f /usr/lib/systemd/system/gdm.service && systemctl enable gdm.service +test -f /usr/lib/systemd/system/spice-vdagentd.service && systemctl enable spice-vdagentd.service systemctl enable zramswap # set the default target @@ -92,6 +91,9 @@ systemctl disable YaST2-Firstboot.service systemctl disable YaST2-Second-Stage.service +# the "eurlatgr" is the default font for the English locale +echo -e "\nFONT=eurlatgr.psfu" >> /etc/vconsole.conf + ### setup dracut for live system arch=$(uname -m) # keep in sync with ISO Volume ID set in the fix_bootconfig script @@ -106,7 +108,7 @@ echo "root_disk=live:LABEL=$label" >>/etc/cmdline.d/10-liveroot.conf echo 'install_items+=" /etc/cmdline.d/10-liveroot.conf "' >/etc/dracut.conf.d/10-liveroot-file.conf fi -echo 'add_dracutmodules+=" dracut-menu agama-cmdline "' >>/etc/dracut.conf.d/10-liveroot-file.conf +echo 'add_dracutmodules+=" dracut-menu agama-cmdline agama-dud "' >>/etc/dracut.conf.d/10-liveroot-file.conf # decrease the kernel logging on the console, use a dracut module to do it early in the boot process echo 'add_dracutmodules+=" agama-logging "' > /etc/dracut.conf.d/10-agama-logging.conf @@ -249,9 +251,6 @@ fi fi -# remove OpenGL support -rpm -qa | grep ^Mesa | xargs --no-run-if-empty rpm -e --nodeps - # remove unused SUSEConnect libzypp plugins rm -f /usr/lib/zypper/commands/zypper-migration rm -f /usr/lib/zypper/commands/zypper-search-packages @@ -324,8 +323,6 @@ systemctl -f disable $s || true done -# Only used for OpenCL and X11 acceleration on vmwgfx (?), saves ~50MiB -rpm -e --nodeps Mesa-gallium || true # Too big and will have to be dropped anyway (unmaintained, known security issues) rm -rf /usr/lib*/libmfxhw*.so.* /usr/lib*/mfx/ @@ -347,3 +344,6 @@ # Remove generated files (boo#1098535) rm -rf /var/cache/zypp/* /var/lib/zypp/AnonymousUniqueId /var/lib/systemd/random-seed +# gnome-kiosk startup script, executable rights not preserved during copying +chmod +x /root/.local/bin/gnome-kiosk-script + ++++++ live-root-PXE.tar.xz ++++++ ++++++ live-root.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/etc/fonts/conf.d/99-agama.conf new/etc/fonts/conf.d/99-agama.conf --- old/etc/fonts/conf.d/99-agama.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/etc/fonts/conf.d/99-agama.conf 2025-06-30 18:04:50.000000000 +0200 @@ -0,0 +1,6 @@ +<?xml version="1.0"?> +<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> +<!-- load fonts in the agama-web-ui package --> +<fontconfig> + <dir>/usr/share/agama/web_ui/fonts</dir> +</fontconfig> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/etc/icewm/preferences.yast2 new/etc/icewm/preferences.yast2 --- old/etc/icewm/preferences.yast2 2025-06-03 17:34:25.000000000 +0200 +++ new/etc/icewm/preferences.yast2 1970-01-01 01:00:00.000000000 +0100 @@ -1,107 +0,0 @@ -# IceWM configuration file for use during installation - -# Hide taskbar -ShowTaskBar=0 - -# Enable Alt+Tab -QuickSwitch=1 -KeySysSwitchNext="Alt+Tab" -KeySysSwitchLast="Alt+Shift+Tab" - -# Disable Windows key -Win95Keys=0 - -# Borders -BorderSizeX=3 -BorderSizeY=3 -DlgBorderSizeX=3 -DlgBorderSizeY=3 - -# No lock display/screensaver -LockCommand="" - -# Disable most shortcuts -# :r !grep -o '\<Key[^=]*' /etc/icewm/preferences | grep -v Switch | sed 's/$/=""/' -KeyWinRaise="" -KeyWinOccupyAll="" -KeyWinLower="" -KeyWinClose="" -KeyWinRestore="" -KeyWinPrev="" -KeyWinNext="" -KeyWinMove="" -KeyWinSize="" -KeyWinMinimize="" -KeyWinMaximize="" -KeyWinMaximizeVert="" -KeyWinMaximizeHoriz="" -KeyWinFullscreen="" -KeyWinHide="" -KeyWinRollup="" -KeyWinMenu="" -KeyWinArrangeN="" -KeyWinArrangeNE="" -KeyWinArrangeE="" -KeyWinArrangeSE="" -KeyWinArrangeS="" -KeyWinArrangeSW="" -KeyWinArrangeW="" -KeyWinArrangeNW="" -KeyWinArrangeC="" -KeySysWinNext="" -KeySysWinPrev="" -KeySysWinMenu="" -KeySysDialog="" -KeySysMenu="" -KeySysWindowList="" -KeySysWinListMenu="" -KeySysAddressBar="" -KeySysWorkspacePrev="" -KeySysWorkspaceNext="" -KeySysWorkspaceLast="" -KeySysWorkspacePrevTakeWin="" -KeySysWorkspaceNextTakeWin="" -KeySysWorkspaceLastTakeWin="" -KeySysWorkspace1="" -KeySysWorkspace2="" -KeySysWorkspace3="" -KeySysWorkspace4="" -KeySysWorkspace5="" -KeySysWorkspace6="" -KeySysWorkspace7="" -KeySysWorkspace8="" -KeySysWorkspace9="" -KeySysWorkspace10="" -KeySysWorkspace11="" -KeySysWorkspace12="" -KeySysWorkspace1TakeWin="" -KeySysWorkspace2TakeWin="" -KeySysWorkspace3TakeWin="" -KeySysWorkspace4TakeWin="" -KeySysWorkspace5TakeWin="" -KeySysWorkspace6TakeWin="" -KeySysWorkspace7TakeWin="" -KeySysWorkspace8TakeWin="" -KeySysWorkspace9TakeWin="" -KeySysWorkspace10TakeWin="" -KeySysWorkspace11TakeWin="" -KeySysWorkspace12TakeWin="" -KeySysTileVertical="" -KeySysTileHorizontal="" -KeySysCascade="" -KeySysArrange="" -KeySysArrangeIcons="" -KeySysMinimizeAll="" -KeySysHideAll="" -KeySysUndoArrange="" -KeySysShowDesktop="" -KeySysCollapseTaskBar="" - -# Disable root window menus -# :r !grep -o '\<Desktop[^=]*Button=' /etc/icewm/preferences | sed 's/$/0/' -DesktopWinMenuButton=0 -DesktopWinListButton=0 -DesktopMenuButton=0 - -# Disable possibility to move the base window, BNC 466827 -ClientWindowMouseActions=0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/etc/sysconfig/displaymanager new/etc/sysconfig/displaymanager --- old/etc/sysconfig/displaymanager 1970-01-01 01:00:00.000000000 +0100 +++ new/etc/sysconfig/displaymanager 2025-06-30 18:04:50.000000000 +0200 @@ -0,0 +1,74 @@ +# This file deals with automatic login into the display manager, see +# DISPLAYMANAGER_AUTOLOGIN variable. This file was originally copied +# from Tumbleweed and rest of the content is currently useless (default) + + +## Path: Desktop/Display manager +## Description: settings to generate a proper displaymanager config +## Type: yesno +## Default: no +# +# Allow remote access (XDMCP) to your display manager (xdm/kdm/gdm). Please note +# that a modified kdm or xdm configuration, e.g. by KDE control center +# will not be changed. For gdm, values will be updated after change. +# XDMCP service should run only on trusted networks and you have to disable +# firewall for interfaces, where you want to provide this service. +# +DISPLAYMANAGER_REMOTE_ACCESS="no" + +## Type: yesno +## Default: no +# +# Allow remote access of the user root to your display manager. Note +# that root can never login if DISPLAYMANAGER_SHUTDOWN is "auto" and +# System/Security/Permissions/PERMISSION_SECURITY is "paranoid" +# +DISPLAYMANAGER_ROOT_LOGIN_REMOTE="no" + +## Type: yesno +## Default: yes +# +# Let the displaymanager start a local Xserver. +# Set to "no" for remote-access only. +# Set to "no" on architectures without any Xserver (e.g. s390/s390x). +# +DISPLAYMANAGER_STARTS_XSERVER="yes" + +## Type: yesno +## Default: no +# +# TCP port 6000 of Xserver. When set to "no" (default) Xserver is +# started with "-nolisten tcp". Only set this to "yes" if you really +# need to. Remote X service should run only on trusted networks and +# you have to disable firewall for interfaces, where you want to +# provide this service. Use ssh X11 port forwarding whenever possible. +# +DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN="no" + +## Type: string +## Default: +# +# Define the user whom should get logged in without request. If string +# is empty, display standard login dialog. +# +DISPLAYMANAGER_AUTOLOGIN="root" + +## Type: yesno +## Default: no +# +# Allow all users to login without password, but ask for the user, if +# DISPLAYMANAGER_AUTOLOGIN is empty. +# +DISPLAYMANAGER_PASSWORD_LESS_LOGIN="no" + +## Type: yesno +## Default: no +# +# Display a combobox for Active Directory domains. +# +DISPLAYMANAGER_AD_INTEGRATION="no" +## Path: Desktop/Display manager +## Type: string(Xorg) +## Default: "Xorg" +# +DISPLAYMANAGER_XSERVER="Xorg" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/etc/systemd/system/agama-cmdline-process.service new/etc/systemd/system/agama-cmdline-process.service --- old/etc/systemd/system/agama-cmdline-process.service 2025-06-03 17:34:25.000000000 +0200 +++ new/etc/systemd/system/agama-cmdline-process.service 2025-06-30 18:04:50.000000000 +0200 @@ -7,7 +7,6 @@ # before starting the Agama servers so they read configuration parsed Before=agama-web-server.service Before=agama.service -Before=x11-autologin.service [Service] Type=oneshot diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/etc/systemd/system/agama-dud.service new/etc/systemd/system/agama-dud.service --- old/etc/systemd/system/agama-dud.service 2025-06-03 17:34:25.000000000 +0200 +++ new/etc/systemd/system/agama-dud.service 1970-01-01 01:00:00.000000000 +0100 @@ -1,30 +0,0 @@ -[Unit] -Description=Agama DUD - -After=network-online.target - -# and after we process agama params like info which can contain password -After=agama-cmdline-process.service -# the DUD should replace wrong self_update -After=agama-self-update.service - -# before starting the Agama servers so they use the new packages -Before=agama-web-server.service -Before=agama.service -# before interactive password services -Before=live-password-dialog.service -Before=live-password-systemd.service - -[Service] -Type=oneshot -Environment=TERM=linux -ExecStartPre=dmesg --console-off -ExecStart=agama-dud -ExecStartPost=dmesg --console-on -TTYReset=yes -TTYVHangup=yes -StandardInput=tty -TimeoutStartSec=infinity - -[Install] -WantedBy=multi-user.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/etc/systemd/system/agama-self-update.service new/etc/systemd/system/agama-self-update.service --- old/etc/systemd/system/agama-self-update.service 2025-06-03 17:34:25.000000000 +0200 +++ new/etc/systemd/system/agama-self-update.service 2025-06-30 18:04:50.000000000 +0200 @@ -9,7 +9,6 @@ # before starting the Agama servers so they use the new packages Before=agama-web-server.service Before=agama.service -Before=x11-autologin.service # before interactive password services Before=live-password-dialog.service Before=live-password-systemd.service diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/etc/systemd/system/checkmedia.service new/etc/systemd/system/checkmedia.service --- old/etc/systemd/system/checkmedia.service 2025-06-03 17:34:25.000000000 +0200 +++ new/etc/systemd/system/checkmedia.service 2025-06-30 18:04:50.000000000 +0200 @@ -2,7 +2,6 @@ Description=Installation medium integrity check # before X11 because it switches the terminal to VT7 -Before=x11-autologin.service Before=agama.service # copied from YaST2-Second-Stage.service diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/etc/systemd/system/live-password.service new/etc/systemd/system/live-password.service --- old/etc/systemd/system/live-password.service 2025-06-03 17:34:25.000000000 +0200 +++ new/etc/systemd/system/live-password.service 2025-06-30 18:04:50.000000000 +0200 @@ -4,8 +4,6 @@ # before starting the SSH and Agama server so they use the new password Before=sshd.service Before=agama-web-server.service -# before X11 because it switches the terminal to VT7 -Before=x11-autologin.service After=checkmedia.service # copied from YaST2-Second-Stage.service diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/etc/systemd/system/x11-autologin.service new/etc/systemd/system/x11-autologin.service --- old/etc/systemd/system/x11-autologin.service 2025-06-03 17:34:25.000000000 +0200 +++ new/etc/systemd/system/x11-autologin.service 1970-01-01 01:00:00.000000000 +0100 @@ -1,27 +0,0 @@ -[Unit] -Description=X11 session -After=graphical.target systemd-user-sessions.service - -[Service] -User=root -WorkingDirectory=~ - -PAMName=login -Environment=XDG_SESSION_TYPE=x11 -TTYPath=/dev/tty7 -StandardInput=tty -UnsetEnvironment=TERM - -UtmpIdentifier=tty7 -UtmpMode=user - -StandardOutput=journal -ExecStartPre=/usr/bin/chvt 7 -ExecStart=/usr/bin/startx -- vt7 -keeptty -verbose 3 -logfile /dev/null -# Directly kill the xinit process, the startx script unfortunately ignores -# SIGTERM and does pass that to the started xinit. -ExecStop=pkill xinit -Restart=no - -[Install] -WantedBy=graphical.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/root/.Xdefaults new/root/.Xdefaults --- old/root/.Xdefaults 2025-06-03 17:34:25.000000000 +0200 +++ new/root/.Xdefaults 1970-01-01 01:00:00.000000000 +0100 @@ -1,7 +0,0 @@ -! Use the default font also for the xterm menus (Ctrl + click) -XTerm*font: fixed - -! enable TrueType rendering, it looks better and supports UTF-8 -XTerm*renderFont: true -XTerm*faceName: fixed -XTerm*faceSize: 10 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/root/.bash_history new/root/.bash_history --- old/root/.bash_history 2025-06-03 17:34:25.000000000 +0200 +++ new/root/.bash_history 2025-06-30 18:04:50.000000000 +0200 @@ -1,5 +1,5 @@ mount | cut -f3 -d" " | grep /mnt | sort -r | xargs -r umount; swapon --show=NAME --noheadings | grep -v zram | xargs -r swapoff -systemctl restart agama.service agama-web-server.service && sleep 2 && systemctl restart x11-autologin.service +systemctl restart agama.service agama-web-server.service less /var/log/YaST2/y2log journalctl -u agama-web-server.service journalctl -u agama.service diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/root/.icewm/startup new/root/.icewm/startup --- old/root/.icewm/startup 2025-06-03 17:34:25.000000000 +0200 +++ new/root/.icewm/startup 1970-01-01 01:00:00.000000000 +0100 @@ -1,25 +0,0 @@ -#!/usr/bin/env sh -# Start a browser to connect to Agama's web user interface skipping the authentication. - -TOKEN_FILE=/run/agama/token -TOKEN=$(cat $TOKEN_FILE) -PREFS=$HOME/.mozilla/firefox/profile/user.js - -# read the system locale from EFI if present -LANG_FILE=/sys/firmware/efi/efivars/PlatformLang-8be4df61-93ca-11d2-aa0d-00e098032b8c - -# file exists and is not empty -if [ -s "$LANG_FILE" ]; then - # skip the first 4 bytes (the EFI attributes), keep only the characters allowed in a language code, - # especially remove the trailing null byte - EFI_LANG=$(cat "$LANG_FILE" | tail -c +5 | tr -cd "[_a-zA-Z-]") - - if [ -n "$EFI_LANG" ]; then - # escape & because it has a special meaning in sed replacement - LANG_QUERY="\\&lang=$EFI_LANG" - fi -fi - -sed -e "s/__HOMEPAGE__/http:\/\/localhost\/login?token=$TOKEN$LANG_QUERY/" $PREFS.template > $PREFS - -firefox --kiosk --profile $HOME/.mozilla/firefox/profile diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/root/.local/bin/gnome-kiosk-script new/root/.local/bin/gnome-kiosk-script --- old/root/.local/bin/gnome-kiosk-script 1970-01-01 01:00:00.000000000 +0100 +++ new/root/.local/bin/gnome-kiosk-script 2025-06-30 18:04:50.000000000 +0200 @@ -0,0 +1,32 @@ +#!/bin/sh +# Start a browser to connect to Agama's web user interface skipping the authentication. +# This script is invoked as a part of gnome-kiosk startup procedure. See /usr/bin/gnome-kiosk-script +# which is at the end of the chain and invokes this script. + +TOKEN_FILE=/run/agama/token +TOKEN=$(cat $TOKEN_FILE) +PREFS=$HOME/.mozilla/firefox/profile/user.js + +# read the system locale from EFI if present +LANG_FILE=/sys/firmware/efi/efivars/PlatformLang-8be4df61-93ca-11d2-aa0d-00e098032b8c + +# file exists and is not empty +if [ -s "$LANG_FILE" ]; then + # skip the first 4 bytes (the EFI attributes), keep only the characters allowed in a language code, + # especially remove the trailing null byte + EFI_LANG=$(cat "$LANG_FILE" | tail -c +5 | tr -cd "[_a-zA-Z-]") + + if [ -n "$EFI_LANG" ]; then + # escape & because it has a special meaning in sed replacement + LANG_QUERY="\\&lang=$EFI_LANG" + fi +fi + +sed -e "s/__HOMEPAGE__/http:\/\/localhost\/login?token=$TOKEN$LANG_QUERY/" $PREFS.template > $PREFS + +# Do not use --kiosk mode (see bsc#1236073) until SLE16 is updated to next ESR. For Firefox +# 128.9 which is currently used the bug is valid, for >= 138 should be fixed. +firefox --profile $HOME/.mozilla/firefox/profile + +sleep 1.0 +exec "$0" "$@" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/root/.mozilla/firefox/profile/user.js.template new/root/.mozilla/firefox/profile/user.js.template --- old/root/.mozilla/firefox/profile/user.js.template 2025-06-03 17:34:25.000000000 +0200 +++ new/root/.mozilla/firefox/profile/user.js.template 2025-06-30 18:04:50.000000000 +0200 @@ -21,6 +21,11 @@ user_pref("datareporting.usage.uploadEnabled", false); user_pref("toolkit.telemetry.reportingpolicy.firstRun", false); +// globally disable extensions autoupdate, +// the AutoFullscreen extension does not specify the update URL +// but rather be on the safe side +user_pref("extensions.update.autoUpdateDefault", false); + // workaround for non working file picker, disable XDG portal, use the FF native popup // TODO: make the XDG portal working again, it has more features (mounting USB flash) user_pref("widget.use-xdg-desktop-portal.file-picker", 0); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/root/.xinitrc new/root/.xinitrc --- old/root/.xinitrc 2025-06-03 17:34:25.000000000 +0200 +++ new/root/.xinitrc 1970-01-01 01:00:00.000000000 +0100 @@ -1,7 +0,0 @@ -# disable Display Power Management Signaling -xset -dpms - -# disable screen saver -xset s off - -icewm-session -c /etc/icewm/preferences.yast2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tmp/module.list.extra new/tmp/module.list.extra --- old/tmp/module.list.extra 2025-06-03 17:34:25.000000000 +0200 +++ new/tmp/module.list.extra 2025-06-30 18:04:50.000000000 +0200 @@ -2,3 +2,7 @@ # in addition to the module.list file to allow extra overrides or hot fixes # without touching the original file. The original file should not be touched to # allow easy updates from the installation-images repository. + +# keep the nvmem drivers (https://bugzilla.suse.com/show_bug.cgi?id=1243350) +kernel/drivers/nvmem +kernel/drivers/dma/fsl-edma.ko diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/usr/bin/X/info.txt new/usr/bin/X/info.txt --- old/usr/bin/X/info.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/usr/bin/X/info.txt 2025-06-30 18:04:50.000000000 +0200 @@ -0,0 +1,13 @@ +This file is just placeholder for creating content in /usr/bin/X/ directory. + +The directory is used to trick display-manager.service (script) to think that +xorg-x11-server is installed. If the directory is not existing the above +script/service ends with error reporting status=6/NOTCONFIGURED. We want to +use Wayland (only), there is no sense in installing X11 server too. As it is +not mentioned as direct dependency in any gnome and wayland related packages +and kind of dependency happens only due to that check, we trick it by creating +the directory. + +This is status at time of initial Wayland / GNOME Shell deployment in Agama's +live ISO. If the check is removed in the future feel free to drop whole +/usr/bin/X from the image. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/usr/lib/dracut/modules.d/99agama-dud/agama-dud-apply.sh new/usr/lib/dracut/modules.d/99agama-dud/agama-dud-apply.sh --- old/usr/lib/dracut/modules.d/99agama-dud/agama-dud-apply.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/usr/lib/dracut/modules.d/99agama-dud/agama-dud-apply.sh 2025-06-30 18:04:50.000000000 +0200 @@ -0,0 +1,161 @@ +#!/bin/bash + +[ -e /dracut-state.sh ] && . /dracut-state.sh + +. /lib/dracut-lib.sh +. /lib/img-lib.sh + +DUD_DIR="$NEWROOT/run/agama/dud" +AGAMA_CLI="$NEWROOT/usr/bin/agama" +AGAMA_DUD_INFO="/tmp/agamadud.info" +DUD_RPM_REPOSITORY="$NEWROOT/var/lib/agama/dud/repo" + +shopt -s nullglob + +# Apply all the updates. +# +# Read the URL of the updates from $AGAMA_DUD_INFO and process each one. +apply_updates() { + local file + local dud_url + local dud_root + index=0 + + while read -r dud_url; do + mkdir -p "$DUD_DIR" + filename=${dud_url##*/} + file="${DUD_DIR}/${filename}" + # FIXME: use an index because two updates, coming from different places, can have the same name. + echo "Fetching a Driver Update Disk from $dud_url to ${file}" + if ! $AGAMA_CLI download "$dud_url" "${file}"; then + warn "Failed to fetch the Driver Update Disk" + continue + fi + + # The $dir could be a temporary one created by each function. + dir="$DUD_DIR/dud_$(printf "%03d" $index)" + mkdir -p "$dir" + + format=$("$NEWROOT/usr/bin/chroot" "$NEWROOT" file "${file##"$NEWROOT"}") + case "$format" in + *RPM*) + apply_rpm_update "$file" "$dir" + ;; + + *) + apply_dud_update "$file" "$dir" + ;; + esac + + ((index++)) + done <$AGAMA_DUD_INFO + + create_repo "$DUD_RPM_REPOSITORY" +} + +# Applies an update from an RPM package +# +# It extracts the RPM content and adjust the alternative links. +apply_rpm_update() { + file=$1 + dir=$2 + + echo "Apply update from an RPM package" + unpack_rpm "$file" "$dir" + install_update "$dir" +} + +# Applies an update from an RPM package +# +# 1. Copy the inst-sys updates to the $NEWROOT system. +# 2. Update agamactl, agama-autoyast and agama-proxy-setup alternative links. +# 3. Copy the packages to the $DUD_RPM_REPOSITORY. +apply_dud_update() { + file=$1 + dir=$2 + + echo "Apply update from a Driver Update Disk archive" + unpack_img "$file" "$dir" + # FIXME: do not ignore the dist (e.g., "tw" in "x86_64-tw"). + arch=$(uname -m) + dud_root=$(echo "${dir}/linux/suse/${arch}"-*) + install_update "${dud_root}/inst-sys" + copy_packages "$dud_root" "$DUD_RPM_REPOSITORY" +} + +# Extracts an RPM file +# +# It uses rpm2cpio from the $NEWROOT. +unpack_rpm() { + source=$1 + dest=$2 + echo "Unpacking RPM ${source} to ${dest}" + + mkdir -p "$dest" + pushd "$dest" || exit 1 + "$NEWROOT/usr/bin/chroot" "$NEWROOT" /usr/bin/rpm2cpio "${source##"$NEWROOT"}" | + cpio --extract --make-directories --preserve-modification-time + popd || exit 1 +} + +# Applies an update to the installation system. +# +# Updates are applied by copying files instead of installing packages. For that +# reason, it might be needed to do some adjustments "manually", like settings +# the alternative links. +install_update() { + dud_dir=$1 + echo "Apply inst-sys update from ${dud_dir}" + + cp -a "${dud_dir}"/* "$NEWROOT" + + set_alternative "$dud_dir" "agama-autoyast" + set_alternative "$dud_dir" "agamactl" + set_alternative "$dud_dir" "agama-proxy-setup" +} + +# Sets the alternative links. +set_alternative() { + dud_instsys=$1 + name=$2 + # Use the same value used during RPMs installation. + priority=150000 + + executables=("$dud_instsys/usr/bin/${name}.ruby"*-*) + executable=${executables[0]} + if [ ! -z "$executable" ]; then + "$NEWROOT/usr/bin/chroot" "$NEWROOT" /usr/sbin/update-alternatives \ + --install "/usr/bin/$name" "$name" "${executable##"$dud_instsys"}" "$priority" + "$NEWROOT/usr/bin/chroot" "$NEWROOT" /usr/sbin/update-alternatives \ + --set "$name" "${executable##"$dud_instsys"}" + fi +} + +# Copies the packages to use during installation +# +# This function is mainly a PoC. +# +# This is a simplistic version that just copies all the RPMs to the new repository. +# In the future, it might need to put each package under a different respository depending +# on the distribution (e.g., "/run/agama/dud/repo/tw" for "x86_64-tw"). +copy_packages() { + dud_dir=$1 + repo_dir=$2 + echo "Copy packages from ${dud_dir} to ${repo_dir}" + + for rpm in "$dud_dir"/install/*.rpm; do + mkdir -p "$repo_dir" + cp "$rpm" "$repo_dir" + done +} + +# Creates the repository metadata. +create_repo() { + repo_dir=$1 + + "$NEWROOT/usr/bin/chroot" "$NEWROOT" createrepo_c "${repo_dir##"$NEWROOT"}" +} + +if [ -f "$AGAMA_DUD_INFO" ]; then + apply_updates +fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/usr/lib/dracut/modules.d/99agama-dud/agama-dud-parser.sh new/usr/lib/dracut/modules.d/99agama-dud/agama-dud-parser.sh --- old/usr/lib/dracut/modules.d/99agama-dud/agama-dud-parser.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/usr/lib/dracut/modules.d/99agama-dud/agama-dud-parser.sh 2025-06-30 18:04:50.000000000 +0200 @@ -0,0 +1,16 @@ +#!/bin/bash + +[ -e /dracut-state.sh ] && . /dracut-state.sh + +. /lib/dracut-lib.sh + +fetch_updates() { + # Agama driver updates + local updates + updates=$(getargs inst.dud=) + if [ -n "$updates" ]; then + echo "$updates" >/tmp/agamadud.info + fi +} + +fetch_updates diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/usr/lib/dracut/modules.d/99agama-dud/module-setup.sh new/usr/lib/dracut/modules.d/99agama-dud/module-setup.sh --- old/usr/lib/dracut/modules.d/99agama-dud/module-setup.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/usr/lib/dracut/modules.d/99agama-dud/module-setup.sh 2025-06-30 18:04:50.000000000 +0200 @@ -0,0 +1,25 @@ +#!/bin/bash +# module-setup.sh for Agama Driver Updates + +# called by dracut +check() { + return 0 +} + +# called by dracut +depends() { + echo network url-lib img-lib bash + return 0 +} + +installkernel() { + return 0 +} + +# called by dracut +install() { + inst_hook cmdline 99 "$moddir/agama-dud-parser.sh" + # Fetch and apply the updates in the pre-pivot hook in order to use some binaries and scripts + # from the installer img using a chroot (also from the image itself). + inst_hook pre-pivot 99 "$moddir/agama-dud-apply.sh" +} Binary files old/usr/lib64/firefox/distribution/extensions/{809d8a54-1e2d-4fbb-81b4-36ff597b225f}.xpi and new/usr/lib64/firefox/distribution/extensions/{809d8a54-1e2d-4fbb-81b4-36ff597b225f}.xpi differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/var/lib/AccountsService/users/root new/var/lib/AccountsService/users/root --- old/var/lib/AccountsService/users/root 1970-01-01 01:00:00.000000000 +0100 +++ new/var/lib/AccountsService/users/root 2025-06-30 18:04:50.000000000 +0200 @@ -0,0 +1,2 @@ +[User] +Session=gnome-kiosk-script-wayland