Compare commits

..

26 Commits

Author SHA1 Message Date
LinuxServer-CI
0d8c5aa390 Bot Updating Package Versions 2020-02-14 03:52:59 +00:00
LinuxServer-CI
aa73a745f3 Bot Updating Package Versions 2020-02-10 17:06:58 -05:00
tobbenb
9d7a35ba91 Remove docker-tvheadend.md file 2020-02-10 13:32:00 -08:00
tobbenb
7253c86d23 Forgot requests package for arm 2020-02-10 13:32:00 -08:00
tobbenb
317114ce56 Add requests and perl-json-xs package 2020-02-10 13:32:00 -08:00
LinuxServer-CI
922de73700 Bot Updating Package Versions 2020-02-07 03:49:33 +00:00
LinuxServer-CI
0dff29da35 Bot Updating Package Versions 2020-01-17 03:30:14 +00:00
LinuxServer-CI
6d325b1f7e Bot Updating Package Versions 2020-01-09 22:36:43 -05:00
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
LinuxServer-CI
8507c5fb2e Bot Updating Templated Files 2019-10-10 22:04:33 -04:00
LinuxServer-CI
c60559b46f Bot Updating Templated Files 2019-10-10 22:03:04 -04:00
aptalca
70b794cabc Improve permission fixing on render & dvb devices 2019-10-02 17:10:12 -04:00
LinuxServer-CI
9a7b46c55c Bot Updating Package Versions 2019-09-26 22:46:14 -04:00
12 changed files with 437 additions and 286 deletions

View File

@@ -1,21 +1,34 @@
<!--- Provide a general summary of the issue in the Title above -->
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
<!--- If you have an issue with the project, please provide us with the following information -->
If you are new to Docker or this application our issue tracker is **ONLY** used for reporting bugs or requesting features. Please use [our discord server](https://discord.gg/YWrKVTn) for general support.
<!--- Host OS -->
<!--- Command line users, your run/create command, GUI/Unraid users, a screenshot of your template settings. -->
<!--- Docker log output, docker log <container-name> -->
<!--- Mention if you're using symlinks on any of the volume mounts. -->
<!--- Provide a general summary of the issue in the Title above -->
------------------------------
<!--- If you have a suggestion or fix for the project, please provide us with the following information -->
## Expected Behavior
<!--- Tell us what should happen -->
<!--- What you think your suggestion brings to the project, or fixes with the project -->
<!--- If it's a fix, would it be better suited as a Pull request to the repo ? -->
## Current Behavior
<!--- Tell us what happens instead of the expected behavior -->
## Thanks, team linuxserver.io
## Steps to Reproduce
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
<!--- reproduce this bug. Include code to reproduce, if relevant -->
1.
2.
3.
4.
## Environment
**OS:**
**CPU architecture:** x86_64/arm32/arm64
**How docker service was installed:**
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
## Command used to create docker container (run/create/compose/screenshot)
<!--- Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container -->
## Docker logs
<!--- Provide a full docker log, output of "docker logs tvheadend" -->

View File

@@ -6,10 +6,34 @@
<!--- Before submitting a pull request please check the following -->
<!--- That you have made a branch in your fork, we'd rather not merge from your master -->
<!--- If this is a fix for a typo in code or documentation in the README please file an issue and let us sort it out we do not need a PR -->
<!--- Ask yourself if this modification is something the whole userbase will benefit from, if this is a specific change for corner case functionality or plugins please look at making a Docker Mod or local script https://blog.linuxserver.io/2019/09/14/customizing-our-containers/ -->
<!--- That if the PR is addressing an existing issue include, closes #<issue number> , in the body of the PR commit message -->
<!--- You have included links to any files / patches etc your PR may be using in the body of the PR commit message -->
<!--- -->
<!--- We maintain a changelog of major revisions to the container at the end of readme-vars.yml in the root of this repository, please add your changes there if appropriate -->
## Thanks, team linuxserver.io
<!--- Coding guidelines: -->
<!--- 1. Installed packages in the Dockerfiles should be in alphabetical order -->
<!--- 2. Changes to Dockerfile should be replicated in Dockerfile.armhf and Dockerfile.aarch64 if applicable -->
<!--- 3. Indentation style (tabs vs 4 spaces vs 1 space) should match the rest of the document -->
<!--- 4. Readme is auto generated from readme-vars.yml, make your changes there -->
------------------------------
We welcome all PRs though this doesnt guarantee it will be accepted.
## Description:
<!--- Describe your changes in detail -->
## Benefits of this PR and context:
<!--- Please explain why we should accept this PR. If this fixes an outstanding bug, please reference the issue # -->
## How Has This Been Tested?
<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran to -->
<!--- see how your change affects other areas of the code, etc. -->
## Source / References:
<!--- Please include any forum posts/github links relevant to the PR -->

View File

@@ -1,4 +1,4 @@
FROM lsiobase/alpine:3.10 as buildstage
FROM lsiobase/alpine:3.11 as buildstage
############## build stage ##############
# package versions
@@ -29,6 +29,7 @@ RUN \
gcc \
gettext-dev \
git \
gnu-libiconv-dev \
gzip \
jq \
libcurl \
@@ -74,6 +75,7 @@ RUN \
perl-io-socket-ssl \
perl-io-stringy \
perl-json \
perl-json-xs \
perl-libwww \
perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \
@@ -108,10 +110,7 @@ RUN \
wget \
x264-dev \
x265-dev \
zlib-dev && \
apk add --no-cache \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv-dev
zlib-dev
RUN \
echo "**** remove musl iconv.h and replace with gnu-iconv.h ****" && \
@@ -128,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 && \
@@ -220,7 +221,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
@@ -239,6 +240,7 @@ RUN \
curl \
ffmpeg \
ffmpeg-libs \
gnu-libiconv \
gzip \
libcrypto1.1 \
libcurl \
@@ -283,6 +285,7 @@ RUN \
perl-io-socket-ssl \
perl-io-stringy \
perl-json \
perl-json-xs \
perl-libwww \
perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \
@@ -308,6 +311,7 @@ RUN \
perl-xml-treepp \
perl-xml-twig \
perl-xml-writer \
py3-requests \
python \
tar \
uriparser \
@@ -315,9 +319,6 @@ RUN \
x264 \
x265 \
zlib && \
apk add --no-cache \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv && \
echo "**** Add Picons ****" && \
mkdir -p /picons && \
curl -o \
@@ -335,4 +336,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
@@ -29,6 +29,7 @@ RUN \
gcc \
gettext-dev \
git \
gnu-libiconv-dev \
gzip \
jq \
libcurl \
@@ -73,6 +74,7 @@ RUN \
perl-io-socket-ssl \
perl-io-stringy \
perl-json \
perl-json-xs \
perl-libwww \
perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \
@@ -107,10 +109,7 @@ RUN \
wget \
x264-dev \
x265-dev \
zlib-dev && \
apk add --no-cache \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv-dev
zlib-dev
RUN \
echo "**** remove musl iconv.h and replace with gnu-iconv.h ****" && \
@@ -127,6 +126,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 +219,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
@@ -237,6 +238,7 @@ RUN \
curl \
ffmpeg \
ffmpeg-libs \
gnu-libiconv \
gzip \
libcrypto1.1 \
libcurl \
@@ -278,6 +280,7 @@ RUN \
perl-io-socket-ssl \
perl-io-stringy \
perl-json \
perl-json-xs \
perl-libwww \
perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \
@@ -303,6 +306,7 @@ RUN \
perl-xml-treepp \
perl-xml-twig \
perl-xml-writer \
py3-requests \
python \
tar \
uriparser \
@@ -310,9 +314,6 @@ RUN \
x264 \
x265 \
zlib && \
apk add --no-cache \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv && \
echo "**** Add Picons ****" && \
mkdir -p /picons && \
curl -o \
@@ -330,4 +331,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
@@ -29,6 +29,7 @@ RUN \
gcc \
gettext-dev \
git \
gnu-libiconv-dev \
gzip \
jq \
libcurl \
@@ -73,6 +74,7 @@ RUN \
perl-io-socket-ssl \
perl-io-stringy \
perl-json \
perl-json-xs \
perl-libwww \
perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \
@@ -107,10 +109,7 @@ RUN \
wget \
x264-dev \
x265-dev \
zlib-dev && \
apk add --no-cache \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv-dev
zlib-dev
RUN \
echo "**** remove musl iconv.h and replace with gnu-iconv.h ****" && \
@@ -127,6 +126,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 +219,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
@@ -237,6 +238,7 @@ RUN \
curl \
ffmpeg \
ffmpeg-libs \
gnu-libiconv \
gzip \
libcrypto1.1 \
libcurl \
@@ -278,6 +280,7 @@ RUN \
perl-io-socket-ssl \
perl-io-stringy \
perl-json \
perl-json-xs \
perl-libwww \
perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \
@@ -303,6 +306,7 @@ RUN \
perl-xml-treepp \
perl-xml-twig \
perl-xml-writer \
py3-requests \
python \
tar \
uriparser \
@@ -310,9 +314,6 @@ RUN \
x264 \
x265 \
zlib && \
apk add --no-cache \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv && \
echo "**** Add Picons ****" && \
mkdir -p /picons && \
curl -o \
@@ -330,4 +331,4 @@ COPY root/ /
# ports and volumes
EXPOSE 9981 9982
VOLUME /config /recordings
VOLUME /config

218
Jenkinsfile vendored
View File

@@ -2,6 +2,10 @@ pipeline {
agent {
label 'X86-64-MULTI'
}
options {
buildDiscarder(logRotator(numToKeepStr: '10', daysToKeepStr: '60'))
parallelsAlwaysFailFast()
}
// Input to determine if this is a package check
parameters {
string(defaultValue: 'false', description: 'package check run', name: 'PACKAGE_CHECK')
@@ -10,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'
@@ -52,22 +58,7 @@ pipeline {
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
env.PULL_REQUEST = env.CHANGE_ID
env.LICENSE_TAG = sh(
script: '''#!/bin/bash
if [ -e LICENSE ] ; then
cat LICENSE | md5sum | cut -c1-8
else
echo none
fi''',
returnStdout: true).trim()
env.FUNDING_TAG = sh(
script: '''#!/bin/bash
if [ -e ./.github/FUNDING.yml ] ; then
cat ./.github/FUNDING.yml | md5sum | cut -c1-8
else
echo none
fi''',
returnStdout: true).trim()
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE.md ./.github/PULL_REQUEST_TEMPLATE.md'
}
script{
env.LS_RELEASE_NUMBER = sh(
@@ -147,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 {
@@ -165,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 {
@@ -183,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 {
@@ -238,35 +238,32 @@ pipeline {
TEMPDIR=$(mktemp -d)
docker pull linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins linuxserver/jenkins-builder:latest
docker pull linuxserver/doc-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/readme linuxserver/doc-builder:latest
if [ "$(md5sum ${TEMPDIR}/${LS_REPO}/Jenkinsfile | awk '{ print $1 }')" != "$(md5sum Jenkinsfile | awk '{ print $1 }')" ] || \
[ "$(md5sum ${TEMPDIR}/${CONTAINER_NAME}/README.md | awk '{ print $1 }')" != "$(md5sum README.md | awk '{ print $1 }')" ] || \
[ "$(cat ${TEMPDIR}/${LS_REPO}/LICENSE | md5sum | cut -c1-8)" != "${LICENSE_TAG}" ] || \
[ "$(cat ${TEMPDIR}/${LS_REPO}/.github/FUNDING.yml | md5sum | cut -c1-8)" != "${FUNDING_TAG}" ]; then
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
if [[ "${CURRENTHASH}" != "${NEWHASH}" ]]; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git checkout -f master
cp ${TEMPDIR}/${CONTAINER_NAME}/README.md ${TEMPDIR}/repo/${LS_REPO}/
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/LICENSE ${TEMPDIR}/repo/${LS_REPO}/
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.github/FUNDING.yml ${TEMPDIR}/repo/${LS_REPO}/.github/FUNDING.yml
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/
cd ${TEMPDIR}/repo/${LS_REPO}/
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git add Jenkinsfile README.md LICENSE ./.github/FUNDING.yml
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git commit -m 'Bot Updating Templated Files'
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
git add ${TEMPLATED_FILES}
git commit -m 'Bot Updating Templated Files'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
else
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
fi
mkdir -p ${TEMPDIR}/gitbook
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation
if [[ "${BRANCH_NAME}" == "master" ]] && [[ (! -f ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
cp ${TEMPDIR}/${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
if [[ "${BRANCH_NAME}" == "master" ]] && [[ (! -f ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
cd ${TEMPDIR}/gitbook/docker-documentation/
git add images/docker-${CONTAINER_NAME}.md
git commit -m 'Bot Updating Templated Files'
git commit -m 'Bot Updating Documentation'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all
fi
rm -Rf ${TEMPDIR}'''
@@ -293,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
############### */
@@ -524,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 || :'''
}
}
}
@@ -553,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} || :
'''
}
}
}
@@ -676,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,9 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **27.12.19:** - Add requests and perl-json-xs package.
* **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.
* **28.06.19:** - Rebasing to alpine 3.10.

View File

@@ -1,113 +1,115 @@
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-r9
bzip2-1.0.8-r1
ca-certificates-20191127-r1
ca-certificates-cacert-20191127-r1
coreutils-8.31-r0
curl-7.66.0-r0
curl-7.67.0-r0
elfutils-libelf-0.168-r2
expat-2.2.7-r1
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.4-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-r2
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-canary-stability-2013-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-common-sense-3.74-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 +117,120 @@ 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-json-xs-4.02-r1
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-types-serialiser-1.0-r1
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
py3-certifi-2019.9.11-r2
py3-chardet-3.0.4-r3
py3-idna-2.8-r3
py3-requests-2.22.0-r0
py3-urllib3-1.25.7-r1
python2-2.7.16-r3
python3-3.8.1-r0
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-r9
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

@@ -11,7 +11,6 @@ requires 'HTML::TableExtract' ;
requires 'HTTP::Cache::Transparent' => ">= 1.3, != 1.4" ;
requires 'inc' ;
requires 'JSON::PP' ;
requires 'JSON::XS' ;
requires 'LWP::Simple' ;
requires 'LWP::UserAgent' ;
requires 'PerlIO::gzip' ;

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,9 @@ app_setup_block: |
# changelog
changelogs:
- { date: "27.12.19:", desc: "Add requests and perl-json-xs package." }
- { 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." }
- { date: "28.06.19:", desc: "Rebasing to alpine 3.10." }

View File

@@ -1,34 +1,26 @@
#!/usr/bin/with-contenv bash
# check for the existence of a video and/or tuner device
if [ -e /dev/dri ] || [ -e /dev/dvb ]; then
if [ -e /dev/dri ]; then
VIDEO_GID=$(stat -c '%g' /dev/dri/* | grep -v '^0$' | head -n 1)
FILES=$(find /dev/dri /dev/dvb -type c -print 2>/dev/null)
for i in $FILES
do
VIDEO_GID=$(stat -c '%g' "$i")
if id -G abc | grep -qw "$VIDEO_GID"; then
touch /groupadd
else
VIDEO_GID=$(stat -c '%g' /dev/dvb/* | grep -v '^0$' | head -n 1)
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-z0-9' | head -c8)"
groupadd "$VIDEO_NAME"
groupmod -g "$VIDEO_GID" "$VIDEO_NAME"
fi
usermod -a -G "$VIDEO_NAME" abc
touch /groupadd
fi
fi
# just add abc to root if stuff in dri/dvb is root owned
if [ -z "${VIDEO_GID}" ]; then
usermod -a -G root abc
exit 0
fi
else
exit 0
fi
done
# Check if this GID matches the current abc user
ABCGID=$(getent group abc | awk -F: '{print $3}')
if [ "${ABCGID}" == "${VIDEO_GID}" ]; then
exit 0
if [ -n "${FILES}" ] && [ ! -f "/groupadd" ]; then
usermod -a -G root abc
fi
# Check if the GID is taken and swap to 65533
CURRENT=$(getent group ${VIDEO_GID} | awk -F: '{print $1}')
if [ -z "${CURRENT}" ] || [ "${CURRENT}" == 'video' ]; then
groupmod -g ${VIDEO_GID} video
usermod -a -G video abc
else
groupmod -g 65533 ${CURRENT}
groupmod -g ${VIDEO_GID} video
usermod -a -G video abc
fi