From b33466d39280fd85ba2c15ffdcf704223a43fe88 Mon Sep 17 00:00:00 2001 From: Markus <16664240+Paulchen-Panther@users.noreply.github.com> Date: Wed, 17 Nov 2021 20:35:28 +0100 Subject: [PATCH] APT update / Submodule updates / added updateHyperionUser script again (#1366) * Test new APT builds * test build * final changes for bookworm and jammy * - Include updateHyperionUser script again - Update package dependencies for APT builds * Installation guide updated * Removed alpha notes and added arm64 APT builds * update docker-compile script * Overwrite CMAKE_SYSTEM_PROCESSOR on Windows builds --- .github/workflows/apt.json | 82 --------------------------- .github/workflows/apt.yml | 3 +- .github/workflows/apt/amd64.json | 82 +++++++++++++++++++++++++++ .github/workflows/apt/arm64.json | 50 ++++++++++++++++ .github/workflows/apt/armhf.json | 66 +++++++++++++++++++++ .github/workflows/nightly.yml | 2 +- Installation.md | 17 ++++-- README.md | 4 +- bin/scripts/docker-compile.sh | 10 ++-- cmake/packages.cmake | 7 +++ debian/distributions | 31 +++++++--- debian/{rules => rules.in} | 2 +- dependencies/external/flatbuffers | 2 +- dependencies/external/rpi_ws281x | 2 +- doc/development/CompileHowto.md | 20 ++++++- doc/development/SupportedPlatforms.md | 17 +++--- libsrc/api/CMakeLists.txt | 16 +++--- snap/snapcraft.yaml | 2 +- src/hyperiond/CMakeLists.txt | 1 + 19 files changed, 290 insertions(+), 126 deletions(-) delete mode 100644 .github/workflows/apt.json create mode 100644 .github/workflows/apt/amd64.json create mode 100644 .github/workflows/apt/arm64.json create mode 100644 .github/workflows/apt/armhf.json rename debian/{rules => rules.in} (82%) mode change 100755 => 100644 diff --git a/.github/workflows/apt.json b/.github/workflows/apt.json deleted file mode 100644 index 622a10e6..00000000 --- a/.github/workflows/apt.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "include": - [ - { - "distribution": "Bionic", - "architecture": "amd64", - "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", - "package-depends": "libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls10, libturbojpeg, libcec4", - "description": "Ubuntu 18.04 (Bionic Beaver) (amd64)" - }, - { - "distribution": "Focal", - "architecture": "amd64", - "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", - "package-depends": "libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec4", - "description": "Ubuntu 20.04 (Focal Fossa) (amd64)" - }, - { - "distribution": "Groovy", - "architecture": "amd64", - "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", - "package-depends": "libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec6", - "description": "Ubuntu 20.10 (Groovy Gorilla) (amd64)" - }, - { - "distribution": "Hirsute", - "architecture": "amd64", - "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", - "package-depends": "libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec6", - "description": "Ubuntu 21.04 (Hirsute Hippo) (amd64)" - }, - { - "distribution": "Impish", - "architecture": "amd64", - "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", - "package-depends": "libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec6", - "description": "Ubuntu 21.10 (Impish Indri) (amd64)" - }, - { - "distribution": "Stretch", - "architecture": "amd64", - "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl1.0-dev, zlib1g-dev, libmbedtls-dev", - "package-depends": "libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls10, libturbojpeg0, libcec4", - "description": "Debian 9.x (Stretch) (amd64)" - }, - { - "distribution": "Stretch", - "architecture": "armhf", - "build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, zlib1g-dev, libssl1.0-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev", - "package-depends": "libqt5widgets5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls10, libturbojpeg0, libcec4", - "description":"Debian 9.x (Stretch) (armhf)" - }, - { - "distribution": "Buster", - "architecture": "amd64", - "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", - "package-depends": "libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg0, libcec4", - "description": "Debian 10.x (Buster) (amd64)" - }, - { - "distribution": "Buster", - "architecture": "armhf", - "build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, zlib1g-dev, libssl1.0-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev", - "package-depends": "libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg0, libcec4", - "description": "Debian 10.x (Buster) (armhf)" - }, - { - "distribution": "Bullseye", - "architecture": "amd64", - "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", - "package-depends": "libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg0, libcec6", - "description": "Debian 11.x (Bullseye) (amd64)" - }, - { - "distribution": "Bullseye", - "architecture": "armhf", - "build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, zlib1g-dev, libssl1.0-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev", - "package-depends": "libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg0, libcec6", - "description": "Debian 11.x (Bullseye) (armhf)" - } - ] -} diff --git a/.github/workflows/apt.yml b/.github/workflows/apt.yml index 87d8a58b..7f9879b5 100644 --- a/.github/workflows/apt.yml +++ b/.github/workflows/apt.yml @@ -10,7 +10,7 @@ jobs: - name: Set APT matrix id: apt-ppa run: | - APT=$(echo $(cat .github/workflows/apt.json) | jq --compact-output .) + APT=$(jq -n '.include |= [inputs[]]' .github/workflows/apt/*.json --compact-output) echo "::set-output name=apt::$APT" outputs: apt-matrix: ${{ steps.apt-ppa.outputs.apt }} @@ -48,6 +48,7 @@ jobs: dch --create --distribution ${{ env.DISTRIBUTION }} --package 'hyperion' -v '${{ env.VERSION }}~${{ env.DISTRIBUTION }}' '${{ github.event.commits[0].message }}' && \ cp -fr LICENSE debian/copyright && \ sed 's/@BUILD_DEPENDS@/${{ matrix.build-depends }}/g; s/@DEPENDS@/${{ matrix.package-depends }}/g; s/@ARCHITECTURE@/${{ matrix.architecture }}/g; s/@STANDARDS_VERSION@/${{ env.STANDARDS_VERSION }}/g' debian/control.in > debian/control && \ + sed 's/@CMAKE_ENVIRONMENT@/${{ matrix.cmake-environment }}/g' debian/rules.in > debian/rules && \ tar -cJf ../hyperion_${{ env.VERSION }}~${{ env.DISTRIBUTION }}.orig.tar.xz . && \ debuild --no-lintian -uc -us && \ cp ../hyperion_* /deploy" diff --git a/.github/workflows/apt/amd64.json b/.github/workflows/apt/amd64.json new file mode 100644 index 00000000..dd6f5e7a --- /dev/null +++ b/.github/workflows/apt/amd64.json @@ -0,0 +1,82 @@ +[ + { + "distribution": "Bionic", + "architecture": "amd64", + "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl1.0-dev, zlib1g-dev, libmbedtls-dev", + "package-depends": "libpython3.6, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls10, libturbojpeg, libcec4", + "cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Ubuntu 18.04 (Bionic Beaver) (amd64)" + }, + { + "distribution": "Focal", + "architecture": "amd64", + "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", + "package-depends": "libpython3.8, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec4", + "cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Ubuntu 20.04 (Focal Fossa) (amd64)" + }, + { + "distribution": "Groovy", + "architecture": "amd64", + "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", + "package-depends": "libpython3.8, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec6", + "cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Ubuntu 20.10 (Groovy Gorilla) (amd64)" + }, + { + "distribution": "Hirsute", + "architecture": "amd64", + "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", + "package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec6", + "cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Ubuntu 21.04 (Hirsute Hippo) (amd64)" + }, + { + "distribution": "Impish", + "architecture": "amd64", + "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", + "package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec6", + "cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Ubuntu 21.10 (Impish Indri) (amd64)" + }, + { + "distribution": "Jammy", + "architecture": "amd64", + "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", + "package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec6", + "cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Ubuntu 22.04 (Jammy Jellyfish) (amd64)" + }, + { + "distribution": "Stretch", + "architecture": "amd64", + "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl1.0-dev, zlib1g-dev, libmbedtls-dev", + "package-depends": "libpython3.5, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls10, libturbojpeg0, libcec4", + "cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Debian 9.x (Stretch) (amd64)" + }, + { + "distribution": "Buster", + "architecture": "amd64", + "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", + "package-depends": "libpython3.7, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg0, libcec4", + "cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Debian 10.x (Buster) (amd64)" + }, + { + "distribution": "Bullseye", + "architecture": "amd64", + "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", + "package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg0, libcec6", + "cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Debian 11.x (Bullseye) (amd64)" + }, + { + "distribution": "Bookworm", + "architecture": "amd64", + "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", + "package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg0, libcec6", + "cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Debian 12.x (Bookworm) (amd64)" + } +] diff --git a/.github/workflows/apt/arm64.json b/.github/workflows/apt/arm64.json new file mode 100644 index 00000000..ba6f5e6a --- /dev/null +++ b/.github/workflows/apt/arm64.json @@ -0,0 +1,50 @@ +[ + { + "distribution": "Bionic", + "architecture": "arm64", + "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl1.0-dev, zlib1g-dev, libmbedtls-dev", + "package-depends": "libpython3.6, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls10, libturbojpeg, libcec4", + "cmake-environment": "-DENABLE_DISPMANX=OFF -DENABLE_X11=ON -DENABLE_XCB=ON -DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Ubuntu 18.04 (Bionic Beaver) (arm64)" + }, + { + "distribution": "Focal", + "architecture": "arm64", + "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", + "package-depends": "libpython3.8, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec4", + "cmake-environment": "-DENABLE_DISPMANX=OFF -DENABLE_X11=ON -DENABLE_XCB=ON -DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Ubuntu 20.04 (Focal Fossa) (arm64)" + }, + { + "distribution": "Hirsute", + "architecture": "arm64", + "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", + "package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec6", + "cmake-environment": "-DENABLE_DISPMANX=OFF -DENABLE_X11=ON -DENABLE_XCB=ON -DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Ubuntu 21.04 (Hirsute Hippo) (arm64)" + }, + { + "distribution": "Impish", + "architecture": "arm64", + "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", + "package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec6", + "cmake-environment": "-DENABLE_DISPMANX=OFF -DENABLE_X11=ON -DENABLE_XCB=ON -DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Ubuntu 21.10 (Impish Indri) (arm64)" + }, + { + "distribution": "Buster", + "architecture": "arm64", + "build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, zlib1g-dev, libssl-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev", + "package-depends": "libpython3.7, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg0, libcec4", + "cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Debian 10.x (Buster) (arm64)" + }, + { + "distribution": "Bullseye", + "architecture": "arm64", + "build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, zlib1g-dev, libssl-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev", + "package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg0, libcec6", + "cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Debian 11.x (Bullseye) (arm64)" + } +] diff --git a/.github/workflows/apt/armhf.json b/.github/workflows/apt/armhf.json new file mode 100644 index 00000000..3dc8b6d3 --- /dev/null +++ b/.github/workflows/apt/armhf.json @@ -0,0 +1,66 @@ +[ + { + "distribution": "Bionic", + "architecture": "armhf", + "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl1.0-dev, zlib1g-dev, libmbedtls-dev", + "package-depends": "libpython3.6, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls10, libturbojpeg, libcec4", + "cmake-environment": "-DENABLE_DISPMANX=OFF -DENABLE_X11=ON -DENABLE_XCB=ON -DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Ubuntu 18.04 (Bionic Beaver) (armhf)" + }, + { + "distribution": "Focal", + "architecture": "armhf", + "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", + "package-depends": "libpython3.8, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec4", + "cmake-environment": "-DENABLE_DISPMANX=OFF -DENABLE_X11=ON -DENABLE_XCB=ON -DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Ubuntu 20.04 (Focal Fossa) (armhf)" + }, + { + "distribution": "Hirsute", + "architecture": "armhf", + "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", + "package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec6", + "cmake-environment": "-DENABLE_DISPMANX=OFF -DENABLE_X11=ON -DENABLE_XCB=ON -DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Ubuntu 21.04 (Hirsute Hippo) (armhf)" + }, + { + "distribution": "Impish", + "architecture": "armhf", + "build-depends": "git, cmake, build-essential, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, libqt5x11extras5-dev, libusb-1.0-0-dev, python3-dev, libcec-dev, libxcb-image0-dev, libxcb-util0-dev, libxcb-shm0-dev, libxcb-render0-dev, libxcb-randr0-dev, libxrandr-dev, libxrender-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, libturbojpeg0-dev, libssl-dev, zlib1g-dev, libmbedtls-dev", + "package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg, libcec6", + "cmake-environment": "-DENABLE_DISPMANX=OFF -DENABLE_X11=ON -DENABLE_XCB=ON -DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Ubuntu 21.10 (Impish Indri) (armhf)" + }, + { + "distribution": "Stretch", + "architecture": "armhf", + "build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, zlib1g-dev, libssl1.0-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev", + "package-depends": "libpython3.5, libusb-1.0-0, libqt5widgets5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls10, libturbojpeg0, libcec4", + "cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description":"Debian 9.x (Stretch) (armhf)" + }, + { + "distribution": "Buster", + "architecture": "armhf", + "build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, zlib1g-dev, libssl1.0-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev", + "package-depends": "libpython3.7, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg0, libcec4", + "cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Debian 10.x (Buster) (armhf)" + }, + { + "distribution": "Bullseye", + "architecture": "armhf", + "build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, zlib1g-dev, libssl-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev", + "package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg0, libcec6", + "cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Debian 11.x (Bullseye) (armhf)" + }, + { + "distribution": "Bookworm", + "architecture": "armhf", + "build-depends": "git, cmake, python3-dev, qtbase5-dev, libqt5serialport5-dev, libqt5sql5-sqlite, libqt5svg5-dev, build-essential, libusb-1.0-0-dev, libcec-dev, libavahi-core-dev, libavahi-compat-libdnssd-dev, zlib1g-dev, libssl-dev, libraspberrypi-dev, libturbojpeg0-dev, libmbedtls-dev", + "package-depends": "libpython3.9, libusb-1.0-0, libqt5widgets5, libqt5x11extras5, libqt5sql5, libqt5sql5-sqlite, libqt5serialport5, libavahi-compat-libdnssd1, libmbedtls12, libturbojpeg0, libcec6", + "cmake-environment": "-DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release", + "description": "Debian 12.x (Bookworm) (armhf)" + } +] diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 76624460..665320ac 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -33,7 +33,7 @@ jobs: - name: Set nightly matrix id: nightly-ppa run: | - NIGHTLY=$(echo $(cat .github/workflows/apt.json) | jq --compact-output .) + NIGHTLY=$(jq -n '.include |= [inputs[]]' .github/workflows/apt/*.json --compact-output) echo "::set-output name=nightly::$NIGHTLY" outputs: nightly-matrix: ${{ steps.nightly-ppa.outputs.nightly }} diff --git a/Installation.md b/Installation.md index 57e14503..18f58d79 100644 --- a/Installation.md +++ b/Installation.md @@ -5,24 +5,29 @@ This page contains general installation steps for Hyperion. For Linux please fol ## Linux: On the following operating systems, Hyperion can currently be installed/updated using the method listed below: -- Raspbian Stretch/Raspberry Pi OS and later (armhf) -- Debian Stretch (9) and later (armhf/x64) -- Ubuntu 18.04 and later (x64) +- Raspbian Stretch/Raspberry Pi OS and later (armhf/arm64) +- Debian Stretch (9) and later (armhf/arm64/x86_64) +- Ubuntu 18.04 and later (armhf/arm64/x86_64) *** ### Install Hyperion: -1. Add Hyperion’s official GPG key: +1. Add necessary packages for the installation: +```bash +sudo apt-get update && sudo apt-get install wget gpg apt-transport-https lsb-release +``` + +2. Add Hyperion’s official GPG key: ```bash wget -qO- https://apt.hyperion-project.org/hyperion.pub.key | sudo gpg --dearmor -o /usr/share/keyrings/hyperion.pub.gpg ``` -2. Add Hyperion-Project to your APT sources: +3. Add Hyperion-Project to your APT sources: ```bash echo "deb [signed-by=/usr/share/keyrings/hyperion.pub.gpg] https://apt.hyperion-project.org/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hyperion.list ``` -3. Update your local package index and install Hyperion: +4. Update your local package index and install Hyperion: ```bash sudo apt-get update && sudo apt-get install hyperion ``` diff --git a/README.md b/README.md index 91922902..3a9943f9 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ ## About Hyperion -[Hyperion](https://github.com/hyperion-project/hyperion.ng) is an opensource [Bias or Ambient Lighting](https://en.wikipedia.org/wiki/Bias_lighting) implementation which you might know from TV manufacturers. It supports many LED devices and video grabbers. The project is still in a alpha development stage (no stable release available). +[Hyperion](https://github.com/hyperion-project/hyperion.ng) is an opensource [Bias or Ambient Lighting](https://en.wikipedia.org/wiki/Bias_lighting) implementation which you might know from TV manufacturers. It supports many LED devices and video grabbers. ![Screenshot](doc/screenshot.png) @@ -53,7 +53,7 @@ Released and unreleased changes at [Changelog.md](CHANGELOG.md) See [CompileHowto](doc/development/CompileHowto.md). ## Download -Alpha releases available from the [Hyperion release page](https://github.com/hyperion-project/hyperion.ng/releases) +Releases available from the [Hyperion release page](https://github.com/hyperion-project/hyperion.ng/releases) ## License The source is released under MIT-License (see https://opensource.org/licenses/MIT).
diff --git a/bin/scripts/docker-compile.sh b/bin/scripts/docker-compile.sh index 556292f7..0be2596f 100755 --- a/bin/scripts/docker-compile.sh +++ b/bin/scripts/docker-compile.sh @@ -10,7 +10,7 @@ BUILD_TYPE="Release" # the docker image at GitHub Container Registry BUILD_IMAGE="x86_64" # the docker tag at GitHub Container Registry -BUILD_TAG="buster" +BUILD_TAG="bullseye" # build packages (.deb .zip ...) BUILD_PACKAGES=true # packages string inserted to cmake cmd @@ -70,7 +70,7 @@ echo "######################################################## # # docker-compile.sh -h # Show this help message # docker-compile.sh -i x86_64 # The docker image, one of x86_64 | armv6l | armv7l | rpi-raspbian -# docker-compile.sh -t stretch # The docker tag, stretch or buster +# docker-compile.sh -t buster # The docker tag, stretch, buster or bullseye # docker-compile.sh -b Release # cmake Release or Debug build # docker-compile.sh -p true # If true, build packages with CPack # docker-compile.sh -l # Run build using local code files @@ -95,10 +95,10 @@ do t) BUILD_TAG=${OPTARG};; b) BUILD_TYPE=${OPTARG};; p) BUILD_PACKAGES=${OPTARG};; - f) BUILD_PLATFORM=${OPTARG,,};; + f) BUILD_PLATFORM=${OPTARG,,};; l) BUILD_LOCAL=1;; c) BUILD_INCREMENTAL=1;; - v) _VERBOSE=1;; + v) _VERBOSE=1;; h) printHelp; exit 0;; esac done @@ -181,7 +181,7 @@ if [ ${DOCKERRC} == 0 ]; then if [ ${BUILD_PACKAGES} == "true" ]; then echo "---> Copying packages to host folder: ${DEPLOY_PATH}" && - cp -v ${BUILD_PATH}/Hyperion-* ${DEPLOY_PATH} 2>/dev/null + cp -v ${BUILD_PATH}/Hyperion-* ${DEPLOY_PATH} 2>/dev/null echo "---> Find deployment packages in: ${DEPLOY_PATH}" sudo chown -fR $(stat -c "%U:%G" ${BASE_PATH}) ${DEPLOY_PATH} fi diff --git a/cmake/packages.cmake b/cmake/packages.cmake index 7b25f20e..346d21bf 100644 --- a/cmake/packages.cmake +++ b/cmake/packages.cmake @@ -30,6 +30,13 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") endif() endif() +# Overwrite CMAKE_SYSTEM_PROCESSOR for Windows (visual) +if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "AMD64") + if(${CMAKE_HOST_WIN32}) + set(CMAKE_SYSTEM_PROCESSOR "x64") + endif() +endif() + # Apply to all packages, some of these can be overwritten with generator specific content # https://cmake.org/cmake/help/v3.5/module/CPack.html diff --git a/debian/distributions b/debian/distributions index 57fe85de..317c2bb2 100644 --- a/debian/distributions +++ b/debian/distributions @@ -1,7 +1,7 @@ Origin: Hyperion-Project Label: apt.hyperion-project.org Codename: bionic -Architectures: amd64 +Architectures: amd64 armhf arm64 Components: main Description: Official APT Repository by Hyperion Project SignWith: yes @@ -9,7 +9,7 @@ SignWith: yes Origin: Hyperion-Project Label: apt.hyperion-project.org Codename: focal -Architectures: amd64 +Architectures: amd64 armhf arm64 Components: main Description: Official APT Repository by Hyperion Project SignWith: yes @@ -25,7 +25,7 @@ SignWith: yes Origin: Hyperion-Project Label: apt.hyperion-project.org Codename: hirsute -Architectures: amd64 +Architectures: amd64 armhf arm64 Components: main Description: Official APT Repository by Hyperion Project SignWith: yes @@ -33,6 +33,14 @@ SignWith: yes Origin: Hyperion-Project Label: apt.hyperion-project.org Codename: impish +Architectures: amd64 armhf arm64 +Components: main +Description: Official APT Repository by Hyperion Project +SignWith: yes + +Origin: Hyperion-Project +Label: apt.hyperion-project.org +Codename: jammy Architectures: amd64 Components: main Description: Official APT Repository by Hyperion Project @@ -40,7 +48,7 @@ SignWith: yes Origin: Hyperion-Project Label: apt.hyperion-project.org -Suite: oldstable +Suite: oldoldstable Codename: stretch Architectures: armhf amd64 Components: main @@ -49,9 +57,18 @@ SignWith: yes Origin: Hyperion-Project Label: apt.hyperion-project.org -Suite: stable +Suite: oldstable Codename: buster -Architectures: armhf amd64 +Architectures: amd64 armhf arm64 +Components: main +Description: Official APT Repository by Hyperion Project +SignWith: yes + +Origin: Hyperion-Project +Label: apt.hyperion-project.org +Suite: stable +Codename: bullseye +Architectures: amd64 armhf arm64 Components: main Description: Official APT Repository by Hyperion Project SignWith: yes @@ -59,7 +76,7 @@ SignWith: yes Origin: Hyperion-Project Label: apt.hyperion-project.org Suite: unstable -Codename: bullseye +Codename: bookworm Architectures: armhf amd64 Components: main Description: Official APT Repository by Hyperion Project diff --git a/debian/rules b/debian/rules.in old mode 100755 new mode 100644 similarity index 82% rename from debian/rules rename to debian/rules.in index aee926b0..a8d28d84 --- a/debian/rules +++ b/debian/rules.in @@ -5,7 +5,7 @@ BUILDDIR = build build: mkdir $(BUILDDIR); - cd $(BUILDDIR); cmake -DUSE_SYSTEM_MBEDTLS_LIBS=ON -DENABLE_DEPLOY_DEPENDENCIES=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../debian/tmp/usr .. + cd $(BUILDDIR); cmake @CMAKE_ENVIRONMENT@ -DCMAKE_INSTALL_PREFIX=../debian/tmp/usr .. make -j4 -C $(BUILDDIR) binary: binary-indep binary-arch diff --git a/dependencies/external/flatbuffers b/dependencies/external/flatbuffers index c8fa0afd..fd4ff23d 160000 --- a/dependencies/external/flatbuffers +++ b/dependencies/external/flatbuffers @@ -1 +1 @@ -Subproject commit c8fa0afdfc907452edbf2f5f3110f2f673fc4a70 +Subproject commit fd4ff23da05b282d12a485b203f8176c9f4ffdf0 diff --git a/dependencies/external/rpi_ws281x b/dependencies/external/rpi_ws281x index 3a20f1bd..55d79246 160000 --- a/dependencies/external/rpi_ws281x +++ b/dependencies/external/rpi_ws281x @@ -1 +1 @@ -Subproject commit 3a20f1bdd740a144de180a07d8d3317920459d2d +Subproject commit 55d79246519418638be131ad53888829e65c414c diff --git a/doc/development/CompileHowto.md b/doc/development/CompileHowto.md index dc7925b3..7c5fca3e 100644 --- a/doc/development/CompileHowto.md +++ b/doc/development/CompileHowto.md @@ -15,6 +15,10 @@ wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/ ```console wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh && chmod +x *.sh && ./docker-compile.sh -i rpi-raspbian -t buster ``` +**Raspberry Pi OS Bullseye** +```console +wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh && chmod +x *.sh && ./docker-compile.sh -i rpi-raspbian -t bullseye +``` ## Cross compilation on x86_64 for: @@ -26,6 +30,10 @@ wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/ ```console wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh && chmod +x *.sh && ./docker-compile.sh -i x86_64 -t buster ``` +**x86_64 (Debian Bullseye):** +```console +wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh && chmod +x *.sh && ./docker-compile.sh -i x86_64 -t bullseye +``` **Raspberry Pi v1 & ZERO (Debian Stretch)** ```console wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh && chmod +x *.sh && ./docker-compile.sh -i armv6l @@ -34,6 +42,10 @@ wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/ ```console wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh && chmod +x *.sh && ./docker-compile.sh -i armv6l -t buster ``` +**Raspberry Pi v1 & ZERO (Debian Bullseye)** +```console +wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh && chmod +x *.sh && ./docker-compile.sh -i armv6l -t bullseye +``` **Raspberry Pi 2/3/4 (Debian Stretch)** ```console wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh && chmod +x *.sh && ./docker-compile.sh -i armv7l @@ -42,15 +54,19 @@ wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/ ```console wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh && chmod +x *.sh && ./docker-compile.sh -i armv7l -t buster ``` +**Raspberry Pi 2/3/4 (Debian Bullseye)** +```console +wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh && chmod +x *.sh && ./docker-compile.sh -i armv7l -t bullseye +``` ## Cross compilation on x86_64 for developers Using additional options you can cross compile locally -l: use a local hyperion source code directory rather than cloning from GitHub -c: do incremental compiles, Note: you need to keep the image and tag stable -**Compile code in $HYPERION_HOME incrementally for Raspberry Pi 2/3/4 (Debian Buster)** +**Compile code in $HYPERION_HOME incrementally for Raspberry Pi 2/3/4 (Debian Bullseye)** ```console cd $HYPERION_HOME -./bin/scripts/docker-compile.sh -l -c -i armv7l -t buster +./bin/scripts/docker-compile.sh -l -c -i armv7l -t bullseye ``` # The usual way diff --git a/doc/development/SupportedPlatforms.md b/doc/development/SupportedPlatforms.md index 93525e73..9647a271 100644 --- a/doc/development/SupportedPlatforms.md +++ b/doc/development/SupportedPlatforms.md @@ -8,11 +8,11 @@ In case of problems, it is recommended checking with the wider Hyperion communit |-----------|-----------------|--------------------|-----------------------------------------|-------------------------------------------------------------------------------|------------------------------------| | X64 | Windows | 10 | QT¹ | [Windows-AMD64.exe](https://github.com/hyperion-project/hyperion.ng/releases) | Direct X9 Grabber via self-compile | | X64 | Ubuntu | 18.04, 20.04² | QT¹
XCB/X11¹ | [Linux-x86_64.deb](https://github.com/hyperion-project/hyperion.ng/releases) | | -| X64 | Debian | 9, 10³ | QT¹
XCB/X11¹ | [Linux-x86_64.deb](https://github.com/hyperion-project/hyperion.ng/releases) | | -| RPi 4 | HyperBian | 9, 10³ | QT¹
XCB/X11¹
DispmanX | [HyperBian.zip](https://github.com/Hyperion-Project/HyperBian/releases) | | -| RPi 4 | Raspberry Pi OS | 9, 10³ | QT¹
XCB/X11¹
DispmanX | [Linux-armv7l.deb](https://github.com/hyperion-project/hyperion.ng/releases) | | -| RPi 3 /3+ | HyperBian | 9, 10³ | QT¹
XCB/X11¹
DispmanX | [HyperBian.zip](https://github.com/hyperion-project/hyperion.ng/releases) | | -| RPi 3 /3+ | Raspberry Pi OS | 9, 10³ | QT¹
XCB/X11¹
DispmanX | [Linux-armv7l.deb](https://github.com/hyperion-project/hyperion.ng/releases) | | +| X64 | Debian | 9, 10, 11³ | QT¹
XCB/X11¹ | [Linux-x86_64.deb](https://github.com/hyperion-project/hyperion.ng/releases) | | +| RPi 4 | HyperBian | 9, 10, 11³ | QT¹
XCB/X11¹
DispmanX | [HyperBian.zip](https://github.com/Hyperion-Project/HyperBian/releases) | | +| RPi 4 | Raspberry Pi OS | 9, 10, 11³ | QT¹
XCB/X11¹
DispmanX | [Linux-armv7l.deb](https://github.com/hyperion-project/hyperion.ng/releases) | | +| RPi 3 /3+ | HyperBian | 9, 10, 11³ | QT¹
XCB/X11¹
DispmanX | [HyperBian.zip](https://github.com/hyperion-project/hyperion.ng/releases) | | +| RPi 3 /3+ | Raspberry Pi OS | 9, 10, 11³ | QT¹
XCB/X11¹
DispmanX | [Linux-armv7l.deb](https://github.com/hyperion-project/hyperion.ng/releases) | | ## Unofficial In case you have an additional working setups you would like to share with the community, please get in touch or issue a PR to have the table updated. @@ -22,7 +22,7 @@ In case you have an additional working setups you would like to share with the c | X64 | macOS | 11 | QT
OSX | [macOS-x86_64.tar.gz](https://github.com/hyperion-project/hyperion.ng/releases) | M1 not tested | | X64 | Fedora | | QT¹
XCB/X11¹ | [Linux-x86_64.rpm](https://github.com/hyperion-project/hyperion.ng/releases) | | | X64 | Arch | | QT¹
XCB/X11¹ | [Linux-x86_64.rpm](https://github.com/hyperion-project/hyperion.ng/releases) | | -| RPi 0/ 1 / 2 | Raspberry Pi OS | 9, 10³ | QT¹
XCB/X11¹
DispmanX | [Linux-armv6l.tar.gz](https://github.com/hyperion-project/hyperion.ng/releases) | No recommended | +| RPi 0/ 1 / 2 | Raspberry Pi OS | 9, 10, 11³ | QT¹
XCB/X11¹
DispmanX | [Linux-armv6l.tar.gz](https://github.com/hyperion-project/hyperion.ng/releases) | No recommended | | RPi 4 | LibreElec | 10.x (Matrix) | QT¹ | [Linux-armv7l.tar.gz](https://github.com/hyperion-project/hyperion.ng/releases) | [Install on LibreELEC](https://hyperion-project.org/forum/index.php?thread/10463-install-hyperion-ng-on-libreelec-x86-64-rpi-inoffiziell-unofficially/) | | RPi 4 | LibreElec | 9.2.x (Leia) | QT¹
DispmanX | [Linux-armv7l.tar.gz](https://github.com/hyperion-project/hyperion.ng/releases) | [Install on LibreELEC](https://hyperion-project.org/forum/index.php?thread/10463-install-hyperion-ng-on-libreelec-x86-64-rpi-inoffiziell-unofficially/) | | RPi 3 /3+ | LibreElec | 10.x (Matrix) | QT¹ | [Linux-armv7l.tar.gz](https://github.com/hyperion-project/hyperion.ng/releases) | [Install on LibreELEC](https://hyperion-project.org/forum/index.php?thread/10463-install-hyperion-ng-on-libreelec-x86-64-rpi-inoffiziell-unofficially/) | @@ -35,6 +35,5 @@ In case you have an additional working setups you would like to share with the c Legend --- ¹ Requires an environment with `DISPLAY` defined\ -² 18=Bionic Beaver 20=Focal Fossa\ -³ 9=Stretch, 10=Buster - +² 18=Bionic Beaver, 20=Focal Fossa\ +³ 9=Stretch, 10=Buster, 11=Bullseye diff --git a/libsrc/api/CMakeLists.txt b/libsrc/api/CMakeLists.txt index d98c28c0..003e4bd7 100644 --- a/libsrc/api/CMakeLists.txt +++ b/libsrc/api/CMakeLists.txt @@ -1,11 +1,13 @@ # Find the BCM-package (VC control) -IF ( "${PLATFORM}" MATCHES rpi) - find_package(BCM REQUIRED) - include_directories(${BCM_INCLUDE_DIRS}) -ELSE() - SET(BCM_INCLUDE_DIRS "") - SET(BCM_LIBRARIES "") -ENDIF() +if (ENABLE_DISPMANX) + if ( "${PLATFORM}" MATCHES rpi) + find_package(BCM REQUIRED) + include_directories(${BCM_INCLUDE_DIRS}) + else() + set(BCM_INCLUDE_DIRS "") + set(BCM_LIBRARIES "") + endif() +endif (ENABLE_DISPMANX) # Define the current source locations diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index d1fae2af..004cda45 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -3,7 +3,7 @@ base: core20 summary: The successor to Hyperion aka Hyperion Next Generation description: | Hyperion is an opensource Bias or Ambient Lighting implementation which you might know from TV manufacturers. - It supports many LED devices and video grabbers. The project is still in a alpha development stage. + It supports many LED devices and video grabbers. license: MIT icon: resources/icons/hyperion-icon-512px.png diff --git a/src/hyperiond/CMakeLists.txt b/src/hyperiond/CMakeLists.txt index 659c90a3..4c88779f 100644 --- a/src/hyperiond/CMakeLists.txt +++ b/src/hyperiond/CMakeLists.txt @@ -171,6 +171,7 @@ if (CMAKE_HOST_UNIX AND NOT APPLE) install( CODE "EXECUTE_PROCESS(COMMAND ln -sf \"../share/hyperion/bin/${PROJECT_NAME}\" \"${CMAKE_BINARY_DIR}/symlink_${PROJECT_NAME}\" )" COMPONENT "Hyperion" ) install( FILES "${CMAKE_BINARY_DIR}/symlink_${PROJECT_NAME}" DESTINATION "bin" RENAME ${PROJECT_NAME} COMPONENT "Hyperion" ) install( CODE "FILE (REMOVE ${CMAKE_BINARY_DIR}/symlink_${PROJECT_NAME})" COMPONENT "Hyperion" ) + install( FILES ${CMAKE_SOURCE_DIR}/bin/scripts/updateHyperionUser.sh DESTINATION "share/hyperion/scripts" COMPONENT "Hyperion" ) endif() # Deploy Qt DLLs into the binary folder.