Compare commits

...

16 Commits

Author SHA1 Message Date
LinuxServer-CI
3f42002b0a Bot Updating Package Versions 2023-06-18 09:42:29 +00:00
Roxedus
e5681f659b Merge pull request #246 from linuxserver/master-armhf 2023-06-18 11:38:16 +02:00
LinuxServer-CI
58ee179f7a Bot Updating Package Versions 2023-06-18 06:53:15 +00:00
TheSpad
20969e294b Deprecate armhf 2023-06-17 14:39:33 +01:00
LinuxServer-CI
13ee42aab5 Bot Updating Package Versions 2023-06-11 06:51:54 +00:00
LinuxServer-CI
b8e6e6f316 Bot Updating Package Versions 2023-06-10 20:54:51 +00:00
LinuxServer-CI
6ab4ba5220 Bot Updating Templated Files 2023-06-10 20:50:58 +00:00
Adam
f95c73f1e6 Merge pull request #244 from linuxserver/master-unrar 2023-06-10 21:48:36 +01:00
TheSpad
0649cdf6a9 Bump unrar to 6.2.8 (master) 2023-06-10 21:30:35 +01:00
LinuxServer-CI
a2bedd3e32 Bot Updating Package Versions 2023-06-04 06:52:05 +00:00
LinuxServer-CI
65c38315eb Bot Updating Package Versions 2023-05-30 11:42:44 +00:00
Roxedus
5d49db1026 Merge pull request #241 from linuxserver/master-compat-testing 2023-05-30 13:38:40 +02:00
TheSpad
c33475d7ec Get openssl1.1-compat from testing repo 2023-05-30 09:03:02 +01:00
LinuxServer-CI
14cea7736c Bot Updating Templated Files 2023-05-28 06:51:58 +00:00
LinuxServer-CI
a60d53892a Bot Updating Package Versions 2023-05-21 06:53:13 +00:00
LinuxServer-CI
e757d93d0f Bot Updating Package Versions 2023-05-14 06:53:18 +00:00
10 changed files with 282 additions and 413 deletions

View File

@@ -53,7 +53,6 @@ body:
options: options:
- x86-64 - x86-64
- arm64 - arm64
- armhf
validations: validations:
required: true required: true
- type: textarea - type: textarea

View File

@@ -74,7 +74,7 @@ jobs:
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****" echo "**** Version ${EXT_RELEASE} already pushed, exiting ****"
echo "Version ${EXT_RELEASE} already pushed, exiting" >> $GITHUB_STEP_SUMMARY echo "Version ${EXT_RELEASE} already pushed, exiting" >> $GITHUB_STEP_SUMMARY
exit 0 exit 0
elif [[ $(curl -sL "http://dl-cdn.alpinelinux.org/alpine/edge/community/aarch64/APKINDEX.tar.gz" | tar -xz -C /tmp && awk '/^P:'"qbittorrent-nox"'$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://') != "${EXT_RELEASE}" ]] || [[ $(curl -sL "http://dl-cdn.alpinelinux.org/alpine/edge/community/armv7/APKINDEX.tar.gz" | tar -xz -C /tmp && awk '/^P:'"qbittorrent-nox"'$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://') != "${EXT_RELEASE}" ]]; then elif [[ $(curl -sL "http://dl-cdn.alpinelinux.org/alpine/edge/community/aarch64/APKINDEX.tar.gz" | tar -xz -C /tmp && awk '/^P:'"qbittorrent-nox"'$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://') != "${EXT_RELEASE}" ]]; then
echo "**** New version ${EXT_RELEASE} found; but not all arch repos updated yet; exiting ****" echo "**** New version ${EXT_RELEASE} found; but not all arch repos updated yet; exiting ****"
echo "New version ${EXT_RELEASE} found; but not all arch repos updated yet; exiting" >> $GITHUB_STEP_SUMMARY echo "New version ${EXT_RELEASE} found; but not all arch repos updated yet; exiting" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="New version ${EXT_RELEASE} for qbittorrent tag latest is detected, however not all arch repos are updated yet. Will try again later." FAILURE_REASON="New version ${EXT_RELEASE} for qbittorrent tag latest is detected, however not all arch repos are updated yet. Will try again later."

View File

@@ -11,7 +11,7 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA
LABEL maintainer="thespad" LABEL maintainer="thespad"
# environment settings # environment settings
ARG UNRAR_VERSION=6.1.7 ARG UNRAR_VERSION=6.2.8
ENV HOME="/config" \ ENV HOME="/config" \
XDG_CONFIG_HOME="/config" \ XDG_CONFIG_HOME="/config" \
XDG_DATA_HOME="/config" XDG_DATA_HOME="/config"
@@ -19,10 +19,10 @@ XDG_DATA_HOME="/config"
# install runtime packages and qbitorrent-cli # install runtime packages and qbitorrent-cli
RUN \ RUN \
echo "**** install build packages ****" && \ echo "**** install build packages ****" && \
apk add --no-cache --upgrade --virtual=build-dependencies \ apk add --no-cache --virtual=build-dependencies \
build-base && \ build-base && \
echo "**** install packages ****" && \ echo "**** install packages ****" && \
apk add -U --update --no-cache \ apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \
icu-libs \ icu-libs \
libstdc++ \ libstdc++ \
openssl \ openssl \

View File

@@ -11,7 +11,7 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA
LABEL maintainer="thespad" LABEL maintainer="thespad"
# environment settings # environment settings
ARG UNRAR_VERSION=6.1.7 ARG UNRAR_VERSION=6.2.8
ENV HOME="/config" \ ENV HOME="/config" \
XDG_CONFIG_HOME="/config" \ XDG_CONFIG_HOME="/config" \
XDG_DATA_HOME="/config" XDG_DATA_HOME="/config"
@@ -19,10 +19,10 @@ XDG_DATA_HOME="/config"
# install runtime packages and qbitorrent-cli # install runtime packages and qbitorrent-cli
RUN \ RUN \
echo "**** install build packages ****" && \ echo "**** install build packages ****" && \
apk add --no-cache --upgrade --virtual=build-dependencies \ apk add --no-cache --virtual=build-dependencies \
build-base && \ build-base && \
echo "**** install packages ****" && \ echo "**** install packages ****" && \
apk add -U --update --no-cache \ apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \
icu-libs \ icu-libs \
libstdc++ \ libstdc++ \
openssl \ openssl \

View File

@@ -1,73 +0,0 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-edge
# set version label
ARG BUILD_DATE
ARG VERSION
ARG QBITTORRENT_VERSION
ARG QBT_VERSION
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="thespad"
# environment settings
ARG UNRAR_VERSION=6.1.7
ENV HOME="/config" \
XDG_CONFIG_HOME="/config" \
XDG_DATA_HOME="/config"
# install runtime packages and qbitorrent-cli
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --upgrade --virtual=build-dependencies \
build-base && \
echo "**** install packages ****" && \
apk add -U --update --no-cache \
icu-libs \
libstdc++ \
openssl \
openssl1.1-compat \
p7zip \
python3 \
qt6-qtbase-sqlite && \
echo "**** install unrar from source ****" && \
mkdir /tmp/unrar && \
curl -o \
/tmp/unrar.tar.gz -L \
"https://www.rarlab.com/rar/unrarsrc-${UNRAR_VERSION}.tar.gz" && \
tar xf \
/tmp/unrar.tar.gz -C \
/tmp/unrar --strip-components=1 && \
cd /tmp/unrar && \
make && \
install -v -m755 unrar /usr/bin && \
if [ -z ${QBITTORRENT_VERSION+x} ]; then \
QBITTORRENT_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
&& awk '/^P:qbittorrent-nox$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \
fi && \
apk add -U --upgrade --no-cache \
qbittorrent-nox==${QBITTORRENT_VERSION} && \
echo "***** install qbitorrent-cli ****" && \
mkdir /qbt && \
QBT_VERSION=$(curl -sL "https://api.github.com/repos/fedarovich/qbittorrent-cli/releases" \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
curl -o \
/tmp/qbt.tar.gz -L \
"https://github.com/fedarovich/qbittorrent-cli/releases/download/${QBT_VERSION}/qbt-linux-alpine-arm-${QBT_VERSION:1}.tar.gz" && \
tar xf \
/tmp/qbt.tar.gz -C \
/qbt && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/root/.cache \
/tmp/*
# add local files
COPY root/ /
# ports and volumes
EXPOSE 8080 6881 6881/udp
VOLUME /config

185
Jenkinsfile vendored
View File

@@ -42,7 +42,12 @@ pipeline {
// Setup all the basic environment variables needed for the build // Setup all the basic environment variables needed for the build
stage("Set ENV Variables base"){ stage("Set ENV Variables base"){
steps{ steps{
sh '''docker pull quay.io/skopeo/stable:v1 || : ''' sh '''#! /bin/bash
containers=$(docker ps -aq)
if [[ -n "${containers}" ]]; then
docker stop ${containers}
fi
docker system prune -af --volumes || : '''
script{ script{
env.EXIT_STATUS = '' env.EXIT_STATUS = ''
env.LS_RELEASE = sh( env.LS_RELEASE = sh(
@@ -162,7 +167,7 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else { } else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} }
@@ -185,7 +190,7 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} else { } else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} }
@@ -208,12 +213,12 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
} else { } else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
} }
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/' env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
@@ -341,6 +346,8 @@ pipeline {
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
fi fi
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
cd ${TEMPDIR}/unraid/templates/ cd ${TEMPDIR}/unraid/templates/
@@ -432,8 +439,7 @@ pipeline {
} }
steps{ steps{
sh '''#! /bin/bash sh '''#! /bin/bash
set -e PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/qbittorrent") | .uuid' || :)
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/qbittorrent") | .uuid')
if [ -z "${PACKAGE_UUID}" ]; then if [ -z "${PACKAGE_UUID}" ]; then
echo "Adding package to Scarf.sh" echo "Adding package to Scarf.sh"
curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \ curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
@@ -513,41 +519,6 @@ pipeline {
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
} }
} }
stage('Build ARMHF') {
agent {
label 'ARMHF'
}
steps {
echo "Running on node: ${NODE_NAME}"
echo 'Logging into Github'
sh '''#! /bin/bash
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
'''
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.armhf"
sh "docker buildx build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-qbittorrent/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-qbittorrent\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-qbittorrent\" \
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Qbittorrent\" \
--label \"org.opencontainers.image.description=The [Qbittorrent](https://www.qbittorrent.org/) project aims to provide an open-source software alternative to µTorrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library.\" \
--no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} --platform=linux/arm/v7 \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
retry(5) {
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
}
sh '''docker rmi \
${IMAGE}:arm32v7-${META_TAG} \
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
}
}
stage('Build ARM64') { stage('Build ARM64') {
agent { agent {
label 'ARM64' label 'ARM64'
@@ -578,9 +549,12 @@ pipeline {
retry(5) { retry(5) {
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
} }
sh '''docker rmi \ sh '''#! /bin/bash
${IMAGE}:arm64v8-${META_TAG} \ containers=$(docker ps -aq)
ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :''' if [[ -n "${containers}" ]]; then
docker stop ${containers}
fi
docker system prune -af --volumes || : '''
} }
} }
} }
@@ -641,13 +615,6 @@ pipeline {
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
steps { steps {
sh '''#! /bin/bash
echo "Packages were updated. Cleaning up the image and exiting."
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
docker rmi ${IMAGE}:amd64-${META_TAG}
else
docker rmi ${IMAGE}:${META_TAG}
fi'''
script{ script{
env.EXIT_STATUS = 'ABORTED' env.EXIT_STATUS = 'ABORTED'
} }
@@ -665,13 +632,6 @@ pipeline {
} }
} }
steps { steps {
sh '''#! /bin/bash
echo "There are no package updates. Cleaning up the image and exiting."
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
docker rmi ${IMAGE}:amd64-${META_TAG}
else
docker rmi ${IMAGE}:${META_TAG}
fi'''
script{ script{
env.EXIT_STATUS = 'ABORTED' env.EXIT_STATUS = 'ABORTED'
} }
@@ -699,9 +659,7 @@ pipeline {
set -e set -e
docker pull ghcr.io/linuxserver/ci:latest docker pull ghcr.io/linuxserver/ci:latest
if [ "${MULTIARCH}" == "true" ]; then if [ "${MULTIARCH}" == "true" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi fi
docker run --rm \ docker run --rm \
@@ -772,17 +730,6 @@ pipeline {
done done
''' '''
} }
sh '''#! /bin/bash
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:${META_TAG} \
${DELETEIMAGE}:${EXT_RELEASE_TAG} \
${DELETEIMAGE}:latest || :
if [ -n "${SEMVER}" ]; then
docker rmi ${DELETEIMAGE}:${SEMVER} || :
fi
done
'''
} }
} }
} }
@@ -815,8 +762,6 @@ pipeline {
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [ "${CI}" == "false" ]; then if [ "${CI}" == "false" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi fi
@@ -824,49 +769,47 @@ pipeline {
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then if [ -n "${SEMVER}" ]; then
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER} docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER} docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi fi
docker push ${MANIFESTIMAGE}:amd64-${META_TAG} docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:amd64-latest docker push ${MANIFESTIMAGE}:amd64-latest
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-latest
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-latest docker push ${MANIFESTIMAGE}:arm64v8-latest
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then if [ -n "${SEMVER}" ]; then
docker push ${MANIFESTIMAGE}:amd64-${SEMVER} docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER} docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi fi
docker manifest push --purge ${MANIFESTIMAGE}:latest || : docker manifest push --purge ${MANIFESTIMAGE}:latest || :
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8 docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || : docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8 docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || : docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8 docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
if [ -n "${SEMVER}" ]; then if [ -n "${SEMVER}" ]; then
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || : docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8 docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
fi fi
token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-latest")
if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest || :
docker manifest create ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:amd64-latest
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest
fi
docker manifest push --purge ${MANIFESTIMAGE}:latest docker manifest push --purge ${MANIFESTIMAGE}:latest
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
@@ -876,29 +819,6 @@ pipeline {
done done
''' '''
} }
sh '''#! /bin/bash
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:amd64-${META_TAG} \
${DELETEIMAGE}:amd64-latest \
${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
${DELETEIMAGE}:arm32v7-${META_TAG} \
${DELETEIMAGE}:arm32v7-latest \
${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
${DELETEIMAGE}:arm64v8-${META_TAG} \
${DELETEIMAGE}:arm64v8-latest \
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
if [ -n "${SEMVER}" ]; then
docker rmi \
${DELETEIMAGE}:amd64-${SEMVER} \
${DELETEIMAGE}:arm32v7-${SEMVER} \
${DELETEIMAGE}:arm64v8-${SEMVER} || :
fi
done
docker rmi \
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :
'''
} }
} }
} }
@@ -969,7 +889,6 @@ pipeline {
stage('Pull Request Comment') { stage('Pull Request Comment') {
when { when {
not {environment name: 'CHANGE_ID', value: ''} not {environment name: 'CHANGE_ID', value: ''}
environment name: 'CI', value: 'true'
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
steps { steps {
@@ -1023,16 +942,24 @@ pipeline {
echo "$escaped_table" echo "$escaped_table"
} }
# Retrieve JSON data from URL if [[ "${CI}" = "true" ]]; then
data=$(get_json "$CI_JSON_URL") # Retrieve JSON data from URL
# Create table from JSON data data=$(get_json "$CI_JSON_URL")
table=$(build_table "$data") # Create table from JSON data
echo -e "$table" table=$(build_table "$data")
echo -e "$table"
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \ curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
-H "Accept: application/vnd.github.v3+json" \ -H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \ "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
-d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"''' -d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"
else
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
-H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
-d "{\\"body\\": \\"I am a bot, here is the pushed image/manifest for this PR: \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}"
fi
'''
} }
} }
@@ -1059,6 +986,14 @@ pipeline {
} }
} }
cleanup { cleanup {
sh '''#! /bin/bash
echo "Performing docker system prune!!"
containers=$(docker ps -aq)
if [[ -n "${containers}" ]]; then
docker stop ${containers}
fi
docker system prune -af --volumes || :
'''
cleanWs() cleanWs()
} }
} }

View File

@@ -56,7 +56,7 @@ The architectures supported by this image are:
| :----: | :----: | ---- | | :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> | | x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> | | arm64 | ✅ | arm64v8-\<version tag\> |
| armhf | | arm32v7-\<version tag\> | | armhf | | |
## Version Tags ## Version Tags
@@ -264,6 +264,8 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions ## Versions
* **17.06.23:** - Deprecate armhf as per [https://www.linuxserver.io/armhf](https://www.linuxserver.io/armhf).
* **10.06.23:** - Bump unrar to 6.2.8.
* **23.02.23:** - Add qt6-qtbase-sqlite to support SQLite database for resume files. * **23.02.23:** - Add qt6-qtbase-sqlite to support SQLite database for resume files.
* **29.11.22:** - Add openssl1.1-compat for qbittorrent-cli. * **29.11.22:** - Add openssl1.1-compat for qbittorrent-cli.
* **31.10.22:** - Add libtorrentv1 branch. * **31.10.22:** - Add libtorrentv1 branch.

View File

@@ -6,6 +6,7 @@ external_type: alpine_repo
release_type: stable release_type: stable
release_tag: latest release_tag: latest
ls_branch: master ls_branch: master
build_armhf: false
repo_vars: repo_vars:
- CONTAINER_NAME = 'qbittorrent' - CONTAINER_NAME = 'qbittorrent'
- BUILD_VERSION_ARG = 'QBITTORRENT_VERSION' - BUILD_VERSION_ARG = 'QBITTORRENT_VERSION'

View File

@@ -1,205 +1,209 @@
NAME VERSION TYPE NAME VERSION TYPE
7zip 22.01-r5 apk 7zip 22.01-r5 apk
Alba.CsConsoleFormat 1.0.0 dotnet Alba.CsConsoleFormat 1.0.0 dotnet
BencodeNET 2.3.0 dotnet BencodeNET 2.3.0 dotnet
CsvHelper 12.1.2 dotnet CsvHelper 12.1.2 dotnet
IPNetwork2 2.5.235 dotnet IPNetwork2 2.5.235 dotnet
McMaster.Extensions.CommandLineUtils 2.4.4 dotnet McMaster.Extensions.CommandLineUtils 2.4.4 dotnet
Microsoft.CSharp 4.4.0 dotnet Microsoft.CSharp 4.4.0 dotnet
Microsoft.NETCore.Platforms 1.1.0 dotnet Microsoft.NETCore.Platforms 1.1.0 dotnet
Microsoft.NETCore.Targets 1.1.0 dotnet Microsoft.NETCore.Targets 1.1.0 dotnet
Microsoft.Win32.Primitives 4.3.0 dotnet Microsoft.Win32.Primitives 4.3.0 dotnet
Mono.Posix.NETStandard 1.0.0 dotnet Mono.Posix.NETStandard 1.0.0 dotnet
NETStandard.Library 1.6.1 dotnet NETStandard.Library 1.6.1 dotnet
NJsonSchema 9.14.1 dotnet NJsonSchema 9.14.1 dotnet
Newtonsoft.Json 13.0.1 dotnet Newtonsoft.Json 13.0.1 dotnet
Portable.BouncyCastle 1.8.8 dotnet Portable.BouncyCastle 1.8.8 dotnet
Portable.Xaml 0.18.0 dotnet Portable.Xaml 0.18.0 dotnet
QBittorrent.Client 1.8.23016.2 dotnet QBittorrent.Client 1.8.23016.2 dotnet
System.AppContext 4.3.0 dotnet System.AppContext 4.3.0 dotnet
System.Buffers 4.3.0 dotnet System.Buffers 4.3.0 dotnet
System.Collections 4.3.0 dotnet System.Collections 4.3.0 dotnet
System.Collections.Concurrent 4.3.0 dotnet System.Collections.Concurrent 4.3.0 dotnet
System.Collections.NonGeneric 4.3.0 dotnet System.Collections.NonGeneric 4.3.0 dotnet
System.Collections.Specialized 4.3.0 dotnet System.Collections.Specialized 4.3.0 dotnet
System.ComponentModel 4.3.0 dotnet System.ComponentModel 4.3.0 dotnet
System.ComponentModel.Annotations 4.4.1 dotnet System.ComponentModel.Annotations 4.4.1 dotnet
System.ComponentModel.Primitives 4.3.0 dotnet System.ComponentModel.Primitives 4.3.0 dotnet
System.ComponentModel.TypeConverter 4.3.0 dotnet System.ComponentModel.TypeConverter 4.3.0 dotnet
System.Console 4.3.0 dotnet System.Console 4.3.0 dotnet
System.Diagnostics.Debug 4.3.0 dotnet System.Diagnostics.Debug 4.3.0 dotnet
System.Diagnostics.DiagnosticSource 4.3.0 dotnet System.Diagnostics.DiagnosticSource 4.3.0 dotnet
System.Diagnostics.Tools 4.3.0 dotnet System.Diagnostics.Tools 4.3.0 dotnet
System.Diagnostics.Tracing 4.3.0 dotnet System.Diagnostics.Tracing 4.3.0 dotnet
System.Globalization 4.3.0 dotnet System.Globalization 4.3.0 dotnet
System.Globalization.Calendars 4.3.0 dotnet System.Globalization.Calendars 4.3.0 dotnet
System.Globalization.Extensions 4.3.0 dotnet System.Globalization.Extensions 4.3.0 dotnet
System.IO 4.3.0 dotnet System.IO 4.3.0 dotnet
System.IO.Compression 4.3.0 dotnet System.IO.Compression 4.3.0 dotnet
System.IO.Compression.ZipFile 4.3.0 dotnet System.IO.Compression.ZipFile 4.3.0 dotnet
System.IO.FileSystem 4.3.0 dotnet System.IO.FileSystem 4.3.0 dotnet
System.IO.FileSystem.Primitives 4.3.0 dotnet System.IO.FileSystem.Primitives 4.3.0 dotnet
System.Linq 4.3.0 dotnet System.Linq 4.3.0 dotnet
System.Linq.Expressions 4.3.0 dotnet System.Linq.Expressions 4.3.0 dotnet
System.Net.Http 4.3.0 dotnet System.Net.Http 4.3.0 dotnet
System.Net.NameResolution 4.3.0 dotnet System.Net.NameResolution 4.3.0 dotnet
System.Net.Primitives 4.3.0 dotnet System.Net.Primitives 4.3.0 dotnet
System.Net.Sockets 4.3.0 dotnet System.Net.Sockets 4.3.0 dotnet
System.ObjectModel 4.3.0 dotnet System.ObjectModel 4.3.0 dotnet
System.Private.Uri 4.3.0 dotnet System.Private.Uri 4.3.0 dotnet
System.Reflection 4.3.0 dotnet System.Reflection 4.3.0 dotnet
System.Reflection.Emit 4.3.0 dotnet System.Reflection.Emit 4.3.0 dotnet
System.Reflection.Emit.ILGeneration 4.3.0 dotnet System.Reflection.Emit.ILGeneration 4.3.0 dotnet
System.Reflection.Emit.Lightweight 4.3.0 dotnet System.Reflection.Emit.Lightweight 4.3.0 dotnet
System.Reflection.Extensions 4.3.0 dotnet System.Reflection.Extensions 4.3.0 dotnet
System.Reflection.Primitives 4.3.0 dotnet System.Reflection.Primitives 4.3.0 dotnet
System.Reflection.TypeExtensions 4.4.0 dotnet System.Reflection.TypeExtensions 4.4.0 dotnet
System.Resources.ResourceManager 4.3.0 dotnet System.Resources.ResourceManager 4.3.0 dotnet
System.Runtime 4.3.0 dotnet System.Runtime 4.3.0 dotnet
System.Runtime.Extensions 4.3.0 dotnet System.Runtime.Extensions 4.3.0 dotnet
System.Runtime.Handles 4.3.0 dotnet System.Runtime.Handles 4.3.0 dotnet
System.Runtime.InteropServices 4.3.0 dotnet System.Runtime.InteropServices 4.3.0 dotnet
System.Runtime.InteropServices.RuntimeInformation 4.3.0 dotnet System.Runtime.InteropServices.RuntimeInformation 4.3.0 dotnet
System.Runtime.Numerics 4.3.0 dotnet System.Runtime.Numerics 4.3.0 dotnet
System.Runtime.Serialization.Primitives 4.3.0 dotnet System.Runtime.Serialization.Primitives 4.3.0 dotnet
System.Security.Claims 4.3.0 dotnet System.Security.Claims 4.3.0 dotnet
System.Security.Cryptography.Algorithms 4.3.0 dotnet System.Security.Cryptography.Algorithms 4.3.0 dotnet
System.Security.Cryptography.Cng 4.3.0 dotnet System.Security.Cryptography.Cng 4.3.0 dotnet
System.Security.Cryptography.Csp 4.3.0 dotnet System.Security.Cryptography.Csp 4.3.0 dotnet
System.Security.Cryptography.Encoding 4.3.0 dotnet System.Security.Cryptography.Encoding 4.3.0 dotnet
System.Security.Cryptography.OpenSsl 4.3.0 dotnet System.Security.Cryptography.OpenSsl 4.3.0 dotnet
System.Security.Cryptography.Primitives 4.3.0 dotnet System.Security.Cryptography.Primitives 4.3.0 dotnet
System.Security.Cryptography.ProtectedData 5.0.0 dotnet System.Security.Cryptography.ProtectedData 5.0.0 dotnet
System.Security.Cryptography.X509Certificates 4.3.0 dotnet System.Security.Cryptography.X509Certificates 4.3.0 dotnet
System.Security.Principal 4.3.0 dotnet System.Security.Principal 4.3.0 dotnet
System.Security.Principal.Windows 4.3.0 dotnet System.Security.Principal.Windows 4.3.0 dotnet
System.Text.Encoding 4.3.0 dotnet System.Text.Encoding 4.3.0 dotnet
System.Text.Encoding.Extensions 4.3.0 dotnet System.Text.Encoding.Extensions 4.3.0 dotnet
System.Text.RegularExpressions 4.3.0 dotnet System.Text.RegularExpressions 4.3.0 dotnet
System.Threading 4.3.0 dotnet System.Threading 4.3.0 dotnet
System.Threading.Tasks 4.3.0 dotnet System.Threading.Tasks 4.3.0 dotnet
System.Threading.Tasks.Extensions 4.3.0 dotnet System.Threading.Tasks.Extensions 4.3.0 dotnet
System.Threading.ThreadPool 4.3.0 dotnet System.Threading.ThreadPool 4.3.0 dotnet
System.Threading.Timer 4.3.0 dotnet System.Threading.Timer 4.3.0 dotnet
System.Xml.ReaderWriter 4.3.0 dotnet System.Xml.ReaderWriter 4.3.0 dotnet
System.Xml.XDocument 4.3.0 dotnet System.Xml.XDocument 4.3.0 dotnet
System.Xml.XmlDocument 4.3.0 dotnet System.Xml.XmlDocument 4.3.0 dotnet
alpine-baselayout 3.4.3-r0 apk alpine-baselayout 3.4.3-r1 apk
alpine-baselayout-data 3.4.3-r0 apk alpine-baselayout-data 3.4.3-r1 apk
alpine-keys 2.4-r1 apk alpine-keys 2.4-r1 apk
apk-tools 2.14.0_rc1-r2 apk apk-tools 2.14.0-r5 apk
bash 5.2.15-r3 apk bash 5.2.15-r5 apk
brotli-libs 1.0.9-r14 apk brotli-libs 1.0.9-r15 apk
busybox 1.36.0 binary busybox 1.36.1 binary
busybox 1.36.0-r9 apk busybox 1.36.1-r1 apk
busybox-binsh 1.36.0-r9 apk busybox-binsh 1.36.1-r1 apk
ca-certificates 20230506-r0 apk c-ares 1.19.1-r1 apk
ca-certificates-bundle 20230506-r0 apk ca-certificates 20230506-r0 apk
coreutils 9.3-r1 apk ca-certificates-bundle 20230506-r0 apk
curl 8.0.1-r2 apk coreutils 9.3-r7 apk
dbus-libs 1.14.6-r3 apk coreutils-env 9.3-r7 apk
double-conversion 3.2.1-r1 apk coreutils-fmt 9.3-r7 apk
gdbm 1.23-r1 apk coreutils-sha512sum 9.3-r7 apk
glib 2.76.2-r0 apk curl 8.1.2-r1 apk
icu-data-en 73.1-r1 apk dbus-libs 1.14.8-r0 apk
icu-libs 73.1-r1 apk double-conversion 3.3.0-r0 apk
jq 1.6-r3 apk gdbm 1.23-r1 apk
libacl 2.3.1-r3 apk glib 2.76.3-r0 apk
libattr 2.5.1-r4 apk icu-data-en 73.2-r0 apk
libb2 0.98.1-r2 apk icu-libs 73.2-r0 apk
libblkid 2.38.1-r7 apk jq 1.6-r3 apk
libbsd 0.11.7-r1 apk libacl 2.3.1-r4 apk
libbz2 1.0.8-r5 apk libattr 2.5.1-r5 apk
libc-utils 0.7.2-r5 apk libb2 0.98.1-r3 apk
libcrypto1.1 1.1.1t-r2 apk libblkid 2.39-r10 apk
libcrypto3 3.1.0-r4 apk libbsd 0.11.7-r2 apk
libcurl 8.0.1-r2 apk libbz2 1.0.8-r6 apk
libexpat 2.5.0-r1 apk libc-utils 0.7.2-r5 apk
libffi 3.4.4-r2 apk libcrypto1.1 1.1.1u-r0 apk
libgcc 12.2.1_git20220924-r10 apk libcrypto3 3.1.1-r1 apk
libgomp 12.2.1_git20220924-r10 apk libcurl 8.1.2-r1 apk
libidn2 2.3.4-r1 apk libexpat 2.5.0-r2 apk
libintl 0.21.1-r5 apk libffi 3.4.4-r3 apk
libmd 1.0.4-r2 apk libgcc 13.1.1_git20230603-r0 apk
libmount 2.38.1-r7 apk libgomp 13.1.1_git20230603-r0 apk
libncursesw 6.4_p20230429-r0 apk libidn2 2.3.4-r2 apk
libpanelw 6.4_p20230429-r0 apk libintl 0.22-r0 apk
libpcre2-16 10.42-r1 apk libmd 1.1.0-r0 apk
libproc2 4.0.3-r1 apk libmount 2.39-r10 apk
libssl1.1 1.1.1t-r2 apk libncursesw 6.4_p20230617-r0 apk
libssl3 3.1.0-r4 apk libpanelw 6.4_p20230617-r0 apk
libstdc++ 12.2.1_git20220924-r10 apk libpcre2-16 10.42-r1 apk
libtorrent-rasterbar 2.0.8-r3 apk libproc2 4.0.3-r2 apk
libunistring 1.1-r1 apk libssl1.1 1.1.1u-r0 apk
linux-pam 1.5.2-r10 apk libssl3 3.1.1-r1 apk
mpdecimal 2.5.1-r2 apk libstdc++ 13.1.1_git20230603-r0 apk
musl 1.2.4-r0 apk libtorrent-rasterbar 2.0.9-r0 apk
musl-utils 1.2.4-r0 apk libunistring 1.1-r2 apk
ncurses-terminfo-base 6.4_p20230429-r0 apk linux-pam 1.5.3-r2 apk
netcat-openbsd 1.219-r1 apk mpdecimal 2.5.1-r2 apk
nghttp2-libs 1.52.0-r1 apk musl 1.2.4-r1 apk
oniguruma 6.9.8-r1 apk musl-utils 1.2.4-r1 apk
openssl 3.1.0-r4 apk ncurses-terminfo-base 6.4_p20230617-r0 apk
openssl1.1-compat 1.1.1t-r2 apk netcat-openbsd 1.225-r0 apk
pcre2 10.42-r1 apk nghttp2-libs 1.54.0-r0 apk
procps-ng 4.0.3-r1 apk oniguruma 6.9.8-r1 apk
pyc 0.1-r0 apk openssl 3.1.1-r1 apk
python 3.11.3 binary openssl1.1-compat 1.1.1u-r0 apk
python3 3.11.3-r10 apk pcre2 10.42-r1 apk
python3-pyc 3.11.3-r10 apk procps-ng 4.0.3-r2 apk
python3-pycache-pyc0 3.11.3-r10 apk pyc 0.1-r0 apk
qbittorrent-nox 4.5.2-r2 apk python 3.11.4 binary
qt6-qtbase 6.5.0-r4 apk python3 3.11.4-r0 apk
qt6-qtbase-sqlite 6.5.0-r4 apk python3-pyc 3.11.4-r0 apk
readline 8.2.1-r1 apk python3-pycache-pyc0 3.11.4-r0 apk
runtime.any.System.Collections 4.3.0 dotnet qbittorrent-nox 4.5.3-r0 apk
runtime.any.System.Diagnostics.Tools 4.3.0 dotnet qt6-qtbase 6.5.1-r1 apk
runtime.any.System.Diagnostics.Tracing 4.3.0 dotnet qt6-qtbase-sqlite 6.5.1-r1 apk
runtime.any.System.Globalization 4.3.0 dotnet readline 8.2.1-r2 apk
runtime.any.System.Globalization.Calendars 4.3.0 dotnet runtime.any.System.Collections 4.3.0 dotnet
runtime.any.System.IO 4.3.0 dotnet runtime.any.System.Diagnostics.Tools 4.3.0 dotnet
runtime.any.System.Reflection 4.3.0 dotnet runtime.any.System.Diagnostics.Tracing 4.3.0 dotnet
runtime.any.System.Reflection.Extensions 4.3.0 dotnet runtime.any.System.Globalization 4.3.0 dotnet
runtime.any.System.Reflection.Primitives 4.3.0 dotnet runtime.any.System.Globalization.Calendars 4.3.0 dotnet
runtime.any.System.Resources.ResourceManager 4.3.0 dotnet runtime.any.System.IO 4.3.0 dotnet
runtime.any.System.Runtime 4.3.0 dotnet runtime.any.System.Reflection 4.3.0 dotnet
runtime.any.System.Runtime.Handles 4.3.0 dotnet runtime.any.System.Reflection.Extensions 4.3.0 dotnet
runtime.any.System.Runtime.InteropServices 4.3.0 dotnet runtime.any.System.Reflection.Primitives 4.3.0 dotnet
runtime.any.System.Text.Encoding 4.3.0 dotnet runtime.any.System.Resources.ResourceManager 4.3.0 dotnet
runtime.any.System.Text.Encoding.Extensions 4.3.0 dotnet runtime.any.System.Runtime 4.3.0 dotnet
runtime.any.System.Threading.Tasks 4.3.0 dotnet runtime.any.System.Runtime.Handles 4.3.0 dotnet
runtime.any.System.Threading.Timer 4.3.0 dotnet runtime.any.System.Runtime.InteropServices 4.3.0 dotnet
runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet runtime.any.System.Text.Encoding 4.3.0 dotnet
runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet runtime.any.System.Text.Encoding.Extensions 4.3.0 dotnet
runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet runtime.any.System.Threading.Tasks 4.3.0 dotnet
runtime.native.System 4.3.0 dotnet runtime.any.System.Threading.Timer 4.3.0 dotnet
runtime.native.System.IO.Compression 4.3.0 dotnet runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.native.System.Net.Http 4.3.0 dotnet runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.native.System.Security.Cryptography.Apple 4.3.0 dotnet runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet runtime.native.System 4.3.0 dotnet
runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet runtime.native.System.IO.Compression 4.3.0 dotnet
runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet runtime.native.System.Net.Http 4.3.0 dotnet
runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple 4.3.0 dotnet runtime.native.System.Security.Cryptography.Apple 4.3.0 dotnet
runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple 4.3.0 dotnet
runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.unix.Microsoft.Win32.Primitives 4.3.0 dotnet runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.unix.System.Console 4.3.0 dotnet runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.unix.System.Diagnostics.Debug 4.3.0 dotnet runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.unix.System.IO.FileSystem 4.3.0 dotnet runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.unix.System.Net.Primitives 4.3.0 dotnet runtime.unix.Microsoft.Win32.Primitives 4.3.0 dotnet
runtime.unix.System.Net.Sockets 4.3.0 dotnet runtime.unix.System.Console 4.3.0 dotnet
runtime.unix.System.Private.Uri 4.3.0 dotnet runtime.unix.System.Diagnostics.Debug 4.3.0 dotnet
runtime.unix.System.Runtime.Extensions 4.3.0 dotnet runtime.unix.System.IO.FileSystem 4.3.0 dotnet
scanelf 1.3.7-r1 apk runtime.unix.System.Net.Primitives 4.3.0 dotnet
shadow 4.13-r2 apk runtime.unix.System.Net.Sockets 4.3.0 dotnet
skalibs 2.13.1.1-r1 apk runtime.unix.System.Private.Uri 4.3.0 dotnet
sqlite-libs 3.41.2-r2 apk runtime.unix.System.Runtime.Extensions 4.3.0 dotnet
ssl_client 1.36.0-r9 apk scanelf 1.3.7-r1 apk
tzdata 2023c-r1 apk shadow 4.13-r6 apk
utmps-libs 0.1.2.1-r1 apk skalibs 2.13.1.1-r2 apk
xz-libs 5.4.3-r0 apk sqlite-libs 3.42.0-r2 apk
zlib 1.2.13-r1 apk ssl_client 1.36.1-r1 apk
zstd-libs 1.5.5-r4 apk tzdata 2023c-r1 apk
utmps-libs 0.1.2.1-r2 apk
xz-libs 5.4.3-r1 apk
zlib 1.2.13-r2 apk
zstd-libs 1.5.5-r5 apk

View File

@@ -11,7 +11,6 @@ project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_
available_architectures: available_architectures:
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"} - { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"} - { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
# development version # development version
development_versions: true development_versions: true
@@ -69,6 +68,8 @@ app_setup_block: |
# changelog # changelog
changelogs: changelogs:
- { date: "17.06.23:", desc: "Deprecate armhf as per [https://www.linuxserver.io/armhf](https://www.linuxserver.io/armhf)." }
- { date: "10.06.23:", desc: "Bump unrar to 6.2.8." }
- { date: "23.02.23:", desc: "Add qt6-qtbase-sqlite to support SQLite database for resume files."} - { date: "23.02.23:", desc: "Add qt6-qtbase-sqlite to support SQLite database for resume files."}
- { date: "29.11.22:", desc: "Add openssl1.1-compat for qbittorrent-cli." } - { date: "29.11.22:", desc: "Add openssl1.1-compat for qbittorrent-cli." }
- { date: "31.10.22:", desc: "Add libtorrentv1 branch." } - { date: "31.10.22:", desc: "Add libtorrentv1 branch." }