10 Commits

Author SHA1 Message Date
Chris Richardson b11206ea40 asd
Main / Build arm64v8 image (push) Failing after 1m12s
Main / Push arm64v8 image (push) Has been skipped
2025-07-10 18:26:50 -04:00
Héctor Molinero Fernández 208f30a208 v126 2025-06-21 13:50:39 +02:00
Héctor Molinero Fernández 933f557a3e Disable glx module if /dev/dri/ does not exist 2025-06-21 13:49:35 +02:00
Héctor Molinero Fernández 4a45adaa58 Use dummy driver in headless Xorg 2025-06-21 13:49:26 +02:00
Héctor Molinero Fernández 558f1ec368 Fix service enabling conditions for xrdp bootstrap and headless X server 2025-06-21 12:43:03 +02:00
Héctor Molinero Fernández 29799461a9 v125 2025-06-13 01:09:47 +02:00
Héctor Molinero Fernández a0a0b44fdc Add wlfreerdp script 2025-06-13 01:09:39 +02:00
Héctor Molinero Fernández cdbd8bdcec Update xrdp PulseAudio module to v0.8 2025-06-13 01:04:09 +02:00
Héctor Molinero Fernández fad6c80479 Update xorgxrdp to v0.10.4 2025-06-13 01:01:58 +02:00
Héctor Molinero Fernández bf90f2e2c9 Update xrdp to v0.10.3 2025-06-13 01:00:56 +02:00
6 changed files with 105 additions and 71 deletions
+32 -34
View File
@@ -19,7 +19,7 @@ jobs:
contents: "read"
strategy:
matrix:
arch: ["native", "amd64", "arm64v8"]
arch: ["arm64v8"]
steps:
- name: "Checkout project"
uses: "actions/checkout@v4"
@@ -47,7 +47,7 @@ jobs:
contents: "read"
strategy:
matrix:
arch: ["amd64", "arm64v8"]
arch: ["arm64v8"]
steps:
- name: "Checkout project"
uses: "actions/checkout@v4"
@@ -59,40 +59,38 @@ jobs:
- name: "Login to Docker Hub"
uses: "docker/login-action@v3"
with:
registry: "docker.io"
username: "${{ secrets.DOCKERHUB_USERNAME }}"
password: "${{ secrets.DOCKERHUB_TOKEN }}"
registry: "d.lilpenguins.com"
- name: "Load and push image"
run: |
make "load-${{ matrix.arch }}-image" "push-${{ matrix.arch }}-image"
push-manifest:
name: "Push manifest"
if: "startsWith(github.ref, 'refs/tags/v')"
needs: ["push"]
runs-on: "ubuntu-latest"
permissions:
contents: "read"
steps:
- name: "Checkout project"
uses: "actions/checkout@v4"
- name: "Login to Docker Hub"
uses: "docker/login-action@v3"
with:
registry: "docker.io"
username: "${{ secrets.DOCKERHUB_USERNAME }}"
password: "${{ secrets.DOCKERHUB_TOKEN }}"
- name: "Push manifest"
run: |
make push-cross-manifest
# push-manifest:
# name: "Push manifest"
# if: "startsWith(github.ref, 'refs/tags/v')"
# needs: ["push"]
# runs-on: "ubuntu-latest"
# permissions:
# contents: "read"
# steps:
# - name: "Checkout project"
# uses: "actions/checkout@v4"
# - name: "Login to Docker Hub"
# uses: "docker/login-action@v3"
# with:
# registry: "docker.io"
# username: "${{ secrets.DOCKERHUB_USERNAME }}"
# password: "${{ secrets.DOCKERHUB_TOKEN }}"
# - name: "Push manifest"
# run: |
# make push-cross-manifest
publish-github-release:
name: "Publish GitHub release"
if: "startsWith(github.ref, 'refs/tags/v')"
needs: ["push-manifest"]
runs-on: "ubuntu-latest"
permissions:
contents: "write"
steps:
- name: "Publish"
uses: "hectorm/ghaction-release@066200d04c3549852afa243d631ea3dc93390f68"
# publish-github-release:
# name: "Publish GitHub release"
# if: "startsWith(github.ref, 'refs/tags/v')"
# needs: ["push-manifest"]
# runs-on: "ubuntu-latest"
# permissions:
# contents: "write"
# steps:
# - name: "Publish"
# uses: "hectorm/ghaction-release@066200d04c3549852afa243d631ea3dc93390f68"
+6 -4
View File
@@ -4,7 +4,7 @@ m4_changequote([[, ]])
## "build" stage
##################################################
m4_ifdef([[CROSS_ARCH]], [[FROM docker.io/CROSS_ARCH/ubuntu:24.04]], [[FROM docker.io/ubuntu:24.04]]) AS build
m4_ifdef([[CROSS_ARCH]], [[FROM dtcooper/raspberrypi-os:latest]], [[FROM dtcooper/raspberrypi-os:latest]]) AS build
SHELL ["/bin/sh", "-euc"]
@@ -31,6 +31,7 @@ RUN <<-EOF
git \
intltool \
libbz2-dev \
libdrm-dev \
libegl-dev \
libegl1-mesa-dev \
libepoxy-dev \
@@ -73,6 +74,7 @@ RUN <<-EOF
x11-xkb-utils \
xauth \
xkb-data \
xserver-xorg-core \
xserver-xorg-dev \
xsltproc \
xutils-dev \
@@ -154,7 +156,7 @@ RUN <<-EOF
EOF
# Build xrdp
ARG XRDP_TREEISH=v0.10.2
ARG XRDP_TREEISH=v0.10.3
ARG XRDP_REMOTE=https://github.com/neutrinolabs/xrdp.git
WORKDIR /tmp/xrdp/
RUN <<-EOF
@@ -186,7 +188,7 @@ RUN <<-EOF
EOF
# Build xorgxrdp
ARG XORGXRDP_TREEISH=v0.10.3
ARG XORGXRDP_TREEISH=v0.10.4
ARG XORGXRDP_REMOTE=https://github.com/neutrinolabs/xorgxrdp.git
WORKDIR /tmp/xorgxrdp/
RUN <<-EOF
@@ -205,7 +207,7 @@ RUN <<-EOF
EOF
# Build xrdp PulseAudio module
ARG XRDP_PULSEAUDIO_TREEISH=v0.7
ARG XRDP_PULSEAUDIO_TREEISH=v0.8
ARG XRDP_PULSEAUDIO_REMOTE=https://github.com/neutrinolabs/pulseaudio-module-xrdp.git
WORKDIR /tmp/
RUN <<-EOF
+1 -6
View File
@@ -1,11 +1,7 @@
#!/bin/sh
if [ -z "${VGL_DISPLAY-}" ]; then
# Use the dummy X server if it is enabled
if [ "${SERVICE_XORG_HEADLESS_ENABLED:?}" = 'true' ]; then
export VGL_DISPLAY=:0.0
else
# Otherwise try to use the EGL backend
# Try to use the EGL backend
for card in /dev/dri/card*; do
if /opt/VirtualGL/bin/eglinfo -B "${card:?}" 2>/dev/null; then
export VGL_DISPLAY="${card:?}"
@@ -17,4 +13,3 @@ if [ -z "${VGL_DISPLAY-}" ]; then
export VGL_DISPLAY="${DISPLAY:?}"
fi
fi
fi
+30 -17
View File
@@ -1,30 +1,20 @@
Section "Module"
Load "xorgxrdp"
EndSection
Section "ServerLayout"
Identifier "ServerLayout0"
Screen "Screen0"
Disable "glx"
EndSection
Section "ServerFlags"
Option "DefaultServerLayout" "ServerLayout0"
Option "DontVTSwitch" "on"
Option "PciForceNone" "on"
Option "AutoAddDevices" "off"
Option "AutoAddGPU" "off"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
EndSection
Section "Device"
Identifier "Device0"
Driver "xrdpdev"
Option "DRMDevice" "/dev/dri/renderD128"
Option "DRI3" "1"
Section "ServerLayout"
Identifier "ServerLayout0"
Screen "Screen0"
InputDevice "Keyboard0"
InputDevice "Mouse0"
EndSection
Section "Screen"
@@ -35,3 +25,26 @@ Section "Screen"
Modes "800x600"
EndSubSection
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
EndSection
Section "Device"
Identifier "Device0"
Driver "dummy"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "void"
Option "CoreKeyboard" "true"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "void"
Option "CorePointer" "true"
EndSection
+8 -2
View File
@@ -67,13 +67,19 @@ if [ ! -d /run/user/"${UNPRIVILEGED_USER_UID:?}"/ ]; then
chown "${UNPRIVILEGED_USER_NAME:?}:" /run/user/"${UNPRIVILEGED_USER_UID:?}"/
fi
# Disable glx module if /dev/dri/ does not exist
if [ ! -d /dev/dri/ ]; then
printf '%s\n' '"/dev/dri/" does not exist, glx module will be disabled' 1>&2
sed -i 's|Load \("glx"\)|Disable \1|g' /opt/xrdp/etc/X11/xrdp/xorg.conf
fi
# Enable xrdp bootstrap service
if [ "${SERVICE_XRDP_BOOTSTRAP_ENABLED:?}" = 'true' ]; then
if [ "${SERVICE_XRDP_BOOTSTRAP_ENABLED:?}" = 'true' ] && [ ! -L "${SVDIR:?}"/xrdp-bootstrap ]; then
ln -s /etc/sv/xrdp-bootstrap "${SVDIR:?}"
fi
# Enable headless X server service
if [ "${SERVICE_XORG_HEADLESS_ENABLED:?}" = 'true' ]; then
if [ "${SERVICE_XORG_HEADLESS_ENABLED:?}" = 'true' ] && [ ! -L "${SVDIR:?}"/xorg-headless ]; then
ln -s /etc/sv/xorg-headless "${SVDIR:?}"
fi
Executable
+20
View File
@@ -0,0 +1,20 @@
#!/bin/sh
set -eu
export LC_ALL=C
RDP_HOST=127.0.0.1
RDP_PORT=3389
RDP_DOMAIN=Xorg
RDP_USER=user
RDP_PASSWORD=password
exec wlfreerdp3 \
/v:"${RDP_HOST:?}":"${RDP_PORT:?}" \
/u:"${RDP_DOMAIN:?}"\\"${RDP_USER:?}" /p:"${RDP_PASSWORD:?}" \
/log-level:INFO /cert:ignore \
/gfx:AVC444v2 /bpp:32 /dynamic-resolution \
/audio-mode:0 /sound:sys:pulse,rate:44100 \
/microphone:sys:pulse,rate:44100 \
+clipboard +home-drive \
-compression -encryption