Compare commits

..

30 Commits

Author SHA1 Message Date
LinuxServer-CI
d052b13f92 Bot Updating Package Versions 2019-03-28 04:20:14 -04:00
Ryan Kuba
9d64ee4636 #72 fix chowning (#125)
* #72 only chown once using new logic, rebase to alpine 3.9, increase make threads now that arm boxes are single threaded

* typo
2019-03-28 08:02:54 +01:00
Ryan Kuba
753d0bbe38 Merge pull request #123 from thelamer/master
Switching to new Base images, shift to arm32v7 tag.
2019-03-24 17:10:02 -07:00
LinuxServer-CI
43b924159e Bot Updating Package Versions 2019-03-24 18:08:10 -04:00
LinuxServer-CI
09504f7d5b Bot Updating Templated Files 2019-03-24 21:16:32 +00:00
thelamer
31cd14f4f5 Switching to new Base images, shift to arm32v7 tag. 2019-03-23 22:17:41 -07:00
LinuxServer-CI
56a0b351da Bot Updating Package Versions 2019-03-20 22:33:57 +00:00
LinuxServer-CI
df82e31fe1 Bot Updating Package Versions 2019-03-08 00:58:39 +00:00
aptalca
6e137dbdba Merge pull request #120 from thelamer/master
libiconv shifted to community repos
2019-03-07 18:43:22 -05:00
thelamer
435875e2a3 libiconv shifted to community repos 2019-03-07 14:09:01 -08:00
LinuxServer-CI
6025ca0750 Bot Updating Templated Files 2019-03-07 16:16:49 -05:00
Rasmus
3a4ee7ab9f Bump xmltv to 0.6.1 (#118) 2019-03-02 15:15:33 +01:00
LinuxServer-CI
a2f49bb75b Bot Updating Package Versions 2019-03-01 22:19:05 +00:00
LinuxServer-CI
3659c4708a Bot Updating Templated Files 2019-03-01 16:35:30 -05:00
aptalca
8387285750 Merge pull request #117 from danofun/master
add perl-lwp-useragent-determined which is needed for tv_grab_zz_sdjson_sqlite
2019-03-01 16:34:31 -05:00
LinuxServer-CI
90d21b6f06 Bot Updating Templated Files 2019-03-01 16:16:43 -05:00
danofun
2631706f5b add changelog entry as requested. 2019-02-28 09:34:40 -05:00
danofun
f6e2be9d51 add perl-lwp-useragent 2019-02-27 21:21:15 -05:00
LinuxServer-CI
e6bb2a1641 Bot Updating Package Versions 2019-02-27 19:26:21 -05:00
LinuxServer-CI
a702166af3 Bot Updating Templated Files 2019-02-27 21:16:49 +00:00
saarg
9dceb0a4ce Merge pull request #113 from thelamer/master
switching back to clone and checkout
2019-02-17 22:54:51 +01:00
thelamer
22ed8475c7 bumping to xmltv 0.5.70 and pulling it from github instead of sourceforge 2019-02-17 12:45:28 -08:00
thelamer
c7ce0c4832 switching back to clone and checkout 2019-02-17 10:38:54 -08:00
saarg
822dbde249 Merge pull request #110 from thelamer/master
Fixes for picons
2019-02-16 21:29:10 +01:00
thelamer
cd3964e06c making requested changes to default config 2019-02-16 09:22:18 -08:00
thelamer
70f300d86a forgot schema value 2019-02-15 13:03:48 -08:00
thelamer
25979ad455 fixing paths for initial config 2019-02-15 12:57:46 -08:00
thelamer
1306f8cf2d need to untar picons for htem to be read by the app 2019-02-15 11:44:23 -08:00
thelamer
f19ad9ca20 updating changelog 2019-02-14 22:21:30 -08:00
thelamer
c0a37a6b8b adding picons path to config if this is a first boot 2019-02-14 22:15:47 -08:00
9 changed files with 461 additions and 358 deletions

View File

@@ -1,9 +1,9 @@
FROM lsiobase/alpine:3.8 as buildstage
FROM lsiobase/alpine:3.9 as buildstage
############## build stage ##############
# package versions
ARG ARGTABLE_VER="2.13"
ARG XMLTV_VER="0.5.69"
ARG XMLTV_VER="v0.6.1"
# environment settings
ARG TZ="Europe/Oslo"
@@ -78,6 +78,7 @@ RUN \
perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \
perl-list-moreutils \
perl-lwp-useragent-determined \
perl-module-build \
perl-module-pluggable \
perl-net-ssleay \
@@ -109,7 +110,7 @@ RUN \
x265-dev \
zlib-dev && \
apk add --no-cache \
--repository http://nl.alpinelinux.org/alpine/edge/testing \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv-dev
RUN \
@@ -124,13 +125,9 @@ RUN \
RUN \
echo "**** compile XMLTV ****" && \
curl -o \
/tmp/xmtltv-src.tar.bz2 -L \
"https://sourceforge.net/projects/xmltv/files/xmltv/${XMLTV_VER}/xmltv-${XMLTV_VER}.tar.bz2" && \
tar xf \
/tmp/xmtltv-src.tar.bz2 -C \
/tmp --strip-components=1 && \
cd "/tmp/xmltv-${XMLTV_VER}" && \
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 && \
@@ -140,7 +137,7 @@ RUN \
sed "s/\(lib\/Ask\/Term.pm';\)/.\/\1/" -i Makefile.PL && \
PERL5LIB=`pwd` && \
echo -e "yes" | perl Makefile.PL PREFIX=/usr/ INSTALLDIRS=vendor && \
make && \
make -j 2 && \
make test && \
make DESTDIR=/tmp/xmltv-build install
@@ -150,15 +147,11 @@ RUN \
TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/master \
| jq -r '. | .sha'); \
fi && \
curl -o \
/tmp/tvheadend.tar.gz -L \
"https://github.com/tvheadend/tvheadend/archive/${TVHEADEND_COMMIT}.tar.gz" && \
mkdir -p \
/tmp/tvheadend && \
tar xf \
/tmp/tvheadend.tar.gz -C \
/tmp/tvheadend/ --strip-components=1 && \
git clone https://github.com/tvheadend/tvheadend.git /tmp/tvheadend && \
cd /tmp/tvheadend && \
git checkout ${TVHEADEND_COMMIT} && \
./configure \
`#Encoding` \
--disable-ffmpeg_static \
@@ -191,7 +184,7 @@ RUN \
--mandir=/usr/share/man \
--prefix=/usr \
--sysconfdir=/config && \
make && \
make -j 2 && \
make DESTDIR=/tmp/tvheadend-build install
RUN \
@@ -209,7 +202,7 @@ RUN \
cd /tmp/argtable && \
./configure \
--prefix=/usr && \
make && \
make -j 2 && \
make check && \
make DESTDIR=/tmp/argtable-build install && \
echo "**** copy to /usr for comskip dependency ****" && \
@@ -223,11 +216,11 @@ RUN \
./configure \
--bindir=/usr/bin \
--sysconfdir=/config/comskip && \
make && \
make -j 2 && \
make DESTDIR=/tmp/comskip-build install
############## runtime stage ##############
FROM lsiobase/alpine:3.8
FROM lsiobase/alpine:3.9
# set version label
ARG BUILD_DATE
@@ -247,11 +240,11 @@ RUN \
ffmpeg \
ffmpeg-libs \
gzip \
libcrypto1.0 \
libcrypto1.1 \
libcurl \
libdvbcsa \
libhdhomerun-libs \
libssl1.0 \
libssl1.1 \
libva \
libva-intel-driver \
libvpx \
@@ -293,6 +286,7 @@ RUN \
perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \
perl-list-moreutils \
perl-lwp-useragent-determined \
perl-module-build \
perl-module-pluggable \
perl-net-ssleay \
@@ -321,13 +315,19 @@ RUN \
x265 \
zlib && \
apk add --no-cache \
--repository http://nl.alpinelinux.org/alpine/edge/testing \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv && \
echo "**** Add Picons ****" && \
mkdir -p /picons && \
curl -o \
/picons/picons.tar.bz2 -L \
https://lsio-ci.ams3.digitaloceanspaces.com/picons/picons.tar.bz2
/tmp/picons.tar.bz2 -L \
https://lsio-ci.ams3.digitaloceanspaces.com/picons/picons.tar.bz2 && \
tar xf \
/tmp/picons.tar.bz2 -C \
/picons && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/*
# copy local files and buildstage artifacts
COPY --from=buildstage /tmp/argtable-build/usr/ /usr/

View File

@@ -1,9 +1,9 @@
FROM lsiobase/alpine.arm64:3.8 as buildstage
FROM lsiobase/alpine:arm64v8-3.9 as buildstage
############## build stage ##############
# package versions
ARG ARGTABLE_VER="2.13"
ARG XMLTV_VER="0.5.69"
ARG XMLTV_VER="v0.6.1"
# environment settings
ARG TZ="Europe/Oslo"
@@ -77,6 +77,7 @@ RUN \
perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \
perl-list-moreutils \
perl-lwp-useragent-determined \
perl-module-build \
perl-module-pluggable \
perl-net-ssleay \
@@ -108,7 +109,7 @@ RUN \
x265-dev \
zlib-dev && \
apk add --no-cache \
--repository http://nl.alpinelinux.org/alpine/edge/testing \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv-dev
RUN \
@@ -123,13 +124,9 @@ RUN \
RUN \
echo "**** compile XMLTV ****" && \
curl -o \
/tmp/xmtltv-src.tar.bz2 -L \
"https://sourceforge.net/projects/xmltv/files/xmltv/${XMLTV_VER}/xmltv-${XMLTV_VER}.tar.bz2" && \
tar xf \
/tmp/xmtltv-src.tar.bz2 -C \
/tmp --strip-components=1 && \
cd "/tmp/xmltv-${XMLTV_VER}" && \
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 && \
@@ -139,25 +136,21 @@ RUN \
sed "s/\(lib\/Ask\/Term.pm';\)/.\/\1/" -i Makefile.PL && \
PERL5LIB=`pwd` && \
echo -e "yes" | perl Makefile.PL PREFIX=/usr/ INSTALLDIRS=vendor && \
make && \
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'); \
TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/master \
| jq -r '. | .sha'); \
fi && \
curl -o \
/tmp/tvheadend.tar.gz -L \
"https://github.com/tvheadend/tvheadend/archive/${TVHEADEND_COMMIT}.tar.gz" && \
mkdir -p \
/tmp/tvheadend && \
tar xf \
/tmp/tvheadend.tar.gz -C \
/tmp/tvheadend/ --strip-components=1 && \
/tmp/tvheadend && \
git clone https://github.com/tvheadend/tvheadend.git /tmp/tvheadend && \
cd /tmp/tvheadend && \
git checkout ${TVHEADEND_COMMIT} && \
./configure \
`#Encoding` \
--disable-ffmpeg_static \
@@ -189,7 +182,7 @@ RUN \
--mandir=/usr/share/man \
--prefix=/usr \
--sysconfdir=/config && \
make && \
make -j 2 && \
make DESTDIR=/tmp/tvheadend-build install
RUN \
@@ -207,7 +200,7 @@ RUN \
cd /tmp/argtable && \
./configure \
--prefix=/usr && \
make && \
make -j 2 && \
make check && \
make DESTDIR=/tmp/argtable-build install && \
echo "**** copy to /usr for comskip dependency ****" && \
@@ -221,14 +214,11 @@ RUN \
./configure \
--bindir=/usr/bin \
--sysconfdir=/config/comskip && \
make && \
make -j 2 && \
make DESTDIR=/tmp/comskip-build install
############## runtime stage ##############
FROM lsiobase/alpine.arm64:3.8
# Add qemu to build on x86_64 systems
COPY qemu-aarch64-static /usr/bin
FROM lsiobase/alpine:arm64v8-3.9
# set version label
ARG BUILD_DATE
@@ -248,11 +238,11 @@ RUN \
ffmpeg \
ffmpeg-libs \
gzip \
libcrypto1.0 \
libcrypto1.1 \
libcurl \
libdvbcsa \
libhdhomerun-libs \
libssl1.0 \
libssl1.1 \
libvpx \
libxml2 \
libxslt \
@@ -292,6 +282,7 @@ RUN \
perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \
perl-list-moreutils \
perl-lwp-useragent-determined \
perl-module-build \
perl-module-pluggable \
perl-net-ssleay \
@@ -320,13 +311,19 @@ RUN \
x265 \
zlib && \
apk add --no-cache \
--repository http://nl.alpinelinux.org/alpine/edge/testing \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv && \
echo "**** Add Picons ****" && \
mkdir -p /picons && \
curl -o \
/picons/picons.tar.bz2 -L \
https://lsio-ci.ams3.digitaloceanspaces.com/picons/picons.tar.bz2
/tmp/picons.tar.bz2 -L \
https://lsio-ci.ams3.digitaloceanspaces.com/picons/picons.tar.bz2 && \
tar xf \
/tmp/picons.tar.bz2 -C \
/picons && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/*
# copy local files and buildstage artifacts
COPY --from=buildstage /tmp/argtable-build/usr/ /usr/

View File

@@ -1,9 +1,9 @@
FROM lsiobase/alpine.armhf:3.8 as buildstage
FROM lsiobase/alpine:arm32v7-3.9 as buildstage
############## build stage ##############
# package versions
ARG ARGTABLE_VER="2.13"
ARG XMLTV_VER="0.5.69"
ARG XMLTV_VER="v0.6.1"
# environment settings
ARG TZ="Europe/Oslo"
@@ -77,6 +77,7 @@ RUN \
perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \
perl-list-moreutils \
perl-lwp-useragent-determined \
perl-module-build \
perl-module-pluggable \
perl-net-ssleay \
@@ -108,7 +109,7 @@ RUN \
x265-dev \
zlib-dev && \
apk add --no-cache \
--repository http://nl.alpinelinux.org/alpine/edge/testing \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv-dev
RUN \
@@ -123,13 +124,9 @@ RUN \
RUN \
echo "**** compile XMLTV ****" && \
curl -o \
/tmp/xmtltv-src.tar.bz2 -L \
"https://sourceforge.net/projects/xmltv/files/xmltv/${XMLTV_VER}/xmltv-${XMLTV_VER}.tar.bz2" && \
tar xf \
/tmp/xmtltv-src.tar.bz2 -C \
/tmp --strip-components=1 && \
cd "/tmp/xmltv-${XMLTV_VER}" && \
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 && \
@@ -139,25 +136,21 @@ RUN \
sed "s/\(lib\/Ask\/Term.pm';\)/.\/\1/" -i Makefile.PL && \
PERL5LIB=`pwd` && \
echo -e "yes" | perl Makefile.PL PREFIX=/usr/ INSTALLDIRS=vendor && \
make && \
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'); \
TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/master \
| jq -r '. | .sha'); \
fi && \
curl -o \
/tmp/tvheadend.tar.gz -L \
"https://github.com/tvheadend/tvheadend/archive/${TVHEADEND_COMMIT}.tar.gz" && \
mkdir -p \
/tmp/tvheadend && \
tar xf \
/tmp/tvheadend.tar.gz -C \
/tmp/tvheadend/ --strip-components=1 && \
/tmp/tvheadend && \
git clone https://github.com/tvheadend/tvheadend.git /tmp/tvheadend && \
cd /tmp/tvheadend && \
git checkout ${TVHEADEND_COMMIT} && \
./configure \
`#Encoding` \
--disable-ffmpeg_static \
@@ -189,7 +182,7 @@ RUN \
--mandir=/usr/share/man \
--prefix=/usr \
--sysconfdir=/config && \
make && \
make -j 2 && \
make DESTDIR=/tmp/tvheadend-build install
RUN \
@@ -207,7 +200,7 @@ RUN \
cd /tmp/argtable && \
./configure \
--prefix=/usr && \
make && \
make -j 2 && \
make check && \
make DESTDIR=/tmp/argtable-build install && \
echo "**** copy to /usr for comskip dependency ****" && \
@@ -221,14 +214,11 @@ RUN \
./configure \
--bindir=/usr/bin \
--sysconfdir=/config/comskip && \
make && \
make -j 2 && \
make DESTDIR=/tmp/comskip-build install
############## runtime stage ##############
FROM lsiobase/alpine.armhf:3.8
# Add qemu to build on x86_64 systems
COPY qemu-arm-static /usr/bin
FROM lsiobase/alpine:arm32v7-3.9
# set version label
ARG BUILD_DATE
@@ -248,11 +238,11 @@ RUN \
ffmpeg \
ffmpeg-libs \
gzip \
libcrypto1.0 \
libcrypto1.1 \
libcurl \
libdvbcsa \
libhdhomerun-libs \
libssl1.0 \
libssl1.1 \
libvpx \
libxml2 \
libxslt \
@@ -292,6 +282,7 @@ RUN \
perl-lingua-en-numbers-ordinate \
perl-lingua-preferred \
perl-list-moreutils \
perl-lwp-useragent-determined \
perl-module-build \
perl-module-pluggable \
perl-net-ssleay \
@@ -320,13 +311,19 @@ RUN \
x265 \
zlib && \
apk add --no-cache \
--repository http://nl.alpinelinux.org/alpine/edge/testing \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv && \
echo "**** Add Picons ****" && \
mkdir -p /picons && \
curl -o \
/picons/picons.tar.bz2 -L \
https://lsio-ci.ams3.digitaloceanspaces.com/picons/picons.tar.bz2
/tmp/picons.tar.bz2 -L \
https://lsio-ci.ams3.digitaloceanspaces.com/picons/picons.tar.bz2 && \
tar xf \
/tmp/picons.tar.bz2 -C \
/picons && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/*
# copy local files and buildstage artifacts
COPY --from=buildstage /tmp/argtable-build/usr/ /usr/

114
Jenkinsfile vendored
View File

@@ -41,7 +41,7 @@ pipeline {
script: '''curl -s https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases/latest | jq -r '. | .tag_name' ''',
returnStdout: true).trim()
env.LS_RELEASE_NOTES = sh(
script: '''git log -1 --pretty=%B | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''',
script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''',
returnStdout: true).trim()
env.GITHUB_DATE = sh(
script: '''date '+%Y-%m-%dT%H:%M:%S%:z' ''',
@@ -132,7 +132,7 @@ pipeline {
script{
env.IMAGE = env.DOCKERHUB_IMAGE
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v6-' + 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 {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
@@ -150,7 +150,7 @@ pipeline {
script{
env.IMAGE = env.DEV_DOCKERHUB_IMAGE
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v6-' + 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 {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
}
@@ -168,7 +168,7 @@ pipeline {
script{
env.IMAGE = env.PR_DOCKERHUB_IMAGE
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v6-' + 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 {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
}
@@ -178,6 +178,35 @@ pipeline {
}
}
}
// Run ShellCheck
stage('ShellCheck') {
when {
environment name: 'CI', value: 'true'
}
steps {
withCredentials([
string(credentialsId: 'spaces-key', variable: 'DO_KEY'),
string(credentialsId: 'spaces-secret', variable: 'DO_SECRET')
]) {
script{
env.SHELLCHECK_URL = 'https://lsio-ci.ams3.digitaloceanspaces.com/' + env.IMAGE + '/' + env.META_TAG + '/shellcheck-result.xml'
}
sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-shellcheck/master/checkrun.sh | /bin/bash'''
sh '''#! /bin/bash
set -e
docker pull lsiodev/spaces-file-upload:latest
docker run --rm \
-e DESTINATION=\"${IMAGE}/${META_TAG}/shellcheck-result.xml\" \
-e FILE_NAME="shellcheck-result.xml" \
-e MIMETYPE="text/xml" \
-v ${WORKSPACE}:/mnt \
-e SECRET_KEY=\"${DO_SECRET}\" \
-e ACCESS_KEY=\"${DO_KEY}\" \
-t lsiodev/spaces-file-upload:latest \
python /upload.py'''
}
}
}
// Use helper containers to render templated files
stage('Update-Templates') {
when {
@@ -252,7 +281,7 @@ pipeline {
environment name: 'EXIT_STATUS', value: ''
}
steps {
sh "docker build --no-cache -t ${IMAGE}:${META_TAG} \
sh "docker build --no-cache --pull -t ${IMAGE}:${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
}
@@ -265,7 +294,7 @@ pipeline {
parallel {
stage('Build X86') {
steps {
sh "docker build --no-cache -t ${IMAGE}:amd64-${META_TAG} \
sh "docker build --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
}
@@ -288,10 +317,13 @@ pipeline {
'''
sh "curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-arm-static -o qemu-arm-static"
sh "chmod +x qemu-*"
sh "docker build --no-cache -f Dockerfile.armhf -t ${IMAGE}:arm32v6-${META_TAG} \
sh "docker build --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm32v6-${META_TAG} lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER}"
sh "docker push lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER}"
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
sh "docker push lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
sh '''docker rmi \
${IMAGE}:arm32v7-${META_TAG} \
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} '''
}
}
}
@@ -314,10 +346,13 @@ pipeline {
'''
sh "curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-aarch64-static -o qemu-aarch64-static"
sh "chmod +x qemu-*"
sh "docker build --no-cache -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \
sh "docker build --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
sh "docker push lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
sh '''docker rmi \
${IMAGE}:arm64v8-${META_TAG} \
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} '''
}
}
}
@@ -341,13 +376,13 @@ pipeline {
fi
if [ "${DIST_IMAGE}" == "alpine" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
apk info > packages && \
apk info -v > versions && \
paste -d " " packages versions > /tmp/package_versions.txt && \
apk info -v > /tmp/package_versions.txt && \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
elif [ "${DIST_IMAGE}" == "ubuntu" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
apt list -qq --installed > /tmp/package_versions.txt && \
apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
fi
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
@@ -427,9 +462,9 @@ pipeline {
set -e
docker pull lsiodev/ci:latest
if [ "${MULTIARCH}" == "true" ]; then
docker pull lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v6-${META_TAG}
docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi
docker run --rm \
@@ -479,6 +514,10 @@ pipeline {
sh "docker tag ${IMAGE}:${META_TAG} ${IMAGE}:latest"
sh "docker push ${IMAGE}:latest"
sh "docker push ${IMAGE}:${META_TAG}"
sh '''docker rmi \
${IMAGE}:${META_TAG} \
${IMAGE}:latest '''
}
}
}
@@ -502,30 +541,39 @@ pipeline {
'''
sh '''#! /bin/bash
if [ "${CI}" == "false" ]; then
docker pull lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v6-${META_TAG}
docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi'''
sh "docker tag ${IMAGE}:amd64-${META_TAG} ${IMAGE}:amd64-latest"
sh "docker tag ${IMAGE}:arm32v6-${META_TAG} ${IMAGE}:arm32v6-latest"
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm32v7-latest"
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ${IMAGE}:arm64v8-latest"
sh "docker push ${IMAGE}:amd64-${META_TAG}"
sh "docker push ${IMAGE}:arm32v6-${META_TAG}"
sh "docker push ${IMAGE}:arm32v7-${META_TAG}"
sh "docker push ${IMAGE}:arm64v8-${META_TAG}"
sh "docker push ${IMAGE}:amd64-latest"
sh "docker push ${IMAGE}:arm32v6-latest"
sh "docker push ${IMAGE}:arm32v7-latest"
sh "docker push ${IMAGE}:arm64v8-latest"
sh "docker manifest push --purge ${IMAGE}:latest || :"
sh "docker manifest create ${IMAGE}:latest ${IMAGE}:amd64-latest ${IMAGE}:arm32v6-latest ${IMAGE}:arm64v8-latest"
sh "docker manifest annotate ${IMAGE}:latest ${IMAGE}:arm32v6-latest --os linux --arch arm"
sh "docker manifest create ${IMAGE}:latest ${IMAGE}:amd64-latest ${IMAGE}:arm32v7-latest ${IMAGE}:arm64v8-latest"
sh "docker manifest annotate ${IMAGE}:latest ${IMAGE}:arm32v7-latest --os linux --arch arm"
sh "docker manifest annotate ${IMAGE}:latest ${IMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8"
sh "docker manifest push --purge ${IMAGE}:${META_TAG} || :"
sh "docker manifest create ${IMAGE}:${META_TAG} ${IMAGE}:amd64-${META_TAG} ${IMAGE}:arm32v6-${META_TAG} ${IMAGE}:arm64v8-${META_TAG}"
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm32v6-${META_TAG} --os linux --arch arm"
sh "docker manifest create ${IMAGE}:${META_TAG} ${IMAGE}:amd64-${META_TAG} ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm64v8-${META_TAG}"
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm32v7-${META_TAG} --os linux --arch arm"
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8"
sh "docker manifest push --purge ${IMAGE}:latest"
sh "docker manifest push --purge ${IMAGE}:${META_TAG}"
sh '''docker rmi \
${IMAGE}:amd64-${META_TAG} \
${IMAGE}:amd64-latest \
${IMAGE}:arm32v7-${META_TAG} \
${IMAGE}:arm32v7-latest \
${IMAGE}:arm64v8-${META_TAG} \
${IMAGE}:arm64v8-latest \
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} '''
}
}
}
@@ -586,6 +634,18 @@ pipeline {
}
}
}
// If this is a Pull request send the CI link as a comment on it
stage('Pull Request Comment') {
when {
not {environment name: 'CHANGE_ID', value: ''}
environment name: 'CI', value: 'true'
environment name: 'EXIT_STATUS', value: ''
}
steps {
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/issues/${PULL_REQUEST}/comments \
-d '{"body": "I am a bot, here are the test results for this PR: \\n'${CI_URL}' \\n'${SHELLCHECK_URL}'"}' '''
}
}
}
/* ######################
Send status to Discord
@@ -598,12 +658,12 @@ pipeline {
}
else if (currentBuild.currentResult == "SUCCESS"){
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_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} '''
}
else {
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_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} '''
}
}

View File

@@ -12,13 +12,6 @@ Find us at:
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team.
* [IRC](https://irc.linuxserver.io) - on freenode at `#linuxserver.io`. Our primary support channel is Discord.
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
* [Podcast](https://anchor.fm/linuxserverio) - on hiatus. Coming back soon (late 2018).
# PSA: Changes are happening
From August 2018 onwards, Linuxserver are in the midst of switching to a new CI platform which will enable us to build and release multiple architectures under a single repo. To this end, existing images for `arm64` and `armhf` builds are being deprecated. They are replaced by a manifest file in each container which automatically pulls the correct image for your architecture. You'll also be able to pull based on a specific architecture tag.
TLDR: Multi-arch support is changing from multiple repos to one repo per container image.
# [linuxserver/tvheadend](https://github.com/linuxserver/docker-tvheadend)
[![](https://img.shields.io/discord/354974912613449730.svg?logo=discord&label=LSIO%20Discord&style=flat-square)](https://discord.gg/YWrKVTn)
@@ -38,7 +31,7 @@ Multiple EPG sources are supported (over-the-air DVB and ATSC including OpenTV D
## 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).
Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
Simply pulling `linuxserver/tvheadend` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
@@ -48,7 +41,7 @@ The architectures supported by this image are:
| :----: | --- |
| x86-64 | amd64-latest |
| arm64 | arm64v8-latest |
| armhf | arm32v6-latest |
| armhf | arm32v7-latest |
## Version Tags
@@ -70,8 +63,8 @@ Here are some example snippets to help you get started creating a container.
```
docker create \
--name=tvheadend \
-e PUID=1001 \
-e PGID=1001 \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-e RUN_OPTS=<run options here> `#optional` \
-p 9981:9981 \
@@ -101,8 +94,8 @@ services:
image: linuxserver/tvheadend
container_name: tvheadend
environment:
- PUID=1001
- PGID=1001
- PUID=1000
- PGID=1000
- TZ=Europe/London
- RUN_OPTS=<run options here> #optional
volumes:
@@ -114,7 +107,6 @@ services:
devices:
- /dev/dri:/dev/dri #optional
- /dev/drb:/dev/dvb #optional
mem_limit: 4096m
restart: unless-stopped
```
@@ -126,8 +118,8 @@ Container images are configured using parameters passed at runtime (such as thos
| :----: | --- |
| `-p 9981` | WebUI |
| `-p 9982` | HTSP server port. |
| `-e PUID=1001` | for UserID - see below for explanation |
| `-e PGID=1001` | for GroupID - see below for explanation |
| `-e PUID=1000` | for UserID - 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 RUN_OPTS=<run options here>` | Optionally specify additional arguments to be passed. See Additional runtime parameters. |
| `-v /config` | Where TVHeadend show store it's config files. |
@@ -141,11 +133,11 @@ When using volumes (`-v` flags) permissions issues can arise between the host OS
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
In this instance `PUID=1001` and `PGID=1001`, to find yours use `id user` as below:
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below:
```
$ id username
uid=1001(dockeruser) gid=1001(dockergroup) groups=1001(dockergroup)
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
```
@@ -235,13 +227,30 @@ Below are the instructions for updating containers:
* Start the new container: `docker start tvheadend`
* You can also remove the old dangling images: `docker image prune`
### Via Taisun auto-updater (especially useful if you don't remember the original parameters)
* Pull the latest image at its tag and replace it with the same env variables in one shot:
```
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock taisun/updater \
--oneshot tvheadend
```
* You can also remove the old dangling images: `docker image prune`
### Via Docker Compose
* Update the image: `docker-compose pull linuxserver/tvheadend`
* Let compose update containers as necessary: `docker-compose up -d`
* Update all images: `docker-compose pull`
* or update a single image: `docker-compose pull tvheadend`
* Let compose update all containers as necessary: `docker-compose up -d`
* or update a single container: `docker-compose up -d tvheadend`
* You can also remove the old dangling images: `docker image prune`
## Versions
* **27.03.19:** - Rebase to Alpine 3.9, fix init logic to only chown once.
* **23.03.19:** - Switching to new Base images, shift to arm32v7 tag.
* **01.03.19:** - Bump xmltv to 0.6.1.
* **28.02.19:** - add perl-lwp-useragent-determined.
* **17.02.19:** - Bump xmltv to 5.70, ensure version tagging works by cloning tvheadend.
* **14.02.19:** - Add picons path to config.
* **15.01.19:** - Add pipeline logic and multi arch.
* **12.09.18:** - Rebase to alpine 3.8 and use buildstage type build.
* **21.04.18:** - Add JSON::XS Perl package for grab_tv_huro.

View File

@@ -1,216 +1,218 @@
musl musl-1.1.19-r10
busybox busybox-1.28.4-r3
alpine-baselayout alpine-baselayout-3.1.0-r0
alpine-keys alpine-keys-2.1-r1
libressl2.7-libcrypto libressl2.7-libcrypto-2.7.4-r0
libressl2.7-libssl libressl2.7-libssl-2.7.4-r0
libressl2.7-libtls libressl2.7-libtls-2.7.4-r0
ssl_client ssl_client-1.28.4-r3
zlib zlib-1.2.11-r1
apk-tools apk-tools-2.10.1-r0
scanelf scanelf-1.2.3-r0
musl-utils musl-utils-1.1.19-r10
libc-utils libc-utils-0.7.1-r0
xz-libs xz-libs-5.2.4-r0
xz xz-5.2.4-r0
ca-certificates ca-certificates-20171114-r3
ncurses-terminfo-base ncurses-terminfo-base-6.1_p20180818-r1
ncurses-terminfo ncurses-terminfo-6.1_p20180818-r1
ncurses-libs ncurses-libs-6.1_p20180818-r1
readline readline-7.0.003-r0
bash bash-4.4.19-r1
libattr libattr-2.4.47-r7
libacl libacl-2.2.52-r5
coreutils coreutils-8.29-r2
linux-pam linux-pam-1.3.0-r0
shadow shadow-4.5-r0
tzdata tzdata-2018f-r0
bsd-compat-headers bsd-compat-headers-0.7.1-r0
bzip2 bzip2-1.0.6-r6
nghttp2-libs nghttp2-libs-1.32.0-r0
libssh2 libssh2-1.8.0-r3
libcurl libcurl-7.61.1-r1
curl curl-7.61.1-r1
sdl2 sdl2-2.0.8-r1
libxau libxau-1.0.8-r2
libbsd libbsd-0.8.6-r2
libxdmcp libxdmcp-1.1.2-r4
libxcb libxcb-1.13-r2
libx11 libx11-1.6.6-r0
alsa-lib alsa-lib-1.1.6-r0
expat expat-2.2.5-r0
libbz2 libbz2-1.0.6-r6
libpng libpng-1.6.34-r1
freetype freetype-2.9.1-r1
fontconfig fontconfig-2.12.6-r1
fribidi fribidi-1.0.2-r0
libass libass-0.13.7-r1
gmp gmp-6.1.2-r1
nettle nettle-3.4-r1
libffi libffi-3.2.1-r4
p11-kit p11-kit-0.23.10-r0
libtasn1 libtasn1-4.13-r0
libunistring libunistring-0.9.7-r0
gnutls gnutls-3.6.2-r0
lame lame-3.100-r0
opus opus-1.2.1-r1
librtmp librtmp-2.4_git20160909-r5
libogg libogg-1.3.3-r2
libtheora libtheora-1.1.1-r13
libjpeg-turbo libjpeg-turbo-1.5.3-r4
v4l-utils-libs v4l-utils-libs-1.12.6-r1
libxext libxext-1.3.3-r2
libxfixes libxfixes-5.0.3-r1
libpciaccess libpciaccess-0.13.5-r1
libdrm libdrm-2.4.92-r0
libva libva-2.1.0-r1
libvdpau libvdpau-1.1.1-r1
libvorbis libvorbis-1.3.6-r2
libvpx libvpx-1.6.1-r0
x264-libs x264-libs-20180304-r1
libgcc libgcc-6.4.0-r9
libstdc++ libstdc++-6.4.0-r9
x265 x265-2.7-r1
xvidcore xvidcore-1.3.4-r1
ffmpeg-libs ffmpeg-libs-3.4.4-r1
ffmpeg ffmpeg-3.4.4-r1
gzip gzip-1.9-r0
libcrypto1.0 libcrypto1.0-1.0.2q-r0
libdvbcsa libdvbcsa-1.1.0-r1
libhdhomerun-libs libhdhomerun-libs-20161117-r1
libssl1.0 libssl1.0-1.0.2q-r0
libva-intel-driver libva-intel-driver-2.1.0-r0
libxml2 libxml2-2.9.8-r1
libgpg-error libgpg-error-1.30-r0
libgcrypt libgcrypt-1.8.3-r0
libxslt libxslt-1.1.32-r0
linux-headers linux-headers-4.4.6-r2
openssl openssl-1.0.2q-r0
pcre2 pcre2-10.31-r0
perl perl-5.26.3-r0
perl-archive-zip perl-archive-zip-1.60-r0
perl-boolean perl-boolean-0.46-r0
perl-capture-tiny perl-capture-tiny-0.48-r0
perl-html-tagset perl-html-tagset-3.20-r1
perl-html-parser perl-html-parser-3.72-r2
perl-cgi perl-cgi-4.38-r0
perl-compress-raw-zlib perl-compress-raw-zlib-2.081-r0
perl-data-dumper perl-data-dumper-2.161-r2
perl-yaml-syck perl-yaml-syck-1.30-r1
perl-date-manip perl-date-manip-6.70-r0
perl-cpan-meta-check perl-cpan-meta-check-0.014-r1
perl-exporter-tiny perl-exporter-tiny-1.000000-r0
perl-list-moreutils perl-list-moreutils-0.419-r1
perl-module-runtime perl-module-runtime-0.016-r0
perl-dist-checkconflicts perl-dist-checkconflicts-0.11-r1
perl-class-inspector perl-class-inspector-1.28-r1
perl-file-sharedir perl-file-sharedir-1.106-r0
perl-file-sharedir-install perl-file-sharedir-install-0.11-r0
perl-sub-exporter-progressive perl-sub-exporter-progressive-0.001013-r0
perl-devel-symdump perl-devel-symdump-2.18-r0
perl-test-pod perl-test-pod-1.52-r0
perl-pod-coverage perl-pod-coverage-0.23-r0
perl-try-tiny perl-try-tiny-0.30-r0
perl-test-taint perl-test-taint-1.06-r5
perl-module-implementation perl-module-implementation-0.09-r1
perl-variable-magic perl-variable-magic-0.62-r0
perl-b-hooks-endofscope perl-b-hooks-endofscope-0.24-r0
perl-package-stash-xs perl-package-stash-xs-0.28-r4
perl-package-stash perl-package-stash-0.37-r0
perl-sub-name perl-sub-name-0.21-r1
perl-sub-identify perl-sub-identify-0.14-r1
perl-namespace-clean perl-namespace-clean-0.27-r0
perl-namespace-autoclean perl-namespace-autoclean-0.28-r0
perl-params-validate perl-params-validate-1.28-r0
perl-test-needs perl-test-needs-0.002005-r1
perl-devel-stacktrace perl-devel-stacktrace-2.02-r0
perl-eval-closure perl-eval-closure-0.14-r0
perl-mro-compat perl-mro-compat-0.13-r0
perl-role-tiny perl-role-tiny-2.000005-r0
perl-test-fatal perl-test-fatal-0.014-r1
perl-sub-quote perl-sub-quote-2.004000-r0
perl-specio perl-specio-0.42-r0
perl-test-simple perl-test-simple-1.302136-r0
perl-importer perl-importer-0.025-r0
perl-term-table perl-term-table-0.012-r0
perl-sub-info perl-sub-info-0.002-r0
perl-scope-guard perl-scope-guard-0.21-r0
perl-module-pluggable perl-module-pluggable-5.2-r0
perl-test2-suite perl-test2-suite-0.000114-r0
perl-test-without-module perl-test-without-module-0.20-r0
perl-class-data-inheritable perl-class-data-inheritable-0.08-r0
perl-exception-class perl-exception-class-1.44-r0
perl-ipc-run3 perl-ipc-run3-0.048-r0
perl-test2-plugin-nowarnings perl-test2-plugin-nowarnings-0.06-r0
perl-params-validationcompiler perl-params-validationcompiler-0.24-r1
perl-scalar-list-utils perl-scalar-list-utils-1.50-r0
perl-test-requires perl-test-requires-0.10-r0
perl-test-warnings perl-test-warnings-0.026-r0
perl-datetime-locale perl-datetime-locale-1.18-r0
perl-class-singleton perl-class-singleton-1.5-r0
perl-datetime-timezone perl-datetime-timezone-2.19-r0
perl-datetime perl-datetime-1.44-r0
perl-sub-install perl-sub-install-0.928-r1
perl-params-util perl-params-util-1.07-r5
perl-package-deprecationmanager perl-package-deprecationmanager-0.17-r0
perl-datetime-format-strptime perl-datetime-format-strptime-1.74-r0
perl-dbi perl-dbi-1.641-r0
perl-dbd-sqlite perl-dbd-sqlite-1.58-r0
perl-digest-sha1 perl-digest-sha1-2.13-r9
perl-doc perl-doc-5.26.3-r0
perl-file-slurp perl-file-slurp-9999.19-r0
perl-file-temp perl-file-temp-0.2304-r0
perl-file-which perl-file-which-1.22-r0
perl-getopt-long perl-getopt-long-2.50-r0
perl-html-tree perl-html-tree-5.07-r0
perl-http-date perl-http-date-6.02-r1
perl-lwp-mediatypes perl-lwp-mediatypes-6.02-r1
perl-encode-locale perl-encode-locale-1.05-r1
perl-uri perl-uri-1.72-r0
perl-io-html perl-io-html-1.001-r1
perl-http-message perl-http-message-6.15-r0
perl-http-cookies perl-http-cookies-6.04-r0
perl-io perl-io-1.25-r4
perl-compress-raw-bzip2 perl-compress-raw-bzip2-2.081-r0
perl-io-compress perl-io-compress-2.081-r0
libidn libidn-1.34-r1
perl-net-libidn perl-net-libidn-0.12-r4
perl-net-ssleay perl-net-ssleay-1.85-r1
perl-io-socket-ssl perl-io-socket-ssl-2.048-r1
perl-io-stringy perl-io-stringy-2.111-r1
perl-json perl-json-2.97000-r0
perl-net-http perl-net-http-6.09-r1
perl-http-daemon perl-http-daemon-6.01-r1
perl-file-listing perl-file-listing-6.04-r1
perl-www-robotrules perl-www-robotrules-6.02-r1
perl-http-negotiate perl-http-negotiate-6.01-r1
perl-libwww perl-libwww-6.34-r0
perl-lingua-en-numbers-ordinate perl-lingua-en-numbers-ordinate-1.04-r1
perl-lingua-preferred perl-lingua-preferred-0.2.4-r1
perl-module-build perl-module-build-0.4224-r0
perl-parse-recdescent perl-parse-recdescent-1.967015-r1
perl-path-class perl-path-class-0.37-r0
perl-class-methodmaker perl-class-methodmaker-2.24-r2
perl-term-readkey perl-term-readkey-2.37-r1
perl-sub-uplevel perl-sub-uplevel-0.2800-r0
perl-test-exception perl-test-exception-0.43-r0
perl-term-progressbar perl-term-progressbar-2.22-r0
perl-timedate perl-timedate-2.30-r1
perl-unicode-string perl-unicode-string-2.09-r6
perl-xml-sax-base perl-xml-sax-base-1.09-r0
perl-xml-namespacesupport perl-xml-namespacesupport-1.12-r0
perl-xml-sax perl-xml-sax-0.99-r2
perl-xml-libxml perl-xml-libxml-2.0132-r1
perl-xml-libxslt perl-xml-libxslt-1.96-r0
perl-xml-parser perl-xml-parser-2.44-r4
perl-xml-treepp perl-xml-treepp-0.43-r1
perl-xml-twig perl-xml-twig-3.52-r1
perl-xml-writer perl-xml-writer-0.625-r2
gdbm gdbm-1.13-r1
sqlite-libs sqlite-libs-3.25.3-r0
python2 python2-2.7.15-r1
tar tar-1.31-r0
uriparser uriparser-0.8.5-r0
wget wget-1.20.1-r0
x264 x264-20180304-r1
gnu-libiconv gnu-libiconv-1.15-r2
alpine-baselayout-3.1.0-r3
alpine-keys-2.1-r1
alsa-lib-1.1.8-r0
apk-tools-2.10.3-r1
bash-4.4.19-r1
bsd-compat-headers-0.7.1-r0
busybox-1.29.3-r10
bzip2-1.0.6-r6
ca-certificates-20190108-r0
ca-certificates-cacert-20190108-r0
coreutils-8.30-r0
curl-7.64.0-r1
expat-2.2.6-r0
ffmpeg-4.0.2-r0
ffmpeg-libs-4.0.2-r0
fontconfig-2.13.1-r0
freetype-2.9.1-r2
fribidi-1.0.5-r0
gdbm-1.13-r1
gmp-6.1.2-r1
gnu-libiconv-1.15-r2
gnutls-3.6.4-r0
gzip-1.10-r0
lame-3.100-r0
libacl-2.2.52-r5
libass-0.14.0-r0
libattr-2.4.47-r7
libbsd-0.8.6-r2
libbz2-1.0.6-r6
libc-utils-0.7.1-r0
libcrypto1.1-1.1.1b-r1
libcurl-7.64.0-r1
libdrm-2.4.96-r0
libdvbcsa-1.1.0-r1
libffi-3.2.1-r6
libgcc-8.2.0-r2
libgcrypt-1.8.4-r0
libgpg-error-1.33-r0
libhdhomerun-libs-20161117-r1
libidn-1.35-r0
libjpeg-turbo-1.5.3-r4
libogg-1.3.3-r2
libpciaccess-0.14-r0
libpng-1.6.35-r0
libssh2-1.8.2-r0
libssl1.1-1.1.1b-r1
libstdc++-8.2.0-r2
libtasn1-4.13-r0
libtheora-1.1.1-r13
libtls-standalone-2.7.4-r6
libunistring-0.9.10-r0
libuuid-2.33-r0
libva-2.2.0-r0
libva-intel-driver-2.2.0-r0
libvdpau-1.1.1-r2
libvorbis-1.3.6-r2
libvpx-1.6.1-r1
libx11-1.6.7-r0
libxau-1.0.8-r3
libxcb-1.13-r2
libxdmcp-1.1.2-r5
libxext-1.3.3-r3
libxfixes-5.0.3-r2
libxml2-2.9.9-r1
libxslt-1.1.32-r0
linux-headers-4.18.13-r1
linux-pam-1.3.0-r0
musl-1.1.20-r4
musl-utils-1.1.20-r4
ncurses-libs-6.1_p20190105-r0
ncurses-terminfo-6.1_p20190105-r0
ncurses-terminfo-base-6.1_p20190105-r0
nettle-3.4.1-r0
nghttp2-libs-1.35.1-r0
openssl-1.1.1b-r1
opus-1.3-r0
p11-kit-0.23.14-r0
pcre2-10.32-r1
perl-5.26.3-r0
perl-archive-zip-1.64-r0
perl-b-hooks-endofscope-0.24-r0
perl-boolean-0.46-r0
perl-capture-tiny-0.48-r0
perl-cgi-4.40-r0
perl-class-data-inheritable-0.08-r0
perl-class-inspector-1.32-r0
perl-class-methodmaker-2.24-r2
perl-class-singleton-1.5-r0
perl-compress-raw-bzip2-2.084-r0
perl-compress-raw-zlib-2.084-r0
perl-cpan-meta-check-0.014-r1
perl-data-dumper-2.173-r0
perl-date-manip-6.75-r1
perl-datetime-1.44-r0
perl-datetime-format-strptime-1.74-r0
perl-datetime-locale-1.22-r0
perl-datetime-timezone-2.19-r0
perl-dbd-sqlite-1.62-r0
perl-dbi-1.642-r0
perl-devel-stacktrace-2.03-r0
perl-devel-symdump-2.18-r0
perl-digest-sha1-2.13-r9
perl-dist-checkconflicts-0.11-r1
perl-doc-5.26.3-r0
perl-encode-locale-1.05-r1
perl-eval-closure-0.14-r0
perl-exception-class-1.44-r0
perl-exporter-tiny-1.002001-r0
perl-file-listing-6.04-r1
perl-file-sharedir-1.116-r0
perl-file-sharedir-install-0.13-r0
perl-file-slurp-9999.25-r0
perl-file-temp-0.2308-r0
perl-file-which-1.22-r0
perl-getopt-long-2.50-r0
perl-html-parser-3.72-r2
perl-html-tagset-3.20-r1
perl-html-tree-5.07-r0
perl-http-cookies-6.04-r0
perl-http-daemon-6.01-r1
perl-http-date-6.02-r1
perl-http-message-6.18-r0
perl-http-negotiate-6.01-r1
perl-importer-0.025-r0
perl-io-1.25-r4
perl-io-compress-2.084-r0
perl-io-html-1.001-r1
perl-io-socket-ssl-2.060-r0
perl-io-stringy-2.111-r1
perl-ipc-run3-0.048-r0
perl-json-2.97000-r0
perl-libwww-6.36-r0
perl-lingua-en-numbers-ordinate-1.04-r1
perl-lingua-preferred-0.2.4-r1
perl-list-moreutils-0.419-r1
perl-lwp-mediatypes-6.02-r1
perl-lwp-useragent-determined-1.07-r0
perl-module-build-0.4224-r0
perl-module-implementation-0.09-r1
perl-module-pluggable-5.2-r0
perl-module-runtime-0.016-r1
perl-mro-compat-0.13-r0
perl-namespace-autoclean-0.28-r0
perl-namespace-clean-0.27-r0
perl-net-http-6.09-r1
perl-net-libidn-0.12-r5
perl-net-ssleay-1.85-r4
perl-package-deprecationmanager-0.17-r0
perl-package-stash-0.37-r0
perl-package-stash-xs-0.28-r4
perl-params-classify-0.015-r0
perl-params-util-1.07-r5
perl-params-validate-1.29-r0
perl-params-validationcompiler-0.27-r0
perl-parse-recdescent-1.967015-r1
perl-path-class-0.37-r0
perl-pod-coverage-0.23-r0
perl-role-tiny-2.000006-r0
perl-scalar-list-utils-1.50-r0
perl-scope-guard-0.21-r0
perl-specio-0.42-r0
perl-sub-exporter-progressive-0.001013-r0
perl-sub-identify-0.14-r1
perl-sub-info-0.002-r0
perl-sub-install-0.928-r1
perl-sub-name-0.21-r1
perl-sub-quote-2.004000-r0
perl-sub-uplevel-0.2800-r0
perl-term-progressbar-2.22-r0
perl-term-readkey-2.37-r1
perl-term-table-0.012-r0
perl-test-exception-0.43-r0
perl-test-fatal-0.014-r1
perl-test-needs-0.002005-r1
perl-test-pod-1.52-r0
perl-test-requires-0.10-r0
perl-test-simple-1.302141-r0
perl-test-taint-1.06-r5
perl-test-warnings-0.026-r0
perl-test-without-module-0.20-r0
perl-test2-plugin-nowarnings-0.06-r0
perl-test2-suite-0.000114-r0
perl-timedate-2.30-r1
perl-try-tiny-0.30-r0
perl-unicode-string-2.09-r6
perl-uri-1.74-r0
perl-variable-magic-0.62-r0
perl-www-robotrules-6.02-r1
perl-xml-libxml-2.0132-r1
perl-xml-libxslt-1.96-r0
perl-xml-namespacesupport-1.12-r0
perl-xml-parser-2.44-r4
perl-xml-sax-0.99-r2
perl-xml-sax-base-1.09-r0
perl-xml-treepp-0.43-r1
perl-xml-twig-3.52-r1
perl-xml-writer-0.625-r2
perl-yaml-syck-1.31-r0
python2-2.7.15-r3
readline-7.0.003-r1
scanelf-1.2.3-r0
sdl2-2.0.9-r0
shadow-4.5-r0
sqlite-libs-3.26.0-r3
ssl_client-1.29.3-r10
tar-1.32-r0
tzdata-2018i-r0
uriparser-0.9.1-r0
v4l-utils-libs-1.16.2-r0
wget-1.20.1-r0
x264-20180304-r1
x264-libs-20180304-r1
x265-2.8-r1
x265-libs-2.8-r1
xvidcore-1.3.4-r1
xz-5.2.4-r0
xz-libs-5.2.4-r0
zlib-1.2.11-r1

View File

@@ -15,7 +15,7 @@ project_blurb_optional_extras_enabled: false
available_architectures:
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- { arch: "{{ arch_armhf }}", tag: "arm32v6-latest"}
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
# development version
# development version
@@ -125,6 +125,12 @@ app_setup_block: |
# changelog
changelogs:
- { date: "27.03.19:", desc: "Rebase to Alpine 3.9, fix init logic to only chown once." }
- { date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag." }
- { date: "01.03.19:", desc: "Bump xmltv to 0.6.1." }
- { date: "28.02.19:", desc: "add perl-lwp-useragent-determined." }
- { date: "17.02.19:", desc: "Bump xmltv to 5.70, ensure version tagging works by cloning tvheadend." }
- { date: "14.02.19:", desc: "Add picons path to config." }
- { date: "15.01.19:", desc: "Add pipeline logic and multi arch." }
- { date: "12.09.18:", desc: "Rebase to alpine 3.8 and use buildstage type build." }
- { date: "21.04.18:", desc: "Add JSON::XS Perl package for grab_tv_huro." }

7
root/defaults/config Normal file
View File

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

View File

@@ -9,8 +9,33 @@ mkdir -p \
(mkdir -p /config/dvr/config && cp /defaults/7a5edfbe189851e5b1d1df19c93962f0 /config/dvr/config/7a5edfbe189851e5b1d1df19c93962f0)
[[ ! -e /config/comskip/comskip.ini ]] && \
cp /defaults/comskip.ini.org /config/comskip/comskip.ini
[[ ! -e /config/config ]] && \
(cp /defaults/config /config/config)
# permissions
chown -R abc:abc \
/config \
/picons
# function to randomly sample 10 files for their owner and only chown if not abc
chowner () {
files=(${1}/*)
for i in {1..10}; do
user=$(stat -c '%U' $(printf "%s\n" "${files[RANDOM % ${#files[@]}]}"))
if [ "${user}" != "abc" ]; then
chown -R abc:abc ${1}
break
fi
done
}
# permissions
echo "Setting permissions"
abc_dirs=( \
/config \
/picons \
)
for i in "${abc_dirs[@]}"; do
if [ "$(ls -A ${i})" ]; then
chowner ${i}
else
chown -R abc:abc ${i}
fi
done