Compare commits

..

93 Commits

Author SHA1 Message Date
LinuxServer-CI
2ab71ea04f Bot Updating Package Versions 2020-07-03 16:58:14 +02:00
LinuxServer-CI
0af4b5ee04 Bot Updating Templated Files 2020-07-03 10:39:03 -04:00
aptalca
8d10f05040 Merge pull request #167 from linuxserver/release-4.2-3.12
rebasing to Alpine 3.12
2020-07-03 10:38:05 -04:00
thelamer
68cd01ddbb rebasing to Alpine 3.12 2020-06-02 13:57:06 -07:00
LinuxServer-CI
9965bea035 Bot Updating Package Versions 2019-12-28 02:05:51 +00:00
LinuxServer-CI
93bb3cd900 Bot Updating Templated Files 2019-12-27 20:06:43 -05:00
tobbenb
9aec32dc8c Forgot alot of shit 2019-12-27 17:05:17 -08:00
tobbenb
c3afae8ab1 Forgot to switch to Alpine 3.11 and XMLTV 0.6.1 2019-12-27 17:05:17 -08:00
tobbenb
9003301ccf Rebase to Alpine 3.11. Update XMLTV to 0.6.1 2019-12-27 17:05:17 -08:00
LinuxServer-CI
052ede491c Bot Updating Package Versions 2019-11-01 00:05:42 +00:00
LinuxServer-CI
d9b48f649e Bot Updating Templated Files 2019-10-31 19:36:21 -04:00
LinuxServer-CI
add0f71bb5 Bot Updating Package Versions 2019-10-20 18:39:50 -04:00
LinuxServer-CI
f361044cd9 Bot Updating Templated Files 2019-10-20 17:57:43 -04:00
LinuxServer-CI
dbc64ffec6 Bot Updating Templated Files 2019-10-20 22:56:20 +01:00
chbmb
2ace13ff57 Merge pull request #148 from thelamer/release-4.2
bugfix for alpine
2019-10-20 22:55:00 +01:00
thelamer
e9bcbed67d bugfix for alpine 2019-10-20 14:00:11 -07:00
LinuxServer-CI
c2d877e27c Bot Updating Package Versions 2019-10-02 18:05:34 -04:00
LinuxServer-CI
d9d6268f24 Bot Updating Templated Files 2019-10-02 17:12:00 -04:00
LinuxServer-CI
59907cf1df Bot Updating Templated Files 2019-10-02 17:10:52 -04:00
aptalca
cc7c79eb44 Improve permission fixing on render & dvb devices 2019-10-02 17:09:42 -04:00
LinuxServer-CI
1bb93b5a30 Bot Updating Package Versions 2019-08-02 15:18:17 -04:00
aptalca
5615df900e fix video device permissions 2019-08-02 11:09:06 -07:00
LinuxServer-CI
f7af259238 Bot Updating Package Versions 2019-06-30 22:09:01 +00:00
LinuxServer-CI
bf90cea801 Bot Updating Templated Files 2019-06-30 20:21:43 +01:00
chbmb
ebcc0518bf Merge pull request #135 from linuxserver/release-4.2-3.10
Rebasing to Alpine 3.10
2019-06-30 20:20:39 +01:00
thelamer
7cf6a4290e Rebasing to Alpine 3.10 2019-06-28 19:08:29 -07:00
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
11 changed files with 163 additions and 221 deletions

View File

@@ -3,11 +3,12 @@ FROM lsiobase/alpine:3.12 as buildstage
# package versions
ARG ARGTABLE_VER="2.13"
ARG TVH_VER="release/4.2"
ARG XMLTV_VER="v0.6.1"
ARG TVHEADEND_COMMIT
# environment settings
ARG TZ="Europe/Oslo"
ARG TVHEADEND_COMMIT
ENV HOME="/config"
# copy patches
@@ -29,21 +30,17 @@ RUN \
gcc \
gettext-dev \
git \
gnu-libiconv-dev \
gzip \
jq \
libcurl \
libdvbcsa-dev \
libgcrypt-dev \
libhdhomerun-dev \
libressl-dev \
libtool \
libva-dev \
libvpx-dev \
libxml2-dev \
libxslt-dev \
linux-headers \
make \
openssl-dev \
mercurial \
opus-dev \
patch \
pcre2-dev \
@@ -75,12 +72,10 @@ RUN \
perl-io-socket-ssl \
perl-io-stringy \
perl-json \
perl-json-xs \
perl-libwww \
perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \
perl-list-moreutils \
perl-lwp-useragent-determined \
perl-module-build \
perl-module-pluggable \
perl-net-ssleay \
@@ -110,7 +105,10 @@ RUN \
wget \
x264-dev \
x265-dev \
zlib-dev
zlib-dev && \
apk add --no-cache \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv-dev
RUN \
echo "**** remove musl iconv.h and replace with gnu-iconv.h ****" && \
@@ -119,7 +117,7 @@ RUN \
RUN \
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
RUN \
@@ -127,7 +125,7 @@ RUN \
git clone https://github.com/XMLTV/xmltv.git /tmp/xmltv && \
cd /tmp/xmltv && \
git checkout ${XMLTV_VER} && \
echo "**** Fix test for xmltv alpine 3.11 ****" && \
echo "**** fix test for xmltv alpine 3.11 ****" && \
patch -p1 -i /tmp/patches/test_tv_imdb.t.patch && \
echo "**** Perl 5.26 fixes for XMTLV ****" && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_latex && \
@@ -142,44 +140,41 @@ RUN \
make test && \
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 \
echo "**** compile tvheadend ****" && \
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'); \
fi && \
mkdir -p \
/tmp/tvheadend && \
/tmp/tvheadend && \
git clone https://github.com/tvheadend/tvheadend.git /tmp/tvheadend && \
cd /tmp/tvheadend && \
git checkout ${TVHEADEND_COMMIT} && \
./configure \
`#Encoding` \
--disable-avahi \
--disable-bintray_cache \
--disable-dbus_1 \
--disable-ffmpeg_static \
--disable-libfdkaac_static \
--disable-libmfx_static \
--disable-libtheora_static \
--disable-libopus_static \
--disable-libvorbis_static \
--disable-libvpx_static \
--disable-libx264_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_static \
--enable-libav \
--enable-pngquant \
--enable-trace \
--enable-vaapi \
--infodir=/usr/share/info \
--localstatedir=/var \
--mandir=/usr/share/man \
@@ -240,21 +235,15 @@ RUN \
curl \
ffmpeg \
ffmpeg-libs \
gnu-libiconv \
gzip \
libcrypto1.1 \
libcurl \
libdvbcsa \
libhdhomerun-libs \
libcurl \
libressl \
libssl1.1 \
libva \
libva-intel-driver \
mesa-dri-ati \
libvpx \
libxml2 \
libxslt \
linux-headers \
openssl \
opus \
pcre2 \
perl \
@@ -285,12 +274,10 @@ RUN \
perl-io-socket-ssl \
perl-io-stringy \
perl-json \
perl-json-xs \
perl-libwww \
perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \
perl-list-moreutils \
perl-lwp-useragent-determined \
perl-module-build \
perl-module-pluggable \
perl-net-ssleay \
@@ -311,7 +298,6 @@ RUN \
perl-xml-treepp \
perl-xml-twig \
perl-xml-writer \
py3-requests \
python2 \
tar \
uriparser \
@@ -319,6 +305,9 @@ RUN \
x264 \
x265 \
zlib && \
apk add --no-cache \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv && \
echo "**** Add Picons ****" && \
mkdir -p /picons && \
curl -o \
@@ -328,6 +317,7 @@ RUN \
# copy local files and buildstage artifacts
COPY --from=buildstage /tmp/argtable-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/xmltv-build/usr/ /usr/
COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/

View File

@@ -3,11 +3,12 @@ FROM lsiobase/alpine:arm64v8-3.12 as buildstage
# package versions
ARG ARGTABLE_VER="2.13"
ARG TVH_VER="release/4.2"
ARG XMLTV_VER="v0.6.1"
ARG TVHEADEND_COMMIT
# environment settings
ARG TZ="Europe/Oslo"
ARG TVHEADEND_COMMIT
ENV HOME="/config"
# copy patches
@@ -29,20 +30,17 @@ RUN \
gcc \
gettext-dev \
git \
gnu-libiconv-dev \
gzip \
jq \
libcurl \
libdvbcsa-dev \
libgcrypt-dev \
libhdhomerun-dev \
libressl-dev \
libtool \
libvpx-dev \
libxml2-dev \
libxslt-dev \
linux-headers \
make \
openssl-dev \
mercurial \
opus-dev \
patch \
pcre2-dev \
@@ -74,12 +72,10 @@ RUN \
perl-io-socket-ssl \
perl-io-stringy \
perl-json \
perl-json-xs \
perl-libwww \
perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \
perl-list-moreutils \
perl-lwp-useragent-determined \
perl-module-build \
perl-module-pluggable \
perl-net-ssleay \
@@ -109,7 +105,10 @@ RUN \
wget \
x264-dev \
x265-dev \
zlib-dev
zlib-dev && \
apk add --no-cache \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv-dev
RUN \
echo "**** remove musl iconv.h and replace with gnu-iconv.h ****" && \
@@ -118,7 +117,7 @@ RUN \
RUN \
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
RUN \
@@ -126,7 +125,7 @@ RUN \
git clone https://github.com/XMLTV/xmltv.git /tmp/xmltv && \
cd /tmp/xmltv && \
git checkout ${XMLTV_VER} && \
echo "**** Fix test for xmltv alpine 3.11 ****" && \
echo "**** fix test for xmltv alpine 3.11 ****" && \
patch -p1 -i /tmp/patches/test_tv_imdb.t.patch && \
echo "**** Perl 5.26 fixes for XMTLV ****" && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_latex && \
@@ -141,11 +140,19 @@ RUN \
make test && \
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 \
echo "**** compile tvheadend ****" && \
if [ -z ${TVHEADEND_COMMIT+x} ]; then \
TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/master \
| jq -r '. | .sha'); \
TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/${TVH_VER} \
| jq -r '. | .sha'); \
fi && \
mkdir -p \
/tmp/tvheadend && \
@@ -153,31 +160,21 @@ RUN \
cd /tmp/tvheadend && \
git checkout ${TVHEADEND_COMMIT} && \
./configure \
`#Encoding` \
--disable-avahi \
--disable-bintray_cache \
--disable-dbus_1 \
--disable-ffmpeg_static \
--disable-libfdkaac_static \
--disable-libmfx_static \
--disable-libtheora_static \
--disable-libopus_static \
--disable-libvorbis_static \
--disable-libvpx_static \
--disable-libx264_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_static \
--enable-libav \
--enable-pngquant \
--enable-trace \
--infodir=/usr/share/info \
--localstatedir=/var \
--mandir=/usr/share/man \
@@ -238,18 +235,15 @@ RUN \
curl \
ffmpeg \
ffmpeg-libs \
gnu-libiconv \
gzip \
libcrypto1.1 \
libcurl \
libdvbcsa \
libhdhomerun-libs \
libcurl \
libressl \
libssl1.1 \
libvpx \
libxml2 \
libxslt \
linux-headers \
openssl \
opus \
pcre2 \
perl \
@@ -280,12 +274,10 @@ RUN \
perl-io-socket-ssl \
perl-io-stringy \
perl-json \
perl-json-xs \
perl-libwww \
perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \
perl-list-moreutils \
perl-lwp-useragent-determined \
perl-module-build \
perl-module-pluggable \
perl-net-ssleay \
@@ -306,7 +298,6 @@ RUN \
perl-xml-treepp \
perl-xml-twig \
perl-xml-writer \
py3-requests \
python2 \
tar \
uriparser \
@@ -314,6 +305,9 @@ RUN \
x264 \
x265 \
zlib && \
apk add --no-cache \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv && \
echo "**** Add Picons ****" && \
mkdir -p /picons && \
curl -o \
@@ -323,6 +317,7 @@ RUN \
# copy local files and buildstage artifacts
COPY --from=buildstage /tmp/argtable-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/xmltv-build/usr/ /usr/
COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/

View File

@@ -3,11 +3,12 @@ FROM lsiobase/alpine:arm32v7-3.12 as buildstage
# package versions
ARG ARGTABLE_VER="2.13"
ARG TVH_VER="release/4.2"
ARG XMLTV_VER="v0.6.1"
ARG TVHEADEND_COMMIT
# environment settings
ARG TZ="Europe/Oslo"
ARG TVHEADEND_COMMIT
ENV HOME="/config"
# copy patches
@@ -29,20 +30,17 @@ RUN \
gcc \
gettext-dev \
git \
gnu-libiconv-dev \
gzip \
jq \
libcurl \
libdvbcsa-dev \
libgcrypt-dev \
libhdhomerun-dev \
libressl-dev \
libtool \
libvpx-dev \
libxml2-dev \
libxslt-dev \
linux-headers \
make \
openssl-dev \
mercurial \
opus-dev \
patch \
pcre2-dev \
@@ -74,12 +72,10 @@ RUN \
perl-io-socket-ssl \
perl-io-stringy \
perl-json \
perl-json-xs \
perl-libwww \
perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \
perl-list-moreutils \
perl-lwp-useragent-determined \
perl-module-build \
perl-module-pluggable \
perl-net-ssleay \
@@ -109,7 +105,10 @@ RUN \
wget \
x264-dev \
x265-dev \
zlib-dev
zlib-dev && \
apk add --no-cache \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv-dev
RUN \
echo "**** remove musl iconv.h and replace with gnu-iconv.h ****" && \
@@ -118,7 +117,7 @@ RUN \
RUN \
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
RUN \
@@ -126,7 +125,7 @@ RUN \
git clone https://github.com/XMLTV/xmltv.git /tmp/xmltv && \
cd /tmp/xmltv && \
git checkout ${XMLTV_VER} && \
echo "**** Fix test for xmltv alpine 3.11 ****" && \
echo "**** fix test for xmltv alpine 3.11 ****" && \
patch -p1 -i /tmp/patches/test_tv_imdb.t.patch && \
echo "**** Perl 5.26 fixes for XMTLV ****" && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_latex && \
@@ -141,11 +140,19 @@ RUN \
make test && \
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 \
echo "**** compile tvheadend ****" && \
if [ -z ${TVHEADEND_COMMIT+x} ]; then \
TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/master \
| jq -r '. | .sha'); \
TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/${TVH_VER} \
| jq -r '. | .sha'); \
fi && \
mkdir -p \
/tmp/tvheadend && \
@@ -153,31 +160,21 @@ RUN \
cd /tmp/tvheadend && \
git checkout ${TVHEADEND_COMMIT} && \
./configure \
`#Encoding` \
--disable-avahi \
--disable-bintray_cache \
--disable-dbus_1 \
--disable-ffmpeg_static \
--disable-libfdkaac_static \
--disable-libmfx_static \
--disable-libtheora_static \
--disable-libopus_static \
--disable-libvorbis_static \
--disable-libvpx_static \
--disable-libx264_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_static \
--enable-libav \
--enable-pngquant \
--enable-trace \
--infodir=/usr/share/info \
--localstatedir=/var \
--mandir=/usr/share/man \
@@ -238,18 +235,15 @@ RUN \
curl \
ffmpeg \
ffmpeg-libs \
gnu-libiconv \
gzip \
libcrypto1.1 \
libcurl \
libdvbcsa \
libhdhomerun-libs \
libcurl \
libressl \
libssl1.1 \
libvpx \
libxml2 \
libxslt \
linux-headers \
openssl \
opus \
pcre2 \
perl \
@@ -280,12 +274,10 @@ RUN \
perl-io-socket-ssl \
perl-io-stringy \
perl-json \
perl-json-xs \
perl-libwww \
perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \
perl-list-moreutils \
perl-lwp-useragent-determined \
perl-module-build \
perl-module-pluggable \
perl-net-ssleay \
@@ -306,7 +298,6 @@ RUN \
perl-xml-treepp \
perl-xml-twig \
perl-xml-writer \
py3-requests \
python2 \
tar \
uriparser \
@@ -314,6 +305,9 @@ RUN \
x264 \
x265 \
zlib && \
apk add --no-cache \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv && \
echo "**** Add Picons ****" && \
mkdir -p /picons && \
curl -o \
@@ -323,6 +317,7 @@ RUN \
# copy local files and buildstage artifacts
COPY --from=buildstage /tmp/argtable-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/xmltv-build/usr/ /usr/
COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/

80
Jenkinsfile vendored
View File

@@ -16,7 +16,7 @@ pipeline {
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
EXT_GIT_BRANCH = 'master'
EXT_GIT_BRANCH = 'release/4.2'
EXT_USER = 'tvheadend'
EXT_REPO = 'tvheadend'
BUILD_VERSION_ARG = 'TVHEADEND_COMMIT'
@@ -44,7 +44,7 @@ pipeline {
script{
env.EXIT_STATUS = ''
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()
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' ''',
@@ -129,10 +129,10 @@ 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"){
when {
branch "master"
branch "release-4.2"
environment name: 'CHANGE_ID', value: ''
}
steps {
@@ -152,7 +152,7 @@ pipeline {
// If this is a dev build use dev docker endpoints
stage("Set ENV dev build"){
when {
not {branch "master"}
not {branch "release-4.2"}
environment name: 'CHANGE_ID', value: ''
}
steps {
@@ -223,7 +223,7 @@ pipeline {
// Use helper containers to render templated files
stage('Update-Templates') {
when {
branch "master"
branch "release-4.2"
environment name: 'CHANGE_ID', value: ''
expression {
env.CONTAINER_NAME != null
@@ -234,7 +234,7 @@ pipeline {
set -e
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 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)
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
@@ -242,7 +242,7 @@ pipeline {
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master
git checkout -f release-4.2
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/
@@ -274,7 +274,7 @@ pipeline {
// Exit the build if the Templated files were just updated
stage('Template-exit') {
when {
branch "master"
branch "release-4.2"
environment name: 'CHANGE_ID', value: ''
environment name: 'FILES_UPDATED', value: 'true'
expression {
@@ -397,7 +397,7 @@ pipeline {
// Take the image we just built and dump package versions for comparison
stage('Update-packages') {
when {
branch "master"
branch "release-4.2"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
@@ -425,7 +425,7 @@ pipeline {
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
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}/
cd ${TEMPDIR}/${LS_REPO}/
wait
@@ -449,7 +449,7 @@ pipeline {
// Exit the build if the package file was just updated
stage('PACKAGE-exit') {
when {
branch "master"
branch "release-4.2"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'true'
environment name: 'EXIT_STATUS', value: ''
@@ -463,7 +463,7 @@ pipeline {
// Exit the build if this is just a package check and there are no changes to push
stage('PACKAGECHECK-exit') {
when {
branch "master"
branch "release-4.2"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'false'
environment name: 'EXIT_STATUS', value: ''
@@ -552,8 +552,8 @@ pipeline {
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest
docker push ${PUSHIMAGE}:latest
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:release-4.2
docker push ${PUSHIMAGE}:release-4.2
docker push ${PUSHIMAGE}:${META_TAG}
done
'''
@@ -562,7 +562,7 @@ pipeline {
for DELETEIMAGE in "${GITHUBIMAGE}" "{GITLABIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:${META_TAG} \
${DELETEIMAGE}:latest || :
${DELETEIMAGE}:release-4.2 || :
done
'''
}
@@ -599,51 +599,51 @@ pipeline {
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-release-4.2
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-release-4.2
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-release-4.2
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker push ${MANIFESTIMAGE}:amd64-latest
docker push ${MANIFESTIMAGE}:arm32v7-latest
docker push ${MANIFESTIMAGE}:arm64v8-latest
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
docker push ${MANIFESTIMAGE}:amd64-release-4.2
docker push ${MANIFESTIMAGE}:arm32v7-release-4.2
docker push ${MANIFESTIMAGE}:arm64v8-release-4.2
docker manifest push --purge ${MANIFESTIMAGE}:release-4.2 || :
docker manifest create ${MANIFESTIMAGE}:release-4.2 ${MANIFESTIMAGE}:amd64-release-4.2 ${MANIFESTIMAGE}:arm32v7-release-4.2 ${MANIFESTIMAGE}:arm64v8-release-4.2
docker manifest annotate ${MANIFESTIMAGE}:release-4.2 ${MANIFESTIMAGE}:arm32v7-release-4.2 --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:release-4.2 ${MANIFESTIMAGE}:arm64v8-release-4.2 --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:latest
docker manifest push --purge ${MANIFESTIMAGE}:release-4.2
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
done
docker tag ${IMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:amd64-${META_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${GITHUBIMAGE}:arm32v7-${META_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${GITHUBIMAGE}:arm64v8-${META_TAG}
docker tag ${GITHUBIMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:latest
docker tag ${GITHUBIMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:release-4.2
docker tag ${GITHUBIMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:${META_TAG}
docker tag ${GITHUBIMAGE}:arm32v7-${META_TAG} ${GITHUBIMAGE}:arm32v7-latest
docker tag ${GITHUBIMAGE}:arm64v8-${META_TAG} ${GITHUBIMAGE}:arm64v8-latest
docker tag ${GITHUBIMAGE}:arm32v7-${META_TAG} ${GITHUBIMAGE}:arm32v7-release-4.2
docker tag ${GITHUBIMAGE}:arm64v8-${META_TAG} ${GITHUBIMAGE}:arm64v8-release-4.2
docker push ${GITHUBIMAGE}:amd64-${META_TAG}
docker push ${GITHUBIMAGE}:arm32v7-${META_TAG}
docker push ${GITHUBIMAGE}:arm64v8-${META_TAG}
docker push ${GITHUBIMAGE}:latest
docker push ${GITHUBIMAGE}:release-4.2
docker push ${GITHUBIMAGE}:${META_TAG}
docker push ${GITHUBIMAGE}:arm32v7-latest
docker push ${GITHUBIMAGE}:arm64v8-latest
docker push ${GITHUBIMAGE}:arm32v7-release-4.2
docker push ${GITHUBIMAGE}:arm64v8-release-4.2
'''
}
sh '''#! /bin/bash
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:amd64-${META_TAG} \
${DELETEIMAGE}:amd64-latest \
${DELETEIMAGE}:amd64-release-4.2 \
${DELETEIMAGE}:arm32v7-${META_TAG} \
${DELETEIMAGE}:arm32v7-latest \
${DELETEIMAGE}:arm32v7-release-4.2 \
${DELETEIMAGE}:arm64v8-${META_TAG} \
${DELETEIMAGE}:arm64v8-latest || :
${DELETEIMAGE}:arm64v8-release-4.2 || :
done
docker rmi \
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
@@ -655,7 +655,7 @@ pipeline {
// If this is a public release tag it in the LS Github
stage('Github-Tag-Push-Release') {
when {
branch "master"
branch "release-4.2"
expression {
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
@@ -667,17 +667,17 @@ pipeline {
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}'",\
"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",\
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
echo "Pushing New release for Tag"
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
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}'",\
"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
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
}

View File

@@ -32,7 +32,7 @@ Find us at:
[![MicroBadger Layers](https://img.shields.io/microbadger/layers/linuxserver/tvheadend.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge)](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?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/tvheadend)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/tvheadend.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/tvheadend)
[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-tvheadend%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-tvheadend/job/master/)
[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-tvheadend%2Fjob%2Frelease-4.2%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-tvheadend/job/release-4.2/)
[![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Flsio-ci.ams3.digitaloceanspaces.com%2Flinuxserver%2Ftvheadend%2Flatest%2Fci-status.yml)](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.
@@ -85,15 +85,14 @@ docker create \
-v <path to data>:/config \
-v <path to recordings>:/recordings \
--device /dev/dri:/dev/dri `#optional` \
--device /dev/dvb:/dev/dvb `#optional` \
--device /dev/drb:/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 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.
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.
### docker-compose
@@ -120,7 +119,7 @@ services:
- 9982:9982
devices:
- /dev/dri:/dev/dri #optional
- /dev/dvb:/dev/dvb #optional
- /dev/drb:/dev/dvb #optional
restart: unless-stopped
```
@@ -226,7 +225,7 @@ For advanced setup of tvheadend, go to [Tvheadend][appurl]
**Picons**
We have added all the picons from [picons.eu](https://picons.eu/) in the folder /picons. To enable the use of these picons, add the path to the Channel icon path in Configuration --> General --> Base.
We have added all the picons from [picons.xyz](https://picons.xyz/) in the folder /picons. To enable the use of these picons, add the path to the Channel icon path in Configuration --> General --> Base.
You need to enable minimum advanced view level to see the picons options.
## Additional runtime parameters
@@ -304,17 +303,13 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **02.06.20:** - Update to Alpine 3.12.
* **27.12.19:** - Add requests and perl-json-xs package.
* **27.12.19:** - Update to Alpine 3.11.
* **02.10.19:** - Improve permission fixing on render & dvb devices.
* **18.08.19:** - Add AMD drivers.
* **02.06.20:** - Rebase to Alpine 3.12.
* **27.12.19:** - Rebase to Alpine 3.11. Update XMLTV to 0.6.1
* **02.10.19:** - Improve permissions fixing on render & dvb devices.
* **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.
* **28.02.19:** - add perl-lwp-useragent-determined.
* **17.02.19:** - Bump xmltv to 5.70, ensure version tagging works by cloning tvheadend.
* **14.02.19:** - Add picons path to config.
* **15.01.19:** - Add pipeline logic and multi arch.

View File

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

View File

@@ -13,12 +13,11 @@ ca-certificates-bundle-20191127-r4
coreutils-8.32-r0
curl-7.69.1-r0
expat-2.2.9-r1
ffmpeg-4.3.1-r0
ffmpeg-libs-4.3.1-r0
ffmpeg-4.3-r0
ffmpeg-libs-4.3-r0
fontconfig-2.13.1-r2
freetype-2.10.2-r0
fribidi-1.0.9-r0
fts-1.2.7-r1
gdbm-1.13-r1
gmp-6.2.0-r0
gnu-libiconv-1.15-r2
@@ -35,13 +34,10 @@ libcrypto1.1-1.1.1g-r0
libcurl-7.69.1-r0
libdav1d-0.7.0-r0
libdrm-2.4.102-r0
libdvbcsa-1.1.0-r1
libelf-0.179-r0
libffi-3.3-r2
libgcc-9.3.0-r2
libgcrypt-1.8.5-r0
libgpg-error-1.37-r0
libhdhomerun-libs-20200225-r0
libidn-1.35-r0
libidn2-2.3.0-r0
libintl-0.20.2-r0
@@ -50,6 +46,10 @@ libogg-1.3.4-r0
libpciaccess-0.16-r0
libpng-1.6.37-r1
libproc-3.3.16-r0
libressl-3.1.2-r0
libressl3.1-libcrypto-3.1.2-r0
libressl3.1-libssl-3.1.2-r0
libressl3.1-libtls-3.1.2-r0
libssh-0.9.4-r0
libssl1.1-1.1.1g-r0
libstdc++-9.3.0-r2
@@ -60,7 +60,6 @@ libunistring-0.9.10-r0
liburiparser-0.9.3-r1
libuuid-2.35.2-r0
libva-2.7.1-r0
libva-intel-driver-2.4.0-r1
libvdpau-1.4-r0
libvorbis-1.3.6-r2
libvpx-1.8.2-r0
@@ -71,25 +70,15 @@ libxdmcp-1.1.3-r0
libxext-1.3.4-r0
libxfixes-5.0.3-r2
libxml2-2.9.10-r4
libxshmfence-1.3-r0
libxslt-1.1.34-r0
linux-headers-5.4.5-r1
linux-pam-1.3.1-r4
llvm10-libs-10.0.0-r2
mesa-20.0.7-r0
mesa-dri-ati-20.0.7-r0
mesa-dri-classic-20.0.7-r0
mesa-dri-gallium-20.0.7-r0
mesa-glapi-20.0.7-r0
mesa-va-gallium-20.0.7-r0
mesa-vdpau-gallium-20.0.7-r0
musl-1.1.24-r9
musl-utils-1.1.24-r9
ncurses-libs-6.2_p20200523-r0
ncurses-terminfo-base-6.2_p20200523-r0
nettle-3.5.1-r1
nghttp2-libs-1.41.0-r0
openssl-1.1.1g-r0
opus-1.3.1-r0
p11-kit-0.23.20-r5
pcre2-10.35-r0
@@ -97,14 +86,12 @@ perl-5.30.3-r0
perl-archive-zip-1.68-r0
perl-b-hooks-endofscope-0.24-r1
perl-boolean-0.46-r1
perl-canary-stability-2013-r0
perl-capture-tiny-0.48-r1
perl-cgi-4.47-r0
perl-class-data-inheritable-0.08-r1
perl-class-inspector-1.36-r1
perl-class-methodmaker-2.24-r6
perl-class-singleton-1.5-r1
perl-common-sense-3.75-r0
perl-compress-raw-bzip2-2.093-r1
perl-compress-raw-zlib-2.093-r1
perl-cpan-meta-check-0.014-r1
@@ -148,14 +135,12 @@ perl-io-socket-ssl-2.068-r0
perl-io-stringy-2.113-r0
perl-ipc-run3-0.048-r1
perl-json-4.02-r0
perl-json-xs-4.02-r1
perl-libwww-6.44-r0
perl-lingua-en-numbers-ordinate-1.04-r2
perl-lingua-preferred-0.2.4-r2
perl-list-moreutils-0.428-r0
perl-list-moreutils-xs-0.428-r3
perl-lwp-mediatypes-6.04-r0
perl-lwp-useragent-determined-1.07-r1
perl-module-build-0.4231-r0
perl-module-implementation-0.09-r2
perl-module-metadata-1.000037-r0
@@ -203,7 +188,6 @@ perl-test2-plugin-nowarnings-0.08-r1
perl-test2-suite-0.000129-r0
perl-timedate-2.33-r0
perl-try-tiny-0.30-r1
perl-types-serialiser-1.0-r2
perl-unicode-string-2.10-r1
perl-uri-1.76-r0
perl-variable-magic-0.62-r3
@@ -219,19 +203,7 @@ perl-xml-twig-3.52-r2
perl-xml-writer-0.625-r3
perl-yaml-syck-1.32-r0
procps-3.3.16-r0
py3-appdirs-1.4.4-r1
py3-certifi-2020.4.5.1-r0
py3-chardet-3.0.4-r4
py3-idna-2.9-r0
py3-ordered-set-4.0.1-r0
py3-packaging-20.4-r0
py3-parsing-2.4.7-r0
py3-requests-2.23.0-r0
py3-setuptools-47.0.0-r0
py3-six-1.15.0-r0
py3-urllib3-1.25.9-r0
python2-2.7.18-r0
python3-3.8.5-r0
readline-8.0.4-r0
scanelf-1.2.6-r0
sdl2-2.0.12-r1
@@ -252,4 +224,3 @@ xvidcore-1.3.7-r1
xz-5.2.5-r0
xz-libs-5.2.5-r0
zlib-1.2.11-r3
zstd-libs-1.4.5-r0

View File

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

View File

@@ -53,15 +53,14 @@ 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/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
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 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.
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.
# application setup block
app_setup_block_enabled: true
@@ -117,7 +116,7 @@ app_setup_block: |
**Picons**
We have added all the picons from [picons.eu](https://picons.eu/) in the folder /picons. To enable the use of these picons, add the path to the Channel icon path in Configuration --> General --> Base.
We have added all the picons from [picons.xyz](https://picons.xyz/) in the folder /picons. To enable the use of these picons, add the path to the Channel icon path in Configuration --> General --> Base.
You need to enable minimum advanced view level to see the picons options.
## Additional runtime parameters
@@ -126,17 +125,13 @@ app_setup_block: |
# changelog
changelogs:
- { date: "02.06.20:", desc: "Update to Alpine 3.12." }
- { date: "27.12.19:", desc: "Add requests and perl-json-xs package." }
- { date: "27.12.19:", desc: "Update to Alpine 3.11." }
- { date: "02.10.19:", desc: "Improve permission fixing on render & dvb devices." }
- { date: "18.08.19:", desc: "Add AMD drivers." }
- { date: "02.06.20:", desc: "Rebase to Alpine 3.12." }
- { date: "27.12.19:", desc: "Rebase to Alpine 3.11. Update XMLTV to 0.6.1" }
- { date: "02.10.19:", desc: "Improve permissions fixing on render & dvb devices." }
- { 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." }
- { 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: "14.02.19:", desc: "Add picons path to config." }
- { date: "15.01.19:", desc: "Add pipeline logic and multi arch." }

View File

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

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