Skip to content

Commit 67e4cff

Browse files
committed
#139 fix wlroots crash in pixman mode, add selkies desktop init mode
1 parent 4daef77 commit 67e4cff

6 files changed

Lines changed: 413 additions & 1 deletion

File tree

Dockerfile

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,57 @@ RUN \
6969
build/wtype \
7070
/usr/bin/wtype
7171

72+
FROM ghcr.io/linuxserver/baseimage-debian:trixie AS wlroots
73+
74+
RUN \
75+
echo "**** wlroots build deps ****" && \
76+
apt-get update && \
77+
DEBIAN_FRONTEND=noninteractive apt-get install -y \
78+
dpkg-dev \
79+
devscripts \
80+
quilt && \
81+
apt-get build-dep -y \
82+
libwlroots-0.18
83+
84+
COPY /pixman-patch/pass.c /pass.c
85+
86+
RUN \
87+
echo "**** ingest current source and build deb ****" && \
88+
mkdir /debout && \
89+
cd /tmp && \
90+
apt-get source libwlroots-0.18 && \
91+
cd wlroots-0.18* && \
92+
cp \
93+
/pass.c \
94+
render/pixman/pass.c && \
95+
DEB_BUILD_OPTIONS='nocheck' dpkg-buildpackage -d -us -uc -b && \
96+
cp \
97+
../libwlroots-0.18_*.deb \
98+
/debout/wl.deb
99+
100+
FROM ghcr.io/linuxserver/baseimage-debian:trixie AS selkies-desktop
101+
102+
RUN \
103+
echo "**** selkies-desktop build deps ****" && \
104+
apt-get update && \
105+
apt-get install -y \
106+
build-essential \
107+
git \
108+
libcairo2-dev \
109+
libwayland-dev \
110+
wayland-protocols
111+
112+
RUN \
113+
echo "**** build selkies-desktop ****" && \
114+
cd /tmp && \
115+
git clone \
116+
https://github.com/selkies-project/selkies-desktop.git && \
117+
cd selkies-desktop && \
118+
make && \
119+
mv \
120+
selkies-desktop \
121+
/usr/bin/selkies-desktop
122+
72123
# Runtime stage
73124
FROM ghcr.io/linuxserver/baseimage-debian:trixie
74125

@@ -90,6 +141,8 @@ ENV DISPLAY=:1 \
90141
DISABLE_DRI3=false \
91142
TITLE=Selkies
92143

144+
COPY --from=wlroots /debout/wl.deb /tmp/wl.deb
145+
93146
RUN \
94147
echo "**** dev deps ****" && \
95148
apt-get update && \
@@ -139,6 +192,7 @@ RUN \
139192
libgcrypt20 \
140193
libgirepository-1.0-1 \
141194
libgl1-mesa-dri \
195+
libglib2.0-bin \
142196
libglu1-mesa \
143197
libgnutls30 \
144198
libgtk-3.0 \
@@ -222,6 +276,9 @@ RUN \
222276
xutils \
223277
xvfb \
224278
zlib1g && \
279+
echo "**** patched wlroots ****" && \
280+
apt-get --reinstall install --no-install-recommends --allow-downgrades -y \
281+
/tmp/wl.deb && \
225282
echo "**** install selkies ****" && \
226283
SELKIES_RELEASE=$(curl -sX GET "https://api.github.com/repos/selkies-project/selkies/releases/latest" \
227284
| awk '/tag_name/{print $4;exit}' FS='[""]') && \
@@ -321,6 +378,7 @@ COPY /root /
321378
COPY --from=frontend /buildout /usr/share/selkies
322379
COPY --from=xvfb / /
323380
COPY --from=wtype /usr/bin/wtype /usr/bin/wtype
381+
COPY --from=selkies-desktop /usr/bin/selkies-desktop /usr/bin/selkies-desktop
324382

325383
# ports and volumes
326384
EXPOSE 3000 3001

Dockerfile.aarch64

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,57 @@ RUN \
6969
build/wtype \
7070
/usr/bin/wtype
7171

72+
FROM ghcr.io/linuxserver/baseimage-debian:arm64v8-trixie AS wlroots
73+
74+
RUN \
75+
echo "**** wlroots build deps ****" && \
76+
apt-get update && \
77+
DEBIAN_FRONTEND=noninteractive apt-get install -y \
78+
dpkg-dev \
79+
devscripts \
80+
quilt && \
81+
apt-get build-dep -y \
82+
libwlroots-0.18
83+
84+
COPY /pixman-patch/pass.c /pass.c
85+
86+
RUN \
87+
echo "**** ingest current source and build deb ****" && \
88+
mkdir /debout && \
89+
cd /tmp && \
90+
apt-get source libwlroots-0.18 && \
91+
cd wlroots-0.18* && \
92+
cp \
93+
/pass.c \
94+
render/pixman/pass.c && \
95+
DEB_BUILD_OPTIONS='nocheck' dpkg-buildpackage -d -us -uc -b && \
96+
cp \
97+
../libwlroots-0.18_*.deb \
98+
/debout/wl.deb
99+
100+
FROM ghcr.io/linuxserver/baseimage-debian:arm64v8-trixie AS selkies-desktop
101+
102+
RUN \
103+
echo "**** selkies-desktop build deps ****" && \
104+
apt-get update && \
105+
apt-get install -y \
106+
build-essential \
107+
git \
108+
libcairo2-dev \
109+
libwayland-dev \
110+
wayland-protocols
111+
112+
RUN \
113+
echo "**** build selkies-desktop ****" && \
114+
cd /tmp && \
115+
git clone \
116+
https://github.com/selkies-project/selkies-desktop.git && \
117+
cd selkies-desktop && \
118+
make && \
119+
mv \
120+
selkies-desktop \
121+
/usr/bin/selkies-desktop
122+
72123
# Runtime stage
73124
FROM ghcr.io/linuxserver/baseimage-debian:arm64v8-trixie
74125

@@ -90,6 +141,8 @@ ENV DISPLAY=:1 \
90141
DISABLE_DRI3=false \
91142
TITLE=Selkies
92143

144+
COPY --from=wlroots /debout/wl.deb /tmp/wl.deb
145+
93146
RUN \
94147
echo "**** dev deps ****" && \
95148
apt-get update && \
@@ -138,6 +191,7 @@ RUN \
138191
libgcrypt20 \
139192
libgirepository-1.0-1 \
140193
libgl1-mesa-dri \
194+
libglib2.0-bin \
141195
libglu1-mesa \
142196
libgnutls30 \
143197
libgtk-3.0 \
@@ -220,6 +274,9 @@ RUN \
220274
xutils \
221275
xvfb \
222276
zlib1g && \
277+
echo "**** patched wlroots ****" && \
278+
apt-get --reinstall install --no-install-recommends --allow-downgrades -y \
279+
/tmp/wl.deb && \
223280
echo "**** install selkies ****" && \
224281
SELKIES_RELEASE=$(curl -sX GET "https://api.github.com/repos/selkies-project/selkies/releases/latest" \
225282
| awk '/tag_name/{print $4;exit}' FS='[""]') && \
@@ -319,6 +376,7 @@ COPY /root /
319376
COPY --from=frontend /buildout /usr/share/selkies
320377
COPY --from=xvfb / /
321378
COPY --from=wtype /usr/bin/wtype /usr/bin/wtype
379+
COPY --from=selkies-desktop /usr/bin/selkies-desktop /usr/bin/selkies-desktop
322380

323381
# ports and volumes
324382
EXPOSE 3000 3001

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ All application settings are passed via environment variables:
2929
| Variable | Description |
3030
| :----: | --- |
3131
| PIXELFLUX_WAYLAND | **Experimental** If set to true the container will initialize in Wayland mode running [Smithay](https://github.com/Smithay/smithay) and Labwc while enabling zero copy encoding with a GPU |
32+
| SELKIES_DESKTOP | If set to true and in Wayland mode, a simple panel will be initialized with labwc |
3233
| CUSTOM_PORT | Internal port the container listens on for http if it needs to be swapped from the default 3000 |
3334
| CUSTOM_HTTPS_PORT | Internal port the container listens on for https if it needs to be swapped from the default 3001 |
3435
| CUSTOM_WS_PORT | Internal port the container listens on for websockets if it needs to be swapped from the default 8082 |

0 commit comments

Comments
 (0)