Merge branch 'feature/KASM-4032-build-fedora-37' into 'master'
Resolve KASM-4032 "Feature/ build fedora 37" Closes KASM-4032 See merge request kasm-technologies/internal/KasmVNC!92release/1.1.0
						commit
						a2c49f6d89
					
				@ -1,4 +1,4 @@
 | 
				
			|||||||
FROM fedora:33
 | 
					FROM fedora:37
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENV STARTUPDIR=/dockerstartup
 | 
					ENV STARTUPDIR=/dockerstartup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -0,0 +1,65 @@
 | 
				
			|||||||
 | 
					FROM fedora:37
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ENV KASMVNC_BUILD_OS fedora
 | 
				
			||||||
 | 
					ENV KASMVNC_BUILD_OS_CODENAME thirtyseven
 | 
				
			||||||
 | 
					ENV XORG_VER 1.20.7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN \
 | 
				
			||||||
 | 
					  echo "**** install build deps ****" && \
 | 
				
			||||||
 | 
					  dnf install -y \
 | 
				
			||||||
 | 
					    autoconf \
 | 
				
			||||||
 | 
					    automake \
 | 
				
			||||||
 | 
					    bzip2 \
 | 
				
			||||||
 | 
					    cmake \
 | 
				
			||||||
 | 
					    gcc \
 | 
				
			||||||
 | 
					    gcc-c++ \
 | 
				
			||||||
 | 
					    git \
 | 
				
			||||||
 | 
					    libdrm-devel \
 | 
				
			||||||
 | 
					    libepoxy-devel \
 | 
				
			||||||
 | 
					    libjpeg-turbo-devel \
 | 
				
			||||||
 | 
					    libjpeg-turbo-static \
 | 
				
			||||||
 | 
					    libpciaccess-devel \
 | 
				
			||||||
 | 
					    libtool \
 | 
				
			||||||
 | 
					    libwebp-devel \
 | 
				
			||||||
 | 
					    libX11-devel \
 | 
				
			||||||
 | 
					    libXau-devel \
 | 
				
			||||||
 | 
					    libxcb-devel \
 | 
				
			||||||
 | 
					    libXcursor-devel \
 | 
				
			||||||
 | 
					    libxcvt-devel \
 | 
				
			||||||
 | 
					    libXdmcp-devel \
 | 
				
			||||||
 | 
					    libXext-devel \
 | 
				
			||||||
 | 
					    libXfont2-devel \
 | 
				
			||||||
 | 
					    libxkbfile-devel \
 | 
				
			||||||
 | 
					    libXrandr-devel \
 | 
				
			||||||
 | 
					    libxshmfence-devel \
 | 
				
			||||||
 | 
					    libXtst-devel \
 | 
				
			||||||
 | 
					    mesa-libEGL-devel \
 | 
				
			||||||
 | 
					    mesa-libGL-devel \
 | 
				
			||||||
 | 
					    meson \
 | 
				
			||||||
 | 
					    nettle-devel \
 | 
				
			||||||
 | 
					    openssl-devel \
 | 
				
			||||||
 | 
					    patch \
 | 
				
			||||||
 | 
					    pixman-devel \
 | 
				
			||||||
 | 
					    wayland-devel \
 | 
				
			||||||
 | 
					    wget \
 | 
				
			||||||
 | 
					    xcb-util-devel \
 | 
				
			||||||
 | 
					    xcb-util-image-devel \
 | 
				
			||||||
 | 
					    xcb-util-keysyms-devel \
 | 
				
			||||||
 | 
					    xcb-util-renderutil-devel \
 | 
				
			||||||
 | 
					    xcb-util-wm-devel \
 | 
				
			||||||
 | 
					    xinit \
 | 
				
			||||||
 | 
					    xkbcomp \
 | 
				
			||||||
 | 
					    xkbcomp-devel \
 | 
				
			||||||
 | 
					    xkeyboard-config \
 | 
				
			||||||
 | 
					    xorg-x11-font-utils \
 | 
				
			||||||
 | 
					    xorg-x11-proto-devel \
 | 
				
			||||||
 | 
					    xorg-x11-server-common \
 | 
				
			||||||
 | 
					    xorg-x11-server-devel \
 | 
				
			||||||
 | 
					    xorg-x11-xtrans-devel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN useradd -m docker && echo "docker:docker" | chpasswd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY --chown=docker:docker . /src/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					USER docker
 | 
				
			||||||
 | 
					ENTRYPOINT ["/src/builder/build.sh"]
 | 
				
			||||||
@ -1,11 +1,11 @@
 | 
				
			|||||||
FROM fedora:33
 | 
					FROM fedora:37
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN dnf install -y fedora-packager fedora-review
 | 
					RUN dnf install -y fedora-packager fedora-review
 | 
				
			||||||
RUN dnf install -y tree vim less
 | 
					RUN dnf install -y tree vim less
 | 
				
			||||||
RUN dnf install -y redhat-lsb-core
 | 
					RUN dnf install -y redhat-lsb-core
 | 
				
			||||||
RUN dnf install -y dnf-plugins-core
 | 
					RUN dnf install -y dnf-plugins-core
 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY centos/*.spec /tmp
 | 
					COPY fedora/*.spec /tmp
 | 
				
			||||||
RUN dnf builddep -y /tmp/*.spec
 | 
					RUN dnf builddep -y /tmp/*.spec
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN useradd -m docker && echo "docker:docker" | chpasswd
 | 
					RUN useradd -m docker && echo "docker:docker" | chpasswd
 | 
				
			||||||
@ -1,38 +0,0 @@
 | 
				
			|||||||
FROM fedora:33
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ENV KASMVNC_BUILD_OS fedora
 | 
					 | 
				
			||||||
ENV KASMVNC_BUILD_OS_CODENAME thirtythree
 | 
					 | 
				
			||||||
ENV XORG_VER 1.20.10
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# RUN dnf install -y build-dep xorg-server libxfont-dev sudo
 | 
					 | 
				
			||||||
RUN dnf install -y gcc cmake git gnutls-devel vim wget
 | 
					 | 
				
			||||||
#tightvncserver
 | 
					 | 
				
			||||||
RUN dnf install -y libjpeg-turbo-devel libpng-devel libtiff-devel giflib-devel openssl-devel
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#libavcodec-dev
 | 
					 | 
				
			||||||
RUN dnf -y install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
 | 
					 | 
				
			||||||
RUN dnf -y install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
 | 
					 | 
				
			||||||
RUN dnf -y install ffmpeg-devel
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN dnf install -y make
 | 
					 | 
				
			||||||
RUN dnf group install -y "Development Tools"
 | 
					 | 
				
			||||||
RUN dnf install -y xorg-x11-server-devel zlib-devel libjpeg-turbo-devel
 | 
					 | 
				
			||||||
RUN dnf install -y libxkbfile-devel libXfont2-devel xorg-x11-font-utils \
 | 
					 | 
				
			||||||
  xorg-x11-xtrans-devel xorg-x11-xkb-utils-devel libXrandr-devel libXtst-devel \
 | 
					 | 
				
			||||||
  libXcursor-devel
 | 
					 | 
				
			||||||
RUN dnf install -y mesa-dri-drivers
 | 
					 | 
				
			||||||
RUN dnf install -y bzip2 redhat-lsb-core
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Additions for webp
 | 
					 | 
				
			||||||
RUN cd /tmp && wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.0.2.tar.gz
 | 
					 | 
				
			||||||
RUN cd /tmp && tar -xzf /tmp/libwebp-*
 | 
					 | 
				
			||||||
RUN cd /tmp/libwebp-1.0.2 && \
 | 
					 | 
				
			||||||
    ./configure --enable-static --disable-shared && \
 | 
					 | 
				
			||||||
    make && make install
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN useradd -m docker && echo "docker:docker" | chpasswd
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY --chown=docker:docker . /src/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
USER docker
 | 
					 | 
				
			||||||
ENTRYPOINT ["/src/builder/build.sh"]
 | 
					 | 
				
			||||||
@ -0,0 +1,124 @@
 | 
				
			|||||||
 | 
					Name:           kasmvncserver
 | 
				
			||||||
 | 
					Version:        1.0.0
 | 
				
			||||||
 | 
					Release:        1%{?dist}
 | 
				
			||||||
 | 
					Summary:        VNC server accessible from a web browser
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					License: GPLv2+
 | 
				
			||||||
 | 
					URL: https://github.com/kasmtech/KasmVNC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BuildRequires: rsync
 | 
				
			||||||
 | 
					Requires: xorg-x11-xauth, xkeyboard-config, openssl, perl, perl-Switch, perl-YAML-Tiny, perl-Hash-Merge-Simple, perl-Scalar-List-Utils, perl-List-MoreUtils, perl-Try-Tiny
 | 
				
			||||||
 | 
					Conflicts: tigervnc-server, tigervnc-server-minimal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%description
 | 
				
			||||||
 | 
					KasmVNC provides remote web-based access to a Desktop or application. 
 | 
				
			||||||
 | 
					While VNC is in the name, KasmVNC differs from other VNC variants such 
 | 
				
			||||||
 | 
					as TigerVNC, RealVNC, and TurboVNC. KasmVNC has broken from the RFB 
 | 
				
			||||||
 | 
					specification which defines VNC, in order to support modern technologies 
 | 
				
			||||||
 | 
					and increase security. KasmVNC is accessed by users from any modern 
 | 
				
			||||||
 | 
					browser and does not support legacy VNC viewer applications. KasmVNC 
 | 
				
			||||||
 | 
					uses a modern YAML based configuration at the server and user level, 
 | 
				
			||||||
 | 
					allowing for ease of management. KasmVNC is maintained by Kasm 
 | 
				
			||||||
 | 
					Technologies Corp, www.kasmweb.com.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					WARNING: this package requires EPEL.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%prep
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%install
 | 
				
			||||||
 | 
					rm -rf $RPM_BUILD_ROOT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TARGET_OS=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
 | 
				
			||||||
 | 
					TARGET_OS_CODENAME=$(lsb_release -cs | tr '[:upper:]' '[:lower:]')
 | 
				
			||||||
 | 
					TARBALL=$RPM_SOURCE_DIR/kasmvnc.${TARGET_OS}_${TARGET_OS_CODENAME}.tar.gz
 | 
				
			||||||
 | 
					TAR_DATA=$(mktemp -d)
 | 
				
			||||||
 | 
					tar -xzf "$TARBALL" -C "$TAR_DATA"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SRC=$TAR_DATA/usr/local
 | 
				
			||||||
 | 
					SRC_BIN=$SRC/bin
 | 
				
			||||||
 | 
					DESTDIR=$RPM_BUILD_ROOT
 | 
				
			||||||
 | 
					DST_MAN=$DESTDIR/usr/share/man/man1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir -p $DESTDIR/usr/bin $DESTDIR/usr/share/man/man1 \
 | 
				
			||||||
 | 
					  $DESTDIR/usr/share/doc/kasmvncserver $DESTDIR/usr/lib \
 | 
				
			||||||
 | 
					  $DESTDIR/usr/share/perl5 $DESTDIR/etc/kasmvnc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cp $SRC_BIN/Xvnc $DESTDIR/usr/bin;
 | 
				
			||||||
 | 
					cp $SRC_BIN/vncserver $DESTDIR/usr/bin;
 | 
				
			||||||
 | 
					cp -a $SRC_BIN/KasmVNC $DESTDIR/usr/share/perl5/
 | 
				
			||||||
 | 
					cp $SRC_BIN/vncconfig $DESTDIR/usr/bin;
 | 
				
			||||||
 | 
					cp $SRC_BIN/kasmvncpasswd $DESTDIR/usr/bin;
 | 
				
			||||||
 | 
					cp $SRC_BIN/kasmxproxy $DESTDIR/usr/bin;
 | 
				
			||||||
 | 
					cp -r $SRC/lib/kasmvnc/ $DESTDIR/usr/lib/kasmvncserver
 | 
				
			||||||
 | 
					cd $DESTDIR/usr/bin && ln -s kasmvncpasswd vncpasswd;
 | 
				
			||||||
 | 
					cp -r $SRC/share/doc/kasmvnc*/* $DESTDIR/usr/share/doc/kasmvncserver/
 | 
				
			||||||
 | 
					rsync -r --exclude '.git*' --exclude po2js --exclude xgettext-html \
 | 
				
			||||||
 | 
					  --exclude www/utils/ --exclude .eslintrc --exclude configure \
 | 
				
			||||||
 | 
					  $SRC/share/kasmvnc $DESTDIR/usr/share
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sed -i -e 's!pem_certificate: .\+$!pem_certificate: /etc/pki/tls/private/kasmvnc.pem!' \
 | 
				
			||||||
 | 
					    $DESTDIR/usr/share/kasmvnc/kasmvnc_defaults.yaml
 | 
				
			||||||
 | 
					sed -i -e 's!pem_key: .\+$!pem_key: /etc/pki/tls/private/kasmvnc.pem!' \
 | 
				
			||||||
 | 
					    $DESTDIR/usr/share/kasmvnc/kasmvnc_defaults.yaml
 | 
				
			||||||
 | 
					sed -e 's/^\([^#]\)/# \1/' $DESTDIR/usr/share/kasmvnc/kasmvnc_defaults.yaml > \
 | 
				
			||||||
 | 
					  $DESTDIR/etc/kasmvnc/kasmvnc.yaml
 | 
				
			||||||
 | 
					cp $SRC/man/man1/Xvnc.1 $DESTDIR/usr/share/man/man1/;
 | 
				
			||||||
 | 
					cp $SRC/share/man/man1/vncserver.1 $DST_MAN;
 | 
				
			||||||
 | 
					cp $SRC/share/man/man1/vncconfig.1 $DST_MAN;
 | 
				
			||||||
 | 
					cp $SRC/share/man/man1/vncpasswd.1 $DST_MAN;
 | 
				
			||||||
 | 
					cp $SRC/share/man/man1/kasmxproxy.1 $DST_MAN;
 | 
				
			||||||
 | 
					cd $DST_MAN && ln -s vncpasswd.1 kasmvncpasswd.1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%files
 | 
				
			||||||
 | 
					%config(noreplace) /etc/kasmvnc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/usr/bin/*
 | 
				
			||||||
 | 
					/usr/lib/kasmvncserver
 | 
				
			||||||
 | 
					/usr/share/man/man1/*
 | 
				
			||||||
 | 
					/usr/share/perl5/KasmVNC
 | 
				
			||||||
 | 
					/usr/share/kasmvnc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%license /usr/share/doc/kasmvncserver/LICENSE.TXT
 | 
				
			||||||
 | 
					%doc /usr/share/doc/kasmvncserver/README.md
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%changelog
 | 
				
			||||||
 | 
					* Tue Nov 29 2022 KasmTech <info@kasmweb.com> - 1.0.0-1
 | 
				
			||||||
 | 
					- WebRTC UDP transit support with support of STUN servers
 | 
				
			||||||
 | 
					- Lossless compression using multi-threaded WASM QOI decoder client side
 | 
				
			||||||
 | 
					- New yaml based configuration
 | 
				
			||||||
 | 
					- Significantly improved FPS through both client-side and server-side improvements.
 | 
				
			||||||
 | 
					- Support for the admin to define arbitrary http response headers for the built in web server
 | 
				
			||||||
 | 
					- Support for additional mouse buttons
 | 
				
			||||||
 | 
					- Refinement of vncserver checks and user prompts
 | 
				
			||||||
 | 
					- Added send_full_frame to developer API, forces full frame to be sent to all connected users that have at least read permission.
 | 
				
			||||||
 | 
					* Tue Mar 22 2022 KasmTech <info@kasmweb.com> - 0.9.3~beta-1
 | 
				
			||||||
 | 
					* Fri Feb 12 2021 KasmTech <info@kasmweb.com> - 0.9.1~beta-1
 | 
				
			||||||
 | 
					- Initial release of the rpm package.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%post
 | 
				
			||||||
 | 
					  kasmvnc_group="kasmvnc-cert"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  create_kasmvnc_group() {
 | 
				
			||||||
 | 
					    if ! getent group "$kasmvnc_group" >/dev/null; then
 | 
				
			||||||
 | 
						    groupadd --system "$kasmvnc_group"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  make_self_signed_certificate() {
 | 
				
			||||||
 | 
					    local cert_file=/etc/pki/tls/private/kasmvnc.pem
 | 
				
			||||||
 | 
					    [ -f "$cert_file" ] && return 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
 | 
				
			||||||
 | 
					      -keyout "$cert_file" \
 | 
				
			||||||
 | 
					      -out "$cert_file" -subj \
 | 
				
			||||||
 | 
					      "/C=US/ST=VA/L=None/O=None/OU=DoFu/CN=kasm/emailAddress=none@none.none"
 | 
				
			||||||
 | 
					    chgrp "$kasmvnc_group" "$cert_file"
 | 
				
			||||||
 | 
					    chmod 640 "$cert_file"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  create_kasmvnc_group
 | 
				
			||||||
 | 
					  make_self_signed_certificate
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%postun
 | 
				
			||||||
 | 
					  rm -f /etc/pki/tls/private/kasmvnc.pem
 | 
				
			||||||
					Loading…
					
					
				
		Reference in New Issue