| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- FROM lsiobase/alpine:3.6
- MAINTAINER saarg
- # package version
- ARG ARGTABLE_VER="2.13"
- ARG TVH_VER="v4.2.1"
- ARG TZ="Europe/Oslo"
- ARG XMLTV_VER="0.5.69"
- # set version label
- ARG BUILD_DATE
- ARG VERSION
- LABEL build_version="Build-date:- ${BUILD_DATE}"
- # Environment settings
- ENV HOME="/config"
- # copy patches
- COPY patches/ /tmp/patches/
- # install build packages
- RUN \
- apk add --no-cache --virtual=build-dependencies \
- autoconf \
- automake \
- cmake \
- coreutils \
- ffmpeg-dev \
- file \
- findutils \
- g++ \
- gcc \
- gettext-dev \
- git \
- libgcrypt-dev \
- libhdhomerun-dev \
- libressl-dev \
- libtool \
- libxml2-dev \
- libxslt-dev \
- make \
- mercurial \
- patch \
- pcre2-dev \
- perl-dev \
- pkgconf \
- sdl-dev \
- uriparser-dev \
- wget \
- zlib-dev && \
- apk add --no-cache --virtual=build-dependencies \
- --repository http://nl.alpinelinux.org/alpine/edge/testing \
- gnu-libiconv-dev && \
- # add runtime dependencies required in build stage
- apk add --no-cache \
- bsd-compat-headers \
- bzip2 \
- curl \
- gzip \
- libcrypto1.0 \
- libcurl \
- libressl \
- libssl1.0 \
- linux-headers \
- 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-libwww \
- perl-lingua-en-numbers-ordinate \
- perl-lingua-preferred \
- perl-list-moreutils \
- 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 \
- python \
- tar \
- uriparser \
- wget \
- zlib && \
- # install perl modules for xmltv
- curl -L http://cpanmin.us | perl - App::cpanminus && \
- cpanm --installdeps /tmp/patches && \
- # build dvb-apps
- hg clone http://linuxtv.org/hg/dvb-apps /tmp/dvb-apps && \
- cd /tmp/dvb-apps && \
- make -C lib && \
- make -C lib install && \
- # build tvheadend
- git clone https://github.com/tvheadend/tvheadend.git /tmp/tvheadend && \
- cd /tmp/tvheadend && \
- git checkout "${TVH_VER}" && \
- ./configure \
- --disable-ffmpeg_static \
- --disable-hdhomerun_static \
- --disable-libfdkaac_static \
- --disable-libmfx_static \
- --disable-libtheora_static \
- --disable-libvorbis_static \
- --disable-libvpx_static \
- --disable-libx264_static \
- --disable-libx265_static \
- --enable-hdhomerun_client \
- --enable-libav \
- --infodir=/usr/share/info \
- --localstatedir=/var \
- --mandir=/usr/share/man \
- --prefix=/usr \
- --sysconfdir=/config && \
- make && \
- make install && \
- # build XMLTV
- curl -o /tmp/xmtltv-src.tar.bz2 -L \
- "http://kent.dl.sourceforge.net/project/xmltv/xmltv/${XMLTV_VER}/xmltv-${XMLTV_VER}.tar.bz2" && \
- tar xf /tmp/xmtltv-src.tar.bz2 -C \
- /tmp --strip-components=1 && \
- cd "/tmp/xmltv-${XMLTV_VER}" && \
- /bin/echo -e "yes" | perl Makefile.PL PREFIX=/usr/ INSTALLDIRS=vendor && \
- make && \
- make test && \
- make install && \
- # build 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 && \
- cd /tmp/argtable && \
- ./configure \
- --prefix=/usr && \
- make && \
- make check && \
- make install && \
- # 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 && \
- # install runtime packages
- apk add --no-cache \
- ffmpeg \
- ffmpeg-libs \
- libhdhomerun-libs \
- libxml2 \
- libxslt && \
- apk add --no-cache \
- --repository http://nl.alpinelinux.org/alpine/edge/testing \
- gnu-libiconv && \
- # cleanup
- apk del --purge \
- build-dependencies && \
- rm -rf \
- /config/.cpanm \
- /tmp/*
- # copy local files
- COPY root/ /
- # add picons
- ADD picons.tar.bz2 /picons
- # ports and volumes
- EXPOSE 9981 9982
- VOLUME /config /recordings
|