Compare commits

...

18 Commits

Author SHA1 Message Date
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 777 additions and 1152 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

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

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