Merge branch 'feature/VNC-322-build-alpine-3.22-and-3.23' into 'master'

Revert "VNC-151 Add CMake 3.22 installer in Dockerfile"

Closes VNC-322

See merge request kasm-technologies/internal/KasmVNC!233
This commit is contained in:
Matthew McClaskey 2026-03-24 09:21:41 +00:00
commit d9b4772680
14 changed files with 73 additions and 153 deletions

View file

@ -80,14 +80,12 @@ stages:
GROUP: 11
- DISTRO: 'fedora 43'
GROUP: 12
- DISTRO: 'alpine 318'
GROUP: 13
- DISTRO: 'alpine 319'
GROUP: 14
- DISTRO: 'alpine 320'
GROUP: 15
- DISTRO: 'alpine 321'
GROUP: 16
GROUP: 13
- DISTRO: 'alpine 322'
GROUP: 14
- DISTRO: 'alpine 323'
GROUP: 15
default:
retry: 2

View file

@ -23,6 +23,41 @@ builder/build-package kali kali-rolling
builder/build-package fedora thirtythree
```
# Build an apk package
## Requirements
Building an apk package requires a signing key to be present in environment.
For example:
```sh
KASMVNC_ALPINE_PRIVATE_KEY=$(cat <<EOF
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
EOF
)
KASMVNC_ALPINE_PUBLIC_KEY=$(cat <<EOF
-----BEGIN PUBLIC KEY-----
...
-----END PUBLIC KEY-----
EOF
)
export KASMVNC_ALPINE_PRIVATE_KEY
export KASMVNC_ALPINE_PUBLIC_KEY
```
You can create a signing key by using:
```sh
apk add abuild
abuild-keygen -a
```
## Building
```sh
builder/build-package alpine 321
```
# Build and test a package
```
builder/build-and-test-deb ubuntu focal

View file

@ -154,6 +154,8 @@ elif [ -d /usr/lib/arm-linux-gnueabihf/dri ]; then
ln -sfn /usr/lib/arm-linux-gnueabihf/dri dri
elif [ -d /usr/lib/xorg/modules/dri ]; then
ln -sfn /usr/lib/xorg/modules/dri dri
elif [ -d /usr/lib/dri ]; then
ln -sfn /usr/lib/dri dri
else
ln -sfn /usr/lib64/dri dri
fi

View file

@ -1,89 +0,0 @@
FROM alpine:3.18
ENV KASMVNC_BUILD_OS alpine
ENV KASMVNC_BUILD_OS_CODENAME 318
ENV XORG_VER 21.1.10
RUN \
echo "**** install build deps ****" && \
apk add --no-cache \
alpine-release \
alpine-sdk \
autoconf \
automake \
bash \
ca-certificates \
cmake \
nasm \
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 \
libva-dev \
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-va-gallium \
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 \
ffmpeg-dev \
libdrm-dev
RUN if [ "$(uname -m)" = "x86_64" ]; then \
apk add --no-cache intel-media-driver; \
fi
ENV SCRIPTS_DIR=/tmp/scripts
COPY builder/scripts $SCRIPTS_DIR
RUN $SCRIPTS_DIR/build-deps.sh
RUN useradd -m docker && echo "docker:docker" | chpasswd
COPY --chown=docker:docker . /src/
USER docker
ENTRYPOINT ["/src/builder/build.sh"]

View file

@ -1,19 +0,0 @@
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

View file

@ -1,19 +0,0 @@
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

View file

@ -1 +0,0 @@
dockerfile.alpine.barebones.apk.test

View file

@ -1,7 +1,7 @@
FROM alpine:3.17
FROM alpine:3.22
RUN apk add shadow bash
RUN apk add abuild sudo less
RUN apk add abuild sudo less ffmpeg-dev
ENV HOME /src/alpine
WORKDIR $HOME/kasmvncserver

View file

@ -1,8 +1,8 @@
FROM alpine:3.19
FROM alpine:3.22
ENV KASMVNC_BUILD_OS alpine
ENV KASMVNC_BUILD_OS_CODENAME 319
ENV XORG_VER 21.1.12
ENV KASMVNC_BUILD_OS_CODENAME 322
ENV XORG_VER 21.1.19
RUN \
echo "**** install build deps ****" && \
@ -43,7 +43,6 @@ RUN \
libxrandr-dev \
libxshmfence-dev \
libxtst-dev \
libva-dev \
mesa-dev \
mesa-dri-gallium \
mesa-va-gallium \
@ -71,7 +70,7 @@ RUN \
xorg-server-dev \
xtrans \
ffmpeg-dev \
libdrm-dev
libva-dev
RUN if [ "$(uname -m)" = "x86_64" ]; then \
apk add --no-cache intel-media-driver; \

View file

@ -1,7 +1,7 @@
FROM alpine:3.18
FROM alpine:3.23
RUN apk add shadow bash
RUN apk add abuild sudo less
RUN apk add abuild sudo less ffmpeg-dev
ENV HOME /src/alpine
WORKDIR $HOME/kasmvncserver

View file

@ -1,8 +1,8 @@
FROM alpine:3.20
FROM alpine:3.23
ENV KASMVNC_BUILD_OS alpine
ENV KASMVNC_BUILD_OS_CODENAME 320
ENV XORG_VER 21.1.14
ENV KASMVNC_BUILD_OS_CODENAME 323
ENV XORG_VER 21.1.21
RUN \
echo "**** install build deps ****" && \
@ -13,7 +13,6 @@ RUN \
automake \
bash \
ca-certificates \
cmake \
nasm \
coreutils \
curl \
@ -43,7 +42,6 @@ RUN \
libxrandr-dev \
libxshmfence-dev \
libxtst-dev \
libva-dev \
mesa-dev \
mesa-dri-gallium \
mesa-va-gallium \
@ -71,12 +69,15 @@ RUN \
xorg-server-dev \
xtrans \
ffmpeg-dev \
libdrm-dev
libva-dev
RUN if [ "$(uname -m)" = "x86_64" ]; then \
apk add --no-cache intel-media-driver; \
fi
RUN apk add python3 py3-pip
RUN pip install --break-system-packages cmake==3.22.6
ENV SCRIPTS_DIR=/tmp/scripts
COPY builder/scripts $SCRIPTS_DIR
RUN $SCRIPTS_DIR/build-deps.sh

View file

@ -15,15 +15,28 @@ RUN apt-get update && \
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata
RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev
RUN apt-get update && apt-get -y install gcc g++ curl
RUN apt-get update && apt-get -y install ninja-build cmake nasm git libgnutls28-dev vim wget tightvncserver
RUN apt-get update && apt-get -y install ninja-build nasm git libgnutls28-dev vim wget tightvncserver
RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev \
libxcursor-dev libavformat-dev libswscale-dev libva-dev
libxcursor-dev libavformat-dev libswscale-dev libva-dev libcrypt-dev
ENV SCRIPTS_DIR=/tmp/scripts
COPY builder/scripts $SCRIPTS_DIR
RUN ARCH=$(arch) && \
CMAKE_URL="https://cmake.org/files/v3.22/cmake-3.22.0" && \
if [ "$ARCH" = "x86_64" ]; then \
CMAKE_URL="${CMAKE_URL}-linux-x86_64.sh"; \
elif [ "$ARCH" = "aarch64" ]; then \
CMAKE_URL="${CMAKE_URL}-linux-aarch64.sh"; \
else \
echo "Unsupported architecture: $ARCH" && exit 1; \
fi && \
curl -fsSL $CMAKE_URL -o cmake.sh && \
(echo y; echo n) | bash cmake.sh --prefix=/usr/local --skip-license && \
rm cmake.sh
RUN $SCRIPTS_DIR/build-deps.sh
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
RUN useradd -m docker && echo "docker:docker" | chpasswd && usermod -aG sudo docker
COPY --chown=docker:docker . /src/