mirror of
https://github.com/kasmtech/KasmVNC.git
synced 2025-06-25 04:01:30 +02:00
Merge branch 'feature/KASM-3870-statically-link-libjpeg' into 'master'
Resolve KASM-3870 "Feature/ statically link libjpeg" Closes KASM-3870 See merge request kasm-technologies/internal/KasmVNC!87
This commit is contained in:
commit
cc606d0c00
@ -99,23 +99,6 @@ build_ubuntu_bionic_arm:
|
|||||||
paths:
|
paths:
|
||||||
- output/
|
- output/
|
||||||
|
|
||||||
build_ubuntu_bionic_libjpeg_turbo:
|
|
||||||
stage: build
|
|
||||||
allow_failure: false
|
|
||||||
before_script:
|
|
||||||
- *prepare_build
|
|
||||||
- *prepare_www
|
|
||||||
after_script:
|
|
||||||
- *prepare_artfacts
|
|
||||||
script:
|
|
||||||
- bash builder/build-package ubuntu bionic +libjpeg-turbo_latest
|
|
||||||
only:
|
|
||||||
variables:
|
|
||||||
- $BUILD_JOBS == 'all' || $BUILD_JOBS =~ $CI_JOB_NAME
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- output/
|
|
||||||
|
|
||||||
build_ubuntu_focal:
|
build_ubuntu_focal:
|
||||||
stage: build
|
stage: build
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
@ -151,6 +151,8 @@ find_package(ZLIB REQUIRED)
|
|||||||
# Check for libjpeg
|
# Check for libjpeg
|
||||||
find_package(JPEG REQUIRED)
|
find_package(JPEG REQUIRED)
|
||||||
|
|
||||||
|
# Staticly link libjpeg-turbo
|
||||||
|
set(JPEG_LIBRARIES "-Wl,-Bstatic -lturbojpeg -Wl,-Bdynamic")
|
||||||
# Warn if it doesn't seem to be the accelerated libjpeg that's found
|
# Warn if it doesn't seem to be the accelerated libjpeg that's found
|
||||||
set(CMAKE_REQUIRED_LIBRARIES ${JPEG_LIBRARIES})
|
set(CMAKE_REQUIRED_LIBRARIES ${JPEG_LIBRARIES})
|
||||||
set(CMAKE_REQUIRED_FLAGS -I${JPEG_INCLUDE_DIR})
|
set(CMAKE_REQUIRED_FLAGS -I${JPEG_INCLUDE_DIR})
|
||||||
|
@ -231,6 +231,7 @@ command_line:
|
|||||||
|
|
||||||
# New Features!
|
# New Features!
|
||||||
|
|
||||||
|
- Faster jpeg compression (via statically linked libjpeg-turbo)
|
||||||
- Webp image compression for better bandwidth usage
|
- Webp image compression for better bandwidth usage
|
||||||
- Automatic mixing of webp and jpeg based on CPU availability on server
|
- Automatic mixing of webp and jpeg based on CPU availability on server
|
||||||
- Multi-threaded image encoding for smoother frame rate for servers with more cores
|
- Multi-threaded image encoding for smoother frame rate for servers with more cores
|
||||||
|
@ -48,6 +48,18 @@ It will install the package inside a new container and run KasmVNC.
|
|||||||
|
|
||||||
Open browser and point to https://localhost:443/ or https://\<ip-address\>:443/
|
Open browser and point to https://localhost:443/ or https://\<ip-address\>:443/
|
||||||
|
|
||||||
|
## Debugging
|
||||||
|
|
||||||
|
To debug a test container, run `test-deb ubuntu focal -s` or `test-deb ubuntu
|
||||||
|
focal --shell`. It runs a shell instead of starting KasmVNC.
|
||||||
|
|
||||||
|
## Testing performance
|
||||||
|
|
||||||
|
To run a performance test, add `-p` option:
|
||||||
|
```
|
||||||
|
builder/test-deb ubuntu focal -p
|
||||||
|
```
|
||||||
|
|
||||||
# Package development
|
# Package development
|
||||||
|
|
||||||
## deb/rpm package building and testing
|
## deb/rpm package building and testing
|
||||||
|
@ -68,6 +68,12 @@ RUN \
|
|||||||
xorg-server-dev \
|
xorg-server-dev \
|
||||||
xtrans
|
xtrans
|
||||||
|
|
||||||
|
|
||||||
|
ENV SCRIPTS_DIR=/tmp/scripts
|
||||||
|
COPY builder/scripts $SCRIPTS_DIR
|
||||||
|
RUN $SCRIPTS_DIR/build-webp
|
||||||
|
RUN $SCRIPTS_DIR/build-libjpeg-turbo
|
||||||
|
|
||||||
RUN useradd -m docker && echo "docker:docker" | chpasswd
|
RUN useradd -m docker && echo "docker:docker" | chpasswd
|
||||||
|
|
||||||
COPY --chown=docker:docker . /src/
|
COPY --chown=docker:docker . /src/
|
||||||
|
@ -5,11 +5,11 @@ ENV KASMVNC_BUILD_OS_CODENAME core
|
|||||||
|
|
||||||
RUN yum install -y ca-certificates
|
RUN yum install -y ca-certificates
|
||||||
RUN yum install -y build-dep xorg-server libxfont-dev sudo
|
RUN yum install -y build-dep xorg-server libxfont-dev sudo
|
||||||
RUN yum install -y gcc cmake git libjpeg-dev libgnutls28-dev vim wget tightvncserver
|
RUN yum install -y gcc cmake git libgnutls28-dev vim wget tightvncserver
|
||||||
RUN yum install -y libjpeg-dev libpng-dev libtiff-dev libgif-dev libavcodec-dev openssl-devel
|
RUN yum install -y libpng-dev libtiff-dev libgif-dev libavcodec-dev openssl-devel
|
||||||
RUN yum install -y make
|
RUN yum install -y make
|
||||||
RUN yum group install -y "Development Tools"
|
RUN yum group install -y "Development Tools"
|
||||||
RUN yum install -y xorg-x11-server-devel zlib-devel libjpeg-turbo-devel
|
RUN yum install -y xorg-x11-server-devel zlib-devel
|
||||||
RUN yum install -y libxkbfile-devel libXfont2-devel xorg-x11-font-utils \
|
RUN yum install -y libxkbfile-devel libXfont2-devel xorg-x11-font-utils \
|
||||||
xorg-x11-xtrans-devel xorg-x11-xkb-utils-devel libXrandr-devel pam-devel \
|
xorg-x11-xtrans-devel xorg-x11-xkb-utils-devel libXrandr-devel pam-devel \
|
||||||
gnutls-devel libX11-devel libXtst-devel libXcursor-devel
|
gnutls-devel libX11-devel libXtst-devel libXcursor-devel
|
||||||
@ -23,6 +23,10 @@ RUN cd /tmp/libwebp-1.0.2 && \
|
|||||||
./configure --enable-static --disable-shared && \
|
./configure --enable-static --disable-shared && \
|
||||||
make && make install
|
make && make install
|
||||||
|
|
||||||
|
ENV SCRIPTS_DIR=/tmp/scripts
|
||||||
|
COPY builder/scripts $SCRIPTS_DIR
|
||||||
|
RUN $SCRIPTS_DIR/build-libjpeg-turbo
|
||||||
|
|
||||||
RUN useradd -m docker && echo "docker:docker" | chpasswd
|
RUN useradd -m docker && echo "docker:docker" | chpasswd
|
||||||
|
|
||||||
COPY --chown=docker:docker . /src/
|
COPY --chown=docker:docker . /src/
|
||||||
|
@ -12,15 +12,13 @@ RUN apt-get update && \
|
|||||||
|
|
||||||
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata
|
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata
|
||||||
RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev
|
RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev
|
||||||
RUN apt-get update && apt-get -y install cmake git libjpeg-dev libgnutls28-dev vim wget tightvncserver
|
RUN apt-get update && apt-get -y install cmake git libgnutls28-dev vim wget tightvncserver
|
||||||
RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev
|
RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev
|
||||||
|
|
||||||
# Additions for webp
|
ENV SCRIPTS_DIR=/tmp/scripts
|
||||||
RUN cd /tmp && wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.0.2.tar.gz
|
COPY builder/scripts $SCRIPTS_DIR
|
||||||
RUN cd /tmp && tar -xzf /tmp/libwebp-*
|
RUN $SCRIPTS_DIR/build-webp
|
||||||
RUN cd /tmp/libwebp-1.0.2 && \
|
RUN $SCRIPTS_DIR/build-libjpeg-turbo
|
||||||
./configure --enable-static --disable-shared && \
|
|
||||||
make && make install
|
|
||||||
|
|
||||||
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
|
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
|
||||||
|
|
||||||
|
@ -12,15 +12,13 @@ RUN apt-get update && \
|
|||||||
|
|
||||||
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata
|
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata
|
||||||
RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev
|
RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev
|
||||||
RUN apt-get update && apt-get -y install cmake git libjpeg-dev libgnutls28-dev vim wget tightvncserver
|
RUN apt-get update && apt-get -y install cmake git libgnutls28-dev vim wget tightvncserver
|
||||||
RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev
|
RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev
|
||||||
|
|
||||||
# Additions for webp
|
ENV SCRIPTS_DIR=/tmp/scripts
|
||||||
RUN cd /tmp && wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.0.2.tar.gz
|
COPY builder/scripts $SCRIPTS_DIR
|
||||||
RUN cd /tmp && tar -xzf /tmp/libwebp-*
|
RUN $SCRIPTS_DIR/build-webp
|
||||||
RUN cd /tmp/libwebp-1.0.2 && \
|
RUN $SCRIPTS_DIR/build-libjpeg-turbo
|
||||||
./configure --enable-static --disable-shared && \
|
|
||||||
make && make install
|
|
||||||
|
|
||||||
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
|
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
|
||||||
|
|
||||||
|
@ -34,14 +34,6 @@ RUN apt-get purge -y pm-utils xscreensaver*
|
|||||||
RUN apt-get update && apt-get install -y vim less
|
RUN apt-get update && apt-get install -y vim less
|
||||||
RUN apt-get update && apt-get -y install lsb-release
|
RUN apt-get update && apt-get -y install lsb-release
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y task-cinnamon-desktop
|
|
||||||
RUN apt-get update && apt-get install -y task-gnome-desktop
|
|
||||||
RUN mkdir -p /usr/share/man/man1
|
|
||||||
RUN apt-get update && apt-get install -y apt-utils openjdk-11-jre
|
|
||||||
RUN apt-get update && apt-get install -y task-lxde-desktop
|
|
||||||
RUN apt-get update && apt-get install -y task-mate-desktop
|
|
||||||
RUN apt-get update && apt-get install -y task-kde-desktop
|
|
||||||
|
|
||||||
RUN echo 'source $STARTUPDIR/generate_container_user' >> $HOME/.bashrc
|
RUN echo 'source $STARTUPDIR/generate_container_user' >> $HOME/.bashrc
|
||||||
|
|
||||||
RUN mkdir -p $STARTUPDIR
|
RUN mkdir -p $STARTUPDIR
|
||||||
|
@ -27,8 +27,6 @@ RUN \
|
|||||||
glibc-devel \
|
glibc-devel \
|
||||||
libdrm-devel \
|
libdrm-devel \
|
||||||
libepoxy-devel \
|
libepoxy-devel \
|
||||||
libjpeg-turbo-devel \
|
|
||||||
libjpeg-turbo-static \
|
|
||||||
libmd-devel \
|
libmd-devel \
|
||||||
libpciaccess-devel \
|
libpciaccess-devel \
|
||||||
libtool \
|
libtool \
|
||||||
@ -75,6 +73,11 @@ RUN \
|
|||||||
xorg-x11-xtrans-devel \
|
xorg-x11-xtrans-devel \
|
||||||
xsltproc
|
xsltproc
|
||||||
|
|
||||||
|
ENV SCRIPTS_DIR=/tmp/scripts
|
||||||
|
COPY builder/scripts $SCRIPTS_DIR
|
||||||
|
RUN $SCRIPTS_DIR/build-webp
|
||||||
|
RUN $SCRIPTS_DIR/build-libjpeg-turbo
|
||||||
|
|
||||||
RUN useradd -m docker && echo "docker:docker" | chpasswd
|
RUN useradd -m docker && echo "docker:docker" | chpasswd
|
||||||
|
|
||||||
COPY --chown=docker:docker . /src/
|
COPY --chown=docker:docker . /src/
|
||||||
|
@ -31,8 +31,7 @@ WORKDIR $HOME
|
|||||||
|
|
||||||
RUN dnf install -y openssl xterm gettext wget
|
RUN dnf install -y openssl xterm gettext wget
|
||||||
RUN dnf install -y nss_wrapper
|
RUN dnf install -y nss_wrapper
|
||||||
RUN dnf install -y xorg-x11-xauth xorg-x11-xkb-utils \
|
RUN dnf install -y xorg-x11-xauth xkeyboard-config
|
||||||
xkeyboard-config xorg-x11-server-utils
|
|
||||||
# xorg-x11-server-Xorg
|
# xorg-x11-server-Xorg
|
||||||
# RUN dnf install -y @xfce-desktop-environment
|
# RUN dnf install -y @xfce-desktop-environment
|
||||||
RUN dnf erase -y pm-utils xscreensaver*
|
RUN dnf erase -y pm-utils xscreensaver*
|
||||||
|
@ -15,15 +15,13 @@ RUN apt-get update && \
|
|||||||
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata
|
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata
|
||||||
RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev
|
RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev
|
||||||
RUN apt-get update && apt-get -y install gcc-11 g++-11
|
RUN apt-get update && apt-get -y install gcc-11 g++-11
|
||||||
RUN apt-get update && apt-get -y install cmake git libjpeg-dev libgnutls28-dev vim wget tightvncserver
|
RUN apt-get update && apt-get -y install cmake git libgnutls28-dev vim wget tightvncserver
|
||||||
RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev
|
RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev
|
||||||
|
|
||||||
# Additions for webp
|
ENV SCRIPTS_DIR=/tmp/scripts
|
||||||
RUN cd /tmp && wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.0.2.tar.gz
|
COPY builder/scripts $SCRIPTS_DIR
|
||||||
RUN cd /tmp && tar -xzf /tmp/libwebp-*
|
RUN $SCRIPTS_DIR/build-webp
|
||||||
RUN cd /tmp/libwebp-1.0.2 && \
|
RUN $SCRIPTS_DIR/build-libjpeg-turbo
|
||||||
./configure --enable-static --disable-shared && \
|
|
||||||
make -j$(nproc) && make install
|
|
||||||
|
|
||||||
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
|
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
|
||||||
|
|
||||||
|
@ -22,7 +22,6 @@ RUN zypper install -ny \
|
|||||||
libgbm-devel \
|
libgbm-devel \
|
||||||
libGLw-devel \
|
libGLw-devel \
|
||||||
libgnutls-devel \
|
libgnutls-devel \
|
||||||
libjpeg8-devel \
|
|
||||||
libopenssl-devel \
|
libopenssl-devel \
|
||||||
libpng16-devel \
|
libpng16-devel \
|
||||||
libtiff-devel \
|
libtiff-devel \
|
||||||
@ -43,12 +42,10 @@ RUN zypper install -ny \
|
|||||||
xorg-x11-util-devel \
|
xorg-x11-util-devel \
|
||||||
zlib-devel
|
zlib-devel
|
||||||
|
|
||||||
# Additions for webp
|
ENV SCRIPTS_DIR=/tmp/scripts
|
||||||
RUN cd /tmp && wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.0.2.tar.gz
|
COPY builder/scripts $SCRIPTS_DIR
|
||||||
RUN cd /tmp && tar -xzf /tmp/libwebp-*
|
RUN $SCRIPTS_DIR/build-webp
|
||||||
RUN cd /tmp/libwebp-1.0.2 && \
|
RUN $SCRIPTS_DIR/build-libjpeg-turbo
|
||||||
./configure --enable-static --disable-shared && \
|
|
||||||
make && make install
|
|
||||||
|
|
||||||
RUN useradd -u 1000 docker && \
|
RUN useradd -u 1000 docker && \
|
||||||
groupadd -g 1000 docker && \
|
groupadd -g 1000 docker && \
|
||||||
|
@ -50,12 +50,10 @@ RUN dnf install -y \
|
|||||||
libXtst-devel \
|
libXtst-devel \
|
||||||
libXcursor-devel
|
libXcursor-devel
|
||||||
|
|
||||||
# Additions for webp
|
ENV SCRIPTS_DIR=/tmp/scripts
|
||||||
RUN cd /tmp && wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.0.2.tar.gz
|
COPY builder/scripts $SCRIPTS_DIR
|
||||||
RUN cd /tmp && tar -xzf /tmp/libwebp-*
|
RUN $SCRIPTS_DIR/build-webp
|
||||||
RUN cd /tmp/libwebp-1.0.2 && \
|
RUN $SCRIPTS_DIR/build-libjpeg-turbo
|
||||||
./configure --enable-static --disable-shared && \
|
|
||||||
make && make install
|
|
||||||
|
|
||||||
RUN useradd -m docker && echo "docker:docker" | chpasswd
|
RUN useradd -m docker && echo "docker:docker" | chpasswd
|
||||||
|
|
||||||
|
@ -49,12 +49,11 @@ RUN dnf install -y \
|
|||||||
libXtst-devel \
|
libXtst-devel \
|
||||||
libXcursor-devel
|
libXcursor-devel
|
||||||
|
|
||||||
# Additions for webp
|
|
||||||
RUN cd /tmp && wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.0.2.tar.gz
|
ENV SCRIPTS_DIR=/tmp/scripts
|
||||||
RUN cd /tmp && tar -xzf /tmp/libwebp-*
|
COPY builder/scripts $SCRIPTS_DIR
|
||||||
RUN cd /tmp/libwebp-1.0.2 && \
|
RUN $SCRIPTS_DIR/build-webp
|
||||||
./configure --enable-static --disable-shared && \
|
RUN $SCRIPTS_DIR/build-libjpeg-turbo
|
||||||
make && make install
|
|
||||||
|
|
||||||
RUN useradd -m docker && echo "docker:docker" | chpasswd
|
RUN useradd -m docker && echo "docker:docker" | chpasswd
|
||||||
|
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
FROM ubuntu:16.04
|
|
||||||
|
|
||||||
RUN sed -i 's$# deb-src$deb-src$' /etc/apt/sources.list
|
|
||||||
|
|
||||||
RUN apt-get update && \
|
|
||||||
apt-get -y install sudo
|
|
||||||
|
|
||||||
RUN apt-get -y build-dep xorg-server
|
|
||||||
RUN apt-get -y install cmake git libjpeg-dev libgnutls-dev vim wget tightvncserver
|
|
||||||
RUN apt-get -y install libjpeg-dev libpng-dev libtiff-dev libgif-dev
|
|
||||||
RUN cd /tmp && wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.0.2.tar.gz
|
|
||||||
RUN cd /tmp && tar -xzvf /tmp/libwebp-*
|
|
||||||
RUN cd /tmp/libwebp-1.0.2 && ./configure && make && make install
|
|
||||||
|
|
||||||
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
|
|
||||||
|
|
||||||
COPY --chown=docker:docker . /src/
|
|
||||||
|
|
||||||
|
|
||||||
USER docker
|
|
||||||
ENTRYPOINT ["/src/builder/build.sh"]
|
|
@ -1,39 +0,0 @@
|
|||||||
FROM ubuntu:18.04
|
|
||||||
|
|
||||||
ENV KASMVNC_BUILD_OS ubuntu
|
|
||||||
ENV KASMVNC_BUILD_OS_CODENAME bionic
|
|
||||||
ENV XORG_VER 1.20.10
|
|
||||||
|
|
||||||
RUN sed -i 's$# deb-src$deb-src$' /etc/apt/sources.list
|
|
||||||
|
|
||||||
RUN apt-get update && \
|
|
||||||
apt-get -y install sudo
|
|
||||||
|
|
||||||
RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev
|
|
||||||
RUN apt-get update && apt-get -y install cmake git libgnutls28-dev vim wget tightvncserver
|
|
||||||
RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev
|
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y cmake nasm gcc
|
|
||||||
RUN git clone https://github.com/libjpeg-turbo/libjpeg-turbo.git
|
|
||||||
RUN export MAKEFLAGS=-j`nproc`; cd libjpeg-turbo && cmake -G"Unix Makefiles" && make deb
|
|
||||||
RUN export MAKEFLAGS=-j`nproc`; cd libjpeg-turbo && cmake -DCMAKE_INSTALL_PREFIX=/usr/local -G"Unix Makefiles" && make && make install
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# Fix for older required libs
|
|
||||||
#RUN cd /tmp && wget http://launchpadlibrarian.net/347526424/libxfont1-dev_1.5.2-4ubuntu2_amd64.deb && \
|
|
||||||
# wget http://launchpadlibrarian.net/347526425/libxfont1_1.5.2-4ubuntu2_amd64.deb && \
|
|
||||||
# dpkg -i libxfont1_1.5.2-4ubuntu2_amd64.deb && \
|
|
||||||
# dpkg -i libxfont1-dev_1.5.2-4ubuntu2_amd64.deb
|
|
||||||
|
|
||||||
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
|
|
||||||
|
|
||||||
COPY --chown=docker:docker . /src
|
|
||||||
|
|
||||||
USER docker
|
|
||||||
ENTRYPOINT ["/src/builder/build.sh"]
|
|
@ -1,23 +0,0 @@
|
|||||||
FROM ubuntu:bionic
|
|
||||||
|
|
||||||
RUN apt-get update && \
|
|
||||||
apt-get -y install vim build-essential devscripts equivs
|
|
||||||
|
|
||||||
ARG KASMVNC_PACKAGE_DIR
|
|
||||||
COPY $KASMVNC_PACKAGE_DIR/libjpeg-turbo*deb /tmp/
|
|
||||||
RUN apt-get install /tmp/libjpeg-turbo*deb
|
|
||||||
|
|
||||||
# Install build-deps for the package.
|
|
||||||
COPY ./debian/control /tmp
|
|
||||||
RUN apt-get update && echo YYY | mk-build-deps --install --remove /tmp/control
|
|
||||||
|
|
||||||
ENV LD_LIBRARY_PATH="/opt/libjpeg-turbo/lib64/:$LD_LIBRARY_PATH"
|
|
||||||
|
|
||||||
ARG L_UID
|
|
||||||
RUN if [ "$L_UID" -eq 0 ]; then \
|
|
||||||
useradd -m docker; \
|
|
||||||
else \
|
|
||||||
useradd -m docker -u $L_UID;\
|
|
||||||
fi
|
|
||||||
|
|
||||||
USER docker
|
|
@ -1,60 +0,0 @@
|
|||||||
FROM ubuntu:bionic
|
|
||||||
|
|
||||||
ENV DISPLAY=:1 \
|
|
||||||
VNC_PORT=8443 \
|
|
||||||
VNC_RESOLUTION=1280x720 \
|
|
||||||
MAX_FRAME_RATE=24 \
|
|
||||||
VNCOPTIONS="-PreferBandwidth -DynamicQualityMin=4 -DynamicQualityMax=7" \
|
|
||||||
HOME=/home/user \
|
|
||||||
TERM=xterm \
|
|
||||||
STARTUPDIR=/dockerstartup \
|
|
||||||
INST_SCRIPTS=/dockerstartup/install \
|
|
||||||
KASM_RX_HOME=/dockerstartup/kasmrx \
|
|
||||||
DEBIAN_FRONTEND=noninteractive \
|
|
||||||
VNC_COL_DEPTH=24 \
|
|
||||||
VNC_RESOLUTION=1280x1024 \
|
|
||||||
VNC_PW=vncpassword \
|
|
||||||
VNC_USER=user \
|
|
||||||
VNC_VIEW_ONLY_PW=vncviewonlypassword \
|
|
||||||
LD_LIBRARY_PATH=/opt/libjpeg-turbo/lib64/:/usr/local/lib/ \
|
|
||||||
OMP_WAIT_POLICY=PASSIVE \
|
|
||||||
SHELL=/bin/bash \
|
|
||||||
SINGLE_APPLICATION=0 \
|
|
||||||
KASMVNC_BUILD_OS=ubuntu \
|
|
||||||
KASMVNC_BUILD_OS_CODENAME=bionic
|
|
||||||
|
|
||||||
EXPOSE $VNC_PORT
|
|
||||||
|
|
||||||
WORKDIR $HOME
|
|
||||||
|
|
||||||
### REQUIRED STUFF ###
|
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y supervisor xfce4 xfce4-terminal xterm libnss-wrapper gettext wget
|
|
||||||
RUN apt-get purge -y pm-utils xscreensaver*
|
|
||||||
RUN apt-get update && apt-get install -y vim less
|
|
||||||
RUN apt-get update && apt-get -y install lsb-release
|
|
||||||
|
|
||||||
RUN echo 'source $STARTUPDIR/generate_container_user' >> $HOME/.bashrc
|
|
||||||
|
|
||||||
RUN mkdir -p $STARTUPDIR
|
|
||||||
COPY builder/startup/ $STARTUPDIR
|
|
||||||
|
|
||||||
### START CUSTOM STUFF ####
|
|
||||||
COPY ./builder/scripts/ /tmp/scripts/
|
|
||||||
COPY ./debian/changelog /tmp
|
|
||||||
|
|
||||||
ARG KASMVNC_PACKAGE_DIR
|
|
||||||
COPY $KASMVNC_PACKAGE_DIR/libjpeg-turbo_*.deb /tmp/
|
|
||||||
RUN apt-get install /tmp/libjpeg-turbo*deb
|
|
||||||
|
|
||||||
ARG BUILD_DEBIAN_REVISION
|
|
||||||
COPY $KASMVNC_PACKAGE_DIR/kasmvncserver_*$BUILD_DEBIAN_REVISION*.deb /tmp/
|
|
||||||
RUN /tmp/scripts/install_kasmvncserver_package "$BUILD_DEBIAN_REVISION"
|
|
||||||
|
|
||||||
### END CUSTOM STUFF ###
|
|
||||||
|
|
||||||
RUN chown -R 1000:0 $HOME
|
|
||||||
USER 1000:ssl-cert
|
|
||||||
WORKDIR $HOME
|
|
||||||
|
|
||||||
ENTRYPOINT [ "/dockerstartup/vnc_startup.sh" ]
|
|
@ -10,15 +10,13 @@ RUN apt-get update && \
|
|||||||
apt-get -y install sudo
|
apt-get -y install sudo
|
||||||
|
|
||||||
RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev
|
RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev
|
||||||
RUN apt-get update && apt-get -y install cmake git libjpeg-dev libgnutls28-dev vim wget tightvncserver
|
RUN apt-get update && apt-get -y install cmake git libgnutls28-dev vim wget tightvncserver
|
||||||
RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev
|
RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev
|
||||||
|
|
||||||
# Additions for webp
|
ENV SCRIPTS_DIR=/tmp/scripts
|
||||||
RUN cd /tmp && wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.0.2.tar.gz
|
COPY builder/scripts $SCRIPTS_DIR
|
||||||
RUN cd /tmp && tar -xzf /tmp/libwebp-*
|
RUN $SCRIPTS_DIR/build-webp
|
||||||
RUN cd /tmp/libwebp-1.0.2 && \
|
RUN $SCRIPTS_DIR/build-libjpeg-turbo
|
||||||
./configure --enable-static --disable-shared && \
|
|
||||||
make && make install
|
|
||||||
|
|
||||||
# Fix for older required libs
|
# Fix for older required libs
|
||||||
#RUN cd /tmp && wget http://launchpadlibrarian.net/347526424/libxfont1-dev_1.5.2-4ubuntu2_amd64.deb && \
|
#RUN cd /tmp && wget http://launchpadlibrarian.net/347526424/libxfont1-dev_1.5.2-4ubuntu2_amd64.deb && \
|
||||||
|
@ -29,7 +29,7 @@ WORKDIR $HOME
|
|||||||
|
|
||||||
### REQUIRED STUFF ###
|
### REQUIRED STUFF ###
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y supervisor xfce4 xfce4-terminal xterm libnss-wrapper gettext libjpeg-dev wget
|
RUN apt-get update && apt-get install -y supervisor xfce4 xfce4-terminal xterm libnss-wrapper gettext wget
|
||||||
RUN apt-get purge -y pm-utils xscreensaver*
|
RUN apt-get purge -y pm-utils xscreensaver*
|
||||||
|
|
||||||
RUN echo 'source $STARTUPDIR/generate_container_user' >> $HOME/.bashrc
|
RUN echo 'source $STARTUPDIR/generate_container_user' >> $HOME/.bashrc
|
||||||
|
@ -2,9 +2,13 @@ FROM ubuntu:focal
|
|||||||
|
|
||||||
ENV STARTUPDIR=/dockerstartup
|
ENV STARTUPDIR=/dockerstartup
|
||||||
|
|
||||||
|
COPY ./builder/scripts/ /tmp/scripts/
|
||||||
|
COPY ./debian/changelog /tmp
|
||||||
|
|
||||||
ARG KASMVNC_PACKAGE_DIR
|
ARG KASMVNC_PACKAGE_DIR
|
||||||
COPY $KASMVNC_PACKAGE_DIR/kasmvncserver_*.deb /tmp/
|
COPY $KASMVNC_PACKAGE_DIR/kasmvncserver_*.deb /tmp/
|
||||||
RUN rm -f /tmp/kasmvncserver_*+*.deb; apt-get update && dpkg -i /tmp/*.deb; apt-get -yf install
|
RUN /tmp/scripts/install_kasmvncserver_package
|
||||||
|
|
||||||
RUN apt-get update && apt-get -y install xterm lsb-release
|
RUN apt-get update && apt-get -y install xterm lsb-release
|
||||||
|
|
||||||
RUN mkdir -p $STARTUPDIR
|
RUN mkdir -p $STARTUPDIR
|
||||||
|
@ -12,15 +12,13 @@ RUN apt-get update && \
|
|||||||
|
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends tzdata
|
RUN apt-get update && apt-get install -y --no-install-recommends tzdata
|
||||||
RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev
|
RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev
|
||||||
RUN apt-get update && apt-get -y install cmake git libjpeg-dev vim wget
|
RUN apt-get update && apt-get -y install cmake git vim wget
|
||||||
RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev
|
RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev
|
||||||
|
|
||||||
# Additions for webp
|
ENV SCRIPTS_DIR=/tmp/scripts
|
||||||
RUN cd /tmp && wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.0.2.tar.gz
|
COPY builder/scripts $SCRIPTS_DIR
|
||||||
RUN cd /tmp && tar -xzf /tmp/libwebp-*
|
RUN $SCRIPTS_DIR/build-webp
|
||||||
RUN cd /tmp/libwebp-1.0.2 && \
|
RUN $SCRIPTS_DIR/build-libjpeg-turbo
|
||||||
./configure --enable-static --disable-shared && \
|
|
||||||
make && make install
|
|
||||||
|
|
||||||
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
|
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ WORKDIR $HOME
|
|||||||
|
|
||||||
### REQUIRED STUFF ###
|
### REQUIRED STUFF ###
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y supervisor xfce4 xfce4-terminal xterm libnss-wrapper gettext libjpeg-dev wget
|
RUN apt-get update && apt-get install -y supervisor xfce4 xfce4-terminal xterm libnss-wrapper gettext wget
|
||||||
RUN apt-get purge -y pm-utils xscreensaver*
|
RUN apt-get purge -y pm-utils xscreensaver*
|
||||||
|
|
||||||
RUN echo 'source $STARTUPDIR/generate_container_user' >> $HOME/.bashrc
|
RUN echo 'source $STARTUPDIR/generate_container_user' >> $HOME/.bashrc
|
||||||
|
@ -12,15 +12,13 @@ RUN apt-get update && \
|
|||||||
|
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends tzdata
|
RUN apt-get update && apt-get install -y --no-install-recommends tzdata
|
||||||
RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev
|
RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev
|
||||||
RUN apt-get update && apt-get -y install cmake git libjpeg-dev libgnutls28-dev vim wget tightvncserver
|
RUN apt-get update && apt-get -y install cmake git libgnutls28-dev vim wget tightvncserver
|
||||||
RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev
|
RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev
|
||||||
|
|
||||||
# Additions for webp
|
ENV SCRIPTS_DIR=/tmp/scripts
|
||||||
RUN cd /tmp && wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.0.2.tar.gz
|
COPY builder/scripts $SCRIPTS_DIR
|
||||||
RUN cd /tmp && tar -xzf /tmp/libwebp-*
|
RUN $SCRIPTS_DIR/build-webp
|
||||||
RUN cd /tmp/libwebp-1.0.2 && \
|
RUN $SCRIPTS_DIR/build-libjpeg-turbo
|
||||||
./configure --enable-static --disable-shared && \
|
|
||||||
make && make install
|
|
||||||
|
|
||||||
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
|
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ WORKDIR $HOME
|
|||||||
|
|
||||||
### REQUIRED STUFF ###
|
### REQUIRED STUFF ###
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y supervisor xfce4 xfce4-terminal xterm libnss-wrapper gettext libjpeg-dev wget
|
RUN apt-get update && apt-get install -y supervisor xfce4 xfce4-terminal xterm libnss-wrapper gettext wget
|
||||||
RUN apt-get purge -y pm-utils xscreensaver*
|
RUN apt-get purge -y pm-utils xscreensaver*
|
||||||
|
|
||||||
RUN echo 'source $STARTUPDIR/generate_container_user' >> $HOME/.bashrc
|
RUN echo 'source $STARTUPDIR/generate_container_user' >> $HOME/.bashrc
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
default_os=${default_os:-ubuntu}
|
default_os=${default_os:-ubuntu}
|
||||||
default_os_codename=${default_os_codename:-bionic}
|
default_os_codename=${default_os_codename:-bionic}
|
||||||
|
|
||||||
|
49
builder/process_test_options.sh
Normal file
49
builder/process_test_options.sh
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
echo >&2 "Usage: $(basename "$0") [-s|--shell] [-p|--perf-test] [-h|--help] <distro> <distro_version>"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
process_options() {
|
||||||
|
local sorted_options=$(getopt -o psh --long perf-test --long shell --long help -- "$@")
|
||||||
|
eval set -- $sorted_options
|
||||||
|
|
||||||
|
while : ; do
|
||||||
|
case "$1" in
|
||||||
|
-p|--perf-test)
|
||||||
|
entrypoint_args='-interface 0.0.0.0 -selfBench :1'
|
||||||
|
entrypoint_executable="--entrypoint=/usr/bin/Xvnc"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-s|--shell)
|
||||||
|
entrypoint_executable="--entrypoint=bash"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-h|--help)
|
||||||
|
print_usage=1
|
||||||
|
;;
|
||||||
|
--)
|
||||||
|
shift
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
leftover_options=("$@")
|
||||||
|
}
|
||||||
|
|
||||||
|
declare -a leftover_options
|
||||||
|
|
||||||
|
if [ "$#" -eq 0 ]; then
|
||||||
|
usage
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
process_options "$@"
|
||||||
|
set -- "${leftover_options[@]}"
|
||||||
|
|
||||||
|
if [ -n "$print_usage" ]; then
|
||||||
|
usage
|
||||||
|
exit
|
||||||
|
fi
|
32
builder/scripts/build-libjpeg-turbo
Executable file
32
builder/scripts/build-libjpeg-turbo
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
build_and_install() {
|
||||||
|
export MAKEFLAGS=-j`nproc`
|
||||||
|
export CFLAGS="-fpic"
|
||||||
|
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -G"Unix Makefiles"
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
}
|
||||||
|
|
||||||
|
install_build_dependencies() {
|
||||||
|
install_packages cmake gcc
|
||||||
|
ensure_libjpeg_is_fast
|
||||||
|
}
|
||||||
|
|
||||||
|
ensure_libjpeg_is_fast() {
|
||||||
|
install_packages nasm
|
||||||
|
}
|
||||||
|
|
||||||
|
prepare_libjpeg_source() {
|
||||||
|
git clone --depth=1 https://github.com/libjpeg-turbo/libjpeg-turbo.git
|
||||||
|
cd libjpeg-turbo
|
||||||
|
}
|
||||||
|
|
||||||
|
source_dir=$(dirname "$0")
|
||||||
|
. "$source_dir/common.sh"
|
||||||
|
|
||||||
|
install_build_dependencies
|
||||||
|
prepare_libjpeg_source
|
||||||
|
build_and_install
|
23
builder/scripts/build-webp
Executable file
23
builder/scripts/build-webp
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
webp_tar_url=https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.0.2.tar.gz
|
||||||
|
|
||||||
|
prepare_source() {
|
||||||
|
cd /tmp
|
||||||
|
wget "$webp_tar_url"
|
||||||
|
tar -xzf /tmp/libwebp-*
|
||||||
|
rm /tmp/libwebp-*.tar.gz
|
||||||
|
cd /tmp/libwebp-*
|
||||||
|
}
|
||||||
|
|
||||||
|
build_and_install() {
|
||||||
|
export MAKEFLAGS=-j`nproc`
|
||||||
|
./configure --enable-static --disable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
}
|
||||||
|
|
||||||
|
prepare_source
|
||||||
|
build_and_install
|
34
builder/scripts/common.sh
Normal file
34
builder/scripts/common.sh
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
detect_distro() {
|
||||||
|
if [ -f /etc/centos-release ]; then
|
||||||
|
DISTRO=centos
|
||||||
|
elif [ -f /etc/oracle-release ]; then
|
||||||
|
DISTRO=oracle
|
||||||
|
elif [ -f /etc/fedora-release ]; then
|
||||||
|
DISTRO=fedora
|
||||||
|
elif [ -f /usr/bin/zypper ]; then
|
||||||
|
DISTRO=opensuse
|
||||||
|
elif [ -f /etc/alpine-release ]; then
|
||||||
|
DISTRO=alpine
|
||||||
|
else
|
||||||
|
DISTRO=debian
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
install_packages() {
|
||||||
|
local install_cmd=no-command-defined
|
||||||
|
|
||||||
|
case "$DISTRO" in
|
||||||
|
centos) install_cmd="yum install -y" ;;
|
||||||
|
oracle) install_cmd="dnf install -y" ;;
|
||||||
|
fedora) install_cmd="dnf install -y" ;;
|
||||||
|
opensuse) install_cmd="zypper install -y" ;;
|
||||||
|
alpine) install_cmd="apk add" ;;
|
||||||
|
*) install_cmd="apt-get update && apt-get install -y"
|
||||||
|
esac
|
||||||
|
|
||||||
|
eval "$install_cmd $*"
|
||||||
|
}
|
||||||
|
|
||||||
|
detect_distro
|
@ -3,6 +3,7 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
cd "$(dirname "$0")/.."
|
cd "$(dirname "$0")/.."
|
||||||
|
. ./builder/process_test_options.sh
|
||||||
. ./builder/os_ver_cli.sh
|
. ./builder/os_ver_cli.sh
|
||||||
. ./builder/common.sh
|
. ./builder/common.sh
|
||||||
|
|
||||||
@ -11,8 +12,11 @@ docker build --build-arg KASMVNC_PACKAGE_DIR="builder/build/${os_codename}" \
|
|||||||
--build-arg BUILD_DEBIAN_REVISION="$build_debian_revision" \
|
--build-arg BUILD_DEBIAN_REVISION="$build_debian_revision" \
|
||||||
-t "$tester_image" \
|
-t "$tester_image" \
|
||||||
-f "builder/dockerfile.${os}_${os_codename}${build_tag}.deb.test" .
|
-f "builder/dockerfile.${os}_${os_codename}${build_tag}.deb.test" .
|
||||||
|
|
||||||
docker run -it -p "443:$VNC_PORT" --rm \
|
docker run -it -p "443:$VNC_PORT" --rm \
|
||||||
-e KASMVNC_VERBOSE_LOGGING=$KASMVNC_VERBOSE_LOGGING \
|
-e KASMVNC_VERBOSE_LOGGING=$KASMVNC_VERBOSE_LOGGING \
|
||||||
-e "VNC_USER=foo" -e "VNC_PW=foobar" \
|
-e "VNC_USER=foo" -e "VNC_PW=foobar" \
|
||||||
-e "VNC_PORT=$VNC_PORT" \
|
-e "VNC_PORT=$VNC_PORT" \
|
||||||
"$tester_image"
|
$entrypoint_executable \
|
||||||
|
"$tester_image" \
|
||||||
|
$entrypoint_args
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
cd "$(dirname "$0")/.."
|
cd "$(dirname "$0")/.."
|
||||||
|
. ./builder/process_test_options.sh
|
||||||
. ./builder/common.sh
|
. ./builder/common.sh
|
||||||
os="${1:-debian}"
|
os="${1:-debian}"
|
||||||
os_codename="${2:-buster}"
|
os_codename="${2:-buster}"
|
||||||
@ -13,4 +14,6 @@ docker build --build-arg KASMVNC_PACKAGE_DIR="builder/build/${os_codename}" \
|
|||||||
echo
|
echo
|
||||||
docker run -it -p "443:$VNC_PORT" --rm -e "VNC_USER=foo" -e "VNC_PW=foobar" \
|
docker run -it -p "443:$VNC_PORT" --rm -e "VNC_USER=foo" -e "VNC_PW=foobar" \
|
||||||
-e "VNC_PORT=$VNC_PORT" \
|
-e "VNC_PORT=$VNC_PORT" \
|
||||||
kasmvnctester_barebones_${os}:$os_codename
|
$entrypoint_executable \
|
||||||
|
kasmvnctester_barebones_${os}:$os_codename \
|
||||||
|
$entrypoint_args
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
cd "$(dirname "$0")/.."
|
cd "$(dirname "$0")/.."
|
||||||
|
. ./builder/process_test_options.sh
|
||||||
. ./builder/os_ver_cli.sh
|
. ./builder/os_ver_cli.sh
|
||||||
. ./builder/common.sh
|
. ./builder/common.sh
|
||||||
|
|
||||||
@ -16,4 +17,6 @@ docker run -it -p "443:$VNC_PORT" --rm \
|
|||||||
-e KASMVNC_VERBOSE_LOGGING=$KASMVNC_VERBOSE_LOGGING \
|
-e KASMVNC_VERBOSE_LOGGING=$KASMVNC_VERBOSE_LOGGING \
|
||||||
-e "VNC_USER=foo" -e "VNC_PW=foobar" \
|
-e "VNC_USER=foo" -e "VNC_PW=foobar" \
|
||||||
-e "VNC_PORT=$VNC_PORT" \
|
-e "VNC_PORT=$VNC_PORT" \
|
||||||
kasmvnctester_${os}:$os_codename
|
$entrypoint_executable \
|
||||||
|
kasmvnctester_${os}:$os_codename \
|
||||||
|
$entrypoint_args
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
cd "$(dirname "$0")"
|
cd "$(dirname "$0")"
|
||||||
|
. ./process_test_options.sh
|
||||||
. ./common.sh
|
. ./common.sh
|
||||||
os="${1:-centos}"
|
os="${1:-centos}"
|
||||||
os_codename="${2:-core}"
|
os_codename="${2:-core}"
|
||||||
@ -12,4 +13,6 @@ docker build --build-arg KASMVNC_PACKAGE_DIR="build/${os}_${os_codename}" \
|
|||||||
-f dockerfile.${os}_${os_codename}.barebones.rpm.test .
|
-f dockerfile.${os}_${os_codename}.barebones.rpm.test .
|
||||||
docker run -it -p "443:$VNC_PORT" --rm -e "VNC_USER=foo" -e "VNC_PW=foobar" \
|
docker run -it -p "443:$VNC_PORT" --rm -e "VNC_USER=foo" -e "VNC_PW=foobar" \
|
||||||
-e "VNC_PORT=$VNC_PORT" \
|
-e "VNC_PORT=$VNC_PORT" \
|
||||||
kasmvnctester_barebones_${os}:$os_codename
|
$entrypoint_executable \
|
||||||
|
kasmvnctester_barebones_${os}:$os_codename \
|
||||||
|
$entrypoint_args
|
||||||
|
18
debian/control
vendored
18
debian/control
vendored
@ -16,12 +16,12 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, ssl-cert, xauth,
|
|||||||
libhash-merge-simple-perl, libscalar-list-utils-perl, liblist-moreutils-perl,
|
libhash-merge-simple-perl, libscalar-list-utils-perl, liblist-moreutils-perl,
|
||||||
libtry-tiny-perl, libgbm1
|
libtry-tiny-perl, libgbm1
|
||||||
Provides: vnc-server
|
Provides: vnc-server
|
||||||
Description: KasmVNC provides remote web-based access to a Desktop or application.
|
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
|
While VNC is in the name, KasmVNC differs from other VNC variants such
|
||||||
as TigerVNC, RealVNC, and TurboVNC. KasmVNC has broken from the RFB
|
as TigerVNC, RealVNC, and TurboVNC. KasmVNC has broken from the RFB
|
||||||
specification which defines VNC, in order to support modern technologies
|
specification which defines VNC, in order to support modern technologies
|
||||||
and increase security. KasmVNC is accessed by users from any modern
|
and increase security. KasmVNC is accessed by users from any modern
|
||||||
browser and does not support legacy VNC viewer applications. KasmVNC
|
browser and does not support legacy VNC viewer applications. KasmVNC
|
||||||
uses a modern YAML based configuration at the server and user level,
|
uses a modern YAML based configuration at the server and user level,
|
||||||
allowing for ease of management. KasmVNC is maintained by Kasm
|
allowing for ease of management. KasmVNC is maintained by Kasm
|
||||||
Technologies Corp, www.kasmweb.com.
|
Technologies Corp, www.kasmweb.com.
|
||||||
|
@ -11,14 +11,14 @@ Requires: xauth, hostname, libxkbcommon-x11-0, xkeyboard-config, x11-tools, open
|
|||||||
Conflicts: tigervnc, tigervnc-x11vnc
|
Conflicts: tigervnc, tigervnc-x11vnc
|
||||||
|
|
||||||
%description
|
%description
|
||||||
KasmVNC provides remote web-based access to a Desktop or application.
|
KasmVNC provides remote web-based access to a Desktop or application.
|
||||||
While VNC is in the name, KasmVNC differs from other VNC variants such
|
While VNC is in the name, KasmVNC differs from other VNC variants such
|
||||||
as TigerVNC, RealVNC, and TurboVNC. KasmVNC has broken from the RFB
|
as TigerVNC, RealVNC, and TurboVNC. KasmVNC has broken from the RFB
|
||||||
specification which defines VNC, in order to support modern technologies
|
specification which defines VNC, in order to support modern technologies
|
||||||
and increase security. KasmVNC is accessed by users from any modern
|
and increase security. KasmVNC is accessed by users from any modern
|
||||||
browser and does not support legacy VNC viewer applications. KasmVNC
|
browser and does not support legacy VNC viewer applications. KasmVNC
|
||||||
uses a modern YAML based configuration at the server and user level,
|
uses a modern YAML based configuration at the server and user level,
|
||||||
allowing for ease of management. KasmVNC is maintained by Kasm
|
allowing for ease of management. KasmVNC is maintained by Kasm
|
||||||
Technologies Corp, www.kasmweb.com.
|
Technologies Corp, www.kasmweb.com.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
|
@ -8,6 +8,8 @@ use Data::Dumper;
|
|||||||
use Hash::Merge::Simple;
|
use Hash::Merge::Simple;
|
||||||
use KasmVNC::Utils;
|
use KasmVNC::Utils;
|
||||||
|
|
||||||
|
our $logger;
|
||||||
|
|
||||||
sub merge {
|
sub merge {
|
||||||
my @configsToMerge = map { $_->{data} } @_;
|
my @configsToMerge = map { $_->{data} } @_;
|
||||||
my $mergedConfig = Hash::Merge::Simple::merge(@configsToMerge) // {};
|
my $mergedConfig = Hash::Merge::Simple::merge(@configsToMerge) // {};
|
||||||
@ -31,7 +33,13 @@ sub load {
|
|||||||
|
|
||||||
failIfConfigNotReadable($self->{filename});
|
failIfConfigNotReadable($self->{filename});
|
||||||
|
|
||||||
$self->{data} = YAML::Tiny->read($self->{filename})->[0];
|
$logger->debug("Loading config " . $self->{filename});
|
||||||
|
my $yamlDocuments = YAML::Tiny->read($self->{filename});
|
||||||
|
unless (defined $yamlDocuments) {
|
||||||
|
die "Couldn't load config: $self->{filename}. Probable reason: No newline at end of file\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
$self->{data} = $yamlDocuments->[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
sub get {
|
sub get {
|
||||||
|
@ -8,9 +8,18 @@ use Data::Dumper;
|
|||||||
sub new {
|
sub new {
|
||||||
my ($class, $args) = @_;
|
my ($class, $args) = @_;
|
||||||
my $self = bless {
|
my $self = bless {
|
||||||
|
level => $args->{level} // "warn"
|
||||||
}, $class;
|
}, $class;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub debug {
|
||||||
|
my $self = shift;
|
||||||
|
|
||||||
|
return unless ($self->{level} eq "debug");
|
||||||
|
|
||||||
|
say { *STDERR } @_;
|
||||||
|
}
|
||||||
|
|
||||||
sub warn {
|
sub warn {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
|
@ -1171,6 +1171,7 @@ sub DefineFilePathsAndStuff {
|
|||||||
|
|
||||||
$KasmVNC::Users::vncPasswdBin = $exedir . "kasmvncpasswd";
|
$KasmVNC::Users::vncPasswdBin = $exedir . "kasmvncpasswd";
|
||||||
$KasmVNC::Users::logger = $logger;
|
$KasmVNC::Users::logger = $logger;
|
||||||
|
$KasmVNC::Config::logger = $logger;
|
||||||
|
|
||||||
$vncSystemConfigDir = "/etc/kasmvnc";
|
$vncSystemConfigDir = "/etc/kasmvnc";
|
||||||
if ($ENV{KASMVNC_DEVELOPMENT}) {
|
if ($ENV{KASMVNC_DEVELOPMENT}) {
|
||||||
@ -2787,5 +2788,6 @@ sub SetAppSettingsFromConfigAndCli {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub InitLogger {
|
sub InitLogger {
|
||||||
$logger = KasmVNC::Logger->new();
|
my $debugEnabled = any { $_ eq "-debug" } @ARGV;
|
||||||
|
$logger = KasmVNC::Logger->new({ level => $debugEnabled ? "debug" : "warn" });
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user