diff --git a/dockerfile-kasm-core-fedora b/dockerfile-kasm-core-fedora
index 4e30477..09d11d5 100644
--- a/dockerfile-kasm-core-fedora
+++ b/dockerfile-kasm-core-fedora
@@ -45,7 +45,12 @@ RUN mkdir -p $HOME/Desktop
### (should be nss_wrapper), and yum would just ignore it. Thus, a necessary
### package would be missing. With skip_missing_names_on_install, yum will exit
### with 1 exit code and that will stop image building.
-RUN dnf install -y 'dnf-command(config-manager)' && dnf config-manager --setopt=skip_missing_names_on_install=False --save
+RUN dnf install -y 'dnf-command(config-manager)' && \
+ if [ "${DISTRO}" == "fedora41" ]; then \
+ dnf-3 config-manager --setopt=skip_missing_names_on_install=False --save; \
+ else \
+ dnf config-manager --setopt=skip_missing_names_on_install=False --save; \
+ fi
### Install custom fonts
COPY ./src/ubuntu/install/fonts $INST_SCRIPTS/fonts/
diff --git a/src/fedora41/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml b/src/fedora41/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml
new file mode 100644
index 0000000..a34dc3c
--- /dev/null
+++ b/src/fedora41/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/fedora41/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml b/src/fedora41/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
new file mode 100644
index 0000000..690238f
--- /dev/null
+++ b/src/fedora41/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/fedora41/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml b/src/fedora41/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml
new file mode 100644
index 0000000..ba3c831
--- /dev/null
+++ b/src/fedora41/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/fedora41/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml b/src/fedora41/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml
new file mode 100644
index 0000000..d60e3c4
--- /dev/null
+++ b/src/fedora41/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/ubuntu/install/audio/install_audio.sh b/src/ubuntu/install/audio/install_audio.sh
index 9e231db..b135499 100644
--- a/src/ubuntu/install/audio/install_audio.sh
+++ b/src/ubuntu/install/audio/install_audio.sh
@@ -22,7 +22,7 @@ elif [[ "${DISTRO}" == @(oracle9|rhel9) ]]; then
fi
dnf localinstall -y --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-9.noarch.rpm
dnf install -y --allowerasing ffmpeg pulseaudio-utils pulseaudio
-elif [[ "${DISTRO}" == @(rockylinux9|almalinux9) ]]; then
+elif [[ "${DISTRO}" == @(rockylinux9|almalinux9) ]]; then
dnf localinstall -y --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-9.noarch.rpm
dnf install -y --allowerasing ffmpeg pulseaudio-utils pulseaudio
elif [[ "${DISTRO}" == @(rockylinux8|almalinux8) ]]; then
@@ -44,8 +44,12 @@ elif [ "${DISTRO}" == "fedora40" ]; then
dnf install -y curl git
dnf localinstall -y --nogpgcheck https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-40.noarch.rpm
dnf install -y --allowerasing ffmpeg pulseaudio pulseaudio-utils
+elif [ "${DISTRO}" == "fedora41" ]; then
+ dnf install -y curl git
+ dnf-3 localinstall -y --nogpgcheck https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-41.noarch.rpm
+ dnf install -y --allowerasing ffmpeg pulseaudio pulseaudio-utils
elif [ "${DISTRO}" == "opensuse" ]; then
- zypper install -ny curl git
+ zypper install -ny curl git
zypper install -yn ffmpeg pulseaudio-utils
elif [ "${DISTRO}" == "alpine" ]; then
if grep -q v3.19 /etc/os-release || grep -q v3.20 /etc/os-release || grep -q v3.21 /etc/os-release; then
@@ -60,7 +64,7 @@ elif [ "${DISTRO}" == "alpine" ]; then
ffmpeg \
git \
pulseaudio \
- pulseaudio-utils
+ pulseaudio-utils
fi
else
apt-get update
diff --git a/src/ubuntu/install/cleanup/cleanup.sh b/src/ubuntu/install/cleanup/cleanup.sh
index 40680a6..f2e5ee0 100644
--- a/src/ubuntu/install/cleanup/cleanup.sh
+++ b/src/ubuntu/install/cleanup/cleanup.sh
@@ -4,7 +4,7 @@ set -ex
# Distro package cleanup
if [[ "${DISTRO}" == @(centos|oracle7) ]] ; then
yum clean all
-elif [[ "${DISTRO}" == @(almalinux8|almalinux9|fedora37|fedora38|fedora39|fedora40|oracle8|oracle9|rhel9|rockylinux8|rockylinux9) ]]; then
+elif [[ "${DISTRO}" == @(almalinux8|almalinux9|fedora37|fedora38|fedora39|fedora40|fedora41|oracle8|oracle9|rhel9|rockylinux8|rockylinux9) ]]; then
dnf clean all
elif [ "${DISTRO}" == "opensuse" ]; then
zypper clean --all
diff --git a/src/ubuntu/install/fonts/install_custom_fonts.sh b/src/ubuntu/install/fonts/install_custom_fonts.sh
index da8d9d2..af8e7a2 100644
--- a/src/ubuntu/install/fonts/install_custom_fonts.sh
+++ b/src/ubuntu/install/fonts/install_custom_fonts.sh
@@ -20,7 +20,7 @@ elif [[ "${DISTRO}" == "centos" ]]; then
google-noto-emoji-fonts \
google-noto-sans-cjk-fonts \
google-noto-sans-fonts
-elif [[ "${DISTRO}" == @(fedora37|fedora38|fedora39|fedora40) ]]; then
+elif [[ "${DISTRO}" == @(fedora37|fedora38|fedora39|fedora40|fedora41) ]]; then
dnf install -y \
glibc-locale-source \
google-noto-cjk-fonts \
diff --git a/src/ubuntu/install/kasm_vnc/install_kasm_vnc.sh b/src/ubuntu/install/kasm_vnc/install_kasm_vnc.sh
index ea2af3e..aa0a3e9 100644
--- a/src/ubuntu/install/kasm_vnc/install_kasm_vnc.sh
+++ b/src/ubuntu/install/kasm_vnc/install_kasm_vnc.sh
@@ -17,8 +17,8 @@ echo "Install KasmVNC server"
cd /tmp
BUILD_ARCH=$(uname -p)
UBUNTU_CODENAME=""
-COMMIT_ID="e04731870baebd2784983fb48197a2416c7d3519"
-BRANCH="master" # just use 'release' for a release branch
+COMMIT_ID="e8f1787dc208909ea6756a70c821997351b537af"
+BRANCH="feature_KASM-6852-fedora-41" # just use 'release' for a release branch
KASMVNC_VER="1.3.4"
COMMIT_ID_SHORT=$(echo "${COMMIT_ID}" | cut -c1-6)
@@ -81,6 +81,12 @@ elif [[ "${DISTRO}" == "fedora40" ]] ; then
else
BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/${COMMIT_ID}/kasmvncserver_fedora_forty_${KASM_VER_NAME_PART}_aarch64.rpm"
fi
+elif [[ "${DISTRO}" == "fedora41" ]] ; then
+ if [[ "$(arch)" =~ ^x86_64$ ]] ; then
+ BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/${COMMIT_ID}/kasmvncserver_fedora_fortyone_${KASM_VER_NAME_PART}_x86_64.rpm"
+ else
+ BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/${COMMIT_ID}/kasmvncserver_fedora_fortyone_${KASM_VER_NAME_PART}_aarch64.rpm"
+ fi
elif [[ "${DISTRO}" = @(debian|parrotos6) ]] ; then
if $(grep -q bookworm /etc/os-release) || $(grep -q lory /etc/os-release); then
if [[ "$(arch)" =~ ^x86_64$ ]] ; then
@@ -147,13 +153,19 @@ elif [[ "${DISTRO}" == @(oracle8|oracle9|rhel9|rockylinux9|rockylinux8|almalinux
dnf localinstall -y kasmvncserver.rpm
dnf install -y mesa-dri-drivers
rm kasmvncserver.rpm
-elif [[ "${DISTRO}" == @(fedora37|fedora38|fedora39|fedora40) ]] ; then
+elif [[ "${DISTRO}" == @(fedora37|fedora38|fedora39|fedora40|fedora41) ]] ; then
dnf install -y xorg-x11-drv-amdgpu xorg-x11-drv-ati
if [ "${BUILD_ARCH}" == "x86_64" ]; then
dnf install -y xorg-x11-drv-intel
fi
wget "${BUILD_URL}" -O kasmvncserver.rpm
- dnf localinstall -y --allowerasing kasmvncserver.rpm
+ if [[ "${DISTRO}" == "fedora41" ]] ; then
+ dnf-3 localinstall -y --allowerasing kasmvncserver.rpm
+ dnf install -y update-crypto-policies
+ update-crypto-policies --set FEDORA40
+ else
+ dnf localinstall -y --allowerasing kasmvncserver.rpm
+ fi
dnf install -y mesa-dri-drivers
rm kasmvncserver.rpm
elif [[ "${DISTRO}" == "opensuse" ]] ; then
diff --git a/src/ubuntu/install/package_rules/package_rules.sh b/src/ubuntu/install/package_rules/package_rules.sh
index b72c63b..bc9ab24 100644
--- a/src/ubuntu/install/package_rules/package_rules.sh
+++ b/src/ubuntu/install/package_rules/package_rules.sh
@@ -9,7 +9,7 @@ elif [[ "${DISTRO}" == "debian" ]] ; then
sed -i \
'/locale/d' \
/etc/dpkg/dpkg.cfg.d/docker
-elif [[ "${DISTRO}" == @(almalinux8|almalinux9|fedora37|fedora38|fedora39|fedora40|oracle8|oracle9|rhel9|rockylinux8|rockylinux9) ]]; then
+elif [[ "${DISTRO}" == @(almalinux8|almalinux9|fedora37|fedora38|fedora39|fedora40|fedora41|oracle8|oracle9|rhel9|rockylinux8|rockylinux9) ]]; then
rm -f /etc/rpm/macros.image-language-conf
elif [[ "${DISTRO}" == @(centos|oracle7) ]]; then
sed -i \
@@ -22,7 +22,7 @@ fi
echo "Upgrading packages from upstream base image"
if [[ "${DISTRO}" == @(centos|oracle7) ]] ; then
yum update -y
-elif [[ "${DISTRO}" == @(fedora37|fedora38|fedora39|fedora40|oracle8|oracle9|rhel9|rockylinux9|rockylinux8|almalinux8|almalinux9) ]]; then
+elif [[ "${DISTRO}" == @(fedora37|fedora38|fedora39|fedora40|fedora41|oracle8|oracle9|rhel9|rockylinux9|rockylinux8|almalinux8|almalinux9) ]]; then
dnf upgrade -y --refresh
elif [ "${DISTRO}" == "opensuse" ]; then
zypper --non-interactive patch --auto-agree-with-licenses
diff --git a/src/ubuntu/install/printer/install_printer.sh b/src/ubuntu/install/printer/install_printer.sh
index 6064484..7ef1bbc 100755
--- a/src/ubuntu/install/printer/install_printer.sh
+++ b/src/ubuntu/install/printer/install_printer.sh
@@ -6,7 +6,7 @@ echo $DISTRO
if [ "${DISTRO}" == "oracle7" ] || [ "${DISTRO}" == "centos" ]; then
yum install -y cups cups-client cups-pdf
-elif [[ "${DISTRO}" == @(almalinux8|almalinux9|oracle8|oracle9|rhel9|rockylinux8|rockylinux9|fedora37|fedora38|fedora39|fedora40) ]]; then
+elif [[ "${DISTRO}" == @(almalinux8|almalinux9|oracle8|oracle9|rhel9|rockylinux8|rockylinux9|fedora37|fedora38|fedora39|fedora40|fedora41) ]]; then
dnf install -y cups cups-client cups-pdf
elif [ "${DISTRO}" == "opensuse" ]; then
zypper install -y cups cups-client cups-pdf
diff --git a/src/ubuntu/install/profile_sync/install_profile_sync.sh b/src/ubuntu/install/profile_sync/install_profile_sync.sh
index 36e6321..20a82be 100755
--- a/src/ubuntu/install/profile_sync/install_profile_sync.sh
+++ b/src/ubuntu/install/profile_sync/install_profile_sync.sh
@@ -88,8 +88,8 @@ download_and_symlink() {
}
ARCH=$(arch)
-BRANCH="develop"
-COMMIT_ID="9b62027aaf2046454b572d7257070aaac9cd8cac"
+BRANCH="feature_KASM-6852-fedora-41"
+COMMIT_ID="6bf95129c750a2453e65596020df2e593d58d06c"
convert_local_distro_to_profile_sync_distro
check_distro_is_supported
diff --git a/src/ubuntu/install/squid/install/install_squid.sh b/src/ubuntu/install/squid/install/install_squid.sh
index 943ca8c..22e04ae 100644
--- a/src/ubuntu/install/squid/install/install_squid.sh
+++ b/src/ubuntu/install/squid/install/install_squid.sh
@@ -3,7 +3,7 @@ set -ex
# Install openssl
ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g')
-if [[ "${DISTRO}" == @(centos|oracle7|oracle8|oracle9|rhel9|fedora37|fedora38|fedora39|fedora40|almalinux8|almalinux9|rockylinux8|rockylinux9) ]]; then
+if [[ "${DISTRO}" == @(centos|oracle7|oracle8|oracle9|rhel9|fedora37|fedora38|fedora39|fedora40|fedora41|almalinux8|almalinux9|rockylinux8|rockylinux9) ]]; then
dnf install -y openssl xkbcomp
rm -f /etc/X11/xinit/xinitrc
elif [[ "${DISTRO}" == "alpine" ]]; then
@@ -26,7 +26,7 @@ else
fi
# Update squid conf with user info
-if [[ "${DISTRO}" == @(centos|oracle7|oracle8|oracle9|rhel9|fedora37|fedora38|fedora39|fedora40|almalinux8|almalinux9|rockylinux8|rockylinux9|alpine) ]]; then
+if [[ "${DISTRO}" == @(centos|oracle7|oracle8|oracle9|rhel9|fedora37|fedora38|fedora39|fedora40|fedora41|almalinux8|almalinux9|rockylinux8|rockylinux9|alpine) ]]; then
useradd --system --shell /usr/sbin/nologin --home-dir /bin proxy
elif [ "${DISTRO}" == "opensuse" ]; then
useradd --system --shell /usr/sbin/nologin --home-dir /bin proxy
@@ -53,7 +53,7 @@ chown -R proxy:proxy /etc/squid/blocked.acl
if [[ "${DISTRO}" == @(centos|oracle7) ]]; then
yum install -y memcached cyrus-sasl iproute
-elif [[ "${DISTRO}" == @(oracle8|fedora37|fedora38|fedora39|fedora40|oracle9|rhel9|rockylinux9|rockylinux8|almalinux9|almalinux8) ]]; then
+elif [[ "${DISTRO}" == @(oracle8|fedora37|fedora38|fedora39|fedora40|fedora41|oracle9|rhel9|rockylinux9|rockylinux8|almalinux9|almalinux8) ]]; then
dnf install -y memcached cyrus-sasl iproute
elif [ "${DISTRO}" == "opensuse" ]; then
zypper install -yn memcached cyrus-sasl iproute2 libatomic1
@@ -92,7 +92,7 @@ chmod +x /etc/squid/kasm_squid_adapter
# Install Cert utilities
if [[ "${DISTRO}" == @(centos|oracle7) ]]; then
yum install -y nss-tools
-elif [[ "${DISTRO}" == @(oracle8|fedora37|fedora38|fedora39|fedora40|oracle9|rhel9|rockylinux9|rockylinux8|almalinux9|almalinux8) ]]; then
+elif [[ "${DISTRO}" == @(oracle8|fedora37|fedora38|fedora39|fedora40|fedora41|oracle9|rhel9|rockylinux9|rockylinux8|almalinux9|almalinux8) ]]; then
dnf install -y nss-tools
elif [ "${DISTRO}" == "opensuse" ]; then
zypper install -yn mozilla-nss-tools
diff --git a/src/ubuntu/install/sysbox/install_systemd.sh b/src/ubuntu/install/sysbox/install_systemd.sh
index 3dfa44d..373b144 100644
--- a/src/ubuntu/install/sysbox/install_systemd.sh
+++ b/src/ubuntu/install/sysbox/install_systemd.sh
@@ -15,7 +15,7 @@ if [[ "${DISTRO}" == @(ubuntu|debian|parrotos6|kali) ]] ; then
systemd \
systemd-sysv \
udev
-elif [[ "${DISTRO}" == @(oracle8|oracle9|rhel9|rockylinux9|rockylinux8|almalinux9|almalinux8|fedora37|fedora38|fedora39|fedora40) ]]; then
+elif [[ "${DISTRO}" == @(oracle8|oracle9|rhel9|rockylinux9|rockylinux8|almalinux9|almalinux8|fedora37|fedora38|fedora39|fedora40|fedora41) ]]; then
# Install deps
dnf install -y \
dbus \
diff --git a/src/ubuntu/install/tools/install_tools.sh b/src/ubuntu/install/tools/install_tools.sh
index 0fff60a..1fda15f 100644
--- a/src/ubuntu/install/tools/install_tools.sh
+++ b/src/ubuntu/install/tools/install_tools.sh
@@ -8,7 +8,7 @@ fi
echo "Install some common tools for further installation"
if [[ "${DISTRO}" == @(centos|oracle7) ]] ; then
yum install -y vim wget net-tools bzip2 ca-certificates bc
-elif [[ "${DISTRO}" == @(fedora37|fedora38|fedora39|fedora40|oracle8|oracle9|rhel9|rockylinux9|rockylinux8|almalinux8|almalinux9) ]]; then
+elif [[ "${DISTRO}" == @(fedora37|fedora38|fedora39|fedora40|fedora41|oracle8|oracle9|rhel9|rockylinux9|rockylinux8|almalinux8|almalinux9) ]]; then
dnf install -y wget net-tools bzip2 tar vim hostname procps-ng bc
elif [ "${DISTRO}" == "opensuse" ]; then
zypper install -yn wget net-tools bzip2 tar vim gzip iputils bc
diff --git a/src/ubuntu/install/xfce/install_xfce_ui.sh b/src/ubuntu/install/xfce/install_xfce_ui.sh
index 43b760a..e14b2df 100644
--- a/src/ubuntu/install/xfce/install_xfce_ui.sh
+++ b/src/ubuntu/install/xfce/install_xfce_ui.sh
@@ -30,7 +30,7 @@ EOL
}
echo "Install Xfce4 UI components"
-if [[ "${DISTRO}" != @(centos|oracle7|oracle8|opensuse|fedora37|fedora38|fedora39|fedora40|oracle9|rhel9|rockylinux9|rockylinux8|almalinux8|almalinux9|alpine) ]]; then
+if [[ "${DISTRO}" != @(centos|oracle7|oracle8|opensuse|fedora37|fedora38|fedora39|fedora40|fedora41|oracle9|rhel9|rockylinux9|rockylinux8|almalinux8|almalinux9|alpine) ]]; then
apt-get update
fi
@@ -92,7 +92,7 @@ elif [[ "${DISTRO}" == @(centos|oracle7) ]]; then
if [ "${DISTRO}" == centos ]; then
yum install -y epel-release
else
- yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
+ yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
fi
disable_epel_nss_wrapper_that_breaks_firefox
yum groupinstall xfce -y
@@ -174,14 +174,29 @@ elif [ "$DISTRO" = "opensuse" ]; then
xset
# Pidof is no longer shipped in OpenSuse
ln -s /usr/bin/pgrep /usr/bin/pidof
-elif [[ "$DISTRO" = @(fedora37|fedora38|fedora39|fedora40) ]]; then
- dnf group install xfce -y
+elif [[ "$DISTRO" = @(fedora37|fedora38|fedora39|fedora40|fedora41) ]]; then
dnf install -y \
- gvfs \
- wmctrl \
- xclip \
- xfce4-notifyd \
- xset
+ dbus-tools \
+ dbus-x11 \
+ desktop-backgrounds-compat \
+ dex-autostart \
+ greybird-dark-theme \
+ greybird-xfwm4-theme \
+ gtk-xfce-engine \
+ mousepad \
+ Thunar \
+ xfce4-appfinder \
+ xfce4-datetime-plugin \
+ xfce4-panel \
+ xfce4-places-plugin \
+ xfce4-pulseaudio-plugin \
+ xfce4-session \
+ xfce4-settings \
+ xfce4-terminal \
+ xfconf \
+ xfdesktop \
+ xfwm4 \
+ xfwm4-themes
# fix for xfce4-notifyd not being rachable
dbus-uuidgen --ensure
@@ -216,7 +231,7 @@ Exec=/usr/lib/xfce4/notifyd/xfce4-notifyd
EOL
fi
-if [[ "${DISTRO}" != @(centos|oracle7|oracle8|fedora37|fedora38|fedora39|fedora40|oracle9|rhel9|rockylinux9|rockylinux8|almalinux8|almalinux9|alpine) ]]; then
+if [[ "${DISTRO}" != @(centos|oracle7|oracle8|fedora37|fedora38|fedora39|fedora40|fedora41|oracle9|rhel9|rockylinux9|rockylinux8|almalinux8|almalinux9|alpine) ]]; then
replace_default_xinit
if [ "${START_XFCE4}" == "1" ] ; then
replace_default_99x11_common_start