forked from Ivasoft/docker-tvheadend
Compare commits
31 Commits
466a0143-l
...
c67ba3ce-l
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
797285de84 | ||
|
|
8507c5fb2e | ||
|
|
c60559b46f | ||
|
|
70b794cabc | ||
|
|
9a7b46c55c | ||
|
|
48be429287 | ||
|
|
0cee1652df | ||
|
|
87a4772008 | ||
|
|
cd589b5edc | ||
|
|
7621f743f9 | ||
|
|
2c722cf6f5 | ||
|
|
fbe55624ba | ||
|
|
05dfb9ffb3 | ||
|
|
ac4f7d401e | ||
|
|
ed43e439b6 | ||
|
|
f406290afe | ||
|
|
7520004527 | ||
|
|
18489b187b | ||
|
|
621a1dc880 | ||
|
|
c6d1618f97 | ||
|
|
7d62763012 | ||
|
|
22930512ea | ||
|
|
d97c1f1796 | ||
|
|
0ca518f159 | ||
|
|
8cd7586acc | ||
|
|
3b258e70bc | ||
|
|
41ebcd4ea6 | ||
|
|
343b9cd5f3 | ||
|
|
33ab472fc7 | ||
|
|
28b17930bd | ||
|
|
7a36e3fe54 |
1
.github/FUNDING.yml
vendored
Executable file
1
.github/FUNDING.yml
vendored
Executable file
@@ -0,0 +1 @@
|
||||
open_collective: linuxserver
|
||||
35
.github/ISSUE_TEMPLATE.md
vendored
35
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,21 +1,34 @@
|
||||
<!--- Provide a general summary of the issue in the Title above -->
|
||||
|
||||
[linuxserverurl]: https://linuxserver.io
|
||||
[][linuxserverurl]
|
||||
|
||||
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.
|
||||
|
||||
<!--- If you have an issue with the project, please provide us with the following information -->
|
||||
<!--- Provide a general summary of the issue in the Title above -->
|
||||
|
||||
<!--- 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. -->
|
||||
------------------------------
|
||||
|
||||
## Expected Behavior
|
||||
<!--- Tell us what should happen -->
|
||||
|
||||
<!--- If you have a suggestion or fix for the project, please provide us with the following information -->
|
||||
## Current Behavior
|
||||
<!--- Tell us what happens instead of the expected behavior -->
|
||||
|
||||
<!--- 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 ? -->
|
||||
## 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.
|
||||
|
||||
## Thanks, team linuxserver.io
|
||||
## 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" -->
|
||||
|
||||
30
.github/PULL_REQUEST_TEMPLATE.md
vendored
30
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -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 PR’s though this doesn’t 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 -->
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM lsiobase/alpine:3.9 as buildstage
|
||||
FROM lsiobase/alpine:3.10 as buildstage
|
||||
############## build stage ##############
|
||||
|
||||
# package versions
|
||||
@@ -220,7 +220,7 @@ RUN \
|
||||
make DESTDIR=/tmp/comskip-build install
|
||||
|
||||
############## runtime stage ##############
|
||||
FROM lsiobase/alpine:3.9
|
||||
FROM lsiobase/alpine:3.10
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
@@ -247,6 +247,7 @@ RUN \
|
||||
libssl1.1 \
|
||||
libva \
|
||||
libva-intel-driver \
|
||||
mesa-dri-ati \
|
||||
libvpx \
|
||||
libxml2 \
|
||||
libxslt \
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM lsiobase/alpine:arm64v8-3.9 as buildstage
|
||||
FROM lsiobase/alpine:arm64v8-3.10 as buildstage
|
||||
############## build stage ##############
|
||||
|
||||
# package versions
|
||||
@@ -218,7 +218,7 @@ RUN \
|
||||
make DESTDIR=/tmp/comskip-build install
|
||||
|
||||
############## runtime stage ##############
|
||||
FROM lsiobase/alpine:arm64v8-3.9
|
||||
FROM lsiobase/alpine:arm64v8-3.10
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM lsiobase/alpine:arm32v7-3.9 as buildstage
|
||||
FROM lsiobase/alpine:arm32v7-3.10 as buildstage
|
||||
############## build stage ##############
|
||||
|
||||
# package versions
|
||||
@@ -218,7 +218,7 @@ RUN \
|
||||
make DESTDIR=/tmp/comskip-build install
|
||||
|
||||
############## runtime stage ##############
|
||||
FROM lsiobase/alpine:arm32v7-3.9
|
||||
FROM lsiobase/alpine:arm32v7-3.10
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
|
||||
44
Jenkinsfile
vendored
44
Jenkinsfile
vendored
@@ -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')
|
||||
@@ -52,14 +56,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.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE.md ./.github/PULL_REQUEST_TEMPLATE.md'
|
||||
}
|
||||
script{
|
||||
env.LS_RELEASE_NUMBER = sh(
|
||||
@@ -230,32 +227,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}" ]; 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 --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
|
||||
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}'''
|
||||
@@ -475,6 +472,7 @@ pipeline {
|
||||
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
|
||||
fi
|
||||
docker run --rm \
|
||||
--shm-size=1gb \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
-e IMAGE=\"${IMAGE}\" \
|
||||
-e DELAY_START=\"${CI_DELAY}\" \
|
||||
|
||||
40
README.md
40
README.md
@@ -1,5 +1,12 @@
|
||||
[](https://linuxserver.io)
|
||||
|
||||
[](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
|
||||
[](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.")
|
||||
[](https://discourse.linuxserver.io "post on our community forum.")
|
||||
[](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
|
||||
[](https://anchor.fm/linuxserverio "on hiatus. Coming back soon (late 2018).")
|
||||
[](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 :-
|
||||
|
||||
* regular and timely application updates
|
||||
@@ -9,17 +16,20 @@ The [LinuxServer.io](https://linuxserver.io) team brings you another container r
|
||||
* regular security updates
|
||||
|
||||
Find us at:
|
||||
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team.
|
||||
* [IRC](https://irc.linuxserver.io) - on freenode at `#linuxserver.io`. Our primary support channel is Discord.
|
||||
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
|
||||
* [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).
|
||||
* [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)
|
||||
[](https://discord.gg/YWrKVTn)
|
||||
[](https://microbadger.com/images/linuxserver/tvheadend "Get your own version badge on microbadger.com")
|
||||
[](https://microbadger.com/images/linuxserver/tvheadend "Get your own version badge on microbadger.com")
|
||||

|
||||

|
||||
[](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-tvheadend/job/master/)
|
||||
[](https://github.com/linuxserver/docker-tvheadend/releases)
|
||||
[](https://microbadger.com/images/linuxserver/tvheadend "Get your own version badge on microbadger.com")
|
||||
[](https://microbadger.com/images/linuxserver/tvheadend "Get your own version badge on microbadger.com")
|
||||
[](https://hub.docker.com/r/linuxserver/tvheadend)
|
||||
[](https://hub.docker.com/r/linuxserver/tvheadend)
|
||||
[](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-tvheadend/job/master/)
|
||||
[](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/tvheadend/latest/index.html)
|
||||
|
||||
[Tvheadend](https://www.tvheadend.org/) works as a proxy server: is a TV streaming server and recorder for Linux, FreeBSD and Android supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, ISDB-T, IPTV, SAT>IP and HDHomeRun as input sources.
|
||||
@@ -72,14 +82,15 @@ docker create \
|
||||
-v <path to data>:/config \
|
||||
-v <path to recordings>:/recordings \
|
||||
--device /dev/dri:/dev/dri `#optional` \
|
||||
--device /dev/drb:/dev/dvb `#optional` \
|
||||
--device /dev/dvb:/dev/dvb `#optional` \
|
||||
--restart unless-stopped \
|
||||
linuxserver/tvheadend
|
||||
```
|
||||
|
||||
#### Host vs. Bridge
|
||||
|
||||
If you use IPTV, SAT>IP or HDHomeRun, you need to create the container with --net=host and remove the -p flags. This is because of a limitation in docker and multicast.
|
||||
If you use IPTV, SAT>IP or HDHomeRun, you need to create the container with --net=host and remove the -p flags. This is because to work with these services Tvheadend requires a multicast address of `239.255.255.250` and a UDP port of `1900` which at this time is not possible with docker bridge mode.
|
||||
If you have other host services which also use multicast such as SSDP/DLNA/Emby you may experience stabilty problems. These can be solved by giving tvheadend its own IP using macavlan.
|
||||
|
||||
|
||||
### docker-compose
|
||||
@@ -106,7 +117,7 @@ services:
|
||||
- 9982:9982
|
||||
devices:
|
||||
- /dev/dri:/dev/dri #optional
|
||||
- /dev/drb:/dev/dvb #optional
|
||||
- /dev/dvb:/dev/dvb #optional
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
@@ -242,6 +253,9 @@ Below are the instructions for updating containers:
|
||||
containrrr/watchtower \
|
||||
--run-once tvheadend
|
||||
```
|
||||
|
||||
**Note:** We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using Docker Compose.
|
||||
|
||||
* You can also remove the old dangling images: `docker image prune`
|
||||
|
||||
## Building locally
|
||||
@@ -265,6 +279,10 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
|
||||
|
||||
## Versions
|
||||
|
||||
* **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.
|
||||
* **27.03.19:** - Rebase to Alpine 3.9, fix init logic to only chown once.
|
||||
* **23.03.19:** - Switching to new Base images, shift to arm32v7 tag.
|
||||
* **01.03.19:** - Bump xmltv to 0.6.1.
|
||||
|
||||
@@ -1,107 +1,113 @@
|
||||
alpine-baselayout-3.1.0-r3
|
||||
alpine-keys-2.1-r1
|
||||
alsa-lib-1.1.8-r0
|
||||
apk-tools-2.10.3-r1
|
||||
bash-4.4.19-r1
|
||||
alpine-baselayout-3.1.2-r0
|
||||
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.29.3-r10
|
||||
bzip2-1.0.6-r6
|
||||
busybox-1.30.1-r2
|
||||
bzip2-1.0.6-r7
|
||||
ca-certificates-20190108-r0
|
||||
ca-certificates-cacert-20190108-r0
|
||||
coreutils-8.30-r0
|
||||
curl-7.64.0-r1
|
||||
expat-2.2.6-r0
|
||||
ffmpeg-4.0.2-r0
|
||||
ffmpeg-libs-4.0.2-r0
|
||||
coreutils-8.31-r0
|
||||
curl-7.66.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.9.1-r2
|
||||
fribidi-1.0.5-r0
|
||||
freetype-2.10.0-r0
|
||||
fribidi-1.0.5-r1
|
||||
gdbm-1.13-r1
|
||||
gmp-6.1.2-r1
|
||||
gnu-libiconv-1.15-r2
|
||||
gnutls-3.6.7-r0
|
||||
gnutls-3.6.8-r0
|
||||
gzip-1.10-r0
|
||||
lame-3.100-r0
|
||||
libacl-2.2.52-r5
|
||||
libacl-2.2.52-r6
|
||||
libass-0.14.0-r0
|
||||
libattr-2.4.47-r7
|
||||
libbsd-0.8.6-r2
|
||||
libbz2-1.0.6-r6
|
||||
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.1b-r1
|
||||
libcurl-7.64.0-r1
|
||||
libdrm-2.4.96-r0
|
||||
libcrypto1.1-1.1.1d-r0
|
||||
libcurl-7.66.0-r0
|
||||
libdrm-2.4.98-r0
|
||||
libdvbcsa-1.1.0-r1
|
||||
libffi-3.2.1-r6
|
||||
libgcc-8.3.0-r0
|
||||
libgcrypt-1.8.4-r0
|
||||
libgpg-error-1.33-r0
|
||||
libgcrypt-1.8.5-r0
|
||||
libgpg-error-1.36-r2
|
||||
libhdhomerun-libs-20161117-r1
|
||||
libidn-1.35-r0
|
||||
libjpeg-turbo-1.5.3-r4
|
||||
libjpeg-turbo-2.0.2-r0
|
||||
libogg-1.3.3-r2
|
||||
libpciaccess-0.14-r0
|
||||
libpng-1.6.37-r0
|
||||
libssh2-1.8.2-r0
|
||||
libssl1.1-1.1.1b-r1
|
||||
libpng-1.6.37-r1
|
||||
libssl1.1-1.1.1d-r0
|
||||
libstdc++-8.3.0-r0
|
||||
libtasn1-4.13-r0
|
||||
libtheora-1.1.1-r13
|
||||
libtls-standalone-2.7.4-r6
|
||||
libtasn1-4.14-r0
|
||||
libtheora-1.1.1-r14
|
||||
libtls-standalone-2.9.1-r0
|
||||
libunistring-0.9.10-r0
|
||||
libuuid-2.33-r0
|
||||
libva-2.2.0-r0
|
||||
libva-intel-driver-2.2.0-r0
|
||||
libvdpau-1.1.1-r2
|
||||
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
|
||||
libvorbis-1.3.6-r2
|
||||
libvpx-1.6.1-r1
|
||||
libx11-1.6.7-r0
|
||||
libxau-1.0.8-r3
|
||||
libxcb-1.13-r2
|
||||
libxdmcp-1.1.2-r5
|
||||
libxext-1.3.3-r3
|
||||
libvpx-1.8.0-r0
|
||||
libx11-1.6.8-r1
|
||||
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-r1
|
||||
libxml2-2.9.9-r2
|
||||
libxshmfence-1.3-r0
|
||||
libxslt-1.1.33-r1
|
||||
linux-headers-4.18.13-r1
|
||||
linux-pam-1.3.0-r0
|
||||
musl-1.1.20-r4
|
||||
musl-utils-1.1.20-r4
|
||||
ncurses-libs-6.1_p20190105-r0
|
||||
ncurses-terminfo-6.1_p20190105-r0
|
||||
ncurses-terminfo-base-6.1_p20190105-r0
|
||||
nettle-3.4.1-r0
|
||||
nghttp2-libs-1.35.1-r0
|
||||
openssl-1.1.1b-r1
|
||||
opus-1.3-r0
|
||||
p11-kit-0.23.14-r0
|
||||
pcre2-10.32-r1
|
||||
perl-5.26.3-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
|
||||
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
|
||||
perl-b-hooks-endofscope-0.24-r0
|
||||
perl-boolean-0.46-r0
|
||||
perl-capture-tiny-0.48-r0
|
||||
perl-cgi-4.40-r0
|
||||
perl-cgi-4.44-r0
|
||||
perl-class-data-inheritable-0.08-r0
|
||||
perl-class-inspector-1.32-r0
|
||||
perl-class-methodmaker-2.24-r2
|
||||
perl-class-inspector-1.34-r0
|
||||
perl-class-methodmaker-2.24-r3
|
||||
perl-class-singleton-1.5-r0
|
||||
perl-compress-raw-bzip2-2.084-r0
|
||||
perl-compress-raw-zlib-2.084-r0
|
||||
perl-cpan-meta-check-0.014-r1
|
||||
perl-data-dumper-2.173-r0
|
||||
perl-date-manip-6.75-r1
|
||||
perl-datetime-1.44-r0
|
||||
perl-datetime-format-strptime-1.74-r0
|
||||
perl-datetime-locale-1.22-r0
|
||||
perl-compress-raw-bzip2-2.086-r1
|
||||
perl-compress-raw-zlib-2.086-r1
|
||||
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-datetime-format-strptime-1.76-r0
|
||||
perl-datetime-locale-1.23-r0
|
||||
perl-datetime-timezone-2.19-r0
|
||||
perl-dbd-sqlite-1.62-r0
|
||||
perl-dbi-1.642-r0
|
||||
perl-devel-stacktrace-2.03-r0
|
||||
perl-dbd-sqlite-1.62-r1
|
||||
perl-dbi-1.642-r1
|
||||
perl-devel-stacktrace-2.04-r0
|
||||
perl-devel-symdump-2.18-r0
|
||||
perl-digest-sha1-2.13-r9
|
||||
perl-dist-checkconflicts-0.11-r1
|
||||
perl-doc-5.26.3-r0
|
||||
perl-digest-sha1-2.13-r10
|
||||
perl-dist-checkconflicts-0.11-r0
|
||||
perl-doc-5.28.2-r1
|
||||
perl-encode-locale-1.05-r1
|
||||
perl-eval-closure-0.14-r0
|
||||
perl-exception-class-1.44-r0
|
||||
@@ -109,11 +115,11 @@ 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.25-r0
|
||||
perl-file-temp-0.2308-r0
|
||||
perl-file-which-1.22-r0
|
||||
perl-file-slurp-9999.27-r0
|
||||
perl-file-temp-0.2309-r0
|
||||
perl-file-which-1.23-r0
|
||||
perl-getopt-long-2.50-r0
|
||||
perl-html-parser-3.72-r2
|
||||
perl-html-parser-3.72-r3
|
||||
perl-html-tagset-3.20-r1
|
||||
perl-html-tree-5.07-r0
|
||||
perl-http-cookies-6.04-r0
|
||||
@@ -122,96 +128,98 @@ perl-http-date-6.02-r1
|
||||
perl-http-message-6.18-r0
|
||||
perl-http-negotiate-6.01-r1
|
||||
perl-importer-0.025-r0
|
||||
perl-io-1.25-r4
|
||||
perl-io-compress-2.084-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.36-r0
|
||||
perl-libwww-6.39-r1
|
||||
perl-lingua-en-numbers-ordinate-1.04-r1
|
||||
perl-lingua-preferred-0.2.4-r1
|
||||
perl-list-moreutils-0.419-r1
|
||||
perl-lwp-mediatypes-6.02-r1
|
||||
perl-list-moreutils-0.428-r0
|
||||
perl-list-moreutils-xs-0.428-r1
|
||||
perl-lwp-mediatypes-6.04-r0
|
||||
perl-lwp-useragent-determined-1.07-r0
|
||||
perl-module-build-0.4224-r0
|
||||
perl-module-build-0.4229-r0
|
||||
perl-module-implementation-0.09-r1
|
||||
perl-module-metadata-1.000036-r0
|
||||
perl-module-pluggable-5.2-r0
|
||||
perl-module-runtime-0.016-r1
|
||||
perl-module-runtime-0.016-r2
|
||||
perl-mro-compat-0.13-r0
|
||||
perl-namespace-autoclean-0.28-r0
|
||||
perl-namespace-clean-0.27-r0
|
||||
perl-net-http-6.09-r1
|
||||
perl-net-libidn-0.12-r5
|
||||
perl-net-ssleay-1.85-r4
|
||||
perl-net-http-6.19-r0
|
||||
perl-net-libidn-0.12-r6
|
||||
perl-net-ssleay-1.85-r5
|
||||
perl-package-deprecationmanager-0.17-r0
|
||||
perl-package-stash-0.37-r0
|
||||
perl-package-stash-xs-0.28-r4
|
||||
perl-params-classify-0.015-r0
|
||||
perl-params-util-1.07-r5
|
||||
perl-params-validate-1.29-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-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-r0
|
||||
perl-scalar-list-utils-1.50-r1
|
||||
perl-scope-guard-0.21-r0
|
||||
perl-specio-0.42-r0
|
||||
perl-sub-exporter-progressive-0.001013-r0
|
||||
perl-sub-identify-0.14-r1
|
||||
perl-sub-identify-0.14-r2
|
||||
perl-sub-info-0.002-r0
|
||||
perl-sub-install-0.928-r1
|
||||
perl-sub-name-0.21-r1
|
||||
perl-sub-install-0.928-r0
|
||||
perl-sub-name-0.21-r2
|
||||
perl-sub-quote-2.004000-r0
|
||||
perl-sub-uplevel-0.2800-r0
|
||||
perl-term-progressbar-2.22-r0
|
||||
perl-term-readkey-2.37-r1
|
||||
perl-term-readkey-2.38-r1
|
||||
perl-term-table-0.012-r0
|
||||
perl-test-exception-0.43-r0
|
||||
perl-test-fatal-0.014-r1
|
||||
perl-test-needs-0.002005-r1
|
||||
perl-test-pod-1.52-r0
|
||||
perl-test-requires-0.10-r0
|
||||
perl-test-simple-1.302141-r0
|
||||
perl-test-taint-1.06-r5
|
||||
perl-test-simple-1.302164-r0
|
||||
perl-test-taint-1.08-r0
|
||||
perl-test-warnings-0.026-r0
|
||||
perl-test-without-module-0.20-r0
|
||||
perl-test2-plugin-nowarnings-0.06-r0
|
||||
perl-test2-suite-0.000114-r0
|
||||
perl-test2-plugin-nowarnings-0.07-r0
|
||||
perl-test2-suite-0.000122-r0
|
||||
perl-timedate-2.30-r1
|
||||
perl-try-tiny-0.30-r0
|
||||
perl-unicode-string-2.09-r6
|
||||
perl-uri-1.74-r0
|
||||
perl-variable-magic-0.62-r0
|
||||
perl-try-tiny-0.30-r1
|
||||
perl-unicode-string-2.09-r7
|
||||
perl-uri-1.76-r0
|
||||
perl-variable-magic-0.62-r1
|
||||
perl-www-robotrules-6.02-r1
|
||||
perl-xml-libxml-2.0132-r1
|
||||
perl-xml-libxslt-1.96-r0
|
||||
perl-xml-libxml-2.0134-r2
|
||||
perl-xml-libxslt-1.96-r1
|
||||
perl-xml-namespacesupport-1.12-r0
|
||||
perl-xml-parser-2.44-r4
|
||||
perl-xml-parser-2.44-r5
|
||||
perl-xml-sax-0.99-r2
|
||||
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-r0
|
||||
perl-yaml-syck-1.31-r1
|
||||
python2-2.7.16-r1
|
||||
readline-7.0.003-r1
|
||||
readline-8.0.0-r0
|
||||
scanelf-1.2.3-r0
|
||||
sdl2-2.0.9-r0
|
||||
shadow-4.5-r1
|
||||
sqlite-libs-3.26.0-r3
|
||||
ssl_client-1.29.3-r10
|
||||
sdl2-2.0.10-r0
|
||||
shadow-4.6-r2
|
||||
sqlite-libs-3.28.0-r1
|
||||
ssl_client-1.30.1-r2
|
||||
tar-1.32-r0
|
||||
tzdata-2019a-r0
|
||||
uriparser-0.9.1-r0
|
||||
v4l-utils-libs-1.16.2-r0
|
||||
tzdata-2019b-r0
|
||||
uriparser-0.9.3-r0
|
||||
v4l-utils-libs-1.16.6-r0
|
||||
wayland-libs-client-1.17.0-r0
|
||||
wget-1.20.3-r0
|
||||
x264-20180304-r1
|
||||
x264-libs-20180304-r1
|
||||
x265-2.8-r1
|
||||
x265-libs-2.8-r1
|
||||
x265-3.0-r0
|
||||
x265-libs-3.0-r0
|
||||
xvidcore-1.3.4-r1
|
||||
xz-5.2.4-r0
|
||||
xz-libs-5.2.4-r0
|
||||
|
||||
@@ -53,14 +53,15 @@ opt_param_usage_include_ports: false
|
||||
opt_param_device_map: true
|
||||
opt_param_devices:
|
||||
- { device_path: "/dev/dri", device_host_path: "/dev/dri", desc: "Only needed if you want to use your AMD/Intel GPU for hardware accelerated video encoding (vaapi)." }
|
||||
- { device_path: "/dev/dvb", device_host_path: "/dev/drb", desc: "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." }
|
||||
- { device_path: "/dev/dvb", device_host_path: "/dev/dvb", desc: "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." }
|
||||
opt_cap_add_param: false
|
||||
optional_block_1: true
|
||||
optional_block_1_items:
|
||||
- |
|
||||
#### Host vs. Bridge
|
||||
|
||||
If you use IPTV, SAT>IP or HDHomeRun, you need to create the container with --net=host and remove the -p flags. This is because of a limitation in docker and multicast.
|
||||
If you use IPTV, SAT>IP or HDHomeRun, you need to create the container with --net=host and remove the -p flags. This is because to work with these services Tvheadend requires a multicast address of `239.255.255.250` and a UDP port of `1900` which at this time is not possible with docker bridge mode.
|
||||
If you have other host services which also use multicast such as SSDP/DLNA/Emby you may experience stabilty problems. These can be solved by giving tvheadend its own IP using macavlan.
|
||||
|
||||
# application setup block
|
||||
app_setup_block_enabled: true
|
||||
@@ -125,6 +126,10 @@ app_setup_block: |
|
||||
|
||||
# changelog
|
||||
changelogs:
|
||||
- { 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." }
|
||||
- { date: "27.03.19:", desc: "Rebase to Alpine 3.9, fix init logic to only chown once." }
|
||||
- { date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag." }
|
||||
- { date: "01.03.19:", desc: "Bump xmltv to 0.6.1." }
|
||||
|
||||
26
root/etc/cont-init.d/50-gid-video
Normal file
26
root/etc/cont-init.d/50-gid-video
Normal file
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/with-contenv bash
|
||||
|
||||
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
|
||||
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)"
|
||||
groupadd "$VIDEO_NAME"
|
||||
groupmod -g "$VIDEO_GID" "$VIDEO_NAME"
|
||||
fi
|
||||
usermod -a -G "$VIDEO_NAME" abc
|
||||
touch /groupadd
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n "${FILES}" ] && [ ! -f "/groupadd" ]; then
|
||||
usermod -a -G root abc
|
||||
fi
|
||||
Reference in New Issue
Block a user