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