diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index 2a33b75..237e178 100644 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -36,15 +36,10 @@ jobs: token=$(curl -sX GET \ "https://ghcr.io/token?scope=repository%3Alinuxserver%2Faudacity%3Apull" \ | jq -r '.token') - multidigest=$(curl -s \ - --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ - --header "Authorization: Bearer ${token}" \ - "https://ghcr.io/v2/${image}/manifests/${tag}" \ - | jq -r 'first(.manifests[].digest)') digest=$(curl -s \ --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ --header "Authorization: Bearer ${token}" \ - "https://ghcr.io/v2/${image}/manifests/${multidigest}" \ + "https://ghcr.io/v2/${image}/manifests/${tag}" \ | jq -r '.config.digest') image_info=$(curl -sL \ --header "Authorization: Bearer ${token}" \ diff --git a/Dockerfile b/Dockerfile index e0ffcb0..384279c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,78 +1,35 @@ -FROM ghcr.io/linuxserver/baseimage-rdesktop-web:focal as buildstage - -ARG AUDACITY_VERSION - -RUN \ - echo "**** install build packages ****" && \ - apt-get update && \ - apt-get install -y \ - build-essential \ - cmake \ - curl \ - gcc \ - git \ - libasound2-dev \ - libavformat-dev \ - libgtk2.0-dev \ - libjack-jackd2-dev && \ - echo "**** build audacity ****" && \ - if [ -z ${AUDACITY_VERSION+x} ]; then \ - AUDACITY_VERSION=$(curl -sX GET "https://api.github.com/repos/audacity/audacity/releases/latest" \ - | awk '/tag_name/{print $4;exit}' FS='[""]' | sed 's|^Audacity-||'); \ - fi && \ - mkdir -p /app/audacity/build && \ - curl -o \ - /tmp/audacity.tar.xz -L \ - "https://github.com/audacity/audacity/releases/download/Audacity-${AUDACITY_VERSION}/audacity-minsrc-${AUDACITY_VERSION}.tar.xz" && \ - tar xf \ - /tmp/audacity.tar.xz -C \ - /app/audacity --strip-components=1 && \ - cd /app/audacity/build && \ - cmake -DCMAKE_BUILD_TYPE=Release -Daudacity_use_wxwidgets=local -Daudacity_use_ffmpeg=loaded .. && \ - make -j2 && \ - make install && \ - echo "**** cleanup ****" && \ - apt-get purge --auto-remove -y \ - build-essential \ - cmake \ - curl \ - gcc \ - git \ - libasound2-dev \ - libavformat-dev \ - libgtk2.0-dev \ - libjack-jackd2-dev && \ - mv /app/audacity/build/bin/Release/locale /app/ && \ - rm -rf /app/audacity - - FROM ghcr.io/linuxserver/baseimage-rdesktop-web:focal # set version label ARG BUILD_DATE ARG VERSION +ARG AUDACITY_VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="aptalca" RUN \ - echo "**** install packages ****" && \ + echo "**** install build packages ****" && \ apt-get update && \ apt-get install -y \ - libasound2 \ - libavformat58 \ - libgtk2.0-0 \ - libjack-jackd2-0 \ - python3-minimal && \ + libnss3 && \ + echo "**** install audacity ****" && \ + if [ -z ${AUDACITY_VERSION+x} ]; then \ + AUDACITY_VERSION=$(curl -sX GET "https://api.github.com/repos/audacity/audacity/releases/latest" \ + | awk '/tag_name/{print $4;exit}' FS='[""]' | sed 's|^Audacity-||'); \ + fi && \ + mkdir -p /app/audacity/ && \ + curl -o \ + /app/audacity/audacity -L \ + "https://github.com/audacity/audacity/releases/download/Audacity-${AUDACITY_VERSION}/audacity-linux-${AUDACITY_VERSION}-x86_64.AppImage" && \ + chmod +x /app/audacity/audacity && \ echo "**** cleanup ****" && \ rm -rf \ - /tmp/* + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/* # add local files COPY /root / -COPY --from=buildstage /usr/local/share/audacity /usr/local/share/audacity -COPY --from=buildstage /usr/local/lib/audacity /usr/local/lib/audacity -COPY --from=buildstage /usr/local/bin/audacity /usr/local/bin/audacity -COPY --from=buildstage /app/locale /usr/local/share/locale # ports and volumes EXPOSE 3000 diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 deleted file mode 100644 index acc9425..0000000 --- a/Dockerfile.aarch64 +++ /dev/null @@ -1,79 +0,0 @@ -FROM ghcr.io/linuxserver/baseimage-rdesktop-web:arm64v8-focal as buildstage - -ARG AUDACITY_VERSION - -RUN \ - echo "**** install build packages ****" && \ - apt-get update && \ - apt-get install -y \ - build-essential \ - cmake \ - curl \ - gcc \ - git \ - libasound2-dev \ - libavformat-dev \ - libgtk2.0-dev \ - libjack-jackd2-dev && \ - echo "**** build audacity ****" && \ - if [ -z ${AUDACITY_VERSION+x} ]; then \ - AUDACITY_VERSION=$(curl -sX GET "https://api.github.com/repos/audacity/audacity/releases/latest" \ - | awk '/tag_name/{print $4;exit}' FS='[""]' | sed 's|^Audacity-||'); \ - fi && \ - mkdir -p /app/audacity/build && \ - curl -o \ - /tmp/audacity.tar.xz -L \ - "https://github.com/audacity/audacity/releases/download/Audacity-${AUDACITY_VERSION}/audacity-minsrc-${AUDACITY_VERSION}.tar.xz" && \ - tar xf \ - /tmp/audacity.tar.xz -C \ - /app/audacity --strip-components=1 && \ - cd /app/audacity/build && \ - cmake -DCMAKE_BUILD_TYPE=Release -Daudacity_use_wxwidgets=local -Daudacity_use_ffmpeg=loaded .. && \ - make -j2 && \ - make install && \ - echo "**** cleanup ****" && \ - apt-get purge --auto-remove -y \ - build-essential \ - cmake \ - curl \ - gcc \ - git \ - libasound2-dev \ - libavformat-dev \ - libgtk2.0-dev \ - libjack-jackd2-dev && \ - mv /app/audacity/build/bin/Release/locale /app/ && \ - rm -rf /app/audacity - - -FROM ghcr.io/linuxserver/baseimage-rdesktop-web:focal - -# set version label -ARG BUILD_DATE -ARG VERSION -LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" -LABEL maintainer="aptalca" - -RUN \ - echo "**** install packages ****" && \ - apt-get update && \ - apt-get install -y \ - libasound2 \ - libavformat58 \ - libgtk2.0-0 \ - libjack-jackd2-0 \ - python3-minimal && \ - echo "**** cleanup ****" && \ - rm -rf \ - /tmp/* - -# add local files -COPY /root / -COPY --from=buildstage /usr/local/share/audacity /usr/local/share/audacity -COPY --from=buildstage /usr/local/lib/audacity /usr/local/lib/audacity -COPY --from=buildstage /usr/local/bin/audacity /usr/local/bin/audacity -COPY --from=buildstage /app/locale /usr/local/share/locale - -# ports and volumes -EXPOSE 3000 -VOLUME /config diff --git a/Dockerfile.armhf b/Dockerfile.armhf deleted file mode 100644 index 4d1104a..0000000 --- a/Dockerfile.armhf +++ /dev/null @@ -1,79 +0,0 @@ -FROM ghcr.io/linuxserver/baseimage-rdesktop-web:arm32v7-focal as buildstage - -ARG AUDACITY_VERSION - -RUN \ - echo "**** install build packages ****" && \ - apt-get update && \ - apt-get install -y \ - build-essential \ - cmake \ - curl \ - gcc \ - git \ - libasound2-dev \ - libavformat-dev \ - libgtk2.0-dev \ - libjack-jackd2-dev && \ - echo "**** build audacity ****" && \ - if [ -z ${AUDACITY_VERSION+x} ]; then \ - AUDACITY_VERSION=$(curl -sX GET "https://api.github.com/repos/audacity/audacity/releases/latest" \ - | awk '/tag_name/{print $4;exit}' FS='[""]' | sed 's|^Audacity-||'); \ - fi && \ - mkdir -p /app/audacity/build && \ - curl -o \ - /tmp/audacity.tar.xz -L \ - "https://github.com/audacity/audacity/releases/download/Audacity-${AUDACITY_VERSION}/audacity-minsrc-${AUDACITY_VERSION}.tar.xz" && \ - tar xf \ - /tmp/audacity.tar.xz -C \ - /app/audacity --strip-components=1 && \ - cd /app/audacity/build && \ - cmake -DCMAKE_BUILD_TYPE=Release -Daudacity_use_wxwidgets=local -Daudacity_use_ffmpeg=loaded .. && \ - make -j2 && \ - make install && \ - echo "**** cleanup ****" && \ - apt-get purge --auto-remove -y \ - build-essential \ - cmake \ - curl \ - gcc \ - git \ - libasound2-dev \ - libavformat-dev \ - libgtk2.0-dev \ - libjack-jackd2-dev && \ - mv /app/audacity/build/bin/Release/locale /app/ && \ - rm -rf /app/audacity - - -FROM ghcr.io/linuxserver/baseimage-rdesktop-web:focal - -# set version label -ARG BUILD_DATE -ARG VERSION -LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" -LABEL maintainer="aptalca" - -RUN \ - echo "**** install packages ****" && \ - apt-get update && \ - apt-get install -y \ - libasound2 \ - libavformat58 \ - libgtk2.0-0 \ - libjack-jackd2-0 \ - python3-minimal && \ - echo "**** cleanup ****" && \ - rm -rf \ - /tmp/* - -# add local files -COPY /root / -COPY --from=buildstage /usr/local/share/audacity /usr/local/share/audacity -COPY --from=buildstage /usr/local/lib/audacity /usr/local/lib/audacity -COPY --from=buildstage /usr/local/bin/audacity /usr/local/bin/audacity -COPY --from=buildstage /app/locale /usr/local/share/locale - -# ports and volumes -EXPOSE 3000 -VOLUME /config diff --git a/Jenkinsfile b/Jenkinsfile index 71e94cb..6937594 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -24,7 +24,7 @@ pipeline { DEV_DOCKERHUB_IMAGE = 'lsiodev/audacity' PR_DOCKERHUB_IMAGE = 'lspipepr/audacity' DIST_IMAGE = 'ubuntu' - MULTIARCH = 'true' + MULTIARCH = 'false' CI = 'true' CI_WEB = 'true' CI_PORT = '3000' @@ -375,7 +375,9 @@ pipeline { // Build Docker container for push to LS Repo stage('Build-Single') { when { - environment name: 'MULTIARCH', value: 'false' + expression { + env.MULTIARCH == 'false' || params.PACKAGE_CHECK == 'true' + } environment name: 'EXIT_STATUS', value: '' } steps { @@ -400,7 +402,10 @@ pipeline { // Build MultiArch Docker containers for push to LS Repo stage('Build-Multi') { when { - environment name: 'MULTIARCH', value: 'true' + allOf { + environment name: 'MULTIARCH', value: 'true' + expression { params.PACKAGE_CHECK == 'false' } + } environment name: 'EXIT_STATUS', value: '' } parallel { @@ -505,7 +510,7 @@ pipeline { sh '''#! /bin/bash set -e TEMPDIR=$(mktemp -d) - if [ "${MULTIARCH}" == "true" ]; then + if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG} else LOCAL_CONTAINER=${IMAGE}:${META_TAG} @@ -566,7 +571,7 @@ pipeline { steps { sh '''#! /bin/bash echo "Packages were updated. Cleaning up the image and exiting." - if [ "${MULTIARCH}" == "true" ]; then + if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then docker rmi ${IMAGE}:amd64-${META_TAG} else docker rmi ${IMAGE}:${META_TAG} @@ -590,7 +595,7 @@ pipeline { steps { sh '''#! /bin/bash echo "There are no package updates. Cleaning up the image and exiting." - if [ "${MULTIARCH}" == "true" ]; then + if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then docker rmi ${IMAGE}:amd64-${META_TAG} else docker rmi ${IMAGE}:${META_TAG} diff --git a/README.md b/README.md index 4acd80f..5d75131 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ Find us at: ## Supported Architectures -Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/). +We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/). Simply pulling `ghcr.io/linuxserver/audacity` should retrieve the correct image for your arch, but you can also pull specific arch images via tags. @@ -53,8 +53,6 @@ The architectures supported by this image are: | Architecture | Tag | | :----: | --- | | x86-64 | latest | -| arm64 | arm64v8-latest | -| armhf | arm32v7-latest | ## Application Setup @@ -225,4 +223,5 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **14.09.21:** - Use the official appimage, switch to single arch (x86_64). Armhf and aarch64 users can remain on version 3.0.2 but there won't be further updates. * **07.04.21:** - Initial release. diff --git a/jenkins-vars.yml b/jenkins-vars.yml index c32f9a4..c7a6fb3 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -16,7 +16,7 @@ repo_vars: - DEV_DOCKERHUB_IMAGE = 'lsiodev/audacity' - PR_DOCKERHUB_IMAGE = 'lspipepr/audacity' - DIST_IMAGE = 'ubuntu' - - MULTIARCH = 'true' + - MULTIARCH = 'false' - CI = 'true' - CI_WEB = 'true' - CI_PORT = '3000' diff --git a/readme-vars.yml b/readme-vars.yml index 6ddeb9e..eb72c0d 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -11,8 +11,6 @@ project_blurb_optional_extras_enabled: false # supported architectures available_architectures: - { arch: "{{ arch_x86_64 }}", tag: "latest"} - - { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"} - - { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"} # development version development_versions: false @@ -43,4 +41,5 @@ app_setup_block: | # changelog changelogs: + - { date: "14.09.21:", desc: "Use the official appimage, switch to single arch (x86_64). Armhf and aarch64 users can remain on version 3.0.2 but there won't be further updates." } - { date: "07.04.21:", desc: "Initial release." } diff --git a/root/defaults/autostart b/root/defaults/autostart index e598a38..8d6612c 100644 --- a/root/defaults/autostart +++ b/root/defaults/autostart @@ -1 +1 @@ -LD_LIBRARY_PATH="/usr/local/lib/audacity" audacity +/app/audacity/audacity --appimage-extract-and-run