Merge branch 'feature/KASM-2249-oracle-8-bins' into 'master'
build el8 x86_64 and aarch64 rpms See merge request kasm-technologies/internal/KasmVNC!36release/0.9.3
						commit
						74a4b5fd9f
					
				@ -0,0 +1,20 @@
 | 
			
		||||
FROM oraclelinux:8
 | 
			
		||||
 | 
			
		||||
RUN dnf install -y \
 | 
			
		||||
  less \
 | 
			
		||||
  redhat-lsb-core \
 | 
			
		||||
  vim \
 | 
			
		||||
  xterm
 | 
			
		||||
  
 | 
			
		||||
ARG KASMVNC_PACKAGE_DIR
 | 
			
		||||
COPY $KASMVNC_PACKAGE_DIR/*.rpm /tmp
 | 
			
		||||
RUN dnf localinstall -y /tmp/*.rpm
 | 
			
		||||
 | 
			
		||||
RUN useradd -m foo
 | 
			
		||||
 | 
			
		||||
USER foo:kasmvnc-cert
 | 
			
		||||
 | 
			
		||||
RUN mkdir ~/.vnc && echo '/usr/bin/xterm &' >> ~/.vnc/xstartup && \
 | 
			
		||||
  chmod +x ~/.vnc/xstartup
 | 
			
		||||
 | 
			
		||||
ENTRYPOINT bash -c "echo -e \"$VNC_PW\n$VNC_PW\n\" | kasmvncpasswd -w -u \"$VNC_USER\" && vncserver :1 -interface 0.0.0.0 && vncserver -kill :1 && vncserver :1 -depth 24 -geometry 1280x1050 -websocketPort 8443 -cert /etc/pki/tls/private/kasmvnc.pem -sslOnly -FrameRate=24 -interface 0.0.0.0 -httpd /usr/share/kasmvnc/www && tail -f $HOME/.vnc/*.log "
 | 
			
		||||
@ -0,0 +1,58 @@
 | 
			
		||||
FROM oraclelinux:8
 | 
			
		||||
 | 
			
		||||
ENV KASMVNC_BUILD_OS oracle
 | 
			
		||||
ENV KASMVNC_BUILD_OS_CODENAME 8
 | 
			
		||||
ENV XORG_VER 1.20.10
 | 
			
		||||
 | 
			
		||||
# Install from stock repos
 | 
			
		||||
RUN dnf install -y \
 | 
			
		||||
  bzip2-devel \
 | 
			
		||||
  ca-certificates \
 | 
			
		||||
  cmake \
 | 
			
		||||
  dnf-plugins-core \
 | 
			
		||||
  gcc \
 | 
			
		||||
  gcc-c++ \
 | 
			
		||||
  git \
 | 
			
		||||
  gnutls-devel \
 | 
			
		||||
  libjpeg-turbo-devel \
 | 
			
		||||
  libpng-devel \
 | 
			
		||||
  libtiff-devel \
 | 
			
		||||
  make \
 | 
			
		||||
  mesa-dri-drivers \
 | 
			
		||||
  openssl-devel \
 | 
			
		||||
  openssl-devel \
 | 
			
		||||
  patch \
 | 
			
		||||
  tigervnc-server \
 | 
			
		||||
  wget \
 | 
			
		||||
  xorg-x11-font-utils \
 | 
			
		||||
  zlib-devel
 | 
			
		||||
 | 
			
		||||
# Enable additional repos (epel, powertools, and fusion)
 | 
			
		||||
RUN dnf config-manager --set-enabled ol8_codeready_builder
 | 
			
		||||
RUN dnf install -y oracle-epel-release-el8
 | 
			
		||||
RUN dnf install -y --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
 | 
			
		||||
 | 
			
		||||
# Install from new repos
 | 
			
		||||
RUN dnf install -y \
 | 
			
		||||
  ffmpeg-devel \
 | 
			
		||||
  giflib-devel \
 | 
			
		||||
  lbzip2 \
 | 
			
		||||
  libXfont2-devel \
 | 
			
		||||
  libxkbfile-devel \
 | 
			
		||||
  xorg-x11-server-devel \
 | 
			
		||||
  xorg-x11-xkb-utils-devel \
 | 
			
		||||
  xorg-x11-xtrans-devel
 | 
			
		||||
 | 
			
		||||
# 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,21 @@
 | 
			
		||||
FROM oraclelinux:8
 | 
			
		||||
 | 
			
		||||
ENV KASMVNC_BUILD_OS oracle
 | 
			
		||||
ENV KASMVNC_BUILD_OS_CODENAME 8
 | 
			
		||||
 | 
			
		||||
RUN dnf install -y \
 | 
			
		||||
  gpg* \
 | 
			
		||||
  less \
 | 
			
		||||
  redhat-lsb-core \
 | 
			
		||||
  rng-tools \
 | 
			
		||||
  rpm* \
 | 
			
		||||
  rpmlint \
 | 
			
		||||
  tree \
 | 
			
		||||
  vim
 | 
			
		||||
 | 
			
		||||
COPY oracle/*.spec /tmp
 | 
			
		||||
RUN dnf builddep -y /tmp/*.spec
 | 
			
		||||
 | 
			
		||||
RUN useradd -m docker && echo "docker:docker" | chpasswd
 | 
			
		||||
 | 
			
		||||
USER docker
 | 
			
		||||
@ -0,0 +1,105 @@
 | 
			
		||||
Name:           kasmvncserver
 | 
			
		||||
Version:        0.9.3~beta
 | 
			
		||||
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, xorg-x11-xkb-utils, xkeyboard-config, xorg-x11-server-utils, openssl, perl
 | 
			
		||||
Conflicts: tigervnc-server, tigervnc-server-minimal
 | 
			
		||||
 | 
			
		||||
%description
 | 
			
		||||
VNC stands for Virtual Network Computing. It is, in essence, a remote
 | 
			
		||||
display system which allows you to view a computing `desktop' environment
 | 
			
		||||
not only on the machine where it is running, but from anywhere on the
 | 
			
		||||
Internet and from a wide variety of machine architectures.
 | 
			
		||||
 | 
			
		||||
KasmVNC has different goals than TigerVNC:
 | 
			
		||||
 | 
			
		||||
Web-based - KasmVNC is designed to provide a web accessible remote desktop.
 | 
			
		||||
It comes with a web server and web-socket server built in. There is no need to
 | 
			
		||||
install other components. Simply run and navigate to your desktop's URL on the
 | 
			
		||||
port you specify. While you can still tun on the legacy VNC port, it is
 | 
			
		||||
disabled by default.
 | 
			
		||||
 | 
			
		||||
Security - KasmVNC defaults to HTTPS and allows for HTTP Basic Auth. VNC
 | 
			
		||||
Password authentication is limited by specification to 8 characters and is not
 | 
			
		||||
sufficient for use on an internet accessible remote desktop. Our goal is to
 | 
			
		||||
create a by default secure, web based experience.
 | 
			
		||||
 | 
			
		||||
Simplicity - KasmVNC aims at being simple to deploy and configure.
 | 
			
		||||
 | 
			
		||||
%prep
 | 
			
		||||
 | 
			
		||||
%install
 | 
			
		||||
rm -rf $RPM_BUILD_ROOT
 | 
			
		||||
 | 
			
		||||
TARGET_OS=$KASMVNC_BUILD_OS
 | 
			
		||||
TARGET_OS_CODENAME=$KASMVNC_BUILD_OS_CODENAME
 | 
			
		||||
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
 | 
			
		||||
cp $SRC_BIN/Xvnc $DESTDIR/usr/bin;
 | 
			
		||||
cp $SRC_BIN/vncserver $DESTDIR/usr/bin;
 | 
			
		||||
cp $SRC_BIN/vncconfig $DESTDIR/usr/bin;
 | 
			
		||||
cp $SRC_BIN/kasmvncpasswd $DESTDIR/usr/bin;
 | 
			
		||||
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 \
 | 
			
		||||
  $SRC/share/kasmvnc $DESTDIR/usr/share
 | 
			
		||||
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;
 | 
			
		||||
cd $DST_MAN && ln -s vncpasswd.1 kasmvncpasswd.1;
 | 
			
		||||
 | 
			
		||||
%files
 | 
			
		||||
/usr/bin/*
 | 
			
		||||
/usr/share/man/man1/*
 | 
			
		||||
/usr/share/kasmvnc/www
 | 
			
		||||
 | 
			
		||||
%license /usr/share/doc/kasmvncserver/LICENSE.TXT
 | 
			
		||||
%doc /usr/share/doc/kasmvncserver/README.md
 | 
			
		||||
 | 
			
		||||
%changelog
 | 
			
		||||
* 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