From a3fd98e73163e16a824c8c53c5bf73c3b5135360 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Mon, 24 Feb 2025 19:31:10 +1300 Subject: [PATCH 01/61] KASM-6904 WIP --- alpine/alpine-devenv.dockerfile | 13 ++++ alpine/build | 1 + alpine/kasmvncserver/APKBUILD | 101 ++++++++++++++++++++++++++++++++ 3 files changed, 115 insertions(+) create mode 100644 alpine/alpine-devenv.dockerfile create mode 100755 alpine/build create mode 100644 alpine/kasmvncserver/APKBUILD diff --git a/alpine/alpine-devenv.dockerfile b/alpine/alpine-devenv.dockerfile new file mode 100644 index 0000000..89d42f8 --- /dev/null +++ b/alpine/alpine-devenv.dockerfile @@ -0,0 +1,13 @@ +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 + +RUN apk add rsync binutils + +USER docker diff --git a/alpine/build b/alpine/build new file mode 100755 index 0000000..0658148 --- /dev/null +++ b/alpine/build @@ -0,0 +1 @@ +docker build -f alpine-devenv.dockerfile -t alpine-devenv . diff --git a/alpine/kasmvncserver/APKBUILD b/alpine/kasmvncserver/APKBUILD new file mode 100644 index 0000000..f3fa72c --- /dev/null +++ b/alpine/kasmvncserver/APKBUILD @@ -0,0 +1,101 @@ +#!/bin/bash + +# Contributor: +# Maintainer: Kasm Technologies LLC +pkgname=kasmvncserver +pkgver=1.3.3 +pkgrel=0 +pkgdesc="foo" +url="https://github.com/kasmtech/KasmVNC" +arch="x86_64" +license="GPL-2.0-or-later" +depends=" + libgomp + libjpeg-turbo + libwebp + libxfont2 + libxshmfence + mesa-gbm + 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 + xf86-video-intel + xkbcomp + xkeyboard-config + xterm + bash + " +makedepends=" + rsync + binutils + mesa-gl + libxcursor + " +checkdepends="" +install="" +subpackages="" +source="" +builddir="$srcdir/" + + +build() { + tar -xzf ../kasmvnc.alpine_321_x86_64.tgz -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"; + export DST_MAN="$DESTDIR/usr/share/man/man1"; + + # Replace with proper package command(s) + echo "woo"; + echo "D: $DESTDIR"; + + echo "installing files"; + mkdir -p $pkgdir/usr/bin $pkgdir/usr/lib \ + $pkgdir/usr/share/perl5/vendor_perl $pkgdir/etc/kasmvnc; +#$pkgdir/usr/share/man/man1 \ +#$pkgdir/usr/share/doc/kasmvncserver + cp $SRC_BIN/Xvnc $pkgdir/usr/bin/Xkasmvnc; + cd $pkgdir/usr/bin/ && ln -s Xkasmvnc Xvnc; + cp $SRC_BIN/vncserver $pkgdir/usr/bin/kasmvncserver; + cd $pkgdir/usr/bin/ && ln -s kasmvncserver vncserver; + cp -r $SRC_BIN/KasmVNC $pkgdir/usr/share/perl5/vendor_perl; + cp $SRC_BIN/vncconfig $pkgdir/usr/bin/kasmvncconfig; + cp $SRC_BIN/kasmvncpasswd $pkgdir/usr/bin/; + cd $pkgdir/usr/bin/ && ln -s kasmvncpasswd vncpasswd; + cp $SRC_BIN/kasmxproxy $pkgdir/usr/bin/; + cp -r $SRC/lib/kasmvnc/ $pkgdir/usr/lib/kasmvncserver; + #cp -r $SRC/share/doc/kasmvnc*/* $pkgdir/usr/share/doc/kasmvncserver/ + rsync -r --links --safe-links --exclude '.git*' --exclude po2js \ + --exclude xgettext-html --exclude www/utils/ --exclude .eslintrc \ + $SRC/share/kasmvnc $pkgdir/usr/share; + sed -e 's/^\([^#]\)/# \1/' $SRC/share/kasmvnc/kasmvnc_defaults.yaml > \ + $pkgdir/etc/kasmvnc/kasmvnc.yaml; + # cp $SRC/man/man1/Xvnc.1 $pkgdir/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 +} From ce945d5a1deed74fb77abf4eeee66926dec760a1 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Wed, 26 Feb 2025 17:30:04 +1300 Subject: [PATCH 02/61] KASM-6904 Alpine: add certificate support --- alpine/kasmvncserver/APKBUILD | 9 +++++-- .../kasmvncserver.post-deinstall | 3 +++ .../kasmvncserver/kasmvncserver.post-install | 26 +++++++++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) create mode 100755 alpine/kasmvncserver/kasmvncserver.post-deinstall create mode 100755 alpine/kasmvncserver/kasmvncserver.post-install diff --git a/alpine/kasmvncserver/APKBUILD b/alpine/kasmvncserver/APKBUILD index f3fa72c..52b08c3 100644 --- a/alpine/kasmvncserver/APKBUILD +++ b/alpine/kasmvncserver/APKBUILD @@ -10,11 +10,13 @@ url="https://github.com/kasmtech/KasmVNC" arch="x86_64" license="GPL-2.0-or-later" depends=" + bash libgomp libjpeg-turbo libwebp libxfont2 libxshmfence + mcookie mesa-gbm pciutils-libs perl @@ -37,7 +39,6 @@ depends=" xkbcomp xkeyboard-config xterm - bash " makedepends=" rsync @@ -46,7 +47,7 @@ makedepends=" libxcursor " checkdepends="" -install="" +install="$pkgname.post-install $pkgname.post-deinstall" subpackages="" source="" builddir="$srcdir/" @@ -91,6 +92,10 @@ package() { rsync -r --links --safe-links --exclude '.git*' --exclude po2js \ --exclude xgettext-html --exclude www/utils/ --exclude .eslintrc \ $SRC/share/kasmvnc $pkgdir/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 > \ $pkgdir/etc/kasmvnc/kasmvnc.yaml; # cp $SRC/man/man1/Xvnc.1 $pkgdir/usr/share/man/man1/Xkasmvnc.1 diff --git a/alpine/kasmvncserver/kasmvncserver.post-deinstall b/alpine/kasmvncserver/kasmvncserver.post-deinstall new file mode 100755 index 0000000..b30760c --- /dev/null +++ b/alpine/kasmvncserver/kasmvncserver.post-deinstall @@ -0,0 +1,3 @@ +#!/bin/sh + +rm -f /etc/ssl/private/kasmvnc.pem diff --git a/alpine/kasmvncserver/kasmvncserver.post-install b/alpine/kasmvncserver/kasmvncserver.post-install new file mode 100755 index 0000000..1d9f546 --- /dev/null +++ b/alpine/kasmvncserver/kasmvncserver.post-install @@ -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 From 44ef733f93787707003449388fd8e558aa73fd2d Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Wed, 26 Feb 2025 17:47:45 +1300 Subject: [PATCH 03/61] KASM-6904 Alpine: add -doc package --- alpine/kasmvncserver/APKBUILD | 36 ++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/alpine/kasmvncserver/APKBUILD b/alpine/kasmvncserver/APKBUILD index 52b08c3..b29b098 100644 --- a/alpine/kasmvncserver/APKBUILD +++ b/alpine/kasmvncserver/APKBUILD @@ -45,10 +45,11 @@ makedepends=" binutils mesa-gl libxcursor + gzip " checkdepends="" install="$pkgname.post-install $pkgname.post-deinstall" -subpackages="" +subpackages="$pkgname-doc" source="" builddir="$srcdir/" @@ -69,15 +70,9 @@ package() { export DESTDIR="$pkgdir"; export DST_MAN="$DESTDIR/usr/share/man/man1"; - # Replace with proper package command(s) - echo "woo"; - echo "D: $DESTDIR"; - echo "installing files"; mkdir -p $pkgdir/usr/bin $pkgdir/usr/lib \ $pkgdir/usr/share/perl5/vendor_perl $pkgdir/etc/kasmvnc; -#$pkgdir/usr/share/man/man1 \ -#$pkgdir/usr/share/doc/kasmvncserver cp $SRC_BIN/Xvnc $pkgdir/usr/bin/Xkasmvnc; cd $pkgdir/usr/bin/ && ln -s Xkasmvnc Xvnc; cp $SRC_BIN/vncserver $pkgdir/usr/bin/kasmvncserver; @@ -88,7 +83,6 @@ package() { cd $pkgdir/usr/bin/ && ln -s kasmvncpasswd vncpasswd; cp $SRC_BIN/kasmxproxy $pkgdir/usr/bin/; cp -r $SRC/lib/kasmvnc/ $pkgdir/usr/lib/kasmvncserver; - #cp -r $SRC/share/doc/kasmvnc*/* $pkgdir/usr/share/doc/kasmvncserver/ rsync -r --links --safe-links --exclude '.git*' --exclude po2js \ --exclude xgettext-html --exclude www/utils/ --exclude .eslintrc \ $SRC/share/kasmvnc $pkgdir/usr/share; @@ -98,9 +92,25 @@ package() { $DESTDIR/usr/share/kasmvnc/kasmvnc_defaults.yaml sed -e 's/^\([^#]\)/# \1/' $SRC/share/kasmvnc/kasmvnc_defaults.yaml > \ $pkgdir/etc/kasmvnc/kasmvnc.yaml; - # cp $SRC/man/man1/Xvnc.1 $pkgdir/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 +} + +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 $subpkgdir/usr/share/man/man1 \ + $subpkgdir/usr/share/doc/kasmvncserver + cp -r $SRC/share/doc/kasmvnc*/* $subpkgdir/usr/share/doc/kasmvncserver/ + cp $SRC/man/man1/Xvnc.1 $subpkgdir/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 } From de99c920972b81a5b0e875bd9bc7c4b098eabfe6 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Wed, 26 Feb 2025 17:50:14 +1300 Subject: [PATCH 04/61] KASM-6904 Alpine: add package description --- alpine/kasmvncserver/APKBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/alpine/kasmvncserver/APKBUILD b/alpine/kasmvncserver/APKBUILD index b29b098..1d4a256 100644 --- a/alpine/kasmvncserver/APKBUILD +++ b/alpine/kasmvncserver/APKBUILD @@ -5,7 +5,7 @@ pkgname=kasmvncserver pkgver=1.3.3 pkgrel=0 -pkgdesc="foo" +pkgdesc="KasmVNC provides remote web-based access to a Desktop or application." url="https://github.com/kasmtech/KasmVNC" arch="x86_64" license="GPL-2.0-or-later" From 8343f4a02a73a03e230b2a43550a79b465da94d1 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Thu, 27 Feb 2025 15:27:37 +1300 Subject: [PATCH 05/61] KASM-6904 Alpine: add openssl dependency --- alpine/kasmvncserver/APKBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/alpine/kasmvncserver/APKBUILD b/alpine/kasmvncserver/APKBUILD index 1d4a256..bf74e65 100644 --- a/alpine/kasmvncserver/APKBUILD +++ b/alpine/kasmvncserver/APKBUILD @@ -18,6 +18,7 @@ depends=" libxshmfence mcookie mesa-gbm + openssl pciutils-libs perl perl-datetime From f062e9727a983a4a07f741f515285632df35a192 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Thu, 27 Feb 2025 15:35:15 +1300 Subject: [PATCH 06/61] KASM-6904 Alpine: remove redundant code --- alpine/alpine-devenv.dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/alpine/alpine-devenv.dockerfile b/alpine/alpine-devenv.dockerfile index 89d42f8..63e2bff 100644 --- a/alpine/alpine-devenv.dockerfile +++ b/alpine/alpine-devenv.dockerfile @@ -8,6 +8,4 @@ RUN adduser --disabled-password docker RUN adduser docker abuild RUN echo "docker ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers -RUN apk add rsync binutils - USER docker From 232e97a8926567965db6ca5e8bc9aa79afa7dea6 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Thu, 27 Feb 2025 22:35:56 +1300 Subject: [PATCH 07/61] KASM-6904 Alpine: update 3.21 pipeline to build apk --- alpine/kasmvncserver/APKBUILD | 3 ++- builder/build-apk | 2 ++ builder/build-apk-inside-docker | 6 ++++-- builder/dockerfile.alpine_321.apk.build | 6 ++++++ 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/alpine/kasmvncserver/APKBUILD b/alpine/kasmvncserver/APKBUILD index bf74e65..46135e4 100644 --- a/alpine/kasmvncserver/APKBUILD +++ b/alpine/kasmvncserver/APKBUILD @@ -56,7 +56,8 @@ builddir="$srcdir/" build() { - tar -xzf ../kasmvnc.alpine_321_x86_64.tgz -C "$srcdir"; + 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() { diff --git a/builder/build-apk b/builder/build-apk index 73fa677..b790d57 100755 --- a/builder/build-apk +++ b/builder/build-apk @@ -12,6 +12,8 @@ docker build -t kasmvnc_apkbuilder_${os}:${os_codename} -f \ source_dir=$(echo $PWD) L_UID=$(id -u) L_GID=$(id -g) +ABUILD_GID=300 docker run --rm -v "$source_dir":/src --user $L_UID:$L_GID \ + --group-add $ABUILD_GID \ kasmvnc_apkbuilder_${os}:${os_codename} /bin/bash -c \ '/src/builder/build-apk-inside-docker' diff --git a/builder/build-apk-inside-docker b/builder/build-apk-inside-docker index 08617f7..ad7acc6 100755 --- a/builder/build-apk-inside-docker +++ b/builder/build-apk-inside-docker @@ -4,8 +4,10 @@ set -e 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/ + +cd "$apkbuild_dir" && abuild -r 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 + /src/alpine/packages/alpine/x86_64/*.apk /src/builder/build/${os}_${os_codename}/ diff --git a/builder/dockerfile.alpine_321.apk.build b/builder/dockerfile.alpine_321.apk.build index b67ef79..a6c5867 100644 --- a/builder/dockerfile.alpine_321.apk.build +++ b/builder/dockerfile.alpine_321.apk.build @@ -1,6 +1,12 @@ FROM alpine:3.21 RUN apk add shadow bash +RUN apk add abuild sudo less + +ENV HOME /src/alpine +WORKDIR $HOME/kasmvncserver + +COPY alpine/.abuild/*.pub /etc/apk/keys/ RUN useradd -m docker && echo "docker:docker" | chpasswd From dd841cc0e636b85245dd5b187fde0e8d3d571117 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Mon, 3 Mar 2025 12:19:17 +1300 Subject: [PATCH 08/61] KASM-6904 Alpine: add signing key via env vars --- alpine/.abuild/abuild.conf | 2 ++ builder/build-apk | 20 ++++++++++++++++---- builder/dockerfile.alpine_321.apk.build | 8 +++++++- 3 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 alpine/.abuild/abuild.conf diff --git a/alpine/.abuild/abuild.conf b/alpine/.abuild/abuild.conf new file mode 100644 index 0000000..4be7a96 --- /dev/null +++ b/alpine/.abuild/abuild.conf @@ -0,0 +1,2 @@ +PACKAGER="Kasm Technologies LLC " +PACKAGER_PRIVKEY="/src/alpine/.abuild/kasmvnc_signing_key.rsa" diff --git a/builder/build-apk b/builder/build-apk index b790d57..00ead77 100755 --- a/builder/build-apk +++ b/builder/build-apk @@ -2,17 +2,29 @@ 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 + +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 \ kasmvnc_apkbuilder_${os}:${os_codename} /bin/bash -c \ diff --git a/builder/dockerfile.alpine_321.apk.build b/builder/dockerfile.alpine_321.apk.build index a6c5867..8771f31 100644 --- a/builder/dockerfile.alpine_321.apk.build +++ b/builder/dockerfile.alpine_321.apk.build @@ -6,7 +6,13 @@ RUN apk add abuild sudo less ENV HOME /src/alpine WORKDIR $HOME/kasmvncserver -COPY alpine/.abuild/*.pub /etc/apk/keys/ +ARG KASMVNC_ALPINE_PRIVATE_KEY +ARG KASMVNC_ALPINE_PUBLIC_KEY +ENV APK_KEYS_DIR=/etc/apk/keys +RUN echo -n "$KASMVNC_ALPINE_PRIVATE_KEY" > \ + $APK_KEYS_DIR/kasmvnc_signing_key.rsa +RUN echo -n "$KASMVNC_ALPINE_PUBLIC_KEY" > \ + $APK_KEYS_DIR/kasmvnc_signing_key.rsa.pub RUN useradd -m docker && echo "docker:docker" | chpasswd From c3a3d67cdf3be7712038ab0453a870b6e23fe7a9 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Tue, 4 Mar 2025 17:58:14 +1300 Subject: [PATCH 09/61] KASM-6904 Alpine: add arm support --- alpine/kasmvncserver/APKBUILD | 2 +- builder/build-apk-inside-docker | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/alpine/kasmvncserver/APKBUILD b/alpine/kasmvncserver/APKBUILD index 46135e4..3138c47 100644 --- a/alpine/kasmvncserver/APKBUILD +++ b/alpine/kasmvncserver/APKBUILD @@ -7,7 +7,7 @@ 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" +arch="x86_64 aarch64" license="GPL-2.0-or-later" depends=" bash diff --git a/builder/build-apk-inside-docker b/builder/build-apk-inside-docker index ad7acc6..f06d9e8 100755 --- a/builder/build-apk-inside-docker +++ b/builder/build-apk-inside-docker @@ -10,4 +10,4 @@ cd "$apkbuild_dir" && abuild -r mkdir -p /src/builder/build/${os}_${os_codename} mv \ - /src/alpine/packages/alpine/x86_64/*.apk /src/builder/build/${os}_${os_codename}/ + /src/alpine/packages/alpine/$(arch)/*.apk /src/builder/build/${os}_${os_codename}/ From 45f9f8d3b32733306a302a795e5d083ae3c42db8 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Tue, 4 Mar 2025 20:19:32 +1300 Subject: [PATCH 10/61] KASM-6904 Alpine: 3.20 apk package support --- builder/dockerfile.alpine_320.apk.build | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/builder/dockerfile.alpine_320.apk.build b/builder/dockerfile.alpine_320.apk.build index d99e67e..515d825 100644 --- a/builder/dockerfile.alpine_320.apk.build +++ b/builder/dockerfile.alpine_320.apk.build @@ -1,6 +1,18 @@ 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 APK_KEYS_DIR=/etc/apk/keys +RUN echo -n "$KASMVNC_ALPINE_PRIVATE_KEY" > \ + $APK_KEYS_DIR/kasmvnc_signing_key.rsa +RUN echo -n "$KASMVNC_ALPINE_PUBLIC_KEY" > \ + $APK_KEYS_DIR/kasmvnc_signing_key.rsa.pub RUN useradd -m docker && echo "docker:docker" | chpasswd From 0c2e88c4597d8de14e69cdcc5893a15b2c9b3234 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Tue, 4 Mar 2025 20:54:08 +1300 Subject: [PATCH 11/61] KASM-6904 Alpine: 3.19 apk package support --- builder/dockerfile.alpine_319.apk.build | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/builder/dockerfile.alpine_319.apk.build b/builder/dockerfile.alpine_319.apk.build index a0930b4..7771b48 100644 --- a/builder/dockerfile.alpine_319.apk.build +++ b/builder/dockerfile.alpine_319.apk.build @@ -1,6 +1,18 @@ 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 APK_KEYS_DIR=/etc/apk/keys +RUN echo -n "$KASMVNC_ALPINE_PRIVATE_KEY" > \ + $APK_KEYS_DIR/kasmvnc_signing_key.rsa +RUN echo -n "$KASMVNC_ALPINE_PUBLIC_KEY" > \ + $APK_KEYS_DIR/kasmvnc_signing_key.rsa.pub RUN useradd -m docker && echo "docker:docker" | chpasswd From ebfe61392aa4838d23ae18841f2e7368530755a4 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Wed, 5 Mar 2025 14:45:55 +1300 Subject: [PATCH 12/61] KASM-6904 Alpine: 3.18 apk package support --- builder/dockerfile.alpine_318.apk.build | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/builder/dockerfile.alpine_318.apk.build b/builder/dockerfile.alpine_318.apk.build index 9504897..209e142 100644 --- a/builder/dockerfile.alpine_318.apk.build +++ b/builder/dockerfile.alpine_318.apk.build @@ -1,6 +1,18 @@ 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 APK_KEYS_DIR=/etc/apk/keys +RUN echo -n "$KASMVNC_ALPINE_PRIVATE_KEY" > \ + $APK_KEYS_DIR/kasmvnc_signing_key.rsa +RUN echo -n "$KASMVNC_ALPINE_PUBLIC_KEY" > \ + $APK_KEYS_DIR/kasmvnc_signing_key.rsa.pub RUN useradd -m docker && echo "docker:docker" | chpasswd From b6cc920ba5b39cfe1693865db7076cb1c1f8f86d Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Wed, 5 Mar 2025 15:00:49 +1300 Subject: [PATCH 13/61] KASM-6904 Alpine: 3.17 apk package support --- builder/dockerfile.alpine_317.apk.build | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/builder/dockerfile.alpine_317.apk.build b/builder/dockerfile.alpine_317.apk.build index 732f5f0..fafdecb 100644 --- a/builder/dockerfile.alpine_317.apk.build +++ b/builder/dockerfile.alpine_317.apk.build @@ -1,6 +1,18 @@ 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 APK_KEYS_DIR=/etc/apk/keys +RUN echo -n "$KASMVNC_ALPINE_PRIVATE_KEY" > \ + $APK_KEYS_DIR/kasmvnc_signing_key.rsa +RUN echo -n "$KASMVNC_ALPINE_PUBLIC_KEY" > \ + $APK_KEYS_DIR/kasmvnc_signing_key.rsa.pub RUN useradd -m docker && echo "docker:docker" | chpasswd From 965ea7587a636b2c2b340fb5168d1ea250d1d218 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Wed, 5 Mar 2025 15:08:06 +1300 Subject: [PATCH 14/61] KASM-6904 Fix CI: run abuild as user 1000, not root --- builder/build-apk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/builder/build-apk b/builder/build-apk index 00ead77..e0d6d30 100755 --- a/builder/build-apk +++ b/builder/build-apk @@ -16,6 +16,10 @@ cd "$(dirname "$0")/.." 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 \ From 2b731e170a65c00a74d4cbc407199afd5b8a132d Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Fri, 7 Mar 2025 14:50:20 +1300 Subject: [PATCH 15/61] KASM-6904 Fix CI --- .gitlab-ci.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6dd1bf6..168d21e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -198,7 +198,7 @@ build_ubuntu_noble: artifacts: paths: - output/ - + build_ubuntu_noble_arm: stage: build allow_failure: true @@ -209,7 +209,7 @@ build_ubuntu_noble_arm: - *prepare_www after_script: - *prepare_artfacts - script: + script: - bash builder/build-package ubuntu noble; only: variables: @@ -617,13 +617,13 @@ build_fedora_forty: artifacts: paths: - output/ - + build_fedora_forty_arm: stage: build allow_failure: true tags: - oci-fixed-arm - before_script: + before_script: - *prepare_build - *prepare_www after_script: @@ -655,18 +655,18 @@ build_fedora_fortyone: artifacts: paths: - output/ - + build_fedora_fortyone_arm: stage: build allow_failure: true tags: - oci-fixed-arm - before_script: + before_script: - *prepare_build - *prepare_www after_script: - *prepare_artfacts - script: + script: - bash builder/build-package fedora fortyone; only: variables: @@ -779,6 +779,8 @@ build_alpine_319: artifacts: paths: - output/ + - alpine/.abuild/kasmvnc_signing_key.rsa + - alpine/.abuild/kasmvnc_signing_key.rsa.pub build_alpine_319_arm: stage: build From 259d8953ef619120ed14f52dbbfb464c4669bbcf Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Fri, 7 Mar 2025 15:00:56 +1300 Subject: [PATCH 16/61] Revert "KASM-6904 Fix CI" This reverts commit 2b731e170a65c00a74d4cbc407199afd5b8a132d. --- .gitlab-ci.yml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 168d21e..6dd1bf6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -198,7 +198,7 @@ build_ubuntu_noble: artifacts: paths: - output/ - + build_ubuntu_noble_arm: stage: build allow_failure: true @@ -209,7 +209,7 @@ build_ubuntu_noble_arm: - *prepare_www after_script: - *prepare_artfacts - script: + script: - bash builder/build-package ubuntu noble; only: variables: @@ -617,13 +617,13 @@ build_fedora_forty: artifacts: paths: - output/ - + build_fedora_forty_arm: stage: build allow_failure: true tags: - oci-fixed-arm - before_script: + before_script: - *prepare_build - *prepare_www after_script: @@ -655,18 +655,18 @@ build_fedora_fortyone: artifacts: paths: - output/ - + build_fedora_fortyone_arm: stage: build allow_failure: true tags: - oci-fixed-arm - before_script: + before_script: - *prepare_build - *prepare_www after_script: - *prepare_artfacts - script: + script: - bash builder/build-package fedora fortyone; only: variables: @@ -779,8 +779,6 @@ build_alpine_319: artifacts: paths: - output/ - - alpine/.abuild/kasmvnc_signing_key.rsa - - alpine/.abuild/kasmvnc_signing_key.rsa.pub build_alpine_319_arm: stage: build From aad8725c482c14c5f4fb8f2ac38853bee421648a Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Fri, 7 Mar 2025 15:03:20 +1300 Subject: [PATCH 17/61] KASM-6904 Fix CI --- builder/dockerfile.alpine_319.apk.build | 2 ++ 1 file changed, 2 insertions(+) diff --git a/builder/dockerfile.alpine_319.apk.build b/builder/dockerfile.alpine_319.apk.build index 7771b48..2d4dfdc 100644 --- a/builder/dockerfile.alpine_319.apk.build +++ b/builder/dockerfile.alpine_319.apk.build @@ -11,8 +11,10 @@ ARG KASMVNC_ALPINE_PUBLIC_KEY ENV APK_KEYS_DIR=/etc/apk/keys RUN echo -n "$KASMVNC_ALPINE_PRIVATE_KEY" > \ $APK_KEYS_DIR/kasmvnc_signing_key.rsa +RUN echo KASMVNC_ALPINE_PRIVATE_KEY "$KASMVNC_ALPINE_PRIVATE_KEY" RUN echo -n "$KASMVNC_ALPINE_PUBLIC_KEY" > \ $APK_KEYS_DIR/kasmvnc_signing_key.rsa.pub +RUN echo KASMVNC_ALPINE_PUBLIC_KEY "$KASMVNC_ALPINE_PUBLIC_KEY" RUN useradd -m docker && echo "docker:docker" | chpasswd From 2ca875a570185147de1304f1813282cf0959e7b4 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Fri, 7 Mar 2025 15:05:28 +1300 Subject: [PATCH 18/61] KASM-6904 Limit build to Alpine 3.19 --- .gitlab-ci.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6dd1bf6..308e3c8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,7 +10,7 @@ variables: # E.g. BUILD_JOBS: build_debian_buster,build_ubuntu_bionic. 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 + BUILD_JOBS: build_alpine_319 DOCKER_HOST: tcp://docker:2375 DOCKER_TLS_CERTDIR: "" @@ -198,7 +198,7 @@ build_ubuntu_noble: artifacts: paths: - output/ - + build_ubuntu_noble_arm: stage: build allow_failure: true @@ -209,7 +209,7 @@ build_ubuntu_noble_arm: - *prepare_www after_script: - *prepare_artfacts - script: + script: - bash builder/build-package ubuntu noble; only: variables: @@ -617,13 +617,13 @@ build_fedora_forty: artifacts: paths: - output/ - + build_fedora_forty_arm: stage: build allow_failure: true tags: - oci-fixed-arm - before_script: + before_script: - *prepare_build - *prepare_www after_script: @@ -655,18 +655,18 @@ build_fedora_fortyone: artifacts: paths: - output/ - + build_fedora_fortyone_arm: stage: build allow_failure: true tags: - oci-fixed-arm - before_script: + before_script: - *prepare_build - *prepare_www after_script: - *prepare_artfacts - script: + script: - bash builder/build-package fedora fortyone; only: variables: From 90351722729fcd783b79abdf45ca9a315dd9facf Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Fri, 7 Mar 2025 15:16:43 +1300 Subject: [PATCH 19/61] KASM-6904 CI: .abuild as artifacts --- .gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 308e3c8..abdf519 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -779,6 +779,8 @@ build_alpine_319: artifacts: paths: - output/ + - alpine/.abuild + - when: always build_alpine_319_arm: stage: build From f0bf5fdb40aa3c9c5f0de75f94ef6429ebd5a37b Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Fri, 7 Mar 2025 15:18:45 +1300 Subject: [PATCH 20/61] KASM-6904 Fix CI --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index abdf519..8a9fd92 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -780,7 +780,7 @@ build_alpine_319: paths: - output/ - alpine/.abuild - - when: always + - when: always build_alpine_319_arm: stage: build From c73142e589d358e1f3d71d915f88cc6a210fc70e Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Fri, 7 Mar 2025 15:25:48 +1300 Subject: [PATCH 21/61] KASM-6904 Fix CI --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8a9fd92..a9fbc7c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -780,7 +780,7 @@ build_alpine_319: paths: - output/ - alpine/.abuild - - when: always + when: always build_alpine_319_arm: stage: build From 179497ddcd0acba42352d8d7db7bb72e6cb03a15 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Fri, 7 Mar 2025 16:17:40 +1300 Subject: [PATCH 22/61] KASM-6904 CI: use masked Alpine signing key env var --- builder/dockerfile.alpine_319.apk.build | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/builder/dockerfile.alpine_319.apk.build b/builder/dockerfile.alpine_319.apk.build index 2d4dfdc..fcec8e3 100644 --- a/builder/dockerfile.alpine_319.apk.build +++ b/builder/dockerfile.alpine_319.apk.build @@ -9,8 +9,14 @@ WORKDIR $HOME/kasmvncserver ARG KASMVNC_ALPINE_PRIVATE_KEY ARG KASMVNC_ALPINE_PUBLIC_KEY ENV APK_KEYS_DIR=/etc/apk/keys -RUN echo -n "$KASMVNC_ALPINE_PRIVATE_KEY" > \ - $APK_KEYS_DIR/kasmvnc_signing_key.rsa +ENV BEGIN_PRIVATE_KEY='-----BEGIN PRIVATE KEY-----' +ENV END_PRIVATE_KEY='-----END PRIVATE KEY-----' +RUN 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 "$BEGIN_PRIVATE_KEY\n$KASMVNC_ALPINE_PRIVATE_KEY\n$END_PRIVATE_KEY" > \ + $APK_KEYS_DIR/kasmvnc_signing_key.rsa; \ + fi RUN echo KASMVNC_ALPINE_PRIVATE_KEY "$KASMVNC_ALPINE_PRIVATE_KEY" RUN echo -n "$KASMVNC_ALPINE_PUBLIC_KEY" > \ $APK_KEYS_DIR/kasmvnc_signing_key.rsa.pub From cd879fc536f7b27040880f04671b24ef1ff71bc5 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Fri, 7 Mar 2025 16:30:59 +1300 Subject: [PATCH 23/61] KASM-6904 Use bash as docker shell in Alpine 3.19 apk build --- builder/dockerfile.alpine_319.apk.build | 2 ++ 1 file changed, 2 insertions(+) diff --git a/builder/dockerfile.alpine_319.apk.build b/builder/dockerfile.alpine_319.apk.build index fcec8e3..42e3513 100644 --- a/builder/dockerfile.alpine_319.apk.build +++ b/builder/dockerfile.alpine_319.apk.build @@ -3,6 +3,8 @@ FROM alpine:3.19 RUN apk add shadow bash RUN apk add abuild sudo less +SHELL ["/bin/bash", "-c"] + ENV HOME /src/alpine WORKDIR $HOME/kasmvncserver From a2b26eba66e0f35fc16c24735880db2b4c840f08 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Fri, 7 Mar 2025 16:37:30 +1300 Subject: [PATCH 24/61] KASM-6904 Fix CI --- builder/dockerfile.alpine_319.apk.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/dockerfile.alpine_319.apk.build b/builder/dockerfile.alpine_319.apk.build index 42e3513..1536c97 100644 --- a/builder/dockerfile.alpine_319.apk.build +++ b/builder/dockerfile.alpine_319.apk.build @@ -16,7 +16,7 @@ ENV END_PRIVATE_KEY='-----END PRIVATE KEY-----' RUN 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 "$BEGIN_PRIVATE_KEY\n$KASMVNC_ALPINE_PRIVATE_KEY\n$END_PRIVATE_KEY" > \ + echo -e "$BEGIN_PRIVATE_KEY\n$KASMVNC_ALPINE_PRIVATE_KEY\n$END_PRIVATE_KEY" > \ $APK_KEYS_DIR/kasmvnc_signing_key.rsa; \ fi RUN echo KASMVNC_ALPINE_PRIVATE_KEY "$KASMVNC_ALPINE_PRIVATE_KEY" From 5435696dc7ed9d9723dd16a6d1ab6a2033090edf Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sat, 8 Mar 2025 17:19:11 +1300 Subject: [PATCH 25/61] KASM-6904 Print env --- builder/dockerfile.alpine_319.apk.build | 1 + 1 file changed, 1 insertion(+) diff --git a/builder/dockerfile.alpine_319.apk.build b/builder/dockerfile.alpine_319.apk.build index 1536c97..699ddbd 100644 --- a/builder/dockerfile.alpine_319.apk.build +++ b/builder/dockerfile.alpine_319.apk.build @@ -23,6 +23,7 @@ RUN echo KASMVNC_ALPINE_PRIVATE_KEY "$KASMVNC_ALPINE_PRIVATE_KEY" RUN echo -n "$KASMVNC_ALPINE_PUBLIC_KEY" > \ $APK_KEYS_DIR/kasmvnc_signing_key.rsa.pub RUN echo KASMVNC_ALPINE_PUBLIC_KEY "$KASMVNC_ALPINE_PUBLIC_KEY" +RUN env RUN useradd -m docker && echo "docker:docker" | chpasswd From be265fa9ee4396cd8ac25473341393b7eb3036ae Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sat, 8 Mar 2025 17:25:43 +1300 Subject: [PATCH 26/61] KASM-6904 Print env --- builder/build-apk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/builder/build-apk b/builder/build-apk index e0d6d30..19f8f27 100755 --- a/builder/build-apk +++ b/builder/build-apk @@ -21,6 +21,8 @@ if [ "$L_UID" = 0 ]; then L_GID=1000 fi +echo "woo" +env builder_image=kasmvnc_apkbuilder_${os}:${os_codename} docker build -t $builder_image \ --build-arg KASMVNC_ALPINE_PRIVATE_KEY \ From 950d358af9891637269a89e1a7b53505c492b4fd Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sun, 9 Mar 2025 16:08:19 +1300 Subject: [PATCH 27/61] KASM-6904 Fix CI --- builder/dockerfile.alpine_319.apk.build | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/builder/dockerfile.alpine_319.apk.build b/builder/dockerfile.alpine_319.apk.build index 699ddbd..2c60fef 100644 --- a/builder/dockerfile.alpine_319.apk.build +++ b/builder/dockerfile.alpine_319.apk.build @@ -13,6 +13,8 @@ ARG KASMVNC_ALPINE_PUBLIC_KEY ENV APK_KEYS_DIR=/etc/apk/keys ENV BEGIN_PRIVATE_KEY='-----BEGIN PRIVATE KEY-----' ENV END_PRIVATE_KEY='-----END PRIVATE KEY-----' +ENV BEGIN_PUBLIC_KEY='-----BEGIN PUBLIC KEY-----' +ENV END_PUBLIC_KEY='-----END PUBLIC KEY-----' RUN 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 \ @@ -20,10 +22,12 @@ RUN if echo "$KASMVNC_ALPINE_PRIVATE_KEY" | grep -q -- "$BEGIN_PRIVATE_KEY"; the $APK_KEYS_DIR/kasmvnc_signing_key.rsa; \ fi RUN echo KASMVNC_ALPINE_PRIVATE_KEY "$KASMVNC_ALPINE_PRIVATE_KEY" -RUN echo -n "$KASMVNC_ALPINE_PUBLIC_KEY" > \ - $APK_KEYS_DIR/kasmvnc_signing_key.rsa.pub -RUN echo KASMVNC_ALPINE_PUBLIC_KEY "$KASMVNC_ALPINE_PUBLIC_KEY" -RUN env +RUN 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 RUN useradd -m docker && echo "docker:docker" | chpasswd From 72388b390b70ad6cd39f5afbf7a07ff708ee7616 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sun, 9 Mar 2025 16:24:08 +1300 Subject: [PATCH 28/61] KASM-6904 Fix CI --- builder/build-apk-inside-docker | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/builder/build-apk-inside-docker b/builder/build-apk-inside-docker index f06d9e8..e221814 100755 --- a/builder/build-apk-inside-docker +++ b/builder/build-apk-inside-docker @@ -8,6 +8,7 @@ apkbuild_dir=/src/alpine/kasmvncserver/ cd "$apkbuild_dir" && abuild -r -mkdir -p /src/builder/build/${os}_${os_codename} -mv \ +[ -n "$CI" ] && sudo_cmd=sudo || sudo_cmd= +$sudo_cmd mkdir -p /src/builder/build/${os}_${os_codename} +$sudo_cmd mv \ /src/alpine/packages/alpine/$(arch)/*.apk /src/builder/build/${os}_${os_codename}/ From 2eae9d294123b4640e2468db8e7a6c1cbb7f1167 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sun, 9 Mar 2025 16:31:45 +1300 Subject: [PATCH 29/61] KASM-6904 Debug CI --- builder/build-apk-inside-docker | 1 + 1 file changed, 1 insertion(+) diff --git a/builder/build-apk-inside-docker b/builder/build-apk-inside-docker index e221814..6c12dcb 100755 --- a/builder/build-apk-inside-docker +++ b/builder/build-apk-inside-docker @@ -8,6 +8,7 @@ apkbuild_dir=/src/alpine/kasmvncserver/ cd "$apkbuild_dir" && abuild -r +set -x [ -n "$CI" ] && sudo_cmd=sudo || sudo_cmd= $sudo_cmd mkdir -p /src/builder/build/${os}_${os_codename} $sudo_cmd mv \ From dfa1a00ed0bcc92a73e44725ff05953fe51fecbf Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sun, 9 Mar 2025 16:38:41 +1300 Subject: [PATCH 30/61] KASM-6904 Fix CI --- builder/build-apk | 1 + 1 file changed, 1 insertion(+) diff --git a/builder/build-apk b/builder/build-apk index 19f8f27..5b92170 100755 --- a/builder/build-apk +++ b/builder/build-apk @@ -33,5 +33,6 @@ 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' From 896e66de3e8d6a5d67d73c87d8832cb8607a2028 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sun, 9 Mar 2025 17:15:00 +1300 Subject: [PATCH 31/61] KASM-6904 Fix CI --- builder/dockerfile.alpine_319.apk.build | 1 + 1 file changed, 1 insertion(+) diff --git a/builder/dockerfile.alpine_319.apk.build b/builder/dockerfile.alpine_319.apk.build index 2c60fef..c860e4b 100644 --- a/builder/dockerfile.alpine_319.apk.build +++ b/builder/dockerfile.alpine_319.apk.build @@ -30,5 +30,6 @@ RUN if echo "$KASMVNC_ALPINE_PUBLIC_KEY" | grep -q -- "$BEGIN_PUBLIC_KEY"; then fi RUN useradd -m docker && echo "docker:docker" | chpasswd +RUN echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers USER docker From fc79c216f50c82c31694df42da3049d1f87262ad Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sun, 9 Mar 2025 17:21:47 +1300 Subject: [PATCH 32/61] Revert "KASM-6904 Print env" This reverts commit be265fa9ee4396cd8ac25473341393b7eb3036ae. --- builder/build-apk | 2 -- 1 file changed, 2 deletions(-) diff --git a/builder/build-apk b/builder/build-apk index 5b92170..8b49160 100755 --- a/builder/build-apk +++ b/builder/build-apk @@ -21,8 +21,6 @@ if [ "$L_UID" = 0 ]; then L_GID=1000 fi -echo "woo" -env builder_image=kasmvnc_apkbuilder_${os}:${os_codename} docker build -t $builder_image \ --build-arg KASMVNC_ALPINE_PRIVATE_KEY \ From 1c279c2e941ecb7083159506c7d39d54263f545f Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sun, 9 Mar 2025 17:29:07 +1300 Subject: [PATCH 33/61] KASM-6904 Alpine: depend on xf86-video-intel only on x86 --- alpine/kasmvncserver/APKBUILD | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/alpine/kasmvncserver/APKBUILD b/alpine/kasmvncserver/APKBUILD index 3138c47..e67e4c2 100644 --- a/alpine/kasmvncserver/APKBUILD +++ b/alpine/kasmvncserver/APKBUILD @@ -36,11 +36,13 @@ depends=" xf86-video-amdgpu xf86-video-ati xf86-video-nouveau - xf86-video-intel xkbcomp xkeyboard-config xterm " +if [ $(arch) = x86_64 ]; then + depends="$depends xf86-video-intel" +fi makedepends=" rsync binutils From 5edf55ee9997c9cb2c8bbdcc30264d1dbbcdc9de Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sun, 9 Mar 2025 17:45:27 +1300 Subject: [PATCH 34/61] KASM-6904 Refactor --- builder/dockerfile.alpine_319.apk.build | 21 +++------------ builder/scripts/install_alpine_signing_keys | 29 +++++++++++++++++++++ 2 files changed, 33 insertions(+), 17 deletions(-) create mode 100755 builder/scripts/install_alpine_signing_keys diff --git a/builder/dockerfile.alpine_319.apk.build b/builder/dockerfile.alpine_319.apk.build index c860e4b..35e0dc7 100644 --- a/builder/dockerfile.alpine_319.apk.build +++ b/builder/dockerfile.alpine_319.apk.build @@ -11,23 +11,10 @@ WORKDIR $HOME/kasmvncserver ARG KASMVNC_ALPINE_PRIVATE_KEY ARG KASMVNC_ALPINE_PUBLIC_KEY ENV APK_KEYS_DIR=/etc/apk/keys -ENV BEGIN_PRIVATE_KEY='-----BEGIN PRIVATE KEY-----' -ENV END_PRIVATE_KEY='-----END PRIVATE KEY-----' -ENV BEGIN_PUBLIC_KEY='-----BEGIN PUBLIC KEY-----' -ENV END_PUBLIC_KEY='-----END PUBLIC KEY-----' -RUN 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 -RUN echo KASMVNC_ALPINE_PRIVATE_KEY "$KASMVNC_ALPINE_PRIVATE_KEY" -RUN 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 + +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 diff --git a/builder/scripts/install_alpine_signing_keys b/builder/scripts/install_alpine_signing_keys new file mode 100755 index 0000000..0fbe3da --- /dev/null +++ b/builder/scripts/install_alpine_signing_keys @@ -0,0 +1,29 @@ +#!/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 +} + +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 From c9ea601582e8d8375c804f2541ab192475735e76 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sun, 9 Mar 2025 17:51:37 +1300 Subject: [PATCH 35/61] KASM-6904 Refactor --- builder/dockerfile.alpine_319.apk.build | 1 - builder/scripts/install_alpine_signing_keys | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/dockerfile.alpine_319.apk.build b/builder/dockerfile.alpine_319.apk.build index 35e0dc7..ae0f4e8 100644 --- a/builder/dockerfile.alpine_319.apk.build +++ b/builder/dockerfile.alpine_319.apk.build @@ -10,7 +10,6 @@ WORKDIR $HOME/kasmvncserver ARG KASMVNC_ALPINE_PRIVATE_KEY ARG KASMVNC_ALPINE_PUBLIC_KEY -ENV APK_KEYS_DIR=/etc/apk/keys ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR diff --git a/builder/scripts/install_alpine_signing_keys b/builder/scripts/install_alpine_signing_keys index 0fbe3da..63c3630 100755 --- a/builder/scripts/install_alpine_signing_keys +++ b/builder/scripts/install_alpine_signing_keys @@ -20,6 +20,7 @@ install_public_signing_key() { 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-----' From 13d1656e2f91f302d0ab6dfa566b2a07c9e6c85f Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sun, 9 Mar 2025 17:52:52 +1300 Subject: [PATCH 36/61] KASM-6904 Refactor --- builder/dockerfile.alpine_319.apk.build | 2 -- 1 file changed, 2 deletions(-) diff --git a/builder/dockerfile.alpine_319.apk.build b/builder/dockerfile.alpine_319.apk.build index ae0f4e8..95b6bc6 100644 --- a/builder/dockerfile.alpine_319.apk.build +++ b/builder/dockerfile.alpine_319.apk.build @@ -3,8 +3,6 @@ FROM alpine:3.19 RUN apk add shadow bash RUN apk add abuild sudo less -SHELL ["/bin/bash", "-c"] - ENV HOME /src/alpine WORKDIR $HOME/kasmvncserver From ae1ec7e8d3d321b83e0e887059faaefa99044257 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sun, 9 Mar 2025 17:54:44 +1300 Subject: [PATCH 37/61] Revert "KASM-6904 CI: .abuild as artifacts" This reverts commit 90351722729fcd783b79abdf45ca9a315dd9facf. --- .gitlab-ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a9fbc7c..308e3c8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -779,8 +779,6 @@ build_alpine_319: artifacts: paths: - output/ - - alpine/.abuild - when: always build_alpine_319_arm: stage: build From cfa0fd11e756590cc4c3d17baa53ff042ceb6534 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sun, 9 Mar 2025 17:56:42 +1300 Subject: [PATCH 38/61] KASM-6904 Alpine 3.18 build apk package --- .gitlab-ci.yml | 2 +- builder/dockerfile.alpine_318.apk.build | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 308e3c8..6ab8318 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,7 +10,7 @@ variables: # E.g. BUILD_JOBS: build_debian_buster,build_ubuntu_bionic. 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: build_alpine_319 + BUILD_JOBS: build_alpine_318 DOCKER_HOST: tcp://docker:2375 DOCKER_TLS_CERTDIR: "" diff --git a/builder/dockerfile.alpine_318.apk.build b/builder/dockerfile.alpine_318.apk.build index 209e142..f55ac41 100644 --- a/builder/dockerfile.alpine_318.apk.build +++ b/builder/dockerfile.alpine_318.apk.build @@ -8,12 +8,12 @@ WORKDIR $HOME/kasmvncserver ARG KASMVNC_ALPINE_PRIVATE_KEY ARG KASMVNC_ALPINE_PUBLIC_KEY -ENV APK_KEYS_DIR=/etc/apk/keys -RUN echo -n "$KASMVNC_ALPINE_PRIVATE_KEY" > \ - $APK_KEYS_DIR/kasmvnc_signing_key.rsa -RUN echo -n "$KASMVNC_ALPINE_PUBLIC_KEY" > \ - $APK_KEYS_DIR/kasmvnc_signing_key.rsa.pub + +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 From e6a805d6e14d74c34b88c5a654963a62c5e9243a Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sun, 9 Mar 2025 17:57:35 +1300 Subject: [PATCH 39/61] KASM-6904 Remove debug code --- builder/build-apk-inside-docker | 1 - 1 file changed, 1 deletion(-) diff --git a/builder/build-apk-inside-docker b/builder/build-apk-inside-docker index 6c12dcb..e221814 100755 --- a/builder/build-apk-inside-docker +++ b/builder/build-apk-inside-docker @@ -8,7 +8,6 @@ apkbuild_dir=/src/alpine/kasmvncserver/ cd "$apkbuild_dir" && abuild -r -set -x [ -n "$CI" ] && sudo_cmd=sudo || sudo_cmd= $sudo_cmd mkdir -p /src/builder/build/${os}_${os_codename} $sudo_cmd mv \ From 7726718e1ae970f6b8c185dacdc9ff581933609d Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sun, 9 Mar 2025 18:24:59 +1300 Subject: [PATCH 40/61] KASM-6904 Alpine 3.17 build apk package --- .gitlab-ci.yml | 2 +- builder/dockerfile.alpine_317.apk.build | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6ab8318..4f28162 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,7 +10,7 @@ variables: # E.g. BUILD_JOBS: build_debian_buster,build_ubuntu_bionic. 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: build_alpine_318 + BUILD_JOBS: build_alpine_317 DOCKER_HOST: tcp://docker:2375 DOCKER_TLS_CERTDIR: "" diff --git a/builder/dockerfile.alpine_317.apk.build b/builder/dockerfile.alpine_317.apk.build index fafdecb..c0294c0 100644 --- a/builder/dockerfile.alpine_317.apk.build +++ b/builder/dockerfile.alpine_317.apk.build @@ -8,12 +8,12 @@ WORKDIR $HOME/kasmvncserver ARG KASMVNC_ALPINE_PRIVATE_KEY ARG KASMVNC_ALPINE_PUBLIC_KEY -ENV APK_KEYS_DIR=/etc/apk/keys -RUN echo -n "$KASMVNC_ALPINE_PRIVATE_KEY" > \ - $APK_KEYS_DIR/kasmvnc_signing_key.rsa -RUN echo -n "$KASMVNC_ALPINE_PUBLIC_KEY" > \ - $APK_KEYS_DIR/kasmvnc_signing_key.rsa.pub + +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 From d607c2e7f78babcc31ecd35a5bd0b4857f4601c1 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sun, 9 Mar 2025 18:29:57 +1300 Subject: [PATCH 41/61] KASM-6904 Alpine 3.20 build apk package --- .gitlab-ci.yml | 2 +- builder/dockerfile.alpine_320.apk.build | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4f28162..2fd3f69 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,7 +10,7 @@ variables: # E.g. BUILD_JOBS: build_debian_buster,build_ubuntu_bionic. 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: build_alpine_317 + BUILD_JOBS: build_alpine_320 DOCKER_HOST: tcp://docker:2375 DOCKER_TLS_CERTDIR: "" diff --git a/builder/dockerfile.alpine_320.apk.build b/builder/dockerfile.alpine_320.apk.build index 515d825..8791c8b 100644 --- a/builder/dockerfile.alpine_320.apk.build +++ b/builder/dockerfile.alpine_320.apk.build @@ -8,12 +8,12 @@ WORKDIR $HOME/kasmvncserver ARG KASMVNC_ALPINE_PRIVATE_KEY ARG KASMVNC_ALPINE_PUBLIC_KEY -ENV APK_KEYS_DIR=/etc/apk/keys -RUN echo -n "$KASMVNC_ALPINE_PRIVATE_KEY" > \ - $APK_KEYS_DIR/kasmvnc_signing_key.rsa -RUN echo -n "$KASMVNC_ALPINE_PUBLIC_KEY" > \ - $APK_KEYS_DIR/kasmvnc_signing_key.rsa.pub + +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 From 15ee0f3dbeebc36dc075f2a9060de0cf676b50c5 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sun, 9 Mar 2025 18:31:36 +1300 Subject: [PATCH 42/61] KASM-6904 Alpine 3.21 build apk package --- .gitlab-ci.yml | 2 +- builder/dockerfile.alpine_321.apk.build | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2fd3f69..564640b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,7 +10,7 @@ variables: # E.g. BUILD_JOBS: build_debian_buster,build_ubuntu_bionic. 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: build_alpine_320 + BUILD_JOBS: build_alpine_321 DOCKER_HOST: tcp://docker:2375 DOCKER_TLS_CERTDIR: "" diff --git a/builder/dockerfile.alpine_321.apk.build b/builder/dockerfile.alpine_321.apk.build index 8771f31..2bc1af0 100644 --- a/builder/dockerfile.alpine_321.apk.build +++ b/builder/dockerfile.alpine_321.apk.build @@ -8,12 +8,12 @@ WORKDIR $HOME/kasmvncserver ARG KASMVNC_ALPINE_PRIVATE_KEY ARG KASMVNC_ALPINE_PUBLIC_KEY -ENV APK_KEYS_DIR=/etc/apk/keys -RUN echo -n "$KASMVNC_ALPINE_PRIVATE_KEY" > \ - $APK_KEYS_DIR/kasmvnc_signing_key.rsa -RUN echo -n "$KASMVNC_ALPINE_PUBLIC_KEY" > \ - $APK_KEYS_DIR/kasmvnc_signing_key.rsa.pub + +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 From 8dc2dca965c8700010b3eb2ebcf1c968facff433 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sun, 9 Mar 2025 18:32:48 +1300 Subject: [PATCH 43/61] KASM-6904 CI: build for all distros --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 564640b..3279217 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,7 +10,7 @@ variables: # E.g. BUILD_JOBS: build_debian_buster,build_ubuntu_bionic. 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: build_alpine_321 + BUILD_JOBS: all DOCKER_HOST: tcp://docker:2375 DOCKER_TLS_CERTDIR: "" From 471a6813e4704ce4580f43e081d32d7a0abd61f0 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sun, 9 Mar 2025 19:38:01 +1300 Subject: [PATCH 44/61] KASM-6904 Alpine dev env: add apk-del-add command --- alpine/apk-del-add | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100755 alpine/apk-del-add diff --git a/alpine/apk-del-add b/alpine/apk-del-add new file mode 100755 index 0000000..f4840cd --- /dev/null +++ b/alpine/apk-del-add @@ -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 From 5eb189d8ae1e041c1cbc536f7ce72e76c4ca7094 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Mon, 10 Mar 2025 15:42:09 +1300 Subject: [PATCH 45/61] KASM-6904 Alpine: depend on libxtst --- alpine/kasmvncserver/APKBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/alpine/kasmvncserver/APKBUILD b/alpine/kasmvncserver/APKBUILD index e67e4c2..0030b35 100644 --- a/alpine/kasmvncserver/APKBUILD +++ b/alpine/kasmvncserver/APKBUILD @@ -16,6 +16,7 @@ depends=" libwebp libxfont2 libxshmfence + libxtst mcookie mesa-gbm openssl From d932af7456132ada759db57dbaab48bcc594a6bf Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Mon, 10 Mar 2025 15:43:35 +1300 Subject: [PATCH 46/61] KASM-6904 Build only Alpine 3.21 arm --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3279217..d13eabc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,7 +10,7 @@ variables: # E.g. BUILD_JOBS: build_debian_buster,build_ubuntu_bionic. 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 + BUILD_JOBS: build_alpine_321_arm DOCKER_HOST: tcp://docker:2375 DOCKER_TLS_CERTDIR: "" From abf4cb846c8abfd99a3eb34d6070d3bcb6f63440 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Mon, 10 Mar 2025 15:51:00 +1300 Subject: [PATCH 47/61] Revert "KASM-6904 Build only Alpine 3.21 arm" This reverts commit d932af7456132ada759db57dbaab48bcc594a6bf. --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d13eabc..3279217 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,7 +10,7 @@ variables: # E.g. BUILD_JOBS: build_debian_buster,build_ubuntu_bionic. 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: build_alpine_321_arm + BUILD_JOBS: all DOCKER_HOST: tcp://docker:2375 DOCKER_TLS_CERTDIR: "" From bfbb4fb88ffaab8d4874f5fc1f2cf354c93c70fc Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Mon, 10 Mar 2025 16:53:34 +1300 Subject: [PATCH 48/61] KASM-6904 Git ignore Alpine artifacts --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index f4a278e..2fa2d43 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,7 @@ debian/kasmvncserver.substvars debian/kasmvncserver/ .pc .vscode/ + +alpine/.abuild/kasmvnc_signing_key.rsa +alpine/.abuild/kasmvnc_signing_key.rsa.pub +alpine/packages/ From fe28be2dc01db621be24258001fd8c39560ad933 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Mon, 10 Mar 2025 18:12:08 +1300 Subject: [PATCH 49/61] KASM-6904 Add arch to Alpine packages --- .ci/detect_os_arch_package_format | 2 ++ builder/build-apk-inside-docker | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/.ci/detect_os_arch_package_format b/.ci/detect_os_arch_package_format index dc76376..adf4a56 100755 --- a/.ci/detect_os_arch_package_format +++ b/.ci/detect_os_arch_package_format @@ -4,8 +4,10 @@ package_name = ARGV.first DEB_PACKAGE_REGEX = %r!(?[^/]+)/kasmvncserver_.+?_(?.+?).(?deb)! RPM_PACKAGE_REGEX = %r!(?[^/]+)/kasmvncserver-.+?\.(?[^.]+).(?rpm)! +ALPINE_PACKAGE_REGEX = %r!(?[^/]+)/kasmvncserver-.+?-r\d+_(?[^.]+)\.(?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 diff --git a/builder/build-apk-inside-docker b/builder/build-apk-inside-docker index e221814..75322e3 100755 --- a/builder/build-apk-inside-docker +++ b/builder/build-apk-inside-docker @@ -2,6 +2,12 @@ set -e +add_arch_to_apk_package() { + package_name=$(ls *.apk | grep -v kasmvncserver-doc) + new_package_name=$(echo "$package_name" | sed -e 's/\(-r[[:digit:]]\+\)/\1_'$(arch)/) + $sudo_cmd mv "$package_name" "$new_package_name" +} + 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/ @@ -10,5 +16,6 @@ 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_package ) $sudo_cmd mv \ /src/alpine/packages/alpine/$(arch)/*.apk /src/builder/build/${os}_${os_codename}/ From 1cb0a6a3b95402ea087f1732ba494492236c6382 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Wed, 12 Mar 2025 16:05:44 +1300 Subject: [PATCH 50/61] KASM-6904 CI: upload apk --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3279217..bb63d3b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -900,7 +900,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; From 71e0409e644014f50064381243b8f3fd8dd8c6c8 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Wed, 12 Mar 2025 16:07:24 +1300 Subject: [PATCH 51/61] KASM-6904 Build only Alpine 3.21 --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bb63d3b..58bc14c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,7 +10,7 @@ variables: # E.g. BUILD_JOBS: build_debian_buster,build_ubuntu_bionic. 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 + BUILD_JOBS: build_alpine_321 DOCKER_HOST: tcp://docker:2375 DOCKER_TLS_CERTDIR: "" From c6e84e4d8f8a603e0ce12fb4f026a28e6ef4f6d5 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Wed, 12 Mar 2025 16:17:59 +1300 Subject: [PATCH 52/61] KASM-6904 Debug CI --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 58bc14c..7784673 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -900,6 +900,7 @@ upload: - export S3_BUILD_DIRECTORY="kasmvnc/${CI_COMMIT_SHA}" - export RELEASE_VERSION=$(.ci/next_release_version "$CI_COMMIT_REF_NAME") - uploaded_files=() + - set -x; find output/ -type f -name '*.deb' -or -name '*.rpm' -or -name '*.apk'`; - 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"; From 03239db5cff7badd8133bba7d3a198c874ee0d68 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Wed, 12 Mar 2025 16:29:00 +1300 Subject: [PATCH 53/61] KASM-6904 Debug CI --- .gitlab-ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7784673..8cd1e80 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,7 +22,7 @@ workflow: stages: - www - build - - test + # - test - upload .prepare_build: &prepare_build @@ -900,7 +900,6 @@ upload: - export S3_BUILD_DIRECTORY="kasmvnc/${CI_COMMIT_SHA}" - export RELEASE_VERSION=$(.ci/next_release_version "$CI_COMMIT_REF_NAME") - uploaded_files=() - - set -x; find output/ -type f -name '*.deb' -or -name '*.rpm' -or -name '*.apk'`; - 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"; From 2912aa653ca867c7ecc6ec0fd31f805925b2192d Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Wed, 12 Mar 2025 16:29:46 +1300 Subject: [PATCH 54/61] KASM-6904 Debug CI --- .gitlab-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8cd1e80..1020c2d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,7 +22,6 @@ workflow: stages: - www - build - # - test - upload .prepare_build: &prepare_build From 2bd7e9497a8ce0958cda683e22572ec96be1c315 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Wed, 12 Mar 2025 16:32:48 +1300 Subject: [PATCH 55/61] KASM-6904 Debug CI --- .gitlab-ci.yml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1020c2d..4bda2a7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,6 +22,7 @@ workflow: stages: - www - build +# - test - upload .prepare_build: &prepare_build @@ -712,14 +713,14 @@ build_alpine_317_arm: paths: - output/ -test: - stage: test - tags: - - oci-fixed-amd - before_script: - - *prepare_build - script: - - bash builder/test-vncserver +# test: +# stage: test +# tags: +# - oci-fixed-amd +# before_script: +# - *prepare_build +# script: +# - bash builder/test-vncserver build_alpine_318: From 47b95c4659170b14c9ee120d42031ab9646b3a97 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Thu, 13 Mar 2025 16:18:39 +1300 Subject: [PATCH 56/61] KASM-6904 Restore CI test stage --- .gitlab-ci.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4bda2a7..bb63d3b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,7 +10,7 @@ variables: # E.g. BUILD_JOBS: build_debian_buster,build_ubuntu_bionic. 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: build_alpine_321 + BUILD_JOBS: all DOCKER_HOST: tcp://docker:2375 DOCKER_TLS_CERTDIR: "" @@ -22,7 +22,7 @@ workflow: stages: - www - build -# - test + - test - upload .prepare_build: &prepare_build @@ -713,14 +713,14 @@ build_alpine_317_arm: paths: - output/ -# test: -# stage: test -# tags: -# - oci-fixed-amd -# before_script: -# - *prepare_build -# script: -# - bash builder/test-vncserver +test: + stage: test + tags: + - oci-fixed-amd + before_script: + - *prepare_build + script: + - bash builder/test-vncserver build_alpine_318: From 254f4d38f0ecb80889a4a43dcd820fdeab7b0f73 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Thu, 13 Mar 2025 17:19:38 +1300 Subject: [PATCH 57/61] KASM-6904 bump-package-version: support Alpine --- builder/bump-package-version | 6 ++++++ builder/bump-package-version-apk | 14 ++++++++++++++ 2 files changed, 20 insertions(+) create mode 100755 builder/bump-package-version-apk diff --git a/builder/bump-package-version b/builder/bump-package-version index 4e09e42..6f6824e 100755 --- a/builder/bump-package-version +++ b/builder/bump-package-version @@ -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 diff --git a/builder/bump-package-version-apk b/builder/bump-package-version-apk new file mode 100755 index 0000000..60e778b --- /dev/null +++ b/builder/bump-package-version-apk @@ -0,0 +1,14 @@ +#!/bin/bash + +set -eo pipefail +set -x + +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 From 7f52b7ffc2d27b98ef978ac09972bfce39445a7d Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Thu, 13 Mar 2025 20:19:55 +1300 Subject: [PATCH 58/61] KASM-6904 Alpine: use common naming for kasmvncserver-doc package --- .ci/detect_os_arch_package_format | 2 +- .ci/upload.sh | 2 +- builder/build-apk-inside-docker | 11 +++++++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.ci/detect_os_arch_package_format b/.ci/detect_os_arch_package_format index adf4a56..6b12647 100755 --- a/.ci/detect_os_arch_package_format +++ b/.ci/detect_os_arch_package_format @@ -4,7 +4,7 @@ package_name = ARGV.first DEB_PACKAGE_REGEX = %r!(?[^/]+)/kasmvncserver_.+?_(?.+?).(?deb)! RPM_PACKAGE_REGEX = %r!(?[^/]+)/kasmvncserver-.+?\.(?[^.]+).(?rpm)! -ALPINE_PACKAGE_REGEX = %r!(?[^/]+)/kasmvncserver-.+?-r\d+_(?[^.]+)\.(?apk)! +ALPINE_PACKAGE_REGEX = %r!(?[^/]+)/kasmvncserver-(doc-)?.+?-r\d+_(?[^.]+)\.(?apk)! if matches = package_name.match(DEB_PACKAGE_REGEX) elsif matches = package_name.match(ALPINE_PACKAGE_REGEX) diff --git a/.ci/upload.sh b/.ci/upload.sh index fc6aeb1..9200c8e 100644 --- a/.ci/upload.sh +++ b/.ci/upload.sh @@ -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() { diff --git a/builder/build-apk-inside-docker b/builder/build-apk-inside-docker index 75322e3..4d7841b 100755 --- a/builder/build-apk-inside-docker +++ b/builder/build-apk-inside-docker @@ -3,11 +3,18 @@ set -e add_arch_to_apk_package() { - package_name=$(ls *.apk | grep -v kasmvncserver-doc) + 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/ @@ -16,6 +23,6 @@ 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_package ) +( 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}/ From ebe5855d6df981652e29f6dc74f1a860809f9cb8 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Fri, 14 Mar 2025 15:23:30 +1300 Subject: [PATCH 59/61] KASM-6901 Alpine: upload doc package --- .ci/upload.sh | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.ci/upload.sh b/.ci/upload.sh index 9200c8e..cc51e50 100644 --- a/.ci/upload.sh +++ b/.ci/upload.sh @@ -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 }; From 035709529668bb27607f20fab473b1010aad92d6 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Fri, 14 Mar 2025 16:22:19 +1300 Subject: [PATCH 60/61] KASM-6904 Refactor --- alpine/kasmvncserver/APKBUILD | 37 +++++++++++++++++------------------ 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/alpine/kasmvncserver/APKBUILD b/alpine/kasmvncserver/APKBUILD index 0030b35..b98d00b 100644 --- a/alpine/kasmvncserver/APKBUILD +++ b/alpine/kasmvncserver/APKBUILD @@ -73,30 +73,29 @@ package() { export SRC="$srcdir/usr/local"; export SRC_BIN="$SRC/bin"; export DESTDIR="$pkgdir"; - export DST_MAN="$DESTDIR/usr/share/man/man1"; echo "installing files"; - mkdir -p $pkgdir/usr/bin $pkgdir/usr/lib \ - $pkgdir/usr/share/perl5/vendor_perl $pkgdir/etc/kasmvnc; - cp $SRC_BIN/Xvnc $pkgdir/usr/bin/Xkasmvnc; - cd $pkgdir/usr/bin/ && ln -s Xkasmvnc Xvnc; - cp $SRC_BIN/vncserver $pkgdir/usr/bin/kasmvncserver; - cd $pkgdir/usr/bin/ && ln -s kasmvncserver vncserver; - cp -r $SRC_BIN/KasmVNC $pkgdir/usr/share/perl5/vendor_perl; - cp $SRC_BIN/vncconfig $pkgdir/usr/bin/kasmvncconfig; - cp $SRC_BIN/kasmvncpasswd $pkgdir/usr/bin/; - cd $pkgdir/usr/bin/ && ln -s kasmvncpasswd vncpasswd; - cp $SRC_BIN/kasmxproxy $pkgdir/usr/bin/; - cp -r $SRC/lib/kasmvnc/ $pkgdir/usr/lib/kasmvncserver; + 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 $pkgdir/usr/share; + $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 > \ - $pkgdir/etc/kasmvnc/kasmvnc.yaml; + $DESTDIR/etc/kasmvnc/kasmvnc.yaml; } doc() { @@ -106,10 +105,10 @@ doc() { export DESTDIR="$subpkgdir"; export DST_MAN="$DESTDIR/usr/share/man/man1"; - mkdir -p $subpkgdir/usr/share/man/man1 \ - $subpkgdir/usr/share/doc/kasmvncserver - cp -r $SRC/share/doc/kasmvnc*/* $subpkgdir/usr/share/doc/kasmvncserver/ - cp $SRC/man/man1/Xvnc.1 $subpkgdir/usr/share/man/man1/Xkasmvnc.1 + 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 From d9131dc9886f0013987cdc711857f77cf012898f Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Fri, 14 Mar 2025 16:27:22 +1300 Subject: [PATCH 61/61] KASM-6904 bump-package-version-apk: disable debug output --- builder/bump-package-version-apk | 1 - 1 file changed, 1 deletion(-) diff --git a/builder/bump-package-version-apk b/builder/bump-package-version-apk index 60e778b..adf77fe 100755 --- a/builder/bump-package-version-apk +++ b/builder/bump-package-version-apk @@ -1,7 +1,6 @@ #!/bin/bash set -eo pipefail -set -x new_version="$1" spec_file=alpine/kasmvncserver/APKBUILD