diff --git a/.github/ISSUE_TEMPLATE/issue.bug.yml b/.github/ISSUE_TEMPLATE/issue.bug.yml index 7a1e437..e10c52b 100644 --- a/.github/ISSUE_TEMPLATE/issue.bug.yml +++ b/.github/ISSUE_TEMPLATE/issue.bug.yml @@ -52,6 +52,7 @@ body: label: CPU architecture options: - x86-64 + - arm64 validations: required: true - type: textarea diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index 6c56a20..3311b92 100644 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -111,7 +111,7 @@ jobs: exit 0 else assets=$(curl -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/OrcaSlicer/OrcaSlicer/releases/tags/${EXT_RELEASE}" | jq -r '.assets[].browser_download_url') - if grep -q "OrcaSlicer_Linux_AppImage_Ubuntu2404" <<< "${assets}"; then + if grep -q "OrcaSlicer_Linux_AppImage_Ubuntu2404_aarch64" <<< "${assets}"; then artifacts_found="true" else artifacts_found="false" diff --git a/Dockerfile b/Dockerfile index 58c413c..b653ae1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,6 @@ LABEL maintainer="thelamer" # title ENV TITLE=OrcaSlicer \ SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt \ - NO_GAMEPAD=true \ PIXELFLUX_WAYLAND=true RUN \ @@ -58,7 +57,7 @@ RUN \ | awk '/tag_name/{print $4;exit}' FS='[""]'); \ fi && \ RELEASE_URL=$(curl -sX GET "https://api.github.com/repos/OrcaSlicer/OrcaSlicer/releases/latest" | awk '/url/{print $4;exit}' FS='[""]') && \ - DOWNLOAD_URL=$(curl -sX GET "${RELEASE_URL}" | awk '/browser_download_url.*Ubuntu2404/{print $4;exit}' FS='[""]') && \ + DOWNLOAD_URL=$(curl -sX GET "${RELEASE_URL}" | awk '/browser_download_url.*Ubuntu2404_V/{print $4;exit}' FS='[""]') && \ cd /tmp && \ curl -o \ /tmp/orca.app -L \ @@ -67,6 +66,7 @@ RUN \ ./orca.app --appimage-extract && \ mv squashfs-root /opt/orcaslicer && \ localedef -i en_GB -f UTF-8 en_GB.UTF-8 && \ + chmod +x /opt/orcaslicer/libexec/orca-slicer-env && \ printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \ echo "**** cleanup ****" && \ apt-get autoclean && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 new file mode 100644 index 0000000..3aa9e84 --- /dev/null +++ b/Dockerfile.aarch64 @@ -0,0 +1,85 @@ +# syntax=docker/dockerfile:1 + +FROM ghcr.io/linuxserver/baseimage-selkies:arm64v8-debiantrixie + +# set version label +ARG BUILD_DATE +ARG VERSION +ARG ORCASLICER_VERSION +LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" +LABEL maintainer="thelamer" + +# title +ENV TITLE=OrcaSlicer \ + SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt \ + 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/orcaslicer-logo.png && \ + echo "**** add mozilla apt repo ****" && \ + install -d -m 0755 /etc/apt/keyrings && \ + curl -o \ + /etc/apt/keyrings/packages.mozilla.org.asc -L \ + https://packages.mozilla.org/apt/repo-signing-key.gpg && \ + echo \ + "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" > \ + /etc/apt/sources.list.d/mozilla.list && \ + printf \ + "Package: *\nPin: origin packages.mozilla.org\nPin-Priority: 1000\n" > \ + /etc/apt/preferences.d/mozilla && \ + echo "**** install packages ****" && \ + apt-get update && \ + DEBIAN_FRONTEND=noninteractive \ + apt-get install --no-install-recommends -y \ + firefox \ + gstreamer1.0-alsa \ + gstreamer1.0-gl \ + gstreamer1.0-gtk3 \ + gstreamer1.0-libav \ + gstreamer1.0-plugins-bad \ + gstreamer1.0-plugins-base \ + gstreamer1.0-plugins-good \ + gstreamer1.0-plugins-ugly \ + gstreamer1.0-pulseaudio \ + gstreamer1.0-qt5 \ + gstreamer1.0-tools \ + gstreamer1.0-x \ + libgstreamer-plugins-bad1.0 \ + libmspack0 \ + libwebkit2gtk-4.1-0 \ + libwx-perl && \ + echo "**** install orcaslicer from appimage ****" && \ + if [ -z ${ORCASLICER_VERSION+x} ]; then \ + ORCASLICER_VERSION=$(curl -sX GET "https://api.github.com/repos/OrcaSlicer/OrcaSlicer/releases/latest" \ + | awk '/tag_name/{print $4;exit}' FS='[""]'); \ + fi && \ + RELEASE_URL=$(curl -sX GET "https://api.github.com/repos/OrcaSlicer/OrcaSlicer/releases/latest" | awk '/url/{print $4;exit}' FS='[""]') && \ + DOWNLOAD_URL=$(curl -sX GET "${RELEASE_URL}" | awk '/browser_download_url.*Ubuntu2404_aarch64/{print $4;exit}' FS='[""]') && \ + cd /tmp && \ + curl -o \ + /tmp/orca.app -L \ + "${DOWNLOAD_URL}" && \ + chmod +x /tmp/orca.app && \ + ./orca.app --appimage-extract && \ + mv squashfs-root /opt/orcaslicer && \ + localedef -i en_GB -f UTF-8 en_GB.UTF-8 && \ + chmod +x /opt/orcaslicer/libexec/orca-slicer-env && \ + printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \ + 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 bdc0825..c6a3aa6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -29,7 +29,7 @@ pipeline { DEV_DOCKERHUB_IMAGE = 'lsiodev/orcaslicer' PR_DOCKERHUB_IMAGE = 'lspipepr/orcaslicer' DIST_IMAGE = 'ubuntu' - MULTIARCH = 'false' + MULTIARCH = 'true' CI = 'true' CI_WEB = 'true' CI_PORT = '3001' diff --git a/README.md b/README.md index 60b65c5..a4ea42b 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 | ❌ | | +| arm64 | ✅ | arm64v8-\ | ## Application Setup @@ -643,6 +643,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **20.06.26:** - Add aarch64 platform. * **11.05.26:** - Rebase to Debian Trixie. * **19.04.26:** - Rebase to resolute. * **29.03.26:** - Make Wayland default disable with PIXELFLUX_WAYLAND=false. diff --git a/jenkins-vars.yml b/jenkins-vars.yml index 81c8399..171186b 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -8,7 +8,7 @@ release_tag: latest ls_branch: master external_artifact_check: | assets=$(curl -u "${{ '{{' }} secrets.CR_USER {{ '}}' }}:${{ '{{' }} secrets.CR_PAT {{ '}}' }}" -sX GET "https://api.github.com/repos/OrcaSlicer/OrcaSlicer/releases/tags/${EXT_RELEASE}" | jq -r '.assets[].browser_download_url') - if grep -q "OrcaSlicer_Linux_AppImage_Ubuntu2404" <<< "${assets}"; then + if grep -q "OrcaSlicer_Linux_AppImage_Ubuntu2404_aarch64" <<< "${assets}"; then artifacts_found="true" else artifacts_found="false" @@ -24,7 +24,7 @@ repo_vars: - DEV_DOCKERHUB_IMAGE = 'lsiodev/orcaslicer' - PR_DOCKERHUB_IMAGE = 'lspipepr/orcaslicer' - DIST_IMAGE = 'ubuntu' - - MULTIARCH = 'false' + - MULTIARCH = 'true' - CI = 'true' - CI_WEB = 'true' - CI_PORT = '3001' diff --git a/readme-vars.yml b/readme-vars.yml index 17df9fb..c0a0fd6 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -11,6 +11,7 @@ project_blurb_optional_extras_enabled: false # supported architectures available_architectures: - {arch: "{{ arch_x86_64 }}", tag: "latest"} + - {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"} # development version development_versions: false # container parameters @@ -106,6 +107,7 @@ init_diagram: | "orcaslicer:latest" <- Base Images # changelog changelogs: + - {date: "20.06.26:", desc: "Add aarch64 platform."} - {date: "11.05.26:", desc: "Rebase to Debian Trixie."} - {date: "19.04.26:", desc: "Rebase to resolute."} - {date: "29.03.26:", desc: "Make Wayland default disable with PIXELFLUX_WAYLAND=false."}