Compare commits

...

20 Commits

Author SHA1 Message Date
LinuxServer-CI
251f0dc45c Bot Updating Package Versions 2023-03-05 16:12:20 +01:00
LinuxServer-CI
36fbd65464 Bot Updating Templated Files 2023-03-05 08:58:43 -06:00
LinuxServer-CI
45faa93578 Bot Updating Package Versions 2023-02-26 18:53:47 +01:00
Adam
ba51d908b7 Merge pull request #219 from linuxserver/fix-ffmpeg 2023-02-26 17:42:18 +00:00
TheSpad
d18a3b17da Spelling is hard 2023-02-26 17:08:49 +00:00
TheSpad
5730bb139e Keep ffmpeg4 libs 2023-02-26 17:05:51 +00:00
TheSpad
18a01d7723 Add missing ffmpeg binaries to runtime packages 2023-02-26 16:47:57 +00:00
LinuxServer-CI
9152ff840e Bot Updating Package Versions 2023-02-25 10:05:18 -06:00
Adam
c133bd2a31 Merge pull request #218 from linuxserver/3.17 2023-02-25 15:53:44 +00:00
TheSpad
7948185421 Drop armhf 2023-02-23 17:57:09 +00:00
TheSpad
87da9eae9b Try not building armhf 2023-02-23 17:08:03 +00:00
TheSpad
3f60a0285b Remove more unsupported arm packages 2023-02-23 16:50:24 +00:00
TheSpad
61f785a278 Remove missing intel video packages for arm 2023-02-23 16:36:42 +00:00
TheSpad
c1d27489df Rebase to 3.17, migrate to s6v3 2023-02-23 16:24:53 +00:00
LinuxServer-CI
14a5ab8fc8 Bot Updating Package Versions 2023-02-19 09:07:56 -06:00
LinuxServer-CI
65740ca91d Bot Updating Package Versions 2023-02-12 16:12:30 +01:00
LinuxServer-CI
951d9e8ae9 Bot Updating Templated Files 2023-02-12 08:59:58 -06:00
LinuxServer-CI
fa84ae9b61 Bot Updating Templated Files 2023-02-12 15:58:33 +01:00
LinuxServer-CI
eebea3427a Bot Updating Package Versions 2023-01-01 09:07:33 -06:00
LinuxServer-CI
29a44e997a Bot Updating Package Versions 2022-12-18 09:09:09 -06:00
28 changed files with 877 additions and 1254 deletions

View File

@@ -15,6 +15,6 @@ trim_trailing_whitespace = false
indent_style = space indent_style = space
indent_size = 2 indent_size = 2
[{**.sh,root/etc/cont-init.d/**,root/etc/services.d/**}] [{**.sh,root/etc/s6-overlay/s6-rc.d/**,root/etc/cont-init.d/**,root/etc/services.d/**}]
indent_style = space indent_style = space
indent_size = 4 indent_size = 4

View File

@@ -53,7 +53,6 @@ body:
options: options:
- x86-64 - x86-64
- arm64 - arm64
- armhf
validations: validations:
required: true required: true
- type: textarea - type: textarea

12
.github/workflows/call_invalid_helper.yml vendored Executable file
View File

@@ -0,0 +1,12 @@
name: Comment on invalid interaction
on:
issues:
types:
- labeled
jobs:
add-comment-on-invalid:
if: github.event.label.name == 'invalid'
permissions:
issues: write
uses: linuxserver/github-workflows/.github/workflows/invalid-interaction-helper.yml@v1
secrets: inherit

View File

@@ -8,6 +8,6 @@ jobs:
steps: steps:
- uses: actions/first-interaction@v1 - uses: actions/first-interaction@v1
with: with:
issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-tvheadend/blob/master/.github/ISSUE_TEMPLATE/issue.bug.yml) or [feature](https://github.com/linuxserver/docker-tvheadend/blob/master/.github/ISSUE_TEMPLATE/issue.feature.yml) issue templates!' issue-message: 'Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-tvheadend/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!' pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-tvheadend/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }} repo-token: ${{ secrets.GITHUB_TOKEN }}

9
.github/workflows/permissions.yml vendored Executable file
View File

@@ -0,0 +1,9 @@
name: Permission check
on:
pull_request:
paths:
- '**/run'
- '**/finish'
jobs:
permission_check:
uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1

View File

@@ -1,4 +1,6 @@
FROM ghcr.io/linuxserver/baseimage-alpine:3.15 as buildstage # syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:3.17 as buildstage
############## build stage ############## ############## build stage ##############
# package versions # package versions
@@ -6,7 +8,7 @@ ARG ARGTABLE_VER="2.13"
ARG XMLTV_VER="v1.0.0" ARG XMLTV_VER="v1.0.0"
# environment settings # environment settings
ARG TZ="Europe/Oslo" ARG TZ="Etc/UTC"
ARG TVHEADEND_COMMIT ARG TVHEADEND_COMMIT
ENV HOME="/config" ENV HOME="/config"
@@ -14,209 +16,200 @@ ENV HOME="/config"
COPY patches/ /tmp/patches/ COPY patches/ /tmp/patches/
RUN \ RUN \
echo "**** install build packages ****" && \ echo "**** install build packages ****" && \
apk add --no-cache \ apk add --no-cache \
autoconf \ autoconf \
automake \ automake \
bsd-compat-headers \ bsd-compat-headers \
bzip2 \ build-base \
cmake \ cmake \
curl \ ffmpeg4-dev \
ffmpeg-dev \ file \
file \ findutils \
findutils \ gettext-dev \
g++ \ git \
gcc \ gnu-libiconv-dev \
gettext-dev \ libdvbcsa-dev \
git \ libgcrypt-dev \
gnu-libiconv-dev \ libhdhomerun-dev \
gzip \ libtool \
jq \ libva-dev \
libcurl \ libvpx-dev \
libdvbcsa-dev \ libxml2-dev \
libgcrypt-dev \ libxslt-dev \
libhdhomerun-dev \ linux-headers \
libtool \ openssl-dev \
libva-dev \ opus-dev \
libvpx-dev \ patch \
libxml2-dev \ pcre2-dev \
libxslt-dev \ perl-archive-zip \
linux-headers \ perl-boolean \
make \ perl-capture-tiny \
openssl-dev \ perl-cgi \
opus-dev \ perl-compress-raw-zlib \
patch \ perl-date-manip \
pcre2-dev \ perl-datetime \
perl-archive-zip \ perl-datetime-format-strptime \
perl-boolean \ perl-datetime-timezone \
perl-capture-tiny \ perl-dbd-sqlite \
perl-cgi \ perl-dbi \
perl-compress-raw-zlib \ perl-dev \
perl-date-manip \ perl-digest-sha1 \
perl-datetime \ perl-doc \
perl-datetime-format-strptime \ perl-file-slurp \
perl-datetime-timezone \ perl-file-temp \
perl-dbd-sqlite \ perl-file-which \
perl-dbi \ perl-getopt-long \
perl-dev \ perl-html-parser \
perl-digest-sha1 \ perl-html-tree \
perl-doc \ perl-http-cookies \
perl-file-slurp \ perl-io \
perl-file-temp \ perl-io-html \
perl-file-which \ perl-io-socket-ssl \
perl-getopt-long \ perl-io-stringy \
perl-html-parser \ perl-json \
perl-html-tree \ perl-json-xs \
perl-http-cookies \ perl-libwww \
perl-io \ perl-lingua-en-numbers-ordinate \
perl-io-html \ perl-lingua-preferred \
perl-io-socket-ssl \ perl-list-moreutils \
perl-io-stringy \ perl-lwp-useragent-determined \
perl-json \ perl-module-build \
perl-json-xs \ perl-module-pluggable \
perl-libwww \ perl-net-ssleay \
perl-lingua-en-numbers-ordinate \ perl-parse-recdescent \
perl-lingua-preferred \ perl-path-class \
perl-list-moreutils \ perl-scalar-list-utils \
perl-lwp-useragent-determined \ perl-term-progressbar \
perl-module-build \ perl-term-readkey \
perl-module-pluggable \ perl-test-exception \
perl-net-ssleay \ perl-test-requires \
perl-parse-recdescent \ perl-timedate \
perl-path-class \ perl-try-tiny \
perl-scalar-list-utils \ perl-unicode-string \
perl-term-progressbar \ perl-xml-libxml \
perl-term-readkey \ perl-xml-libxslt \
perl-test-exception \ perl-xml-parser \
perl-test-requires \ perl-xml-sax \
perl-timedate \ perl-xml-treepp \
perl-try-tiny \ perl-xml-twig \
perl-unicode-string \ perl-xml-writer \
perl-xml-libxml \ pkgconf \
perl-xml-libxslt \ pngquant \
perl-xml-parser \ python3 \
perl-xml-sax \ sdl2-dev \
perl-xml-treepp \ uriparser-dev \
perl-xml-twig \ x264-dev \
perl-xml-writer \ x265-dev \
pkgconf \ zlib-dev
pngquant \
python3 \
sdl-dev \
tar \
uriparser-dev \
wget \
x264-dev \
x265-dev \
zlib-dev
RUN \ RUN \
echo "**** remove musl iconv.h and replace with gnu-iconv.h ****" && \ echo "**** remove musl iconv.h and replace with gnu-iconv.h ****" && \
rm -rf /usr/include/iconv.h && \ rm -rf /usr/include/iconv.h && \
cp /usr/include/gnu-libiconv/iconv.h /usr/include/iconv.h cp /usr/include/gnu-libiconv/iconv.h /usr/include/iconv.h
RUN \ RUN \
echo "**** install perl modules for xmltv ****" && \ echo "**** install perl modules for xmltv ****" && \
curl -s -L https://cpanmin.us | perl - App::cpanminus && \ curl -s -L https://cpanmin.us | perl - App::cpanminus && \
cpanm --installdeps /tmp/patches cpanm --installdeps /tmp/patches
RUN \ RUN \
echo "**** compile XMLTV ****" && \ echo "**** compile XMLTV ****" && \
git clone https://github.com/XMLTV/xmltv.git /tmp/xmltv && \ git clone https://github.com/XMLTV/xmltv.git /tmp/xmltv && \
cd /tmp/xmltv && \ cd /tmp/xmltv && \
git checkout ${XMLTV_VER} && \ git checkout ${XMLTV_VER} && \
echo "**** Perl 5.26 fixes for XMTLV ****" && \ echo "**** Perl 5.26 fixes for XMTLV ****" && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_latex && \ sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_latex && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_text && \ sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_text && \
sed "s/\(lib\/set_share_dir.pl';\)/.\/\1/" -i grab/it/tv_grab_it.PL && \ sed "s/\(lib\/set_share_dir.pl';\)/.\/\1/" -i grab/it/tv_grab_it.PL && \
sed "s/\(filter\/Grep.pm';\)/.\/\1/" -i filter/tv_grep.PL && \ sed "s/\(filter\/Grep.pm';\)/.\/\1/" -i filter/tv_grep.PL && \
sed "s/\(lib\/XMLTV.pm.in';\)/.\/\1/" -i lib/XMLTV.pm.PL && \ sed "s/\(lib\/XMLTV.pm.in';\)/.\/\1/" -i lib/XMLTV.pm.PL && \
sed "s/\(lib\/Ask\/Term.pm';\)/.\/\1/" -i Makefile.PL && \ sed "s/\(lib\/Ask\/Term.pm';\)/.\/\1/" -i Makefile.PL && \
PERL5LIB=`pwd` && \ PERL5LIB=`pwd` && \
echo -e "yes" | perl Makefile.PL PREFIX=/usr/ INSTALLDIRS=vendor && \ echo -e "yes" | perl Makefile.PL PREFIX=/usr/ INSTALLDIRS=vendor && \
make -j 2 && \ make -j 2 && \
make test && \ make test && \
make DESTDIR=/tmp/xmltv-build install make DESTDIR=/tmp/xmltv-build install
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/master \
| 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` \ `#Encoding` \
--disable-ffmpeg_static \ --disable-ffmpeg_static \
--disable-libfdkaac_static \ --disable-libfdkaac_static \
--disable-libtheora_static \ --disable-libtheora_static \
--disable-libopus_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 \ --disable-libfdkaac \
--enable-libopus \ --enable-libopus \
--enable-libvorbis \ --enable-libvorbis \
--enable-libvpx \ --enable-libvpx \
--enable-libx264 \ --enable-libx264 \
--enable-libx265 \ --enable-libx265 \
\ \
`#Options` \ `#Options` \
--disable-avahi \ --disable-avahi \
--disable-dbus_1 \ --disable-dbus_1 \
--disable-bintray_cache \ --disable-bintray_cache \
--disable-execinfo \ --disable-execinfo \
--disable-hdhomerun_static \ --disable-hdhomerun_static \
--enable-hdhomerun_client \ --enable-hdhomerun_client \
--enable-libav \ --enable-libav \
--enable-pngquant \ --enable-pngquant \
--enable-trace \ --enable-trace \
--enable-vaapi \ --enable-vaapi \
--infodir=/usr/share/info \ --infodir=/usr/share/info \
--localstatedir=/var \ --localstatedir=/var \
--mandir=/usr/share/man \ --mandir=/usr/share/man \
--prefix=/usr \ --prefix=/usr \
--python=python3 \ --python=python3 \
--sysconfdir=/config && \ --sysconfdir=/config && \
make -j 2 && \ make -j 2 && \
make DESTDIR=/tmp/tvheadend-build install make DESTDIR=/tmp/tvheadend-build install
RUN \ RUN \
echo "**** compile argtable2 ****" && \ echo "**** compile argtable2 ****" && \
ARGTABLE_VER1="${ARGTABLE_VER//./-}" && \ ARGTABLE_VER1="${ARGTABLE_VER//./-}" && \
mkdir -p \ mkdir -p \
/tmp/argtable && \ /tmp/argtable && \
curl -s -o \ curl -s -o \
/tmp/argtable-src.tar.gz -L \ /tmp/argtable-src.tar.gz -L \
"https://sourceforge.net/projects/argtable/files/argtable/argtable-${ARGTABLE_VER}/argtable${ARGTABLE_VER1}.tar.gz" && \ "https://sourceforge.net/projects/argtable/files/argtable/argtable-${ARGTABLE_VER}/argtable${ARGTABLE_VER1}.tar.gz" && \
tar xf \ tar xf \
/tmp/argtable-src.tar.gz -C \ /tmp/argtable-src.tar.gz -C \
/tmp/argtable --strip-components=1 && \ /tmp/argtable --strip-components=1 && \
cp /tmp/patches/config.* /tmp/argtable && \ cp /tmp/patches/config.* /tmp/argtable && \
cd /tmp/argtable && \ cd /tmp/argtable && \
./configure \ ./configure \
--prefix=/usr && \ --prefix=/usr && \
make -j 2 && \ make -j 2 && \
make check && \ make check && \
make DESTDIR=/tmp/argtable-build install && \ make DESTDIR=/tmp/argtable-build install && \
echo "**** copy to /usr for comskip dependency ****" && \ echo "**** copy to /usr for comskip dependency ****" && \
cp -pr /tmp/argtable-build/usr/* /usr/ cp -pr /tmp/argtable-build/usr/* /usr/
RUN \ RUN \
echo "***** compile comskip ****" && \ echo "***** compile comskip ****" && \
git clone https://github.com/erikkaashoek/Comskip /tmp/comskip && \ git clone https://github.com/erikkaashoek/Comskip /tmp/comskip && \
cd /tmp/comskip && \ cd /tmp/comskip && \
./autogen.sh && \ ./autogen.sh && \
./configure \ ./configure \
--bindir=/usr/bin \ --bindir=/usr/bin \
--sysconfdir=/config/comskip && \ --sysconfdir=/config/comskip && \
make -j 2 && \ make -j 2 && \
make DESTDIR=/tmp/comskip-build install make DESTDIR=/tmp/comskip-build install
############## picons stage ############## ############## picons stage ##############
# built by https://github.com/linuxserver/picons-builder # built by https://github.com/linuxserver/picons-builder
@@ -224,7 +217,7 @@ FROM ghcr.io/linuxserver/picons-builder as piconsstage
############## runtime stage ############## ############## runtime stage ##############
FROM ghcr.io/linuxserver/baseimage-alpine:3.15 FROM ghcr.io/linuxserver/baseimage-alpine:3.17
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -236,91 +229,82 @@ LABEL maintainer="saarg"
ENV HOME="/config" ENV HOME="/config"
RUN \ RUN \
echo "**** install runtime packages ****" && \ echo "**** install runtime packages ****" && \
apk add --no-cache \ apk add --no-cache \
bsd-compat-headers \ bsd-compat-headers \
bzip2 \ ffmpeg \
curl \ ffmpeg4-libs \
ffmpeg \ gnu-libiconv \
ffmpeg-libs \ libdvbcsa \
gnu-libiconv \ libhdhomerun-libs \
gzip \ libva \
libcrypto1.1 \ libva-intel-driver \
libcurl \ intel-media-driver \
libdvbcsa \ mesa \
libhdhomerun-libs \ libvpx \
libssl1.1 \ libxml2 \
libva \ libxslt \
libva-intel-driver \ linux-headers \
intel-media-driver \ opus \
mesa-dri-ati \ pcre2 \
libvpx \ perl \
libxml2 \ perl-archive-zip \
libxslt \ perl-boolean \
linux-headers \ perl-capture-tiny \
openssl \ perl-cgi \
opus \ perl-compress-raw-zlib \
pcre2 \ perl-date-manip \
perl \ perl-datetime \
perl-archive-zip \ perl-datetime-format-strptime \
perl-boolean \ perl-datetime-timezone \
perl-capture-tiny \ perl-dbd-sqlite \
perl-cgi \ perl-dbi \
perl-compress-raw-zlib \ perl-digest-sha1 \
perl-date-manip \ perl-doc \
perl-datetime \ perl-file-slurp \
perl-datetime-format-strptime \ perl-file-temp \
perl-datetime-timezone \ perl-file-which \
perl-dbd-sqlite \ perl-getopt-long \
perl-dbi \ perl-html-parser \
perl-digest-sha1 \ perl-html-tree \
perl-doc \ perl-http-cookies \
perl-file-slurp \ perl-io \
perl-file-temp \ perl-io-html \
perl-file-which \ perl-io-socket-ssl \
perl-getopt-long \ perl-io-stringy \
perl-html-parser \ perl-json \
perl-html-tree \ perl-json-xs \
perl-http-cookies \ perl-libwww \
perl-io \ perl-lingua-en-numbers-ordinate \
perl-io-html \ perl-lingua-preferred \
perl-io-socket-ssl \ perl-list-moreutils \
perl-io-stringy \ perl-lwp-useragent-determined \
perl-json \ perl-module-build \
perl-json-xs \ perl-module-pluggable \
perl-libwww \ perl-net-ssleay \
perl-lingua-en-numbers-ordinate \ perl-parse-recdescent \
perl-lingua-preferred \ perl-path-class \
perl-list-moreutils \ perl-scalar-list-utils \
perl-lwp-useragent-determined \ perl-term-progressbar \
perl-module-build \ perl-term-readkey \
perl-module-pluggable \ perl-test-exception \
perl-net-ssleay \ perl-test-requires \
perl-parse-recdescent \ perl-timedate \
perl-path-class \ perl-try-tiny \
perl-scalar-list-utils \ perl-unicode-string \
perl-term-progressbar \ perl-xml-libxml \
perl-term-readkey \ perl-xml-libxslt \
perl-test-exception \ perl-xml-parser \
perl-test-requires \ perl-xml-sax \
perl-timedate \ perl-xml-treepp \
perl-try-tiny \ perl-xml-twig \
perl-unicode-string \ perl-xml-writer \
perl-xml-libxml \ py3-requests \
perl-xml-libxslt \ python3 \
perl-xml-parser \ uriparser \
perl-xml-sax \ x264 \
perl-xml-treepp \ x265 \
perl-xml-twig \ zlib
perl-xml-writer \
py3-requests \
python3 \
tar \
uriparser \
wget \
x264 \
x265 \
zlib
# 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/

View File

@@ -1,4 +1,6 @@
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.15 as buildstage # syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.17 as buildstage
############## build stage ############## ############## build stage ##############
# package versions # package versions
@@ -6,7 +8,7 @@ ARG ARGTABLE_VER="2.13"
ARG XMLTV_VER="v1.0.0" ARG XMLTV_VER="v1.0.0"
# environment settings # environment settings
ARG TZ="Europe/Oslo" ARG TZ="Etc/UTC"
ARG TVHEADEND_COMMIT ARG TVHEADEND_COMMIT
ENV HOME="/config" ENV HOME="/config"
@@ -14,207 +16,200 @@ ENV HOME="/config"
COPY patches/ /tmp/patches/ COPY patches/ /tmp/patches/
RUN \ RUN \
echo "**** install build packages ****" && \ echo "**** install build packages ****" && \
apk add --no-cache \ apk add --no-cache \
autoconf \ autoconf \
automake \ automake \
bsd-compat-headers \ bsd-compat-headers \
bzip2 \ build-base \
cmake \ cmake \
curl \ ffmpeg4-dev \
ffmpeg-dev \ file \
file \ findutils \
findutils \ gettext-dev \
g++ \ git \
gcc \ gnu-libiconv-dev \
gettext-dev \ libdvbcsa-dev \
git \ libgcrypt-dev \
gnu-libiconv-dev \ libhdhomerun-dev \
gzip \ libtool \
jq \ libva-dev \
libcurl \ libvpx-dev \
libdvbcsa-dev \ libxml2-dev \
libgcrypt-dev \ libxslt-dev \
libhdhomerun-dev \ linux-headers \
libtool \ openssl-dev \
libvpx-dev \ opus-dev \
libxml2-dev \ patch \
libxslt-dev \ pcre2-dev \
linux-headers \ perl-archive-zip \
make \ perl-boolean \
openssl-dev \ perl-capture-tiny \
opus-dev \ perl-cgi \
patch \ perl-compress-raw-zlib \
pcre2-dev \ perl-date-manip \
perl-archive-zip \ perl-datetime \
perl-boolean \ perl-datetime-format-strptime \
perl-capture-tiny \ perl-datetime-timezone \
perl-cgi \ perl-dbd-sqlite \
perl-compress-raw-zlib \ perl-dbi \
perl-date-manip \ perl-dev \
perl-datetime \ perl-digest-sha1 \
perl-datetime-format-strptime \ perl-doc \
perl-datetime-timezone \ perl-file-slurp \
perl-dbd-sqlite \ perl-file-temp \
perl-dbi \ perl-file-which \
perl-dev \ perl-getopt-long \
perl-digest-sha1 \ perl-html-parser \
perl-doc \ perl-html-tree \
perl-file-slurp \ perl-http-cookies \
perl-file-temp \ perl-io \
perl-file-which \ perl-io-html \
perl-getopt-long \ perl-io-socket-ssl \
perl-html-parser \ perl-io-stringy \
perl-html-tree \ perl-json \
perl-http-cookies \ perl-json-xs \
perl-io \ perl-libwww \
perl-io-html \ perl-lingua-en-numbers-ordinate \
perl-io-socket-ssl \ perl-lingua-preferred \
perl-io-stringy \ perl-list-moreutils \
perl-json \ perl-lwp-useragent-determined \
perl-json-xs \ perl-module-build \
perl-libwww \ perl-module-pluggable \
perl-lingua-en-numbers-ordinate \ perl-net-ssleay \
perl-lingua-preferred \ perl-parse-recdescent \
perl-list-moreutils \ perl-path-class \
perl-lwp-useragent-determined \ perl-scalar-list-utils \
perl-module-build \ perl-term-progressbar \
perl-module-pluggable \ perl-term-readkey \
perl-net-ssleay \ perl-test-exception \
perl-parse-recdescent \ perl-test-requires \
perl-path-class \ perl-timedate \
perl-scalar-list-utils \ perl-try-tiny \
perl-term-progressbar \ perl-unicode-string \
perl-term-readkey \ perl-xml-libxml \
perl-test-exception \ perl-xml-libxslt \
perl-test-requires \ perl-xml-parser \
perl-timedate \ perl-xml-sax \
perl-try-tiny \ perl-xml-treepp \
perl-unicode-string \ perl-xml-twig \
perl-xml-libxml \ perl-xml-writer \
perl-xml-libxslt \ pkgconf \
perl-xml-parser \ pngquant \
perl-xml-sax \ python3 \
perl-xml-treepp \ sdl2-dev \
perl-xml-twig \ uriparser-dev \
perl-xml-writer \ x264-dev \
pkgconf \ x265-dev \
pngquant \ zlib-dev
python3 \
sdl-dev \
tar \
uriparser-dev \
wget \
x264-dev \
x265-dev \
zlib-dev
RUN \ RUN \
echo "**** remove musl iconv.h and replace with gnu-iconv.h ****" && \ echo "**** remove musl iconv.h and replace with gnu-iconv.h ****" && \
rm -rf /usr/include/iconv.h && \ rm -rf /usr/include/iconv.h && \
cp /usr/include/gnu-libiconv/iconv.h /usr/include/iconv.h cp /usr/include/gnu-libiconv/iconv.h /usr/include/iconv.h
RUN \ RUN \
echo "**** install perl modules for xmltv ****" && \ echo "**** install perl modules for xmltv ****" && \
curl -L https://cpanmin.us | perl - App::cpanminus && \ curl -s -L https://cpanmin.us | perl - App::cpanminus && \
cpanm --installdeps /tmp/patches cpanm --installdeps /tmp/patches
RUN \ RUN \
echo "**** compile XMLTV ****" && \ echo "**** compile XMLTV ****" && \
git clone https://github.com/XMLTV/xmltv.git /tmp/xmltv && \ git clone https://github.com/XMLTV/xmltv.git /tmp/xmltv && \
cd /tmp/xmltv && \ cd /tmp/xmltv && \
git checkout ${XMLTV_VER} && \ git checkout ${XMLTV_VER} && \
echo "**** Perl 5.26 fixes for XMTLV ****" && \ echo "**** Perl 5.26 fixes for XMTLV ****" && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_latex && \ sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_latex && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_text && \ sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_text && \
sed "s/\(lib\/set_share_dir.pl';\)/.\/\1/" -i grab/it/tv_grab_it.PL && \ sed "s/\(lib\/set_share_dir.pl';\)/.\/\1/" -i grab/it/tv_grab_it.PL && \
sed "s/\(filter\/Grep.pm';\)/.\/\1/" -i filter/tv_grep.PL && \ sed "s/\(filter\/Grep.pm';\)/.\/\1/" -i filter/tv_grep.PL && \
sed "s/\(lib\/XMLTV.pm.in';\)/.\/\1/" -i lib/XMLTV.pm.PL && \ sed "s/\(lib\/XMLTV.pm.in';\)/.\/\1/" -i lib/XMLTV.pm.PL && \
sed "s/\(lib\/Ask\/Term.pm';\)/.\/\1/" -i Makefile.PL && \ sed "s/\(lib\/Ask\/Term.pm';\)/.\/\1/" -i Makefile.PL && \
PERL5LIB=`pwd` && \ PERL5LIB=`pwd` && \
echo -e "yes" | perl Makefile.PL PREFIX=/usr/ INSTALLDIRS=vendor && \ echo -e "yes" | perl Makefile.PL PREFIX=/usr/ INSTALLDIRS=vendor && \
make -j 2 && \ make -j 2 && \
make test && \ make test && \
make DESTDIR=/tmp/xmltv-build install make DESTDIR=/tmp/xmltv-build install
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/master \
| 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` \ `#Encoding` \
--disable-ffmpeg_static \ --disable-ffmpeg_static \
--disable-libfdkaac_static \ --disable-libfdkaac_static \
--disable-libtheora_static \ --disable-libtheora_static \
--disable-libopus_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 \ --disable-libfdkaac \
--enable-libopus \ --enable-libopus \
--enable-libvorbis \ --enable-libvorbis \
--enable-libvpx \ --enable-libvpx \
--enable-libx264 \ --enable-libx264 \
--enable-libx265 \ --enable-libx265 \
\ \
`#Options` \ `#Options` \
--disable-avahi \ --disable-avahi \
--disable-dbus_1 \ --disable-dbus_1 \
--disable-bintray_cache \ --disable-bintray_cache \
--disable-execinfo \ --disable-execinfo \
--disable-hdhomerun_static \ --disable-hdhomerun_static \
--enable-hdhomerun_client \ --enable-hdhomerun_client \
--enable-libav \ --enable-libav \
--enable-pngquant \ --enable-pngquant \
--enable-trace \ --enable-trace \
--infodir=/usr/share/info \ --enable-vaapi \
--localstatedir=/var \ --infodir=/usr/share/info \
--mandir=/usr/share/man \ --localstatedir=/var \
--prefix=/usr \ --mandir=/usr/share/man \
--python=python3 \ --prefix=/usr \
--sysconfdir=/config && \ --python=python3 \
make -j 2 && \ --sysconfdir=/config && \
make DESTDIR=/tmp/tvheadend-build install make -j 2 && \
make DESTDIR=/tmp/tvheadend-build install
RUN \ RUN \
echo "**** compile argtable2 ****" && \ echo "**** compile argtable2 ****" && \
ARGTABLE_VER1="${ARGTABLE_VER//./-}" && \ ARGTABLE_VER1="${ARGTABLE_VER//./-}" && \
mkdir -p \ mkdir -p \
/tmp/argtable && \ /tmp/argtable && \
curl -o \ curl -s -o \
/tmp/argtable-src.tar.gz -L \ /tmp/argtable-src.tar.gz -L \
"https://sourceforge.net/projects/argtable/files/argtable/argtable-${ARGTABLE_VER}/argtable${ARGTABLE_VER1}.tar.gz" && \ "https://sourceforge.net/projects/argtable/files/argtable/argtable-${ARGTABLE_VER}/argtable${ARGTABLE_VER1}.tar.gz" && \
tar xf \ tar xf \
/tmp/argtable-src.tar.gz -C \ /tmp/argtable-src.tar.gz -C \
/tmp/argtable --strip-components=1 && \ /tmp/argtable --strip-components=1 && \
cp /tmp/patches/config.* /tmp/argtable && \ cp /tmp/patches/config.* /tmp/argtable && \
cd /tmp/argtable && \ cd /tmp/argtable && \
./configure \ ./configure \
--prefix=/usr && \ --prefix=/usr && \
make -j 2 && \ make -j 2 && \
make check && \ make check && \
make DESTDIR=/tmp/argtable-build install && \ make DESTDIR=/tmp/argtable-build install && \
echo "**** copy to /usr for comskip dependency ****" && \ echo "**** copy to /usr for comskip dependency ****" && \
cp -pr /tmp/argtable-build/usr/* /usr/ cp -pr /tmp/argtable-build/usr/* /usr/
RUN \ RUN \
echo "***** compile comskip ****" && \ echo "***** compile comskip ****" && \
git clone https://github.com/erikkaashoek/Comskip /tmp/comskip && \ git clone https://github.com/erikkaashoek/Comskip /tmp/comskip && \
cd /tmp/comskip && \ cd /tmp/comskip && \
./autogen.sh && \ ./autogen.sh && \
./configure \ ./configure \
--bindir=/usr/bin \ --bindir=/usr/bin \
--sysconfdir=/config/comskip && \ --sysconfdir=/config/comskip && \
make -j 2 && \ make -j 2 && \
make DESTDIR=/tmp/comskip-build install make DESTDIR=/tmp/comskip-build install
############## picons stage ############## ############## picons stage ##############
# built by https://github.com/linuxserver/picons-builder # built by https://github.com/linuxserver/picons-builder
@@ -222,7 +217,7 @@ FROM ghcr.io/linuxserver/picons-builder as piconsstage
############## runtime stage ############## ############## runtime stage ##############
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.15 FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.17
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -234,87 +229,80 @@ LABEL maintainer="saarg"
ENV HOME="/config" ENV HOME="/config"
RUN \ RUN \
echo "**** install runtime packages ****" && \ echo "**** install runtime packages ****" && \
apk add --no-cache \ apk add --no-cache \
bsd-compat-headers \ bsd-compat-headers \
bzip2 \ ffmpeg \
curl \ ffmpeg4-libs \
ffmpeg \ gnu-libiconv \
ffmpeg-libs \ libdvbcsa \
gnu-libiconv \ libhdhomerun-libs \
gzip \ libva \
libcrypto1.1 \ mesa \
libcurl \ libvpx \
libdvbcsa \ libxml2 \
libhdhomerun-libs \ libxslt \
libssl1.1 \ linux-headers \
libvpx \ opus \
libxml2 \ pcre2 \
libxslt \ perl \
linux-headers \ perl-archive-zip \
openssl \ perl-boolean \
opus \ perl-capture-tiny \
pcre2 \ perl-cgi \
perl \ perl-compress-raw-zlib \
perl-archive-zip \ perl-date-manip \
perl-boolean \ perl-datetime \
perl-capture-tiny \ perl-datetime-format-strptime \
perl-cgi \ perl-datetime-timezone \
perl-compress-raw-zlib \ perl-dbd-sqlite \
perl-date-manip \ perl-dbi \
perl-datetime \ perl-digest-sha1 \
perl-datetime-format-strptime \ perl-doc \
perl-datetime-timezone \ perl-file-slurp \
perl-dbd-sqlite \ perl-file-temp \
perl-dbi \ perl-file-which \
perl-digest-sha1 \ perl-getopt-long \
perl-doc \ perl-html-parser \
perl-file-slurp \ perl-html-tree \
perl-file-temp \ perl-http-cookies \
perl-file-which \ perl-io \
perl-getopt-long \ perl-io-html \
perl-html-parser \ perl-io-socket-ssl \
perl-html-tree \ perl-io-stringy \
perl-http-cookies \ perl-json \
perl-io \ perl-json-xs \
perl-io-html \ perl-libwww \
perl-io-socket-ssl \ perl-lingua-en-numbers-ordinate \
perl-io-stringy \ perl-lingua-preferred \
perl-json \ perl-list-moreutils \
perl-json-xs \ perl-lwp-useragent-determined \
perl-libwww \ perl-module-build \
perl-lingua-en-numbers-ordinate \ perl-module-pluggable \
perl-lingua-preferred \ perl-net-ssleay \
perl-list-moreutils \ perl-parse-recdescent \
perl-lwp-useragent-determined \ perl-path-class \
perl-module-build \ perl-scalar-list-utils \
perl-module-pluggable \ perl-term-progressbar \
perl-net-ssleay \ perl-term-readkey \
perl-parse-recdescent \ perl-test-exception \
perl-path-class \ perl-test-requires \
perl-scalar-list-utils \ perl-timedate \
perl-term-progressbar \ perl-try-tiny \
perl-term-readkey \ perl-unicode-string \
perl-test-exception \ perl-xml-libxml \
perl-test-requires \ perl-xml-libxslt \
perl-timedate \ perl-xml-parser \
perl-try-tiny \ perl-xml-sax \
perl-unicode-string \ perl-xml-treepp \
perl-xml-libxml \ perl-xml-twig \
perl-xml-libxslt \ perl-xml-writer \
perl-xml-parser \ py3-requests \
perl-xml-sax \ python3 \
perl-xml-treepp \ uriparser \
perl-xml-twig \ x264 \
perl-xml-writer \ x265 \
py3-requests \ zlib
python3 \
tar \
uriparser \
wget \
x264 \
x265 \
zlib
# 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/

View File

@@ -1,332 +0,0 @@
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.15 as buildstage
############## build stage ##############
# package versions
ARG ARGTABLE_VER="2.13"
ARG XMLTV_VER="v1.0.0"
# environment settings
ARG TZ="Europe/Oslo"
ARG TVHEADEND_COMMIT
ENV HOME="/config"
# copy patches
COPY patches/ /tmp/patches/
RUN \
echo "**** install build packages ****" && \
apk add --no-cache \
autoconf \
automake \
bsd-compat-headers \
bzip2 \
cmake \
curl \
ffmpeg-dev \
file \
findutils \
g++ \
gcc \
gettext-dev \
git \
gnu-libiconv-dev \
gzip \
jq \
libcurl \
libdvbcsa-dev \
libgcrypt-dev \
libhdhomerun-dev \
libtool \
libvpx-dev \
libxml2-dev \
libxslt-dev \
linux-headers \
make \
openssl-dev \
opus-dev \
patch \
pcre2-dev \
perl-archive-zip \
perl-boolean \
perl-capture-tiny \
perl-cgi \
perl-compress-raw-zlib \
perl-date-manip \
perl-datetime \
perl-datetime-format-strptime \
perl-datetime-timezone \
perl-dbd-sqlite \
perl-dbi \
perl-dev \
perl-digest-sha1 \
perl-doc \
perl-file-slurp \
perl-file-temp \
perl-file-which \
perl-getopt-long \
perl-html-parser \
perl-html-tree \
perl-http-cookies \
perl-io \
perl-io-html \
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 \
perl-parse-recdescent \
perl-path-class \
perl-scalar-list-utils \
perl-term-progressbar \
perl-term-readkey \
perl-test-exception \
perl-test-requires \
perl-timedate \
perl-try-tiny \
perl-unicode-string \
perl-xml-libxml \
perl-xml-libxslt \
perl-xml-parser \
perl-xml-sax \
perl-xml-treepp \
perl-xml-twig \
perl-xml-writer \
pkgconf \
pngquant \
python3 \
sdl-dev \
tar \
uriparser-dev \
wget \
x264-dev \
x265-dev \
zlib-dev
RUN \
echo "**** remove musl iconv.h and replace with gnu-iconv.h ****" && \
rm -rf /usr/include/iconv.h && \
cp /usr/include/gnu-libiconv/iconv.h /usr/include/iconv.h
RUN \
echo "**** install perl modules for xmltv ****" && \
curl -L https://cpanmin.us | perl - App::cpanminus && \
cpanm --installdeps /tmp/patches
RUN \
echo "**** compile XMLTV ****" && \
git clone https://github.com/XMLTV/xmltv.git /tmp/xmltv && \
cd /tmp/xmltv && \
git checkout ${XMLTV_VER} && \
echo "**** Perl 5.26 fixes for XMTLV ****" && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_latex && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_text && \
sed "s/\(lib\/set_share_dir.pl';\)/.\/\1/" -i grab/it/tv_grab_it.PL && \
sed "s/\(filter\/Grep.pm';\)/.\/\1/" -i filter/tv_grep.PL && \
sed "s/\(lib\/XMLTV.pm.in';\)/.\/\1/" -i lib/XMLTV.pm.PL && \
sed "s/\(lib\/Ask\/Term.pm';\)/.\/\1/" -i Makefile.PL && \
PERL5LIB=`pwd` && \
echo -e "yes" | perl Makefile.PL PREFIX=/usr/ INSTALLDIRS=vendor && \
make -j 2 && \
make test && \
make DESTDIR=/tmp/xmltv-build install
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'); \
fi && \
mkdir -p \
/tmp/tvheadend && \
git clone https://github.com/tvheadend/tvheadend.git /tmp/tvheadend && \
cd /tmp/tvheadend && \
git checkout ${TVHEADEND_COMMIT} && \
./configure \
`#Encoding` \
--disable-ffmpeg_static \
--disable-libfdkaac_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-execinfo \
--disable-hdhomerun_static \
--enable-hdhomerun_client \
--enable-libav \
--enable-pngquant \
--enable-trace \
--infodir=/usr/share/info \
--localstatedir=/var \
--mandir=/usr/share/man \
--nowerror \
--prefix=/usr \
--python=python3 \
--sysconfdir=/config && \
make -j 2 && \
make DESTDIR=/tmp/tvheadend-build install
RUN \
echo "**** compile argtable2 ****" && \
ARGTABLE_VER1="${ARGTABLE_VER//./-}" && \
mkdir -p \
/tmp/argtable && \
curl -o \
/tmp/argtable-src.tar.gz -L \
"https://sourceforge.net/projects/argtable/files/argtable/argtable-${ARGTABLE_VER}/argtable${ARGTABLE_VER1}.tar.gz" && \
tar xf \
/tmp/argtable-src.tar.gz -C \
/tmp/argtable --strip-components=1 && \
cp /tmp/patches/config.* /tmp/argtable && \
cd /tmp/argtable && \
./configure \
--prefix=/usr && \
make -j 2 && \
make check && \
make DESTDIR=/tmp/argtable-build install && \
echo "**** copy to /usr for comskip dependency ****" && \
cp -pr /tmp/argtable-build/usr/* /usr/
RUN \
echo "***** compile comskip ****" && \
git clone https://github.com/erikkaashoek/Comskip /tmp/comskip && \
cd /tmp/comskip && \
./autogen.sh && \
./configure \
--bindir=/usr/bin \
--sysconfdir=/config/comskip && \
make -j 2 && \
make DESTDIR=/tmp/comskip-build install
############## picons stage ##############
# built by https://github.com/linuxserver/picons-builder
FROM ghcr.io/linuxserver/picons-builder as piconsstage
############## runtime stage ##############
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.15
# set version label
ARG BUILD_DATE
ARG VERSION
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="saarg"
# environment settings
ENV HOME="/config"
RUN \
echo "**** install runtime packages ****" && \
apk add --no-cache \
bsd-compat-headers \
bzip2 \
curl \
ffmpeg \
ffmpeg-libs \
gnu-libiconv \
gzip \
libcrypto1.1 \
libcurl \
libdvbcsa \
libhdhomerun-libs \
libssl1.1 \
libvpx \
libxml2 \
libxslt \
linux-headers \
openssl \
opus \
pcre2 \
perl \
perl-archive-zip \
perl-boolean \
perl-capture-tiny \
perl-cgi \
perl-compress-raw-zlib \
perl-date-manip \
perl-datetime \
perl-datetime-format-strptime \
perl-datetime-timezone \
perl-dbd-sqlite \
perl-dbi \
perl-digest-sha1 \
perl-doc \
perl-file-slurp \
perl-file-temp \
perl-file-which \
perl-getopt-long \
perl-html-parser \
perl-html-tree \
perl-http-cookies \
perl-io \
perl-io-html \
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 \
perl-parse-recdescent \
perl-path-class \
perl-scalar-list-utils \
perl-term-progressbar \
perl-term-readkey \
perl-test-exception \
perl-test-requires \
perl-timedate \
perl-try-tiny \
perl-unicode-string \
perl-xml-libxml \
perl-xml-libxslt \
perl-xml-parser \
perl-xml-sax \
perl-xml-treepp \
perl-xml-twig \
perl-xml-writer \
py3-requests \
python3 \
tar \
uriparser \
wget \
x264 \
x265 \
zlib
# 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/tvheadend-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/perl5/ /usr/local/share/perl5/
COPY --from=piconsstage /picons.tar.bz2 /picons.tar.bz2
COPY root/ /
# ports and volumes
EXPOSE 9981 9982
VOLUME /config

126
Jenkinsfile vendored
View File

@@ -59,7 +59,7 @@ 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 .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/stale.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml' env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/stale.yml ./.github/workflows/call_invalid_helper.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml'
} }
script{ script{
env.LS_RELEASE_NUMBER = sh( env.LS_RELEASE_NUMBER = sh(
@@ -167,7 +167,7 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/' + 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 + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else { } else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} }
@@ -190,7 +190,7 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/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 + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} else { } else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} }
@@ -213,7 +213,7 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/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 + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
} else { } else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
} }
@@ -452,7 +452,8 @@ pipeline {
} }
steps { steps {
echo "Running on node: ${NODE_NAME}" echo "Running on node: ${NODE_NAME}"
sh "docker build \ sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile"
sh "docker buildx build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \ --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \ --label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-tvheadend/packages\" \ --label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-tvheadend/packages\" \
@@ -465,7 +466,7 @@ pipeline {
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Tvheadend\" \ --label \"org.opencontainers.image.title=Tvheadend\" \
--label \"org.opencontainers.image.description=[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 offers the HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP streaming. Multiple EPG sources are supported (over-the-air DVB and ATSC including OpenTV DVB extensions, XMLTV, PyXML). \" \ --label \"org.opencontainers.image.description=[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 offers the HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP streaming. Multiple EPG sources are supported (over-the-air DVB and ATSC including OpenTV DVB extensions, XMLTV, PyXML). \" \
--no-cache --pull -t ${IMAGE}:${META_TAG} \ --no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
} }
} }
@@ -482,7 +483,8 @@ pipeline {
stage('Build X86') { stage('Build X86') {
steps { steps {
echo "Running on node: ${NODE_NAME}" echo "Running on node: ${NODE_NAME}"
sh "docker build \ sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile"
sh "docker buildx build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \ --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \ --label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-tvheadend/packages\" \ --label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-tvheadend/packages\" \
@@ -495,44 +497,10 @@ pipeline {
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Tvheadend\" \ --label \"org.opencontainers.image.title=Tvheadend\" \
--label \"org.opencontainers.image.description=[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 offers the HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP streaming. Multiple EPG sources are supported (over-the-air DVB and ATSC including OpenTV DVB extensions, XMLTV, PyXML). \" \ --label \"org.opencontainers.image.description=[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 offers the HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP streaming. Multiple EPG sources are supported (over-the-air DVB and ATSC including OpenTV DVB extensions, XMLTV, PyXML). \" \
--no-cache --pull -t ${IMAGE}:amd64-${META_TAG} \ --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
} }
} }
stage('Build ARMHF') {
agent {
label 'ARMHF'
}
steps {
echo "Running on node: ${NODE_NAME}"
echo 'Logging into Github'
sh '''#! /bin/bash
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
'''
sh "docker build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-tvheadend/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-tvheadend\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-tvheadend\" \
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Tvheadend\" \
--label \"org.opencontainers.image.description=[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 offers the HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP streaming. Multiple EPG sources are supported (over-the-air DVB and ATSC including OpenTV DVB extensions, XMLTV, PyXML). \" \
--no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
retry(5) {
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
}
sh '''docker rmi \
${IMAGE}:arm32v7-${META_TAG} \
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
}
}
stage('Build ARM64') { stage('Build ARM64') {
agent { agent {
label 'ARM64' label 'ARM64'
@@ -543,7 +511,8 @@ pipeline {
sh '''#! /bin/bash sh '''#! /bin/bash
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
''' '''
sh "docker build \ sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.aarch64"
sh "docker buildx build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \ --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \ --label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-tvheadend/packages\" \ --label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-tvheadend/packages\" \
@@ -556,7 +525,7 @@ pipeline {
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Tvheadend\" \ --label \"org.opencontainers.image.title=Tvheadend\" \
--label \"org.opencontainers.image.description=[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 offers the HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP streaming. Multiple EPG sources are supported (over-the-air DVB and ATSC including OpenTV DVB extensions, XMLTV, PyXML). \" \ --label \"org.opencontainers.image.description=[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 offers the HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP streaming. Multiple EPG sources are supported (over-the-air DVB and ATSC including OpenTV DVB extensions, XMLTV, PyXML). \" \
--no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \ --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
retry(5) { retry(5) {
@@ -585,26 +554,12 @@ pipeline {
else else
LOCAL_CONTAINER=${IMAGE}:${META_TAG} LOCAL_CONTAINER=${IMAGE}:${META_TAG}
fi fi
if [ "${DIST_IMAGE}" == "alpine" ]; then touch ${TEMPDIR}/package_versions.txt
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\ docker run --rm \
apk info -v > /tmp/package_versions.txt && \ -v /var/run/docker.sock:/var/run/docker.sock:ro \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \ -v ${TEMPDIR}:/tmp \
chmod 777 /tmp/package_versions.txt' ghcr.io/anchore/syft:latest \
elif [ "${DIST_IMAGE}" == "ubuntu" ]; then ${LOCAL_CONTAINER} -o table=/tmp/package_versions.txt
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
elif [ "${DIST_IMAGE}" == "fedora" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
rpm -qa > /tmp/package_versions.txt && \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
elif [ "${DIST_IMAGE}" == "arch" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
pacman -Q > /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
fi
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 ) NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
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
@@ -696,9 +651,7 @@ pipeline {
set -e set -e
docker pull ghcr.io/linuxserver/ci:latest docker pull ghcr.io/linuxserver/ci:latest
if [ "${MULTIARCH}" == "true" ]; then if [ "${MULTIARCH}" == "true" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi fi
docker run --rm \ docker run --rm \
@@ -814,56 +767,42 @@ pipeline {
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [ "${CI}" == "false" ]; then if [ "${CI}" == "false" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi fi
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} 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}: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-${EXT_RELEASE_TAG} docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then if [ -n "${SEMVER}" ]; then
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER} docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER} docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi fi
docker push ${MANIFESTIMAGE}:amd64-${META_TAG} 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 push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:amd64-latest
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-latest
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then if [ -n "${SEMVER}" ]; then
docker push ${MANIFESTIMAGE}:amd64-${SEMVER} docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER} docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi fi
docker manifest push --purge ${MANIFESTIMAGE}:latest || : docker manifest push --purge ${MANIFESTIMAGE}:latest || :
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8 docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || : 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 create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${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 annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || : docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8 docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
if [ -n "${SEMVER}" ]; then if [ -n "${SEMVER}" ]; then
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || : docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8 docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
fi fi
docker manifest push --purge ${MANIFESTIMAGE}:latest docker manifest push --purge ${MANIFESTIMAGE}:latest
@@ -881,21 +820,16 @@ pipeline {
${DELETEIMAGE}:amd64-${META_TAG} \ ${DELETEIMAGE}:amd64-${META_TAG} \
${DELETEIMAGE}:amd64-latest \ ${DELETEIMAGE}:amd64-latest \
${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \ ${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
${DELETEIMAGE}:arm32v7-${META_TAG} \
${DELETEIMAGE}:arm32v7-latest \
${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
${DELETEIMAGE}:arm64v8-${META_TAG} \ ${DELETEIMAGE}:arm64v8-${META_TAG} \
${DELETEIMAGE}:arm64v8-latest \ ${DELETEIMAGE}:arm64v8-latest \
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || : ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
if [ -n "${SEMVER}" ]; then if [ -n "${SEMVER}" ]; then
docker rmi \ docker rmi \
${DELETEIMAGE}:amd64-${SEMVER} \ ${DELETEIMAGE}:amd64-${SEMVER} \
${DELETEIMAGE}:arm32v7-${SEMVER} \
${DELETEIMAGE}:arm64v8-${SEMVER} || : ${DELETEIMAGE}:arm64v8-${SEMVER} || :
fi fi
done done
docker rmi \ docker rmi \
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || : ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :
''' '''
} }
@@ -987,12 +921,12 @@ pipeline {
sh 'echo "build aborted"' sh 'echo "build aborted"'
} }
else if (currentBuild.currentResult == "SUCCESS"){ else if (currentBuild.currentResult == "SUCCESS"){
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\ sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 1681177,\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\ "description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} ''' "username": "Jenkins"}' ${BUILDS_DISCORD} '''
} }
else { else {
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\ sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 16711680,\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\ "description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} ''' "username": "Jenkins"}' ${BUILDS_DISCORD} '''
} }

View File

@@ -58,7 +58,7 @@ The architectures supported by this image are:
| :----: | :----: | ---- | | :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> | | x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> | | arm64 | ✅ | arm64v8-\<version tag\> |
| armhf| ✅ | arm32v7-\<version tag\> | | armhf | ❌ | |
## Application Setup ## Application Setup
@@ -136,7 +136,7 @@ services:
environment: environment:
- PUID=1000 - PUID=1000
- PGID=1000 - PGID=1000
- TZ=Europe/London - TZ=Etc/UTC
- RUN_OPTS= #optional - RUN_OPTS= #optional
volumes: volumes:
- /path/to/data:/config - /path/to/data:/config
@@ -157,7 +157,7 @@ docker run -d \
--name=tvheadend \ --name=tvheadend \
-e PUID=1000 \ -e PUID=1000 \
-e PGID=1000 \ -e PGID=1000 \
-e TZ=Europe/London \ -e TZ=Etc/UTC \
-e RUN_OPTS= `#optional` \ -e RUN_OPTS= `#optional` \
-p 9981:9981 \ -p 9981:9981 \
-p 9982:9982 \ -p 9982:9982 \
@@ -167,6 +167,7 @@ docker run -d \
--device /dev/dvb:/dev/dvb `#optional` \ --device /dev/dvb:/dev/dvb `#optional` \
--restart unless-stopped \ --restart unless-stopped \
lscr.io/linuxserver/tvheadend:latest lscr.io/linuxserver/tvheadend:latest
``` ```
#### Host vs. Bridge #### Host vs. Bridge
@@ -184,7 +185,7 @@ Container images are configured using parameters passed at runtime (such as thos
| `-p 9982` | HTSP server port. | | `-p 9982` | HTSP server port. |
| `-e PUID=1000` | for UserID - see below for explanation | | `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation | | `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London. | | `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). |
| `-e RUN_OPTS=` | Optionally specify additional arguments to be passed. See Additional runtime parameters. | | `-e RUN_OPTS=` | Optionally specify additional arguments to be passed. See Additional runtime parameters. |
| `-v /config` | Where TVHeadend show store it's config files. | | `-v /config` | Where TVHeadend show store it's config files. |
| `-v /recordings` | Where you want the PVR to store recordings. | | `-v /recordings` | Where you want the PVR to store recordings. |
@@ -300,6 +301,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions ## Versions
* **23.02.23:** - Rebase to Alpine 3.17, migrate to s6v3, drop armhf support.
* **31.08.22:** - Update sample env vars and how RUN_OPTS are handled. * **31.08.22:** - Update sample env vars and how RUN_OPTS are handled.
* **19.08.22:** - Switch to new picons builder. * **19.08.22:** - Switch to new picons builder.
* **16.04.22:** - Added URL XMLTV grabber. * **16.04.22:** - Added URL XMLTV grabber.

View File

@@ -6,6 +6,7 @@ external_type: github_commit
release_type: stable release_type: stable
release_tag: latest release_tag: latest
ls_branch: master ls_branch: master
build_armhf: false
repo_vars: repo_vars:
- EXT_GIT_BRANCH = 'master' - EXT_GIT_BRANCH = 'master'
- EXT_USER = 'tvheadend' - EXT_USER = 'tvheadend'

View File

@@ -1,261 +1,273 @@
alpine-baselayout-3.2.0-r18 NAME VERSION TYPE
alpine-keys-2.4-r1 alpine-baselayout 3.4.0-r0 apk
alsa-lib-1.2.5.1-r1 alpine-baselayout-data 3.4.0-r0 apk
aom-libs-3.2.0-r0 alpine-keys 2.4-r1 apk
apk-tools-2.12.7-r3 alpine-release 3.17.2-r0 apk
bash-5.1.16-r0 alsa-lib 1.2.8-r0 apk
brotli-libs-1.0.9-r5 aom-libs 3.5.0-r0 apk
bsd-compat-headers-0.7.2-r3 apk-tools 2.12.10-r1 apk
busybox-1.34.1-r7 bash 5.2.15-r0 apk
bzip2-1.0.8-r1 brotli-libs 1.0.9-r9 apk
ca-certificates-20220614-r0 bsd-compat-headers 0.7.2-r3 apk
ca-certificates-bundle-20220614-r0 busybox 1.35.0 binary
coreutils-9.0-r2 busybox 1.35.0-r29 apk
curl-7.80.0-r4 busybox-binsh 1.35.0-r29 apk
expat-2.5.0-r0 ca-certificates 20220614-r4 apk
ffmpeg-4.4.1-r2 ca-certificates-bundle 20220614-r4 apk
ffmpeg-libs-4.4.1-r2 certifi 2022.12.7 python
fontconfig-2.13.1-r4 charset-normalizer 3.0.1 python
freetype-2.11.1-r2 cjson 1.7.15-r3 apk
fribidi-1.0.11-r0 coreutils 9.1-r0 apk
fts-1.2.7-r1 curl 7.88.1-r0 apk
gdbm-1.22-r0 dbus-libs 1.14.4-r0 apk
glib-2.70.1-r0 ffmpeg 5.1.2-r1 apk
gmp-6.2.1-r1 ffmpeg-libs 5.1.2-r1 apk
gnu-libiconv-1.16-r0 ffmpeg4-libs 4.4.3-r0 apk
gnutls-3.7.1-r1 flac-libs 1.4.2-r0 apk
graphite2-1.3.14-r0 fontconfig 2.14.1-r0 apk
gzip-1.12-r0 freetype 2.12.1-r0 apk
harfbuzz-3.0.0-r2 fribidi 1.0.12-r0 apk
intel-gmmlib-21.3.3-r0 gdbm 1.23-r0 apk
intel-media-driver-21.4.1-r0 glib 2.74.6-r0 apk
lame-3.100-r0 gmp 6.2.1-r2 apk
less-590-r0 gnu-libiconv 1.17-r0 apk
libacl-2.2.53-r0 gnu-libiconv-libs 1.17-r0 apk
libass-0.15.2-r0 gnutls 3.7.8-r3 apk
libattr-2.5.1-r1 graphite2 1.3.14-r2 apk
libblkid-2.37.4-r0 harfbuzz 5.3.1-r1 apk
libbsd-0.11.3-r1 hwdata-pci 0.364-r0 apk
libbz2-1.0.8-r1 idna 3.4 python
libc-utils-0.7.2-r3 intel-gmmlib 22.3.1-r0 apk
libcrypto1.1-1.1.1s-r1 intel-media-driver 22.6.3-r0 apk
libcurl-7.80.0-r4 jq 1.6-r2 apk
libdav1d-0.9.2-r0 lame 3.100-r2 apk
libdrm-2.4.109-r0 libacl 2.3.1-r1 apk
libdvbcsa-1.1.0-r1 libass 0.16.0-r1 apk
libelf-0.185-r0 libasyncns 0.8-r1 apk
libffi-3.4.2-r1 libattr 2.5.1-r2 apk
libgcc-10.3.1_git20211027-r0 libblkid 2.38.1-r1 apk
libgcrypt-1.9.4-r0 libbsd 0.11.7-r0 apk
libgomp-10.3.1_git20211027-r0 libbz2 1.0.8-r4 apk
libgpg-error-1.42-r1 libc-utils 0.7.2-r3 apk
libhdhomerun-libs-20200225-r0 libcrypto3 3.0.8-r0 apk
libidn2-2.3.2-r0 libcurl 7.88.1-r0 apk
libintl-0.21-r0 libdav1d 1.0.0-r2 apk
libjpeg-turbo-2.1.2-r0 libdrm 2.4.114-r0 apk
libmd-1.0.3-r0 libdvbcsa 1.1.0-r1 apk
libmount-2.37.4-r0 libexpat 2.5.0-r0 apk
libogg-1.3.5-r0 libffi 3.4.4-r0 apk
libpciaccess-0.16-r0 libgcc 12.2.1_git20220924-r4 apk
libpng-1.6.37-r1 libgcrypt 1.10.1-r0 apk
libproc-3.3.17-r0 libgomp 12.2.1_git20220924-r4 apk
libretls-3.3.4-r3 libgpg-error 1.46-r1 apk
libsrt-1.4.2-r1 libhdhomerun-libs 20200225-r1 apk
libssh-0.9.6-r1 libintl 0.21.1-r1 apk
libssl1.1-1.1.1s-r1 libjpeg-turbo 2.1.4-r0 apk
libstdc++-10.3.1_git20211027-r0 libltdl 2.4.7-r1 apk
libtasn1-4.18.0-r0 libmd 1.0.4-r0 apk
libtheora-1.1.1-r16 libmount 2.38.1-r1 apk
libunistring-0.9.10-r1 libogg 1.3.5-r2 apk
liburiparser-0.9.6-r0 libpciaccess 0.17-r0 apk
libuuid-2.37.4-r0 libpng 1.6.38-r0 apk
libva-2.13.0-r0 libproc 3.3.17-r2 apk
libva-intel-driver-2.4.1-r0 libpulse 16.1-r6 apk
libvdpau-1.4-r0 librist 0.2.7-r0 apk
libvorbis-1.3.7-r0 libsndfile 1.1.0-r2 apk
libvpx-1.10.0-r0 libsodium 1.0.18-r2 apk
libwebp-1.2.2-r0 libsrt 1.5.1-r0 apk
libx11-1.7.3.1-r0 libssh 0.10.4-r0 apk
libxau-1.0.9-r0 libssl3 3.0.8-r0 apk
libxcb-1.14-r2 libstdc++ 12.2.1_git20220924-r4 apk
libxdmcp-1.1.3-r0 libtasn1 4.19.0-r0 apk
libxext-1.3.4-r0 libtheora 1.1.1-r16 apk
libxfixes-6.0.0-r0 libunistring 1.1-r0 apk
libxml2-2.9.14-r2 liburiparser 0.9.7-r0 apk
libxshmfence-1.3-r1 libva 2.16.0-r0 apk
libxslt-1.1.35-r0 libva-intel-driver 2.4.1-r0 apk
linux-headers-5.10.41-r0 libvdpau 1.5-r0 apk
linux-pam-1.5.2-r0 libvorbis 1.3.7-r0 apk
llvm12-libs-12.0.1-r0 libvpx 1.12.0-r1 apk
mesa-21.2.6-r0 libwebp 1.2.4-r1 apk
mesa-dri-ati-21.2.6-r0 libx11 1.8.4-r0 apk
mesa-dri-classic-21.2.6-r0 libxau 1.0.10-r0 apk
mesa-dri-gallium-21.2.6-r0 libxcb 1.15-r0 apk
mesa-glapi-21.2.6-r0 libxdmcp 1.1.4-r0 apk
mesa-va-gallium-21.2.6-r0 libxext 1.3.5-r0 apk
mesa-vdpau-gallium-21.2.6-r0 libxfixes 6.0.0-r0 apk
mpdecimal-2.5.1-r1 libxml2 2.10.3-r1 apk
musl-1.2.2-r7 libxslt 1.1.37-r0 apk
musl-utils-1.2.2-r7 libzmq 4.3.4-r1 apk
ncurses-libs-6.3_p20211120-r1 linux-headers 5.19.5-r0 apk
ncurses-terminfo-base-6.3_p20211120-r1 linux-pam 1.5.2-r1 apk
nettle-3.7.3-r0 mbedtls 2.28.2-r0 apk
nghttp2-libs-1.46.0-r0 mesa 22.2.5-r1 apk
openssl-1.1.1s-r1 mpdecimal 2.5.1-r1 apk
opus-1.3.1-r1 musl 1.2.3-r4 apk
p11-kit-0.24.0-r1 musl-utils 1.2.3-r4 apk
pcre-8.45-r1 ncurses-libs 6.3_p20221119-r0 apk
pcre2-10.40-r0 ncurses-terminfo-base 6.3_p20221119-r0 apk
perl-5.34.0-r1 netcat-openbsd 1.130-r4 apk
perl-archive-zip-1.68-r1 nettle 3.8.1-r0 apk
perl-b-hooks-endofscope-0.25-r0 nghttp2-libs 1.51.0-r0 apk
perl-boolean-0.46-r2 numactl 2.0.16-r1 apk
perl-capture-tiny-0.48-r2 oniguruma 6.9.8-r0 apk
perl-cgi-4.53-r0 opus 1.3.1-r1 apk
perl-class-data-inheritable-0.09-r0 orc 0.4.33-r0 apk
perl-class-inspector-1.36-r2 p11-kit 0.24.1-r1 apk
perl-class-methodmaker-2.24-r8 pcre2 10.42-r0 apk
perl-class-singleton-1.6-r0 perl 5.36.0-r0 apk
perl-common-sense-3.75-r2 perl-archive-zip 1.68-r2 apk
perl-compress-raw-zlib-2.101-r1 perl-b-hooks-endofscope 0.26-r0 apk
perl-cpan-meta-check-0.014-r2 perl-boolean 0.46-r2 apk
perl-date-manip-6.86-r0 perl-capture-tiny 0.48-r2 apk
perl-datetime-1.54-r1 perl-cgi 4.54-r0 apk
perl-datetime-format-strptime-1.79-r0 perl-class-data-inheritable 0.09-r0 apk
perl-datetime-locale-1.33-r0 perl-class-inspector 1.36-r2 apk
perl-datetime-timezone-2.56-r0 perl-class-methodmaker 2.24-r9 apk
perl-dbd-sqlite-1.70-r1 perl-class-singleton 1.6-r0 apk
perl-dbi-1.643-r3 perl-clone 0.46-r0 apk
perl-devel-stacktrace-2.04-r3 perl-common-sense 3.75-r2 apk
perl-devel-symdump-2.18-r2 perl-compress-raw-zlib 2.202-r0 apk
perl-digest-sha1-2.13-r14 perl-cpan-meta-check 0.014-r2 apk
perl-dist-checkconflicts-0.11-r2 perl-date-manip 6.89-r0 apk
perl-doc-5.34.0-r1 perl-datetime 1.59-r0 apk
perl-encode-locale-1.05-r3 perl-datetime-format-strptime 1.79-r0 apk
perl-eval-closure-0.14-r2 perl-datetime-locale 1.37-r0 apk
perl-exception-class-1.45-r0 perl-datetime-timezone 2.56-r0 apk
perl-exporter-tiny-1.002002-r1 perl-dbd-sqlite 1.72-r0 apk
perl-file-listing-6.14-r0 perl-dbi 1.643-r4 apk
perl-file-sharedir-1.118-r0 perl-devel-stacktrace 2.04-r3 apk
perl-file-sharedir-install-0.13-r2 perl-devel-symdump 2.18-r2 apk
perl-file-slurp-9999.32-r1 perl-digest-sha1 2.13-r15 apk
perl-file-temp-0.2311-r0 perl-dist-checkconflicts 0.11-r2 apk
perl-file-which-1.27-r0 perl-doc 5.36.0-r0 apk
perl-getopt-long-2.52-r1 perl-encode-locale 1.05-r3 apk
perl-html-parser-3.76-r1 perl-eval-closure 0.14-r2 apk
perl-html-tagset-3.20-r3 perl-exception-class 1.45-r0 apk
perl-html-tree-5.07-r2 perl-exporter-tiny 1.006000-r0 apk
perl-http-cookies-6.10-r0 perl-file-listing 6.15-r0 apk
perl-http-daemon-6.12-r1 perl-file-sharedir 1.118-r0 apk
perl-http-date-6.05-r1 perl-file-sharedir-install 0.14-r0 apk
perl-http-message-6.35-r0 perl-file-slurp 9999.32-r1 apk
perl-http-negotiate-6.01-r3 perl-file-temp 0.2311-r0 apk
perl-importer-0.026-r1 perl-file-which 1.27-r0 apk
perl-io-1.48-r0 perl-getopt-long 2.54-r0 apk
perl-io-html-1.004-r0 perl-html-parser 3.80-r0 apk
perl-io-socket-ssl-2.072-r0 perl-html-tagset 3.20-r3 apk
perl-io-stringy-2.113-r1 perl-html-tree 5.07-r3 apk
perl-ipc-run3-0.048-r2 perl-http-cookies 6.10-r0 apk
perl-json-4.03-r1 perl-http-daemon 6.14-r0 apk
perl-json-xs-4.03-r1 perl-http-date 6.05-r1 apk
perl-libwww-6.58-r0 perl-http-message 6.44-r0 apk
perl-lingua-en-numbers-ordinate-1.05-r0 perl-http-negotiate 6.01-r3 apk
perl-lingua-preferred-0.2.4-r4 perl-importer 0.026-r1 apk
perl-list-moreutils-0.430-r0 perl-io 1.50-r0 apk
perl-list-moreutils-xs-0.430-r1 perl-io-html 1.004-r0 apk
perl-lwp-mediatypes-6.04-r1 perl-io-socket-ssl 2.077-r0 apk
perl-lwp-useragent-determined-1.07-r2 perl-io-stringy 2.113-r1 apk
perl-module-build-0.4231-r1 perl-ipc-run3 0.048-r2 apk
perl-module-implementation-0.09-r3 perl-json 4.10-r0 apk
perl-module-metadata-1.000037-r1 perl-json-xs 4.03-r2 apk
perl-module-pluggable-5.2-r2 perl-libwww 6.67-r0 apk
perl-module-runtime-0.016-r4 perl-lingua-en-numbers-ordinate 1.05-r0 apk
perl-mozilla-ca-20211001-r0 perl-lingua-preferred 0.2.4-r4 apk
perl-mro-compat-0.13-r2 perl-list-moreutils 0.430-r0 apk
perl-namespace-autoclean-0.29-r2 perl-list-moreutils-xs 0.430-r2 apk
perl-namespace-clean-0.27-r2 perl-lwp-mediatypes 6.04-r1 apk
perl-net-http-6.21-r0 perl-lwp-useragent-determined 1.07-r2 apk
perl-net-ssleay-1.90-r3 perl-module-build 0.4231-r2 apk
perl-package-deprecationmanager-0.17-r2 perl-module-implementation 0.09-r3 apk
perl-package-stash-0.39-r0 perl-module-metadata 1.000037-r1 apk
perl-params-util-1.102-r1 perl-module-pluggable 5.2-r2 apk
perl-params-validate-1.30-r1 perl-module-runtime 0.016-r4 apk
perl-params-validationcompiler-0.30-r1 perl-mozilla-ca 20221114-r0 apk
perl-parse-recdescent-1.967015-r3 perl-mro-compat 0.15-r0 apk
perl-path-class-0.37-r2 perl-namespace-autoclean 0.29-r2 apk
perl-pod-coverage-0.23-r2 perl-namespace-clean 0.27-r2 apk
perl-pod-parser-1.63-r1 perl-net-http 6.22-r0 apk
perl-role-tiny-2.002004-r1 perl-net-ssleay 1.92-r2 apk
perl-scalar-list-utils-1.60-r0 perl-package-deprecationmanager 0.17-r2 apk
perl-scope-guard-0.21-r2 perl-package-stash 0.40-r0 apk
perl-specio-0.47-r0 perl-params-util 1.102-r2 apk
perl-sub-exporter-progressive-0.001013-r2 perl-params-validate 1.31-r0 apk
perl-sub-identify-0.14-r6 perl-params-validationcompiler 0.30-r1 apk
perl-sub-info-0.002-r2 perl-parse-recdescent 1.967015-r3 apk
perl-sub-install-0.928-r2 perl-path-class 0.37-r2 apk
perl-sub-name-0.26-r3 perl-pod-coverage 0.23-r3 apk
perl-sub-quote-2.006006-r1 perl-pod-parser 1.65-r0 apk
perl-sub-uplevel-0.2800-r2 perl-role-tiny 2.002004-r1 apk
perl-term-progressbar-2.22-r2 perl-scalar-list-utils 1.63-r0 apk
perl-term-readkey-2.38-r6 perl-scope-guard 0.21-r2 apk
perl-term-table-0.015-r1 perl-specio 0.48-r0 apk
perl-test-exception-0.43-r2 perl-sub-exporter-progressive 0.001013-r2 apk
perl-test-fatal-0.016-r3 perl-sub-identify 0.14-r7 apk
perl-test-pod-1.52-r2 perl-sub-info 0.002-r2 apk
perl-test-requires-0.11-r1 perl-sub-install 0.928-r2 apk
perl-test-simple-1.302188-r1 perl-sub-name 0.26-r4 apk
perl-test-taint-1.08-r4 perl-sub-quote 2.006006-r1 apk
perl-test-warnings-0.031-r0 perl-sub-uplevel 0.2800-r2 apk
perl-test-without-module-0.20-r2 perl-term-progressbar 2.23-r0 apk
perl-test2-plugin-nowarnings-0.09-r1 perl-term-readkey 2.38-r7 apk
perl-test2-suite-0.000142-r0 perl-term-table 0.016-r0 apk
perl-timedate-2.33-r1 perl-test-exception 0.43-r2 apk
perl-try-tiny-0.30-r3 perl-test-fatal 0.016-r3 apk
perl-types-serialiser-1.01-r0 perl-test-pod 1.52-r2 apk
perl-unicode-string-2.10-r3 perl-test-requires 0.11-r1 apk
perl-uri-5.10-r0 perl-test-simple 1.302191-r0 apk
perl-variable-magic-0.62-r5 perl-test-taint 1.08-r5 apk
perl-www-robotrules-6.02-r3 perl-test-warnings 0.031-r0 apk
perl-xml-libxml-2.0207-r1 perl-test-without-module 0.20-r2 apk
perl-xml-libxslt-1.99-r2 perl-test2-plugin-nowarnings 0.09-r1 apk
perl-xml-namespacesupport-1.12-r3 perl-test2-suite 0.000145-r0 apk
perl-xml-parser-2.46-r2 perl-timedate 2.33-r1 apk
perl-xml-sax-1.02-r1 perl-try-tiny 0.31-r0 apk
perl-xml-sax-base-1.09-r3 perl-types-serialiser 1.01-r0 apk
perl-xml-treepp-0.43-r3 perl-unicode-string 2.10-r4 apk
perl-xml-twig-3.52-r3 perl-uri 5.17-r0 apk
perl-xml-writer-0.900-r0 perl-variable-magic 0.63-r0 apk
procps-3.3.17-r0 perl-www-robotrules 6.02-r3 apk
py3-certifi-2020.12.5-r1 perl-xml-libxml 2.0208-r0 apk
py3-charset-normalizer-2.0.7-r0 perl-xml-libxslt 2.002000-r0 apk
py3-idna-3.3-r0 perl-xml-namespacesupport 1.12-r3 apk
py3-requests-2.26.0-r1 perl-xml-parser 2.46-r3 apk
py3-urllib3-1.26.7-r0 perl-xml-sax 1.02-r1 apk
python3-3.9.16-r0 perl-xml-sax-base 1.09-r3 apk
readline-8.1.1-r0 perl-xml-treepp 0.43-r3 apk
s6-ipcserver-2.11.0.0-r0 perl-xml-twig 3.52-r4 apk
scanelf-1.3.3-r0 perl-xml-writer 0.900-r0 apk
sdl2-2.0.16-r4 procps 3.3.17-r2 apk
shadow-4.8.1-r1 py3-certifi 2022.12.7-r0 apk
skalibs-2.11.0.0-r0 py3-charset-normalizer 3.0.1-r0 apk
soxr-0.1.3-r2 py3-idna 3.4-r2 apk
sqlite-libs-3.36.0-r0 py3-requests 2.28.1-r1 apk
ssl_client-1.34.1-r7 py3-urllib3 1.26.12-r0 apk
tar-1.34-r0 python 3.10.10 binary
tzdata-2022f-r1 python3 3.10.10-r0 apk
uriparser-0.9.6-r0 readline 8.2.0-r0 apk
utmps-0.1.0.3-r0 requests 2.28.1 python
v4l-utils-libs-1.22.1-r1 scanelf 1.3.5-r1 apk
vidstab-1.1.0-r1 sdl2 2.26.3-r0 apk
vulkan-loader-1.2.196-r0 shadow 4.13-r0 apk
wayland-libs-client-1.19.0-r1 skalibs 2.12.0.1-r0 apk
wget-1.21.2-r2 soxr 0.1.3-r3 apk
x264-20210613-r0 speexdsp 1.2.1-r0 apk
x264-libs-20210613-r0 sqlite-libs 3.40.1-r0 apk
x265-3.5-r0 ssl_client 1.35.0-r29 apk
x265-libs-3.5-r0 svt-av1-libs 1.3.0-r0 apk
xvidcore-1.3.7-r1 tdb-libs 1.4.7-r0 apk
xz-5.2.5-r1 tzdata 2022f-r1 apk
xz-libs-5.2.5-r1 uriparser 0.9.7-r0 apk
zlib-1.2.12-r3 urllib3 1.26.12 python
zstd-libs-1.5.0-r0 utmps-libs 0.1.2.0-r1 apk
v4l-utils-libs 1.22.1-r2 apk
vidstab 1.1.0-r2 apk
vulkan-loader 1.3.231.2-r0 apk
wayland-libs-client 1.21.0-r1 apk
x264 0.164_git20220602-r0 apk
x264-libs 0.164_git20220602-r0 apk
x265 3.5-r3 apk
x265-libs 3.5-r3 apk
xvidcore 1.3.7-r1 apk
xz 5.2.9-r0 apk
xz-libs 5.2.9-r0 apk
zlib 1.2.13-r0 apk

View File

@@ -15,7 +15,6 @@ project_blurb_optional_extras_enabled: false
available_architectures: available_architectures:
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"} - { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"} - { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
# development version # development version
# development version # development version
@@ -124,6 +123,7 @@ app_setup_block: |
# changelog # changelog
changelogs: changelogs:
- { date: "23.02.23:", desc: "Rebase to Alpine 3.17, migrate to s6v3, drop armhf support." }
- { date: "31.08.22:", desc: "Update sample env vars and how RUN_OPTS are handled." } - { date: "31.08.22:", desc: "Update sample env vars and how RUN_OPTS are handled." }
- { date: "19.08.22:", desc: "Switch to new picons builder." } - { date: "19.08.22:", desc: "Switch to new picons builder." }
- { date: "16.04.22:", desc: "Added URL XMLTV grabber." } - { date: "16.04.22:", desc: "Added URL XMLTV grabber." }

View File

@@ -1,24 +1,29 @@
#!/usr/bin/with-contenv bash #!/usr/bin/with-contenv bash
# shellcheck shell=bash
# make folders # make folders
mkdir -p \ mkdir -p \
/config/comskip /config/comskip
# copy config # copy config
[[ ! -e /config/dvr/config ]] && \ if [[ ! -e /config/dvr/config ]]; then
(mkdir -p /config/dvr/config && cp /defaults/7a5edfbe189851e5b1d1df19c93962f0 /config/dvr/config/7a5edfbe189851e5b1d1df19c93962f0) (mkdir -p /config/dvr/config && cp /defaults/7a5edfbe189851e5b1d1df19c93962f0 /config/dvr/config/7a5edfbe189851e5b1d1df19c93962f0)
[[ ! -e /config/comskip/comskip.ini ]] && \ fi
if [[ ! -e /config/comskip/comskip.ini ]]; then
cp /defaults/comskip.ini.org /config/comskip/comskip.ini cp /defaults/comskip.ini.org /config/comskip/comskip.ini
[[ ! -e /config/config ]] && \ fi
(cp /defaults/config /config/config) if [[ ! -e /config/config ]]; then
(cp /defaults/config /config/config)
fi
# extract picons on first run # extract picons on first run
[[ -f /picons.tar.bz2 ]] && \ if [[ -f /picons.tar.bz2 ]]; then
mkdir -p /picons mkdir -p /picons
tar xf \ tar xf \
/picons.tar.bz2 -C \ /picons.tar.bz2 -C \
/picons && /picons &&
rm -f /picons.tar.bz2 rm -f /picons.tar.bz2
fi
# function to randomly sample 5 files for their owner and only chown if not abc # function to randomly sample 5 files for their owner and only chown if not abc
chowner () { chowner () {

View File

@@ -0,0 +1 @@
oneshot

View File

@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-tvheadend-config/run

View File

@@ -1,4 +1,5 @@
#!/usr/bin/with-contenv bash #!/usr/bin/with-contenv bash
# shellcheck shell=bash
FILES=$(find /dev/dri /dev/dvb -type c -print 2>/dev/null) FILES=$(find /dev/dri /dev/dvb -type c -print 2>/dev/null)

View File

@@ -0,0 +1 @@
oneshot

View File

@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-video-config/run

View File

@@ -0,0 +1 @@
3

View File

@@ -1,4 +1,6 @@
#!/usr/bin/with-contenv bash #!/usr/bin/with-contenv bash
# shellcheck shell=bash
exec \ exec \
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 9981" \
s6-setuidgid abc /usr/bin/tvheadend -C -c /config $RUN_OPTS s6-setuidgid abc /usr/bin/tvheadend -C -c /config $RUN_OPTS

View File

@@ -0,0 +1 @@
longrun