Compare commits

..

67 Commits

Author SHA1 Message Date
LinuxServer-CI
e052b086ce Bot Updating Package Versions 2019-06-13 19:23:28 -04:00
LinuxServer-CI
118f21be42 Bot Updating Templated Files 2019-06-12 18:36:45 -04:00
LinuxServer-CI
0f8ca85398 Bot Updating Templated Files 2019-06-12 23:35:45 +01:00
Ryan Kuba
e7ffd7fb7f Extract Picons on boot Release-4.2 (#128)
* reworking logic to untar on first boot and reducing sample size for chown logic as it is not recursive

* bad path in arm variants
2019-03-28 17:18:44 +01:00
LinuxServer-CI
6eb29390f0 Bot Updating Package Versions 2019-03-28 07:53:07 +00:00
Ryan Kuba
c064466ce4 #72 fix chowning Release 4.2 (#126)
* making mods for release-4.2 branch

* typo
2019-03-28 08:03:35 +01:00
LinuxServer-CI
b6a321aee6 Bot Updating Package Versions 2019-03-25 02:02:20 +01:00
Ryan Kuba
3d34a9cf03 Merge pull request #124 from thelamer/release-4.2
Switching to new Base images, shift to arm32v7 tag.
2019-03-24 17:10:13 -07:00
thelamer
e0a76e29e2 Switching to new Base images, shift to arm32v7 tag. 2019-03-23 22:18:13 -07:00
LinuxServer-CI
13f64cbc4b Bot Updating Package Versions 2019-03-22 00:31:34 +00:00
LinuxServer-CI
2c696d51b0 Bot Updating Package Versions 2019-03-07 19:02:51 -05:00
LinuxServer-CI
780b22728e Bot Updating Templated Files 2019-03-07 18:14:52 -05:00
aptalca
9417e1f9c4 Merge pull request #121 from thelamer/release-4.2
libiconv shifted to community repos- release 4.2
2019-03-07 18:14:02 -05:00
thelamer
5fb3338564 libiconv shifted to community repos 2019-03-07 14:12:48 -08:00
LinuxServer-CI
89322d5956 Bot Updating Package Versions 2019-03-02 00:28:07 +00:00
LinuxServer-CI
267e3ef786 Bot Updating Templated Files 2019-03-01 18:35:41 -05:00
saarg
5de6faf27f Merge pull request #114 from thelamer/release-4.2
switching back to clone and checkout release-4.2
2019-02-17 22:54:37 +01:00
thelamer
dab37e4ecd bumping to xmltv 0.5.70 and pulling it from github instead of sourceforge 2019-02-17 12:42:34 -08:00
thelamer
6ab17ce8b7 adding jq package for commit parsing on local build 2019-02-17 12:15:38 -08:00
thelamer
81c71ee54d switching back to clone and checkout 2019-02-17 10:41:49 -08:00
saarg
a5fe08ef84 Merge pull request #111 from thelamer/release-4.2
Fix for picons Release 4.2
2019-02-16 21:33:35 +01:00
thelamer
65b2f3c3c7 making requested changes to default config 2019-02-16 09:23:06 -08:00
thelamer
7d94cc4b64 forgot schema value 2019-02-15 13:03:14 -08:00
thelamer
e834619ec3 fixing paths for initial config 2019-02-15 12:58:34 -08:00
thelamer
ab115449e7 need to untar picons for htem to be read by the app 2019-02-15 11:45:41 -08:00
thelamer
322e35bb00 adding picons path to config if this is a first boot 2019-02-14 22:19:37 -08:00
j0nnymoe
6dfbb30c0a Merge pull request #108 from thelamer/release-4.2
adding dynamic readme
2019-02-12 14:34:26 +00:00
thelamer
94b0bc34c7 adding dynamic readme 2019-02-11 21:07:25 -08:00
LinuxServer-CI
2c89a24550 Bot Updating Package Versions 2019-02-11 22:20:05 +00:00
LinuxServer-CI
4d2207db61 Bot Updating Templated Files 2019-02-11 21:42:22 +00:00
aptalca
27ac3525fb Merge pull request #105 from linuxserver/pipeline-4.2
adding multi arch and pipeline logic, pulling picons from object storage
2019-02-11 16:41:43 -05:00
thelamer
946c4fd8a9 adding multi arch and pipeline logic, pulling picons from object storage 2019-01-17 22:46:45 -08:00
aptalca
bf0911b6f5 Merge pull request #95 from linuxserver/release-4.2_rebase_alpine_3.8
rebase to alpine 3.8 and use buildstage type build
2018-09-12 15:31:15 -04:00
sparklyballs
1a9770d227 rebase to alpine 3.8 2018-09-12 15:46:35 +01:00
sparklyballs
c0a3661442 rebase to alpine 3.8 and use buildstage type build 2018-09-03 12:38:00 +01:00
saarg
ba0a26bfb1 Merge pull request #85 from linuxserver/xmltv_4.2
Add JSON::XS Perl package for grab_tv_huro
2018-04-21 21:00:35 +02:00
tobbenb
ac7dc7b478 Add JSON::XS Perl package for grab_tv_huro 2018-04-21 16:41:11 +02:00
sparklyballs
24d94ed4ad Merge pull request #79 from linuxserver/release-4.2_use_sourceforge_master_xmltv
use sourceforge master rather than mirror for xmltv
2018-03-04 11:26:02 +00:00
sparklyballs
fb45df2646 use sourceforge master rather than mirror for xmltv 2018-03-04 09:39:23 +00:00
sparklyballs
57893d0451 Merge pull request #76 from linuxserver/pngquant
Add missing pngquant package
2018-02-23 13:06:20 +00:00
tobbenb
692ee67cf4 Add missing pngquant package 2018-02-22 21:57:43 +01:00
saarg
cacfb82b62 Merge pull request #75 from linuxserver/iconv_4.2
Fix wrong version of Iconv and add build options
2018-02-21 23:41:34 +01:00
tobbenb
e3b56a32cc Remove old libiconv patch 2018-02-21 23:01:55 +01:00
tobbenb
b487342878 Sparklyfi Dockerfile 2018-02-21 21:57:19 +01:00
tobbenb
0a365513dd Update README 2018-02-21 21:54:23 +01:00
tobbenb
1075ff6c38 Add build options from CvH 2018-02-21 21:52:32 +01:00
tobbenb
76d27bb36d Fix iconv runtime crash 2018-02-21 21:50:56 +01:00
sparklyballs
2f197666ac Merge pull request #66 from linuxserver/release-4.2_deprecate_cpu_core
deprecate cpu_core routine lack of scaling
2018-01-04 20:45:39 +00:00
sparklyballs
34b9ebf98f deprecate cpu_core routine lack of scaling 2018-01-04 11:49:17 +00:00
sparklyballs
e1e7730dcc Merge pull request #64 from linuxserver/release-4.2_3.7
bump alpine 3.7, fix continuation lines, linting fixes
2017-12-11 14:44:51 +00:00
sparklyballs
8269eee493 bump alpine 3.7, fix continuation lines, linting fixes 2017-12-11 12:42:03 +00:00
sparklyballs
4fa1634986 Update README.md 2017-12-09 00:40:09 +00:00
sparklyballs
5b5dee7f67 dot resolves weird github/jenkins syncing commits 2017-12-02 00:08:48 +00:00
aptalca
56c3b9a524 Merge pull request #61 from linuxserver/release-4.2_config_patches
increased uniformity across all archs
2017-07-13 20:28:00 -04:00
sparklyballs
a815f66aa3 increased uniformity across all archs 2017-07-13 20:21:04 +01:00
sparklyballs
bcaaad93e4 update of README with badges for new ci 2017-07-11 09:38:21 +01:00
sparklyballs
1cd1bf3fc5 Merge pull request #59 from linuxserver/readme-release
Update README with full path for comskip
2017-07-09 12:25:22 +01:00
tobbenb
b210ad4793 Update README with full path for comskip 2017-07-08 12:28:27 +02:00
sparklyballs
4af4d02187 Merge pull request #57 from linuxserver/dockerfile_tidy
tidy up Dockerfile and install runtime packages all in one
2017-07-03 11:12:17 +01:00
sparklyballs
c340938778 tidy up Dockerfile and install runtime packages all in one 2017-07-03 05:42:55 +01:00
tobbenb
cce4adf7e4 Move to one branch for all 4.2 releases 2017-07-02 16:40:53 +02:00
saarg
ee18601f12 Merge pull request #55 from linuxserver/stable-4.2.1_alpine3.6
bump to alpine 3.6
2017-05-28 16:12:22 +02:00
sparklyballs
68cc40f86e bump to alpine 3.6 2017-05-28 02:29:34 +01:00
sparklyballs
9b1f7b3303 Merge pull request #51 from linuxserver/4.2.1
Update to tvheadend 4.2.1 stable
2017-05-01 13:56:26 +01:00
sparklyballs
01af20a3df Update README.md 2017-05-01 12:37:09 +01:00
tobbenb
f65d09bea2 Cleaning up after sparklys cut and paste double 2017-05-01 13:17:08 +02:00
tobbenb
aab4fb1b35 Update to tvheadend 4.2.1 stable 2017-05-01 12:55:41 +02:00
14 changed files with 324 additions and 525 deletions

1
.github/FUNDING.yml vendored
View File

@@ -1 +0,0 @@
open_collective: linuxserver

View File

@@ -1,34 +1,21 @@
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][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.
<!--- Provide a general summary of the issue in the Title above --> <!--- 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]
## Expected Behavior <!--- If you have an issue with the project, please provide us with the following information -->
<!--- Tell us what should happen -->
## Current Behavior <!--- Host OS -->
<!--- Tell us what happens instead of the expected behavior --> <!--- 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. -->
## 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 <!--- If you have a suggestion or fix for the project, please provide us with the following information -->
**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) <!--- What you think your suggestion brings to the project, or fixes with the project -->
<!--- Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container --> <!--- If it's a fix, would it be better suited as a Pull request to the repo ? -->
## Thanks, team linuxserver.io
## Docker logs
<!--- Provide a full docker log, output of "docker logs tvheadend" -->

View File

@@ -6,34 +6,10 @@
<!--- Before submitting a pull request please check the following --> <!--- Before submitting a pull request please check the following -->
<!--- 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 --> <!--- That you have made a branch in your fork, we'd rather not merge from your master -->
<!--- 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 --> <!--- 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 --> <!--- 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,13 +1,14 @@
FROM lsiobase/alpine:3.10 as buildstage FROM lsiobase/alpine:3.9 as buildstage
############## build stage ############## ############## build stage ##############
# package versions # package versions
ARG ARGTABLE_VER="2.13" ARG ARGTABLE_VER="2.13"
ARG XMLTV_VER="v0.6.1" ARG TVH_VER="release/4.2"
ARG XMLTV_VER="v0.5.70"
ARG TVHEADEND_COMMIT
# environment settings # environment settings
ARG TZ="Europe/Oslo" ARG TZ="Europe/Oslo"
ARG TVHEADEND_COMMIT
ENV HOME="/config" ENV HOME="/config"
# copy patches # copy patches
@@ -31,18 +32,16 @@ RUN \
git \ git \
gzip \ gzip \
jq \ jq \
libcurl \
libdvbcsa-dev \
libgcrypt-dev \ libgcrypt-dev \
libhdhomerun-dev \ libhdhomerun-dev \
libressl-dev \
libtool \ libtool \
libva-dev \
libvpx-dev \ libvpx-dev \
libxml2-dev \ libxml2-dev \
libxslt-dev \ libxslt-dev \
linux-headers \ linux-headers \
make \ make \
openssl-dev \ mercurial \
opus-dev \ opus-dev \
patch \ patch \
pcre2-dev \ pcre2-dev \
@@ -78,7 +77,6 @@ RUN \
perl-lingua-en-numbers-ordinate \ perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \ perl-lingua-preferred \
perl-list-moreutils \ perl-list-moreutils \
perl-lwp-useragent-determined \
perl-module-build \ perl-module-build \
perl-module-pluggable \ perl-module-pluggable \
perl-net-ssleay \ perl-net-ssleay \
@@ -120,7 +118,7 @@ RUN \
RUN \ RUN \
echo "**** install perl modules for xmltv ****" && \ echo "**** install perl modules for xmltv ****" && \
curl -L https://cpanmin.us | perl - App::cpanminus && \ curl -L http://cpanmin.us | perl - App::cpanminus && \
cpanm --installdeps /tmp/patches cpanm --installdeps /tmp/patches
RUN \ RUN \
@@ -141,44 +139,41 @@ RUN \
make test && \ make test && \
make DESTDIR=/tmp/xmltv-build install make DESTDIR=/tmp/xmltv-build install
RUN \
echo "**** compile dvb-apps ****" && \
hg clone http://linuxtv.org/hg/dvb-apps /tmp/dvb-apps && \
cd /tmp/dvb-apps && \
make -C lib && \
make -C lib DESTDIR=/tmp/dvbapps-build install && \
cp -pr /tmp/dvbapps-build/usr/* /usr/
RUN \ RUN \
echo "**** compile tvheadend ****" && \ echo "**** compile tvheadend ****" && \
if [ -z ${TVHEADEND_COMMIT+x} ]; then \ if [ -z ${TVHEADEND_COMMIT+x} ]; then \
TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/master \ TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/${TVH_VER} \
| jq -r '. | .sha'); \ | jq -r '. | .sha'); \
fi && \ fi && \
mkdir -p \ mkdir -p \
/tmp/tvheadend && \ /tmp/tvheadend && \
git clone https://github.com/tvheadend/tvheadend.git /tmp/tvheadend && \ git clone https://github.com/tvheadend/tvheadend.git /tmp/tvheadend && \
cd /tmp/tvheadend && \ cd /tmp/tvheadend && \
git checkout ${TVHEADEND_COMMIT} && \ git checkout ${TVHEADEND_COMMIT} && \
./configure \ ./configure \
`#Encoding` \ --disable-avahi \
--disable-bintray_cache \
--disable-dbus_1 \
--disable-ffmpeg_static \ --disable-ffmpeg_static \
--disable-hdhomerun_static \
--disable-libfdkaac_static \ --disable-libfdkaac_static \
--disable-libmfx_static \
--disable-libtheora_static \ --disable-libtheora_static \
--disable-libopus_static \
--disable-libvorbis_static \ --disable-libvorbis_static \
--disable-libvpx_static \ --disable-libvpx_static \
--disable-libx264_static \ --disable-libx264_static \
--disable-libx265_static \ --disable-libx265_static \
--disable-libfdkaac \
--enable-libopus \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
\
`#Options` \
--disable-avahi \
--disable-dbus_1 \
--disable-bintray_cache \
--disable-hdhomerun_static \
--enable-hdhomerun_client \ --enable-hdhomerun_client \
--enable-libav \ --enable-libav \
--enable-pngquant \ --enable-pngquant \
--enable-trace \
--enable-vaapi \
--infodir=/usr/share/info \ --infodir=/usr/share/info \
--localstatedir=/var \ --localstatedir=/var \
--mandir=/usr/share/man \ --mandir=/usr/share/man \
@@ -220,7 +215,7 @@ RUN \
make DESTDIR=/tmp/comskip-build install make DESTDIR=/tmp/comskip-build install
############## runtime stage ############## ############## runtime stage ##############
FROM lsiobase/alpine:3.10 FROM lsiobase/alpine:3.9
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -241,18 +236,14 @@ RUN \
ffmpeg-libs \ ffmpeg-libs \
gzip \ gzip \
libcrypto1.1 \ libcrypto1.1 \
libcurl \ libcurl \
libdvbcsa \
libhdhomerun-libs \ libhdhomerun-libs \
libressl \
libssl1.1 \ libssl1.1 \
libva \
libva-intel-driver \
mesa-dri-ati \
libvpx \ libvpx \
libxml2 \ libxml2 \
libxslt \ libxslt \
linux-headers \ linux-headers \
openssl \
opus \ opus \
pcre2 \ pcre2 \
perl \ perl \
@@ -287,7 +278,6 @@ RUN \
perl-lingua-en-numbers-ordinate \ perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \ perl-lingua-preferred \
perl-list-moreutils \ perl-list-moreutils \
perl-lwp-useragent-determined \
perl-module-build \ perl-module-build \
perl-module-pluggable \ perl-module-pluggable \
perl-net-ssleay \ perl-net-ssleay \
@@ -327,6 +317,7 @@ RUN \
# copy local files and buildstage artifacts # copy local files and buildstage artifacts
COPY --from=buildstage /tmp/argtable-build/usr/ /usr/ COPY --from=buildstage /tmp/argtable-build/usr/ /usr/
COPY --from=buildstage /tmp/comskip-build/usr/ /usr/ COPY --from=buildstage /tmp/comskip-build/usr/ /usr/
COPY --from=buildstage /tmp/dvbapps-build/usr/ /usr/
COPY --from=buildstage /tmp/tvheadend-build/usr/ /usr/ COPY --from=buildstage /tmp/tvheadend-build/usr/ /usr/
COPY --from=buildstage /tmp/xmltv-build/usr/ /usr/ COPY --from=buildstage /tmp/xmltv-build/usr/ /usr/
COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/ COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/

View File

@@ -1,13 +1,14 @@
FROM lsiobase/alpine:arm64v8-3.10 as buildstage FROM lsiobase/alpine:arm64v8-3.9 as buildstage
############## build stage ############## ############## build stage ##############
# package versions # package versions
ARG ARGTABLE_VER="2.13" ARG ARGTABLE_VER="2.13"
ARG XMLTV_VER="v0.6.1" ARG TVH_VER="release/4.2"
ARG XMLTV_VER="v0.5.70"
ARG TVHEADEND_COMMIT
# environment settings # environment settings
ARG TZ="Europe/Oslo" ARG TZ="Europe/Oslo"
ARG TVHEADEND_COMMIT
ENV HOME="/config" ENV HOME="/config"
# copy patches # copy patches
@@ -31,17 +32,16 @@ RUN \
git \ git \
gzip \ gzip \
jq \ jq \
libcurl \
libdvbcsa-dev \
libgcrypt-dev \ libgcrypt-dev \
libhdhomerun-dev \ libhdhomerun-dev \
libressl-dev \
libtool \ libtool \
libvpx-dev \ libvpx-dev \
libxml2-dev \ libxml2-dev \
libxslt-dev \ libxslt-dev \
linux-headers \ linux-headers \
make \ make \
openssl-dev \ mercurial \
opus-dev \ opus-dev \
patch \ patch \
pcre2-dev \ pcre2-dev \
@@ -77,7 +77,6 @@ RUN \
perl-lingua-en-numbers-ordinate \ perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \ perl-lingua-preferred \
perl-list-moreutils \ perl-list-moreutils \
perl-lwp-useragent-determined \
perl-module-build \ perl-module-build \
perl-module-pluggable \ perl-module-pluggable \
perl-net-ssleay \ perl-net-ssleay \
@@ -119,7 +118,7 @@ RUN \
RUN \ RUN \
echo "**** install perl modules for xmltv ****" && \ echo "**** install perl modules for xmltv ****" && \
curl -L https://cpanmin.us | perl - App::cpanminus && \ curl -L http://cpanmin.us | perl - App::cpanminus && \
cpanm --installdeps /tmp/patches cpanm --installdeps /tmp/patches
RUN \ RUN \
@@ -140,11 +139,19 @@ RUN \
make test && \ make test && \
make DESTDIR=/tmp/xmltv-build install make DESTDIR=/tmp/xmltv-build install
RUN \
echo "**** compile dvb-apps ****" && \
hg clone http://linuxtv.org/hg/dvb-apps /tmp/dvb-apps && \
cd /tmp/dvb-apps && \
make -C lib && \
make -C lib DESTDIR=/tmp/dvbapps-build install && \
cp -pr /tmp/dvbapps-build/usr/* /usr/
RUN \ RUN \
echo "**** compile tvheadend ****" && \ echo "**** compile tvheadend ****" && \
if [ -z ${TVHEADEND_COMMIT+x} ]; then \ if [ -z ${TVHEADEND_COMMIT+x} ]; then \
TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/master \ TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/${TVH_VER} \
| jq -r '. | .sha'); \ | jq -r '. | .sha'); \
fi && \ fi && \
mkdir -p \ mkdir -p \
/tmp/tvheadend && \ /tmp/tvheadend && \
@@ -152,31 +159,21 @@ RUN \
cd /tmp/tvheadend && \ cd /tmp/tvheadend && \
git checkout ${TVHEADEND_COMMIT} && \ git checkout ${TVHEADEND_COMMIT} && \
./configure \ ./configure \
`#Encoding` \ --disable-avahi \
--disable-bintray_cache \
--disable-dbus_1 \
--disable-ffmpeg_static \ --disable-ffmpeg_static \
--disable-hdhomerun_static \
--disable-libfdkaac_static \ --disable-libfdkaac_static \
--disable-libmfx_static \
--disable-libtheora_static \ --disable-libtheora_static \
--disable-libopus_static \
--disable-libvorbis_static \ --disable-libvorbis_static \
--disable-libvpx_static \ --disable-libvpx_static \
--disable-libx264_static \ --disable-libx264_static \
--disable-libx265_static \ --disable-libx265_static \
--disable-libfdkaac \
--enable-libopus \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
\
`#Options` \
--disable-avahi \
--disable-dbus_1 \
--disable-bintray_cache \
--disable-hdhomerun_static \
--enable-hdhomerun_client \ --enable-hdhomerun_client \
--enable-libav \ --enable-libav \
--enable-pngquant \ --enable-pngquant \
--enable-trace \
--infodir=/usr/share/info \ --infodir=/usr/share/info \
--localstatedir=/var \ --localstatedir=/var \
--mandir=/usr/share/man \ --mandir=/usr/share/man \
@@ -218,7 +215,7 @@ RUN \
make DESTDIR=/tmp/comskip-build install make DESTDIR=/tmp/comskip-build install
############## runtime stage ############## ############## runtime stage ##############
FROM lsiobase/alpine:arm64v8-3.10 FROM lsiobase/alpine:arm64v8-3.9
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -239,15 +236,14 @@ RUN \
ffmpeg-libs \ ffmpeg-libs \
gzip \ gzip \
libcrypto1.1 \ libcrypto1.1 \
libcurl \ libcurl \
libdvbcsa \
libhdhomerun-libs \ libhdhomerun-libs \
libressl \
libssl1.1 \ libssl1.1 \
libvpx \ libvpx \
libxml2 \ libxml2 \
libxslt \ libxslt \
linux-headers \ linux-headers \
openssl \
opus \ opus \
pcre2 \ pcre2 \
perl \ perl \
@@ -282,7 +278,6 @@ RUN \
perl-lingua-en-numbers-ordinate \ perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \ perl-lingua-preferred \
perl-list-moreutils \ perl-list-moreutils \
perl-lwp-useragent-determined \
perl-module-build \ perl-module-build \
perl-module-pluggable \ perl-module-pluggable \
perl-net-ssleay \ perl-net-ssleay \
@@ -322,6 +317,7 @@ RUN \
# copy local files and buildstage artifacts # copy local files and buildstage artifacts
COPY --from=buildstage /tmp/argtable-build/usr/ /usr/ COPY --from=buildstage /tmp/argtable-build/usr/ /usr/
COPY --from=buildstage /tmp/comskip-build/usr/ /usr/ COPY --from=buildstage /tmp/comskip-build/usr/ /usr/
COPY --from=buildstage /tmp/dvbapps-build/usr/ /usr/
COPY --from=buildstage /tmp/tvheadend-build/usr/ /usr/ COPY --from=buildstage /tmp/tvheadend-build/usr/ /usr/
COPY --from=buildstage /tmp/xmltv-build/usr/ /usr/ COPY --from=buildstage /tmp/xmltv-build/usr/ /usr/
COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/ COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/

View File

@@ -1,13 +1,14 @@
FROM lsiobase/alpine:arm32v7-3.10 as buildstage FROM lsiobase/alpine:arm32v7-3.9 as buildstage
############## build stage ############## ############## build stage ##############
# package versions # package versions
ARG ARGTABLE_VER="2.13" ARG ARGTABLE_VER="2.13"
ARG XMLTV_VER="v0.6.1" ARG TVH_VER="release/4.2"
ARG XMLTV_VER="v0.5.70"
ARG TVHEADEND_COMMIT
# environment settings # environment settings
ARG TZ="Europe/Oslo" ARG TZ="Europe/Oslo"
ARG TVHEADEND_COMMIT
ENV HOME="/config" ENV HOME="/config"
# copy patches # copy patches
@@ -31,17 +32,16 @@ RUN \
git \ git \
gzip \ gzip \
jq \ jq \
libcurl \
libdvbcsa-dev \
libgcrypt-dev \ libgcrypt-dev \
libhdhomerun-dev \ libhdhomerun-dev \
libressl-dev \
libtool \ libtool \
libvpx-dev \ libvpx-dev \
libxml2-dev \ libxml2-dev \
libxslt-dev \ libxslt-dev \
linux-headers \ linux-headers \
make \ make \
openssl-dev \ mercurial \
opus-dev \ opus-dev \
patch \ patch \
pcre2-dev \ pcre2-dev \
@@ -77,7 +77,6 @@ RUN \
perl-lingua-en-numbers-ordinate \ perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \ perl-lingua-preferred \
perl-list-moreutils \ perl-list-moreutils \
perl-lwp-useragent-determined \
perl-module-build \ perl-module-build \
perl-module-pluggable \ perl-module-pluggable \
perl-net-ssleay \ perl-net-ssleay \
@@ -119,7 +118,7 @@ RUN \
RUN \ RUN \
echo "**** install perl modules for xmltv ****" && \ echo "**** install perl modules for xmltv ****" && \
curl -L https://cpanmin.us | perl - App::cpanminus && \ curl -L http://cpanmin.us | perl - App::cpanminus && \
cpanm --installdeps /tmp/patches cpanm --installdeps /tmp/patches
RUN \ RUN \
@@ -140,11 +139,19 @@ RUN \
make test && \ make test && \
make DESTDIR=/tmp/xmltv-build install make DESTDIR=/tmp/xmltv-build install
RUN \
echo "**** compile dvb-apps ****" && \
hg clone http://linuxtv.org/hg/dvb-apps /tmp/dvb-apps && \
cd /tmp/dvb-apps && \
make -C lib && \
make -C lib DESTDIR=/tmp/dvbapps-build install && \
cp -pr /tmp/dvbapps-build/usr/* /usr/
RUN \ RUN \
echo "**** compile tvheadend ****" && \ echo "**** compile tvheadend ****" && \
if [ -z ${TVHEADEND_COMMIT+x} ]; then \ if [ -z ${TVHEADEND_COMMIT+x} ]; then \
TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/master \ TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/${TVH_VER} \
| jq -r '. | .sha'); \ | jq -r '. | .sha'); \
fi && \ fi && \
mkdir -p \ mkdir -p \
/tmp/tvheadend && \ /tmp/tvheadend && \
@@ -152,31 +159,21 @@ RUN \
cd /tmp/tvheadend && \ cd /tmp/tvheadend && \
git checkout ${TVHEADEND_COMMIT} && \ git checkout ${TVHEADEND_COMMIT} && \
./configure \ ./configure \
`#Encoding` \ --disable-avahi \
--disable-bintray_cache \
--disable-dbus_1 \
--disable-ffmpeg_static \ --disable-ffmpeg_static \
--disable-hdhomerun_static \
--disable-libfdkaac_static \ --disable-libfdkaac_static \
--disable-libmfx_static \
--disable-libtheora_static \ --disable-libtheora_static \
--disable-libopus_static \
--disable-libvorbis_static \ --disable-libvorbis_static \
--disable-libvpx_static \ --disable-libvpx_static \
--disable-libx264_static \ --disable-libx264_static \
--disable-libx265_static \ --disable-libx265_static \
--disable-libfdkaac \
--enable-libopus \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
\
`#Options` \
--disable-avahi \
--disable-dbus_1 \
--disable-bintray_cache \
--disable-hdhomerun_static \
--enable-hdhomerun_client \ --enable-hdhomerun_client \
--enable-libav \ --enable-libav \
--enable-pngquant \ --enable-pngquant \
--enable-trace \
--infodir=/usr/share/info \ --infodir=/usr/share/info \
--localstatedir=/var \ --localstatedir=/var \
--mandir=/usr/share/man \ --mandir=/usr/share/man \
@@ -218,7 +215,7 @@ RUN \
make DESTDIR=/tmp/comskip-build install make DESTDIR=/tmp/comskip-build install
############## runtime stage ############## ############## runtime stage ##############
FROM lsiobase/alpine:arm32v7-3.10 FROM lsiobase/alpine:arm32v7-3.9
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -239,15 +236,14 @@ RUN \
ffmpeg-libs \ ffmpeg-libs \
gzip \ gzip \
libcrypto1.1 \ libcrypto1.1 \
libcurl \ libcurl \
libdvbcsa \
libhdhomerun-libs \ libhdhomerun-libs \
libressl \
libssl1.1 \ libssl1.1 \
libvpx \ libvpx \
libxml2 \ libxml2 \
libxslt \ libxslt \
linux-headers \ linux-headers \
openssl \
opus \ opus \
pcre2 \ pcre2 \
perl \ perl \
@@ -282,7 +278,6 @@ RUN \
perl-lingua-en-numbers-ordinate \ perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \ perl-lingua-preferred \
perl-list-moreutils \ perl-list-moreutils \
perl-lwp-useragent-determined \
perl-module-build \ perl-module-build \
perl-module-pluggable \ perl-module-pluggable \
perl-net-ssleay \ perl-net-ssleay \
@@ -322,6 +317,7 @@ RUN \
# copy local files and buildstage artifacts # copy local files and buildstage artifacts
COPY --from=buildstage /tmp/argtable-build/usr/ /usr/ COPY --from=buildstage /tmp/argtable-build/usr/ /usr/
COPY --from=buildstage /tmp/comskip-build/usr/ /usr/ COPY --from=buildstage /tmp/comskip-build/usr/ /usr/
COPY --from=buildstage /tmp/dvbapps-build/usr/ /usr/
COPY --from=buildstage /tmp/tvheadend-build/usr/ /usr/ COPY --from=buildstage /tmp/tvheadend-build/usr/ /usr/
COPY --from=buildstage /tmp/xmltv-build/usr/ /usr/ COPY --from=buildstage /tmp/xmltv-build/usr/ /usr/
COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/ COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/

237
Jenkinsfile vendored
View File

@@ -2,10 +2,6 @@ pipeline {
agent { agent {
label 'X86-64-MULTI' label 'X86-64-MULTI'
} }
options {
buildDiscarder(logRotator(numToKeepStr: '10', daysToKeepStr: '60'))
parallelsAlwaysFailFast()
}
// Input to determine if this is a package check // Input to determine if this is a package check
parameters { parameters {
string(defaultValue: 'false', description: 'package check run', name: 'PACKAGE_CHECK') string(defaultValue: 'false', description: 'package check run', name: 'PACKAGE_CHECK')
@@ -14,9 +10,7 @@ pipeline {
environment { environment {
BUILDS_DISCORD=credentials('build_webhook_url') BUILDS_DISCORD=credentials('build_webhook_url')
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab') GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0') EXT_GIT_BRANCH = 'release/4.2'
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
EXT_GIT_BRANCH = 'master'
EXT_USER = 'tvheadend' EXT_USER = 'tvheadend'
EXT_REPO = 'tvheadend' EXT_REPO = 'tvheadend'
BUILD_VERSION_ARG = 'TVHEADEND_COMMIT' BUILD_VERSION_ARG = 'TVHEADEND_COMMIT'
@@ -44,7 +38,7 @@ pipeline {
script{ script{
env.EXIT_STATUS = '' env.EXIT_STATUS = ''
env.LS_RELEASE = sh( env.LS_RELEASE = sh(
script: '''docker run --rm alexeiled/skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':latest 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''', script: '''docker run --rm alexeiled/skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':release-4.2 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
returnStdout: true).trim() returnStdout: true).trim()
env.LS_RELEASE_NOTES = sh( env.LS_RELEASE_NOTES = sh(
script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''', script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''',
@@ -58,7 +52,14 @@ pipeline {
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT 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.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
env.PULL_REQUEST = env.CHANGE_ID env.PULL_REQUEST = env.CHANGE_ID
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE.md ./.github/PULL_REQUEST_TEMPLATE.md' env.LICENSE_TAG = sh(
script: '''#!/bin/bash
if [ -e LICENSE ] ; then
cat LICENSE | md5sum | cut -c1-8
else
echo none
fi''',
returnStdout: true).trim()
} }
script{ script{
env.LS_RELEASE_NUMBER = sh( env.LS_RELEASE_NUMBER = sh(
@@ -129,18 +130,15 @@ pipeline {
} }
} }
} }
// If this is a master build use live docker endpoints // If this is a release-4.2 build use live docker endpoints
stage("Set ENV live build"){ stage("Set ENV live build"){
when { when {
branch "master" branch "release-4.2"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
} }
steps { steps {
script{ script{
env.IMAGE = env.DOCKERHUB_IMAGE 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') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else { } else {
@@ -153,15 +151,12 @@ pipeline {
// If this is a dev build use dev docker endpoints // If this is a dev build use dev docker endpoints
stage("Set ENV dev build"){ stage("Set ENV dev build"){
when { when {
not {branch "master"} not {branch "release-4.2"}
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
} }
steps { steps {
script{ script{
env.IMAGE = env.DEV_DOCKERHUB_IMAGE 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') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|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 { } else {
@@ -180,9 +175,6 @@ pipeline {
steps { steps {
script{ script{
env.IMAGE = env.PR_DOCKERHUB_IMAGE 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') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-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 { } else {
@@ -226,7 +218,7 @@ pipeline {
// Use helper containers to render templated files // Use helper containers to render templated files
stage('Update-Templates') { stage('Update-Templates') {
when { when {
branch "master" branch "release-4.2"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
expression { expression {
env.CONTAINER_NAME != null env.CONTAINER_NAME != null
@@ -237,33 +229,33 @@ pipeline {
set -e set -e
TEMPDIR=$(mktemp -d) TEMPDIR=$(mktemp -d)
docker pull linuxserver/jenkins-builder:latest 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 run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=release-4.2 -v ${TEMPDIR}:/ansible/jenkins linuxserver/jenkins-builder:latest
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) docker pull linuxserver/doc-builder:latest
cd ${TEMPDIR}/docker-${CONTAINER_NAME} docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=release-4.2 -v ${TEMPDIR}:/ansible/readme linuxserver/doc-builder:latest
NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) if [ "$(md5sum ${TEMPDIR}/${LS_REPO}/Jenkinsfile | awk '{ print $1 }')" != "$(md5sum Jenkinsfile | awk '{ print $1 }')" ] || \
if [[ "${CURRENTHASH}" != "${NEWHASH}" ]]; then [ "$(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
mkdir -p ${TEMPDIR}/repo mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO} git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git checkout -f release-4.2
git checkout -f master cp ${TEMPDIR}/${CONTAINER_NAME}/README.md ${TEMPDIR}/repo/${LS_REPO}/
cd ${TEMPDIR}/docker-${CONTAINER_NAME} cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github cp ${TEMPDIR}/docker-${CONTAINER_NAME}/LICENSE ${TEMPDIR}/repo/${LS_REPO}/
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/
cd ${TEMPDIR}/repo/${LS_REPO}/ cd ${TEMPDIR}/repo/${LS_REPO}/
git add ${TEMPLATED_FILES} git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git add Jenkinsfile README.md LICENSE
git commit -m 'Bot Updating Templated Files' git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git commit -m 'Bot Updating Templated Files'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
else else
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
fi fi
mkdir -p ${TEMPDIR}/gitbook mkdir -p ${TEMPDIR}/gitbook
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation 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}/docker-${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then 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}/docker-${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/ cp ${TEMPDIR}/${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
cd ${TEMPDIR}/gitbook/docker-documentation/ cd ${TEMPDIR}/gitbook/docker-documentation/
git add images/docker-${CONTAINER_NAME}.md git add images/docker-${CONTAINER_NAME}.md
git commit -m 'Bot Updating Documentation' git commit -m 'Bot Updating Templated Files'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all
fi fi
rm -Rf ${TEMPDIR}''' rm -Rf ${TEMPDIR}'''
@@ -277,7 +269,7 @@ pipeline {
// Exit the build if the Templated files were just updated // Exit the build if the Templated files were just updated
stage('Template-exit') { stage('Template-exit') {
when { when {
branch "master" branch "release-4.2"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'FILES_UPDATED', value: 'true' environment name: 'FILES_UPDATED', value: 'true'
expression { expression {
@@ -290,26 +282,6 @@ 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 Build Container
############### */ ############### */
@@ -396,7 +368,7 @@ pipeline {
// Take the image we just built and dump package versions for comparison // Take the image we just built and dump package versions for comparison
stage('Update-packages') { stage('Update-packages') {
when { when {
branch "master" branch "release-4.2"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
@@ -424,7 +396,7 @@ pipeline {
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github" echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO} git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO}
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f master git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f release-4.2
cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/ cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/
cd ${TEMPDIR}/${LS_REPO}/ cd ${TEMPDIR}/${LS_REPO}/
wait wait
@@ -448,7 +420,7 @@ pipeline {
// Exit the build if the package file was just updated // Exit the build if the package file was just updated
stage('PACKAGE-exit') { stage('PACKAGE-exit') {
when { when {
branch "master" branch "release-4.2"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'true' environment name: 'PACKAGE_UPDATED', value: 'true'
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
@@ -462,7 +434,7 @@ pipeline {
// Exit the build if this is just a package check and there are no changes to push // Exit the build if this is just a package check and there are no changes to push
stage('PACKAGECHECK-exit') { stage('PACKAGECHECK-exit') {
when { when {
branch "master" branch "release-4.2"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'false' environment name: 'PACKAGE_UPDATED', value: 'false'
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
@@ -541,32 +513,19 @@ pipeline {
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207', credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER', usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS' passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
] ]
]) { ]) {
echo 'Logging into DockerHub'
sh '''#! /bin/bash sh '''#! /bin/bash
set -e echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
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}:release-4.2"
sh "docker push ${IMAGE}:release-4.2"
sh "docker push ${IMAGE}:${META_TAG}"
sh '''docker rmi \
${IMAGE}:${META_TAG} \
${IMAGE}:release-4.2 || :'''
} }
} }
} }
@@ -583,88 +542,53 @@ pipeline {
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207', credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER', usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS' passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
] ]
]) { ]) {
sh '''#! /bin/bash sh '''#! /bin/bash
set -e echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin '''
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin sh '''#! /bin/bash
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 if [ "${CI}" == "false" ]; then
docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull lsiodev/buildcache:arm64v8-${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:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi fi'''
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}"; do sh "docker tag ${IMAGE}:amd64-${META_TAG} ${IMAGE}:amd64-release-4.2"
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm32v7-release-4.2"
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ${IMAGE}:arm64v8-release-4.2"
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} sh "docker push ${IMAGE}:amd64-${META_TAG}"
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest sh "docker push ${IMAGE}:arm32v7-${META_TAG}"
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest sh "docker push ${IMAGE}:arm64v8-${META_TAG}"
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest sh "docker push ${IMAGE}:amd64-release-4.2"
docker push ${MANIFESTIMAGE}:amd64-${META_TAG} sh "docker push ${IMAGE}:arm32v7-release-4.2"
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG} sh "docker push ${IMAGE}:arm64v8-release-4.2"
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG} sh "docker manifest push --purge ${IMAGE}:release-4.2 || :"
docker push ${MANIFESTIMAGE}:amd64-latest sh "docker manifest create ${IMAGE}:release-4.2 ${IMAGE}:amd64-release-4.2 ${IMAGE}:arm32v7-release-4.2 ${IMAGE}:arm64v8-release-4.2"
docker push ${MANIFESTIMAGE}:arm32v7-latest sh "docker manifest annotate ${IMAGE}:release-4.2 ${IMAGE}:arm32v7-release-4.2 --os linux --arch arm"
docker push ${MANIFESTIMAGE}:arm64v8-latest sh "docker manifest annotate ${IMAGE}:release-4.2 ${IMAGE}:arm64v8-release-4.2 --os linux --arch arm64 --variant v8"
docker manifest push --purge ${MANIFESTIMAGE}:latest || : sh "docker manifest push --purge ${IMAGE}:${META_TAG} || :"
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest sh "docker manifest create ${IMAGE}:${META_TAG} ${IMAGE}:amd64-${META_TAG} ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm64v8-${META_TAG}"
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm32v7-${META_TAG} --os linux --arch arm"
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8 sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8"
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || : sh "docker manifest push --purge ${IMAGE}:release-4.2"
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} sh "docker manifest push --purge ${IMAGE}:${META_TAG}"
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm sh '''docker rmi \
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8 ${IMAGE}:amd64-${META_TAG} \
docker manifest push --purge ${MANIFESTIMAGE}:latest ${IMAGE}:amd64-release-4.2 \
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} ${IMAGE}:arm32v7-${META_TAG} \
done ${IMAGE}:arm32v7-release-4.2 \
for LEGACYIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}"; do ${IMAGE}:arm64v8-${META_TAG} \
docker tag ${IMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:amd64-${META_TAG} ${IMAGE}:arm64v8-release-4.2 \
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:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || : lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
'''
} }
} }
} }
// If this is a public release tag it in the LS Github // If this is a public release tag it in the LS Github
stage('Github-Tag-Push-Release') { stage('Github-Tag-Push-Release') {
when { when {
branch "master" branch "release-4.2"
expression { expression {
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} }
@@ -676,17 +600,17 @@ pipeline {
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \ sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
-d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\ -d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
"object": "'${COMMIT_SHA}'",\ "object": "'${COMMIT_SHA}'",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\ "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to release-4.2",\
"type": "commit",\ "type": "commit",\
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' ''' "tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
echo "Pushing New release for Tag" echo "Pushing New release for Tag"
sh '''#! /bin/bash sh '''#! /bin/bash
curl -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/commits/${EXT_GIT_BRANCH} | jq '. | .commit.message' | sed 's:^.\\(.*\\).$:\\1:' > releasebody.json curl -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/commits/${EXT_GIT_BRANCH} | jq '. | .commit.message' | sed 's:^.\\(.*\\).$:\\1:' > releasebody.json
echo '{"tag_name":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\ echo '{"tag_name":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
"target_commitish": "master",\ "target_commitish": "release-4.2",\
"name": "'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\ "name": "'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**'${EXT_REPO}' Changes:**\\n\\n' > start "body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**'${EXT_REPO}' Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": false}' >> releasebody.json printf '","draft": false,"prerelease": true}' >> releasebody.json
paste -d'\\0' start releasebody.json > releasebody.json.done paste -d'\\0' start releasebody.json > releasebody.json.done
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done''' curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
} }
@@ -752,8 +676,5 @@ pipeline {
} }
} }
} }
cleanup {
cleanWs()
}
} }
} }

View File

@@ -1,13 +1,5 @@
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io) [![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
[![Blog](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
[![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.")
[![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.")
[![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=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 :- The [LinuxServer.io](https://linuxserver.io) team brings you another container release featuring :-
* regular and timely application updates * regular and timely application updates
@@ -17,25 +9,17 @@ The [LinuxServer.io](https://linuxserver.io) team brings you another container r
* regular security updates * regular security updates
Find us at: Find us at:
* [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. * [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team.
* [Discourse](https://discourse.linuxserver.io) - post on our community forum. * [IRC](https://irc.linuxserver.io) - on freenode at `#linuxserver.io`. Our primary support channel is Discord.
* [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images. * [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
* [GitHub](https://github.com/linuxserver) - view the source for all of our repositories.
* [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) # [linuxserver/tvheadend](https://github.com/linuxserver/docker-tvheadend)
[![](https://img.shields.io/discord/354974912613449730.svg?logo=discord&label=LSIO%20Discord&style=flat-square)](https://discord.gg/YWrKVTn)
[![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) [![](https://images.microbadger.com/badges/version/linuxserver/tvheadend.svg)](https://microbadger.com/images/linuxserver/tvheadend "Get your own version badge on microbadger.com")
[![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) [![](https://images.microbadger.com/badges/image/linuxserver/tvheadend.svg)](https://microbadger.com/images/linuxserver/tvheadend "Get your own version badge on microbadger.com")
[![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) ![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/tvheadend.svg)
[![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) ![Docker Stars](https://img.shields.io/docker/stars/linuxserver/tvheadend.svg)
[![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) [![Build Status](https://ci.linuxserver.io/buildStatus/icon?job=Docker-Pipeline-Builders/docker-tvheadend/master)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-tvheadend/job/master/)
[![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")
[![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) [![](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/tvheadend/latest/badge.svg)](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. [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.
@@ -47,7 +31,7 @@ Multiple EPG sources are supported (over-the-air DVB and ATSC including OpenTV D
## Supported Architectures ## Supported Architectures
Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/). Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
Simply pulling `linuxserver/tvheadend` should retrieve the correct image for your arch, but you can also pull specific arch images via tags. Simply pulling `linuxserver/tvheadend` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
@@ -88,15 +72,14 @@ docker create \
-v <path to data>:/config \ -v <path to data>:/config \
-v <path to recordings>:/recordings \ -v <path to recordings>:/recordings \
--device /dev/dri:/dev/dri `#optional` \ --device /dev/dri:/dev/dri `#optional` \
--device /dev/dvb:/dev/dvb `#optional` \ --device /dev/drb:/dev/dvb `#optional` \
--restart unless-stopped \ --restart unless-stopped \
linuxserver/tvheadend linuxserver/tvheadend
``` ```
#### Host vs. Bridge #### 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 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 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 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 ### docker-compose
@@ -123,7 +106,7 @@ services:
- 9982:9982 - 9982:9982
devices: devices:
- /dev/dri:/dev/dri #optional - /dev/dri:/dev/dri #optional
- /dev/dvb:/dev/dvb #optional - /dev/drb:/dev/dvb #optional
restart: unless-stopped restart: unless-stopped
``` ```
@@ -225,17 +208,17 @@ In some cases it might be necessary to start tvheadend with additional parameter
* Shell access whilst the container is running: `docker exec -it tvheadend /bin/bash` * Shell access whilst the container is running: `docker exec -it tvheadend /bin/bash`
* To monitor the logs of the container in realtime: `docker logs -f tvheadend` * To monitor the logs of the container in realtime: `docker logs -f tvheadend`
* container version number * container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' tvheadend` * `docker inspect -f '{{ index .Config.Labels "build_version" }}' tvheadend`
* image version number * image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' linuxserver/tvheadend` * `docker inspect -f '{{ index .Config.Labels "build_version" }}' linuxserver/tvheadend`
## Updating Info ## Updating Info
Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image. Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image.
Below are the instructions for updating containers: Below are the instructions for updating containers:
### Via Docker Run/Create ### Via Docker Run/Create
* Update the image: `docker pull linuxserver/tvheadend` * Update the image: `docker pull linuxserver/tvheadend`
* Stop the running container: `docker stop tvheadend` * Stop the running container: `docker stop tvheadend`
@@ -259,14 +242,11 @@ Below are the instructions for updating containers:
containrrr/watchtower \ containrrr/watchtower \
--run-once tvheadend --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` * You can also remove the old dangling images: `docker image prune`
## Building locally ## Building locally
If you want to make local modifications to these images for development purposes or just to customize the logic: If you want to make local modifications to these images for development purposes or just to customize the logic:
``` ```
git clone https://github.com/linuxserver/docker-tvheadend.git git clone https://github.com/linuxserver/docker-tvheadend.git
cd docker-tvheadend cd docker-tvheadend
@@ -285,14 +265,8 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions ## 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. * **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. * **23.03.19:** - Switching to new Base images, shift to arm32v7 tag.
* **01.03.19:** - Bump xmltv to 0.6.1.
* **28.02.19:** - add perl-lwp-useragent-determined.
* **17.02.19:** - Bump xmltv to 5.70, ensure version tagging works by cloning tvheadend. * **17.02.19:** - Bump xmltv to 5.70, ensure version tagging works by cloning tvheadend.
* **14.02.19:** - Add picons path to config. * **14.02.19:** - Add picons path to config.
* **15.01.19:** - Add pipeline logic and multi arch. * **15.01.19:** - Add pipeline logic and multi arch.

View File

@@ -3,11 +3,11 @@
# jenkins variables # jenkins variables
project_name: docker-tvheadend project_name: docker-tvheadend
external_type: github_commit external_type: github_commit
release_type: stable release_type: prerelease
release_tag: latest release_tag: release-4.2
ls_branch: master ls_branch: release-4.2
repo_vars: repo_vars:
- EXT_GIT_BRANCH = 'master' - EXT_GIT_BRANCH = 'release/4.2'
- EXT_USER = 'tvheadend' - EXT_USER = 'tvheadend'
- EXT_REPO = 'tvheadend' - EXT_REPO = 'tvheadend'
- BUILD_VERSION_ARG = 'TVHEADEND_COMMIT' - BUILD_VERSION_ARG = 'TVHEADEND_COMMIT'

View File

@@ -1,113 +1,108 @@
alpine-baselayout-3.1.2-r0 alpine-baselayout-3.1.0-r3
alpine-keys-2.1-r2 alpine-keys-2.1-r1
alsa-lib-1.1.9-r0 alsa-lib-1.1.8-r0
apk-tools-2.10.4-r2 apk-tools-2.10.3-r1
bash-5.0.0-r0 bash-4.4.19-r1
bsd-compat-headers-0.7.1-r0 bsd-compat-headers-0.7.1-r0
busybox-1.30.1-r3 busybox-1.29.3-r10
bzip2-1.0.6-r7 bzip2-1.0.6-r6
ca-certificates-20190108-r0 ca-certificates-20190108-r0
ca-certificates-cacert-20190108-r0 ca-certificates-cacert-20190108-r0
coreutils-8.31-r0 coreutils-8.30-r0
curl-7.66.0-r0 curl-7.64.0-r2
elfutils-libelf-0.168-r2 expat-2.2.6-r0
expat-2.2.8-r0 ffmpeg-4.0.2-r0
ffmpeg-4.1.4-r0 ffmpeg-libs-4.0.2-r0
ffmpeg-libs-4.1.4-r0
fontconfig-2.13.1-r0 fontconfig-2.13.1-r0
freetype-2.10.0-r0 freetype-2.9.1-r2
fribidi-1.0.5-r1 fribidi-1.0.5-r0
gdbm-1.13-r1 gdbm-1.13-r1
gmp-6.1.2-r1 gmp-6.1.2-r1
gnu-libiconv-1.15-r2 gnu-libiconv-1.15-r2
gnutls-3.6.8-r0 gnutls-3.6.7-r0
gzip-1.10-r0 gzip-1.10-r0
lame-3.100-r0 lame-3.100-r0
libacl-2.2.52-r6 libacl-2.2.52-r5
libass-0.14.0-r0 libass-0.14.0-r0
libattr-2.4.48-r0 libattr-2.4.47-r7
libbsd-0.9.1-r0 libbsd-0.8.6-r2
libbz2-1.0.6-r7 libbz2-1.0.6-r6
libc-utils-0.7.1-r0 libc-utils-0.7.1-r0
libcrypto1.1-1.1.1d-r0 libcrypto1.1-1.1.1b-r1
libcurl-7.66.0-r0 libcurl-7.64.0-r2
libdrm-2.4.98-r0 libdrm-2.4.96-r0
libdvbcsa-1.1.0-r1
libffi-3.2.1-r6 libffi-3.2.1-r6
libgcc-8.3.0-r0 libgcc-8.3.0-r0
libgcrypt-1.8.5-r0 libgcrypt-1.8.4-r0
libgpg-error-1.36-r2 libgpg-error-1.33-r0
libhdhomerun-libs-20161117-r1 libhdhomerun-libs-20161117-r1
libidn-1.35-r0 libidn-1.35-r0
libjpeg-turbo-2.0.2-r0 libjpeg-turbo-1.5.3-r4
libogg-1.3.3-r2 libogg-1.3.3-r2
libpciaccess-0.14-r0 libpciaccess-0.14-r0
libpng-1.6.37-r1 libpng-1.6.37-r0
libssl1.1-1.1.1d-r0 libressl-2.7.5-r0
libressl2.7-libcrypto-2.7.5-r0
libressl2.7-libssl-2.7.5-r0
libressl2.7-libtls-2.7.5-r0
libssh2-1.8.2-r0
libssl1.1-1.1.1b-r1
libstdc++-8.3.0-r0 libstdc++-8.3.0-r0
libtasn1-4.14-r0 libtasn1-4.13-r0
libtheora-1.1.1-r14 libtheora-1.1.1-r13
libtls-standalone-2.9.1-r0 libtls-standalone-2.7.4-r6
libunistring-0.9.10-r0 libunistring-0.9.10-r0
liburiparser-0.9.3-r0 libuuid-2.33-r0
libuuid-2.33.2-r0 libva-2.2.0-r0
libva-2.4.1-r0 libvdpau-1.1.1-r2
libva-intel-driver-2.3.0-r0
libvdpau-1.2-r0
libvorbis-1.3.6-r2 libvorbis-1.3.6-r2
libvpx-1.8.0-r0 libvpx-1.6.1-r1
libx11-1.6.8-r1 libx11-1.6.7-r0
libxau-1.0.9-r0 libxau-1.0.8-r3
libxcb-1.13.1-r0 libxcb-1.13-r2
libxdmcp-1.1.3-r0 libxdmcp-1.1.2-r5
libxext-1.3.4-r0 libxext-1.3.3-r3
libxfixes-5.0.3-r2 libxfixes-5.0.3-r2
libxml2-2.9.9-r2 libxml2-2.9.9-r1
libxshmfence-1.3-r0 libxslt-1.1.33-r1
libxslt-1.1.33-r2 linux-headers-4.18.13-r1
linux-headers-4.19.36-r0 linux-pam-1.3.0-r0
linux-pam-1.3.0-r1 musl-1.1.20-r4
llvm8-libs-8.0.0-r1 musl-utils-1.1.20-r4
mesa-19.0.6-r0 ncurses-libs-6.1_p20190105-r0
mesa-dri-ati-19.0.6-r0 ncurses-terminfo-6.1_p20190105-r0
mesa-glapi-19.0.6-r0 ncurses-terminfo-base-6.1_p20190105-r0
musl-1.1.22-r3 nettle-3.4.1-r0
musl-utils-1.1.22-r3 nghttp2-libs-1.35.1-r0
ncurses-libs-6.1_p20190518-r0 opus-1.3-r0
ncurses-terminfo-6.1_p20190518-r0 p11-kit-0.23.14-r0
ncurses-terminfo-base-6.1_p20190518-r0 pcre2-10.32-r1
nettle-3.4.1-r1 perl-5.26.3-r0
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-archive-zip-1.64-r0
perl-b-hooks-endofscope-0.24-r0 perl-b-hooks-endofscope-0.24-r0
perl-boolean-0.46-r0 perl-boolean-0.46-r0
perl-capture-tiny-0.48-r0 perl-capture-tiny-0.48-r0
perl-cgi-4.44-r0 perl-cgi-4.40-r0
perl-class-data-inheritable-0.08-r0 perl-class-data-inheritable-0.08-r0
perl-class-inspector-1.34-r0 perl-class-inspector-1.32-r0
perl-class-methodmaker-2.24-r3 perl-class-methodmaker-2.24-r2
perl-class-singleton-1.5-r0 perl-class-singleton-1.5-r0
perl-compress-raw-bzip2-2.086-r1 perl-compress-raw-bzip2-2.084-r0
perl-compress-raw-zlib-2.086-r1 perl-compress-raw-zlib-2.084-r0
perl-cpan-meta-check-0.014-r0 perl-cpan-meta-check-0.014-r1
perl-data-dumper-2.173-r1 perl-data-dumper-2.173-r0
perl-date-manip-6.77-r0 perl-date-manip-6.75-r1
perl-datetime-1.51-r0 perl-datetime-1.44-r0
perl-datetime-format-strptime-1.76-r0 perl-datetime-format-strptime-1.74-r0
perl-datetime-locale-1.23-r0 perl-datetime-locale-1.22-r0
perl-datetime-timezone-2.19-r0 perl-datetime-timezone-2.19-r0
perl-dbd-sqlite-1.62-r1 perl-dbd-sqlite-1.62-r0
perl-dbi-1.642-r1 perl-dbi-1.642-r0
perl-devel-stacktrace-2.04-r0 perl-devel-stacktrace-2.03-r0
perl-devel-symdump-2.18-r0 perl-devel-symdump-2.18-r0
perl-digest-sha1-2.13-r10 perl-digest-sha1-2.13-r9
perl-dist-checkconflicts-0.11-r0 perl-dist-checkconflicts-0.11-r1
perl-doc-5.28.2-r1 perl-doc-5.26.3-r0
perl-encode-locale-1.05-r1 perl-encode-locale-1.05-r1
perl-eval-closure-0.14-r0 perl-eval-closure-0.14-r0
perl-exception-class-1.44-r0 perl-exception-class-1.44-r0
@@ -115,11 +110,11 @@ perl-exporter-tiny-1.002001-r0
perl-file-listing-6.04-r1 perl-file-listing-6.04-r1
perl-file-sharedir-1.116-r0 perl-file-sharedir-1.116-r0
perl-file-sharedir-install-0.13-r0 perl-file-sharedir-install-0.13-r0
perl-file-slurp-9999.27-r0 perl-file-slurp-9999.25-r0
perl-file-temp-0.2309-r0 perl-file-temp-0.2308-r0
perl-file-which-1.23-r0 perl-file-which-1.22-r0
perl-getopt-long-2.50-r0 perl-getopt-long-2.50-r0
perl-html-parser-3.72-r3 perl-html-parser-3.72-r2
perl-html-tagset-3.20-r1 perl-html-tagset-3.20-r1
perl-html-tree-5.07-r0 perl-html-tree-5.07-r0
perl-http-cookies-6.04-r0 perl-http-cookies-6.04-r0
@@ -128,98 +123,95 @@ perl-http-date-6.02-r1
perl-http-message-6.18-r0 perl-http-message-6.18-r0
perl-http-negotiate-6.01-r1 perl-http-negotiate-6.01-r1
perl-importer-0.025-r0 perl-importer-0.025-r0
perl-io-1.25-r5 perl-io-1.25-r4
perl-io-compress-2.086-r0 perl-io-compress-2.084-r0
perl-io-html-1.001-r1 perl-io-html-1.001-r1
perl-io-socket-ssl-2.060-r0 perl-io-socket-ssl-2.060-r0
perl-io-stringy-2.111-r1 perl-io-stringy-2.111-r1
perl-ipc-run3-0.048-r0 perl-ipc-run3-0.048-r0
perl-json-2.97000-r0 perl-json-2.97000-r0
perl-libwww-6.39-r1 perl-libwww-6.36-r0
perl-lingua-en-numbers-ordinate-1.04-r1 perl-lingua-en-numbers-ordinate-1.04-r1
perl-lingua-preferred-0.2.4-r1 perl-lingua-preferred-0.2.4-r1
perl-list-moreutils-0.428-r0 perl-list-moreutils-0.419-r1
perl-list-moreutils-xs-0.428-r1 perl-lwp-mediatypes-6.02-r1
perl-lwp-mediatypes-6.04-r0 perl-module-build-0.4224-r0
perl-lwp-useragent-determined-1.07-r0
perl-module-build-0.4229-r0
perl-module-implementation-0.09-r1 perl-module-implementation-0.09-r1
perl-module-metadata-1.000036-r0
perl-module-pluggable-5.2-r0 perl-module-pluggable-5.2-r0
perl-module-runtime-0.016-r2 perl-module-runtime-0.016-r1
perl-mro-compat-0.13-r0 perl-mro-compat-0.13-r0
perl-namespace-autoclean-0.28-r0 perl-namespace-autoclean-0.28-r0
perl-namespace-clean-0.27-r0 perl-namespace-clean-0.27-r0
perl-net-http-6.19-r0 perl-net-http-6.09-r1
perl-net-libidn-0.12-r6 perl-net-libidn-0.12-r5
perl-net-ssleay-1.85-r5 perl-net-ssleay-1.85-r4
perl-package-deprecationmanager-0.17-r0 perl-package-deprecationmanager-0.17-r0
perl-package-stash-0.38-r1 perl-package-stash-0.37-r0
perl-package-stash-xs-0.29-r1 perl-package-stash-xs-0.28-r4
perl-params-util-1.07-r6 perl-params-classify-0.015-r0
perl-params-validate-1.29-r1 perl-params-util-1.07-r5
perl-params-validate-1.29-r0
perl-params-validationcompiler-0.27-r0 perl-params-validationcompiler-0.27-r0
perl-parse-recdescent-1.967015-r1 perl-parse-recdescent-1.967015-r1
perl-path-class-0.37-r0 perl-path-class-0.37-r0
perl-pod-coverage-0.23-r0 perl-pod-coverage-0.23-r0
perl-role-tiny-2.000006-r0 perl-role-tiny-2.000006-r0
perl-scalar-list-utils-1.50-r1 perl-scalar-list-utils-1.50-r0
perl-scope-guard-0.21-r0 perl-scope-guard-0.21-r0
perl-specio-0.42-r0 perl-specio-0.42-r0
perl-sub-exporter-progressive-0.001013-r0 perl-sub-exporter-progressive-0.001013-r0
perl-sub-identify-0.14-r2 perl-sub-identify-0.14-r1
perl-sub-info-0.002-r0 perl-sub-info-0.002-r0
perl-sub-install-0.928-r0 perl-sub-install-0.928-r1
perl-sub-name-0.21-r2 perl-sub-name-0.21-r1
perl-sub-quote-2.004000-r0 perl-sub-quote-2.004000-r0
perl-sub-uplevel-0.2800-r0 perl-sub-uplevel-0.2800-r0
perl-term-progressbar-2.22-r0 perl-term-progressbar-2.22-r0
perl-term-readkey-2.38-r1 perl-term-readkey-2.37-r1
perl-term-table-0.012-r0 perl-term-table-0.012-r0
perl-test-exception-0.43-r0 perl-test-exception-0.43-r0
perl-test-fatal-0.014-r1 perl-test-fatal-0.014-r1
perl-test-needs-0.002005-r1 perl-test-needs-0.002005-r1
perl-test-pod-1.52-r0 perl-test-pod-1.52-r0
perl-test-requires-0.10-r0 perl-test-requires-0.10-r0
perl-test-simple-1.302164-r0 perl-test-simple-1.302141-r0
perl-test-taint-1.08-r0 perl-test-taint-1.06-r5
perl-test-warnings-0.026-r0 perl-test-warnings-0.026-r0
perl-test-without-module-0.20-r0 perl-test-without-module-0.20-r0
perl-test2-plugin-nowarnings-0.07-r0 perl-test2-plugin-nowarnings-0.06-r0
perl-test2-suite-0.000122-r0 perl-test2-suite-0.000114-r0
perl-timedate-2.30-r1 perl-timedate-2.30-r1
perl-try-tiny-0.30-r1 perl-try-tiny-0.30-r0
perl-unicode-string-2.09-r7 perl-unicode-string-2.09-r6
perl-uri-1.76-r0 perl-uri-1.74-r0
perl-variable-magic-0.62-r1 perl-variable-magic-0.62-r0
perl-www-robotrules-6.02-r1 perl-www-robotrules-6.02-r1
perl-xml-libxml-2.0134-r2 perl-xml-libxml-2.0132-r1
perl-xml-libxslt-1.96-r1 perl-xml-libxslt-1.96-r0
perl-xml-namespacesupport-1.12-r0 perl-xml-namespacesupport-1.12-r0
perl-xml-parser-2.44-r5 perl-xml-parser-2.44-r4
perl-xml-sax-0.99-r2 perl-xml-sax-0.99-r2
perl-xml-sax-base-1.09-r0 perl-xml-sax-base-1.09-r0
perl-xml-treepp-0.43-r1 perl-xml-treepp-0.43-r1
perl-xml-twig-3.52-r1 perl-xml-twig-3.52-r1
perl-xml-writer-0.625-r2 perl-xml-writer-0.625-r2
perl-yaml-syck-1.31-r1 perl-yaml-syck-1.31-r0
python2-2.7.16-r1 python2-2.7.16-r1
readline-8.0.0-r0 readline-7.0.003-r1
scanelf-1.2.3-r0 scanelf-1.2.3-r0
sdl2-2.0.10-r0 sdl2-2.0.9-r0
shadow-4.6-r2 shadow-4.5-r2
sqlite-libs-3.28.0-r1 sqlite-libs-3.28.0-r0
ssl_client-1.30.1-r3 ssl_client-1.29.3-r10
tar-1.32-r0 tar-1.32-r0
tzdata-2019c-r0 tzdata-2019a-r0
uriparser-0.9.3-r0 uriparser-0.9.1-r0
v4l-utils-libs-1.16.6-r0 v4l-utils-libs-1.16.2-r0
wayland-libs-client-1.17.0-r0
wget-1.20.3-r0 wget-1.20.3-r0
x264-20180304-r1 x264-20180304-r1
x264-libs-20180304-r1 x264-libs-20180304-r1
x265-3.0-r0 x265-2.8-r1
x265-libs-3.0-r0 x265-libs-2.8-r1
xvidcore-1.3.4-r1 xvidcore-1.3.4-r1
xz-5.2.4-r0 xz-5.2.4-r0
xz-libs-5.2.4-r0 xz-libs-5.2.4-r0

View File

@@ -53,15 +53,14 @@ opt_param_usage_include_ports: false
opt_param_device_map: true opt_param_device_map: true
opt_param_devices: 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/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/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." } - { 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." }
opt_cap_add_param: false opt_cap_add_param: false
optional_block_1: true optional_block_1: true
optional_block_1_items: optional_block_1_items:
- | - |
#### Host vs. Bridge #### 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 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 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 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 # application setup block
app_setup_block_enabled: true app_setup_block_enabled: true
@@ -126,14 +125,8 @@ app_setup_block: |
# changelog # changelog
changelogs: 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: "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: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag." }
- { date: "01.03.19:", desc: "Bump xmltv to 0.6.1." }
- { date: "28.02.19:", desc: "add perl-lwp-useragent-determined." }
- { date: "17.02.19:", desc: "Bump xmltv to 5.70, ensure version tagging works by cloning tvheadend." } - { date: "17.02.19:", desc: "Bump xmltv to 5.70, ensure version tagging works by cloning tvheadend." }
- { date: "14.02.19:", desc: "Add picons path to config." } - { date: "14.02.19:", desc: "Add picons path to config." }
- { date: "15.01.19:", desc: "Add pipeline logic and multi arch." } - { date: "15.01.19:", desc: "Add pipeline logic and multi arch." }

View File

@@ -1,7 +1,7 @@
{ {
"prefer_picon": true, "prefer_picon": true,
"chiconpath": "file:///picons/%C.png", "chiconpath": "file:///picons/%C.png",
"piconpath": "file:///picons/", "piconpath": "file:///picons/",
"piconscheme": 0, "piconscheme": 0,
"chiconscheme": 2 "chiconscheme": 2
} }

View File

@@ -1,26 +0,0 @@
#!/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-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

0
root/etc/services.d/tvheadend/run Executable file → Normal file
View File