-name: Build Tvheadend CI
+name: Build Tvheadend Repo
on:
push:
branches: [ master ]
- pull_request:
- branches: [ master ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
- build:
+ build-raspberry:
+ runs-on: ubuntu-latest
+ continue-on-error: true
+ name: Build on Raspberry Pi ${{ matrix.arch }}
+ env:
+ GITHUB_ENV: CLOUDSMITH_API_KEY
+ CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_KEY }}
+ strategy:
+ matrix:
+ arch: [armv6l, armv7l, aarch64]
+ include:
+ - arch: armv6l
+ cpu: arm1176
+ base_image: raspios_lite:latest
+ cpu_info: cpuinfo/raspberrypi_zero_w
+ - arch: armv7l
+ cpu: cortex-a7
+ base_image: raspios_lite:latest
+ cpu_info: cpuinfo/raspberrypi_3b
+ - arch: aarch64
+ cpu: cortex-a53
+ base_image: raspios_lite_arm64:latest
+ cpu_info: cpuinfo/raspberrypi_zero2_w_arm64
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ - uses: pguyot/arm-runner-action@v2
+ with:
+ base_image: ${{ matrix.base_image }}
+ cpu: ${{ matrix.cpu }}
+ cpu_info: ${{ matrix.cpu_info }}
+ image_additional_mb: 10000
+ copy_artifact_path: ../tvheadend*.deb
+ import_github_env: true
+ commands: |
+ sudo apt-get update -y
+ sudo apt-get install -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 -y libpcre3-dev || DEBIAN_FRONTEND=noninteractive apt-get install -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
+ with:
+ name: Tvheadend-deb
+ path: tvheadend*.deb
+ if-no-files-found: error
+ build-crosscompile:
+ # The host should always be linux
runs-on: ubuntu-latest
+ continue-on-error: true
+ name: Build on ${{ matrix.distro }} ${{ matrix.arch }}
+ # Run steps on a matrix
+ strategy:
+ matrix:
+ arch: [ armv7, aarch64]
+ distro: [ stretch, buster, bullseye, ubuntu16.04, ubuntu18.04, ubuntu20.04, ubuntu22.04 ]
+ 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
- - name: dependencies
- run: |
- sudo apt-get update
- sudo apt-get install -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libpcre2-dev libdvbcsa-dev python3 python3-requests debhelper ccache
- - name: build
- run: AUTOBUILD_CONFIGURE_EXTRA=--enable-ccache\ --enable-ffmpeg_static\ --enable-hdhomerun_static\ --python=python3 ./Autobuild.sh
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ - uses: uraimo/run-on-arch-action@v2
+ name: Build artifact
+ id: build
+ with:
+ arch: ${{ matrix.arch }}
+ distro: ${{ matrix.distro }}
+
+ # Not required, but speeds up builds
+ githubToken: ${{ github.token }}
+
+ # Create an artifacts directory
+ setup: |
+ mkdir -p "${PWD}/artifacts"
+
+ # Mount the artifacts directory as /artifacts in the container
+ dockerRunArgs: |
+ --volume "${PWD}/artifacts:/artifacts"
+
+ # Pass some environment variables to the container
+ env: | # YAML, but pipe character is necessary
+ artifact_name: git-${{ matrix.distro }}_${{ matrix.arch }}
+ CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_KEY }}
+
+
+ # The shell to run commands with in the container
+ shell: /bin/sh
+
+ # Install some dependencies in the container. This speeds up builds if
+ # you are also using githubToken. Any dependencies installed here will
+ # be part of the container image that gets cached, so subsequent
+ # builds don't have to re-install them. The image layer is cached
+ # publicly in your project's package repository, so it is vital that
+ # no secrets are present in the container state or logs.
+ install: |
+ if [ '${{ matrix.distro }}' = 'jessie' ]; then sed -i 's/archive.raspbian.org/legacy.raspbian.org/g' /etc/apt/sources.list; fi
+ case "${{ matrix.distro }}" in
+ ubuntu*|jessie|stretch|buster|bullseye)
+ apt-get update -y
+ DEBIAN_FRONTEND=noninteractive apt-get install -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 -y libpcre3-dev || DEBIAN_FRONTEND=noninteractive apt-get install -y libpcre2-dev
+ ;;
+ fedora*)
+ dnf -y update
+ dnf -y install git which
+ ;;
+ alpine*)
+ apk update
+ apk add git
+ ;;
+ esac
+
+ # Produce a binary artifact
+ run: |
+ 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/
+ support/cloudsmith.sh -f '../tvheadend*.deb'
+ - uses: actions/upload-artifact@v3
+ with:
+ name: Tvheadend-deb
+ 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 }}
+ strategy:
+ matrix:
+ container: ["ubuntu:bionic", "ubuntu:focal", "ubuntu:impish", "ubuntu:trusty", "ubuntu:xenial", "i386/ubuntu:trusty", "i386/ubuntu:xenial", "debian:bookworm", "debian:bullseye", "debian:buster", "debian:sid", "debian:stretch", "i386/debian:bookworm", "i386/debian:bullseye", "i386/debian:buster", "i386/debian:sid", "i386/debian:stretch"]
+ container:
+ image: ${{ matrix.container }}
+ steps:
+ - 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 -y software-properties-common
+ add-apt-repository ppa:git-core/ppa -y
+ - name: dependencies
+ run: |
+ apt-get update -y
+ DEBIAN_FRONTEND=noninteractive apt-get install -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
+ - name: pcre-dependency
+ run: |
+ DEBIAN_FRONTEND=noninteractive apt-get install -y libpcre3-dev || DEBIAN_FRONTEND=noninteractive apt-get install -y libpcre2-dev
+ - 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
+ - name: build
+ run: AUTOBUILD_CONFIGURE_EXTRA=--enable-ccache\ --enable-ffmpeg_static\ --enable-hdhomerun_static\ --python=python3 ./Autobuild.sh ${{ (startsWith(matrix.container, 'i386') && '-a i386') || '' }}
+ - name: copy-result
+ run: cp ../tvheadend*.deb .
+ - uses: actions/upload-artifact@v3
+ if: startsWith(matrix.container, 'i386') != true
+ with:
+ name: Tvheadend-deb
+ path: tvheadend*.deb
+ if-no-files-found: error
+ - name: upload-cloudsmith
+ run: support/cloudsmith.sh -f 'tvheadend*.deb'
+ env:
+ CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_KEY }}
--- /dev/null
+name: Coverity Scan
+
+# We only want to test official release code, not every pull request.
+on:
+# Allows you to run this workflow manually from the Actions tab
+ workflow_dispatch:
+
+jobs:
+ coverity:
+ runs-on: ubuntu-latest
+ environment: Coverity
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ - name: dependencies
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libpcre2-dev libdvbcsa-dev python3 python3-requests debhelper ccache
+ - name: Configure
+ run: ./configure --disable-dvbcscan --disable-tvhcsa --enable-libfdkaac --enable-nvenc --enable-vaapi --enable-mmal --enable-omx
+ - name: Download Coverity Build Tool
+ run: |
+ wget -q https://scan.coverity.com/download/linux64 --post-data "token=$TOKEN&project=tvheadend%2Ftvheadend" -O cov-analysis-linux64.tar.gz
+ mkdir cov-analysis-linux64
+ tar xzf cov-analysis-linux64.tar.gz --strip 1 -C cov-analysis-linux64
+ env:
+ TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
+ - name: Build with cov-build
+ run: |
+ export PATH=`pwd`/cov-analysis-linux64/bin:$PATH
+ cov-build --dir cov-int make
+ - name: Submit the result to Coverity Scan
+ run: |
+ tar czvf tvheadend.tgz cov-int
+ curl \
+ --form token=$TOKEN \
+ --form email=$EMAIL \
+ --form file=@tvheadend.tgz \
+ --form version="`./build.linux/tvheadend -v | awk -F ' ' '{print $3}'`" \
+ --form description="`./build.linux/tvheadend -v | awk -F ' ' '{print $3}'`" \
+ https://scan.coverity.com/builds?project=tvheadend%2Ftvheadend
+ env:
+ TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
+ EMAIL: ${{ secrets.COVERITY_SCAN_EMAIL }}
--- /dev/null
+name: Build Tvheadend CI
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+
+ # Allows you to run this workflow manually from the Actions tab
+ workflow_dispatch:
+
+jobs:
+ build-ubuntu-latest:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ - name: dependencies
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libpcre2-dev libdvbcsa-dev python3 python3-requests debhelper ccache
+ - name: build
+ run: AUTOBUILD_CONFIGURE_EXTRA=--enable-ccache\ --enable-ffmpeg_static\ --enable-hdhomerun_static\ --python=python3 ./Autobuild.sh
EXTRA_BUILD_NAME=""
JARGS=""
JOBSARGS=""
-TARGET="debian"
+TARGET=""
+ARCHOVR=""
RELEASE="--release"
WORKINGDIR="/var/tmp/showtime-autobuild"
FILELIST="$PWD/filelist.txt"
OP="build"
-while getopts "vht:e:j:w:o:c:" OPTION
+OSPREFIX=""
+
+while getopts "vht:e:j:w:o:p:a:c:" OPTION
do
case $OPTION in
v)
w)
WORKINGDIR="$OPTARG"
;;
+ a)
+ ARCHOVR="$OPTARG"
+ ;;
+ p)
+ OSPREFIX="$OPTARG"
+ ;;
o)
OP="$OPTARG"
;;
done
if [[ -z $TARGET ]]; then
- echo "target (-t) not specified"
- exit 1
+ source Autobuild/identify-os.sh
+ if ! [[ -z $ARCHOVR ]]; then
+ ARCH=$ARCHOVR
+ fi
+ TARGET="$DISTRO-$ARCH"
fi
+TARGET=$OSPREFIX$TARGET
+
#
# $1 = local file path
# $2 = type
git status
if [ -f Autobuild/${TARGET}.sh ]; then
+ echo "Building for $TARGET"
source Autobuild/${TARGET}.sh
else
echo "target $TARGET not supported"
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=x86_64"
-DEBDIST=bionic
-source Autobuild/debian.sh
+AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=arm64 --disable-libtheora_static --disable-libtheora"
AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=armel"
-DEBDIST=buster
-source Autobuild/debian.sh
AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=armhf"
-DEBDIST=xenial
-source Autobuild/debian.sh
--- /dev/null
+source Autobuild/aarch64.sh
+source Autobuild/bionic.sh
--- /dev/null
+source Autobuild/armv7l.sh
+source Autobuild/bionic.sh
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=i686"
-DEBDIST=bionic
-source Autobuild/debian.sh
+source Autobuild/i386.sh
+source Autobuild/bionic.sh
--- /dev/null
+source Autobuild/i686.sh
+source Autobuild/bionic.sh
--- /dev/null
+source Autobuild/x86_64.sh
+source Autobuild/bionic.sh
--- /dev/null
+DEBDIST=bionic
+source Autobuild/debian.sh
--- /dev/null
+source Autobuild/i386.sh
+source Autobuild/bookworm.sh
--- /dev/null
+source Autobuild/i686.sh
+source Autobuild/bookworm.sh
--- /dev/null
+source Autobuild/x86_64.sh
+source Autobuild/bookworm.sh
--- /dev/null
+DEBDIST=bookworm
+source Autobuild/debian.sh
--- /dev/null
+source Autobuild/aarch64.sh
+source Autobuild/bullseye.sh
+++ /dev/null
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=x86_64"
-DEBDIST=bullseye
-source Autobuild/debian.sh
+++ /dev/null
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=arm64"
-DEBDIST=bullseye
-source Autobuild/debian.sh
+++ /dev/null
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=armel"
-DEBDIST=bullseye
-source Autobuild/debian.sh
+++ /dev/null
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=armhf"
-DEBDIST=bullseye
-source Autobuild/debian.sh
--- /dev/null
+AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --disable-libx265_static --disable-libx265"
+source Autobuild/armv6l.sh
+source Autobuild/bullseye.sh
--- /dev/null
+AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --disable-libx265_static --disable-libx265"
+source Autobuild/armv7l.sh
+source Autobuild/bullseye.sh
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=i686"
-DEBDIST=bullseye
-source Autobuild/debian.sh
+source Autobuild/i386.sh
+source Autobuild/bullseye.sh
--- /dev/null
+source Autobuild/i686.sh
+source Autobuild/bullseye.sh
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=x86_64"
-DEBDIST=focal
-source Autobuild/debian.sh
+AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=i686"
+
+source Autobuild/bullseye.sh
--- /dev/null
+source Autobuild/x86_64.sh
+source Autobuild/bullseye.sh
--- /dev/null
+DEBDIST=bullseye
+source Autobuild/debian.sh
--- /dev/null
+source Autobuild/aarch64.sh
+source Autobuild/buster.sh
+++ /dev/null
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=x86_64"
-DEBDIST=buster
-source Autobuild/debian.sh
+++ /dev/null
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=armhf"
-DEBDIST=buster
-source Autobuild/debian.sh
--- /dev/null
+AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --disable-libx265_static --disable-libx265"
+source Autobuild/armv6l.sh
+source Autobuild/buster.sh
--- /dev/null
+AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --disable-libx265_static --disable-libx265"
+source Autobuild/armv7l.sh
+source Autobuild/buster.sh
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=i686"
-DEBDIST=buster
-source Autobuild/debian.sh
+source Autobuild/i386.sh
+source Autobuild/buster.sh
--- /dev/null
+source Autobuild/i686.sh
+source Autobuild/buster.sh
--- /dev/null
+source Autobuild/x86_64.sh
+source Autobuild/buster.sh
--- /dev/null
+DEBDIST=buster
+source Autobuild/debian.sh
--- /dev/null
+source Autobuild/aarch64.sh
+source Autobuild/focal.sh
--- /dev/null
+AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --disable-libx265_static --disable-libx265"
+source Autobuild/armv7l.sh
+source Autobuild/focal.sh
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=i686"
-DEBDIST=focal
-source Autobuild/debian.sh
+source Autobuild/i386.sh
+source Autobuild/focal.sh
--- /dev/null
+source Autobuild/i686.sh
+source Autobuild/focal.sh
--- /dev/null
+source Autobuild/x86_64.sh
+source Autobuild/focal.sh
--- /dev/null
+DEBDIST=focal
+source Autobuild/debian.sh
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=arm64"
-DEBDIST=buster
-source Autobuild/debian.sh
+AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=i386"
+
--- /dev/null
+AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=i686"
+
--- /dev/null
+# Determine OS platform
+UNAME=$(uname | tr "[:upper:]" "[:lower:]")
+# If Linux, try to determine specific distribution
+if [ "$UNAME" == "linux" ]; then
+ # If available, use LSB to identify distribution
+ if [ -x "$(command -v lsb_release)" ]; then
+ export DISTRO=$(lsb_release -c | cut -d: -f2 | sed s/'^\t'//)
+ echo "OS identified using lsb_release command"
+ elif [ -f /etc/lsb-release ]; then
+ export DISTRO=$(awk -F= '/^DISTRIB_CODENAME/{print $2}' /etc/lsb-release)
+ echo "OS identified using lsb_release file"
+ # Otherwise, use release info file
+ elif [ -f /etc/os-release ]; then
+ export DISTRO=$(awk -F= '/^VERSION_CODENAME/{print $2}' /etc/os-release)
+ echo "OS identified using os-release file"
+ else
+ export DISTRO=$(ls -d /etc/[A-Za-z]*[_-][rv]e[lr]* | grep -v "lsb" | cut -d'/' -f3 | cut -d'-' -f1 | cut -d'_' -f1)
+ echo "OS identified using fallback"
+ fi
+fi
+# For everything else (or if above failed), just use generic identifier
+[ "$DISTRO" == "" ] && export DISTRO=$UNAME
+unset UNAME
+export ARCH=$(uname -m)
--- /dev/null
+source Autobuild/x86_64.sh
+source Autobuild/impish.sh
--- /dev/null
+DEBDIST=impish
+source Autobuild/debian.sh
--- /dev/null
+source Autobuild/aarch64.sh
+source Autobuild/jammy.sh
--- /dev/null
+AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --disable-libx265_static --disable-libx265 --disable-ffmpeg_static"
+source Autobuild/armv7l.sh
+source Autobuild/jammy.sh
--- /dev/null
+
+source Autobuild/armv7l.sh
+source Autobuild/jammy.sh
--- /dev/null
+source Autobuild/x86_64.sh
+source Autobuild/jammy.sh
--- /dev/null
+DEBDIST=jammy
+source Autobuild/debian.sh
--- /dev/null
+source Autobuild/aarch64.sh
+source Autobuild/jessie.sh
+++ /dev/null
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=x86_64"
-DEBDIST=jessie
-source Autobuild/debian.sh
--- /dev/null
+AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --disable-libx265_static --disable-libx265 --nowerror"
+source Autobuild/armv6l.sh
+source Autobuild/jessie.sh
--- /dev/null
+AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --disable-libx265_static --disable-libx265 --nowerror"
+source Autobuild/armv7l.sh
+source Autobuild/jessie.sh
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=i686"
-DEBDIST=jessie
-source Autobuild/debian.sh
+source Autobuild/i386.sh
+source Autobuild/jessie.sh
--- /dev/null
+source Autobuild/i686.sh
+source Autobuild/jessie.sh
--- /dev/null
+source Autobuild/x86_64.sh
+source Autobuild/jessie.sh
--- /dev/null
+DEBDIST=jessie
+source Autobuild/debian.sh
+++ /dev/null
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=armhf"
-DEBDIST=raspbianbuster
-source Autobuild/debian.sh
+++ /dev/null
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=armhf"
-DEBDIST=raspbianjessie
-source Autobuild/debian.sh
+++ /dev/null
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=armhf"
-DEBDIST=raspbianstretch
-source Autobuild/debian.sh
--- /dev/null
+source Autobuild/aarch64.sh
+source Autobuild/raspiosbullseye.sh
--- /dev/null
+source Autobuild/armv6l.sh
+source Autobuild/raspiosbullseye.sh
--- /dev/null
+source Autobuild/armv7l.sh
+source Autobuild/raspiosbullseye.sh
--- /dev/null
+DEBDIST=raspbianbullseye
+source Autobuild/debian.sh
--- /dev/null
+source Autobuild/armv7l.sh
+DEBDIST=raspbianbuster
+source Autobuild/debian.sh
--- /dev/null
+source Autobuild/armv7l.sh
+DEBDIST=raspbianjessie
+source Autobuild/debian.sh
--- /dev/null
+source Autobuild/armv7l.sh
+DEBDIST=raspbianstretch
+source Autobuild/debian.sh
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=i686"
-DEBDIST=sid
-source Autobuild/debian.sh
+source Autobuild/i386.sh
+source Autobuild/sid.sh
--- /dev/null
+source Autobuild/i686.sh
+source Autobuild/sid.sh
--- /dev/null
+source Autobuild/x86_64.sh
+source Autobuild/sid.sh
--- /dev/null
+DEBDIST=sid
+source Autobuild/debian.sh
--- /dev/null
+source Autobuild/aarch64.sh
+source Autobuild/stretch.sh
+++ /dev/null
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=x86_64"
-DEBDIST=stretch
-source Autobuild/debian.sh
--- /dev/null
+source Autobuild/armv6l.sh
+source Autobuild/stretch.sh
--- /dev/null
+source Autobuild/armv7l.sh
+source Autobuild/stretch.sh
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=i686"
-DEBDIST=stretch
-source Autobuild/debian.sh
+source Autobuild/i386.sh
+source Autobuild/stretch.sh
--- /dev/null
+source Autobuild/i686.sh
+source Autobuild/stretch.sh
--- /dev/null
+source Autobuild/x86_64.sh
+source Autobuild/stretch.sh
--- /dev/null
+DEBDIST=stretch
+source Autobuild/debian.sh
+++ /dev/null
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=x86_64"
-DEBDIST=trusty
-source Autobuild/debian.sh
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=i686"
-DEBDIST=trusty
-source Autobuild/debian.sh
+source Autobuild/i386.sh
+source Autobuild/trusty.sh
--- /dev/null
+source Autobuild/i686.sh
+source Autobuild/trusty.sh
--- /dev/null
+source Autobuild/x86_64.sh
+source Autobuild/trusty.sh
--- /dev/null
+AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --nowerror"
+DEBDIST=trusty
+source Autobuild/debian.sh
AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=x86_64"
-DEBDIST=sid
-source Autobuild/debian.sh
--- /dev/null
+source Autobuild/aarch64.sh
+source Autobuild/xenial.sh
+++ /dev/null
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=x86_64"
-DEBDIST=xenial
-source Autobuild/debian.sh
+++ /dev/null
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=arm64"
-DEBDIST=xenial
-source Autobuild/debian.sh
--- /dev/null
+source Autobuild/armv7l.sh
+source Autobuild/xenial.sh
-AUTOBUILD_CONFIGURE_EXTRA="${AUTOBUILD_CONFIGURE_EXTRA:-} --arch=i686"
-DEBDIST=xenial
-source Autobuild/debian.sh
+source Autobuild/i386.sh
+source Autobuild/xenial.sh
--- /dev/null
+source Autobuild/i686.sh
+source Autobuild/xenial.sh
--- /dev/null
+source Autobuild/x86_64.sh
+source Autobuild/xenial.sh
--- /dev/null
+DEBDIST=xenial
+source Autobuild/debian.sh
--- /dev/null
+#!/bin/bash
+#
+# Entry point for the Cloudsmith upload system
+#
+# (c) Flole 2022. All rights reserved.
+#
+#
+
+set -eu
+
+TARGET=""
+OSPREFIX=""
+OS=""
+FILE=""
+
+while getopts "t:p:f:" OPTION
+do
+ case $OPTION in
+ t)
+ TARGET="$OPTARG"
+ ;;
+ p)
+ OSPREFIX="$OPTARG"
+ ;;
+ f)
+ FILE="$OPTARG"
+ ;;
+ esac
+done
+
+if [[ -z $FILE ]]; then
+ echo "No file specified"
+ exit 1
+fi
+
+if [[ -z $TARGET ]]; then
+ source Autobuild/identify-os.sh
+ TARGET="$DISTRO"
+fi
+
+case $OSPREFIX$TARGET in
+ bookworm|bullseye|buster|sid|stretch|jessie)
+ OS="debian";;
+ bionic|focal|jammy|impish|trusty|xenial)
+ OS="ubuntu";;
+ raspiosbullseye|raspiosbuster|raspiosjessieraspiosstretch)
+ OS="raspbian";;
+ *) echo "OS $TARGET could not be recognized" && exit 1;;
+esac
+
+export LC_ALL=C.UTF-8
+export LANG=C.UTF-8
+export DEBIAN_FRONTEND=noninteractive
+
+apt install -y python3.7 || true
+
+apt install -y python3-pip || apt install -y python-pip
+
+pip3 install --upgrade pip || pip install --upgrade pip || pip2 install --upgrade pip
+
+pip3 install --upgrade cloudsmith-cli || pip install --upgrade cloudsmith-cli || pip2 install --upgrade cloudsmith-cli
+
+FILEARRAY=($FILE)
+
+for package in "${FILEARRAY[@]}"; do
+ python3 /usr/local/bin/cloudsmith push deb "tvheadend/tvheadend/$OS/$TARGET" $package || python /usr/local/bin/cloudsmith push deb "tvheadend/tvheadend/$OS/$TARGET" $package || cloudsmith push deb "tvheadend/tvheadend/$OS/$TARGET" $package
+done
PlopNLk9hM6xZdRZkZFWdSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/
ywaZWWDYWGWVjUTR939+J399roD1B0y2PpxxVJkES/1Y+Zj0
-----END CERTIFICATE-----
+
+# Sectigo Root CA
+-----BEGIN CERTIFICATE-----
+MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB
+iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
+cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
+BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw
+MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV
+BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
+aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy
+dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
+AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B
+3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY
+tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/
+Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2
+VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT
+79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6
+c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT
+Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l
+c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee
+UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE
+Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd
+BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G
+A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF
+Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO
+VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3
+ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs
+8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR
+iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze
+Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ
+XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/
+qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB
+VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB
+L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG
+jjxDah2nGN59PRbxYvnKkKj9
+-----END CERTIFICATE-----