]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
Fix CI Builds 1/2
authorFlole <Flole998@users.noreply.github.com>
Sun, 2 Feb 2025 16:28:43 +0000 (16:28 +0000)
committerFlole <Flole998@users.noreply.github.com>
Mon, 12 May 2025 16:35:33 +0000 (18:35 +0200)
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

17 files changed:
.github/workflows/build-ci.yml
.github/workflows/build-cloudsmith.yml
.github/workflows/container-build.yaml
Autobuild/aarch64.sh
Autobuild/armv6l.sh
Autobuild/armv7l.sh
Autobuild/bionic-armv7l.sh
Autobuild/debian.sh
Autobuild/raspiosbookworm-armv6l.sh
Autobuild/raspiosbookworm-armv7l.sh
Autobuild/raspiosbullseye-armv6l.sh
Autobuild/raspiosbullseye-armv7l.sh
Autobuild/stretch-armv6l.sh
Autobuild/stretch-armv7l.sh
Autobuild/xenial-armv7l.sh
Makefile.ffmpeg
support/cloudsmith.sh

index de011253933418c2fa602451d21424d10518b24f..677dd897c89c5300155649ff37c503b4316b7b75 100644 (file)
@@ -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
index c38431deac1c28371a42c5937bfdfb5bc82731d6..ff1f9e93f090df88b37a06c4b1c4322041befef5 100644 (file)
@@ -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
index 199324584b1afa03eb5fc8f81f2111d104c88b3a..cbd2e40726ac70e4cc3cb4fd8854a352ec78cb65 100644 (file)
@@ -17,6 +17,7 @@ env:
 jobs:
   build-and-push-image:
     runs-on: ubuntu-latest
+    continue-on-error: true
     permissions:
       contents: read
       packages: write
index 75e115928c66a6e0ec4a2db6936e73584d197e8f..f9b9c6171faae090372ad4b4c4b61b72aa840527 100644 (file)
@@ -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
index a447626fedcc3cf10d8a949d8fcfeaccd7fa894b..f330d4bafbdd3cb76b3cbd706df9913c9f12322e 100644 (file)
@@ -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
index be9f4fb833782348157fccc2fac0489d4add6d09..ec8b0d0d61b05b6d07264788d02a2ab34449cab4 100644 (file)
@@ -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
index c9333043aa29e80224d6eb5475a331a46d67744f..506e27e12ee9a7990c5670d52781504457755d12 100644 (file)
@@ -1,2 +1,3 @@
+AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --disable-libx265_static --disable-libx265"
 source Autobuild/armv7l.sh
 source Autobuild/bionic.sh
index 6593bf52a9b719b02bee365e0771d5095669988e..a4644a9c9de04a2264d89b2167ade842ffeebfb7 100755 (executable)
@@ -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"
index a4e49be7dbbbf430ee1f548c370d28a07151bcba..acff9f9e327c16e95863478f25e5d1d18733c829 100644 (file)
@@ -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
index 560c6d4803bd783210e535032284f019bb3c755e..3abd3e5ce50482189a6571071ff79010594d42a9 100644 (file)
@@ -1,2 +1,3 @@
 source Autobuild/armv7l.sh
+EXTRA_X265_CMAKE_OPTS="${EXTRA_X265_CMAKE_OPTS:-} -DCROSS_COMPILE_ARM=0"
 source Autobuild/raspiosbookworm.sh
index 14634cce36aa8bc937c777e97ef3ea02e4d38e98..4b7adb2fb40c05060abdf7f4ecc717ca7f6fc10d 100644 (file)
@@ -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
index e38ad97238393fb35075883b7d58caf9a8de349d..28067705c2eeba7841c3e4b248677ed95c53311b 100644 (file)
@@ -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
index 435d9aff9941f2af85296198a9b580990689081e..5ba213289bcf9ba6e2baeb9c39da68c9a7abbc16 100644 (file)
@@ -1,2 +1,3 @@
+AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --disable-libx265_static --disable-libx265"
 source Autobuild/armv6l.sh
 source Autobuild/stretch.sh
index 6cd0ae9c01fe05fd12e99a336318af599d1d5f2b..c05e9d49e7ed3f8b1d0459dc1867192aa56c6429 100644 (file)
@@ -1,2 +1,3 @@
+AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --disable-libx265_static --disable-libx265"
 source Autobuild/armv7l.sh
 source Autobuild/stretch.sh
index bb208beb365dc351bfbcb625b73ff66a0de233d2..b71657f651f40e551f566eef46df2ab51cf7b594 100644 (file)
@@ -1,2 +1,3 @@
+AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --disable-libx265_static --disable-libx265"
 source Autobuild/armv7l.sh
 source Autobuild/xenial.sh
index f1ddc48d1efb592e6dcefd4e4fada0fc7b156fe5..5ca89bbbd3dfb3ff77e7a511ffcb68dde3fa5c26 100644 (file)
@@ -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
index b9d22194db7ec72064162961a900fd8e79ac29b5..efc33b5c894473c902b0b04f31d7e9adaaf8e7b3 100755 (executable)
@@ -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