diff --git a/Dockerfile b/Dockerfile index 7fd0ecc..bd457a5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,227 +1,4 @@ -FROM lsiobase/alpine:3.12 as buildstage -############## build stage ############## - -# package versions -ARG ARGTABLE_VER="2.13" -ARG XMLTV_VER="v0.6.1" - -# environment settings -ARG TZ="Europe/Oslo" -ARG TVHEADEND_COMMIT -ENV HOME="/config" - -# copy patches -COPY patches/ /tmp/patches/ - -RUN \ - echo "**** install build packages ****" && \ - apk add --no-cache \ - autoconf \ - automake \ - bsd-compat-headers \ - bzip2 \ - cmake \ - curl \ - ffmpeg-dev \ - file \ - findutils \ - g++ \ - gcc \ - gettext-dev \ - git \ - gnu-libiconv-dev \ - gzip \ - jq \ - libcurl \ - libdvbcsa-dev \ - libgcrypt-dev \ - libhdhomerun-dev \ - libtool \ - 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 \ - 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 ****" && \ - if [ -z ${TVHEADEND_COMMIT+x} ]; then \ - TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/master \ - | jq -r '. | .sha'); \ - fi && \ - mkdir -p \ - /tmp/tvheadend && \ - git clone https://github.com/tvheadend/tvheadend.git /tmp/tvheadend && \ - cd /tmp/tvheadend && \ - git checkout ${TVHEADEND_COMMIT} && \ - ./configure \ - `#Encoding` \ - --disable-ffmpeg_static \ - --disable-libfdkaac_static \ - --disable-libtheora_static \ - --disable-libopus_static \ - --disable-libvorbis_static \ - --disable-libvpx_static \ - --disable-libx264_static \ - --disable-libx265_static \ - --disable-libfdkaac \ - --enable-libopus \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libx264 \ - --enable-libx265 \ - \ - `#Options` \ - --disable-avahi \ - --disable-dbus_1 \ - --disable-bintray_cache \ - --disable-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 ****" && \ - 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 +FROM lsiobase/ubuntu:bionic # set version label ARG BUILD_DATE @@ -229,111 +6,174 @@ ARG VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="saarg" -# environment settings -ENV HOME="/config" +# package version +ARG TVH_VER="master" +ARG TVHEADEND_COMMIT +# Environment settings +ENV HOME="/config" +ARG DEBIAN_FRONTEND="noninteractive" + +# add dependencies RUN \ - echo "**** install runtime packages ****" && \ - apk add --no-cache \ - bsd-compat-headers \ + apt-get update && \ + apt-get upgrade -qy && \ + apt-get install -qy --no-install-recommends \ + autoconf \ + automake \ + binutils \ + build-essential \ bzip2 \ - curl \ - ffmpeg \ - ffmpeg-libs \ - gnu-libiconv \ + cmake \ + dvb-apps \ + gettext \ + git \ 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 \ + jq \ + libavahi-client-dev \ + libdvbcsa-dev \ + libhdhomerun-dev \ + libiconv-hook-dev \ + libssl-dev \ + libtool \ + libva-dev \ + pkg-config \ + python \ + python3 \ + python3-requests \ wget \ - x264 \ - x265 \ - zlib && \ + 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/${TVH_VER} \ + | jq -r '. | .sha'); \ + fi && \ + 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` \ + --enable-ffmpeg_static \ + --disable-libav \ + \ + `#Options` \ + --disable-bintray_cache \ + --enable-hdhomerun_static \ + --enable-hdhomerun_client \ + --enable-pngquant \ + --enable-trace \ + --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 && \ + 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 \ + 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 \ No newline at end of file diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 1eeadf2..73b9bae 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,225 +1,4 @@ -FROM lsiobase/alpine:arm64v8-3.12 as buildstage -############## build stage ############## - -# package versions -ARG ARGTABLE_VER="2.13" -ARG XMLTV_VER="v0.6.1" - -# environment settings -ARG TZ="Europe/Oslo" -ARG TVHEADEND_COMMIT -ENV HOME="/config" - -# copy patches -COPY patches/ /tmp/patches/ - -RUN \ - echo "**** install build packages ****" && \ - apk add --no-cache \ - autoconf \ - automake \ - bsd-compat-headers \ - bzip2 \ - cmake \ - curl \ - ffmpeg-dev \ - file \ - findutils \ - g++ \ - gcc \ - gettext-dev \ - git \ - gnu-libiconv-dev \ - gzip \ - jq \ - libcurl \ - libdvbcsa-dev \ - libgcrypt-dev \ - libhdhomerun-dev \ - libtool \ - libvpx-dev \ - libxml2-dev \ - libxslt-dev \ - linux-headers \ - make \ - openssl-dev \ - opus-dev \ - patch \ - pcre2-dev \ - perl-archive-zip \ - perl-boolean \ - perl-capture-tiny \ - perl-cgi \ - perl-compress-raw-zlib \ - perl-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 \ - 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 ****" && \ - if [ -z ${TVHEADEND_COMMIT+x} ]; then \ - TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/master \ - | jq -r '. | .sha'); \ - fi && \ - mkdir -p \ - /tmp/tvheadend && \ - git clone https://github.com/tvheadend/tvheadend.git /tmp/tvheadend && \ - cd /tmp/tvheadend && \ - git checkout ${TVHEADEND_COMMIT} && \ - ./configure \ - `#Encoding` \ - --disable-ffmpeg_static \ - --disable-libfdkaac_static \ - --disable-libtheora_static \ - --disable-libopus_static \ - --disable-libvorbis_static \ - --disable-libvpx_static \ - --disable-libx264_static \ - --disable-libx265_static \ - --disable-libfdkaac \ - --enable-libopus \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libx264 \ - --enable-libx265 \ - \ - `#Options` \ - --disable-avahi \ - --disable-dbus_1 \ - --disable-bintray_cache \ - --disable-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 ****" && \ - 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 +FROM lsiobase/ubuntu:arm64v8-bionic # set version label ARG BUILD_DATE @@ -227,108 +6,174 @@ ARG VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="saarg" -# environment settings -ENV HOME="/config" +# package version +ARG TVH_VER="master" +ARG TVHEADEND_COMMIT +# Environment settings +ENV HOME="/config" +ARG DEBIAN_FRONTEND="noninteractive" + +# add dependencies RUN \ - echo "**** install runtime packages ****" && \ - apk add --no-cache \ - bsd-compat-headers \ + apt-get update && \ + apt-get upgrade -qy && \ + apt-get install -qy --no-install-recommends \ + autoconf \ + automake \ + binutils \ + build-essential \ bzip2 \ - curl \ - ffmpeg \ - ffmpeg-libs \ - gnu-libiconv \ + cmake \ + dvb-apps \ + gettext \ + git \ 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 \ + jq \ + libavahi-client-dev \ + libdvbcsa-dev \ + libhdhomerun-dev \ + libiconv-hook-dev \ + libssl-dev \ + libtool \ + libva-dev \ + pkg-config \ + python \ + python3 \ + python3-requests \ wget \ - x264 \ - x265 \ - zlib && \ + 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/${TVH_VER} \ + | jq -r '. | .sha'); \ + fi && \ + 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` \ + --enable-ffmpeg_static \ + --disable-libav \ + \ + `#Options` \ + --disable-bintray_cache \ + --enable-hdhomerun_static \ + --enable-hdhomerun_client \ + --enable-pngquant \ + --enable-trace \ + --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 && \ + 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 \ + 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 \ No newline at end of file diff --git a/Dockerfile.armhf b/Dockerfile.armhf index d6dc479..9b0050d 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -1,225 +1,4 @@ -FROM lsiobase/alpine:arm32v7-3.12 as buildstage -############## build stage ############## - -# package versions -ARG ARGTABLE_VER="2.13" -ARG XMLTV_VER="v0.6.1" - -# environment settings -ARG TZ="Europe/Oslo" -ARG TVHEADEND_COMMIT -ENV HOME="/config" - -# copy patches -COPY patches/ /tmp/patches/ - -RUN \ - echo "**** install build packages ****" && \ - apk add --no-cache \ - autoconf \ - automake \ - bsd-compat-headers \ - bzip2 \ - cmake \ - curl \ - ffmpeg-dev \ - file \ - findutils \ - g++ \ - gcc \ - gettext-dev \ - git \ - gnu-libiconv-dev \ - gzip \ - jq \ - libcurl \ - libdvbcsa-dev \ - libgcrypt-dev \ - libhdhomerun-dev \ - libtool \ - libvpx-dev \ - libxml2-dev \ - libxslt-dev \ - linux-headers \ - make \ - openssl-dev \ - opus-dev \ - patch \ - pcre2-dev \ - perl-archive-zip \ - perl-boolean \ - perl-capture-tiny \ - perl-cgi \ - perl-compress-raw-zlib \ - perl-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 \ - 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 ****" && \ - if [ -z ${TVHEADEND_COMMIT+x} ]; then \ - TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/master \ - | jq -r '. | .sha'); \ - fi && \ - mkdir -p \ - /tmp/tvheadend && \ - git clone https://github.com/tvheadend/tvheadend.git /tmp/tvheadend && \ - cd /tmp/tvheadend && \ - git checkout ${TVHEADEND_COMMIT} && \ - ./configure \ - `#Encoding` \ - --disable-ffmpeg_static \ - --disable-libfdkaac_static \ - --disable-libtheora_static \ - --disable-libopus_static \ - --disable-libvorbis_static \ - --disable-libvpx_static \ - --disable-libx264_static \ - --disable-libx265_static \ - --disable-libfdkaac \ - --enable-libopus \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libx264 \ - --enable-libx265 \ - \ - `#Options` \ - --disable-avahi \ - --disable-dbus_1 \ - --disable-bintray_cache \ - --disable-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 ****" && \ - 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 +FROM lsiobase/ubuntu:arm32v7-bionic # set version label ARG BUILD_DATE @@ -227,108 +6,174 @@ ARG VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="saarg" -# environment settings -ENV HOME="/config" +# package version +ARG TVH_VER="master" +ARG TVHEADEND_COMMIT +# Environment settings +ENV HOME="/config" +ARG DEBIAN_FRONTEND="noninteractive" + +# add dependencies RUN \ - echo "**** install runtime packages ****" && \ - apk add --no-cache \ - bsd-compat-headers \ + apt-get update && \ + apt-get upgrade -qy && \ + apt-get install -qy --no-install-recommends \ + autoconf \ + automake \ + binutils \ + build-essential \ bzip2 \ - curl \ - ffmpeg \ - ffmpeg-libs \ - gnu-libiconv \ + cmake \ + dvb-apps \ + gettext \ + git \ 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 \ + jq \ + libavahi-client-dev \ + libdvbcsa-dev \ + libhdhomerun-dev \ + libiconv-hook-dev \ + libssl-dev \ + libtool \ + libva-dev \ + pkg-config \ + python \ + python3 \ + python3-requests \ wget \ - x264 \ - x265 \ - zlib && \ + 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/${TVH_VER} \ + | jq -r '. | .sha'); \ + fi && \ + 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` \ + --enable-ffmpeg_static \ + --disable-libav \ + \ + `#Options` \ + --disable-bintray_cache \ + --enable-hdhomerun_static \ + --enable-hdhomerun_client \ + --enable-pngquant \ + --enable-trace \ + --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 && \ + 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 \ + 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 \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile index 05d2829..1e89e4b 100644 --- a/Jenkinsfile +++ b/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 \ diff --git a/README.md b/README.md index 28e73bd..4a37833 100644 --- a/README.md +++ b/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. diff --git a/jenkins-vars.yml b/jenkins-vars.yml index 45af6ad..308b871 100644 --- a/jenkins-vars.yml +++ b/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' diff --git a/readme-vars.yml b/readme-vars.yml index 43a23f3..d20c10b 100644 --- a/readme-vars.yml +++ b/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." }