Compare commits

...

44 Commits

Author SHA1 Message Date
LinuxServer-CI
69dc360432 Bot Updating Package Versions 2022-08-20 11:43:19 -05:00
aptalca
a9b8cf69af Merge pull request #203 from linuxserver/picons
switch to new picons builder
2022-08-20 12:20:56 -04:00
aptalca
1328a5f23c create picons folder 2022-08-20 11:17:28 -04:00
aptalca
609d004130 switch to new picons builder 2022-08-19 16:05:19 -04:00
LinuxServer-CI
3bad190b6d Bot Updating Package Versions 2022-08-14 17:08:50 +02:00
LinuxServer-CI
7568b2268e Bot Updating Package Versions 2022-07-31 17:10:52 +02:00
LinuxServer-CI
cbe8326f34 Bot Updating Package Versions 2022-07-24 17:08:50 +02:00
LinuxServer-CI
9bb84298c0 Bot Updating Package Versions 2022-07-17 17:09:07 +02:00
LinuxServer-CI
9d819fa033 Bot Updating Package Versions 2022-07-10 10:08:01 -05:00
LinuxServer-CI
ae4e65e8b4 Bot Updating Package Versions 2022-07-03 17:11:00 +02:00
LinuxServer-CI
40101423d3 Bot Updating Package Versions 2022-06-19 17:09:14 +02:00
LinuxServer-CI
267d71999e Bot Updating Package Versions 2022-05-22 10:06:53 -05:00
LinuxServer-CI
8d64a8b941 Bot Updating Package Versions 2022-05-15 10:08:40 -05:00
LinuxServer-CI
301726296e Bot Updating Package Versions 2022-05-08 17:11:21 +02:00
LinuxServer-CI
14a02b2793 Bot Updating Templated Files 2022-05-08 16:58:40 +02:00
LinuxServer-CI
8b75535035 Bot Updating Package Versions 2022-05-01 17:13:16 +02:00
LinuxServer-CI
7cdc7d2545 Bot Updating Templated Files 2022-05-01 17:00:00 +02:00
LinuxServer-CI
c3ba5352be Bot Updating Templated Files 2022-05-01 16:58:45 +02:00
LinuxServer-CI
c63fecd5ca Bot Updating Templated Files 2022-04-17 16:30:59 +00:00
Chris230291
dd9d991734 Create tv_grab_url (#195)
* Create tv_grab_url

URL grabber

* Update README.md

* Update README.md

* Update readme-vars.yml
2022-04-17 18:29:49 +02:00
LinuxServer-CI
667bbc700c Bot Updating Package Versions 2022-04-17 10:53:19 -05:00
LinuxServer-CI
8c8b1dc579 Bot Updating Package Versions 2022-04-06 15:48:45 -05:00
Adam
2e2306657b Merge pull request #194 from linuxserver/git 2022-04-06 21:35:07 +01:00
aptalca
ff2d71cfaa fix git endpoint 2022-04-06 15:58:40 -04:00
LinuxServer-CI
a11b08f48a Bot Updating Package Versions 2022-02-12 20:33:00 +01:00
LinuxServer-CI
5c95e3cd54 Bot Updating Package Versions 2022-02-06 16:07:38 +01:00
LinuxServer-CI
e518677c08 Bot Updating Package Versions 2022-01-23 16:11:11 +01:00
LinuxServer-CI
3e2ff2ec64 Bot Updating Package Versions 2022-01-09 16:08:09 +01:00
LinuxServer-CI
7bd9706a03 Bot Updating Package Versions 2022-01-07 04:27:55 +01:00
aptalca
730ae79c03 Merge pull request #187 from linuxserver/execinfo
Rebase to 3.15, disable execinfo, upgrade xmltv
2022-01-06 22:04:41 -05:00
aptalca
f3d20cc23e rebase to 3.15 2022-01-06 20:45:16 -05:00
aptalca
eb738d902c update xmltv 2022-01-06 13:33:50 -05:00
aptalca
63be7472e3 disable execinfo 2022-01-06 13:24:17 -05:00
LinuxServer-CI
935363eea3 Bot Updating Package Versions 2021-12-19 16:22:22 +01:00
LinuxServer-CI
fd1cf5ccb5 Bot Updating Templated Files 2021-12-19 15:59:48 +01:00
LinuxServer-CI
b05c0153a6 Bot Updating Templated Files 2021-12-19 15:58:37 +01:00
LinuxServer-CI
f35919e8d1 Bot Updating Package Versions 2021-11-21 16:07:33 +01:00
LinuxServer-CI
2621cbec21 Bot Updating Package Versions 2021-10-31 16:07:09 +01:00
LinuxServer-CI
9671978057 Bot Updating Package Versions 2021-10-24 17:07:05 +02:00
LinuxServer-CI
c255ddd316 Bot Updating Package Versions 2021-10-10 17:07:21 +02:00
LinuxServer-CI
8b48664ab1 Bot Updating Package Versions 2021-10-03 17:13:51 +02:00
LinuxServer-CI
bcc271c172 Bot Updating Templated Files 2021-10-03 16:59:46 +02:00
LinuxServer-CI
0f59a23e89 Bot Updating Templated Files 2021-10-03 16:58:37 +02:00
LinuxServer-CI
f93ea75fe8 Bot Updating Package Versions 2021-09-26 17:08:28 +02:00
10 changed files with 500 additions and 317 deletions

View File

@@ -1,9 +1,9 @@
FROM ghcr.io/linuxserver/baseimage-alpine:3.12 as buildstage FROM ghcr.io/linuxserver/baseimage-alpine:3.15 as buildstage
############## build stage ############## ############## build stage ##############
# package versions # package versions
ARG ARGTABLE_VER="2.13" ARG ARGTABLE_VER="2.13"
ARG XMLTV_VER="v0.6.3" ARG XMLTV_VER="v1.0.0"
# environment settings # environment settings
ARG TZ="Europe/Oslo" ARG TZ="Europe/Oslo"
@@ -52,7 +52,6 @@ RUN \
perl-capture-tiny \ perl-capture-tiny \
perl-cgi \ perl-cgi \
perl-compress-raw-zlib \ perl-compress-raw-zlib \
perl-data-dumper \
perl-date-manip \ perl-date-manip \
perl-datetime \ perl-datetime \
perl-datetime-format-strptime \ perl-datetime-format-strptime \
@@ -70,7 +69,6 @@ RUN \
perl-html-tree \ perl-html-tree \
perl-http-cookies \ perl-http-cookies \
perl-io \ perl-io \
perl-io-compress \
perl-io-html \ perl-io-html \
perl-io-socket-ssl \ perl-io-socket-ssl \
perl-io-stringy \ perl-io-stringy \
@@ -103,7 +101,7 @@ RUN \
perl-xml-writer \ perl-xml-writer \
pkgconf \ pkgconf \
pngquant \ pngquant \
python2 \ python3 \
sdl-dev \ sdl-dev \
tar \ tar \
uriparser-dev \ uriparser-dev \
@@ -172,6 +170,7 @@ RUN \
--disable-avahi \ --disable-avahi \
--disable-dbus_1 \ --disable-dbus_1 \
--disable-bintray_cache \ --disable-bintray_cache \
--disable-execinfo \
--disable-hdhomerun_static \ --disable-hdhomerun_static \
--enable-hdhomerun_client \ --enable-hdhomerun_client \
--enable-libav \ --enable-libav \
@@ -182,6 +181,7 @@ RUN \
--localstatedir=/var \ --localstatedir=/var \
--mandir=/usr/share/man \ --mandir=/usr/share/man \
--prefix=/usr \ --prefix=/usr \
--python=python3 \
--sysconfdir=/config && \ --sysconfdir=/config && \
make -j 2 && \ make -j 2 && \
make DESTDIR=/tmp/tvheadend-build install make DESTDIR=/tmp/tvheadend-build install
@@ -209,7 +209,7 @@ RUN \
RUN \ RUN \
echo "***** compile comskip ****" && \ echo "***** compile comskip ****" && \
git clone git://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 \
@@ -218,8 +218,13 @@ RUN \
make -j 2 && \ make -j 2 && \
make DESTDIR=/tmp/comskip-build install 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 ############## ############## runtime stage ##############
FROM ghcr.io/linuxserver/baseimage-alpine:3.12 FROM ghcr.io/linuxserver/baseimage-alpine:3.15
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -262,7 +267,6 @@ RUN \
perl-capture-tiny \ perl-capture-tiny \
perl-cgi \ perl-cgi \
perl-compress-raw-zlib \ perl-compress-raw-zlib \
perl-data-dumper \
perl-date-manip \ perl-date-manip \
perl-datetime \ perl-datetime \
perl-datetime-format-strptime \ perl-datetime-format-strptime \
@@ -279,7 +283,6 @@ RUN \
perl-html-tree \ perl-html-tree \
perl-http-cookies \ perl-http-cookies \
perl-io \ perl-io \
perl-io-compress \
perl-io-html \ perl-io-html \
perl-io-socket-ssl \ perl-io-socket-ssl \
perl-io-stringy \ perl-io-stringy \
@@ -311,18 +314,13 @@ RUN \
perl-xml-twig \ perl-xml-twig \
perl-xml-writer \ perl-xml-writer \
py3-requests \ py3-requests \
python2 \ python3 \
tar \ tar \
uriparser \ uriparser \
wget \ wget \
x264 \ x264 \
x265 \ x265 \
zlib && \ zlib
echo "**** Add Picons ****" && \
mkdir -p /picons && \
curl -s -o \
/picons.tar.bz2 -L \
https://lsio-ci.ams3.digitaloceanspaces.com/picons/picons.tar.bz2
# 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/
@@ -331,6 +329,7 @@ COPY --from=buildstage /tmp/tvheadend-build/usr/ /usr/
COPY --from=buildstage /tmp/xmltv-build/usr/ /usr/ COPY --from=buildstage /tmp/xmltv-build/usr/ /usr/
COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/ COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/
COPY --from=buildstage /usr/local/share/perl5/ /usr/local/share/perl5/ COPY --from=buildstage /usr/local/share/perl5/ /usr/local/share/perl5/
COPY --from=piconsstage /picons.tar.bz2 /picons.tar.bz2
COPY root/ / COPY root/ /
# ports and volumes # ports and volumes

View File

@@ -1,9 +1,9 @@
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.12 as buildstage FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.15 as buildstage
############## build stage ############## ############## build stage ##############
# package versions # package versions
ARG ARGTABLE_VER="2.13" ARG ARGTABLE_VER="2.13"
ARG XMLTV_VER="v0.6.3" ARG XMLTV_VER="v1.0.0"
# environment settings # environment settings
ARG TZ="Europe/Oslo" ARG TZ="Europe/Oslo"
@@ -51,7 +51,6 @@ RUN \
perl-capture-tiny \ perl-capture-tiny \
perl-cgi \ perl-cgi \
perl-compress-raw-zlib \ perl-compress-raw-zlib \
perl-data-dumper \
perl-date-manip \ perl-date-manip \
perl-datetime \ perl-datetime \
perl-datetime-format-strptime \ perl-datetime-format-strptime \
@@ -69,7 +68,6 @@ RUN \
perl-html-tree \ perl-html-tree \
perl-http-cookies \ perl-http-cookies \
perl-io \ perl-io \
perl-io-compress \
perl-io-html \ perl-io-html \
perl-io-socket-ssl \ perl-io-socket-ssl \
perl-io-stringy \ perl-io-stringy \
@@ -102,7 +100,7 @@ RUN \
perl-xml-writer \ perl-xml-writer \
pkgconf \ pkgconf \
pngquant \ pngquant \
python2 \ python3 \
sdl-dev \ sdl-dev \
tar \ tar \
uriparser-dev \ uriparser-dev \
@@ -171,6 +169,7 @@ RUN \
--disable-avahi \ --disable-avahi \
--disable-dbus_1 \ --disable-dbus_1 \
--disable-bintray_cache \ --disable-bintray_cache \
--disable-execinfo \
--disable-hdhomerun_static \ --disable-hdhomerun_static \
--enable-hdhomerun_client \ --enable-hdhomerun_client \
--enable-libav \ --enable-libav \
@@ -180,6 +179,7 @@ RUN \
--localstatedir=/var \ --localstatedir=/var \
--mandir=/usr/share/man \ --mandir=/usr/share/man \
--prefix=/usr \ --prefix=/usr \
--python=python3 \
--sysconfdir=/config && \ --sysconfdir=/config && \
make -j 2 && \ make -j 2 && \
make DESTDIR=/tmp/tvheadend-build install make DESTDIR=/tmp/tvheadend-build install
@@ -207,7 +207,7 @@ RUN \
RUN \ RUN \
echo "***** compile comskip ****" && \ echo "***** compile comskip ****" && \
git clone git://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 \
@@ -216,8 +216,13 @@ RUN \
make -j 2 && \ make -j 2 && \
make DESTDIR=/tmp/comskip-build install 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 ############## ############## runtime stage ##############
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.12 FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.15
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -256,7 +261,6 @@ RUN \
perl-capture-tiny \ perl-capture-tiny \
perl-cgi \ perl-cgi \
perl-compress-raw-zlib \ perl-compress-raw-zlib \
perl-data-dumper \
perl-date-manip \ perl-date-manip \
perl-datetime \ perl-datetime \
perl-datetime-format-strptime \ perl-datetime-format-strptime \
@@ -273,7 +277,6 @@ RUN \
perl-html-tree \ perl-html-tree \
perl-http-cookies \ perl-http-cookies \
perl-io \ perl-io \
perl-io-compress \
perl-io-html \ perl-io-html \
perl-io-socket-ssl \ perl-io-socket-ssl \
perl-io-stringy \ perl-io-stringy \
@@ -305,18 +308,13 @@ RUN \
perl-xml-twig \ perl-xml-twig \
perl-xml-writer \ perl-xml-writer \
py3-requests \ py3-requests \
python2 \ python3 \
tar \ tar \
uriparser \ uriparser \
wget \ wget \
x264 \ x264 \
x265 \ x265 \
zlib && \ zlib
echo "**** Add Picons ****" && \
mkdir -p /picons && \
curl -o \
/picons.tar.bz2 -L \
https://lsio-ci.ams3.digitaloceanspaces.com/picons/picons.tar.bz2
# 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/
@@ -325,6 +323,7 @@ COPY --from=buildstage /tmp/tvheadend-build/usr/ /usr/
COPY --from=buildstage /tmp/xmltv-build/usr/ /usr/ COPY --from=buildstage /tmp/xmltv-build/usr/ /usr/
COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/ COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/
COPY --from=buildstage /usr/local/share/perl5/ /usr/local/share/perl5/ COPY --from=buildstage /usr/local/share/perl5/ /usr/local/share/perl5/
COPY --from=piconsstage /picons.tar.bz2 /picons.tar.bz2
COPY root/ / COPY root/ /
# ports and volumes # ports and volumes

View File

@@ -1,9 +1,9 @@
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.12 as buildstage FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.15 as buildstage
############## build stage ############## ############## build stage ##############
# package versions # package versions
ARG ARGTABLE_VER="2.13" ARG ARGTABLE_VER="2.13"
ARG XMLTV_VER="v0.6.3" ARG XMLTV_VER="v1.0.0"
# environment settings # environment settings
ARG TZ="Europe/Oslo" ARG TZ="Europe/Oslo"
@@ -51,7 +51,6 @@ RUN \
perl-capture-tiny \ perl-capture-tiny \
perl-cgi \ perl-cgi \
perl-compress-raw-zlib \ perl-compress-raw-zlib \
perl-data-dumper \
perl-date-manip \ perl-date-manip \
perl-datetime \ perl-datetime \
perl-datetime-format-strptime \ perl-datetime-format-strptime \
@@ -69,7 +68,6 @@ RUN \
perl-html-tree \ perl-html-tree \
perl-http-cookies \ perl-http-cookies \
perl-io \ perl-io \
perl-io-compress \
perl-io-html \ perl-io-html \
perl-io-socket-ssl \ perl-io-socket-ssl \
perl-io-stringy \ perl-io-stringy \
@@ -102,7 +100,7 @@ RUN \
perl-xml-writer \ perl-xml-writer \
pkgconf \ pkgconf \
pngquant \ pngquant \
python2 \ python3 \
sdl-dev \ sdl-dev \
tar \ tar \
uriparser-dev \ uriparser-dev \
@@ -171,6 +169,7 @@ RUN \
--disable-avahi \ --disable-avahi \
--disable-dbus_1 \ --disable-dbus_1 \
--disable-bintray_cache \ --disable-bintray_cache \
--disable-execinfo \
--disable-hdhomerun_static \ --disable-hdhomerun_static \
--enable-hdhomerun_client \ --enable-hdhomerun_client \
--enable-libav \ --enable-libav \
@@ -179,7 +178,9 @@ RUN \
--infodir=/usr/share/info \ --infodir=/usr/share/info \
--localstatedir=/var \ --localstatedir=/var \
--mandir=/usr/share/man \ --mandir=/usr/share/man \
--nowerror \
--prefix=/usr \ --prefix=/usr \
--python=python3 \
--sysconfdir=/config && \ --sysconfdir=/config && \
make -j 2 && \ make -j 2 && \
make DESTDIR=/tmp/tvheadend-build install make DESTDIR=/tmp/tvheadend-build install
@@ -207,7 +208,7 @@ RUN \
RUN \ RUN \
echo "***** compile comskip ****" && \ echo "***** compile comskip ****" && \
git clone git://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 \
@@ -216,8 +217,13 @@ RUN \
make -j 2 && \ make -j 2 && \
make DESTDIR=/tmp/comskip-build install 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 ############## ############## runtime stage ##############
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.12 FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.15
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -256,7 +262,6 @@ RUN \
perl-capture-tiny \ perl-capture-tiny \
perl-cgi \ perl-cgi \
perl-compress-raw-zlib \ perl-compress-raw-zlib \
perl-data-dumper \
perl-date-manip \ perl-date-manip \
perl-datetime \ perl-datetime \
perl-datetime-format-strptime \ perl-datetime-format-strptime \
@@ -273,7 +278,6 @@ RUN \
perl-html-tree \ perl-html-tree \
perl-http-cookies \ perl-http-cookies \
perl-io \ perl-io \
perl-io-compress \
perl-io-html \ perl-io-html \
perl-io-socket-ssl \ perl-io-socket-ssl \
perl-io-stringy \ perl-io-stringy \
@@ -305,18 +309,13 @@ RUN \
perl-xml-twig \ perl-xml-twig \
perl-xml-writer \ perl-xml-writer \
py3-requests \ py3-requests \
python2 \ python3 \
tar \ tar \
uriparser \ uriparser \
wget \ wget \
x264 \ x264 \
x265 \ x265 \
zlib && \ zlib
echo "**** Add Picons ****" && \
mkdir -p /picons && \
curl -o \
/picons.tar.bz2 -L \
https://lsio-ci.ams3.digitaloceanspaces.com/picons/picons.tar.bz2
# 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/
@@ -325,6 +324,7 @@ COPY --from=buildstage /tmp/tvheadend-build/usr/ /usr/
COPY --from=buildstage /tmp/xmltv-build/usr/ /usr/ COPY --from=buildstage /tmp/xmltv-build/usr/ /usr/
COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/ COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/
COPY --from=buildstage /usr/local/share/perl5/ /usr/local/share/perl5/ COPY --from=buildstage /usr/local/share/perl5/ /usr/local/share/perl5/
COPY --from=piconsstage /picons.tar.bz2 /picons.tar.bz2
COPY root/ / COPY root/ /
# ports and volumes # ports and volumes

124
Jenkinsfile vendored
View File

@@ -16,6 +16,7 @@ pipeline {
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab') GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0') GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
GITLAB_NAMESPACE=credentials('gitlab-namespace-id') GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
SCARF_TOKEN=credentials('scarf_api_key')
EXT_GIT_BRANCH = 'master' EXT_GIT_BRANCH = 'master'
EXT_USER = 'tvheadend' EXT_USER = 'tvheadend'
EXT_REPO = 'tvheadend' EXT_REPO = 'tvheadend'
@@ -126,6 +127,30 @@ pipeline {
env.EXT_RELEASE_CLEAN = sh( env.EXT_RELEASE_CLEAN = sh(
script: '''echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g' ''', script: '''echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g' ''',
returnStdout: true).trim() returnStdout: true).trim()
def semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)\.(\d+)/
if (semver.find()) {
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${semver[0][3]}"
} else {
semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)(?:\.(\d+))?(.*)/
if (semver.find()) {
if (semver[0][3]) {
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${semver[0][3]}"
} else if (!semver[0][3] && !semver[0][4]) {
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${(new Date()).format('YYYYMMdd')}"
}
}
}
if (env.SEMVER != null) {
if (BRANCH_NAME != "master" && BRANCH_NAME != "main") {
env.SEMVER = "${env.SEMVER}-${BRANCH_NAME}"
}
println("SEMVER: ${env.SEMVER}")
} else {
println("No SEMVER detected")
}
} }
} }
} }
@@ -140,6 +165,7 @@ pipeline {
env.IMAGE = env.DOCKERHUB_IMAGE env.IMAGE = env.DOCKERHUB_IMAGE
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/' + env.CONTAINER_NAME env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/' + env.CONTAINER_NAME
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
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else { } else {
@@ -162,6 +188,7 @@ pipeline {
env.IMAGE = env.DEV_DOCKERHUB_IMAGE env.IMAGE = env.DEV_DOCKERHUB_IMAGE
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lsiodev-' + env.CONTAINER_NAME env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lsiodev-' + env.CONTAINER_NAME
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
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} else { } else {
@@ -184,6 +211,7 @@ pipeline {
env.IMAGE = env.PR_DOCKERHUB_IMAGE env.IMAGE = env.PR_DOCKERHUB_IMAGE
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lspipepr-' + env.CONTAINER_NAME env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lspipepr-' + env.CONTAINER_NAME
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
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
} else { } else {
@@ -325,9 +353,11 @@ pipeline {
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
cd ${TEMPDIR}/unraid/templates/ cd ${TEMPDIR}/unraid/templates/
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
echo "Image is on the ignore list, removing Unraid template" echo "Image is on the ignore list, marking Unraid template as deprecated"
git rm unraid/${CONTAINER_NAME}.xml || : cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git commit -m 'Bot Removing Deprecated Unraid Template' || : git add -u unraid/${CONTAINER_NAME}.xml
git mv unraid/${CONTAINER_NAME}.xml unraid/deprecated/${CONTAINER_NAME}.xml || :
git commit -m 'Bot Moving Deprecated Unraid Template' || :
else else
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/ cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add unraid/${CONTAINER_NAME}.xml git add unraid/${CONTAINER_NAME}.xml
@@ -379,6 +409,36 @@ pipeline {
"visibility":"public"}' ''' "visibility":"public"}' '''
} }
} }
/* #######################
Scarf.sh package registry
####################### */
// Add package to Scarf.sh and set permissions
stage("Scarf.sh package registry"){
when {
branch "master"
environment name: 'EXIT_STATUS', value: ''
}
steps{
sh '''#! /bin/bash
set -e
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/tvheadend") | .uuid')
if [ -z "${PACKAGE_UUID}" ]; then
echo "Adding package to Scarf.sh"
curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
-H "Authorization: Bearer ${SCARF_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"name":"linuxserver/tvheadend",\
"shortDescription":"example description",\
"libraryType":"docker",\
"website":"https://github.com/linuxserver/docker-tvheadend",\
"backendUrl":"https://ghcr.io/linuxserver/tvheadend",\
"publicUrl":"https://lscr.io/linuxserver/tvheadend"}' || :
else
echo "Package already exists on Scarf.sh"
fi
'''
}
}
/* ############### /* ###############
Build Container Build Container
############### */ ############### */
@@ -386,7 +446,7 @@ pipeline {
stage('Build-Single') { stage('Build-Single') {
when { when {
expression { expression {
env.MULTIARCH == 'false' || params.PACKAGE_CHECK == 'true' env.MULTIARCH == 'false' || params.PACKAGE_CHECK == 'true'
} }
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
@@ -680,6 +740,12 @@ pipeline {
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207', credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER', usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS' passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
] ]
]) { ]) {
retry(5) { retry(5) {
@@ -688,22 +754,32 @@ pipeline {
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
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
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG} docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG} docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER}
fi
docker push ${PUSHIMAGE}:latest docker push ${PUSHIMAGE}:latest
docker push ${PUSHIMAGE}:${META_TAG} docker push ${PUSHIMAGE}:${META_TAG}
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG} docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker push ${PUSHIMAGE}:${SEMVER}
fi
done done
''' '''
} }
sh '''#! /bin/bash sh '''#! /bin/bash
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker rmi \ docker rmi \
${DELETEIMAGE}:${META_TAG} \ ${DELETEIMAGE}:${META_TAG} \
${DELETEIMAGE}:${EXT_RELEASE_TAG} \ ${DELETEIMAGE}:${EXT_RELEASE_TAG} \
${DELETEIMAGE}:latest || : ${DELETEIMAGE}:latest || :
if [ -n "${SEMVER}" ]; then
docker rmi ${DELETEIMAGE}:${SEMVER} || :
fi
done done
''' '''
} }
@@ -722,6 +798,12 @@ pipeline {
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207', credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER', usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS' passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
] ]
]) { ]) {
retry(5) { retry(5) {
@@ -730,13 +812,14 @@ pipeline {
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
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
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: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: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}"; 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}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
@@ -746,6 +829,11 @@ pipeline {
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 ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
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
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}
fi
docker push ${MANIFESTIMAGE}:amd64-${META_TAG} docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG} docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
@@ -755,6 +843,11 @@ pipeline {
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
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}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
@@ -767,14 +860,23 @@ pipeline {
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}:arm32v7-${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}: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
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${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
fi
docker manifest push --purge ${MANIFESTIMAGE}:latest docker manifest push --purge ${MANIFESTIMAGE}:latest
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER}
fi
done done
''' '''
} }
sh '''#! /bin/bash sh '''#! /bin/bash
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker rmi \ docker rmi \
${DELETEIMAGE}:amd64-${META_TAG} \ ${DELETEIMAGE}:amd64-${META_TAG} \
${DELETEIMAGE}:amd64-latest \ ${DELETEIMAGE}:amd64-latest \
@@ -785,6 +887,12 @@ pipeline {
${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
docker rmi \
${DELETEIMAGE}:amd64-${SEMVER} \
${DELETEIMAGE}:arm32v7-${SEMVER} \
${DELETEIMAGE}:arm64v8-${SEMVER} || :
fi
done done
docker rmi \ docker rmi \
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \ ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \

View File

@@ -29,10 +29,12 @@ Find us at:
# [linuxserver/tvheadend](https://github.com/linuxserver/docker-tvheadend) # [linuxserver/tvheadend](https://github.com/linuxserver/docker-tvheadend)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Ftvheadend?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Ftvheadend)
[![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-tvheadend.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-tvheadend) [![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-tvheadend.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-tvheadend)
[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-tvheadend.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-tvheadend/releases) [![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-tvheadend.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-tvheadend/releases)
[![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-tvheadend/packages) [![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-tvheadend/packages)
[![GitLab Container Registry](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitLab%20Registry&logo=gitlab)](https://gitlab.com/linuxserver.io/docker-tvheadend/container_registry) [![GitLab Container Registry](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitLab%20Registry&logo=gitlab)](https://gitlab.com/linuxserver.io/docker-tvheadend/container_registry)
[![Quay.io](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Quay.io)](https://quay.io/repository/linuxserver.io/tvheadend)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/tvheadend.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/tvheadend) [![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/tvheadend.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/tvheadend)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/tvheadend.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/tvheadend) [![Docker Stars](https://img.shields.io/docker/stars/linuxserver/tvheadend.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/tvheadend)
[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-tvheadend%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-tvheadend/job/master/) [![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-tvheadend%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-tvheadend/job/master/)
@@ -46,28 +48,26 @@ Multiple EPG sources are supported (over-the-air DVB and ATSC including OpenTV D
## Supported Architectures ## Supported Architectures
Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/). We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
Simply pulling `ghcr.io/linuxserver/tvheadend` should retrieve the correct image for your arch, but you can also pull specific arch images via tags. Simply pulling `lscr.io/linuxserver/tvheadend:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
The architectures supported by this image are: The architectures supported by this image are:
| Architecture | Tag | | Architecture | Available | Tag |
| :----: | --- | | :----: | :----: | ---- |
| x86-64 | amd64-latest | | x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | arm64v8-latest | | arm64 | ✅ | arm64v8-\<version tag\> |
| armhf | arm32v7-latest | | armhf| ✅ | arm32v7-\<version tag\> |
## Version Tags ## Version Tags
This image provides various versions that are available via tags. `latest` tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them. This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags.
| Tag | Description | | Tag | Available | Description |
| :----: | --- | | :----: | :----: |--- |
| latest | Current latest release. | | latest | ✅ | Current latest release. |
| release-4.2 | Latest release from 4.2 branch. | | release-4.2 | ✅ | Latest release from 4.2 branch. |
| stable-4.2.1 | Old stable version. Will not be updated anymore! |
| stable-4.0.9 | Old stable version. Will not be updated anymore! |
## Application Setup ## Application Setup
@@ -140,7 +140,7 @@ Here are some example snippets to help you get started creating a container.
version: "2.1" version: "2.1"
services: services:
tvheadend: tvheadend:
image: ghcr.io/linuxserver/tvheadend image: lscr.io/linuxserver/tvheadend:latest
container_name: tvheadend container_name: tvheadend
environment: environment:
- PUID=1000 - PUID=1000
@@ -175,7 +175,7 @@ docker run -d \
--device /dev/dri:/dev/dri `#optional` \ --device /dev/dri:/dev/dri `#optional` \
--device /dev/dvb:/dev/dvb `#optional` \ --device /dev/dvb:/dev/dvb `#optional` \
--restart unless-stopped \ --restart unless-stopped \
ghcr.io/linuxserver/tvheadend lscr.io/linuxserver/tvheadend:latest
``` ```
#### Host vs. Bridge #### Host vs. Bridge
@@ -243,7 +243,7 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
* container version number * container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' tvheadend` * `docker inspect -f '{{ index .Config.Labels "build_version" }}' tvheadend`
* image version number * image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' ghcr.io/linuxserver/tvheadend` * `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/tvheadend:latest`
## Updating Info ## Updating Info
@@ -261,7 +261,7 @@ Below are the instructions for updating containers:
### Via Docker Run ### Via Docker Run
* Update the image: `docker pull ghcr.io/linuxserver/tvheadend` * Update the image: `docker pull lscr.io/linuxserver/tvheadend:latest`
* Stop the running container: `docker stop tvheadend` * Stop the running container: `docker stop tvheadend`
* Delete the container: `docker rm tvheadend` * Delete the container: `docker rm tvheadend`
* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved) * Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
@@ -296,7 +296,7 @@ cd docker-tvheadend
docker build \ docker build \
--no-cache \ --no-cache \
--pull \ --pull \
-t ghcr.io/linuxserver/tvheadend:latest . -t lscr.io/linuxserver/tvheadend:latest .
``` ```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
@@ -309,6 +309,9 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions ## Versions
* **19.08.22:** - Switch to new picons builder.
* **16.04.22:** - Added URL XMLTV grabber.
* **05.01.22:** - Rebase to Alpine 3.15. Disable execinfo to fix builds. Update xmltv.
* **11.05.21:** - Added Intel iHD driver support. * **11.05.21:** - Added Intel iHD driver support.
* **02.06.20:** - Update to Alpine 3.12. * **02.06.20:** - Update to Alpine 3.12.
* **27.12.19:** - Add requests and perl-json-xs package. * **27.12.19:** - Add requests and perl-json-xs package.

View File

@@ -1,257 +1,261 @@
alpine-baselayout-3.2.0-r7 alpine-baselayout-3.2.0-r18
alpine-keys-2.2-r0 alpine-keys-2.4-r1
alsa-lib-1.2.2-r0 alsa-lib-1.2.5.1-r1
aom-libs-1.0.0-r1 aom-libs-3.2.0-r0
apk-tools-2.10.8-r0 apk-tools-2.12.7-r3
bash-5.0.17-r0 bash-5.1.16-r0
brotli-libs-1.0.9-r1 brotli-libs-1.0.9-r5
bsd-compat-headers-0.7.2-r3 bsd-compat-headers-0.7.2-r3
busybox-1.31.1-r20 busybox-1.34.1-r7
bzip2-1.0.8-r1 bzip2-1.0.8-r1
ca-certificates-20191127-r4 ca-certificates-20220614-r0
ca-certificates-bundle-20191127-r4 ca-certificates-bundle-20220614-r0
coreutils-8.32-r0 coreutils-9.0-r2
curl-7.79.0-r0 curl-7.80.0-r2
expat-2.2.9-r1 expat-2.4.7-r0
ffmpeg-4.3.1-r0 ffmpeg-4.4.1-r2
ffmpeg-libs-4.3.1-r0 ffmpeg-libs-4.4.1-r2
fontconfig-2.13.1-r2 fontconfig-2.13.1-r4
freetype-2.10.4-r0 freetype-2.11.1-r2
fribidi-1.0.9-r0 fribidi-1.0.11-r0
fts-1.2.7-r1 fts-1.2.7-r1
gdbm-1.13-r1 gdbm-1.22-r0
gmp-6.2.0-r0 glib-2.70.1-r0
gnu-libiconv-1.15-r2 gmp-6.2.1-r1
gnutls-3.6.15-r1 gnu-libiconv-1.16-r0
gzip-1.10-r0 gnutls-3.7.1-r1
intel-gmmlib-20.1.1-r0 graphite2-1.3.14-r0
intel-media-driver-20.1.1-r0 gzip-1.12-r0
harfbuzz-3.0.0-r2
intel-gmmlib-21.3.3-r0
intel-media-driver-21.4.1-r0
lame-3.100-r0 lame-3.100-r0
less-590-r0
libacl-2.2.53-r0 libacl-2.2.53-r0
libass-0.14.0-r0 libass-0.15.2-r0
libattr-2.4.48-r0 libattr-2.5.1-r1
libbsd-0.10.0-r0 libblkid-2.37.4-r0
libbsd-0.11.3-r1
libbz2-1.0.8-r1 libbz2-1.0.8-r1
libc-utils-0.7.2-r3 libc-utils-0.7.2-r3
libcrypto1.1-1.1.1l-r0 libcrypto1.1-1.1.1q-r0
libcurl-7.79.0-r0 libcurl-7.80.0-r2
libdav1d-0.7.0-r0 libdav1d-0.9.2-r0
libdrm-2.4.102-r0 libdrm-2.4.109-r0
libdvbcsa-1.1.0-r1 libdvbcsa-1.1.0-r1
libelf-0.179-r0 libelf-0.185-r0
libffi-3.3-r2 libffi-3.4.2-r1
libgcc-9.3.0-r2 libgcc-10.3.1_git20211027-r0
libgcrypt-1.8.8-r1 libgcrypt-1.9.4-r0
libgpg-error-1.37-r0 libgomp-10.3.1_git20211027-r0
libgpg-error-1.42-r1
libhdhomerun-libs-20200225-r0 libhdhomerun-libs-20200225-r0
libidn-1.35-r0 libidn2-2.3.2-r0
libidn2-2.3.0-r0 libintl-0.21-r0
libintl-0.20.2-r0 libjpeg-turbo-2.1.2-r0
libjpeg-turbo-2.1.0-r0 libmd-1.0.3-r0
libogg-1.3.4-r0 libmount-2.37.4-r0
libogg-1.3.5-r0
libpciaccess-0.16-r0 libpciaccess-0.16-r0
libpng-1.6.37-r1 libpng-1.6.37-r1
libproc-3.3.16-r0 libproc-3.3.17-r0
libssh-0.9.4-r1 libretls-3.3.4-r3
libssl1.1-1.1.1l-r0 libsrt-1.4.2-r1
libstdc++-9.3.0-r2 libssh-0.9.6-r1
libtasn1-4.16.0-r1 libssl1.1-1.1.1q-r0
libtheora-1.1.1-r14 libstdc++-10.3.1_git20211027-r0
libtls-standalone-2.9.1-r1 libtasn1-4.18.0-r0
libunistring-0.9.10-r0 libtheora-1.1.1-r16
liburiparser-0.9.3-r1 libunistring-0.9.10-r1
libuuid-2.35.2-r0 liburiparser-0.9.6-r0
libva-2.7.1-r0 libuuid-2.37.4-r0
libva-intel-driver-2.4.0-r1 libva-2.13.0-r0
libva-intel-driver-2.4.1-r0
libvdpau-1.4-r0 libvdpau-1.4-r0
libvorbis-1.3.6-r2 libvorbis-1.3.7-r0
libvpx-1.8.2-r0 libvpx-1.10.0-r0
libx11-1.6.12-r1 libwebp-1.2.2-r0
libx11-1.7.2-r0
libxau-1.0.9-r0 libxau-1.0.9-r0
libxcb-1.14-r1 libxcb-1.14-r2
libxdmcp-1.1.3-r0 libxdmcp-1.1.3-r0
libxext-1.3.4-r0 libxext-1.3.4-r0
libxfixes-5.0.3-r2 libxfixes-6.0.0-r0
libxml2-2.9.12-r0 libxml2-2.9.14-r1
libxshmfence-1.3-r1 libxshmfence-1.3-r1
libxslt-1.1.34-r0 libxslt-1.1.35-r0
linux-headers-5.4.5-r1 linux-headers-5.10.41-r0
linux-pam-1.3.1-r4 linux-pam-1.5.2-r0
llvm10-libs-10.0.0-r2 llvm12-libs-12.0.1-r0
mesa-20.0.7-r0 mesa-21.2.6-r0
mesa-dri-ati-20.0.7-r0 mesa-dri-ati-21.2.6-r0
mesa-dri-classic-20.0.7-r0 mesa-dri-classic-21.2.6-r0
mesa-dri-gallium-20.0.7-r0 mesa-dri-gallium-21.2.6-r0
mesa-glapi-20.0.7-r0 mesa-glapi-21.2.6-r0
mesa-va-gallium-20.0.7-r0 mesa-va-gallium-21.2.6-r0
mesa-vdpau-gallium-20.0.7-r0 mesa-vdpau-gallium-21.2.6-r0
musl-1.1.24-r10 mpdecimal-2.5.1-r1
musl-utils-1.1.24-r10 musl-1.2.2-r7
ncurses-libs-6.2_p20200523-r0 musl-utils-1.2.2-r7
ncurses-terminfo-base-6.2_p20200523-r0 ncurses-libs-6.3_p20211120-r1
nettle-3.5.1-r1 ncurses-terminfo-base-6.3_p20211120-r1
nghttp2-libs-1.41.0-r0 nettle-3.7.3-r0
openssl-1.1.1l-r0 nghttp2-libs-1.46.0-r0
opus-1.3.1-r0 openssl-1.1.1q-r0
p11-kit-0.23.22-r0 opus-1.3.1-r1
pcre2-10.35-r0 p11-kit-0.24.0-r1
perl-5.30.3-r0 pcre-8.45-r1
perl-archive-zip-1.68-r0 pcre2-10.40-r0
perl-b-hooks-endofscope-0.24-r1 perl-5.34.0-r1
perl-boolean-0.46-r1 perl-archive-zip-1.68-r1
perl-canary-stability-2013-r0 perl-b-hooks-endofscope-0.25-r0
perl-capture-tiny-0.48-r1 perl-boolean-0.46-r2
perl-cgi-4.47-r0 perl-capture-tiny-0.48-r2
perl-class-data-inheritable-0.08-r1 perl-cgi-4.53-r0
perl-class-inspector-1.36-r1 perl-class-data-inheritable-0.09-r0
perl-class-methodmaker-2.24-r6 perl-class-inspector-1.36-r2
perl-class-singleton-1.5-r1 perl-class-methodmaker-2.24-r8
perl-common-sense-3.75-r0 perl-class-singleton-1.6-r0
perl-compress-raw-bzip2-2.093-r1 perl-common-sense-3.75-r2
perl-compress-raw-zlib-2.093-r1 perl-compress-raw-zlib-2.101-r1
perl-cpan-meta-check-0.014-r1 perl-cpan-meta-check-0.014-r2
perl-data-dumper-2.173-r3 perl-date-manip-6.86-r0
perl-date-manip-6.81-r0 perl-datetime-1.54-r1
perl-datetime-1.52-r0 perl-datetime-format-strptime-1.79-r0
perl-datetime-format-strptime-1.77-r0 perl-datetime-locale-1.33-r0
perl-datetime-locale-1.25-r0 perl-datetime-timezone-2.51-r0
perl-datetime-timezone-2.47-r0 perl-dbd-sqlite-1.70-r1
perl-dbd-sqlite-1.64-r2 perl-dbi-1.643-r3
perl-dbi-1.643-r0 perl-devel-stacktrace-2.04-r3
perl-devel-stacktrace-2.04-r1 perl-devel-symdump-2.18-r2
perl-devel-symdump-2.18-r1 perl-digest-sha1-2.13-r14
perl-digest-sha1-2.13-r12 perl-dist-checkconflicts-0.11-r2
perl-dist-checkconflicts-0.11-r1 perl-doc-5.34.0-r1
perl-doc-5.30.3-r0 perl-encode-locale-1.05-r3
perl-encode-locale-1.05-r2 perl-eval-closure-0.14-r2
perl-eval-closure-0.14-r1 perl-exception-class-1.45-r0
perl-exception-class-1.44-r1 perl-exporter-tiny-1.002002-r1
perl-exporter-tiny-1.002002-r0 perl-file-listing-6.14-r0
perl-file-listing-6.04-r2 perl-file-sharedir-1.118-r0
perl-file-sharedir-1.116-r1 perl-file-sharedir-install-0.13-r2
perl-file-sharedir-install-0.13-r1 perl-file-slurp-9999.32-r1
perl-file-slurp-9999.30-r0 perl-file-temp-0.2311-r0
perl-file-temp-0.2309-r1 perl-file-which-1.27-r0
perl-file-which-1.23-r1 perl-getopt-long-2.52-r1
perl-getopt-long-2.51-r1 perl-html-parser-3.76-r1
perl-html-parser-3.72-r5 perl-html-tagset-3.20-r3
perl-html-tagset-3.20-r2 perl-html-tree-5.07-r2
perl-html-tree-5.07-r1 perl-http-cookies-6.10-r0
perl-http-cookies-6.08-r0 perl-http-daemon-6.12-r1
perl-http-daemon-6.10-r0 perl-http-date-6.05-r1
perl-http-date-6.05-r0 perl-http-message-6.35-r0
perl-http-message-6.24-r0 perl-http-negotiate-6.01-r3
perl-http-negotiate-6.01-r2 perl-importer-0.026-r1
perl-importer-0.025-r0 perl-io-1.48-r0
perl-io-1.42-r0 perl-io-html-1.004-r0
perl-io-compress-2.093-r0 perl-io-socket-ssl-2.072-r0
perl-io-html-1.001-r2 perl-io-stringy-2.113-r1
perl-io-socket-ssl-2.068-r0 perl-ipc-run3-0.048-r2
perl-io-stringy-2.113-r0 perl-json-4.03-r1
perl-ipc-run3-0.048-r1 perl-json-xs-4.03-r1
perl-json-4.02-r0 perl-libwww-6.58-r0
perl-json-xs-4.02-r1 perl-lingua-en-numbers-ordinate-1.05-r0
perl-libwww-6.44-r0 perl-lingua-preferred-0.2.4-r4
perl-lingua-en-numbers-ordinate-1.04-r2 perl-list-moreutils-0.430-r0
perl-lingua-preferred-0.2.4-r2 perl-list-moreutils-xs-0.430-r1
perl-list-moreutils-0.428-r0 perl-lwp-mediatypes-6.04-r1
perl-list-moreutils-xs-0.428-r3 perl-lwp-useragent-determined-1.07-r2
perl-lwp-mediatypes-6.04-r0 perl-module-build-0.4231-r1
perl-lwp-useragent-determined-1.07-r1 perl-module-implementation-0.09-r3
perl-module-build-0.4231-r0 perl-module-metadata-1.000037-r1
perl-module-implementation-0.09-r2 perl-module-pluggable-5.2-r2
perl-module-metadata-1.000037-r0 perl-module-runtime-0.016-r4
perl-module-pluggable-5.2-r1 perl-mozilla-ca-20211001-r0
perl-module-runtime-0.016-r3 perl-mro-compat-0.13-r2
perl-mro-compat-0.13-r1 perl-namespace-autoclean-0.29-r2
perl-namespace-autoclean-0.29-r1 perl-namespace-clean-0.27-r2
perl-namespace-clean-0.27-r1 perl-net-http-6.21-r0
perl-net-http-6.19-r0 perl-net-ssleay-1.90-r3
perl-net-libidn-0.12-r8 perl-package-deprecationmanager-0.17-r2
perl-net-ssleay-1.88-r0 perl-package-stash-0.39-r0
perl-package-deprecationmanager-0.17-r1 perl-params-util-1.102-r1
perl-package-stash-0.38-r2 perl-params-validate-1.30-r1
perl-package-stash-xs-0.29-r3 perl-params-validationcompiler-0.30-r1
perl-params-util-1.07-r8 perl-parse-recdescent-1.967015-r3
perl-params-validate-1.29-r3 perl-path-class-0.37-r2
perl-params-validationcompiler-0.30-r0 perl-pod-coverage-0.23-r2
perl-parse-recdescent-1.967015-r2 perl-pod-parser-1.63-r1
perl-path-class-0.37-r1 perl-role-tiny-2.002004-r1
perl-pod-coverage-0.23-r1 perl-scalar-list-utils-1.60-r0
perl-role-tiny-2.001004-r0 perl-scope-guard-0.21-r2
perl-scalar-list-utils-1.55-r0 perl-specio-0.47-r0
perl-scope-guard-0.21-r1 perl-sub-exporter-progressive-0.001013-r2
perl-specio-0.46-r0 perl-sub-identify-0.14-r6
perl-sub-exporter-progressive-0.001013-r1 perl-sub-info-0.002-r2
perl-sub-identify-0.14-r4 perl-sub-install-0.928-r2
perl-sub-info-0.002-r1 perl-sub-name-0.26-r3
perl-sub-install-0.928-r1 perl-sub-quote-2.006006-r1
perl-sub-name-0.26-r1 perl-sub-uplevel-0.2800-r2
perl-sub-quote-2.006006-r0 perl-term-progressbar-2.22-r2
perl-sub-uplevel-0.2800-r1 perl-term-readkey-2.38-r6
perl-term-progressbar-2.22-r1 perl-term-table-0.015-r1
perl-term-readkey-2.38-r3 perl-test-exception-0.43-r2
perl-term-table-0.015-r0 perl-test-fatal-0.016-r3
perl-test-exception-0.43-r1 perl-test-pod-1.52-r2
perl-test-fatal-0.014-r2 perl-test-requires-0.11-r1
perl-test-needs-0.002006-r0 perl-test-simple-1.302188-r1
perl-test-pod-1.52-r1 perl-test-taint-1.08-r4
perl-test-requires-0.11-r0 perl-test-warnings-0.031-r0
perl-test-simple-1.302175-r0 perl-test-without-module-0.20-r2
perl-test-taint-1.08-r2 perl-test2-plugin-nowarnings-0.09-r1
perl-test-warnings-0.030-r0 perl-test2-suite-0.000142-r0
perl-test-without-module-0.20-r1 perl-timedate-2.33-r1
perl-test2-plugin-nowarnings-0.08-r1 perl-try-tiny-0.30-r3
perl-test2-suite-0.000129-r0 perl-types-serialiser-1.01-r0
perl-timedate-2.33-r0 perl-unicode-string-2.10-r3
perl-try-tiny-0.30-r1 perl-uri-5.10-r0
perl-types-serialiser-1.0-r2 perl-variable-magic-0.62-r5
perl-unicode-string-2.10-r1 perl-www-robotrules-6.02-r3
perl-uri-1.76-r0 perl-xml-libxml-2.0207-r1
perl-variable-magic-0.62-r3 perl-xml-libxslt-1.99-r2
perl-www-robotrules-6.02-r2 perl-xml-namespacesupport-1.12-r3
perl-xml-libxml-2.0205-r0 perl-xml-parser-2.46-r2
perl-xml-libxslt-1.99-r0 perl-xml-sax-1.02-r1
perl-xml-namespacesupport-1.12-r1 perl-xml-sax-base-1.09-r3
perl-xml-parser-2.46-r0 perl-xml-treepp-0.43-r3
perl-xml-sax-1.02-r0 perl-xml-twig-3.52-r3
perl-xml-sax-base-1.09-r1 perl-xml-writer-0.900-r0
perl-xml-treepp-0.43-r2 procps-3.3.17-r0
perl-xml-twig-3.52-r2 py3-certifi-2020.12.5-r1
perl-xml-writer-0.625-r3 py3-charset-normalizer-2.0.7-r0
perl-yaml-syck-1.32-r0 py3-idna-3.3-r0
procps-3.3.16-r0 py3-requests-2.26.0-r1
py3-appdirs-1.4.4-r1 py3-urllib3-1.26.7-r0
py3-certifi-2020.4.5.1-r0 python3-3.9.13-r1
py3-chardet-3.0.4-r4 readline-8.1.1-r0
py3-idna-2.9-r0 s6-ipcserver-2.11.0.0-r0
py3-ordered-set-4.0.1-r0 scanelf-1.3.3-r0
py3-packaging-20.4-r0 sdl2-2.0.16-r4
py3-parsing-2.4.7-r0 shadow-4.8.1-r1
py3-requests-2.23.0-r0 skalibs-2.11.0.0-r0
py3-setuptools-47.0.0-r0 soxr-0.1.3-r2
py3-six-1.15.0-r0 sqlite-libs-3.36.0-r0
py3-urllib3-1.25.9-r0 ssl_client-1.34.1-r7
python2-2.7.18-r0 tar-1.34-r0
python3-3.8.10-r0 tzdata-2022a-r0
readline-8.0.4-r0 uriparser-0.9.6-r0
scanelf-1.2.6-r0 utmps-0.1.0.3-r0
sdl2-2.0.12-r1 v4l-utils-libs-1.22.1-r1
shadow-4.8.1-r0 vidstab-1.1.0-r1
sqlite-libs-3.32.1-r1 vulkan-loader-1.2.196-r0
ssl_client-1.31.1-r20 wayland-libs-client-1.19.0-r1
tar-1.32-r2 wget-1.21.2-r2
tzdata-2021a-r0 x264-20210613-r0
uriparser-0.9.3-r1 x264-libs-20210613-r0
v4l-utils-libs-1.20.0-r0 x265-3.5-r0
wayland-libs-client-1.18.0-r4 x265-libs-3.5-r0
wget-1.20.3-r1
x264-20191119-r1
x264-libs-20191119-r1
x265-3.3-r1
x265-libs-3.3-r1
xvidcore-1.3.7-r1 xvidcore-1.3.7-r1
xz-5.2.5-r0 xz-5.2.5-r1
xz-libs-5.2.5-r0 xz-libs-5.2.5-r1
zlib-1.2.11-r3 zlib-1.2.12-r3
zstd-libs-1.4.9-r0 zstd-libs-1.5.0-r0

View File

@@ -1,6 +1,7 @@
requires 'perl' => '5.24.0'; requires 'perl' => '5.24.0';
# perl packages for tvheadend x86 # perl packages for tvheadend x86
requires 'Data::Dump' ;
requires 'DateTime::Format::ISO8601' ; requires 'DateTime::Format::ISO8601' ;
requires 'DateTime::Format::SQLite' ; requires 'DateTime::Format::SQLite' ;
requires 'Encode' ; requires 'Encode' ;

View File

@@ -23,8 +23,6 @@ development_versions: true
development_versions_items: development_versions_items:
- { tag: "latest", desc: "Current latest release." } - { tag: "latest", desc: "Current latest release." }
- { tag: "release-4.2", desc: "Latest release from 4.2 branch." } - { tag: "release-4.2", desc: "Latest release from 4.2 branch." }
- { tag: "stable-4.2.1", desc: "Old stable version. Will not be updated anymore!" }
- { tag: "stable-4.0.9", desc: "Old stable version. Will not be updated anymore!" }
# container parameters # container parameters
common_param_env_vars_enabled: true common_param_env_vars_enabled: true
@@ -126,6 +124,9 @@ app_setup_block: |
# changelog # changelog
changelogs: changelogs:
- { date: "19.08.22:", desc: "Switch to new picons builder." }
- { date: "16.04.22:", desc: "Added URL XMLTV grabber." }
- { date: "05.01.22:", desc: "Rebase to Alpine 3.15. Disable execinfo to fix builds. Update xmltv." }
- { date: "11.05.21:", desc: "Added Intel iHD driver support." } - { date: "11.05.21:", desc: "Added Intel iHD driver support." }
- { date: "02.06.20:", desc: "Update to Alpine 3.12." } - { date: "02.06.20:", desc: "Update to Alpine 3.12." }
- { date: "27.12.19:", desc: "Add requests and perl-json-xs package." } - { date: "27.12.19:", desc: "Add requests and perl-json-xs package." }

View File

@@ -14,6 +14,7 @@ mkdir -p \
# extract picons on first run # extract picons on first run
[[ -f /picons.tar.bz2 ]] && \ [[ -f /picons.tar.bz2 ]] && \
mkdir -p /picons
tar xf \ tar xf \
/picons.tar.bz2 -C \ /picons.tar.bz2 -C \
/picons && /picons &&

67
root/usr/bin/tv_grab_url Normal file
View File

@@ -0,0 +1,67 @@
#!/bin/bash
dflag=
vflag=
cflag=
if (( $# < 1 ))
then
exit 0
fi
OPTARG=""
URL=$1
for arg
do
delim=""
case "$arg" in
#translate --gnu-long-options to -g (short options)
--description) args="${args}-d ";;
--version) args="${args}-v ";;
--capabilities) args="${args}-c ";;
#pass through anything else
*) if [ "${arg:0:1}" == "-" ] || delim="\""
then
args="${args}${delim}${arg}${delim} "
else
OPTARG=${arg}
fi
esac
done
#Reset the positional parameters to the short options
eval set -- $args
while getopts "dvc" option
do
case $option in
d) dflag=1;;
v) vflag=1;;
c) cflag=1;;
\?) printf "unknown option: -%s\n" $OPTARG
printf "Usage: %s: [--description] [--version] [--capabilities] \n" $(basename $0)
exit 2
;;
esac >&2
done
if [ "$dflag" ]
then
printf "XMLTV URL grabber\n"
exit 0
fi
if [ "$vflag" ]
then
printf "0.1\n"
exit 0
fi
if [ "$cflag" ]
then
printf "baseline\n"
exit 0
fi
curl -s "$URL"
exit 0