From 222a88720dfc20d54dfcf3f56e2699bc93490370 Mon Sep 17 00:00:00 2001 From: thelamer Date: Tue, 5 May 2026 11:19:10 -0400 Subject: [PATCH 1/3] rebase to trixie, build from source, remove arm tag --- .github/ISSUE_TEMPLATE/issue.bug.yml | 1 - Dockerfile | 151 ++++++++++++++++++++++++--- Dockerfile.aarch64 | 45 -------- Jenkinsfile | 2 +- README.md | 5 +- jenkins-vars.yml | 2 +- readme-vars.yml | 4 +- root/defaults/menu_wayland.xml | 2 +- root/defaults/startwm.sh | 3 + 9 files changed, 148 insertions(+), 67 deletions(-) delete mode 100644 Dockerfile.aarch64 create mode 100755 root/defaults/startwm.sh diff --git a/.github/ISSUE_TEMPLATE/issue.bug.yml b/.github/ISSUE_TEMPLATE/issue.bug.yml index 9049762..87c183d 100644 --- a/.github/ISSUE_TEMPLATE/issue.bug.yml +++ b/.github/ISSUE_TEMPLATE/issue.bug.yml @@ -52,7 +52,6 @@ body: label: CPU architecture options: - x86-64 - - arm64 validations: required: true - type: textarea diff --git a/Dockerfile b/Dockerfile index 595ed88..4032fd9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,110 @@ +# syntax=docker/dockerfile:1 + +FROM ghcr.io/linuxserver/baseimage-selkies:debiantrixie AS buildstage + +ARG EDEN_VERSION + +RUN \ + echo "**** install build deps ****" && \ + apt-get update && \ + apt-get install -y \ + autoconf \ + cmake \ + g++ \ + gcc \ + git \ + glslang-tools \ + libasound2t64 \ + libavcodec-dev \ + libavfilter-dev \ + libboost-context-dev \ + libboost-fiber-dev \ + libcpp-httplib-dev \ + libcpp-jwt-dev \ + libcubeb-dev \ + libenet-dev \ + libfmt-dev \ + libglu1-mesa-dev \ + libhidapi-dev \ + liblz4-dev \ + libopus-dev \ + libpulse-dev \ + libqt6core5compat6 \ + libquazip1-qt6-dev \ + libsdl2-dev \ + libsimpleini-dev \ + libssl-dev \ + libswscale-dev \ + libtool \ + libudev-dev \ + libusb-1.0-0-dev \ + libva-dev \ + libvdpau-dev \ + libvulkan-dev \ + libxcb-icccm4 \ + libxcb-image0 \ + libxcb-keysyms1 \ + libxcb-render-util0 \ + libxcb-xinerama0 \ + libxcb-xkb1 \ + libxext-dev \ + libxkbcommon-x11-0 \ + libzstd-dev \ + mesa-common-dev \ + nasm \ + ninja-build \ + nlohmann-json3-dev \ + patch \ + pkg-config \ + qt6-base-private-dev \ + qt6-charts-dev \ + qt6-multimedia-dev \ + qt6-tools-dev \ + qt6-webengine-dev \ + spirv-headers \ + spirv-tools \ + zlib1g-dev + +RUN \ + echo "**** build eden ****" && \ + mkdir /root-out && \ + if [ -z ${EDEN_VERSION+x} ]; then \ + EDEN_VERSION=$(curl -sX GET 'https://git.eden-emu.dev/api/v1/repos/eden-emu/eden/releases/latest' \ + | awk '/tag_name/{print $6;exit}' FS='[""]'); \ + fi && \ + git clone https://git.eden-emu.dev/eden-emu/eden.git && \ + cd eden/ && \ + git checkout -f ${EDEN_VERSION} && \ + cmake -B build -GNinja \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=None \ + -DCMAKE_C_FLAGS="-march=x86-64-v3 -O2" \ + -DCMAKE_CXX_FLAGS="-march=x86-64-v3 -O2" \ + -DUSE_DISCORD_PRESENCE=ON \ + -DYUZU_ENABLE_LTO=OFF \ + -DYUZU_USE_CPM=OFF \ + -DCPM_USE_LOCAL_PACKAGES=ON \ + -DYUZU_USE_BUNDLED_FFMPEG=OFF \ + -DYUZU_USE_BUNDLED_SDL2=OFF \ + -DYUZU_USE_EXTERNAL_SDL2=OFF \ + -DYUZU_USE_BUNDLED_QT=OFF \ + -DENABLE_QT_TRANSLATION=ON \ + -DYUZU_USE_QT_MULTIMEDIA=ON \ + -DYUZU_USE_QT_WEB_ENGINE=ON \ + -Dhttplib_FORCE_BUNDLED=ON \ + -DTITLE_BAR_FORMAT_RUNNING="eden | ${EDEN_VERSION} {}" \ + -DTITLE_BAR_FORMAT_IDLE="eden ${EDEN_VERSION} {}" \ + -DYUZU_TESTS=OFF \ + -DDYNARMIC_TESTS=OFF \ + -DBUILD_TESTING=OFF \ + -Wno-dev && \ + cmake --build build && \ + mv \ + build/bin/* \ + /root-out/ + + +# Runtime Stage FROM ghcr.io/linuxserver/baseimage-selkies:debiantrixie # set version label @@ -7,8 +114,7 @@ ARG EDEN_VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="thelamer" -ENV TITLE=Eden \ - PIXELFLUX_WAYLAND=true +ENV TITLE=Eden RUN \ echo "**** add icon ****" && \ @@ -17,18 +123,30 @@ RUN \ https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/eden-logo.png && \ echo "**** install packages ****" && \ apt-get update && \ - DEBIAN_FRONTEND=noninteractive \ - echo "**** install eden ****" && \ - if [ -z ${EDEN_VERSION+x} ]; then \ - EDEN_VERSION=$(curl -sX GET "https://git.eden-emu.dev/api/v1/repos/eden-emu/eden/releases/latest" \ - | awk '/tag_name/{print $6;exit}' FS='[""]'); \ - fi && \ - curl -o \ - /tmp/eden.deb -L \ - "https://git.eden-emu.dev/eden-emu/eden/releases/download/${EDEN_VERSION}/Eden-Debian-13-${EDEN_VERSION}-amd64.deb" && \ - apt-get install -y \ - /tmp/eden.deb && \ + apt-get install -y --no-install-recommends \ + libavcodec61 \ + libboost-context1.83.0 \ + libboost-filesystem1.83.0 \ + libcubeb0 \ + libenet7 \ + libfmt10 \ + liblz4-1 \ + libopus0 \ + libqt6charts6 \ + libqt6multimedia6 \ + libqt6webenginewidgets6 \ + libquazip1-qt6-1t64 \ + libsdl2-2.0-0 \ + libsimpleini1t64 \ + libssl3t64 \ + libusb-1.0-0 \ + libxcb-cursor0 \ + libzstd1 \ + qt6-wayland && \ echo "**** cleanup ****" && \ + printf \ + "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" \ + > /build_version && \ apt-get autoclean && \ rm -rf \ /config/.cache \ @@ -37,9 +155,10 @@ RUN \ /var/tmp/* \ /tmp/* -# add local files -COPY /root / +# add local files and files from buildstage +COPY --from=buildstage /root-out/* /usr/bin/ +COPY root/ / # ports and volumes -EXPOSE 3001 VOLUME /config +EXPOSE 3001 diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 deleted file mode 100644 index 2d40f72..0000000 --- a/Dockerfile.aarch64 +++ /dev/null @@ -1,45 +0,0 @@ -FROM ghcr.io/linuxserver/baseimage-selkies:arm64v8-debiantrixie - -# set version label -ARG BUILD_DATE -ARG VERSION -ARG EDEN_VERSION -LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" -LABEL maintainer="thelamer" - -ENV TITLE=Eden \ - PIXELFLUX_WAYLAND=true - -RUN \ - echo "**** add icon ****" && \ - curl -o \ - /usr/share/selkies/www/icon.png \ - https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/eden-logo.png && \ - echo "**** install packages ****" && \ - apt-get update && \ - DEBIAN_FRONTEND=noninteractive \ - echo "**** install eden ****" && \ - if [ -z ${EDEN_VERSION+x} ]; then \ - EDEN_VERSION=$(curl -sX GET "https://git.eden-emu.dev/api/v1/repos/eden-emu/eden/releases/latest" \ - | awk '/tag_name/{print $6;exit}' FS='[""]'); \ - fi && \ - curl -o \ - /tmp/eden.deb -L \ - "https://git.eden-emu.dev/eden-emu/eden/releases/download/${EDEN_VERSION}/Eden-Debian-13-${EDEN_VERSION}-aarch64.deb" && \ - apt-get install -y \ - /tmp/eden.deb && \ - echo "**** cleanup ****" && \ - apt-get autoclean && \ - rm -rf \ - /config/.cache \ - /config/.launchpadlib \ - /var/lib/apt/lists/* \ - /var/tmp/* \ - /tmp/* - -# add local files -COPY /root / - -# ports and volumes -EXPOSE 3001 -VOLUME /config diff --git a/Jenkinsfile b/Jenkinsfile index a3b05fc..6c2cdbb 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -29,7 +29,7 @@ pipeline { DEV_DOCKERHUB_IMAGE = 'lsiodev/eden' PR_DOCKERHUB_IMAGE = 'lspipepr/eden' DIST_IMAGE = 'debian' - MULTIARCH = 'true' + MULTIARCH = 'false' CI = 'true' CI_WEB = 'true' CI_PORT = '3001' diff --git a/README.md b/README.md index 7ae1d5e..6f54148 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ The architectures supported by this image are: | Architecture | Available | Tag | | :----: | :----: | ---- | | x86-64 | ✅ | amd64-\ | -| arm64 | ✅ | arm64v8-\ | +| arm64 | ❌ | | ## Application Setup @@ -60,6 +60,8 @@ The application can be accessed at: * https://yourhost:3001/ +**This image only runs in Wayland mode and should be run with a GPU** + ### Strict reverse proxies This image uses a self-signed certificate by default. This naturally means the scheme is `https`. @@ -639,5 +641,6 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **05.05.26:** - Rebase to Debian Trixie, build Eden from source, remove arm64 tag. * **17.03.26:** - Ingest releases from self hosted git. * **18.02.26:** - Initial Version. diff --git a/jenkins-vars.yml b/jenkins-vars.yml index 952bc92..67825b7 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -19,7 +19,7 @@ repo_vars: - DEV_DOCKERHUB_IMAGE = 'lsiodev/eden' - PR_DOCKERHUB_IMAGE = 'lspipepr/eden' - DIST_IMAGE = 'debian' - - MULTIARCH = 'true' + - MULTIARCH = 'false' - CI = 'true' - CI_WEB = 'true' - CI_PORT = '3001' diff --git a/readme-vars.yml b/readme-vars.yml index 4da6287..c5d6245 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -11,7 +11,6 @@ project_categories: "Games" # supported architectures available_architectures: - {arch: "{{ arch_x86_64 }}", tag: "latest"} - - {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"} # development version development_versions: false # container parameters @@ -35,6 +34,8 @@ app_setup_block: | The application can be accessed at: * https://yourhost:3001/ + + **This image only runs in Wayland mode and should be run with a GPU** # init diagram init_diagram: | "eden:latest": { @@ -107,5 +108,6 @@ init_diagram: | "eden:latest" <- Base Images # changelog changelogs: + - {date: "05.05.26:", desc: "Rebase to Debian Trixie, build Eden from source, remove arm64 tag."} - {date: "17.03.26:", desc: "Ingest releases from self hosted git."} - {date: "18.02.26:", desc: "Initial Version."} diff --git a/root/defaults/menu_wayland.xml b/root/defaults/menu_wayland.xml index 24c8543..00e3422 100644 --- a/root/defaults/menu_wayland.xml +++ b/root/defaults/menu_wayland.xml @@ -2,6 +2,6 @@ /usr/bin/foot -foot -e /usr/bin/eden +foot -e /usr/bin/eden diff --git a/root/defaults/startwm.sh b/root/defaults/startwm.sh new file mode 100755 index 0000000..2b0bc83 --- /dev/null +++ b/root/defaults/startwm.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +xterm -e sh -c 'echo "Your platform is not supported, ensure you have a CPU with AVX2 support"; sleep infinity' From eb63f0098b36427d593b5502c52a803c1c45d9ee Mon Sep 17 00:00:00 2001 From: thelamer Date: Tue, 5 May 2026 11:31:42 -0400 Subject: [PATCH 2/3] wayland default --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4032fd9..348abeb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -74,7 +74,6 @@ RUN \ fi && \ git clone https://git.eden-emu.dev/eden-emu/eden.git && \ cd eden/ && \ - git checkout -f ${EDEN_VERSION} && \ cmake -B build -GNinja \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=None \ @@ -114,7 +113,8 @@ ARG EDEN_VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="thelamer" -ENV TITLE=Eden +ENV TITLE=Eden \ + PIXELFLUX_WAYLAND=true RUN \ echo "**** add icon ****" && \ From 5b25ab22809cc245a39f0e98829b6705fcf54513 Mon Sep 17 00:00:00 2001 From: thelamer Date: Tue, 5 May 2026 11:35:49 -0400 Subject: [PATCH 3/3] remove head build change --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 348abeb..6a563bf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -74,6 +74,7 @@ RUN \ fi && \ git clone https://git.eden-emu.dev/eden-emu/eden.git && \ cd eden/ && \ + git checkout -f ${EDEN_VERSION} && \ cmake -B build -GNinja \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=None \