Quellcode durchsuchen

Initial j0nny test branch commit

tobbenb vor 6 Jahren
Ursprung
Commit
365dd117d3
7 geänderte Dateien mit 440 neuen und 986 gelöschten Zeilen
  1. 130 290
      Dockerfile
  2. 132 287
      Dockerfile.aarch64
  3. 132 287
      Dockerfile.armhf
  4. 40 40
      Jenkinsfile
  5. 2 40
      README.md
  6. 3 3
      jenkins-vars.yml
  7. 1 39
      readme-vars.yml

+ 130 - 290
Dockerfile

@@ -1,339 +1,179 @@
-FROM lsiobase/alpine:3.12 as buildstage
-############## build stage ##############
+FROM lsiobase/ubuntu:bionic
 
-# package versions
-ARG ARGTABLE_VER="2.13"
-ARG XMLTV_VER="v0.6.1"
+# set version label
+ARG BUILD_DATE
+ARG VERSION
+LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
+LABEL maintainer="saarg"
 
-# environment settings
-ARG TZ="Europe/Oslo"
+# package version
+ARG TVH_VER="master"
 ARG TVHEADEND_COMMIT
-ENV HOME="/config"
 
-# copy patches
-COPY patches/ /tmp/patches/
+# Environment settings
+ENV HOME="/config"
+ARG DEBIAN_FRONTEND="noninteractive"
 
+# add dependencies
 RUN \
- echo "**** install build packages ****" && \
- apk add --no-cache \
+ apt-get update && \
+ apt-get upgrade -qy && \
+ apt-get install -qy --no-install-recommends \
 	autoconf \
 	automake \
-	bsd-compat-headers \
+	binutils \
+	build-essential \
 	bzip2 \
 	cmake \
-	curl \
-	ffmpeg-dev \
-	file \
-	findutils \
-	g++ \
-	gcc \
-	gettext-dev \
+	dvb-apps \
+	gettext \
 	git \
-	gnu-libiconv-dev \
 	gzip \
 	jq \
-	libcurl \
+	libavahi-client-dev \
 	libdvbcsa-dev \
-	libgcrypt-dev \
 	libhdhomerun-dev \
+	libiconv-hook-dev \
+	libssl-dev \
 	libtool \
 	libva-dev \
-	libvpx-dev \
-	libxml2-dev \
-	libxslt-dev \
-	linux-headers \
-	make \
-	openssl-dev \
-	opus-dev \
-	patch \
-	pcre2-dev \
-	perl-archive-zip \
-	perl-boolean \
-	perl-capture-tiny \
-	perl-cgi \
-	perl-compress-raw-zlib \
-	perl-data-dumper \
-	perl-date-manip \
-	perl-datetime \
-	perl-datetime-format-strptime \
-	perl-datetime-timezone \
-	perl-dbd-sqlite \
-	perl-dbi \
-	perl-dev \
-	perl-digest-sha1 \
-	perl-doc \
-	perl-file-slurp \
-	perl-file-temp \
-	perl-file-which \
-	perl-getopt-long \
-	perl-html-parser \
-	perl-html-tree \
-	perl-http-cookies \
-	perl-io \
-	perl-io-compress \
-	perl-io-html \
-	perl-io-socket-ssl \
-	perl-io-stringy \
-	perl-json \
-	perl-json-xs \
-	perl-libwww \
-	perl-lingua-en-numbers-ordinate \
-	perl-lingua-preferred \
-	perl-list-moreutils \
-	perl-lwp-useragent-determined \
-	perl-module-build \
-	perl-module-pluggable \
-	perl-net-ssleay \
-	perl-parse-recdescent \
-	perl-path-class \
-	perl-scalar-list-utils \
-	perl-term-progressbar \
-	perl-term-readkey \
-	perl-test-exception \
-	perl-test-requires \
-	perl-timedate \
-	perl-try-tiny \
-	perl-unicode-string \
-	perl-xml-libxml \
-	perl-xml-libxslt \
-	perl-xml-parser \
-	perl-xml-sax \
-	perl-xml-treepp \
-	perl-xml-twig \
-	perl-xml-writer \
-	pkgconf \
-	pngquant \
-	python2 \
-	sdl-dev \
-	tar \
-	uriparser-dev \
+	pkg-config \
+	python \
+	python3 \
+	python3-requests \
 	wget \
-	x264-dev \
-	x265-dev \
-	zlib-dev
-
-RUN \
- echo "**** remove musl iconv.h and replace with gnu-iconv.h ****" && \
- rm -rf /usr/include/iconv.h && \
- cp /usr/include/gnu-libiconv/iconv.h /usr/include/iconv.h
-
-RUN \
- echo "**** install perl modules for xmltv ****" && \
- curl -L https://cpanmin.us | perl - App::cpanminus && \
- cpanm --installdeps /tmp/patches
-
-RUN \
- echo "**** compile XMLTV ****" && \
- git clone https://github.com/XMLTV/xmltv.git /tmp/xmltv && \
- cd /tmp/xmltv && \
- git checkout ${XMLTV_VER} && \
- echo "**** Fix test for xmltv alpine 3.11 ****" && \
- patch -p1 -i /tmp/patches/test_tv_imdb.t.patch && \
- echo "**** Perl 5.26 fixes for XMTLV ****" && \
- sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_latex && \
- sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_text && \
- sed "s/\(lib\/set_share_dir.pl';\)/.\/\1/" -i grab/it/tv_grab_it.PL && \
- sed "s/\(filter\/Grep.pm';\)/.\/\1/" -i filter/tv_grep.PL && \
- sed "s/\(lib\/XMLTV.pm.in';\)/.\/\1/" -i lib/XMLTV.pm.PL && \
- sed "s/\(lib\/Ask\/Term.pm';\)/.\/\1/" -i Makefile.PL && \
- PERL5LIB=`pwd` && \
- echo -e "yes" | perl Makefile.PL PREFIX=/usr/ INSTALLDIRS=vendor && \
- make -j 2 && \
- make test && \
- make DESTDIR=/tmp/xmltv-build install
-
-RUN \
- echo "**** compile tvheadend ****" && \
+	zlib1g-dev && \
+ echo "**** build tvheadend ****" && \
+ mkdir -p \
+	/tmp/patches && \
  if [ -z ${TVHEADEND_COMMIT+x} ]; then \
-	TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/master \
+	TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/${TVH_VER} \
 	| jq -r '. | .sha'); \
  fi && \
- mkdir -p \
-	/tmp/tvheadend && \
  git clone https://github.com/tvheadend/tvheadend.git /tmp/tvheadend && \
  cd /tmp/tvheadend && \
  git checkout ${TVHEADEND_COMMIT} && \
+ curl -o \
+ /tmp/patches/1348.patch -L \
+	"https://patch-diff.githubusercontent.com/raw/tvheadend/tvheadend/pull/1348.patch" && \
+ curl -o \
+ /tmp/patches/1273.patch -L \
+	"https://patch-diff.githubusercontent.com/raw/tvheadend/tvheadend/pull/1273.patch" && \
+ patch -p1 -i /tmp/patches/1348.patch && \
+ patch -p1 -i /tmp/patches/1273.patch && \
  ./configure \
 	`#Encoding` \
-	--disable-ffmpeg_static \
-	--disable-libfdkaac_static \
-	--disable-libtheora_static \
-	--disable-libopus_static \
-	--disable-libvorbis_static \
-	--disable-libvpx_static \
-	--disable-libx264_static \
-	--disable-libx265_static \
-	--disable-libfdkaac \
-	--enable-libopus \
-	--enable-libvorbis \
-	--enable-libvpx \
-	--enable-libx264 \
-	--enable-libx265 \
+	--enable-ffmpeg_static \
+	--disable-libav \
 	\
 	`#Options` \
-	--disable-avahi \
-	--disable-dbus_1 \
 	--disable-bintray_cache \
-	--disable-hdhomerun_static \
+	--enable-hdhomerun_static \
 	--enable-hdhomerun_client \
-	--enable-libav \
 	--enable-pngquant \
 	--enable-trace \
-	--enable-vaapi \
-	--infodir=/usr/share/info \
-	--localstatedir=/var \
-	--mandir=/usr/share/man \
-	--prefix=/usr \
-	--sysconfdir=/config && \
- make -j 2 && \
- make DESTDIR=/tmp/tvheadend-build install
-
-RUN \
- echo "**** compile argtable2 ****" && \
- ARGTABLE_VER1="${ARGTABLE_VER//./-}" && \
- mkdir -p \
-	/tmp/argtable && \
- curl -o \
- /tmp/argtable-src.tar.gz -L \
-	"https://sourceforge.net/projects/argtable/files/argtable/argtable-${ARGTABLE_VER}/argtable${ARGTABLE_VER1}.tar.gz" && \
- tar xf \
- /tmp/argtable-src.tar.gz -C \
-	/tmp/argtable --strip-components=1 && \
- cp /tmp/patches/config.* /tmp/argtable && \
- cd /tmp/argtable && \
- ./configure \
-	--prefix=/usr && \
- make -j 2 && \
- make check && \
- make DESTDIR=/tmp/argtable-build install && \
- echo "**** copy to /usr for comskip dependency ****" && \
- cp -pr /tmp/argtable-build/usr/* /usr/
-
-RUN \
- echo "***** compile comskip ****" && \
+	--enable-vaapi && \
+ make && \
+ make install && \
+ echo "**** install dependencies for comskip ****" && \
+ apt-get install -qy --no-install-recommends \
+	libargtable2-dev \
+	libavformat-dev \
+	libbz2-dev \
+	libdca-dev \
+	libfaac-dev \
+	libfdk-aac-dev \
+	libmp3lame-dev \
+	libopencore-amrnb-dev \
+	libopencore-amrwb-dev \
+	libopus-dev \
+	libsdl1.2-dev \
+	libsoxr-dev \
+	libspeex-dev \
+	libva-dev \
+	libxvidcore-dev \
+	libvo-aacenc-dev \
+	libvorbisenc2 \
+	libvorbis-dev \
+	libvpx-dev \
+	libx264-dev \
+	libx265-dev && \
+ echo "**** build comskip ****" && \
  git clone git://github.com/erikkaashoek/Comskip /tmp/comskip && \
  cd /tmp/comskip && \
  ./autogen.sh && \
  ./configure \
 	--bindir=/usr/bin \
 	--sysconfdir=/config/comskip && \
- make -j 2 && \
- make DESTDIR=/tmp/comskip-build install
-
-############## runtime stage ##############
-FROM lsiobase/alpine:3.12
-
-# set version label
-ARG BUILD_DATE
-ARG VERSION
-LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
-LABEL maintainer="saarg"
-
-# environment settings
-ENV HOME="/config"
-
-RUN \
- echo "**** install runtime packages ****" && \
- apk add --no-cache \
-	bsd-compat-headers \
-	bzip2 \
-	curl \
-	ffmpeg \
-	ffmpeg-libs \
-	gnu-libiconv \
-	gzip \
-	libcrypto1.1 \
-	libcurl \
-	libdvbcsa \
-	libhdhomerun-libs \
-	libssl1.1 \
-	libva \
-	libva-intel-driver \
-	mesa-dri-ati \
-	libvpx \
-	libxml2 \
-	libxslt \
-	linux-headers \
-	openssl \
-	opus \
-	pcre2 \
-	perl \
-	perl-archive-zip \
-	perl-boolean \
-	perl-capture-tiny \
-	perl-cgi \
-	perl-compress-raw-zlib \
-	perl-data-dumper \
-	perl-date-manip \
-	perl-datetime \
-	perl-datetime-format-strptime \
-	perl-datetime-timezone \
-	perl-dbd-sqlite \
-	perl-dbi \
-	perl-digest-sha1 \
-	perl-doc \
-	perl-file-slurp \
-	perl-file-temp \
-	perl-file-which \
-	perl-getopt-long \
-	perl-html-parser \
-	perl-html-tree \
-	perl-http-cookies \
-	perl-io \
-	perl-io-compress \
-	perl-io-html \
-	perl-io-socket-ssl \
-	perl-io-stringy \
-	perl-json \
-	perl-json-xs \
-	perl-libwww \
-	perl-lingua-en-numbers-ordinate \
-	perl-lingua-preferred \
-	perl-list-moreutils \
-	perl-lwp-useragent-determined \
-	perl-module-build \
-	perl-module-pluggable \
-	perl-net-ssleay \
-	perl-parse-recdescent \
-	perl-path-class \
-	perl-scalar-list-utils \
-	perl-term-progressbar \
-	perl-term-readkey \
-	perl-test-exception \
-	perl-test-requires \
-	perl-timedate \
-	perl-try-tiny \
-	perl-unicode-string \
-	perl-xml-libxml \
-	perl-xml-libxslt \
-	perl-xml-parser \
-	perl-xml-sax \
-	perl-xml-treepp \
-	perl-xml-twig \
-	perl-xml-writer \
-	py3-requests \
-	python2 \
-	tar \
-	uriparser \
+ make && \
+ make install && \
+ echo "**** remove build dependencies ****" && \
+ apt autoremove && \
+ apt-get purge -qy --allow-remove-essential \
+	autoconf \
+	automake \
+	binutils \
+	build-essential \
+	cmake \
+	gettext \
+	git \
+	libargtable2-dev \
+	libavformat-dev \
+	libbz2-dev \
+	libdca-dev \
+	libfaac-dev \
+	libfdk-aac-dev \
+	libmp3lame-dev \
+	libopencore-amrnb-dev \
+	libopencore-amrwb-dev \
+	libopus-dev \
+	libsdl1.2-dev \
+	libsoxr-dev \
+	libspeex-dev \
+	libva-dev \
+	libxvidcore-dev \
+	libvo-aacenc-dev \
+	libvorbisenc2 \
+	libvorbis-dev \
+	libvpx-dev \
+	libx264-dev \
+	libx265-dev \
+	libavahi-client-dev \
+	libhdhomerun-dev \
+	libiconv-hook-dev \
+	libssl-dev \
+	libtool \
+	pkg-config \
+	python \
+	python3 \
+	python3-requests \
 	wget \
-	x264 \
-	x265 \
-	zlib && \
+	zlib1g-dev && \
+ echo "**** install runtime dependencies ****" && \
+ apt-get install -qy --no-install-recommends \
+	libargtable2-0 \
+	libavahi-client3 \
+	libavahi-common3 \
+	libc6 \
+	libdbus-1-3 \
+	libssl1.0.0 \
+	xmltv \
+	zlib1g && \
+ echo "**** cleanup ****" && \
+ apt-get clean && \
+ rm -rf \
+	/tmp/* \
+	/var/lib/apt/lists/* \
+	/var/tmp/* && \
  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 --from=buildstage /tmp/argtable-build/usr/ /usr/
-COPY --from=buildstage /tmp/comskip-build/usr/ /usr/
-COPY --from=buildstage /tmp/tvheadend-build/usr/ /usr/
-COPY --from=buildstage /tmp/xmltv-build/usr/ /usr/
-COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/
-COPY --from=buildstage /usr/local/share/perl5/ /usr/local/share/perl5/
+# copy local files
 COPY root/ /
 
 # ports and volumes
 EXPOSE 9981 9982
-VOLUME /config
+VOLUME /config

+ 132 - 287
Dockerfile.aarch64

@@ -1,334 +1,179 @@
-FROM lsiobase/alpine:arm64v8-3.12 as buildstage
-############## build stage ##############
+FROM lsiobase/ubuntu:arm64v8-bionic
 
-# package versions
-ARG ARGTABLE_VER="2.13"
-ARG XMLTV_VER="v0.6.1"
+# set version label
+ARG BUILD_DATE
+ARG VERSION
+LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
+LABEL maintainer="saarg"
 
-# environment settings
-ARG TZ="Europe/Oslo"
+# package version
+ARG TVH_VER="master"
 ARG TVHEADEND_COMMIT
-ENV HOME="/config"
 
-# copy patches
-COPY patches/ /tmp/patches/
+# Environment settings
+ENV HOME="/config"
+ARG DEBIAN_FRONTEND="noninteractive"
 
+# add dependencies
 RUN \
- echo "**** install build packages ****" && \
- apk add --no-cache \
+ apt-get update && \
+ apt-get upgrade -qy && \
+ apt-get install -qy --no-install-recommends \
 	autoconf \
 	automake \
-	bsd-compat-headers \
+	binutils \
+	build-essential \
 	bzip2 \
 	cmake \
-	curl \
-	ffmpeg-dev \
-	file \
-	findutils \
-	g++ \
-	gcc \
-	gettext-dev \
+	dvb-apps \
+	gettext \
 	git \
-	gnu-libiconv-dev \
 	gzip \
 	jq \
-	libcurl \
+	libavahi-client-dev \
 	libdvbcsa-dev \
-	libgcrypt-dev \
 	libhdhomerun-dev \
+	libiconv-hook-dev \
+	libssl-dev \
 	libtool \
-	libvpx-dev \
-	libxml2-dev \
-	libxslt-dev \
-	linux-headers \
-	make \
-	openssl-dev \
-	opus-dev \
-	patch \
-	pcre2-dev \
-	perl-archive-zip \
-	perl-boolean \
-	perl-capture-tiny \
-	perl-cgi \
-	perl-compress-raw-zlib \
-	perl-data-dumper \
-	perl-date-manip \
-	perl-datetime \
-	perl-datetime-format-strptime \
-	perl-datetime-timezone \
-	perl-dbd-sqlite \
-	perl-dbi \
-	perl-dev \
-	perl-digest-sha1 \
-	perl-doc \
-	perl-file-slurp \
-	perl-file-temp \
-	perl-file-which \
-	perl-getopt-long \
-	perl-html-parser \
-	perl-html-tree \
-	perl-http-cookies \
-	perl-io \
-	perl-io-compress \
-	perl-io-html \
-	perl-io-socket-ssl \
-	perl-io-stringy \
-	perl-json \
-	perl-json-xs \
-	perl-libwww \
-	perl-lingua-en-numbers-ordinate \
-	perl-lingua-preferred \
-	perl-list-moreutils \
-	perl-lwp-useragent-determined \
-	perl-module-build \
-	perl-module-pluggable \
-	perl-net-ssleay \
-	perl-parse-recdescent \
-	perl-path-class \
-	perl-scalar-list-utils \
-	perl-term-progressbar \
-	perl-term-readkey \
-	perl-test-exception \
-	perl-test-requires \
-	perl-timedate \
-	perl-try-tiny \
-	perl-unicode-string \
-	perl-xml-libxml \
-	perl-xml-libxslt \
-	perl-xml-parser \
-	perl-xml-sax \
-	perl-xml-treepp \
-	perl-xml-twig \
-	perl-xml-writer \
-	pkgconf \
-	pngquant \
-	python2 \
-	sdl-dev \
-	tar \
-	uriparser-dev \
+	libva-dev \
+	pkg-config \
+	python \
+	python3 \
+	python3-requests \
 	wget \
-	x264-dev \
-	x265-dev \
-	zlib-dev	
-
-RUN \
- echo "**** remove musl iconv.h and replace with gnu-iconv.h ****" && \
- rm -rf /usr/include/iconv.h && \
- cp /usr/include/gnu-libiconv/iconv.h /usr/include/iconv.h
-
-RUN \
- echo "**** install perl modules for xmltv ****" && \
- curl -L https://cpanmin.us | perl - App::cpanminus && \
- cpanm --installdeps /tmp/patches
-
-RUN \
- echo "**** compile XMLTV ****" && \
- git clone https://github.com/XMLTV/xmltv.git /tmp/xmltv && \
- cd /tmp/xmltv && \
- git checkout ${XMLTV_VER} && \
- echo "**** Fix test for xmltv alpine 3.11 ****" && \
- patch -p1 -i /tmp/patches/test_tv_imdb.t.patch && \
- echo "**** Perl 5.26 fixes for XMTLV ****" && \
- sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_latex && \
- sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_text && \
- sed "s/\(lib\/set_share_dir.pl';\)/.\/\1/" -i grab/it/tv_grab_it.PL && \
- sed "s/\(filter\/Grep.pm';\)/.\/\1/" -i filter/tv_grep.PL && \
- sed "s/\(lib\/XMLTV.pm.in';\)/.\/\1/" -i lib/XMLTV.pm.PL && \
- sed "s/\(lib\/Ask\/Term.pm';\)/.\/\1/" -i Makefile.PL && \
- PERL5LIB=`pwd` && \
- echo -e "yes" | perl Makefile.PL PREFIX=/usr/ INSTALLDIRS=vendor && \
- make -j 2 && \
- make test && \
- make DESTDIR=/tmp/xmltv-build install
-
-RUN \
- echo "**** compile tvheadend ****" && \
+	zlib1g-dev && \
+ echo "**** build tvheadend ****" && \
+ mkdir -p \
+	/tmp/patches && \
  if [ -z ${TVHEADEND_COMMIT+x} ]; then \
-        TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/master \
-        | jq -r '. | .sha'); \
+	TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/${TVH_VER} \
+	| jq -r '. | .sha'); \
  fi && \
- mkdir -p \
-        /tmp/tvheadend && \
  git clone https://github.com/tvheadend/tvheadend.git /tmp/tvheadend && \
  cd /tmp/tvheadend && \
  git checkout ${TVHEADEND_COMMIT} && \
+ curl -o \
+ /tmp/patches/1348.patch -L \
+	"https://patch-diff.githubusercontent.com/raw/tvheadend/tvheadend/pull/1348.patch" && \
+ curl -o \
+ /tmp/patches/1273.patch -L \
+	"https://patch-diff.githubusercontent.com/raw/tvheadend/tvheadend/pull/1273.patch" && \
+ patch -p1 -i /tmp/patches/1348.patch && \
+ patch -p1 -i /tmp/patches/1273.patch && \
  ./configure \
 	`#Encoding` \
-	--disable-ffmpeg_static \
-	--disable-libfdkaac_static \
-	--disable-libtheora_static \
-	--disable-libopus_static \
-	--disable-libvorbis_static \
-	--disable-libvpx_static \
-	--disable-libx264_static \
-	--disable-libx265_static \
-	--disable-libfdkaac \
-	--enable-libopus \
-	--enable-libvorbis \
-	--enable-libvpx \
-	--enable-libx264 \
-	--enable-libx265 \
+	--enable-ffmpeg_static \
+	--disable-libav \
 	\
 	`#Options` \
-	--disable-avahi \
-	--disable-dbus_1 \
 	--disable-bintray_cache \
-	--disable-hdhomerun_static \
+	--enable-hdhomerun_static \
 	--enable-hdhomerun_client \
-	--enable-libav \
 	--enable-pngquant \
 	--enable-trace \
-	--infodir=/usr/share/info \
-	--localstatedir=/var \
-	--mandir=/usr/share/man \
-	--prefix=/usr \
-	--sysconfdir=/config && \
- make -j 2 && \
- make DESTDIR=/tmp/tvheadend-build install
-
-RUN \
- echo "**** compile argtable2 ****" && \
- ARGTABLE_VER1="${ARGTABLE_VER//./-}" && \
- mkdir -p \
-	/tmp/argtable && \
- curl -o \
- /tmp/argtable-src.tar.gz -L \
-	"https://sourceforge.net/projects/argtable/files/argtable/argtable-${ARGTABLE_VER}/argtable${ARGTABLE_VER1}.tar.gz" && \
- tar xf \
- /tmp/argtable-src.tar.gz -C \
-	/tmp/argtable --strip-components=1 && \
- cp /tmp/patches/config.* /tmp/argtable && \
- cd /tmp/argtable && \
- ./configure \
-	--prefix=/usr && \
- make -j 2 && \
- make check && \
- make DESTDIR=/tmp/argtable-build install && \
- echo "**** copy to /usr for comskip dependency ****" && \
- cp -pr /tmp/argtable-build/usr/* /usr/
-
-RUN \
- echo "***** compile comskip ****" && \
+	--enable-vaapi && \
+ make && \
+ make install && \
+ echo "**** install dependencies for comskip ****" && \
+ apt-get install -qy --no-install-recommends \
+	libargtable2-dev \
+	libavformat-dev \
+	libbz2-dev \
+	libdca-dev \
+	libfaac-dev \
+	libfdk-aac-dev \
+	libmp3lame-dev \
+	libopencore-amrnb-dev \
+	libopencore-amrwb-dev \
+	libopus-dev \
+	libsdl1.2-dev \
+	libsoxr-dev \
+	libspeex-dev \
+	libva-dev \
+	libxvidcore-dev \
+	libvo-aacenc-dev \
+	libvorbisenc2 \
+	libvorbis-dev \
+	libvpx-dev \
+	libx264-dev \
+	libx265-dev && \
+ echo "**** build comskip ****" && \
  git clone git://github.com/erikkaashoek/Comskip /tmp/comskip && \
  cd /tmp/comskip && \
  ./autogen.sh && \
  ./configure \
 	--bindir=/usr/bin \
 	--sysconfdir=/config/comskip && \
- make -j 2 && \
- make DESTDIR=/tmp/comskip-build install
-
-############## runtime stage ##############
-FROM lsiobase/alpine:arm64v8-3.12
-
-# set version label
-ARG BUILD_DATE
-ARG VERSION
-LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
-LABEL maintainer="saarg"
-
-# environment settings
-ENV HOME="/config"
-
-RUN \
- echo "**** install runtime packages ****" && \
- apk add --no-cache \
-	bsd-compat-headers \
-	bzip2 \
-	curl \
-	ffmpeg \
-	ffmpeg-libs \
-	gnu-libiconv \
-	gzip \
-	libcrypto1.1 \
-	libcurl \
-	libdvbcsa \
-	libhdhomerun-libs \
-	libssl1.1 \
-	libvpx \
-	libxml2 \
-	libxslt \
-	linux-headers \
-	openssl \
-	opus \
-	pcre2 \
-	perl \
-	perl-archive-zip \
-	perl-boolean \
-	perl-capture-tiny \
-	perl-cgi \
-	perl-compress-raw-zlib \
-	perl-data-dumper \
-	perl-date-manip \
-	perl-datetime \
-	perl-datetime-format-strptime \
-	perl-datetime-timezone \
-	perl-dbd-sqlite \
-	perl-dbi \
-	perl-digest-sha1 \
-	perl-doc \
-	perl-file-slurp \
-	perl-file-temp \
-	perl-file-which \
-	perl-getopt-long \
-	perl-html-parser \
-	perl-html-tree \
-	perl-http-cookies \
-	perl-io \
-	perl-io-compress \
-	perl-io-html \
-	perl-io-socket-ssl \
-	perl-io-stringy \
-	perl-json \
-	perl-json-xs \
-	perl-libwww \
-	perl-lingua-en-numbers-ordinate \
-	perl-lingua-preferred \
-	perl-list-moreutils \
-	perl-lwp-useragent-determined \
-	perl-module-build \
-	perl-module-pluggable \
-	perl-net-ssleay \
-	perl-parse-recdescent \
-	perl-path-class \
-	perl-scalar-list-utils \
-	perl-term-progressbar \
-	perl-term-readkey \
-	perl-test-exception \
-	perl-test-requires \
-	perl-timedate \
-	perl-try-tiny \
-	perl-unicode-string \
-	perl-xml-libxml \
-	perl-xml-libxslt \
-	perl-xml-parser \
-	perl-xml-sax \
-	perl-xml-treepp \
-	perl-xml-twig \
-	perl-xml-writer \
-	py3-requests \
-	python2 \
-	tar \
-	uriparser \
+ make && \
+ make install && \
+ echo "**** remove build dependencies ****" && \
+ apt autoremove && \
+ apt-get purge -qy --allow-remove-essential \
+	autoconf \
+	automake \
+	binutils \
+	build-essential \
+	cmake \
+	gettext \
+	git \
+	libargtable2-dev \
+	libavformat-dev \
+	libbz2-dev \
+	libdca-dev \
+	libfaac-dev \
+	libfdk-aac-dev \
+	libmp3lame-dev \
+	libopencore-amrnb-dev \
+	libopencore-amrwb-dev \
+	libopus-dev \
+	libsdl1.2-dev \
+	libsoxr-dev \
+	libspeex-dev \
+	libva-dev \
+	libxvidcore-dev \
+	libvo-aacenc-dev \
+	libvorbisenc2 \
+	libvorbis-dev \
+	libvpx-dev \
+	libx264-dev \
+	libx265-dev \
+	libavahi-client-dev \
+	libhdhomerun-dev \
+	libiconv-hook-dev \
+	libssl-dev \
+	libtool \
+	pkg-config \
+	python \
+	python3 \
+	python3-requests \
 	wget \
-	x264 \
-	x265 \
-	zlib && \
+	zlib1g-dev && \
+ echo "**** install runtime dependencies ****" && \
+ apt-get install -qy --no-install-recommends \
+	libargtable2-0 \
+	libavahi-client3 \
+	libavahi-common3 \
+	libc6 \
+	libdbus-1-3 \
+	libssl1.0.0 \
+	xmltv \
+	zlib1g && \
+ echo "**** cleanup ****" && \
+ apt-get clean && \
+ rm -rf \
+	/tmp/* \
+	/var/lib/apt/lists/* \
+	/var/tmp/* && \
  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 --from=buildstage /tmp/argtable-build/usr/ /usr/
-COPY --from=buildstage /tmp/comskip-build/usr/ /usr/
-COPY --from=buildstage /tmp/tvheadend-build/usr/ /usr/
-COPY --from=buildstage /tmp/xmltv-build/usr/ /usr/
-COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/
-COPY --from=buildstage /usr/local/share/perl5/ /usr/local/share/perl5/
+# copy local files
 COPY root/ /
 
 # ports and volumes
 EXPOSE 9981 9982
-VOLUME /config
+VOLUME /config

+ 132 - 287
Dockerfile.armhf

@@ -1,334 +1,179 @@
-FROM lsiobase/alpine:arm32v7-3.12 as buildstage
-############## build stage ##############
+FROM lsiobase/ubuntu:arm32v7-bionic
 
-# package versions
-ARG ARGTABLE_VER="2.13"
-ARG XMLTV_VER="v0.6.1"
+# set version label
+ARG BUILD_DATE
+ARG VERSION
+LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
+LABEL maintainer="saarg"
 
-# environment settings
-ARG TZ="Europe/Oslo"
+# package version
+ARG TVH_VER="master"
 ARG TVHEADEND_COMMIT
-ENV HOME="/config"
 
-# copy patches
-COPY patches/ /tmp/patches/
+# Environment settings
+ENV HOME="/config"
+ARG DEBIAN_FRONTEND="noninteractive"
 
+# add dependencies
 RUN \
- echo "**** install build packages ****" && \
- apk add --no-cache \
+ apt-get update && \
+ apt-get upgrade -qy && \
+ apt-get install -qy --no-install-recommends \
 	autoconf \
 	automake \
-	bsd-compat-headers \
+	binutils \
+	build-essential \
 	bzip2 \
 	cmake \
-	curl \
-	ffmpeg-dev \
-	file \
-	findutils \
-	g++ \
-	gcc \
-	gettext-dev \
+	dvb-apps \
+	gettext \
 	git \
-	gnu-libiconv-dev \
 	gzip \
 	jq \
-	libcurl \
+	libavahi-client-dev \
 	libdvbcsa-dev \
-	libgcrypt-dev \
 	libhdhomerun-dev \
+	libiconv-hook-dev \
+	libssl-dev \
 	libtool \
-	libvpx-dev \
-	libxml2-dev \
-	libxslt-dev \
-	linux-headers \
-	make \
-	openssl-dev \
-	opus-dev \
-	patch \
-	pcre2-dev \
-	perl-archive-zip \
-	perl-boolean \
-	perl-capture-tiny \
-	perl-cgi \
-	perl-compress-raw-zlib \
-	perl-data-dumper \
-	perl-date-manip \
-	perl-datetime \
-	perl-datetime-format-strptime \
-	perl-datetime-timezone \
-	perl-dbd-sqlite \
-	perl-dbi \
-	perl-dev \
-	perl-digest-sha1 \
-	perl-doc \
-	perl-file-slurp \
-	perl-file-temp \
-	perl-file-which \
-	perl-getopt-long \
-	perl-html-parser \
-	perl-html-tree \
-	perl-http-cookies \
-	perl-io \
-	perl-io-compress \
-	perl-io-html \
-	perl-io-socket-ssl \
-	perl-io-stringy \
-	perl-json \
-	perl-json-xs \
-	perl-libwww \
-	perl-lingua-en-numbers-ordinate \
-	perl-lingua-preferred \
-	perl-list-moreutils \
-	perl-lwp-useragent-determined \
-	perl-module-build \
-	perl-module-pluggable \
-	perl-net-ssleay \
-	perl-parse-recdescent \
-	perl-path-class \
-	perl-scalar-list-utils \
-	perl-term-progressbar \
-	perl-term-readkey \
-	perl-test-exception \
-	perl-test-requires \
-	perl-timedate \
-	perl-try-tiny \
-	perl-unicode-string \
-	perl-xml-libxml \
-	perl-xml-libxslt \
-	perl-xml-parser \
-	perl-xml-sax \
-	perl-xml-treepp \
-	perl-xml-twig \
-	perl-xml-writer \
-	pkgconf \
-	pngquant \
-	python2 \
-	sdl-dev \
-	tar \
-	uriparser-dev \
+	libva-dev \
+	pkg-config \
+	python \
+	python3 \
+	python3-requests \
 	wget \
-	x264-dev \
-	x265-dev \
-	zlib-dev
-
-RUN \
- echo "**** remove musl iconv.h and replace with gnu-iconv.h ****" && \
- rm -rf /usr/include/iconv.h && \
- cp /usr/include/gnu-libiconv/iconv.h /usr/include/iconv.h
-
-RUN \
- echo "**** install perl modules for xmltv ****" && \
- curl -L https://cpanmin.us | perl - App::cpanminus && \
- cpanm --installdeps /tmp/patches
-
-RUN \
- echo "**** compile XMLTV ****" && \
- git clone https://github.com/XMLTV/xmltv.git /tmp/xmltv && \
- cd /tmp/xmltv && \
- git checkout ${XMLTV_VER} && \
- echo "**** Fix test for xmltv alpine 3.11 ****" && \
- patch -p1 -i /tmp/patches/test_tv_imdb.t.patch && \
- echo "**** Perl 5.26 fixes for XMTLV ****" && \
- sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_latex && \
- sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_text && \
- sed "s/\(lib\/set_share_dir.pl';\)/.\/\1/" -i grab/it/tv_grab_it.PL && \
- sed "s/\(filter\/Grep.pm';\)/.\/\1/" -i filter/tv_grep.PL && \
- sed "s/\(lib\/XMLTV.pm.in';\)/.\/\1/" -i lib/XMLTV.pm.PL && \
- sed "s/\(lib\/Ask\/Term.pm';\)/.\/\1/" -i Makefile.PL && \
- PERL5LIB=`pwd` && \
- echo -e "yes" | perl Makefile.PL PREFIX=/usr/ INSTALLDIRS=vendor && \
- make -j 2 && \
- make test && \
- make DESTDIR=/tmp/xmltv-build install
-
-RUN \
- echo "**** compile tvheadend ****" && \
+	zlib1g-dev && \
+ echo "**** build tvheadend ****" && \
+ mkdir -p \
+	/tmp/patches && \
  if [ -z ${TVHEADEND_COMMIT+x} ]; then \
-        TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/master \
-        | jq -r '. | .sha'); \
+	TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/${TVH_VER} \
+	| jq -r '. | .sha'); \
  fi && \
- mkdir -p \
-        /tmp/tvheadend && \
  git clone https://github.com/tvheadend/tvheadend.git /tmp/tvheadend && \
  cd /tmp/tvheadend && \
  git checkout ${TVHEADEND_COMMIT} && \
+ curl -o \
+ /tmp/patches/1348.patch -L \
+	"https://patch-diff.githubusercontent.com/raw/tvheadend/tvheadend/pull/1348.patch" && \
+ curl -o \
+ /tmp/patches/1273.patch -L \
+	"https://patch-diff.githubusercontent.com/raw/tvheadend/tvheadend/pull/1273.patch" && \
+ patch -p1 -i /tmp/patches/1348.patch && \
+ patch -p1 -i /tmp/patches/1273.patch && \
  ./configure \
 	`#Encoding` \
-	--disable-ffmpeg_static \
-	--disable-libfdkaac_static \
-	--disable-libtheora_static \
-	--disable-libopus_static \
-	--disable-libvorbis_static \
-	--disable-libvpx_static \
-	--disable-libx264_static \
-	--disable-libx265_static \
-	--disable-libfdkaac \
-	--enable-libopus \
-	--enable-libvorbis \
-	--enable-libvpx \
-	--enable-libx264 \
-	--enable-libx265 \
+	--enable-ffmpeg_static \
+	--disable-libav \
 	\
 	`#Options` \
-	--disable-avahi \
-	--disable-dbus_1 \
 	--disable-bintray_cache \
-	--disable-hdhomerun_static \
+	--enable-hdhomerun_static \
 	--enable-hdhomerun_client \
-	--enable-libav \
 	--enable-pngquant \
 	--enable-trace \
-	--infodir=/usr/share/info \
-	--localstatedir=/var \
-	--mandir=/usr/share/man \
-	--prefix=/usr \
-	--sysconfdir=/config && \
- make -j 2 && \
- make DESTDIR=/tmp/tvheadend-build install
-
-RUN \
- echo "**** compile argtable2 ****" && \
- ARGTABLE_VER1="${ARGTABLE_VER//./-}" && \
- mkdir -p \
-	/tmp/argtable && \
- curl -o \
- /tmp/argtable-src.tar.gz -L \
-	"https://sourceforge.net/projects/argtable/files/argtable/argtable-${ARGTABLE_VER}/argtable${ARGTABLE_VER1}.tar.gz" && \
- tar xf \
- /tmp/argtable-src.tar.gz -C \
-	/tmp/argtable --strip-components=1 && \
- cp /tmp/patches/config.* /tmp/argtable && \
- cd /tmp/argtable && \
- ./configure \
-	--prefix=/usr && \
- make -j 2 && \
- make check && \
- make DESTDIR=/tmp/argtable-build install && \
- echo "**** copy to /usr for comskip dependency ****" && \
- cp -pr /tmp/argtable-build/usr/* /usr/
-
-RUN \
- echo "***** compile comskip ****" && \
+	--enable-vaapi && \
+ make && \
+ make install && \
+ echo "**** install dependencies for comskip ****" && \
+ apt-get install -qy --no-install-recommends \
+	libargtable2-dev \
+	libavformat-dev \
+	libbz2-dev \
+	libdca-dev \
+	libfaac-dev \
+	libfdk-aac-dev \
+	libmp3lame-dev \
+	libopencore-amrnb-dev \
+	libopencore-amrwb-dev \
+	libopus-dev \
+	libsdl1.2-dev \
+	libsoxr-dev \
+	libspeex-dev \
+	libva-dev \
+	libxvidcore-dev \
+	libvo-aacenc-dev \
+	libvorbisenc2 \
+	libvorbis-dev \
+	libvpx-dev \
+	libx264-dev \
+	libx265-dev && \
+ echo "**** build comskip ****" && \
  git clone git://github.com/erikkaashoek/Comskip /tmp/comskip && \
  cd /tmp/comskip && \
  ./autogen.sh && \
  ./configure \
 	--bindir=/usr/bin \
 	--sysconfdir=/config/comskip && \
- make -j 2 && \
- make DESTDIR=/tmp/comskip-build install
-
-############## runtime stage ##############
-FROM lsiobase/alpine:arm32v7-3.12
-
-# set version label
-ARG BUILD_DATE
-ARG VERSION
-LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
-LABEL maintainer="saarg"
-
-# environment settings
-ENV HOME="/config"
-
-RUN \
- echo "**** install runtime packages ****" && \
- apk add --no-cache \
-	bsd-compat-headers \
-	bzip2 \
-	curl \
-	ffmpeg \
-	ffmpeg-libs \
-	gnu-libiconv \
-	gzip \
-	libcrypto1.1 \
-	libcurl \
-	libdvbcsa \
-	libhdhomerun-libs \
-	libssl1.1 \
-	libvpx \
-	libxml2 \
-	libxslt \
-	linux-headers \
-	openssl \
-	opus \
-	pcre2 \
-	perl \
-	perl-archive-zip \
-	perl-boolean \
-	perl-capture-tiny \
-	perl-cgi \
-	perl-compress-raw-zlib \
-	perl-data-dumper \
-	perl-date-manip \
-	perl-datetime \
-	perl-datetime-format-strptime \
-	perl-datetime-timezone \
-	perl-dbd-sqlite \
-	perl-dbi \
-	perl-digest-sha1 \
-	perl-doc \
-	perl-file-slurp \
-	perl-file-temp \
-	perl-file-which \
-	perl-getopt-long \
-	perl-html-parser \
-	perl-html-tree \
-	perl-http-cookies \
-	perl-io \
-	perl-io-compress \
-	perl-io-html \
-	perl-io-socket-ssl \
-	perl-io-stringy \
-	perl-json \
-	perl-json-xs \
-	perl-libwww \
-	perl-lingua-en-numbers-ordinate \
-	perl-lingua-preferred \
-	perl-list-moreutils \
-	perl-lwp-useragent-determined \
-	perl-module-build \
-	perl-module-pluggable \
-	perl-net-ssleay \
-	perl-parse-recdescent \
-	perl-path-class \
-	perl-scalar-list-utils \
-	perl-term-progressbar \
-	perl-term-readkey \
-	perl-test-exception \
-	perl-test-requires \
-	perl-timedate \
-	perl-try-tiny \
-	perl-unicode-string \
-	perl-xml-libxml \
-	perl-xml-libxslt \
-	perl-xml-parser \
-	perl-xml-sax \
-	perl-xml-treepp \
-	perl-xml-twig \
-	perl-xml-writer \
-	py3-requests \
-	python2 \
-	tar \
-	uriparser \
+ make && \
+ make install && \
+ echo "**** remove build dependencies ****" && \
+ apt autoremove && \
+ apt-get purge -qy --allow-remove-essential \
+	autoconf \
+	automake \
+	binutils \
+	build-essential \
+	cmake \
+	gettext \
+	git \
+	libargtable2-dev \
+	libavformat-dev \
+	libbz2-dev \
+	libdca-dev \
+	libfaac-dev \
+	libfdk-aac-dev \
+	libmp3lame-dev \
+	libopencore-amrnb-dev \
+	libopencore-amrwb-dev \
+	libopus-dev \
+	libsdl1.2-dev \
+	libsoxr-dev \
+	libspeex-dev \
+	libva-dev \
+	libxvidcore-dev \
+	libvo-aacenc-dev \
+	libvorbisenc2 \
+	libvorbis-dev \
+	libvpx-dev \
+	libx264-dev \
+	libx265-dev \
+	libavahi-client-dev \
+	libhdhomerun-dev \
+	libiconv-hook-dev \
+	libssl-dev \
+	libtool \
+	pkg-config \
+	python \
+	python3 \
+	python3-requests \
 	wget \
-	x264 \
-	x265 \
-	zlib && \
+	zlib1g-dev && \
+ echo "**** install runtime dependencies ****" && \
+ apt-get install -qy --no-install-recommends \
+	libargtable2-0 \
+	libavahi-client3 \
+	libavahi-common3 \
+	libc6 \
+	libdbus-1-3 \
+	libssl1.0.0 \
+	xmltv \
+	zlib1g && \
+ echo "**** cleanup ****" && \
+ apt-get clean && \
+ rm -rf \
+	/tmp/* \
+	/var/lib/apt/lists/* \
+	/var/tmp/* && \
  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 --from=buildstage /tmp/argtable-build/usr/ /usr/
-COPY --from=buildstage /tmp/comskip-build/usr/ /usr/
-COPY --from=buildstage /tmp/tvheadend-build/usr/ /usr/
-COPY --from=buildstage /tmp/xmltv-build/usr/ /usr/
-COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/
-COPY --from=buildstage /usr/local/share/perl5/ /usr/local/share/perl5/
+# copy local files
 COPY root/ /
 
 # ports and volumes
 EXPOSE 9981 9982
-VOLUME /config
+VOLUME /config

+ 40 - 40
Jenkinsfile

@@ -26,7 +26,7 @@ pipeline {
     DOCKERHUB_IMAGE = 'linuxserver/tvheadend'
     DEV_DOCKERHUB_IMAGE = 'lsiodev/tvheadend'
     PR_DOCKERHUB_IMAGE = 'lspipepr/tvheadend'
-    DIST_IMAGE = 'alpine'
+    DIST_IMAGE = 'ubuntu'
     MULTIARCH='true'
     CI='true'
     CI_WEB='true'
@@ -44,7 +44,7 @@ pipeline {
         script{
           env.EXIT_STATUS = ''
           env.LS_RELEASE = sh(
-            script: '''docker run --rm alexeiled/skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':latest 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
+            script: '''docker run --rm alexeiled/skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':j0nny 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
             returnStdout: true).trim()
           env.LS_RELEASE_NOTES = sh(
             script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''',
@@ -129,10 +129,10 @@ pipeline {
         }
       }
     }
-    // If this is a master build use live docker endpoints
+    // If this is a j0nny build use live docker endpoints
     stage("Set ENV live build"){
       when {
-        branch "master"
+        branch "j0nny"
         environment name: 'CHANGE_ID', value: ''
       }
       steps {
@@ -152,7 +152,7 @@ pipeline {
     // If this is a dev build use dev docker endpoints
     stage("Set ENV dev build"){
       when {
-        not {branch "master"}
+        not {branch "j0nny"}
         environment name: 'CHANGE_ID', value: ''
       }
       steps {
@@ -223,7 +223,7 @@ pipeline {
     // Use helper containers to render templated files
     stage('Update-Templates') {
       when {
-        branch "master"
+        branch "j0nny"
         environment name: 'CHANGE_ID', value: ''
         expression {
           env.CONTAINER_NAME != null
@@ -234,7 +234,7 @@ pipeline {
               set -e
               TEMPDIR=$(mktemp -d)
               docker pull linuxserver/jenkins-builder:latest
-              docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins linuxserver/jenkins-builder:latest 
+              docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=j0nny -v ${TEMPDIR}:/ansible/jenkins linuxserver/jenkins-builder:latest 
               CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
               cd ${TEMPDIR}/docker-${CONTAINER_NAME}
               NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
@@ -242,7 +242,7 @@ pipeline {
                 mkdir -p ${TEMPDIR}/repo
                 git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
                 cd ${TEMPDIR}/repo/${LS_REPO}
-                git checkout -f master
+                git checkout -f j0nny
                 cd ${TEMPDIR}/docker-${CONTAINER_NAME}
                 mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
                 cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/
@@ -274,7 +274,7 @@ pipeline {
     // Exit the build if the Templated files were just updated
     stage('Template-exit') {
       when {
-        branch "master"
+        branch "j0nny"
         environment name: 'CHANGE_ID', value: ''
         environment name: 'FILES_UPDATED', value: 'true'
         expression {
@@ -397,7 +397,7 @@ pipeline {
     // Take the image we just built and dump package versions for comparison
     stage('Update-packages') {
       when {
-        branch "master"
+        branch "j0nny"
         environment name: 'CHANGE_ID', value: ''
         environment name: 'EXIT_STATUS', value: ''
       }
@@ -425,7 +425,7 @@ pipeline {
               echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
               if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then
                 git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO}
-                git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f master
+                git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f j0nny
                 cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/
                 cd ${TEMPDIR}/${LS_REPO}/
                 wait
@@ -449,7 +449,7 @@ pipeline {
     // Exit the build if the package file was just updated
     stage('PACKAGE-exit') {
       when {
-        branch "master"
+        branch "j0nny"
         environment name: 'CHANGE_ID', value: ''
         environment name: 'PACKAGE_UPDATED', value: 'true'
         environment name: 'EXIT_STATUS', value: ''
@@ -463,7 +463,7 @@ pipeline {
     // Exit the build if this is just a package check and there are no changes to push
     stage('PACKAGECHECK-exit') {
       when {
-        branch "master"
+        branch "j0nny"
         environment name: 'CHANGE_ID', value: ''
         environment name: 'PACKAGE_UPDATED', value: 'false'
         environment name: 'EXIT_STATUS', value: ''
@@ -552,8 +552,8 @@ pipeline {
                   echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
                   for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
                     docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
-                    docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest
-                    docker push ${PUSHIMAGE}:latest
+                    docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:j0nny
+                    docker push ${PUSHIMAGE}:j0nny
                     docker push ${PUSHIMAGE}:${META_TAG}
                   done
                '''
@@ -562,7 +562,7 @@ pipeline {
                 for DELETEIMAGE in "${GITHUBIMAGE}" "{GITLABIMAGE}" "${IMAGE}"; do
                   docker rmi \
                   ${DELETEIMAGE}:${META_TAG} \
-                  ${DELETEIMAGE}:latest || :
+                  ${DELETEIMAGE}:j0nny || :
                 done
              '''
         }
@@ -599,51 +599,51 @@ pipeline {
                     docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
                     docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
                     docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
-                    docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
-                    docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest
-                    docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
+                    docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-j0nny
+                    docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-j0nny
+                    docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-j0nny
                     docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
                     docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
                     docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
-                    docker push ${MANIFESTIMAGE}:amd64-latest
-                    docker push ${MANIFESTIMAGE}:arm32v7-latest
-                    docker push ${MANIFESTIMAGE}:arm64v8-latest
-                    docker manifest push --purge ${MANIFESTIMAGE}:latest || :
-                    docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
-                    docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
-                    docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
+                    docker push ${MANIFESTIMAGE}:amd64-j0nny
+                    docker push ${MANIFESTIMAGE}:arm32v7-j0nny
+                    docker push ${MANIFESTIMAGE}:arm64v8-j0nny
+                    docker manifest push --purge ${MANIFESTIMAGE}:j0nny || :
+                    docker manifest create ${MANIFESTIMAGE}:j0nny ${MANIFESTIMAGE}:amd64-j0nny ${MANIFESTIMAGE}:arm32v7-j0nny ${MANIFESTIMAGE}:arm64v8-j0nny
+                    docker manifest annotate ${MANIFESTIMAGE}:j0nny ${MANIFESTIMAGE}:arm32v7-j0nny --os linux --arch arm
+                    docker manifest annotate ${MANIFESTIMAGE}:j0nny ${MANIFESTIMAGE}:arm64v8-j0nny --os linux --arch arm64 --variant v8
                     docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
                     docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
                     docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
                     docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
-                    docker manifest push --purge ${MANIFESTIMAGE}:latest
+                    docker manifest push --purge ${MANIFESTIMAGE}:j0nny
                     docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} 
                   done
                   docker tag ${IMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:amd64-${META_TAG}
                   docker tag ${IMAGE}:arm32v7-${META_TAG} ${GITHUBIMAGE}:arm32v7-${META_TAG}
                   docker tag ${IMAGE}:arm64v8-${META_TAG} ${GITHUBIMAGE}:arm64v8-${META_TAG}
-                  docker tag ${GITHUBIMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:latest
+                  docker tag ${GITHUBIMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:j0nny
                   docker tag ${GITHUBIMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:${META_TAG}
-                  docker tag ${GITHUBIMAGE}:arm32v7-${META_TAG} ${GITHUBIMAGE}:arm32v7-latest
-                  docker tag ${GITHUBIMAGE}:arm64v8-${META_TAG} ${GITHUBIMAGE}:arm64v8-latest
+                  docker tag ${GITHUBIMAGE}:arm32v7-${META_TAG} ${GITHUBIMAGE}:arm32v7-j0nny
+                  docker tag ${GITHUBIMAGE}:arm64v8-${META_TAG} ${GITHUBIMAGE}:arm64v8-j0nny
                   docker push ${GITHUBIMAGE}:amd64-${META_TAG}
                   docker push ${GITHUBIMAGE}:arm32v7-${META_TAG}
                   docker push ${GITHUBIMAGE}:arm64v8-${META_TAG}
-                  docker push ${GITHUBIMAGE}:latest
+                  docker push ${GITHUBIMAGE}:j0nny
                   docker push ${GITHUBIMAGE}:${META_TAG}
-                  docker push ${GITHUBIMAGE}:arm32v7-latest
-                  docker push ${GITHUBIMAGE}:arm64v8-latest
+                  docker push ${GITHUBIMAGE}:arm32v7-j0nny
+                  docker push ${GITHUBIMAGE}:arm64v8-j0nny
                '''
           }
           sh '''#! /bin/bash
                 for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
                   docker rmi \
                   ${DELETEIMAGE}:amd64-${META_TAG} \
-                  ${DELETEIMAGE}:amd64-latest \
+                  ${DELETEIMAGE}:amd64-j0nny \
                   ${DELETEIMAGE}:arm32v7-${META_TAG} \
-                  ${DELETEIMAGE}:arm32v7-latest \
+                  ${DELETEIMAGE}:arm32v7-j0nny \
                   ${DELETEIMAGE}:arm64v8-${META_TAG} \
-                  ${DELETEIMAGE}:arm64v8-latest || :
+                  ${DELETEIMAGE}:arm64v8-j0nny || :
                 done
                 docker rmi \
                 lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
@@ -655,7 +655,7 @@ pipeline {
     // If this is a public release tag it in the LS Github
     stage('Github-Tag-Push-Release') {
       when {
-        branch "master"
+        branch "j0nny"
         expression {
           env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
         }
@@ -667,14 +667,14 @@ pipeline {
         sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
         -d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
              "object": "'${COMMIT_SHA}'",\
-             "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\
+             "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to j0nny",\
              "type": "commit",\
              "tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
         echo "Pushing New release for Tag"
         sh '''#! /bin/bash
               curl -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/commits/${EXT_GIT_BRANCH} | jq '. | .commit.message' | sed 's:^.\\(.*\\).$:\\1:' > releasebody.json
               echo '{"tag_name":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
-                     "target_commitish": "master",\
+                     "target_commitish": "j0nny",\
                      "name": "'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
                      "body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**'${EXT_REPO}' Changes:**\\n\\n' > start
               printf '","draft": false,"prerelease": false}' >> releasebody.json
@@ -701,7 +701,7 @@ pipeline {
                 set -e
                 TEMPDIR=$(mktemp -d)
                 docker pull linuxserver/jenkins-builder:latest
-                docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins linuxserver/jenkins-builder:latest 
+                docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=j0nny -v ${TEMPDIR}:/ansible/jenkins linuxserver/jenkins-builder:latest 
                 docker pull lsiodev/readme-sync
                 docker run --rm=true \
                   -e DOCKERHUB_USERNAME=$DOCKERUSER \

+ 2 - 40
README.md

@@ -32,7 +32,7 @@ Find us at:
 [![MicroBadger Layers](https://img.shields.io/microbadger/layers/linuxserver/tvheadend.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge)](https://microbadger.com/images/linuxserver/tvheadend "Get your own version badge on microbadger.com")
 [![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/tvheadend.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/tvheadend)
 [![Docker Stars](https://img.shields.io/docker/stars/linuxserver/tvheadend.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/tvheadend)
-[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-tvheadend%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-tvheadend/job/master/)
+[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-tvheadend%2Fjob%2Fj0nny%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-tvheadend/job/j0nny/)
 [![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Flsio-ci.ams3.digitaloceanspaces.com%2Flinuxserver%2Ftvheadend%2Flatest%2Fci-status.yml)](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/tvheadend/latest/index.html)
 
 [Tvheadend](https://www.tvheadend.org/) works as a proxy server: is a TV streaming server and recorder for Linux, FreeBSD and Android supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, ISDB-T, IPTV, SAT>IP and HDHomeRun as input sources.
@@ -304,42 +304,4 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
 
 ## Versions
 
-* **02.06.20:** - Update to Alpine 3.12.
-* **27.12.19:** - Add requests and perl-json-xs package.
-* **27.12.19:** - Update to Alpine 3.11.
-* **02.10.19:** - Improve permission fixing on render & dvb devices.
-* **18.08.19:** - Add AMD drivers.
-* **02.08.19:** - Attempt to automatically fix permissions on /dev/dri and /dev/dvb.
-* **28.06.19:** - Rebasing to alpine 3.10.
-* **27.03.19:** - Rebase to Alpine 3.9, fix init logic to only chown once.
-* **23.03.19:** - Switching to new Base images, shift to arm32v7 tag.
-* **01.03.19:** - Bump xmltv to 0.6.1.
-* **28.02.19:** - add perl-lwp-useragent-determined.
-* **17.02.19:** - Bump xmltv to 5.70, ensure version tagging works by cloning tvheadend.
-* **14.02.19:** - Add picons path to config.
-* **15.01.19:** - Add pipeline logic and multi arch.
-* **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.
-* **24.03.18:** - Add dvbcsa package.
-* **04.03.18:** - Use sourceforge master rather than mirror for xmltv.
-* **22.02.18:** - Add lost libva-intel-driver.
-* **21.02.18:** - Fix wrong version of iconv used.
-* **18.02.18:** - Add vaapi support, some cleanup and dropping of deprecated options.
-* **04.01.18:** - Deprecate cpu_core routine lack of scaling.
-* **11.12.17:** - Rebase to alpine 3.7, linting fixes.
-* **02.09.17:** - Add codec dependencies.
-* **13.07.17:** - Increase uniformity across all archs.
-* **08.07.17:** - Update README with full path for comskip.
-* **02.07.17:** - Move to one branch for all 4.2 releases.
-* **27.05.17:** - Rebase to alpine 3.6.
-* **01.05.17:** - Update to tvheadend 4.2.1 stable.
-* **18.04.17:** - Use repo version of gnu-libiconv rather than compiling.
-* **09.04.17:** - Chain cpanm installs in one block and use --installdeps.
-* **09.02.17:** - Perl changes, add picons file to gitignore and update XMLTV to 0.5.69.
-* **07.02.17:** - Add variable to add additional runtime paramters.
-* **05.02.17:** - Update to alpine 3.5 and change dvb-apps to only compile needed libs.
-* **14.11.16:** - Add picons from picons.xyz to /picons folder and add info to README.
-* **22.09.16:** - Fix broken tv_grab_wg, libs for xmltv and update README.
-* **18.09.16:** - Update XMLTV to 0.5.68 and update README.
-* **10.09.16:** - Add layer badges to README.
-* **05.09.16:** - Initial Release.
+* **24.09.20:** - Initial j0nny Release.

+ 3 - 3
jenkins-vars.yml

@@ -4,8 +4,8 @@
 project_name: docker-tvheadend
 external_type: github_commit
 release_type: stable
-release_tag: latest
-ls_branch: master
+release_tag: j0nny
+ls_branch: j0nny
 repo_vars:
   - EXT_GIT_BRANCH = 'master'
   - EXT_USER = 'tvheadend'
@@ -17,7 +17,7 @@ repo_vars:
   - DOCKERHUB_IMAGE = 'linuxserver/tvheadend'
   - DEV_DOCKERHUB_IMAGE = 'lsiodev/tvheadend'
   - PR_DOCKERHUB_IMAGE = 'lspipepr/tvheadend'
-  - DIST_IMAGE = 'alpine'
+  - DIST_IMAGE = 'ubuntu'
   - MULTIARCH='true'
   - CI='true'
   - CI_WEB='true'

+ 1 - 39
readme-vars.yml

@@ -126,42 +126,4 @@ app_setup_block: |
 
 # changelog
 changelogs:
-  - { date: "02.06.20:", desc: "Update to Alpine 3.12." }
-  - { date: "27.12.19:", desc: "Add requests and perl-json-xs package." }
-  - { date: "27.12.19:", desc: "Update to Alpine 3.11." }
-  - { date: "02.10.19:", desc: "Improve permission fixing on render & dvb devices." }
-  - { date: "18.08.19:", desc: "Add AMD drivers." }
-  - { date: "02.08.19:", desc: "Attempt to automatically fix permissions on /dev/dri and /dev/dvb." }
-  - { date: "28.06.19:", desc: "Rebasing to alpine 3.10." }
-  - { date: "27.03.19:", desc: "Rebase to Alpine 3.9, fix init logic to only chown once." }
-  - { date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag." }
-  - { date: "01.03.19:", desc: "Bump xmltv to 0.6.1." }
-  - { date: "28.02.19:", desc: "add perl-lwp-useragent-determined." }
-  - { date: "17.02.19:", desc: "Bump xmltv to 5.70, ensure version tagging works by cloning tvheadend." }
-  - { date: "14.02.19:", desc: "Add picons path to config." }
-  - { date: "15.01.19:", desc: "Add pipeline logic and multi arch." }
-  - { 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." }
-  - { date: "24.03.18:", desc: "Add dvbcsa package." }
-  - { date: "04.03.18:", desc: "Use sourceforge master rather than mirror for xmltv." }
-  - { date: "22.02.18:", desc: "Add lost libva-intel-driver." }
-  - { date: "21.02.18:", desc: "Fix wrong version of iconv used." }
-  - { date: "18.02.18:", desc: "Add vaapi support, some cleanup and dropping of deprecated options." }
-  - { date: "04.01.18:", desc: "Deprecate cpu_core routine lack of scaling." }
-  - { date: "11.12.17:", desc: "Rebase to alpine 3.7, linting fixes." }
-  - { date: "02.09.17:", desc: "Add codec dependencies." }
-  - { date: "13.07.17:", desc: "Increase uniformity across all archs." }
-  - { date: "08.07.17:", desc: "Update README with full path for comskip." }
-  - { date: "02.07.17:", desc: "Move to one branch for all 4.2 releases." }
-  - { date: "27.05.17:", desc: "Rebase to alpine 3.6." }
-  - { date: "01.05.17:", desc: "Update to tvheadend 4.2.1 stable." }
-  - { date: "18.04.17:", desc: "Use repo version of gnu-libiconv rather than compiling." }
-  - { date: "09.04.17:", desc: "Chain cpanm installs in one block and use --installdeps." }
-  - { date: "09.02.17:", desc: "Perl changes, add picons file to gitignore and update XMLTV to 0.5.69." }
-  - { date: "07.02.17:", desc: "Add variable to add additional runtime paramters." }
-  - { date: "05.02.17:", desc: "Update to alpine 3.5 and change dvb-apps to only compile needed libs." }
-  - { date: "14.11.16:", desc: "Add picons from picons.xyz to /picons folder and add info to README." }
-  - { date: "22.09.16:", desc: "Fix broken tv_grab_wg, libs for xmltv and update README." }
-  - { date: "18.09.16:", desc: "Update XMLTV to 0.5.68 and update README." }
-  - { date: "10.09.16:", desc: "Add layer badges to README." }
-  - { date: "05.09.16:", desc: "Initial Release." }
+  - { date: "24.09.20:", desc: "Initial j0nny Release." }