mirror of
https://github.com/kasmtech/KasmVNC.git
synced 2026-01-23 02:14:29 +00:00
Merge branch 'master' into feature/KASM-3747-optional-systemd-start
This commit is contained in:
commit
82a5d5170e
61 changed files with 476 additions and 1170 deletions
|
|
@ -4,8 +4,10 @@ package_name = ARGV.first
|
|||
|
||||
DEB_PACKAGE_REGEX = %r!(?<os>[^/]+)/kasmvncserver_.+?_(?<arch>.+?).(?<format>deb)!
|
||||
RPM_PACKAGE_REGEX = %r!(?<os>[^/]+)/kasmvncserver-.+?\.(?<arch>[^.]+).(?<format>rpm)!
|
||||
ALPINE_PACKAGE_REGEX = %r!(?<os>[^/]+)/kasmvncserver-(doc-)?.+?-r\d+_(?<arch>[^.]+)\.(?<format>apk)!
|
||||
|
||||
if matches = package_name.match(DEB_PACKAGE_REGEX)
|
||||
elsif matches = package_name.match(ALPINE_PACKAGE_REGEX)
|
||||
else matches = package_name.match(RPM_PACKAGE_REGEX)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
is_kasmvnc() {
|
||||
local package="$1";
|
||||
|
||||
echo "$package" | grep -qP 'kasmvncserver(_|-)[0-9]'
|
||||
echo "$package" | grep -qP 'kasmvncserver(_|-)(doc-)?[0-9]'
|
||||
}
|
||||
|
||||
detect_deb_package_arch() {
|
||||
|
|
@ -27,6 +27,13 @@ fetch_xvnc_md5sum() {
|
|||
cat DEBIAN/md5sums | grep bin/Xkasmvnc | cut -d' ' -f 1
|
||||
}
|
||||
|
||||
detect_alpine_doc_package() {
|
||||
is_alpine_doc_package=
|
||||
if [[ $package =~ kasmvncserver-doc ]]; then
|
||||
is_alpine_doc_package=1
|
||||
fi
|
||||
}
|
||||
|
||||
function prepare_upload_filename() {
|
||||
local package="$1";
|
||||
|
||||
|
|
@ -44,11 +51,13 @@ function prepare_upload_filename() {
|
|||
REVISION="_${REVISION}"
|
||||
fi
|
||||
|
||||
detect_alpine_doc_package
|
||||
|
||||
if [ -n "$RELEASE_BRANCH" ]; then
|
||||
export upload_filename="kasmvncserver_${PACKAGE_OS}_${RELEASE_VERSION}${REVISION}_${OS_ARCH}.${PACKAGE_FORMAT}";
|
||||
export upload_filename="kasmvncserver${is_alpine_doc_package:+_doc}_${PACKAGE_OS}_${RELEASE_VERSION}${REVISION}_${OS_ARCH}.${PACKAGE_FORMAT}";
|
||||
else
|
||||
export SANITIZED_BRANCH="$(echo $CI_COMMIT_REF_NAME | sed 's/\//_/g')";
|
||||
export upload_filename="kasmvncserver_${PACKAGE_OS}_${RELEASE_VERSION}_${SANITIZED_BRANCH}_${CI_COMMIT_SHA:0:6}${REVISION}_${OS_ARCH}.${PACKAGE_FORMAT}";
|
||||
export upload_filename="kasmvncserver${is_alpine_doc_package:+_doc}_${PACKAGE_OS}_${RELEASE_VERSION}_${SANITIZED_BRANCH}_${CI_COMMIT_SHA:0:6}${REVISION}_${OS_ARCH}.${PACKAGE_FORMAT}";
|
||||
fi
|
||||
};
|
||||
|
||||
|
|
|
|||
9
.gitignore
vendored
9
.gitignore
vendored
|
|
@ -4,6 +4,7 @@
|
|||
*.lo
|
||||
.deps
|
||||
.libs
|
||||
*.swp
|
||||
|
||||
CMakeFiles
|
||||
CMakeCache.txt
|
||||
|
|
@ -12,6 +13,10 @@ Makefile
|
|||
Makefile.in
|
||||
config.h
|
||||
|
||||
libjpeg-turbo/
|
||||
xorg.build/
|
||||
install_manifest.txt
|
||||
|
||||
builder/build/
|
||||
builder/www/
|
||||
spec/tmp
|
||||
|
|
@ -23,3 +28,7 @@ debian/kasmvncserver.substvars
|
|||
debian/kasmvncserver/
|
||||
.pc
|
||||
.vscode/
|
||||
|
||||
alpine/.abuild/kasmvnc_signing_key.rsa
|
||||
alpine/.abuild/kasmvnc_signing_key.rsa.pub
|
||||
alpine/packages/
|
||||
|
|
|
|||
193
.gitlab-ci.yml
193
.gitlab-ci.yml
|
|
@ -7,7 +7,7 @@ variables:
|
|||
GITLAB_SHARED_DIND_DIR: /builds/$CI_PROJECT_PATH/shared
|
||||
GIT_SUBMODULE_STRATEGY: normal
|
||||
GIT_FETCH_EXTRA_FLAGS: --tags --force
|
||||
# E.g. BUILD_JOBS: build_debian_buster,build_ubuntu_bionic. This will include
|
||||
# E.g. BUILD_JOBS: build_debian_buster,build_ubuntu_focal. This will include
|
||||
# arm builds, because build_debian_buster_arm matches build_debian_buster.
|
||||
# "BUILD_JOBS: none" won't build any build jobs, nor www.
|
||||
BUILD_JOBS: all
|
||||
|
|
@ -66,44 +66,6 @@ build_www:
|
|||
paths:
|
||||
- output/
|
||||
|
||||
build_ubuntu_bionic:
|
||||
stage: build
|
||||
allow_failure: true
|
||||
tags:
|
||||
- oci-fixed-amd
|
||||
before_script:
|
||||
- *prepare_build
|
||||
- *prepare_www
|
||||
after_script:
|
||||
- *prepare_artfacts
|
||||
script:
|
||||
- bash builder/build-package ubuntu bionic
|
||||
only:
|
||||
variables:
|
||||
- $BUILD_JOBS == 'all' || $BUILD_JOBS =~ $CI_JOB_NAME
|
||||
artifacts:
|
||||
paths:
|
||||
- output/
|
||||
|
||||
build_ubuntu_bionic_arm:
|
||||
stage: build
|
||||
allow_failure: false
|
||||
tags:
|
||||
- oci-fixed-arm
|
||||
before_script:
|
||||
- *prepare_build
|
||||
- *prepare_www
|
||||
after_script:
|
||||
- *prepare_artfacts
|
||||
script:
|
||||
- bash builder/build-package ubuntu bionic
|
||||
only:
|
||||
variables:
|
||||
- $BUILD_JOBS == 'all' || $BUILD_JOBS =~ $CI_JOB_NAME
|
||||
artifacts:
|
||||
paths:
|
||||
- output/
|
||||
|
||||
build_ubuntu_focal:
|
||||
stage: build
|
||||
allow_failure: true
|
||||
|
|
@ -218,44 +180,6 @@ build_ubuntu_noble_arm:
|
|||
paths:
|
||||
- output/
|
||||
|
||||
build_debian_buster:
|
||||
stage: build
|
||||
allow_failure: true
|
||||
tags:
|
||||
- oci-fixed-amd
|
||||
before_script:
|
||||
- *prepare_build
|
||||
- *prepare_www
|
||||
after_script:
|
||||
- *prepare_artfacts
|
||||
script:
|
||||
- bash builder/build-package debian buster;
|
||||
only:
|
||||
variables:
|
||||
- $BUILD_JOBS == 'all' || $BUILD_JOBS =~ $CI_JOB_NAME
|
||||
artifacts:
|
||||
paths:
|
||||
- output/
|
||||
|
||||
build_debian_buster_arm:
|
||||
stage: build
|
||||
allow_failure: true
|
||||
tags:
|
||||
- oci-fixed-arm
|
||||
before_script:
|
||||
- *prepare_build
|
||||
- *prepare_www
|
||||
after_script:
|
||||
- *prepare_artfacts
|
||||
script:
|
||||
- bash builder/build-package debian buster;
|
||||
only:
|
||||
variables:
|
||||
- $BUILD_JOBS == 'all' || $BUILD_JOBS =~ $CI_JOB_NAME
|
||||
artifacts:
|
||||
paths:
|
||||
- output/
|
||||
|
||||
build_debian_bullseye:
|
||||
stage: build
|
||||
allow_failure: true
|
||||
|
|
@ -485,82 +409,6 @@ build_opensuse_15_arm:
|
|||
paths:
|
||||
- output/
|
||||
|
||||
build_fedora_thirtyseven:
|
||||
stage: build
|
||||
allow_failure: true
|
||||
tags:
|
||||
- oci-fixed-amd
|
||||
before_script:
|
||||
- *prepare_build
|
||||
- *prepare_www
|
||||
after_script:
|
||||
- *prepare_artfacts
|
||||
script:
|
||||
- bash builder/build-package fedora thirtyseven;
|
||||
only:
|
||||
variables:
|
||||
- $BUILD_JOBS == 'all' || $BUILD_JOBS =~ $CI_JOB_NAME
|
||||
artifacts:
|
||||
paths:
|
||||
- output/
|
||||
|
||||
build_fedora_thirtyseven_arm:
|
||||
stage: build
|
||||
allow_failure: true
|
||||
tags:
|
||||
- oci-fixed-arm
|
||||
before_script:
|
||||
- *prepare_build
|
||||
- *prepare_www
|
||||
after_script:
|
||||
- *prepare_artfacts
|
||||
script:
|
||||
- bash builder/build-package fedora thirtyseven;
|
||||
only:
|
||||
variables:
|
||||
- $BUILD_JOBS == 'all' || $BUILD_JOBS =~ $CI_JOB_NAME
|
||||
artifacts:
|
||||
paths:
|
||||
- output/
|
||||
|
||||
build_fedora_thirtyeight:
|
||||
stage: build
|
||||
allow_failure: true
|
||||
tags:
|
||||
- oci-fixed-amd
|
||||
before_script:
|
||||
- *prepare_build
|
||||
- *prepare_www
|
||||
after_script:
|
||||
- *prepare_artfacts
|
||||
script:
|
||||
- bash builder/build-package fedora thirtyeight;
|
||||
only:
|
||||
variables:
|
||||
- $BUILD_JOBS == 'all' || $BUILD_JOBS =~ $CI_JOB_NAME
|
||||
artifacts:
|
||||
paths:
|
||||
- output/
|
||||
|
||||
build_fedora_thirtyeight_arm:
|
||||
stage: build
|
||||
allow_failure: true
|
||||
tags:
|
||||
- oci-fixed-arm
|
||||
before_script:
|
||||
- *prepare_build
|
||||
- *prepare_www
|
||||
after_script:
|
||||
- *prepare_artfacts
|
||||
script:
|
||||
- bash builder/build-package fedora thirtyeight;
|
||||
only:
|
||||
variables:
|
||||
- $BUILD_JOBS == 'all' || $BUILD_JOBS =~ $CI_JOB_NAME
|
||||
artifacts:
|
||||
paths:
|
||||
- output/
|
||||
|
||||
build_fedora_thirtynine:
|
||||
stage: build
|
||||
allow_failure: true
|
||||
|
|
@ -675,43 +523,6 @@ build_fedora_fortyone_arm:
|
|||
paths:
|
||||
- output/
|
||||
|
||||
build_alpine_317:
|
||||
stage: build
|
||||
allow_failure: true
|
||||
tags:
|
||||
- oci-fixed-amd
|
||||
before_script:
|
||||
- *prepare_build
|
||||
- *prepare_www
|
||||
after_script:
|
||||
- *prepare_artfacts
|
||||
script:
|
||||
- bash builder/build-package alpine 317;
|
||||
only:
|
||||
variables:
|
||||
- $BUILD_JOBS == 'all' || $BUILD_JOBS =~ $CI_JOB_NAME
|
||||
artifacts:
|
||||
paths:
|
||||
- output/
|
||||
|
||||
build_alpine_317_arm:
|
||||
stage: build
|
||||
allow_failure: true
|
||||
tags:
|
||||
- oci-fixed-arm
|
||||
before_script:
|
||||
- *prepare_build
|
||||
- *prepare_www
|
||||
after_script:
|
||||
- *prepare_artfacts
|
||||
script:
|
||||
- bash builder/build-package alpine 317;
|
||||
only:
|
||||
variables:
|
||||
- $BUILD_JOBS == 'all' || $BUILD_JOBS =~ $CI_JOB_NAME
|
||||
artifacts:
|
||||
paths:
|
||||
- output/
|
||||
|
||||
test:
|
||||
stage: test
|
||||
|
|
@ -900,7 +711,7 @@ upload:
|
|||
- export S3_BUILD_DIRECTORY="kasmvnc/${CI_COMMIT_SHA}"
|
||||
- export RELEASE_VERSION=$(.ci/next_release_version "$CI_COMMIT_REF_NAME")
|
||||
- uploaded_files=()
|
||||
- for package in `find output/ -type f -name '*.deb' -or -name '*.rpm' -or -name '*.tgz'`; do
|
||||
- for package in `find output/ -type f -name '*.deb' -or -name '*.rpm' -or -name '*.apk'`; do
|
||||
prepare_upload_filename "$package";
|
||||
upload_filename="${S3_BUILD_DIRECTORY}/$upload_filename";
|
||||
echo;
|
||||
|
|
|
|||
2
.gitmodules
vendored
2
.gitmodules
vendored
|
|
@ -1,4 +1,4 @@
|
|||
[submodule "kasmweb"]
|
||||
path = kasmweb
|
||||
url = https://github.com/kasmtech/noVNC.git
|
||||
branch = release/1.2.2
|
||||
branch = master
|
||||
|
|
|
|||
47
BUILDING.txt
47
BUILDING.txt
|
|
@ -48,7 +48,7 @@ Build Requirements (Windows)
|
|||
You also need the Inno Setup Preprocessor, which is available in the
|
||||
Inno Setup QuickStart Pack.
|
||||
|
||||
Add the directory containing iscc.exe (for instance,
|
||||
Add the directory containing iscc.exe (for instance,
|
||||
C:\Program Files\Inno Setup 5) to the system or user PATH environment
|
||||
variable prior to building KasmVNC.
|
||||
|
||||
|
|
@ -71,6 +71,39 @@ For in-tree builds, these directories are the same.
|
|||
Building KasmVNC
|
||||
=================
|
||||
|
||||
Building the KasmVNC Server using Docker
|
||||
----------------------------------------
|
||||
|
||||
```bash
|
||||
git submodule init
|
||||
git submodule update --remote --merge
|
||||
sudo docker build -t kasmvnc:dev -f builder/dockerfile.ubuntu_jammy.dev .
|
||||
sudo docker run -it -v ./:/src -p 6901:6901 kasmvnc:dev
|
||||
```
|
||||
|
||||
Now from inside the container.
|
||||
|
||||
```bash
|
||||
# build frontend
|
||||
cd kasmweb
|
||||
npm install
|
||||
npm run build # <-- only run this on subsequent changes to front-end code
|
||||
cd ..
|
||||
# build dependencies
|
||||
sudo builder/scripts/build-webp
|
||||
sudo builder/scripts/build-build-libjpeg-turbo
|
||||
# Build KasmVNC
|
||||
builder/build.sh
|
||||
```
|
||||
|
||||
Now run Xvnc and Xfce4 from inside the container
|
||||
|
||||
```bash
|
||||
/src/xorg.build/bin/Xvnc -interface 0.0.0.0 -PublicIP 127.0.0.1 -disableBasicAuth -RectThreads 0 -Log *:stdout:100 -httpd /src/kasmweb/dist -sslOnly 0 -SecurityTypes None -websocketPort 6901 :1 &
|
||||
/usr/bin/xfce4-session --display :1
|
||||
```
|
||||
|
||||
Now open a browser and navigate to your dev VM on port 6901.
|
||||
|
||||
Building the KasmVNC Server on Modern Unix/Linux Systems
|
||||
---------------------------------------------------------
|
||||
|
|
@ -90,7 +123,7 @@ but the general outline is as follows.
|
|||
> cp -R {xorg_source}/* unix/xserver/
|
||||
(NOTE: {xorg_source} is the directory containing the Xorg source for the
|
||||
machine on which you are building KasmVNC. The most recent versions of
|
||||
Red Hat/CentOS/Fedora, for instance, provide an RPM called
|
||||
Red Hat/Fedora, for instance, provide an RPM called
|
||||
"xorg-x11-server-source", which installs the Xorg source under
|
||||
/usr/share/xorg-x11-server-source.)
|
||||
|
||||
|
|
@ -113,8 +146,8 @@ but the general outline is as follows.
|
|||
--with-serverconfig-path=/usr/lib[64]/xorg \
|
||||
--with-dri-driver-path=/usr/lib[64]/dri \
|
||||
{additional configure options}
|
||||
(NOTE: This is merely an example that works with Red Hat Enterprise/CentOS
|
||||
6 and recent Fedora releases. You should customize it for your particular
|
||||
(NOTE: This is merely an example that works with Red Hat Enterprise
|
||||
and recent Fedora releases. You should customize it for your particular
|
||||
system. In particular, it will be necessary to customize the font, XKB,
|
||||
and DRI directories.)
|
||||
|
||||
|
|
@ -187,7 +220,7 @@ Building TLS Support
|
|||
======================================
|
||||
|
||||
TLS requires GnuTLS, which is supplied with most Linux distributions and
|
||||
with MinGW for Windows and can be built from source on OS X and other
|
||||
with MinGW for Windows and can be built from source on OS X and other
|
||||
Unix variants. However, GnuTLS versions > 2.12.x && < 3.3.x should be
|
||||
avoided because of potential incompatibilities during initial handshaking.
|
||||
|
||||
|
|
@ -314,7 +347,7 @@ X server source (for instance, --host=i686-pc-linux-gnu).
|
|||
Add
|
||||
|
||||
-DCMAKE_OSX_SYSROOT=/Developer/SDKs/MacOSX10.5.sdk \
|
||||
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.5
|
||||
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.5
|
||||
|
||||
to the CMake command line. The OS X 10.5 SDK must be installed.
|
||||
|
||||
|
|
@ -406,7 +439,7 @@ Distribution-Specific Packaging
|
|||
===============================
|
||||
|
||||
|
||||
RPM Packages for RHEL / CentOS
|
||||
RPM Packages for RHEL
|
||||
------------------------------
|
||||
|
||||
The RPM spec files and patches used to create the nightly builds
|
||||
|
|
|
|||
|
|
@ -245,7 +245,7 @@ if(ENABLE_NLS)
|
|||
add_subdirectory(po)
|
||||
endif()
|
||||
|
||||
add_subdirectory(tests)
|
||||
####add_subdirectory(tests)
|
||||
|
||||
|
||||
include(cmake/BuildPackages.cmake)
|
||||
|
|
|
|||
22
README.md
22
README.md
|
|
@ -1,6 +1,6 @@
|
|||
# KasmVNC - Linux Web Remote Desktop
|
||||
|
||||
<a href="https://kasmweb.com"><img src="https://kasm-static-content.s3.amazonaws.com/logo_kasm.png" width="300"><a/>
|
||||
<a href="https://kasmweb.com"><img src="https://5856039.fs1.hubspotusercontent-na1.net/hubfs/5856039/kasmvnc_logo.png" width="300"><a/>
|
||||
|
||||
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.
|
||||
|
||||
|
|
@ -10,7 +10,7 @@ KasmVNC provides remote web-based access to a Desktop or application. While VNC
|
|||
|
||||
**Do not use the README from the master branch**, unless you are compiling KasmVNC yourself from the tip of master. Use the documentation for your specific release.
|
||||
|
||||
- [KasmVNC 1.0.0 Documentation](https://www.kasmweb.com/kasmvnc/docs/1.0.0/index.html)
|
||||
- [KasmVNC Documentation](https://www.kasmweb.com/kasmvnc/docs/latest/index.html)
|
||||
|
||||
For beta releases prior to version 1.0.0, use the README in this github project on the tagged commit for that release.
|
||||
|
||||
|
|
@ -46,22 +46,6 @@ sudo dnf localinstall ./kasmvncserver_*.rpm
|
|||
sudo usermod -a -G kasmvnc-cert $USER
|
||||
```
|
||||
|
||||
### CentOS 7
|
||||
|
||||
```sh
|
||||
# Please choose the package for your distro here (under Assets):
|
||||
# https://github.com/kasmtech/KasmVNC/releases
|
||||
wget <package_url>
|
||||
|
||||
# Ensure KasmVNC dependencies are available
|
||||
sudo yum install epel-release
|
||||
|
||||
sudo yum install ./kasmvncserver_*.rpm
|
||||
|
||||
# Add your user to the kasmvnc-cert group
|
||||
sudo usermod -a -G kasmvnc-cert $USER
|
||||
```
|
||||
|
||||
## Getting Started
|
||||
|
||||
The following examples provide basic usage of KasmVNC with the tools provided. For full documentation on all the utilities and the runtime environment, see our [KasmVNC Documentation](https://www.kasmweb.com/kasmvnc/docs/latest/index.html)
|
||||
|
|
@ -250,7 +234,7 @@ command_line:
|
|||
- Keyboard input rate limit
|
||||
- Screen region selection
|
||||
- Deb packages for Debian, Ubuntu, and Kali Linux included in release.
|
||||
- RPM packages for CentOS, Oracle, OpenSUSE, Fedora. RPM packages are currently not updatable and not released, though you can build and install them. See build documentation.
|
||||
- RPM packages for Oracle, OpenSUSE, Fedora. RPM packages are currently not updatable and not released, though you can build and install them. See build documentation.
|
||||
- Web [API](https://github.com/kasmtech/KasmVNC/wiki/API) added for remotely controlling and getting information from KasmVNC
|
||||
- Multi-User support with permissions that can be changed via the API
|
||||
- Web UI uses a webpack for faster load times.
|
||||
|
|
|
|||
2
alpine/.abuild/abuild.conf
Normal file
2
alpine/.abuild/abuild.conf
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
PACKAGER="Kasm Technologies LLC <info@kasmweb.com>"
|
||||
PACKAGER_PRIVKEY="/src/alpine/.abuild/kasmvnc_signing_key.rsa"
|
||||
11
alpine/alpine-devenv.dockerfile
Normal file
11
alpine/alpine-devenv.dockerfile
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
FROM alpine:3.21
|
||||
|
||||
RUN apk add abuild sudo less
|
||||
ENV HOME /src
|
||||
WORKDIR /src/kasmvncserver
|
||||
|
||||
RUN adduser --disabled-password docker
|
||||
RUN adduser docker abuild
|
||||
RUN echo "docker ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
||||
|
||||
USER docker
|
||||
8
alpine/apk-del-add
Executable file
8
alpine/apk-del-add
Executable file
|
|
@ -0,0 +1,8 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
sudo apk del kasmvncserver || true
|
||||
rm -r ../packages
|
||||
abuild -r || true
|
||||
sudo apk add ../packages/src/x86_64/kasmvncserver-1.3.3-r0.apk --allow-untrusted
|
||||
1
alpine/build
Executable file
1
alpine/build
Executable file
|
|
@ -0,0 +1 @@
|
|||
docker build -f alpine-devenv.dockerfile -t alpine-devenv .
|
||||
120
alpine/kasmvncserver/APKBUILD
Normal file
120
alpine/kasmvncserver/APKBUILD
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Contributor:
|
||||
# Maintainer: Kasm Technologies LLC <info@kasmweb.com>
|
||||
pkgname=kasmvncserver
|
||||
pkgver=1.3.3
|
||||
pkgrel=0
|
||||
pkgdesc="KasmVNC provides remote web-based access to a Desktop or application."
|
||||
url="https://github.com/kasmtech/KasmVNC"
|
||||
arch="x86_64 aarch64"
|
||||
license="GPL-2.0-or-later"
|
||||
depends="
|
||||
bash
|
||||
libgomp
|
||||
libjpeg-turbo
|
||||
libwebp
|
||||
libxfont2
|
||||
libxshmfence
|
||||
libxtst
|
||||
mcookie
|
||||
mesa-gbm
|
||||
openssl
|
||||
pciutils-libs
|
||||
perl
|
||||
perl-datetime
|
||||
perl-hash-merge-simple
|
||||
perl-list-moreutils
|
||||
perl-switch
|
||||
perl-try-tiny
|
||||
perl-yaml-tiny
|
||||
perl-datetime
|
||||
perl-datetime-timezone
|
||||
pixman
|
||||
py3-xdg
|
||||
setxkbmap
|
||||
xauth
|
||||
xf86-video-amdgpu
|
||||
xf86-video-ati
|
||||
xf86-video-nouveau
|
||||
xkbcomp
|
||||
xkeyboard-config
|
||||
xterm
|
||||
"
|
||||
if [ $(arch) = x86_64 ]; then
|
||||
depends="$depends xf86-video-intel"
|
||||
fi
|
||||
makedepends="
|
||||
rsync
|
||||
binutils
|
||||
mesa-gl
|
||||
libxcursor
|
||||
gzip
|
||||
"
|
||||
checkdepends=""
|
||||
install="$pkgname.post-install $pkgname.post-deinstall"
|
||||
subpackages="$pkgname-doc"
|
||||
source=""
|
||||
builddir="$srcdir/"
|
||||
|
||||
|
||||
build() {
|
||||
local alpine_version=$(cat /etc/alpine-release | awk -F. '{ print $1$2 }')
|
||||
tar -xzf "/src/builder/build/kasmvnc.alpine_$alpine_version.tar.gz" -C "$srcdir";
|
||||
}
|
||||
|
||||
check() {
|
||||
# Replace with proper check command(s).
|
||||
# Remove and add !check option if there is no check command.
|
||||
:
|
||||
}
|
||||
|
||||
package() {
|
||||
export SRC="$srcdir/usr/local";
|
||||
export SRC_BIN="$SRC/bin";
|
||||
export DESTDIR="$pkgdir";
|
||||
|
||||
echo "installing files";
|
||||
mkdir -p $DESTDIR/usr/bin $DESTDIR/usr/lib \
|
||||
$DESTDIR/usr/share/perl5/vendor_perl $DESTDIR/etc/kasmvnc;
|
||||
cp $SRC_BIN/Xvnc $DESTDIR/usr/bin/Xkasmvnc;
|
||||
cd $DESTDIR/usr/bin/ && ln -s Xkasmvnc Xvnc;
|
||||
cp $SRC_BIN/vncserver $DESTDIR/usr/bin/kasmvncserver;
|
||||
cd $DESTDIR/usr/bin/ && ln -s kasmvncserver vncserver;
|
||||
cp -r $SRC_BIN/KasmVNC $DESTDIR/usr/share/perl5/vendor_perl;
|
||||
cp $SRC_BIN/vncconfig $DESTDIR/usr/bin/kasmvncconfig;
|
||||
cp $SRC_BIN/kasmvncpasswd $DESTDIR/usr/bin/;
|
||||
cd $DESTDIR/usr/bin/ && ln -s kasmvncpasswd vncpasswd;
|
||||
cp $SRC_BIN/kasmxproxy $DESTDIR/usr/bin/;
|
||||
cp -r $SRC/lib/kasmvnc/ $DESTDIR/usr/lib/kasmvncserver;
|
||||
rsync -r --links --safe-links --exclude '.git*' --exclude po2js \
|
||||
--exclude xgettext-html --exclude www/utils/ --exclude .eslintrc \
|
||||
$SRC/share/kasmvnc $DESTDIR/usr/share;
|
||||
sed -i -e 's!pem_certificate: .\+$!pem_certificate: /etc/ssl/private/kasmvnc.pem!' \
|
||||
$DESTDIR/usr/share/kasmvnc/kasmvnc_defaults.yaml
|
||||
sed -i -e 's!pem_key: .\+$!pem_key: /etc/ssl/private/kasmvnc.pem!' \
|
||||
$DESTDIR/usr/share/kasmvnc/kasmvnc_defaults.yaml
|
||||
sed -e 's/^\([^#]\)/# \1/' $SRC/share/kasmvnc/kasmvnc_defaults.yaml > \
|
||||
$DESTDIR/etc/kasmvnc/kasmvnc.yaml;
|
||||
}
|
||||
|
||||
doc() {
|
||||
set -e
|
||||
export SRC="$srcdir/usr/local";
|
||||
export SRC_BIN="$SRC/bin";
|
||||
export DESTDIR="$subpkgdir";
|
||||
export DST_MAN="$DESTDIR/usr/share/man/man1";
|
||||
|
||||
mkdir -p $DESTDIR/usr/share/man/man1 \
|
||||
$DESTDIR/usr/share/doc/kasmvncserver
|
||||
cp -r $SRC/share/doc/kasmvnc*/* $DESTDIR/usr/share/doc/kasmvncserver/
|
||||
cp $SRC/man/man1/Xvnc.1 $DESTDIR/usr/share/man/man1/Xkasmvnc.1
|
||||
cp $SRC/share/man/man1/vncserver.1 $DST_MAN/kasmvncserver.1
|
||||
cp $SRC/share/man/man1/kasmxproxy.1 $DST_MAN/kasmxproxy.1
|
||||
cp $SRC/share/man/man1/vncpasswd.1 $DST_MAN/kasmvncpasswd.1
|
||||
cp $SRC/share/man/man1/vncconfig.1 $DST_MAN/kasmvncconfig.1
|
||||
gzip -9 $DST_MAN/*
|
||||
cd $DST_MAN && ln -s Xkasmvnc.1.gz Xvnc.1.gz && \
|
||||
ln -s kasmvncserver.1.gz vncserver.1.gz && \
|
||||
ln -s kasmvncpasswd.1.gz vncpasswd.1.gz
|
||||
}
|
||||
3
alpine/kasmvncserver/kasmvncserver.post-deinstall
Executable file
3
alpine/kasmvncserver/kasmvncserver.post-deinstall
Executable file
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
|
||||
rm -f /etc/ssl/private/kasmvnc.pem
|
||||
26
alpine/kasmvncserver/kasmvncserver.post-install
Executable file
26
alpine/kasmvncserver/kasmvncserver.post-install
Executable file
|
|
@ -0,0 +1,26 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
kasmvnc_group="kasmvnc-cert"
|
||||
|
||||
create_kasmvnc_group() {
|
||||
if ! getent group "$kasmvnc_group" >/dev/null; then
|
||||
addgroup --system "$kasmvnc_group"
|
||||
fi
|
||||
}
|
||||
|
||||
make_self_signed_certificate() {
|
||||
local cert_file=/etc/ssl/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
|
||||
|
|
@ -7,7 +7,7 @@ Docker CE
|
|||
# os_codename is what "lsb_release -c" outputs, e.g. buster, focal.
|
||||
#
|
||||
# build_tag allows building multiple versions of deb package (rpm not supported)
|
||||
# targeting a single distro release (e.g. Ubuntu Bionic). If build_tag is given,
|
||||
# targeting a single distro release (e.g. Ubuntu Focal). If build_tag is given,
|
||||
# the package name will include build_tag as part of Debian revision. For
|
||||
# example:
|
||||
# * with build_tag: kasmvncserver_0.9.1~beta-1+libjpeg-turbo-latest_amd64.deb
|
||||
|
|
@ -16,19 +16,17 @@ Docker CE
|
|||
#
|
||||
# Packages will be placed under builder/build/
|
||||
|
||||
builder/build-package ubuntu bionic
|
||||
builder/build-package ubuntu focal
|
||||
builder/build-package debian buster
|
||||
builder/build-package debian bullseye
|
||||
builder/build-package kali kali-rolling
|
||||
builder/build-package centos core # CentOS 7
|
||||
builder/build-package fedora thirtythree
|
||||
```
|
||||
|
||||
# Build and test a package
|
||||
```
|
||||
builder/build-and-test-deb ubuntu focal
|
||||
builder/build-and-test-rpm centos core
|
||||
builder/build-and-test-rpm oracle 8
|
||||
```
|
||||
|
||||
Open browser and point to https://localhost:443/ or https://\<ip-address\>:443/
|
||||
|
|
@ -118,7 +116,7 @@ locally by doing stuff like this:
|
|||
```
|
||||
bash -c '
|
||||
. .ci/upload.sh;
|
||||
prepare_upload_filename "bionic/kasmvncserver_0.9.1~beta-1+libjpeg-turbo-latest_amd64.deb";
|
||||
prepare_upload_filename "focal/kasmvncserver_0.9.1~beta-1+libjpeg-turbo-latest_amd64.deb";
|
||||
echo $upload_filename;'
|
||||
```
|
||||
|
||||
|
|
@ -178,7 +176,7 @@ These instructions assume KasmVNC has been cloned at $HOME and ```kasm_www.tar.g
|
|||
cd ~
|
||||
tar -zxf kasm_www.tar.gz -C KasmVNC/builder/
|
||||
cd KasmVNC
|
||||
sudo builder/build-package ubuntu bionic
|
||||
sudo builder/build-package ubuntu focal
|
||||
```
|
||||
The resulting deb package can be found under ~/KasmVNC/builder/build/bionic
|
||||
Replace ```bionic``` with ```focal``` to build for Ubuntu 20.04LTS. At this time, only Ubuntu Bionic has been tested, however, other Debian based builds we support should also work.
|
||||
The resulting deb package can be found under ~/KasmVNC/builder/build/focal
|
||||
Replace ```focal``` with ```noble``` to build for Ubuntu 24.04LTS.
|
||||
|
|
|
|||
|
|
@ -2,16 +2,35 @@
|
|||
|
||||
set -e
|
||||
|
||||
copy_signing_key_to_user_abuild_dir() {
|
||||
docker run --rm -v $PWD/alpine/.abuild:/abuild --user $L_UID:$L_GID \
|
||||
$builder_image \
|
||||
cp /etc/apk/keys/kasmvnc_signing_key.rsa.pub \
|
||||
/etc/apk/keys/kasmvnc_signing_key.rsa /abuild
|
||||
}
|
||||
|
||||
. builder/os_ver_cli.sh
|
||||
|
||||
cd "$(dirname "$0")/.."
|
||||
|
||||
docker build -t kasmvnc_apkbuilder_${os}:${os_codename} -f \
|
||||
builder/dockerfile.${os}_${os_codename}.apk.build .
|
||||
|
||||
source_dir=$(echo $PWD)
|
||||
L_UID=$(id -u)
|
||||
L_GID=$(id -g)
|
||||
ABUILD_GID=300
|
||||
if [ "$L_UID" = 0 ]; then
|
||||
L_UID=1000
|
||||
L_GID=1000
|
||||
fi
|
||||
|
||||
builder_image=kasmvnc_apkbuilder_${os}:${os_codename}
|
||||
docker build -t $builder_image \
|
||||
--build-arg KASMVNC_ALPINE_PRIVATE_KEY \
|
||||
--build-arg KASMVNC_ALPINE_PUBLIC_KEY \
|
||||
-f builder/dockerfile.${os}_${os_codename}.apk.build .
|
||||
copy_signing_key_to_user_abuild_dir
|
||||
|
||||
source_dir=$(echo $PWD)
|
||||
docker run --rm -v "$source_dir":/src --user $L_UID:$L_GID \
|
||||
--group-add $ABUILD_GID \
|
||||
-e CI \
|
||||
kasmvnc_apkbuilder_${os}:${os_codename} /bin/bash -c \
|
||||
'/src/builder/build-apk-inside-docker'
|
||||
|
|
|
|||
|
|
@ -2,10 +2,27 @@
|
|||
|
||||
set -e
|
||||
|
||||
add_arch_to_apk_package() {
|
||||
local package_name="$1"
|
||||
|
||||
new_package_name=$(echo "$package_name" | sed -e 's/\(-r[[:digit:]]\+\)/\1_'$(arch)/)
|
||||
$sudo_cmd mv "$package_name" "$new_package_name"
|
||||
}
|
||||
|
||||
add_arch_to_apk_packages() {
|
||||
for package_name in $(ls *.apk); do
|
||||
add_arch_to_apk_package "$package_name"
|
||||
done
|
||||
}
|
||||
|
||||
os=alpine
|
||||
os_codename=$(cat /etc/os-release | awk '/VERSION_ID/' | grep -o '[[:digit:]]' | tr -d '\n' | head -c 3)
|
||||
apkbuild_dir=/src/alpine/kasmvncserver/
|
||||
|
||||
mkdir -p /src/builder/build/${os}_${os_codename}
|
||||
mv \
|
||||
/src/builder/build/kasmvnc.${os}_${os_codename}.tar.gz \
|
||||
/src/builder/build/${os}_${os_codename}/kasmvnc.${os}_${os_codename}_$(uname -m).tgz
|
||||
cd "$apkbuild_dir" && abuild -r
|
||||
|
||||
[ -n "$CI" ] && sudo_cmd=sudo || sudo_cmd=
|
||||
$sudo_cmd mkdir -p /src/builder/build/${os}_${os_codename}
|
||||
( cd /src/alpine/packages/alpine/$(arch)/ && add_arch_to_apk_packages )
|
||||
$sudo_cmd mv \
|
||||
/src/alpine/packages/alpine/$(arch)/*.apk /src/builder/build/${os}_${os_codename}/
|
||||
|
|
|
|||
|
|
@ -9,13 +9,6 @@ detect_quilt() {
|
|||
fi
|
||||
}
|
||||
|
||||
ensure_crashpad_can_fetch_line_number_by_address() {
|
||||
if [ ! -f /etc/centos-release ]; then
|
||||
export LDFLAGS="$LDFLAGS -no-pie"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
fail_on_gcc_12() {
|
||||
if [[ -n "$CC" && -n "$CXX" ]]; then
|
||||
return;
|
||||
|
|
@ -89,11 +82,6 @@ autoreconf -i
|
|||
# The distro paths start after prefix and end with the font path,
|
||||
# everything after that is based on BUILDING.txt to remove unneeded
|
||||
# components.
|
||||
ensure_crashpad_can_fetch_line_number_by_address
|
||||
# Centos7 is too old for dri3
|
||||
if [ ! "${KASMVNC_BUILD_OS}" == "centos" ]; then
|
||||
CONFIG_OPTIONS="--enable-dri3"
|
||||
fi
|
||||
# remove gl check for opensuse
|
||||
if [ "${KASMVNC_BUILD_OS}" == "opensuse" ] || ([ "${KASMVNC_BUILD_OS}" == "oracle" ] && [ "${KASMVNC_BUILD_OS_CODENAME}" == 9 ]); then
|
||||
sed -i 's/LIBGL="gl >= 7.1.0"/LIBGL="gl >= 1.1"/g' configure
|
||||
|
|
|
|||
|
|
@ -1,18 +1,10 @@
|
|||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
|
||||
# clear previous build
|
||||
rm -rf /build/*
|
||||
|
||||
# build webpack
|
||||
npm run build
|
||||
# remove node stuff from directory
|
||||
rm -rf node_modules/
|
||||
# copy all to build dir
|
||||
cp -R ./* /build/
|
||||
|
||||
# remove unneccesary files
|
||||
cd /build
|
||||
rm *.md
|
||||
rm AUTHORS
|
||||
rm vnc.html
|
||||
ln -s index.html vnc.html
|
||||
# copy all to build dir
|
||||
cp -R ./dist/* /build/
|
||||
|
|
|
|||
|
|
@ -7,6 +7,11 @@ update_version_to_meet_packaging_standards() {
|
|||
sed -e 's/\([0-9]\)-\([a-zA-Z]\)/\1~\2/')
|
||||
}
|
||||
|
||||
bump_apk() {
|
||||
builder/bump-package-version-apk "$new_version"
|
||||
}
|
||||
|
||||
|
||||
bump_rpm() {
|
||||
builder/bump-package-version-rpm "$new_version"
|
||||
}
|
||||
|
|
@ -33,3 +38,4 @@ update_version_to_meet_packaging_standards
|
|||
bump_xvnc_binary
|
||||
bump_rpm
|
||||
bump_deb
|
||||
bump_apk
|
||||
|
|
|
|||
13
builder/bump-package-version-apk
Executable file
13
builder/bump-package-version-apk
Executable file
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
new_version="$1"
|
||||
spec_file=alpine/kasmvncserver/APKBUILD
|
||||
|
||||
bump_version() {
|
||||
sed -i "s/^pkgver=.\+/pkgver=$new_version/" "$1"
|
||||
sed -i "s/^pkgrel=.\+/pkgver=0/" "$1"
|
||||
}
|
||||
|
||||
bump_version $spec_file
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
set -eo pipefail
|
||||
|
||||
new_version="$1"
|
||||
spec_dirs=(centos oracle opensuse fedora)
|
||||
spec_dirs=(oracle opensuse fedora)
|
||||
|
||||
spec_files() {
|
||||
for d in "${spec_dirs[@]}"; do
|
||||
|
|
|
|||
|
|
@ -1,7 +1,19 @@
|
|||
FROM alpine:3.17
|
||||
|
||||
RUN apk add shadow bash
|
||||
RUN apk add abuild sudo less
|
||||
|
||||
ENV HOME /src/alpine
|
||||
WORKDIR $HOME/kasmvncserver
|
||||
|
||||
ARG KASMVNC_ALPINE_PRIVATE_KEY
|
||||
ARG KASMVNC_ALPINE_PUBLIC_KEY
|
||||
|
||||
ENV SCRIPTS_DIR=/tmp/scripts
|
||||
COPY builder/scripts $SCRIPTS_DIR
|
||||
RUN $SCRIPTS_DIR/install_alpine_signing_keys
|
||||
|
||||
RUN useradd -m docker && echo "docker:docker" | chpasswd
|
||||
RUN echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
||||
|
||||
USER docker
|
||||
|
|
|
|||
|
|
@ -1,82 +0,0 @@
|
|||
FROM alpine:3.17
|
||||
|
||||
ENV KASMVNC_BUILD_OS alpine
|
||||
ENV KASMVNC_BUILD_OS_CODENAME 317
|
||||
ENV XORG_VER 21.1.8
|
||||
|
||||
RUN \
|
||||
echo "**** install build deps ****" && \
|
||||
apk add \
|
||||
alpine-release \
|
||||
alpine-sdk \
|
||||
autoconf \
|
||||
automake \
|
||||
bash \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
coreutils \
|
||||
curl \
|
||||
eudev-dev \
|
||||
font-cursor-misc \
|
||||
font-misc-misc \
|
||||
font-util-dev \
|
||||
git \
|
||||
grep \
|
||||
jq \
|
||||
libdrm-dev \
|
||||
libepoxy-dev \
|
||||
libjpeg-turbo-dev \
|
||||
libjpeg-turbo-static \
|
||||
libpciaccess-dev \
|
||||
libtool \
|
||||
libwebp-dev \
|
||||
libx11-dev \
|
||||
libxau-dev \
|
||||
libxcb-dev \
|
||||
libxcursor-dev \
|
||||
libxcvt-dev \
|
||||
libxdmcp-dev \
|
||||
libxext-dev \
|
||||
libxfont2-dev \
|
||||
libxkbfile-dev \
|
||||
libxrandr-dev \
|
||||
libxshmfence-dev \
|
||||
libxtst-dev \
|
||||
mesa-dev \
|
||||
mesa-dri-gallium \
|
||||
meson \
|
||||
nettle-dev \
|
||||
openssl-dev \
|
||||
pixman-dev \
|
||||
procps \
|
||||
shadow \
|
||||
tar \
|
||||
tzdata \
|
||||
wayland-dev \
|
||||
wayland-protocols \
|
||||
xcb-util-dev \
|
||||
xcb-util-image-dev \
|
||||
xcb-util-keysyms-dev \
|
||||
xcb-util-renderutil-dev \
|
||||
xcb-util-wm-dev \
|
||||
xinit \
|
||||
xkbcomp \
|
||||
xkbcomp-dev \
|
||||
xkeyboard-config \
|
||||
xorgproto \
|
||||
xorg-server-common \
|
||||
xorg-server-dev \
|
||||
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
|
||||
|
||||
COPY --chown=docker:docker . /src/
|
||||
|
||||
USER docker
|
||||
ENTRYPOINT ["/src/builder/build.sh"]
|
||||
|
|
@ -1,7 +1,19 @@
|
|||
FROM alpine:3.18
|
||||
|
||||
RUN apk add shadow bash
|
||||
RUN apk add abuild sudo less
|
||||
|
||||
ENV HOME /src/alpine
|
||||
WORKDIR $HOME/kasmvncserver
|
||||
|
||||
ARG KASMVNC_ALPINE_PRIVATE_KEY
|
||||
ARG KASMVNC_ALPINE_PUBLIC_KEY
|
||||
|
||||
ENV SCRIPTS_DIR=/tmp/scripts
|
||||
COPY builder/scripts $SCRIPTS_DIR
|
||||
RUN $SCRIPTS_DIR/install_alpine_signing_keys
|
||||
|
||||
RUN useradd -m docker && echo "docker:docker" | chpasswd
|
||||
RUN echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
||||
|
||||
USER docker
|
||||
|
|
|
|||
|
|
@ -1,7 +1,19 @@
|
|||
FROM alpine:3.19
|
||||
|
||||
RUN apk add shadow bash
|
||||
RUN apk add abuild sudo less
|
||||
|
||||
ENV HOME /src/alpine
|
||||
WORKDIR $HOME/kasmvncserver
|
||||
|
||||
ARG KASMVNC_ALPINE_PRIVATE_KEY
|
||||
ARG KASMVNC_ALPINE_PUBLIC_KEY
|
||||
|
||||
ENV SCRIPTS_DIR=/tmp/scripts
|
||||
COPY builder/scripts $SCRIPTS_DIR
|
||||
RUN $SCRIPTS_DIR/install_alpine_signing_keys
|
||||
|
||||
RUN useradd -m docker && echo "docker:docker" | chpasswd
|
||||
RUN echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
||||
|
||||
USER docker
|
||||
|
|
|
|||
|
|
@ -1,7 +1,19 @@
|
|||
FROM alpine:3.20
|
||||
|
||||
RUN apk add shadow bash
|
||||
RUN apk add abuild sudo less
|
||||
|
||||
ENV HOME /src/alpine
|
||||
WORKDIR $HOME/kasmvncserver
|
||||
|
||||
ARG KASMVNC_ALPINE_PRIVATE_KEY
|
||||
ARG KASMVNC_ALPINE_PUBLIC_KEY
|
||||
|
||||
ENV SCRIPTS_DIR=/tmp/scripts
|
||||
COPY builder/scripts $SCRIPTS_DIR
|
||||
RUN $SCRIPTS_DIR/install_alpine_signing_keys
|
||||
|
||||
RUN useradd -m docker && echo "docker:docker" | chpasswd
|
||||
RUN echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
||||
|
||||
USER docker
|
||||
|
|
|
|||
|
|
@ -1,7 +1,19 @@
|
|||
FROM alpine:3.21
|
||||
|
||||
RUN apk add shadow bash
|
||||
RUN apk add abuild sudo less
|
||||
|
||||
ENV HOME /src/alpine
|
||||
WORKDIR $HOME/kasmvncserver
|
||||
|
||||
ARG KASMVNC_ALPINE_PRIVATE_KEY
|
||||
ARG KASMVNC_ALPINE_PUBLIC_KEY
|
||||
|
||||
ENV SCRIPTS_DIR=/tmp/scripts
|
||||
COPY builder/scripts $SCRIPTS_DIR
|
||||
RUN $SCRIPTS_DIR/install_alpine_signing_keys
|
||||
|
||||
RUN useradd -m docker && echo "docker:docker" | chpasswd
|
||||
RUN echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
||||
|
||||
USER docker
|
||||
|
|
|
|||
|
|
@ -1,20 +0,0 @@
|
|||
FROM centos:centos7
|
||||
|
||||
ENV STARTUPDIR=/dockerstartup
|
||||
|
||||
RUN yum install -y xterm
|
||||
RUN yum install -y vim less
|
||||
RUN yum install -y redhat-lsb-core
|
||||
RUN yum install -y epel-release
|
||||
|
||||
ARG KASMVNC_PACKAGE_DIR
|
||||
COPY $KASMVNC_PACKAGE_DIR/*.rpm /tmp/
|
||||
RUN yum localinstall -y /tmp/*.rpm
|
||||
|
||||
RUN mkdir -p $STARTUPDIR
|
||||
COPY startup/vnc_startup_barebones.sh $STARTUPDIR
|
||||
|
||||
RUN useradd -m foo
|
||||
USER foo:kasmvnc-cert
|
||||
|
||||
ENTRYPOINT "/$STARTUPDIR/vnc_startup_barebones.sh"
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
FROM centos:centos7
|
||||
|
||||
ENV KASMVNC_BUILD_OS centos
|
||||
ENV KASMVNC_BUILD_OS_CODENAME core
|
||||
|
||||
RUN yum install -y ca-certificates
|
||||
RUN yum install -y build-dep xorg-server libxfont-dev sudo
|
||||
RUN yum install -y gcc cmake git libgnutls28-dev vim wget tightvncserver
|
||||
RUN yum install -y libpng-dev libtiff-dev libgif-dev libavcodec-dev openssl-devel
|
||||
RUN yum install -y make
|
||||
RUN yum group install -y "Development Tools"
|
||||
RUN yum install -y xorg-x11-server-devel zlib-devel
|
||||
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 \
|
||||
gnutls-devel libX11-devel libXtst-devel libXcursor-devel
|
||||
RUN yum install -y mesa-dri-drivers
|
||||
RUN yum install -y ca-certificates
|
||||
|
||||
# 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
|
||||
|
||||
ENV SCRIPTS_DIR=/tmp/scripts
|
||||
COPY builder/scripts $SCRIPTS_DIR
|
||||
RUN $SCRIPTS_DIR/build-libjpeg-turbo
|
||||
|
||||
RUN useradd -m docker && echo "docker:docker" | chpasswd
|
||||
|
||||
COPY --chown=docker:docker . /src/
|
||||
|
||||
USER docker
|
||||
ENTRYPOINT ["/src/builder/build.sh"]
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
FROM centos:centos7
|
||||
|
||||
RUN yum install -y rpm* gpg* rng-tools rpmlint
|
||||
RUN yum install -y tree vim less
|
||||
RUN yum install -y redhat-lsb-core
|
||||
|
||||
COPY centos/*.spec /tmp
|
||||
RUN yum-builddep -y /tmp/*.spec
|
||||
|
||||
RUN useradd -m docker && echo "docker:docker" | chpasswd
|
||||
|
||||
USER docker
|
||||
|
|
@ -1,64 +0,0 @@
|
|||
FROM centos:centos7
|
||||
|
||||
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=/usr/local/lib/ \
|
||||
OMP_WAIT_POLICY=PASSIVE \
|
||||
SHELL=/bin/bash \
|
||||
SINGLE_APPLICATION=0 \
|
||||
KASMVNC_BUILD_OS=centos \
|
||||
KASMVNC_BUILD_OS_CODENAME=core
|
||||
|
||||
EXPOSE $VNC_PORT
|
||||
|
||||
WORKDIR $HOME
|
||||
|
||||
### REQUIRED STUFF ###
|
||||
|
||||
RUN yum install -y openssl xterm gettext wget
|
||||
RUN yum install -y centos-release-scl-rh && yum install -y nss_wrapper
|
||||
RUN yum install -y xorg-x11-server xorg-x11-xauth xorg-x11-xkb-utils \
|
||||
xkeyboard-config xorg-x11-server-utils
|
||||
RUN yum install -y epel-release && yum groupinstall xfce -y
|
||||
RUN yum erase -y pm-utils xscreensaver*
|
||||
RUN yum install -y redhat-lsb-core
|
||||
RUN yum install -y vim less
|
||||
|
||||
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 ./centos/kasmvncserver.spec /tmp
|
||||
|
||||
ARG KASMVNC_PACKAGE_DIR
|
||||
COPY $KASMVNC_PACKAGE_DIR/*.rpm /tmp/
|
||||
RUN /tmp/scripts/install_kasmvncserver_package
|
||||
|
||||
### END CUSTOM STUFF ###
|
||||
|
||||
RUN chown -R 1000:0 $HOME
|
||||
USER 1000:kasmvnc-cert
|
||||
WORKDIR $HOME
|
||||
|
||||
RUN mkdir ~/.vnc && echo '/usr/bin/xfce4-session &' >> ~/.vnc/xstartup && \
|
||||
chmod +x ~/.vnc/xstartup
|
||||
|
||||
ENTRYPOINT [ "/dockerstartup/vnc_startup.sh" ]
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
FROM fedora:38
|
||||
|
||||
ENV STARTUPDIR=/dockerstartup
|
||||
|
||||
RUN dnf install -y xterm
|
||||
RUN dnf install -y vim less
|
||||
RUN yum install -y redhat-lsb-core
|
||||
|
||||
ARG KASMVNC_PACKAGE_DIR
|
||||
COPY $KASMVNC_PACKAGE_DIR/*.rpm /tmp/
|
||||
RUN dnf localinstall -y /tmp/*.rpm
|
||||
|
||||
RUN mkdir -p $STARTUPDIR
|
||||
COPY startup/vnc_startup_barebones.sh $STARTUPDIR
|
||||
|
||||
RUN useradd -m foo
|
||||
USER foo:kasmvnc-cert
|
||||
|
||||
ENTRYPOINT "/$STARTUPDIR/vnc_startup_barebones.sh"
|
||||
|
|
@ -1,86 +0,0 @@
|
|||
FROM fedora:38
|
||||
|
||||
ENV KASMVNC_BUILD_OS fedora
|
||||
ENV KASMVNC_BUILD_OS_CODENAME thirtyeight
|
||||
ENV XORG_VER 1.20.14
|
||||
|
||||
RUN \
|
||||
echo "**** install build deps ****" && \
|
||||
dnf group install -y \
|
||||
"C Development Tools and Libraries" \
|
||||
"Development Tools" && \
|
||||
dnf install -y \
|
||||
autoconf \
|
||||
automake \
|
||||
bison \
|
||||
byacc \
|
||||
bzip2 \
|
||||
cmake \
|
||||
diffutils \
|
||||
doxygen \
|
||||
file \
|
||||
flex \
|
||||
fop \
|
||||
gcc \
|
||||
gcc-c++ \
|
||||
git \
|
||||
glibc-devel \
|
||||
libdrm-devel \
|
||||
libepoxy-devel \
|
||||
libmd-devel \
|
||||
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-libgbm-devel \
|
||||
mesa-libGL-devel \
|
||||
meson \
|
||||
mingw64-binutils \
|
||||
mt-st \
|
||||
nettle-devel \
|
||||
openssl-devel \
|
||||
patch \
|
||||
pixman-devel \
|
||||
wayland-devel \
|
||||
wget \
|
||||
which \
|
||||
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 \
|
||||
xmlto \
|
||||
xorg-x11-font-utils \
|
||||
xorg-x11-proto-devel \
|
||||
xorg-x11-server-common \
|
||||
xorg-x11-server-devel \
|
||||
xorg-x11-xtrans-devel \
|
||||
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
|
||||
|
||||
COPY --chown=docker:docker . /src/
|
||||
|
||||
USER docker
|
||||
ENTRYPOINT ["/src/builder/build.sh"]
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
FROM fedora:38
|
||||
|
||||
RUN dnf install -y fedora-packager fedora-review
|
||||
RUN dnf install -y tree vim less
|
||||
RUN dnf install -y redhat-lsb-core
|
||||
RUN dnf install -y dnf-plugins-core
|
||||
|
||||
COPY fedora/*.spec /tmp
|
||||
RUN dnf builddep -y /tmp/*.spec
|
||||
|
||||
RUN useradd -m docker && echo "docker:docker" | chpasswd
|
||||
|
||||
USER docker
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
FROM fedora:38
|
||||
|
||||
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=/usr/local/lib/ \
|
||||
OMP_WAIT_POLICY=PASSIVE \
|
||||
SHELL=/bin/bash \
|
||||
SINGLE_APPLICATION=0 \
|
||||
KASMVNC_BUILD_OS=fedora \
|
||||
KASMVNC_BUILD_OS_CODENAME=thirtythree
|
||||
|
||||
EXPOSE $VNC_PORT
|
||||
|
||||
WORKDIR $HOME
|
||||
|
||||
### REQUIRED STUFF ###
|
||||
|
||||
RUN dnf install -y openssl xterm gettext wget
|
||||
RUN dnf install -y nss_wrapper
|
||||
RUN dnf install -y xorg-x11-xauth xkeyboard-config
|
||||
# xorg-x11-server-Xorg
|
||||
# RUN dnf install -y @xfce-desktop-environment
|
||||
RUN dnf erase -y pm-utils xscreensaver*
|
||||
RUN dnf install -y redhat-lsb-core
|
||||
RUN dnf install -y vim less
|
||||
RUN dnf install -y @xfce-desktop-environment
|
||||
|
||||
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 ./fedora/kasmvncserver.spec /tmp
|
||||
|
||||
ARG KASMVNC_PACKAGE_DIR
|
||||
COPY $KASMVNC_PACKAGE_DIR/*.rpm /tmp/
|
||||
# RUN dnf remove -y tigervnc-server-minimal
|
||||
RUN /tmp/scripts/install_kasmvncserver_package
|
||||
|
||||
### END CUSTOM STUFF ###
|
||||
|
||||
RUN chown -R 1000:0 $HOME
|
||||
USER 1000:kasmvnc-cert
|
||||
WORKDIR $HOME
|
||||
|
||||
ENTRYPOINT [ "/dockerstartup/vnc_startup.sh" ]
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
FROM fedora:37
|
||||
|
||||
ENV STARTUPDIR=/dockerstartup
|
||||
|
||||
RUN dnf install -y xterm
|
||||
RUN dnf install -y vim less
|
||||
RUN yum install -y redhat-lsb-core
|
||||
|
||||
ARG KASMVNC_PACKAGE_DIR
|
||||
COPY $KASMVNC_PACKAGE_DIR/*.rpm /tmp/
|
||||
RUN dnf localinstall -y /tmp/*.rpm
|
||||
|
||||
RUN mkdir -p $STARTUPDIR
|
||||
COPY startup/vnc_startup_barebones.sh $STARTUPDIR
|
||||
|
||||
RUN useradd -m foo
|
||||
USER foo:kasmvnc-cert
|
||||
|
||||
ENTRYPOINT "/$STARTUPDIR/vnc_startup_barebones.sh"
|
||||
|
|
@ -1,86 +0,0 @@
|
|||
FROM fedora:37
|
||||
|
||||
ENV KASMVNC_BUILD_OS fedora
|
||||
ENV KASMVNC_BUILD_OS_CODENAME thirtyseven
|
||||
ENV XORG_VER 1.20.14
|
||||
|
||||
RUN \
|
||||
echo "**** install build deps ****" && \
|
||||
dnf group install -y \
|
||||
"C Development Tools and Libraries" \
|
||||
"Development Tools" && \
|
||||
dnf install -y \
|
||||
autoconf \
|
||||
automake \
|
||||
bison \
|
||||
byacc \
|
||||
bzip2 \
|
||||
cmake \
|
||||
diffutils \
|
||||
doxygen \
|
||||
file \
|
||||
flex \
|
||||
fop \
|
||||
gcc \
|
||||
gcc-c++ \
|
||||
git \
|
||||
glibc-devel \
|
||||
libdrm-devel \
|
||||
libepoxy-devel \
|
||||
libmd-devel \
|
||||
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-libgbm-devel \
|
||||
mesa-libGL-devel \
|
||||
meson \
|
||||
mingw64-binutils \
|
||||
mt-st \
|
||||
nettle-devel \
|
||||
openssl-devel \
|
||||
patch \
|
||||
pixman-devel \
|
||||
wayland-devel \
|
||||
wget \
|
||||
which \
|
||||
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 \
|
||||
xmlto \
|
||||
xorg-x11-font-utils \
|
||||
xorg-x11-proto-devel \
|
||||
xorg-x11-server-common \
|
||||
xorg-x11-server-devel \
|
||||
xorg-x11-xtrans-devel \
|
||||
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
|
||||
|
||||
COPY --chown=docker:docker . /src/
|
||||
|
||||
USER docker
|
||||
ENTRYPOINT ["/src/builder/build.sh"]
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
FROM fedora:37
|
||||
|
||||
RUN dnf install -y fedora-packager fedora-review
|
||||
RUN dnf install -y tree vim less
|
||||
RUN dnf install -y redhat-lsb-core
|
||||
RUN dnf install -y dnf-plugins-core
|
||||
|
||||
COPY fedora/*.spec /tmp
|
||||
RUN dnf builddep -y /tmp/*.spec
|
||||
|
||||
RUN useradd -m docker && echo "docker:docker" | chpasswd
|
||||
|
||||
USER docker
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
FROM fedora:37
|
||||
|
||||
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=/usr/local/lib/ \
|
||||
OMP_WAIT_POLICY=PASSIVE \
|
||||
SHELL=/bin/bash \
|
||||
SINGLE_APPLICATION=0 \
|
||||
KASMVNC_BUILD_OS=fedora \
|
||||
KASMVNC_BUILD_OS_CODENAME=thirtythree
|
||||
|
||||
EXPOSE $VNC_PORT
|
||||
|
||||
WORKDIR $HOME
|
||||
|
||||
### REQUIRED STUFF ###
|
||||
|
||||
RUN dnf install -y openssl xterm gettext wget
|
||||
RUN dnf install -y nss_wrapper
|
||||
RUN dnf install -y xorg-x11-xauth xkeyboard-config
|
||||
# xorg-x11-server-Xorg
|
||||
# RUN dnf install -y @xfce-desktop-environment
|
||||
RUN dnf erase -y pm-utils xscreensaver*
|
||||
RUN dnf install -y redhat-lsb-core
|
||||
RUN dnf install -y vim less
|
||||
RUN dnf install -y @xfce-desktop-environment
|
||||
|
||||
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 ./fedora/kasmvncserver.spec /tmp
|
||||
|
||||
ARG KASMVNC_PACKAGE_DIR
|
||||
COPY $KASMVNC_PACKAGE_DIR/*.rpm /tmp/
|
||||
# RUN dnf remove -y tigervnc-server-minimal
|
||||
RUN /tmp/scripts/install_kasmvncserver_package
|
||||
|
||||
### END CUSTOM STUFF ###
|
||||
|
||||
RUN chown -R 1000:0 $HOME
|
||||
USER 1000:kasmvnc-cert
|
||||
WORKDIR $HOME
|
||||
|
||||
ENTRYPOINT [ "/dockerstartup/vnc_startup.sh" ]
|
||||
|
|
@ -1,32 +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 curl
|
||||
RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev
|
||||
|
||||
ENV SCRIPTS_DIR=/tmp/scripts
|
||||
COPY builder/scripts $SCRIPTS_DIR
|
||||
RUN $SCRIPTS_DIR/build-webp
|
||||
RUN $SCRIPTS_DIR/build-libjpeg-turbo
|
||||
|
||||
# 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,17 +0,0 @@
|
|||
FROM ubuntu:bionic
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get -y install vim build-essential devscripts equivs
|
||||
|
||||
# Install build-deps for the package.
|
||||
COPY ./debian/control /tmp
|
||||
RUN apt-get update && echo YYY | mk-build-deps --install --remove /tmp/control
|
||||
|
||||
ARG L_UID
|
||||
RUN if [ "$L_UID" -eq 0 ]; then \
|
||||
useradd -m docker; \
|
||||
else \
|
||||
useradd -m docker -u $L_UID;\
|
||||
fi
|
||||
|
||||
USER docker
|
||||
|
|
@ -1,57 +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=/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/kasmvncserver_*.deb /tmp/
|
||||
RUN /tmp/scripts/install_kasmvncserver_package
|
||||
|
||||
### END CUSTOM STUFF ###
|
||||
|
||||
RUN chown -R 1000:0 $HOME
|
||||
USER 1000:ssl-cert
|
||||
WORKDIR $HOME
|
||||
|
||||
ENTRYPOINT [ "/dockerstartup/vnc_startup.sh" ]
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
FROM ubuntu:18.04
|
||||
|
||||
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=/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 echo 'source $STARTUPDIR/generate_container_user' >> $HOME/.bashrc
|
||||
|
||||
RUN mkdir -p $STARTUPDIR
|
||||
COPY builder/startup/ $STARTUPDIR
|
||||
|
||||
### START CUSTOM STUFF ####
|
||||
|
||||
COPY build/kasmvnc.${KASMVNC_BUILD_OS}_${KASMVNC_BUILD_OS_CODENAME}.tar.gz /tmp/
|
||||
RUN tar -xzvf /tmp/kasmvnc.${KASMVNC_BUILD_OS}_${KASMVNC_BUILD_OS_CODENAME}.tar.gz --strip 1 -C /
|
||||
|
||||
### END CUSTOM STUFF ###
|
||||
|
||||
RUN chown -R 1000:0 $HOME
|
||||
USER 1000
|
||||
WORKDIR $HOME
|
||||
|
||||
ENTRYPOINT [ "/dockerstartup/vnc_startup.sh" ]
|
||||
|
|
@ -21,7 +21,7 @@ ENV DISPLAY=:1 \
|
|||
SHELL=/bin/bash \
|
||||
SINGLE_APPLICATION=0 \
|
||||
KASMVNC_BUILD_OS=ubuntu \
|
||||
KASMVNC_BUILD_OS_CODENAME=bionic
|
||||
KASMVNC_BUILD_OS_CODENAME=focal
|
||||
|
||||
EXPOSE $VNC_PORT
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ ENV DISPLAY=:1 \
|
|||
SHELL=/bin/bash \
|
||||
SINGLE_APPLICATION=0 \
|
||||
KASMVNC_BUILD_OS=ubuntu \
|
||||
KASMVNC_BUILD_OS_CODENAME=bionic
|
||||
KASMVNC_BUILD_OS_CODENAME=jammy
|
||||
|
||||
EXPOSE $VNC_PORT
|
||||
|
||||
|
|
|
|||
25
builder/dockerfile.ubuntu_jammy.dev
Normal file
25
builder/dockerfile.ubuntu_jammy.dev
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
FROM kasmweb/ubuntu-jammy-desktop:develop
|
||||
|
||||
ENV KASMVNC_BUILD_OS ubuntu
|
||||
ENV KASMVNC_BUILD_OS_CODENAME jammy
|
||||
ENV XORG_VER 21.1.3
|
||||
ENV XORG_PATCH 21
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
EXPOSE 6901
|
||||
|
||||
USER root
|
||||
|
||||
RUN sed -i 's$# deb-src$deb-src$' /etc/apt/sources.list && \
|
||||
apt update && \
|
||||
apt install -y socat sudo libxfont-dev cmake git libgnutls28-dev vim wget tightvncserver curl libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev pkg-config libfreetype6-dev libxtst-dev autoconf automake libtool xutils-dev libpixman-1-dev libxshmfence-dev libxcvt-dev libxkbfile-dev x11proto-dev libgbm-dev inotify-tools && \
|
||||
echo "kasm-user ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
||||
|
||||
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
|
||||
RUN apt install -y nodejs
|
||||
|
||||
USER 1000
|
||||
|
||||
WORKDIR /src
|
||||
|
||||
ENTRYPOINT /bin/bash
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
FROM node:12-buster
|
||||
FROM alpine
|
||||
|
||||
COPY kasmweb/ /src/www/
|
||||
RUN apk add npm nodejs
|
||||
|
||||
COPY kasmweb/ /src/www
|
||||
COPY builder/build_www.sh /src/
|
||||
|
||||
WORKDIR /src/www
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
default_os=${default_os:-ubuntu}
|
||||
default_os_codename=${default_os_codename:-bionic}
|
||||
default_os_codename=${default_os_codename:-noble}
|
||||
|
||||
os=${1:-$default_os}
|
||||
os_codename=${2:-$default_os_codename}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ ensure_libjpeg_is_fast() {
|
|||
prepare_libjpeg_source() {
|
||||
export JPEG_TURBO_RELEASE=$(curl -sX GET "https://api.github.com/repos/libjpeg-turbo/libjpeg-turbo/releases/latest" \
|
||||
| awk '/tag_name/{print $4;exit}' FS='[""]')
|
||||
[ -d ./libjpeg-turbo ] && rm -rf ./libjpeg-turbo
|
||||
mkdir libjpeg-turbo
|
||||
curl -Ls "https://github.com/libjpeg-turbo/libjpeg-turbo/archive/${JPEG_TURBO_RELEASE}.tar.gz" | \
|
||||
tar xzvf - -C libjpeg-turbo/ --strip-components=1
|
||||
|
|
|
|||
|
|
@ -2,18 +2,25 @@
|
|||
|
||||
set -euo pipefail
|
||||
|
||||
webp_tar_url=https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.2.4.tar.gz
|
||||
WEBP_VERSION="1.2.4"
|
||||
WEBP_TAR_URL="https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz"
|
||||
WEBP_TAR_FILE="/tmp/libwebp-${WEBP_VERSION}.tar.gz"
|
||||
WEBP_SRC_DIR="/tmp/libwebp-${WEBP_VERSION}"
|
||||
|
||||
prepare_source() {
|
||||
cd /tmp
|
||||
wget "$webp_tar_url"
|
||||
tar -xzf /tmp/libwebp-*
|
||||
rm /tmp/libwebp-*.tar.gz
|
||||
cd /tmp/libwebp-*
|
||||
|
||||
# Remove old files if they exist
|
||||
[ -f "$WEBP_TAR_FILE" ] && rm "$WEBP_TAR_FILE"
|
||||
[ -d "$WEBP_SRC_DIR" ] && rm -rf "$WEBP_SRC_DIR"
|
||||
|
||||
wget "$WEBP_TAR_URL"
|
||||
tar -xzf "$WEBP_TAR_FILE"
|
||||
cd "$WEBP_SRC_DIR"
|
||||
}
|
||||
|
||||
build_and_install() {
|
||||
export MAKEFLAGS=-j`nproc`
|
||||
export MAKEFLAGS=-j$(nproc)
|
||||
./configure --enable-static --disable-shared
|
||||
make
|
||||
make install
|
||||
|
|
@ -21,3 +28,4 @@ build_and_install() {
|
|||
|
||||
prepare_source
|
||||
build_and_install
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
detect_distro() {
|
||||
if [ -f /etc/centos-release ]; then
|
||||
DISTRO=centos
|
||||
elif [ -f /etc/oracle-release ]; then
|
||||
if [ -f /etc/oracle-release ]; then
|
||||
DISTRO=oracle
|
||||
elif [ -f /etc/fedora-release ]; then
|
||||
DISTRO=fedora
|
||||
|
|
@ -20,7 +18,6 @@ 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" ;;
|
||||
|
|
|
|||
30
builder/scripts/install_alpine_signing_keys
Executable file
30
builder/scripts/install_alpine_signing_keys
Executable file
|
|
@ -0,0 +1,30 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
install_private_signing_key() {
|
||||
if echo "$KASMVNC_ALPINE_PRIVATE_KEY" | grep -q -- "$BEGIN_PRIVATE_KEY"; then
|
||||
echo "$KASMVNC_ALPINE_PRIVATE_KEY" > $APK_KEYS_DIR/kasmvnc_signing_key.rsa
|
||||
else
|
||||
echo -e "$BEGIN_PRIVATE_KEY\n$KASMVNC_ALPINE_PRIVATE_KEY\n$END_PRIVATE_KEY" > \
|
||||
$APK_KEYS_DIR/kasmvnc_signing_key.rsa
|
||||
fi
|
||||
}
|
||||
|
||||
install_public_signing_key() {
|
||||
if echo "$KASMVNC_ALPINE_PUBLIC_KEY" | grep -q -- "$BEGIN_PUBLIC_KEY"; then \
|
||||
echo "$KASMVNC_ALPINE_PUBLIC_KEY" > $APK_KEYS_DIR/kasmvnc_signing_key.rsa.pub
|
||||
else
|
||||
echo -e "$BEGIN_PUBLIC_KEY\n$KASMVNC_ALPINE_PUBLIC_KEY\n$END_PUBLIC_KEY" > \
|
||||
$APK_KEYS_DIR/kasmvnc_signing_key.rsa.pub
|
||||
fi
|
||||
}
|
||||
|
||||
APK_KEYS_DIR=/etc/apk/keys
|
||||
BEGIN_PRIVATE_KEY='-----BEGIN PRIVATE KEY-----'
|
||||
END_PRIVATE_KEY='-----END PRIVATE KEY-----'
|
||||
BEGIN_PUBLIC_KEY='-----BEGIN PUBLIC KEY-----'
|
||||
END_PUBLIC_KEY='-----END PUBLIC KEY-----'
|
||||
|
||||
install_private_signing_key
|
||||
install_public_signing_key
|
||||
|
|
@ -5,8 +5,8 @@ set -e
|
|||
cd "$(dirname "$0")"
|
||||
. ./process_test_options.sh
|
||||
. ./common.sh
|
||||
os="${1:-centos}"
|
||||
os_codename="${2:-core}"
|
||||
os="${1:-oracle}"
|
||||
os_codename="${2:-8}"
|
||||
|
||||
docker build --build-arg KASMVNC_PACKAGE_DIR="build/${os}_${os_codename}" \
|
||||
-t kasmvnctester_barebones_${os}:$os_codename \
|
||||
|
|
|
|||
|
|
@ -1,158 +0,0 @@
|
|||
Name: kasmvncserver
|
||||
Version: 1.3.3
|
||||
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, perl-Switch, perl-YAML-Tiny, perl-Hash-Merge-Simple, perl-Scalar-List-Utils, perl-List-MoreUtils, perl-Try-Tiny, perl-DateTime-TimeZone
|
||||
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 --links --safe-links --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
|
||||
* Fri Oct 25 2024 KasmTech <info@kasmweb.com> - 1.3.3-1
|
||||
- Allow disabling IP blacklist
|
||||
- Downloads API for detailed file downloads information
|
||||
* Tue Sep 24 2024 KasmTech <info@kasmweb.com> - 1.3.2-1
|
||||
- Disable seamless clipboard on Firefox by default, due to the Firefox overlaying a Paste menu over the canvas.
|
||||
- Fixed CVE-2024-38449, directory traversal bug in built-in web server.
|
||||
- Allow for larger header sizes, up to 16k. Provide better logging and handling for requests that contain HTTP headers that are larger than the 16k limit.
|
||||
- Fixed memory leak in kasmproxy.
|
||||
- Fixed mime types of downloads to ensure the browser interprets them as downloads.
|
||||
* Tue Mar 12 2024 KasmTech <info@kasmweb.com> - 1.3.1-1
|
||||
- Fix exception thrown on Firefox 124 and higher
|
||||
- Fix artifacts on high resolution secondary screens
|
||||
- Fixes for touch support on primary and secondary screens
|
||||
- Fix for Oculus keyboard input
|
||||
* Mon Feb 05 2024 KasmTech <info@kasmweb.com> - 1.3.0-1
|
||||
- Multi-monitor support.
|
||||
- Increased performance with watermark enabled.
|
||||
- Added support for Fedora 39 and Alpine 319.
|
||||
- Allow special characters in usernames.
|
||||
- Better logging of client settings when client connects or changes settings.
|
||||
- Add support for rotation of text-based watermark.
|
||||
* Fri Aug 25 2023 KasmTech <info@kasmweb.com> - 1.2.0-1
|
||||
- Add support for Unix relays for bidirectional communication between noVNC
|
||||
and containerized applications.
|
||||
- Text based watermark overlays with date and time support.
|
||||
- New builds for Bookworm, Alpine 3.18, and Fedora 38.
|
||||
- Multi-language support.
|
||||
- Add support for rendering pixmaps via DRI3 GPU acceleration allowing
|
||||
compositing and other 3d accelerated workloads in a KasmVNC session.
|
||||
- Fix crash that can occur.
|
||||
- Fixed tearing when compositing is enabled with DRI3 hardware acceleration.
|
||||
- Fix stuck command key on MacOS clients.
|
||||
* Wed Apr 05 2023 KasmTech <info@kasmweb.com> - 1.1.0-1
|
||||
- Upstream release
|
||||
* 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
|
||||
2
debian/control
vendored
2
debian/control
vendored
|
|
@ -14,7 +14,7 @@ Architecture: amd64 arm64
|
|||
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, ssl-cert, xauth,
|
||||
x11-xkb-utils, xkb-data, procps, libswitch-perl, libyaml-tiny-perl,
|
||||
libhash-merge-simple-perl, libscalar-list-utils-perl, liblist-moreutils-perl,
|
||||
libtry-tiny-perl, libdatetime-timezone-perl, libgbm1
|
||||
libtry-tiny-perl, libdatetime-perl, libdatetime-timezone-perl, libgbm1
|
||||
Suggests: systemd
|
||||
Provides: vnc-server
|
||||
Description: KasmVNC provides remote web-based access to a Desktop or application.
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ License: GPLv2+
|
|||
URL: https://github.com/kasmtech/KasmVNC
|
||||
|
||||
BuildRequires: rsync
|
||||
Requires: xorg-x11-xauth, xkeyboard-config, xkbcomp, openssl, perl, perl-Switch, perl-YAML-Tiny, perl-Hash-Merge-Simple, perl-Scalar-List-Utils, perl-List-MoreUtils, perl-Try-Tiny, perl-DateTime-TimeZone, mesa-libgbm, libxshmfence
|
||||
Requires: xorg-x11-xauth, xkeyboard-config, xkbcomp, openssl, perl, perl-Switch, perl-YAML-Tiny, perl-Hash-Merge-Simple, perl-Scalar-List-Utils, perl-List-MoreUtils, perl-Try-Tiny, perl-DateTime-TimeZone, mesa-libgbm, libxshmfence, hostname
|
||||
Conflicts: tigervnc-server, tigervnc-server-minimal
|
||||
|
||||
%description
|
||||
|
|
|
|||
2
kasmweb
2
kasmweb
|
|
@ -1 +1 @@
|
|||
Subproject commit bce2d6a7048025c6e6c05df9d98b206c23f6dbab
|
||||
Subproject commit 5c46b2e13ab1dd7232b28f017fd7e49ca740f5a4
|
||||
|
|
@ -18,6 +18,7 @@ network:
|
|||
udp:
|
||||
public_ip: auto
|
||||
port: auto
|
||||
payload_size: auto
|
||||
stun_server: auto
|
||||
ssl:
|
||||
pem_certificate: /etc/ssl/certs/ssl-cert-snakeoil.pem
|
||||
|
|
|
|||
|
|
@ -2366,6 +2366,24 @@ sub DefineConfigToCLIConversion {
|
|||
$value;
|
||||
}
|
||||
}),
|
||||
KasmVNC::CliOption->new({
|
||||
name => 'udpSize',
|
||||
configKeys => [
|
||||
KasmVNC::ConfigKey->new({
|
||||
name => "network.udp.payload_size",
|
||||
validator => KasmVNC::PatternValidator->new({
|
||||
pattern => qr/^(auto|\d+)$/,
|
||||
errorMessage => "must be 'auto' or an integer"
|
||||
}),
|
||||
})
|
||||
],
|
||||
isActiveSub => sub {
|
||||
$self = shift;
|
||||
|
||||
my $value = $self->configValue();
|
||||
isPresent($value) && $value ne 'auto';
|
||||
}
|
||||
}),
|
||||
KasmVNC::CliOption->new({
|
||||
name => 'udpPort',
|
||||
configKeys => [
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue