mirror of
https://github.com/linuxserver/docker-tvheadend.git
synced 2026-04-06 00:00:11 +08:00
Attempt Ubuntu build
This commit is contained in:
parent
c89dd9bee4
commit
d16aa831fc
206
Dockerfile
206
Dockerfile
@ -1,149 +1,8 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
############## picons stage ##############
|
||||
# built by https://github.com/linuxserver/picons-builder
|
||||
FROM ghcr.io/linuxserver/picons-builder as piconsstage
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:edge AS extractstage
|
||||
|
||||
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:3.22 as buildstage
|
||||
############## build stage ##############
|
||||
|
||||
# package versions
|
||||
ARG ARGTABLE_VER="2.13"
|
||||
|
||||
# environment settings
|
||||
ARG TZ="Etc/UTC"
|
||||
ARG TVHEADEND_COMMIT
|
||||
ENV HOME="/config"
|
||||
|
||||
# copy patches and picons
|
||||
COPY patches/ /tmp/patches/
|
||||
COPY --from=piconsstage /picons.tar.bz2 /picons.tar.bz2
|
||||
|
||||
RUN \
|
||||
echo "**** install build packages ****" && \
|
||||
apk add --no-cache \
|
||||
autoconf \
|
||||
automake \
|
||||
bsd-compat-headers \
|
||||
build-base \
|
||||
cmake \
|
||||
ffmpeg4-dev \
|
||||
file \
|
||||
findutils \
|
||||
gettext-dev \
|
||||
git \
|
||||
gnu-libiconv-dev \
|
||||
libdvbcsa-dev \
|
||||
libgcrypt-dev \
|
||||
libhdhomerun-dev \
|
||||
libtool \
|
||||
libva-dev \
|
||||
libvpx-dev \
|
||||
libxml2-dev \
|
||||
libxslt-dev \
|
||||
linux-headers \
|
||||
openssl-dev \
|
||||
opus-dev \
|
||||
patch \
|
||||
pcre2-dev \
|
||||
pkgconf \
|
||||
pngquant \
|
||||
python3 \
|
||||
sdl2-dev \
|
||||
uriparser-dev \
|
||||
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 "**** 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-execinfo \
|
||||
--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 \
|
||||
--python=python3 \
|
||||
--sysconfdir=/config && \
|
||||
make -j 2 && \
|
||||
make DESTDIR=/tmp/tvheadend-build install
|
||||
|
||||
RUN \
|
||||
echo "**** compile argtable2 ****" && \
|
||||
ARGTABLE_VER1="${ARGTABLE_VER//./-}" && \
|
||||
mkdir -p \
|
||||
/tmp/argtable && \
|
||||
curl -s -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 && \
|
||||
# Fix -Wimplicit-function-declaration compile errors
|
||||
sed -i '/#include <limits.h>/a #include <ctype.h>' src/arg_int.c && \
|
||||
sed -i '/#include <assert.h>/a #include <string.h>' tests/fntests.c && \
|
||||
sed -i '/#include <stdlib.h>/a #include <string.h>' tests/test_file.c && \
|
||||
./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 https://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
|
||||
COPY --from=ghcr.io/linuxserver/picons-builder /picons.tar.bz2 /picons.tar.bz2
|
||||
|
||||
RUN \
|
||||
echo "***** extract picons ****" && \
|
||||
@ -152,8 +11,7 @@ RUN \
|
||||
/picons.tar.bz2 -C \
|
||||
/picons
|
||||
|
||||
############## runtime stage ##############
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:3.22
|
||||
FROM ghcr.io/linuxserver/baseimage-ubuntu:noble
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
@ -167,48 +25,36 @@ ENV HOME="/config" \
|
||||
|
||||
RUN \
|
||||
echo "**** install runtime packages ****" && \
|
||||
apk add --no-cache \
|
||||
bsd-compat-headers \
|
||||
curl -1sLf 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/gpg.C6CC06BD69B430C6.key' | gpg --dearmor >> /usr/share/keyrings/tvheadend-tvheadend-archive-keyring.gpg && \
|
||||
curl -1sLf 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/config.deb.txt?distro=ubuntu&codename=noble&component=main' > /etc/apt/sources.list.d/tvheadend-tvheadend.list && \
|
||||
chmod 644 /usr/share/keyrings/tvheadend-tvheadend-archive-keyring.gpg && \
|
||||
chmod 644 /etc/apt/sources.list.d/tvheadend-tvheadend.list && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
comskip \
|
||||
ffmpeg \
|
||||
ffmpeg4-libavcodec \
|
||||
ffmpeg4-libavdevice \
|
||||
ffmpeg4-libavfilter \
|
||||
ffmpeg4-libavformat \
|
||||
ffmpeg4-libavutil \
|
||||
ffmpeg4-libpostproc \
|
||||
ffmpeg4-libswresample \
|
||||
ffmpeg4-libswscale \
|
||||
gnu-libiconv \
|
||||
libdvbcsa \
|
||||
libhdhomerun-libs \
|
||||
libva \
|
||||
libva-intel-driver \
|
||||
intel-media-driver \
|
||||
libvpx \
|
||||
libdvbcsa1 \
|
||||
libhdhomerun5 \
|
||||
libva2 \
|
||||
intel-media-va-driver \
|
||||
libvpx9 \
|
||||
libxml2 \
|
||||
libxslt \
|
||||
linux-headers \
|
||||
mesa-va-gallium \
|
||||
opus \
|
||||
pcre2 \
|
||||
libxslt1.1 \
|
||||
mesa-va-drivers \
|
||||
libopus0 \
|
||||
libpcre2-32-0 \
|
||||
perl \
|
||||
perl-datetime-format-strptime \
|
||||
perl-json \
|
||||
perl-json-xs \
|
||||
py3-requests \
|
||||
python3-requests \
|
||||
python3 \
|
||||
uriparser \
|
||||
x264 \
|
||||
x265 \
|
||||
xmltv \
|
||||
zlib && \
|
||||
tvheadend \
|
||||
liburiparser1 \
|
||||
libx264-164 \
|
||||
libx265-199 \
|
||||
xmltv && \
|
||||
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version
|
||||
|
||||
# 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 /picons /picons
|
||||
COPY --from=extractstage /picons /picons
|
||||
COPY root/ /
|
||||
|
||||
# ports and volumes
|
||||
|
||||
@ -1,149 +1,8 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
############## picons stage ##############
|
||||
# built by https://github.com/linuxserver/picons-builder
|
||||
FROM ghcr.io/linuxserver/picons-builder as piconsstage
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-edge AS extractstage
|
||||
|
||||
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.22 as buildstage
|
||||
############## build stage ##############
|
||||
|
||||
# package versions
|
||||
ARG ARGTABLE_VER="2.13"
|
||||
|
||||
# environment settings
|
||||
ARG TZ="Etc/UTC"
|
||||
ARG TVHEADEND_COMMIT
|
||||
ENV HOME="/config"
|
||||
|
||||
# copy patches and picons
|
||||
COPY patches/ /tmp/patches/
|
||||
COPY --from=piconsstage /picons.tar.bz2 /picons.tar.bz2
|
||||
|
||||
RUN \
|
||||
echo "**** install build packages ****" && \
|
||||
apk add --no-cache \
|
||||
autoconf \
|
||||
automake \
|
||||
bsd-compat-headers \
|
||||
build-base \
|
||||
cmake \
|
||||
ffmpeg4-dev \
|
||||
file \
|
||||
findutils \
|
||||
gettext-dev \
|
||||
git \
|
||||
gnu-libiconv-dev \
|
||||
libdvbcsa-dev \
|
||||
libgcrypt-dev \
|
||||
libhdhomerun-dev \
|
||||
libtool \
|
||||
libva-dev \
|
||||
libvpx-dev \
|
||||
libxml2-dev \
|
||||
libxslt-dev \
|
||||
linux-headers \
|
||||
openssl-dev \
|
||||
opus-dev \
|
||||
patch \
|
||||
pcre2-dev \
|
||||
pkgconf \
|
||||
pngquant \
|
||||
python3 \
|
||||
sdl2-dev \
|
||||
uriparser-dev \
|
||||
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 "**** 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-execinfo \
|
||||
--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 \
|
||||
--python=python3 \
|
||||
--sysconfdir=/config && \
|
||||
make -j 2 && \
|
||||
make DESTDIR=/tmp/tvheadend-build install
|
||||
|
||||
RUN \
|
||||
echo "**** compile argtable2 ****" && \
|
||||
ARGTABLE_VER1="${ARGTABLE_VER//./-}" && \
|
||||
mkdir -p \
|
||||
/tmp/argtable && \
|
||||
curl -s -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 && \
|
||||
# Fix -Wimplicit-function-declaration compile errors
|
||||
sed -i '/#include <limits.h>/a #include <ctype.h>' src/arg_int.c && \
|
||||
sed -i '/#include <assert.h>/a #include <string.h>' tests/fntests.c && \
|
||||
sed -i '/#include <stdlib.h>/a #include <string.h>' tests/test_file.c && \
|
||||
./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 https://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
|
||||
COPY --from=ghcr.io/linuxserver/picons-builder /picons.tar.bz2 /picons.tar.bz2
|
||||
|
||||
RUN \
|
||||
echo "***** extract picons ****" && \
|
||||
@ -152,9 +11,7 @@ RUN \
|
||||
/picons.tar.bz2 -C \
|
||||
/picons
|
||||
|
||||
|
||||
############## runtime stage ##############
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.22
|
||||
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-noble
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
@ -168,46 +25,36 @@ ENV HOME="/config" \
|
||||
|
||||
RUN \
|
||||
echo "**** install runtime packages ****" && \
|
||||
apk add --no-cache \
|
||||
bsd-compat-headers \
|
||||
curl -1sLf 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/gpg.C6CC06BD69B430C6.key' | gpg --dearmor >> /usr/share/keyrings/tvheadend-tvheadend-archive-keyring.gpg && \
|
||||
curl -1sLf 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/config.deb.txt?distro=ubuntu&codename=noble&component=main' > /etc/apt/sources.list.d/tvheadend-tvheadend.list && \
|
||||
chmod 644 /usr/share/keyrings/tvheadend-tvheadend-archive-keyring.gpg && \
|
||||
chmod 644 /etc/apt/sources.list.d/tvheadend-tvheadend.list && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
comskip \
|
||||
ffmpeg \
|
||||
ffmpeg4-libavcodec \
|
||||
ffmpeg4-libavdevice \
|
||||
ffmpeg4-libavfilter \
|
||||
ffmpeg4-libavformat \
|
||||
ffmpeg4-libavutil \
|
||||
ffmpeg4-libpostproc \
|
||||
ffmpeg4-libswresample \
|
||||
ffmpeg4-libswscale \
|
||||
gnu-libiconv \
|
||||
libdvbcsa \
|
||||
libhdhomerun-libs \
|
||||
libva \
|
||||
libvpx \
|
||||
libdvbcsa1 \
|
||||
libhdhomerun5 \
|
||||
libva2 \
|
||||
intel-media-va-driver \
|
||||
libvpx9 \
|
||||
libxml2 \
|
||||
libxslt \
|
||||
linux-headers \
|
||||
mesa-va-gallium \
|
||||
opus \
|
||||
pcre2 \
|
||||
libxslt1.1 \
|
||||
mesa-va-drivers \
|
||||
libopus0 \
|
||||
libpcre2-32-0 \
|
||||
perl \
|
||||
perl-datetime-format-strptime \
|
||||
perl-json \
|
||||
perl-json-xs \
|
||||
py3-requests \
|
||||
python3-requests \
|
||||
python3 \
|
||||
uriparser \
|
||||
x264 \
|
||||
x265 \
|
||||
xmltv \
|
||||
zlib && \
|
||||
tvheadend \
|
||||
liburiparser1 \
|
||||
libx264-164 \
|
||||
libx265-199 \
|
||||
xmltv && \
|
||||
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version
|
||||
|
||||
# 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 /picons /picons
|
||||
COPY --from=extractstage /picons /picons
|
||||
COPY root/ /
|
||||
|
||||
# ports and volumes
|
||||
|
||||
2
Jenkinsfile
vendored
2
Jenkinsfile
vendored
@ -29,7 +29,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'
|
||||
|
||||
@ -352,7 +352,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
|
||||
|
||||
## Versions
|
||||
|
||||
* **27.07.25:** - Rebase to Alpine 3.22.
|
||||
* **27.07.25:** - Rebase to Ubuntu Noble.
|
||||
* **25.06.24:** - Rebase to Alpine 3.20.
|
||||
* **20.03.24:** - Rebase to Alpine 3.19.
|
||||
* **16.10.23:** - Add mesa-va-gallium package for AMD transcoding.
|
||||
|
||||
@ -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'
|
||||
|
||||
1466
patches/config.guess
vendored
1466
patches/config.guess
vendored
File diff suppressed because it is too large
Load Diff
1836
patches/config.sub
vendored
1836
patches/config.sub
vendored
File diff suppressed because it is too large
Load Diff
@ -148,7 +148,7 @@ init_diagram: |
|
||||
"tvheadend:latest" <- Base Images
|
||||
# changelog
|
||||
changelogs:
|
||||
- {date: "27.07.25:", desc: "Rebase to Alpine 3.22."}
|
||||
- {date: "27.07.25:", desc: "Rebase to Ubuntu Noble."}
|
||||
- {date: "25.06.24:", desc: "Rebase to Alpine 3.20."}
|
||||
- {date: "20.03.24:", desc: "Rebase to Alpine 3.19."}
|
||||
- {date: "16.10.23:", desc: "Add mesa-va-gallium package for AMD transcoding."}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user