From: Flole Date: Sun, 2 Feb 2025 16:28:43 +0000 (+0000) Subject: Fix CI Builds 1/2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=81fa396a89204f0788a922c38a6d75f45b1df1fa;p=thirdparty%2Ftvheadend.git Fix CI Builds 1/2 Update run-on-arch to v3 This should finally fix the segfaults Fix x265 builds Fix cloudsmith uploads for Fedora Ensure new x265 flags are used Fix native builds Update libx265 --- diff --git a/.github/workflows/build-ci.yml b/.github/workflows/build-ci.yml index de0112539..677dd897c 100644 --- a/.github/workflows/build-ci.yml +++ b/.github/workflows/build-ci.yml @@ -47,13 +47,13 @@ jobs: import_github_env: true commands: | sudo apt-get update -y - sudo apt-get install --force-yes -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libdvbcsa-dev python3 python3-requests debhelper ccache lsb-release + sudo apt-get install --force-yes -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libdvbcsa-dev python3 python3-requests debhelper ccache lsb-release libc6-dev-armel-cross DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre3-dev || DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre2-dev AUTOBUILD_CONFIGURE_EXTRA=--enable-ccache\ --enable-ffmpeg_static\ --enable-hdhomerun_static\ --python=python3 ./Autobuild.sh -p raspios support/cloudsmith.sh -n -p raspios -f '../tvheadend*.deb' - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: - name: Tvheadend-deb + name: Tvheadend-RPiOS-${{ matrix.arch }} path: tvheadend*.deb if-no-files-found: error @@ -68,22 +68,18 @@ jobs: arch: [ armv7, aarch64] distro: [ stretch, buster, bullseye, bookworm, ubuntu16.04, ubuntu18.04, ubuntu20.04, ubuntu22.04, ubuntu_latest ] include: - - arch: armv6 - distro: jessie - arch: armv6 distro: stretch - arch: armv6 distro: buster - arch: armv6 distro: bullseye - - arch: armv7 - distro: jessie steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - - uses: uraimo/run-on-arch-action@v2 + - uses: uraimo/run-on-arch-action@v3 name: Build artifact id: build with: @@ -125,9 +121,9 @@ jobs: if [ '${{ matrix.distro }}' = 'stretch' ]; then sed -i 's/security.debian.org/archive.debian.org/g' /etc/apt/sources.list; fi if [ '${{ matrix.distro }}' = 'stretch' ]; then sed -i '/stretch-updates/d' /etc/apt/sources.list; fi case "${{ matrix.distro }}" in - ubuntu*|jessie|stretch|buster|bullseye|bookworm) + ubuntu*|jessie|stretch|buster|bullseye|bookworm|trixie) apt-get update -y - DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libdvbcsa-dev python3 python3-requests debhelper ccache lsb-release + DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libdvbcsa-dev python3 python3-requests debhelper ccache lsb-release libc6-dev-armel-cross DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre3-dev || DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre2-dev ;; fedora*) @@ -145,64 +141,83 @@ jobs: git config --global --add safe.directory /home/runner/work/tvheadend/tvheadend || true AUTOBUILD_CONFIGURE_EXTRA=--enable-ccache\ --enable-ffmpeg_static\ --enable-hdhomerun_static\ --python=python3 ./Autobuild.sh cp ../tvheadend*.deb /artifacts/ + if [ '${{ matrix.distro }}' = 'buster' ] && [ '${{ matrix.arch }}' = 'armv7' ]; then update-ca-certificates --fresh; fi support/cloudsmith.sh -n -f '../tvheadend*.deb' - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: - name: Tvheadend-deb + name: Tvheadend-${{ matrix.distro }}-${{ matrix.arch }} path: artifacts/tvheadend*.deb if-no-files-found: error build-deb-native: runs-on: ubuntu-latest continue-on-error: true - name: Build on native ${{ matrix.container }} + name: Build on native ${{ matrix.container[1] }} strategy: matrix: - container: ["i386/ubuntu:trusty", "ubuntu:trusty", "i386/ubuntu:xenial", "ubuntu:xenial", "ubuntu:bionic", "ubuntu:focal", "ubuntu:jammy", "ubuntu:lunar", "ubuntu:mantic", "ubuntu:noble", "i386/debian:stretch", "debian:stretch", "i386/debian:buster", "debian:buster", "i386/debian:bullseye", "debian:bullseye", "i386/debian:bookworm", "debian:bookworm", "i386/debian:trixie", "debian:trixie", "debian:sid"] - container: - image: ${{ matrix.container }} - env: - ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true + container: [["i386/ubuntu:trusty", "i386-ubuntu-trusty"], ["ubuntu:trusty", "ubuntu-trusty"], ["i386/ubuntu:xenial", "i386-ubuntu-xenial"], ["ubuntu:xenial", "ubuntu-xenial"], ["ubuntu:bionic", "ubuntu-bionic"], ["ubuntu:focal", "ubuntu-focal"], ["ubuntu:jammy", "ubuntu-jammy"], ["ubuntu:noble", "ubuntu-noble"], ["i386/debian:stretch", "i386-debian-strech"], ["debian:stretch", "debian-stretch"], ["i386/debian:buster", "i386-debian-buster"], ["debian:buster", "debian-buster"], ["i386/debian:bullseye", "i386-debian-bullseye"], ["debian:bullseye", "debian-bullseye"], ["i386/debian:bookworm", "i386-debian-bookworm"], ["debian:bookworm", "debian-bookworm"], ["i386/debian:trixie", "i386-debian-trixie"], ["debian:trixie", "debian-trixie"], ["i386/debian:sid", "i386-debian-sid"], ["debian:sid", "debian-sid"]] steps: - - name: Fix old debian apt - if: matrix.container == 'debian:stretch' || matrix.container == 'i386/debian:stretch' + - name: Setup container run: | - sed -i 's/deb.debian.org/archive.debian.org/g' /etc/apt/sources.list - sed -i 's/security.debian.org/archive.debian.org/g' /etc/apt/sources.list - sed -i '/stretch-updates/d' /etc/apt/sources.list + docker pull ${{ matrix.container[0] }} + docker run --name build-container -d -v ${{ github.workspace }}:/workspace ${{ matrix.container[0] }} tail -f /dev/null + - name: Fix old debian apt + if: matrix.container[0] == 'debian:stretch' || matrix.container[0] == 'i386/debian:stretch' + env: + SCRIPT: | + sed -i 's/deb.debian.org/archive.debian.org/g' /etc/apt/sources.list + sed -i 's/security.debian.org/archive.debian.org/g' /etc/apt/sources.list + sed -i '/stretch-updates/d' /etc/apt/sources.list + run: docker exec build-container bash -c "$SCRIPT" - name: Add git ppa - if: startsWith(matrix.container, 'ubuntu') || startsWith(matrix.container, 'i386/ubuntu') - run: | - apt-get update -y - DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y software-properties-common - add-apt-repository ppa:git-core/ppa -y + if: startsWith(matrix.container[0], 'ubuntu') || startsWith(matrix.container[0], 'i386/ubuntu') + env: + SCRIPT: | + apt-get update -y + DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y software-properties-common + add-apt-repository ppa:git-core/ppa -y + run: docker exec build-container bash -c "$SCRIPT" - name: dependencies - run: | - apt-get update -y - DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libdvbcsa-dev python3 python3-requests debhelper ccache lsb-release + env: + SCRIPT: | + apt-get update -y + DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libdvbcsa-dev python3 python3-requests debhelper ccache lsb-release + run: docker exec build-container bash -c "$SCRIPT" - name: pcre-dependency - run: | - DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre3-dev || DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre2-dev + env: + SCRIPT: | + DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre3-dev || DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre2-dev + run: docker exec build-container bash -c "$SCRIPT" - uses: actions/checkout@v3 - if: startsWith(matrix.container, 'i386') != true && matrix.container != 'debian:stretch' with: fetch-depth: 0 - - uses: actions/checkout@v1 - if: startsWith(matrix.container, 'i386') || matrix.container == 'debian:stretch' - name: Workaround safe directory - run: git config --global --add safe.directory /__w/tvheadend/tvheadend + env: + SCRIPT: | + git config --global --add safe.directory /workspace + run: docker exec build-container bash -c "$SCRIPT" - name: build - run: AUTOBUILD_CONFIGURE_EXTRA=--enable-ccache\ --enable-ffmpeg_static\ --enable-hdhomerun_static\ --python=python3 ./Autobuild.sh ${{ (startsWith(matrix.container, 'i386') && '-a i386') || '' }} + env: + SCRIPT: | + cd /workspace + AUTOBUILD_CONFIGURE_EXTRA=--enable-ccache\ --enable-ffmpeg_static\ --enable-hdhomerun_static\ --python=python3 ./Autobuild.sh ${{ (startsWith(matrix.container[0], 'i386') && '-a i386') || '' }} + run: docker exec build-container bash -c "$SCRIPT" - name: copy-result - run: cp ../tvheadend*.deb . - - uses: actions/upload-artifact@v3 - if: startsWith(matrix.container, 'i386') != true + env: + SCRIPT: | + cp tvheadend*.deb workspace/ + run: docker exec build-container bash -c "$SCRIPT" + - uses: actions/upload-artifact@v4 with: - name: Tvheadend-deb + name: Tvheadend-${{ matrix.container[1] }} path: tvheadend*.deb if-no-files-found: error - name: upload-cloudsmith - run: support/cloudsmith.sh -n -f 'tvheadend*.deb' + env: + SCRIPT: | + cd /workspace + support/cloudsmith.sh -n -f 'tvheadend*.deb' + run: docker exec build-container bash -c "$SCRIPT" build-rpm-native: runs-on: ubuntu-latest @@ -210,7 +225,7 @@ jobs: name: Build on native fedora:${{ matrix.releasever }} strategy: matrix: - releasever: ["37", "38", "39", "rawhide"] + releasever: ["37", "38", "39", "40", "41", "42", "rawhide"] container: image: "fedora:${{ matrix.releasever }}" steps: @@ -228,9 +243,9 @@ jobs: run: ./configure --disable-dvbscan --disable-libfdkaac_static --disable-ffmpeg_static --disable-hdhomerun_static --disable-libfdkaac_static --disable-libopus_static --disable-libtheora_static --disable-libvorbis_static --disable-libvpx_static --disable-libx264_static --disable-libx265_static --enable-libfdkaac --enable-hdhomerun_client --enable-libsystemd_daemon --python=/usr/bin/python3 && make -C rpm build -j$(nproc) - name: copy-result run: cp rpm/RPMS/*/tvheadend*.rpm . - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: - name: Tvheadend-RPM + name: Tvheadend-Fedora-${{ matrix.releasever }} path: tvheadend*.rpm if-no-files-found: error - name: upload-cloudsmith diff --git a/.github/workflows/build-cloudsmith.yml b/.github/workflows/build-cloudsmith.yml index c38431dea..ff1f9e93f 100644 --- a/.github/workflows/build-cloudsmith.yml +++ b/.github/workflows/build-cloudsmith.yml @@ -49,13 +49,13 @@ jobs: import_github_env: true commands: | sudo apt-get update -y - sudo apt-get install --force-yes -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libdvbcsa-dev python3 python3-requests debhelper ccache lsb-release + sudo apt-get install --force-yes -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libdvbcsa-dev python3 python3-requests debhelper ccache lsb-release libc6-dev-armel-cross DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre3-dev || DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre2-dev AUTOBUILD_CONFIGURE_EXTRA=--enable-ccache\ --enable-ffmpeg_static\ --enable-hdhomerun_static\ --python=python3 ./Autobuild.sh -p raspios support/cloudsmith.sh -p raspios -f '../tvheadend*.deb' - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: - name: Tvheadend-deb + name: Tvheadend-RPiOS-${{ matrix.arch }} path: tvheadend*.deb if-no-files-found: error @@ -70,22 +70,18 @@ jobs: arch: [ armv7, aarch64] distro: [ stretch, buster, bullseye, bookworm, ubuntu16.04, ubuntu18.04, ubuntu20.04, ubuntu22.04, ubuntu_latest ] include: - - arch: armv6 - distro: jessie - arch: armv6 distro: stretch - arch: armv6 distro: buster - arch: armv6 distro: bullseye - - arch: armv7 - distro: jessie steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - - uses: uraimo/run-on-arch-action@v2 + - uses: uraimo/run-on-arch-action@v3 name: Build artifact id: build with: @@ -134,7 +130,7 @@ jobs: case "${{ matrix.distro }}" in ubuntu*|jessie|stretch|buster|bullseye|bookworm|trixie) apt-get update -y - DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libdvbcsa-dev python3 python3-requests debhelper ccache lsb-release + DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libdvbcsa-dev python3 python3-requests debhelper ccache lsb-release libc6-dev-armel-cross DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre3-dev || DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre2-dev ;; fedora*) @@ -154,70 +150,86 @@ jobs: cp ../tvheadend*.deb /artifacts/ if [ '${{ matrix.distro }}' = 'buster' ] && [ '${{ matrix.arch }}' = 'armv7' ]; then update-ca-certificates --fresh; fi support/cloudsmith.sh -f '../tvheadend*.deb' - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: - name: Tvheadend-deb + name: Tvheadend-${{ matrix.distro }}-${{ matrix.arch }} path: artifacts/tvheadend*.deb if-no-files-found: error build-deb-native: runs-on: ubuntu-latest continue-on-error: true - name: Build on native ${{ matrix.container }} + name: Build on native ${{ matrix.container[1] }} strategy: matrix: - container: ["i386/ubuntu:trusty", "ubuntu:trusty", "i386/ubuntu:xenial", "ubuntu:xenial", "ubuntu:bionic", "ubuntu:focal", "ubuntu:jammy", "ubuntu:noble", "i386/debian:stretch", "debian:stretch", "i386/debian:buster", "debian:buster", "i386/debian:bullseye", "debian:bullseye", "i386/debian:bookworm", "debian:bookworm", "i386/debian:trixie", "debian:trixie", "i386/debian:sid", "debian:sid"] - container: - image: ${{ matrix.container }} - env: - ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true + container: [["i386/ubuntu:trusty", "i386-ubuntu-trusty"], ["ubuntu:trusty", "ubuntu-trusty"], ["i386/ubuntu:xenial", "i386-ubuntu-xenial"], ["ubuntu:xenial", "ubuntu-xenial"], ["ubuntu:bionic", "ubuntu-bionic"], ["ubuntu:focal", "ubuntu-focal"], ["ubuntu:jammy", "ubuntu-jammy"], ["ubuntu:noble", "ubuntu-noble"], ["i386/debian:stretch", "i386-debian-strech"], ["debian:stretch", "debian-stretch"], ["i386/debian:buster", "i386-debian-buster"], ["debian:buster", "debian-buster"], ["i386/debian:bullseye", "i386-debian-bullseye"], ["debian:bullseye", "debian-bullseye"], ["i386/debian:bookworm", "i386-debian-bookworm"], ["debian:bookworm", "debian-bookworm"], ["i386/debian:trixie", "i386-debian-trixie"], ["debian:trixie", "debian-trixie"], ["i386/debian:sid", "i386-debian-sid"], ["debian:sid", "debian-sid"]] steps: - - name: Fix old debian apt - if: matrix.container == 'debian:stretch' || matrix.container == 'i386/debian:stretch' + - name: Setup container run: | - sed -i 's/deb.debian.org/archive.debian.org/g' /etc/apt/sources.list - sed -i 's/security.debian.org/archive.debian.org/g' /etc/apt/sources.list - sed -i '/stretch-updates/d' /etc/apt/sources.list + docker pull ${{ matrix.container[0] }} + docker run --name build-container -d -v ${{ github.workspace }}:/workspace ${{ matrix.container[0] }} tail -f /dev/null + - name: Fix old debian apt + if: matrix.container[0] == 'debian:stretch' || matrix.container[0] == 'i386/debian:stretch' + env: + SCRIPT: | + sed -i 's/deb.debian.org/archive.debian.org/g' /etc/apt/sources.list + sed -i 's/security.debian.org/archive.debian.org/g' /etc/apt/sources.list + sed -i '/stretch-updates/d' /etc/apt/sources.list + run: docker exec build-container bash -c "$SCRIPT" - name: Add git ppa - if: startsWith(matrix.container, 'ubuntu') || startsWith(matrix.container, 'i386/ubuntu') - run: | - apt-get update -y - DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y software-properties-common - add-apt-repository ppa:git-core/ppa -y + if: startsWith(matrix.container[0], 'ubuntu') || startsWith(matrix.container[0], 'i386/ubuntu') + env: + SCRIPT: | + apt-get update -y + DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y software-properties-common + add-apt-repository ppa:git-core/ppa -y + run: docker exec build-container bash -c "$SCRIPT" - name: dependencies - run: | - apt-get update -y - DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libdvbcsa-dev python3 python3-requests debhelper ccache lsb-release + env: + SCRIPT: | + apt-get update -y + DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libdvbcsa-dev python3 python3-requests debhelper ccache lsb-release + run: docker exec build-container bash -c "$SCRIPT" - name: pcre-dependency - run: | - DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre3-dev || DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre2-dev + env: + SCRIPT: | + DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre3-dev || DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre2-dev + run: docker exec build-container bash -c "$SCRIPT" - uses: actions/checkout@v3 - if: startsWith(matrix.container, 'i386') != true && matrix.container != 'debian:stretch' with: fetch-depth: 0 - - uses: actions/checkout@v1 - if: startsWith(matrix.container, 'i386') || matrix.container == 'debian:stretch' - name: Workaround safe directory - run: git config --global --add safe.directory /__w/tvheadend/tvheadend + env: + SCRIPT: | + git config --global --add safe.directory /workspace + run: docker exec build-container bash -c "$SCRIPT" - name: build - run: AUTOBUILD_CONFIGURE_EXTRA=--enable-ccache\ --enable-ffmpeg_static\ --enable-hdhomerun_static\ --python=python3 ./Autobuild.sh ${{ (startsWith(matrix.container, 'i386') && '-a i386') || '' }} env: - NODIRTY: ${{ secrets.NODIRTY }} + SCRIPT: | + cd /workspace + AUTOBUILD_CONFIGURE_EXTRA=--enable-ccache\ --enable-ffmpeg_static\ --enable-hdhomerun_static\ --python=python3 ./Autobuild.sh ${{ (startsWith(matrix.container[0], 'i386') && '-a i386') || '' }} + run: docker exec build-container bash -c "$SCRIPT" - name: copy-result - run: cp ../tvheadend*.deb . - - uses: actions/upload-artifact@v3 - if: startsWith(matrix.container, 'i386') != true + env: + SCRIPT: | + cp tvheadend*.deb workspace/ + run: docker exec build-container bash -c "$SCRIPT" + - uses: actions/upload-artifact@v4 with: - name: Tvheadend-deb + name: Tvheadend-${{ matrix.container[1] }} path: tvheadend*.deb if-no-files-found: error - name: upload-cloudsmith - run: support/cloudsmith.sh -f 'tvheadend*.deb' env: CLOUDSMITH_ORG: ${{ vars.CLOUDSMITH_ORG }} CLOUDSMITH_REPO: ${{ vars.CLOUDSMITH_REPO }} CLOUDSMITH_OWNER: ${{ secrets.CLOUDSMITH_OWNER }} CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_KEY }} + SCRIPT: | + cd /workspace + support/cloudsmith.sh -f 'tvheadend*.deb' + run: docker exec build-container bash -c "$SCRIPT" -e CLOUDSMITH_ORG -e CLOUDSMITH_REPO -e CLOUDSMITH_OWNER -e CLOUDSMITH_API_KEY + build-rpm-native: runs-on: ubuntu-latest @@ -225,7 +237,7 @@ jobs: name: Build on native fedora:${{ matrix.releasever }} strategy: matrix: - releasever: ["37", "38", "39", "rawhide"] + releasever: ["37", "38", "39", "40", "41", "42", "rawhide"] container: image: "fedora:${{ matrix.releasever }}" steps: @@ -240,12 +252,12 @@ jobs: - name: Workaround safe directory run: git config --global --add safe.directory /__w/tvheadend/tvheadend - name: build - run: ./configure --disable-dvbscan --disable-libfdkaac_static --disable-ffmpeg_static --disable-hdhomerun_static --disable-libfdkaac_static --disable-libopus_static --disable-libtheora_static --disable-libvorbis_static --disable-libvpx_static --disable-libx264_static --disable-libx265_static --enable-libfdkaac --enable-hdhomerun_client --enable-libsystemd_daemon --python=/usr/bin/python3 && make -C rpm build + run: ./configure --disable-dvbscan --disable-libfdkaac_static --disable-ffmpeg_static --disable-hdhomerun_static --disable-libfdkaac_static --disable-libopus_static --disable-libtheora_static --disable-libvorbis_static --disable-libvpx_static --disable-libx264_static --disable-libx265_static --enable-libfdkaac --enable-hdhomerun_client --enable-libsystemd_daemon --python=/usr/bin/python3 && make -C rpm build -j$(nproc) - name: copy-result run: cp rpm/RPMS/*/tvheadend*.rpm . - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: - name: Tvheadend-RPM + name: Tvheadend-Fedora-${{ matrix.releasever }} path: tvheadend*.rpm if-no-files-found: error - name: upload-cloudsmith diff --git a/.github/workflows/container-build.yaml b/.github/workflows/container-build.yaml index 199324584..cbd2e4072 100644 --- a/.github/workflows/container-build.yaml +++ b/.github/workflows/container-build.yaml @@ -17,6 +17,7 @@ env: jobs: build-and-push-image: runs-on: ubuntu-latest + continue-on-error: true permissions: contents: read packages: write diff --git a/Autobuild/aarch64.sh b/Autobuild/aarch64.sh index 75e115928..f9b9c6171 100644 --- a/Autobuild/aarch64.sh +++ b/Autobuild/aarch64.sh @@ -1 +1,2 @@ AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=arm64 --disable-libtheora_static --disable-libtheora" +EXTRA_X265_CMAKE_OPTS="${EXTRA_X265_CMAKE_OPTS:-} -DCROSS_COMPILE_ARM64=1" \ No newline at end of file diff --git a/Autobuild/armv6l.sh b/Autobuild/armv6l.sh index a447626fe..f330d4baf 100644 --- a/Autobuild/armv6l.sh +++ b/Autobuild/armv6l.sh @@ -2,4 +2,5 @@ AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=armel" sed -i -E '/-armv6l$/! s/^Package: (.*)(-armv6l)*$/Package: \1-armv6l/g' debian/control sed -i -E 's/^Depends: tvheadend/Depends: tvheadend-armv6l/g' debian/control sed -i -E '/armv6l/! s/package=tvheadend([^ ]*)/package=tvheadend\1-armv6l/g' debian/rules -sed -i -E '/armv6l/! s/--destdir=debian\/tvheadend/--destdir=debian\/tvheadend-armv6l/g' debian/rules \ No newline at end of file +sed -i -E '/armv6l/! s/--destdir=debian\/tvheadend/--destdir=debian\/tvheadend-armv6l/g' debian/rules +EXTRA_X265_CMAKE_OPTS="${EXTRA_X265_CMAKE_OPTS:-} -DCROSS_COMPILE_ARM=1" \ No newline at end of file diff --git a/Autobuild/armv7l.sh b/Autobuild/armv7l.sh index be9f4fb83..ec8b0d0d6 100644 --- a/Autobuild/armv7l.sh +++ b/Autobuild/armv7l.sh @@ -1 +1,2 @@ AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=armhf" +EXTRA_X265_CMAKE_OPTS="${EXTRA_X265_CMAKE_OPTS:-} -DCROSS_COMPILE_ARM=1" \ No newline at end of file diff --git a/Autobuild/bionic-armv7l.sh b/Autobuild/bionic-armv7l.sh index c9333043a..506e27e12 100644 --- a/Autobuild/bionic-armv7l.sh +++ b/Autobuild/bionic-armv7l.sh @@ -1,2 +1,3 @@ +AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --disable-libx265_static --disable-libx265" source Autobuild/armv7l.sh source Autobuild/bionic.sh diff --git a/Autobuild/debian.sh b/Autobuild/debian.sh index 6593bf52a..a4644a9c9 100755 --- a/Autobuild/debian.sh +++ b/Autobuild/debian.sh @@ -31,6 +31,7 @@ build() export JOBSARGS export JARGS export AUTOBUILD_CONFIGURE_EXTRA + export EXTRA_X265_CMAKE_OPTS if ccache=$(which ccache); then echo "Using ccache" diff --git a/Autobuild/raspiosbookworm-armv6l.sh b/Autobuild/raspiosbookworm-armv6l.sh index a4e49be7d..acff9f9e3 100644 --- a/Autobuild/raspiosbookworm-armv6l.sh +++ b/Autobuild/raspiosbookworm-armv6l.sh @@ -1,2 +1,4 @@ +AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --disable-libx265_static --disable-libx265" source Autobuild/armv6l.sh -source Autobuild/raspiosbookworm.sh +EXTRA_X265_CMAKE_OPTS="${EXTRA_X265_CMAKE_OPTS:-} -DCROSS_COMPILE_ARM=0" +source Autobuild/raspiosbookworm.sh \ No newline at end of file diff --git a/Autobuild/raspiosbookworm-armv7l.sh b/Autobuild/raspiosbookworm-armv7l.sh index 560c6d480..3abd3e5ce 100644 --- a/Autobuild/raspiosbookworm-armv7l.sh +++ b/Autobuild/raspiosbookworm-armv7l.sh @@ -1,2 +1,3 @@ source Autobuild/armv7l.sh +EXTRA_X265_CMAKE_OPTS="${EXTRA_X265_CMAKE_OPTS:-} -DCROSS_COMPILE_ARM=0" source Autobuild/raspiosbookworm.sh diff --git a/Autobuild/raspiosbullseye-armv6l.sh b/Autobuild/raspiosbullseye-armv6l.sh index 14634cce3..4b7adb2fb 100644 --- a/Autobuild/raspiosbullseye-armv6l.sh +++ b/Autobuild/raspiosbullseye-armv6l.sh @@ -1,2 +1,3 @@ source Autobuild/armv6l.sh -source Autobuild/raspiosbullseye.sh +EXTRA_X265_CMAKE_OPTS="${EXTRA_X265_CMAKE_OPTS:-} -DCROSS_COMPILE_ARM=0" +source Autobuild/raspiosbullseye.sh \ No newline at end of file diff --git a/Autobuild/raspiosbullseye-armv7l.sh b/Autobuild/raspiosbullseye-armv7l.sh index e38ad9723..28067705c 100644 --- a/Autobuild/raspiosbullseye-armv7l.sh +++ b/Autobuild/raspiosbullseye-armv7l.sh @@ -1,2 +1,3 @@ source Autobuild/armv7l.sh -source Autobuild/raspiosbullseye.sh +EXTRA_X265_CMAKE_OPTS="${EXTRA_X265_CMAKE_OPTS:-} -DCROSS_COMPILE_ARM=0" +source Autobuild/raspiosbullseye.sh \ No newline at end of file diff --git a/Autobuild/stretch-armv6l.sh b/Autobuild/stretch-armv6l.sh index 435d9aff9..5ba213289 100644 --- a/Autobuild/stretch-armv6l.sh +++ b/Autobuild/stretch-armv6l.sh @@ -1,2 +1,3 @@ +AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --disable-libx265_static --disable-libx265" source Autobuild/armv6l.sh source Autobuild/stretch.sh diff --git a/Autobuild/stretch-armv7l.sh b/Autobuild/stretch-armv7l.sh index 6cd0ae9c0..c05e9d49e 100644 --- a/Autobuild/stretch-armv7l.sh +++ b/Autobuild/stretch-armv7l.sh @@ -1,2 +1,3 @@ +AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --disable-libx265_static --disable-libx265" source Autobuild/armv7l.sh source Autobuild/stretch.sh diff --git a/Autobuild/xenial-armv7l.sh b/Autobuild/xenial-armv7l.sh index bb208beb3..b71657f65 100644 --- a/Autobuild/xenial-armv7l.sh +++ b/Autobuild/xenial-armv7l.sh @@ -1,2 +1,3 @@ +AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --disable-libx265_static --disable-libx265" source Autobuild/armv7l.sh source Autobuild/xenial.sh diff --git a/Makefile.ffmpeg b/Makefile.ffmpeg index f1ddc48d1..5ca89bbbd 100644 --- a/Makefile.ffmpeg +++ b/Makefile.ffmpeg @@ -57,11 +57,11 @@ LIBX264_TB = $(LIBX264).tar.bz2 LIBX264_URL = https://code.videolan.org/videolan/x264/-/archive/$(LIBX264_VER)/$(LIBX264_TB) LIBX264_SHA1 = 39132c219a6bae73b322fdfbb3012c6988f3a456 -LIBX265_VER = 3.6 +LIBX265_VER = 4.1 LIBX265 = x265_$(LIBX265_VER) LIBX265_TB = $(LIBX265).tar.gz LIBX265_URL = https://bitbucket.org/multicoreware/x265_git/downloads/$(LIBX265_TB) -LIBX265_SHA1 = 51fc4592a9f1e340d87a51233361cc5a3ffd739d +LIBX265_SHA1 = 11880a3aa9e4ee618f539a2d6a8ece0ea442f505 LIBX265_DIFFS = libx265.pic.diff LIBX265_DIFFS += libx265-silence.patch @@ -280,6 +280,7 @@ $(LIB_ROOT)/$(LIBX265)/.tvh_build: \ cd $(LIB_ROOT)/$(LIBX265)/build/linux && cmake -G "Unix Makefiles" \ -DCMAKE_INSTALL_PREFIX="/ffmpeg" \ -DENABLE_SHARED:BOOL=OFF \ + $(EXTRA_X265_CMAKE_OPTS) \ ../../source DESTDIR=$(EBUILDIR) \ $(MAKE) -C $(LIB_ROOT)/$(LIBX265)/build/linux install diff --git a/support/cloudsmith.sh b/support/cloudsmith.sh index b9d22194d..efc33b5c8 100755 --- a/support/cloudsmith.sh +++ b/support/cloudsmith.sh @@ -55,10 +55,10 @@ case $OSPREFIX$TARGET in OS="ubuntu";; raspios*) OS="raspbian";; - 37|38|39|40) + 37|38|39|40|41) OS="fedora";; - 41|42) - echo -e "${YELLOW}Fedora 40 and 41 (current rawhide) are not (yet) supported by Cloudsmith${NC}" && exit;; + 42|43) + echo -e "${YELLOW}Fedora 42 and 43 (current rawhide) are not (yet) supported by Cloudsmith${NC}" && exit;; *) echo -e "${RED}OS $OSPREFIX$TARGET could not be recognized${NC}" && exit 1;; esac