diff --git a/ci-scripts/template-vars.yaml b/ci-scripts/template-vars.yaml
index 4770abe..070dc51 100644
--- a/ci-scripts/template-vars.yaml
+++ b/ci-scripts/template-vars.yaml
@@ -309,6 +309,20 @@ multiImages:
- src/fedora39/xfce/.config/xfce4/**
- src/fedora39/xfce/.config/xfce4/xfconf/**
- src/fedora39/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/**
+ - name1: fedora
+ name2: 40
+ base: fedora:40
+ bg: bg_fedora.png
+ distro: fedora40
+ dockerfile: dockerfile-kasm-core-fedora
+ changeFiles:
+ - dockerfile-kasm-core-fedora
+ - src/fedora40/**
+ - src/fedora40/xfce/**
+ - src/fedora40/xfce/.config/**
+ - src/fedora40/xfce/.config/xfce4/**
+ - src/fedora40/xfce/.config/xfce4/xfconf/**
+ - src/fedora40/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/**
- name1: parrotos
name2: 6
base: parrotsec/core:6
diff --git a/dockerfile-kasm-core-fedora b/dockerfile-kasm-core-fedora
index e11d733..0e3d21b 100644
--- a/dockerfile-kasm-core-fedora
+++ b/dockerfile-kasm-core-fedora
@@ -17,7 +17,7 @@ FROM install_tools AS squid_builder
ARG DISTRO=fedora37
RUN ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g') && \
- wget --progress=dot:giga "https://kasmweb-build-artifacts.s3.amazonaws.com/kasm-squid-builder/1149fc830c7edcb383eec390cce2beba16befde5/output/kasm-squid-builder_${ARCH}.tar.gz"
+ wget "https://kasmweb-build-artifacts.s3.amazonaws.com/kasm-squid-builder/1149fc830c7edcb383eec390cce2beba16befde5/output/kasm-squid-builder_${ARCH}.tar.gz"
RUN tar -xzf kasm-squid-builder_*.tar.gz -C /
FROM install_tools as base_layer
diff --git a/docs/core-fedora-40/README.md b/docs/core-fedora-40/README.md
new file mode 100644
index 0000000..599784e
--- /dev/null
+++ b/docs/core-fedora-40/README.md
@@ -0,0 +1,7 @@
+# About This Image
+
+This image contains a browser-accessible version of Fedora 40.
+
+![Screenshot][Image_Screenshot]
+
+[Image_Screenshot]: https://info.kasmweb.com/hubfs/dockerhub/fedora-37-core.png "Image Screenshot"
diff --git a/docs/core-fedora-40/demo.txt b/docs/core-fedora-40/demo.txt
new file mode 100644
index 0000000..bbd1f8e
--- /dev/null
+++ b/docs/core-fedora-40/demo.txt
@@ -0,0 +1,9 @@
+# Live Demo
+
+**Launch a real-time demo in a new browser window:** Live Demo.
+
+
+
+∗*This demo links to a Jammy Desktop image to show the basic functionality of Kasm Workspaces.*
+
+∗*Note: Demo is limited to 3 minutes and has upload/downloads restricted for security purposes.*
diff --git a/docs/core-fedora-40/description.txt b/docs/core-fedora-40/description.txt
new file mode 100644
index 0000000..3478416
--- /dev/null
+++ b/docs/core-fedora-40/description.txt
@@ -0,0 +1 @@
+Fedora 40 base image for Kasm Workspaces
diff --git a/src/common/resources/images/bg_fedora.png b/src/common/resources/images/bg_fedora.png
index d9bdedf..f42324d 100644
Binary files a/src/common/resources/images/bg_fedora.png and b/src/common/resources/images/bg_fedora.png differ
diff --git a/src/fedora40/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml b/src/fedora40/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml
new file mode 100644
index 0000000..a34dc3c
--- /dev/null
+++ b/src/fedora40/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/fedora40/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml b/src/fedora40/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
new file mode 100644
index 0000000..690238f
--- /dev/null
+++ b/src/fedora40/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/fedora40/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml b/src/fedora40/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml
new file mode 100644
index 0000000..ba3c831
--- /dev/null
+++ b/src/fedora40/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/fedora40/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml b/src/fedora40/xfce/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml
new file mode 100644
index 0000000..d60e3c4
--- /dev/null
+++ b/src/fedora40/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 1d5ea9f..686ec55 100644
--- a/src/ubuntu/install/audio/install_audio.sh
+++ b/src/ubuntu/install/audio/install_audio.sh
@@ -38,6 +38,10 @@ elif [ "${DISTRO}" == "fedora39" ]; then
dnf install -y curl git
dnf localinstall -y --nogpgcheck https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-39.noarch.rpm
dnf install -y --allowerasing ffmpeg pulseaudio pulseaudio-utils
+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}" == "opensuse" ]; then
zypper install -ny curl git
zypper install -yn ffmpeg pulseaudio-utils
diff --git a/src/ubuntu/install/cleanup/cleanup.sh b/src/ubuntu/install/cleanup/cleanup.sh
index dae6ab3..77aca86 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|oracle8|oracle9|rockylinux8|rockylinux9) ]]; then
+elif [[ "${DISTRO}" == @(almalinux8|almalinux9|fedora37|fedora38|fedora39|fedora40|oracle8|oracle9|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 c10c00b..a3fa448 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) ]]; then
+elif [[ "${DISTRO}" == @(fedora37|fedora38|fedora39|fedora40) ]]; 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 a622e03..2aa7345 100644
--- a/src/ubuntu/install/kasm_vnc/install_kasm_vnc.sh
+++ b/src/ubuntu/install/kasm_vnc/install_kasm_vnc.sh
@@ -17,7 +17,7 @@ echo "Install KasmVNC server"
cd /tmp
BUILD_ARCH=$(uname -p)
UBUNTU_CODENAME=""
-COMMIT_ID="574954611c0e8e77d1365f5f739e641eddb2bcbd"
+COMMIT_ID="511e2ae542e95f5447a0a145bb54ced968e6cfec"
BRANCH="master" # just use 'release' for a release branch
KASMVNC_VER="1.3.2"
COMMIT_ID_SHORT=$(echo "${COMMIT_ID}" | cut -c1-6)
@@ -75,6 +75,12 @@ elif [[ "${DISTRO}" == "fedora39" ]] ; then
else
BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/${COMMIT_ID}/kasmvncserver_fedora_thirtynine_${KASM_VER_NAME_PART}_aarch64.rpm"
fi
+elif [[ "${DISTRO}" == "fedora40" ]] ; then
+ if [[ "$(arch)" =~ ^x86_64$ ]] ; then
+ BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/${COMMIT_ID}/kasmvncserver_fedora_forty_${KASM_VER_NAME_PART}_x86_64.rpm"
+ 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}" = @(debian|parrotos6) ]] ; then
if $(grep -q bookworm /etc/os-release) || $(grep -q lory /etc/os-release); then
if [[ "$(arch)" =~ ^x86_64$ ]] ; then
@@ -129,7 +135,7 @@ elif [[ "${DISTRO}" == @(oracle8|oracle9|rockylinux9|rockylinux8|almalinux8|alma
dnf localinstall -y kasmvncserver.rpm
dnf install -y mesa-dri-drivers
rm kasmvncserver.rpm
-elif [[ "${DISTRO}" == @(fedora37|fedora38|fedora39) ]] ; then
+elif [[ "${DISTRO}" == @(fedora37|fedora38|fedora39|fedora40) ]] ; 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
diff --git a/src/ubuntu/install/package_rules/package_rules.sh b/src/ubuntu/install/package_rules/package_rules.sh
index b985616..6795321 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|oracle8|oracle9|rockylinux8|rockylinux9) ]]; then
+elif [[ "${DISTRO}" == @(almalinux8|almalinux9|fedora37|fedora38|fedora39|fedora40|oracle8|oracle9|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|oracle8|oracle9|rockylinux9|rockylinux8|almalinux8|almalinux9) ]]; then
+elif [[ "${DISTRO}" == @(fedora37|fedora38|fedora39|fedora40|oracle8|oracle9|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 e93de9b..d10d079 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|rockylinux8|rockylinux9|fedora37|fedora38|fedora39) ]]; then
+elif [[ "${DISTRO}" == @(almalinux8|almalinux9|oracle8|oracle9|rockylinux8|rockylinux9|fedora37|fedora38|fedora39|fedora40) ]]; 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 cfaa371..add709a 100755
--- a/src/ubuntu/install/profile_sync/install_profile_sync.sh
+++ b/src/ubuntu/install/profile_sync/install_profile_sync.sh
@@ -80,7 +80,7 @@ download_and_symlink() {
ARCH=$(arch)
BRANCH="develop"
-COMMIT_ID="a72c9f215b328348e9703ad4336eefbba9806113"
+COMMIT_ID="a1ffc539ae2c42eda1bcbc5a16e352f241e94a7c"
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 b4ad5d8..fe887c3 100644
--- a/src/ubuntu/install/squid/install/install_squid.sh
+++ b/src/ubuntu/install/squid/install/install_squid.sh
@@ -4,8 +4,10 @@ set -ex
ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g')
if [[ "${ARCH}" == "arm64" ]]; then
LIBSSLURL="http://ports.ubuntu.com/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.22_arm64.deb"
+ RPMLIBSSL="https://ap.edge.kernel.org/fedora/releases/39/Everything/aarch64/os/Packages/o/openssl1.1-1.1.1q-5.fc39.aarch64.rpm"
else
LIBSSLURL="http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.22_amd64.deb"
+ RPMLIBSSL="https://ap.edge.kernel.org/fedora/releases/39/Everything/x86_64/os/Packages/o/openssl1.1-1.1.1q-5.fc39.x86_64.rpm"
fi
# intall squid
@@ -15,12 +17,12 @@ if $(grep -q Jammy /etc/os-release) || $(grep -q Kali /etc/os-release) || $(gre
wget ${LIBSSLURL} -O libssl1.1.${ARCH}.deb
dpkg -i libssl1.1.${ARCH}.deb
rm -f libssl1.1.${ARCH}.deb
-elif [[ "${DISTRO}" != @(centos|oracle7|oracle8|oracle9|opensuse|fedora37|fedora38|fedora39|rockylinux9|rockylinux8|almalinux9|almalinux8|alpine) ]] ; then
+elif [[ "${DISTRO}" != @(centos|oracle7|oracle8|oracle9|opensuse|fedora37|fedora38|fedora39|fedora40|rockylinux9|rockylinux8|almalinux9|almalinux8|alpine) ]] ; then
wget -qO- https://kasmweb-build-artifacts.s3.amazonaws.com/kasm-squid-builder/${SQUID_COMMIT}/output/kasm-squid-builder_${ARCH}.tar.gz | tar -xzf - -C /
fi
# update squid conf with user info
-if [[ "${DISTRO}" == @(centos|oracle7|oracle8|oracle9|fedora37|fedora38|fedora39|almalinux8|almalinux9|rockylinux8|rockylinux9|alpine) ]]; then
+if [[ "${DISTRO}" == @(centos|oracle7|oracle8|oracle9|fedora37|fedora38|fedora39|fedora40|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
@@ -36,6 +38,13 @@ cd /usr/local/squid/etc/ssl_cert
if [[ "${DISTRO}" == @(fedora37|fedora38|fedora39) ]]; then
dnf install -y openssl1.1 xkbcomp
rm -f /etc/X11/xinit/xinitrc
+elif [[ "${DISTRO}" == "fedora40" ]]; then
+ curl -o \
+ /tmp/libssl.rpm -L \
+ "${RPMLIBSSL}"
+ rpm -i \
+ /tmp/libssl.rpm
+ rm -f /etc/X11/xinit/xinitrc
elif [[ "${DISTRO}" == @(rockylinux9|oracle9|almalinux9) ]]; then
dnf install -y compat-openssl11 xkbcomp
rm -f /etc/X11/xinit/xinitrc
@@ -69,7 +78,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|oracle9|rockylinux9|rockylinux8|almalinux9|almalinux8) ]]; then
+elif [[ "${DISTRO}" == @(oracle8|fedora37|fedora38|fedora39|fedora40|oracle9|rockylinux9|rockylinux8|almalinux9|almalinux8) ]]; then
dnf install -y memcached cyrus-sasl iproute
elif [ "${DISTRO}" == "opensuse" ]; then
zypper install -yn memcached cyrus-sasl iproute2 libatomic1
@@ -108,7 +117,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|oracle9|rockylinux9|rockylinux8|almalinux9|almalinux8) ]]; then
+elif [[ "${DISTRO}" == @(oracle8|fedora37|fedora38|fedora39|fedora40|oracle9|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 1f6a413..e3c3cd2 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|rockylinux9|rockylinux8|almalinux9|almalinux8|fedora37|fedora38|fedora39) ]]; then
+elif [[ "${DISTRO}" == @(oracle8|oracle9|rockylinux9|rockylinux8|almalinux9|almalinux8|fedora37|fedora38|fedora39|fedora40) ]]; 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 3922d55..defcfba 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|oracle8|oracle9|rockylinux9|rockylinux8|almalinux8|almalinux9) ]]; then
+elif [[ "${DISTRO}" == @(fedora37|fedora38|fedora39|fedora40|oracle8|oracle9|rockylinux9|rockylinux8|almalinux8|almalinux9) ]]; then
dnf install -y wget net-tools bzip2 tar vim hostname procps-ng bc
elif [ "${DISTRO}" == "opensuse" ]; then
sed -i 's/download.opensuse.org/mirrorcache-us.opensuse.org/g' /etc/zypp/repos.d/*.repo
diff --git a/src/ubuntu/install/xfce/install_xfce_ui.sh b/src/ubuntu/install/xfce/install_xfce_ui.sh
index 6b20012..3532dff 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|oracle9|rockylinux9|rockylinux8|almalinux8|almalinux9|alpine) ]]; then
+if [[ "${DISTRO}" != @(centos|oracle7|oracle8|opensuse|fedora37|fedora38|fedora39|fedora40|oracle9|rockylinux9|rockylinux8|almalinux8|almalinux9|alpine) ]]; then
apt-get update
fi
@@ -155,7 +155,7 @@ 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) ]]; then
+elif [[ "$DISTRO" = @(fedora37|fedora38|fedora39|fedora40) ]]; then
dnf group install xfce -y
dnf install -y \
gvfs \
@@ -180,7 +180,7 @@ elif [ "$DISTRO" = "alpine" ]; then
rm -f /usr/share/xfce4/panel/plugins/power-manager-plugin.desktop
fi
-if [[ "${DISTRO}" != @(centos|oracle7|oracle8|fedora37|fedora38|fedora39|oracle9|rockylinux9|rockylinux8|almalinux8|almalinux9|alpine) ]]; then
+if [[ "${DISTRO}" != @(centos|oracle7|oracle8|fedora37|fedora38|fedora39|fedora40|oracle9|rockylinux9|rockylinux8|almalinux8|almalinux9|alpine) ]]; then
replace_default_xinit
if [ "${START_XFCE4}" == "1" ] ; then
replace_default_99x11_common_start