Compare commits

...

14 Commits

Author SHA1 Message Date
LinuxServer-CI
f2423c1628 Bot Updating Package Versions 2019-12-28 02:34:07 +01:00
LinuxServer-CI
6a902e358e Bot Updating Templated Files 2019-12-28 01:06:03 +00:00
tobbenb
05e3e94c17 Forgot alot of shit 2019-12-27 17:05:03 -08:00
tobbenb
f69f0308e8 Update to Alpine 3.11 2019-12-27 17:05:03 -08:00
LinuxServer-CI
0aa53af054 Bot Updating Package Versions 2019-12-27 03:37:00 +00:00
LinuxServer-CI
8290519f1e Bot Updating Package Versions 2019-12-19 22:49:09 -05:00
LinuxServer-CI
99f9917b5f Bot Updating Templated Files 2019-11-28 21:17:02 +00:00
LinuxServer-CI
0922cf5d87 Bot Updating Package Versions 2019-11-15 04:50:09 +01:00
LinuxServer-CI
7bcfb3bdf2 Bot Updating Package Versions 2019-10-31 22:45:55 +01:00
LinuxServer-CI
f8a739bf42 Bot Updating Templated Files 2019-10-31 17:16:57 -04:00
thelamer
42d5564cea no need for dupe regex set 2019-10-19 15:32:55 -07:00
Bernhard Berger
f95217ed6d fix invalid random pattern for creation of groups (only lowercase + number allowed) 2019-10-19 15:32:55 -07:00
LinuxServer-CI
308e7be673 Bot Updating Package Versions 2019-10-18 17:00:20 -04:00
LinuxServer-CI
797285de84 Bot Updating Package Versions 2019-10-14 17:01:51 -04:00
9 changed files with 316 additions and 190 deletions

View File

@@ -1,4 +1,4 @@
FROM lsiobase/alpine:3.10 as buildstage
FROM lsiobase/alpine:3.11 as buildstage
############## build stage ##############
# package versions
@@ -128,6 +128,8 @@ RUN \
git clone https://github.com/XMLTV/xmltv.git /tmp/xmltv && \
cd /tmp/xmltv && \
git checkout ${XMLTV_VER} && \
echo "**** Fix test for xmltv alpine 3.11 ****" && \
patch -p1 -i /tmp/patches/test_tv_imdb.t.patch && \
echo "**** Perl 5.26 fixes for XMTLV ****" && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_latex && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_text && \
@@ -220,7 +222,7 @@ RUN \
make DESTDIR=/tmp/comskip-build install
############## runtime stage ##############
FROM lsiobase/alpine:3.10
FROM lsiobase/alpine:3.11
# set version label
ARG BUILD_DATE
@@ -335,4 +337,4 @@ COPY root/ /
# ports and volumes
EXPOSE 9981 9982
VOLUME /config /recordings
VOLUME /config

View File

@@ -1,4 +1,4 @@
FROM lsiobase/alpine:arm64v8-3.10 as buildstage
FROM lsiobase/alpine:arm64v8-3.11 as buildstage
############## build stage ##############
# package versions
@@ -127,6 +127,8 @@ RUN \
git clone https://github.com/XMLTV/xmltv.git /tmp/xmltv && \
cd /tmp/xmltv && \
git checkout ${XMLTV_VER} && \
echo "**** Fix test for xmltv alpine 3.11 ****" && \
patch -p1 -i /tmp/patches/test_tv_imdb.t.patch && \
echo "**** Perl 5.26 fixes for XMTLV ****" && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_latex && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_text && \
@@ -218,7 +220,7 @@ RUN \
make DESTDIR=/tmp/comskip-build install
############## runtime stage ##############
FROM lsiobase/alpine:arm64v8-3.10
FROM lsiobase/alpine:arm64v8-3.11
# set version label
ARG BUILD_DATE
@@ -330,4 +332,4 @@ COPY root/ /
# ports and volumes
EXPOSE 9981 9982
VOLUME /config /recordings
VOLUME /config

View File

@@ -1,4 +1,4 @@
FROM lsiobase/alpine:arm32v7-3.10 as buildstage
FROM lsiobase/alpine:arm32v7-3.11 as buildstage
############## build stage ##############
# package versions
@@ -127,6 +127,8 @@ RUN \
git clone https://github.com/XMLTV/xmltv.git /tmp/xmltv && \
cd /tmp/xmltv && \
git checkout ${XMLTV_VER} && \
echo "**** Fix test for xmltv alpine 3.11 ****" && \
patch -p1 -i /tmp/patches/test_tv_imdb.t.patch && \
echo "**** Perl 5.26 fixes for XMTLV ****" && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_latex && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_text && \
@@ -218,7 +220,7 @@ RUN \
make DESTDIR=/tmp/comskip-build install
############## runtime stage ##############
FROM lsiobase/alpine:arm32v7-3.10
FROM lsiobase/alpine:arm32v7-3.11
# set version label
ARG BUILD_DATE
@@ -330,4 +332,4 @@ COPY root/ /
# ports and volumes
EXPOSE 9981 9982
VOLUME /config /recordings
VOLUME /config

166
Jenkinsfile vendored
View File

@@ -14,6 +14,8 @@ pipeline {
environment {
BUILDS_DISCORD=credentials('build_webhook_url')
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
EXT_GIT_BRANCH = 'master'
EXT_USER = 'tvheadend'
EXT_REPO = 'tvheadend'
@@ -136,6 +138,9 @@ pipeline {
steps {
script{
env.IMAGE = env.DOCKERHUB_IMAGE
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
env.GITHUBIMAGE = 'docker.pkg.github.com/' + env.LS_USER + '/' + env.LS_REPO + '/' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
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
} else {
@@ -154,6 +159,9 @@ pipeline {
steps {
script{
env.IMAGE = env.DEV_DOCKERHUB_IMAGE
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
env.GITHUBIMAGE = 'docker.pkg.github.com/' + env.LS_USER + '/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
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
} else {
@@ -172,6 +180,9 @@ pipeline {
steps {
script{
env.IMAGE = env.PR_DOCKERHUB_IMAGE
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
env.GITHUBIMAGE = 'docker.pkg.github.com/' + env.LS_USER + '/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
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
} else {
@@ -279,6 +290,26 @@ pipeline {
}
}
}
/* #######################
GitLab Mirroring
####################### */
// Ping into Gitlab to mirror this repo and have a registry endpoint
stage("GitLab Mirror"){
when {
environment name: 'EXIT_STATUS', value: ''
}
steps{
sh '''curl -H "Content-Type: application/json" -H "Private-Token: ${GITLAB_TOKEN}" -X POST https://gitlab.com/api/v4/projects \
-d '{"namespace_id":'${GITLAB_NAMESPACE}',\
"name":"'${LS_REPO}'",
"mirror":true,\
"import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\
"issues_access_level":"disabled",\
"merge_requests_access_level":"disabled",\
"repository_access_level":"enabled",\
"visibility":"public"}' '''
}
}
/* ###############
Build Container
############### */
@@ -510,19 +541,32 @@ pipeline {
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
]
]) {
echo 'Logging into DockerHub'
sh '''#! /bin/bash
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
set -e
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
echo $GITHUB_TOKEN | docker login docker.pkg.github.com -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
for PUSHIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest
docker push ${PUSHIMAGE}:latest
docker push ${PUSHIMAGE}:${META_TAG}
done
for DELETEIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}" "{GITLABIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:${META_TAG} \
${DELETEIMAGE}:latest || :
done
'''
sh "docker tag ${IMAGE}:${META_TAG} ${IMAGE}:latest"
sh "docker push ${IMAGE}:latest"
sh "docker push ${IMAGE}:${META_TAG}"
sh '''docker rmi \
${IMAGE}:${META_TAG} \
${IMAGE}:latest || :'''
}
}
}
@@ -539,46 +583,81 @@ pipeline {
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
]
]) {
sh '''#! /bin/bash
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
'''
sh '''#! /bin/bash
set -e
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
echo $GITHUB_TOKEN | docker login docker.pkg.github.com -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
if [ "${CI}" == "false" ]; then
docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi'''
sh "docker tag ${IMAGE}:amd64-${META_TAG} ${IMAGE}:amd64-latest"
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm32v7-latest"
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ${IMAGE}:arm64v8-latest"
sh "docker push ${IMAGE}:amd64-${META_TAG}"
sh "docker push ${IMAGE}:arm32v7-${META_TAG}"
sh "docker push ${IMAGE}:arm64v8-${META_TAG}"
sh "docker push ${IMAGE}:amd64-latest"
sh "docker push ${IMAGE}:arm32v7-latest"
sh "docker push ${IMAGE}:arm64v8-latest"
sh "docker manifest push --purge ${IMAGE}:latest || :"
sh "docker manifest create ${IMAGE}:latest ${IMAGE}:amd64-latest ${IMAGE}:arm32v7-latest ${IMAGE}:arm64v8-latest"
sh "docker manifest annotate ${IMAGE}:latest ${IMAGE}:arm32v7-latest --os linux --arch arm"
sh "docker manifest annotate ${IMAGE}:latest ${IMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8"
sh "docker manifest push --purge ${IMAGE}:${META_TAG} || :"
sh "docker manifest create ${IMAGE}:${META_TAG} ${IMAGE}:amd64-${META_TAG} ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm64v8-${META_TAG}"
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm32v7-${META_TAG} --os linux --arch arm"
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8"
sh "docker manifest push --purge ${IMAGE}:latest"
sh "docker manifest push --purge ${IMAGE}:${META_TAG}"
sh '''docker rmi \
${IMAGE}:amd64-${META_TAG} \
${IMAGE}:amd64-latest \
${IMAGE}:arm32v7-${META_TAG} \
${IMAGE}:arm32v7-latest \
${IMAGE}:arm64v8-${META_TAG} \
${IMAGE}:arm64v8-latest \
fi
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}"; do
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker push ${MANIFESTIMAGE}:amd64-latest
docker push ${MANIFESTIMAGE}:arm32v7-latest
docker push ${MANIFESTIMAGE}:arm64v8-latest
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-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 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 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 push --purge ${MANIFESTIMAGE}:latest
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
done
for LEGACYIMAGE in "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker tag ${IMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:amd64-${META_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${LEGACYIMAGE}:arm32v7-${META_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${LEGACYIMAGE}:arm64v8-${META_TAG}
docker tag ${LEGACYIMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:latest
docker tag ${LEGACYIMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:${META_TAG}
docker tag ${LEGACYIMAGE}:arm32v7-${META_TAG} ${LEGACYIMAGE}:arm32v7-latest
docker tag ${LEGACYIMAGE}:arm64v8-${META_TAG} ${LEGACYIMAGE}:arm64v8-latest
docker push ${LEGACYIMAGE}:amd64-${META_TAG}
docker push ${LEGACYIMAGE}:arm32v7-${META_TAG}
docker push ${LEGACYIMAGE}:arm64v8-${META_TAG}
docker push ${LEGACYIMAGE}:latest
docker push ${LEGACYIMAGE}:${META_TAG}
docker push ${LEGACYIMAGE}:arm32v7-latest
docker push ${LEGACYIMAGE}:arm64v8-latest
done
'''
sh '''#! /bin/bash
for DELETEIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:amd64-${META_TAG} \
${DELETEIMAGE}:amd64-latest \
${DELETEIMAGE}:arm32v7-${META_TAG} \
${DELETEIMAGE}:arm32v7-latest \
${DELETEIMAGE}:arm64v8-${META_TAG} \
${DELETEIMAGE}:arm64v8-latest || :
done
docker rmi \
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :
'''
}
}
}
@@ -662,16 +741,19 @@ pipeline {
sh 'echo "build aborted"'
}
else if (currentBuild.currentResult == "SUCCESS"){
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}
else {
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}
}
}
cleanup {
cleanWs()
}
}
}

View File

@@ -4,8 +4,8 @@
[![Discord](https://img.shields.io/discord/354974912613449730.svg?style=flat-square&color=E68523&label=Discord&logo=discord&logoColor=FFFFFF)](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.")
[![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?style=flat-square&color=E68523&logo=discourse&logoColor=FFFFFF)](https://discourse.linuxserver.io "post on our community forum.")
[![Fleet](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
[![Podcast](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=Podcast)](https://anchor.fm/linuxserverio "on hiatus. Coming back soon (late 2018).")
[![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?style=flat-square&color=E68523&label=Open%20Collective%20Supporters)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget")
[![GitHub](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=GitHub&logo=github&logoColor=FFFFFF)](https://github.com/linuxserver "view the source for all of our repositories.")
[![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?style=flat-square&color=E68523&label=Supporters&logo=open%20collective&logoColor=FFFFFF)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget")
The [LinuxServer.io](https://linuxserver.io) team brings you another container release featuring :-
@@ -20,15 +20,19 @@ Find us at:
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team.
* [Discourse](https://discourse.linuxserver.io) - post on our community forum.
* [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images.
* [Podcast](https://anchor.fm/linuxserverio) - on hiatus. Coming back soon (late 2018).
* [GitHub](https://github.com/linuxserver) - view the source for all of our repositories.
* [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget
# [linuxserver/tvheadend](https://github.com/linuxserver/docker-tvheadend)
[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-tvheadend.svg?style=flat-square&color=E68523)](https://github.com/linuxserver/docker-tvheadend/releases)
[![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-tvheadend.svg?style=flat-square&color=E68523&logo=github&logoColor=FFFFFF)](https://github.com/linuxserver/docker-tvheadend)
[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-tvheadend.svg?style=flat-square&color=E68523&logo=github&logoColor=FFFFFF)](https://github.com/linuxserver/docker-tvheadend/releases)
[![GitHub Package Repository](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=GitHub%20Package&logo=github&logoColor=FFFFFF)](https://github.com/linuxserver/docker-tvheadend/packages)
[![GitLab Container Registry](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=GitLab%20Registry&logo=gitlab&logoColor=FFFFFF)](https://gitlab.com/Linuxserver.io/docker-tvheadend/container_registry)
[![Quay.io](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=Quay.io)](https://quay.io/repository/linuxserver.io/tvheadend)
[![MicroBadger Layers](https://img.shields.io/microbadger/layers/linuxserver/tvheadend.svg?style=flat-square&color=E68523)](https://microbadger.com/images/linuxserver/tvheadend "Get your own version badge on microbadger.com")
[![MicroBadger Size](https://img.shields.io/microbadger/image-size/linuxserver/tvheadend.svg?style=flat-square&color=E68523)](https://microbadger.com/images/linuxserver/tvheadend "Get your own version badge on microbadger.com")
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/tvheadend.svg?style=flat-square&color=E68523)](https://hub.docker.com/r/linuxserver/tvheadend)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/tvheadend.svg?style=flat-square&color=E68523)](https://hub.docker.com/r/linuxserver/tvheadend)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/tvheadend.svg?style=flat-square&color=E68523&label=pulls&logo=docker&logoColor=FFFFFF)](https://hub.docker.com/r/linuxserver/tvheadend)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/tvheadend.svg?style=flat-square&color=E68523&label=stars&logo=docker&logoColor=FFFFFF)](https://hub.docker.com/r/linuxserver/tvheadend)
[![Build Status](https://ci.linuxserver.io/view/all/job/Docker-Pipeline-Builders/job/docker-tvheadend/job/master/badge/icon?style=flat-square)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-tvheadend/job/master/)
[![](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/tvheadend/latest/badge.svg)](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/tvheadend/latest/index.html)
@@ -138,6 +142,18 @@ Container images are configured using parameters passed at runtime (such as thos
| `--device /dev/dri` | Only needed if you want to use your AMD/Intel GPU for hardware accelerated video encoding (vaapi). |
| `--device /dev/dvb` | Only needed if you want to pass through a DVB card to the container. If you use IPTV or HDHomeRun you can leave it out. |
## Environment variables from files (Docker secrets)
You can set any environment variable from a file by using a special prepend `FILE__`.
As an example:
```
-e FILE__PASSWORD=/run/secrets/mysecretpassword
```
Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file.
## User / Group Identifiers
When using volumes (`-v` flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.
@@ -279,6 +295,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **27.12.19:** - Update to Alpine 3.11.
* **02.10.19:** - Improve permission fixing on render & dvb devices.
* **18.08.19:** - Add AMD drivers.
* **02.08.19:** - Attempt to automatically fix permissions on /dev/dri and /dev/dvb.

View File

@@ -1,113 +1,113 @@
alpine-baselayout-3.1.2-r0
alpine-baselayout-3.2.0-r3
alpine-keys-2.1-r2
alsa-lib-1.1.9-r0
apk-tools-2.10.4-r2
bash-5.0.0-r0
bsd-compat-headers-0.7.1-r0
busybox-1.30.1-r2
bzip2-1.0.6-r7
ca-certificates-20190108-r0
ca-certificates-cacert-20190108-r0
alsa-lib-1.2.1.2-r0
apk-tools-2.10.4-r3
bash-5.0.11-r1
bsd-compat-headers-0.7.2-r0
busybox-1.31.1-r8
bzip2-1.0.8-r1
ca-certificates-20191127-r0
ca-certificates-cacert-20191127-r0
coreutils-8.31-r0
curl-7.66.0-r0
curl-7.67.0-r0
elfutils-libelf-0.168-r2
expat-2.2.8-r0
ffmpeg-4.1.4-r0
ffmpeg-libs-4.1.4-r0
fontconfig-2.13.1-r0
freetype-2.10.0-r0
fribidi-1.0.5-r1
expat-2.2.9-r1
ffmpeg-4.2.1-r3
ffmpeg-libs-4.2.1-r3
fontconfig-2.13.1-r2
freetype-2.10.1-r0
fribidi-1.0.8-r0
gdbm-1.13-r1
gmp-6.1.2-r1
gnu-libiconv-1.15-r2
gnutls-3.6.8-r0
gnutls-3.6.10-r0
gzip-1.10-r0
lame-3.100-r0
libacl-2.2.52-r6
libacl-2.2.53-r0
libass-0.14.0-r0
libattr-2.4.48-r0
libbsd-0.9.1-r0
libbz2-1.0.6-r7
libc-utils-0.7.1-r0
libcrypto1.1-1.1.1d-r0
libcurl-7.66.0-r0
libdrm-2.4.98-r0
libbsd-0.10.0-r0
libbz2-1.0.8-r1
libc-utils-0.7.2-r0
libcrypto1.1-1.1.1d-r3
libcurl-7.67.0-r0
libdrm-2.4.100-r0
libdvbcsa-1.1.0-r1
libffi-3.2.1-r6
libgcc-8.3.0-r0
libgcrypt-1.8.4-r2
libgcc-9.2.0-r3
libgcrypt-1.8.5-r0
libgpg-error-1.36-r2
libhdhomerun-libs-20161117-r1
libhdhomerun-libs-20190621-r0
libidn-1.35-r0
libjpeg-turbo-2.0.2-r0
libogg-1.3.3-r2
libpciaccess-0.14-r0
libjpeg-turbo-2.0.3-r0
libogg-1.3.4-r0
libpciaccess-0.16-r0
libpng-1.6.37-r1
libssl1.1-1.1.1d-r0
libstdc++-8.3.0-r0
libtasn1-4.14-r0
libssl1.1-1.1.1d-r3
libstdc++-9.2.0-r3
libtasn1-4.15.0-r0
libtheora-1.1.1-r14
libtls-standalone-2.9.1-r0
libunistring-0.9.10-r0
liburiparser-0.9.3-r0
libuuid-2.33.2-r0
libva-2.4.1-r0
libva-intel-driver-2.3.0-r0
libvdpau-1.2-r0
libuuid-2.34-r1
libva-2.6.0-r0
libva-intel-driver-2.4.0-r0
libvdpau-1.3-r0
libvorbis-1.3.6-r2
libvpx-1.8.0-r0
libx11-1.6.8-r1
libvpx-1.8.1-r0
libx11-1.6.9-r0
libxau-1.0.9-r0
libxcb-1.13.1-r0
libxdmcp-1.1.3-r0
libxext-1.3.4-r0
libxfixes-5.0.3-r2
libxml2-2.9.9-r2
libxml2-2.9.10-r1
libxshmfence-1.3-r0
libxslt-1.1.33-r1
libxslt-1.1.34-r0
linux-headers-4.19.36-r0
linux-pam-1.3.0-r1
llvm8-libs-8.0.0-r1
mesa-19.0.6-r0
mesa-dri-ati-19.0.6-r0
mesa-glapi-19.0.6-r0
musl-1.1.22-r3
musl-utils-1.1.22-r3
ncurses-libs-6.1_p20190518-r0
ncurses-terminfo-6.1_p20190518-r0
ncurses-terminfo-base-6.1_p20190518-r0
nettle-3.4.1-r1
nghttp2-libs-1.39.2-r0
openssl-1.1.1d-r0
linux-pam-1.3.1-r1
llvm9-libs-9.0.0-r1
mesa-19.2.7-r0
mesa-dri-ati-19.2.7-r0
mesa-glapi-19.2.7-r0
musl-1.1.24-r0
musl-utils-1.1.24-r0
ncurses-libs-6.1_p20191130-r0
ncurses-terminfo-6.1_p20191130-r0
ncurses-terminfo-base-6.1_p20191130-r0
nettle-3.5.1-r0
nghttp2-libs-1.40.0-r0
openssl-1.1.1d-r3
opus-1.3.1-r0
p11-kit-0.23.16.1-r0
pcre2-10.33-r0
perl-5.28.2-r1
perl-archive-zip-1.64-r0
p11-kit-0.23.18.1-r0
pcre2-10.34-r1
perl-5.30.1-r0
perl-archive-zip-1.67-r0
perl-b-hooks-endofscope-0.24-r0
perl-boolean-0.46-r0
perl-capture-tiny-0.48-r0
perl-cgi-4.44-r0
perl-class-data-inheritable-0.08-r0
perl-class-inspector-1.34-r0
perl-class-methodmaker-2.24-r3
perl-class-inspector-1.36-r0
perl-class-methodmaker-2.24-r4
perl-class-singleton-1.5-r0
perl-compress-raw-bzip2-2.086-r1
perl-compress-raw-zlib-2.086-r1
perl-compress-raw-bzip2-2.093-r0
perl-compress-raw-zlib-2.093-r0
perl-cpan-meta-check-0.014-r0
perl-data-dumper-2.173-r1
perl-date-manip-6.77-r0
perl-datetime-1.51-r0
perl-data-dumper-2.173-r3
perl-date-manip-6.79-r0
perl-datetime-1.51-r1
perl-datetime-format-strptime-1.76-r0
perl-datetime-locale-1.23-r0
perl-datetime-timezone-2.19-r0
perl-dbd-sqlite-1.62-r1
perl-dbi-1.642-r1
perl-datetime-locale-1.25-r0
perl-datetime-timezone-2.38-r0
perl-dbd-sqlite-1.64-r1
perl-dbi-1.642-r2
perl-devel-stacktrace-2.04-r0
perl-devel-symdump-2.18-r0
perl-digest-sha1-2.13-r10
perl-digest-sha1-2.13-r11
perl-dist-checkconflicts-0.11-r0
perl-doc-5.28.2-r1
perl-doc-5.30.1-r0
perl-encode-locale-1.05-r1
perl-eval-closure-0.14-r0
perl-exception-class-1.44-r0
@@ -115,112 +115,112 @@ perl-exporter-tiny-1.002001-r0
perl-file-listing-6.04-r1
perl-file-sharedir-1.116-r0
perl-file-sharedir-install-0.13-r0
perl-file-slurp-9999.27-r0
perl-file-slurp-9999.29-r0
perl-file-temp-0.2309-r0
perl-file-which-1.23-r0
perl-getopt-long-2.50-r0
perl-html-parser-3.72-r3
perl-getopt-long-2.51-r0
perl-html-parser-3.72-r4
perl-html-tagset-3.20-r1
perl-html-tree-5.07-r0
perl-http-cookies-6.04-r0
perl-http-daemon-6.01-r1
perl-http-date-6.02-r1
perl-http-cookies-6.08-r0
perl-http-daemon-6.06-r0
perl-http-date-6.05-r0
perl-http-message-6.18-r0
perl-http-negotiate-6.01-r1
perl-importer-0.025-r0
perl-io-1.25-r5
perl-io-compress-2.086-r0
perl-io-html-1.001-r1
perl-io-socket-ssl-2.060-r0
perl-io-stringy-2.111-r1
perl-ipc-run3-0.048-r0
perl-json-2.97000-r0
perl-libwww-6.39-r1
perl-io-1.39-r0
perl-io-compress-2.093-r0
perl-io-html-1.001-r2
perl-io-socket-ssl-2.066-r0
perl-io-stringy-2.112-r0
perl-ipc-run3-0.048-r1
perl-json-4.02-r0
perl-libwww-6.43-r0
perl-lingua-en-numbers-ordinate-1.04-r1
perl-lingua-preferred-0.2.4-r1
perl-list-moreutils-0.428-r0
perl-list-moreutils-xs-0.428-r1
perl-list-moreutils-xs-0.428-r2
perl-lwp-mediatypes-6.04-r0
perl-lwp-useragent-determined-1.07-r0
perl-module-build-0.4229-r0
perl-module-implementation-0.09-r1
perl-module-metadata-1.000036-r0
perl-module-metadata-1.000037-r0
perl-module-pluggable-5.2-r0
perl-module-runtime-0.016-r2
perl-mro-compat-0.13-r0
perl-namespace-autoclean-0.28-r0
perl-namespace-autoclean-0.29-r0
perl-namespace-clean-0.27-r0
perl-net-http-6.19-r0
perl-net-libidn-0.12-r6
perl-net-ssleay-1.85-r5
perl-net-libidn-0.12-r7
perl-net-ssleay-1.88-r0
perl-package-deprecationmanager-0.17-r0
perl-package-stash-0.38-r1
perl-package-stash-xs-0.29-r1
perl-params-util-1.07-r6
perl-params-validate-1.29-r1
perl-params-validationcompiler-0.27-r0
perl-package-stash-xs-0.29-r2
perl-params-util-1.07-r7
perl-params-validate-1.29-r2
perl-params-validationcompiler-0.30-r0
perl-parse-recdescent-1.967015-r1
perl-path-class-0.37-r0
perl-pod-coverage-0.23-r0
perl-role-tiny-2.000006-r0
perl-scalar-list-utils-1.50-r1
perl-role-tiny-2.001004-r0
perl-scalar-list-utils-1.53-r1
perl-scope-guard-0.21-r0
perl-specio-0.42-r0
perl-specio-0.45-r0
perl-sub-exporter-progressive-0.001013-r0
perl-sub-identify-0.14-r2
perl-sub-identify-0.14-r3
perl-sub-info-0.002-r0
perl-sub-install-0.928-r0
perl-sub-name-0.21-r2
perl-sub-quote-2.004000-r0
perl-sub-name-0.26-r0
perl-sub-quote-2.006006-r0
perl-sub-uplevel-0.2800-r0
perl-term-progressbar-2.22-r0
perl-term-readkey-2.38-r1
perl-term-table-0.012-r0
perl-term-readkey-2.38-r2
perl-term-table-0.015-r0
perl-test-exception-0.43-r0
perl-test-fatal-0.014-r1
perl-test-needs-0.002005-r1
perl-test-needs-0.002006-r0
perl-test-pod-1.52-r0
perl-test-requires-0.10-r0
perl-test-simple-1.302164-r0
perl-test-taint-1.08-r0
perl-test-warnings-0.026-r0
perl-test-simple-1.302170-r0
perl-test-taint-1.08-r1
perl-test-warnings-0.027-r0
perl-test-without-module-0.20-r0
perl-test2-plugin-nowarnings-0.07-r0
perl-test2-suite-0.000122-r0
perl-test2-plugin-nowarnings-0.08-r0
perl-test2-suite-0.000127-r0
perl-timedate-2.30-r1
perl-try-tiny-0.30-r1
perl-unicode-string-2.09-r7
perl-unicode-string-2.10-r1
perl-uri-1.76-r0
perl-variable-magic-0.62-r1
perl-variable-magic-0.62-r2
perl-www-robotrules-6.02-r1
perl-xml-libxml-2.0134-r2
perl-xml-libxslt-1.96-r1
perl-xml-libxml-2.0134-r3
perl-xml-libxslt-1.96-r2
perl-xml-namespacesupport-1.12-r0
perl-xml-parser-2.44-r5
perl-xml-sax-0.99-r2
perl-xml-parser-2.46-r0
perl-xml-sax-1.02-r0
perl-xml-sax-base-1.09-r0
perl-xml-treepp-0.43-r1
perl-xml-twig-3.52-r1
perl-xml-writer-0.625-r2
perl-yaml-syck-1.31-r1
python2-2.7.16-r1
readline-8.0.0-r0
scanelf-1.2.3-r0
perl-yaml-syck-1.31-r2
python2-2.7.16-r3
readline-8.0.1-r0
scanelf-1.2.4-r0
sdl2-2.0.10-r0
shadow-4.6-r2
sqlite-libs-3.28.0-r0
ssl_client-1.30.1-r2
tar-1.32-r0
tzdata-2019b-r0
shadow-4.7-r1
sqlite-libs-3.30.1-r1
ssl_client-1.31.1-r8
tar-1.32-r1
tzdata-2019c-r0
uriparser-0.9.3-r0
v4l-utils-libs-1.16.6-r0
v4l-utils-libs-1.18.0-r0
wayland-libs-client-1.17.0-r0
wget-1.20.3-r0
x264-20180304-r1
x264-libs-20180304-r1
x265-3.0-r0
x265-libs-3.0-r0
xvidcore-1.3.4-r1
x264-20191119-r0
x264-libs-20191119-r0
x265-3.2.1-r0
x265-libs-3.2.1-r0
xvidcore-1.3.5-r0
xz-5.2.4-r0
xz-libs-5.2.4-r0
zlib-1.2.11-r1
zlib-1.2.11-r3

View File

@@ -0,0 +1,20 @@
---
t/test_tv_imdb.t | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/t/test_tv_imdb.t b/t/test_tv_imdb.t
index ad504464..4dc281a1 100755
--- a/t/test_tv_imdb.t
+++ b/t/test_tv_imdb.t
@@ -84,9 +84,9 @@ INPUT: foreach my $input (@inputs) {
my $output="$tmpDir/".File::Basename::basename($input)."-output.xml";
# Make temporary directory and split into it.
- my $cmd="$cmds_dir/tv_imdb --quiet --imdbdir '$tmpDir' --with-keywords --with-plot < $input > '$output' 2>&1";
+ my $cmd="$cmds_dir/tv_imdb --quiet --imdbdir '$tmpDir' --with-keywords --with-plot --output '$output' '$input' 2>&1";
if ( $input=~m/movies-only/ ) {
- $cmd="$cmds_dir/tv_imdb --movies-only --quiet --imdbdir '$tmpDir' --with-keywords --with-plot < $input > '$output' 2>&1";
+ $cmd="$cmds_dir/tv_imdb --movies-only --quiet --imdbdir '$tmpDir' --with-keywords --with-plot --output '$output' '$input' 2>&1";
}
#print STDERR "\nRUN:$cmd\n";
my $r = system($cmd);

View File

@@ -126,6 +126,7 @@ app_setup_block: |
# changelog
changelogs:
- { date: "27.12.19:", desc: "Update to Alpine 3.11." }
- { date: "02.10.19:", desc: "Improve permission fixing on render & dvb devices." }
- { date: "18.08.19:", desc: "Add AMD drivers." }
- { date: "02.08.19:", desc: "Attempt to automatically fix permissions on /dev/dri and /dev/dvb." }

View File

@@ -11,7 +11,7 @@ do
if [ ! "${VIDEO_GID}" == '0' ]; then
VIDEO_NAME=$(getent group "${VIDEO_GID}" | awk -F: '{print $1}')
if [ -z "${VIDEO_NAME}" ]; then
VIDEO_NAME="video$(head /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c8)"
VIDEO_NAME="video$(head /dev/urandom | tr -dc 'a-z0-9' | head -c8)"
groupadd "$VIDEO_NAME"
groupmod -g "$VIDEO_GID" "$VIDEO_NAME"
fi
@@ -23,4 +23,4 @@ done
if [ -n "${FILES}" ] && [ ! -f "/groupadd" ]; then
usermod -a -G root abc
fi
fi