diff --git a/.github/workflows/apt.json b/.github/workflows/apt.json new file mode 100644 index 00000000..91248c3a --- /dev/null +++ b/.github/workflows/apt.json @@ -0,0 +1,82 @@ +{ + "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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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 new file mode 100644 index 00000000..74de0a7c --- /dev/null +++ b/.github/workflows/apt.yml @@ -0,0 +1,124 @@ +name: Hyperion APT Build +on: + push: + branches: + - '**' + tags: + - '*' + +jobs: + setup: + name: Setup APT build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set APT matrix + id: apt-ppa + run: | + APT=$(echo $(cat .github/workflows/apt.json) | jq --compact-output .) + echo "::set-output name=apt::$APT" + outputs: + apt-matrix: ${{ steps.apt-ppa.outputs.apt }} + + build: + name: ${{ matrix.description }} + needs: [setup] + runs-on: ubuntu-latest + strategy: + matrix: ${{ fromJson(needs.setup.outputs.apt-matrix) }} + + steps: + - uses: actions/checkout@v2 + with: + submodules: true + + - name: Build package + shell: bash + run: | + tr -d '\n' < version > temp && mv temp version + mkdir -p "${GITHUB_WORKSPACE}/deploy" + docker run --rm \ + -v "${GITHUB_WORKSPACE}/deploy:/deploy" \ + -v "${GITHUB_WORKSPACE}:/source:rw" \ + ghcr.io/hyperion-project/${{ matrix.architecture }}:$(echo ${{ matrix.distribution }} | tr '[:upper:]' '[:lower:]') \ + /bin/bash -c "cd /source && \ + mkdir -p debian/source && echo '3.0 (quilt)' > debian/source/format && \ + dch --create --distribution $(echo ${{ matrix.distribution }} | tr '[:upper:]' '[:lower:]') --package 'hyperion' -v '$(cat version)~$(echo ${{ matrix.distribution }} | tr '[:upper:]' '[:lower:]')' '${{ 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' debian/control.in > debian/control && \ + tar cf ../hyperion_2.0.0.orig.tar . && \ + xz -9 ../hyperion_2.0.0.orig.tar && \ + debuild --no-lintian -uc -us && \ + cp ../hyperion_* /deploy" + + - name: Upload package artifact + if: startsWith(github.event.ref, 'refs/tags') + uses: actions/upload-artifact@v2.2.4 + with: + path: deploy + retention-days: 1 + + publish: + name: Publish APT packages + if: startsWith(github.event.ref, 'refs/tags') + needs: [setup, build] + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Import GPG key + uses: crazy-max/ghaction-import-gpg@v3.1.0 + with: + gpg-private-key: ${{ secrets.APT_GPG }} + + - name: Install reprepro + run: sudo apt -y install reprepro + + - name: Make build folders, export public GPG key and copy distributions file + run: | + mkdir -p apt/{conf,dists,db} + gpg --armor --output apt/hyperion.pub.key --export 'admin@hyperion-project.org' + cp debian/distributions apt/conf/distributions + + - name: Create initial structure/packages files and symbolic links + run: | + reprepro -Vb apt createsymlinks + reprepro -Vb apt export + + - name: Download artifacts + uses: actions/download-artifact@v2.0.10 + + - name: Include artifacts into the package source + run: | + for file in artifact/*.deb; do + if [ -f "$file" ]; then + dist=${file#*~} + dist=${dist%_*} + reprepro -Vb apt/ includedeb "$dist" "$file" + fi + done + + - name: Upload packages to APT server + uses: SamKirkland/FTP-Deploy-Action@4.0.0 + with: + server: apt.hyperion-project.org + username: ${{ secrets.APT_USER }} + password: ${{ secrets.APT_PASSWORD }} + local-dir: "./apt/" + server-dir: "./" + + hyperbian: + name: Update HyperBian Release + if: startsWith(github.event.ref, 'refs/tags') + needs: [setup, build, publish] + runs-on: ubuntu-latest + steps: + # Dispatch event to build new HyperBian image + - name: Dispatch HyperBian build + uses: peter-evans/repository-dispatch@v1 + if: ${{ github.repository_owner == 'hyperion-project'}} + with: + repository: hyperion-project/HyperBian + token: ${{ secrets.HYPERION_BOT_TOKEN }} + event-type: hyperion_push diff --git a/.github/workflows/push-master.yml b/.github/workflows/push-master.yml index e6d658eb..7a9bcc54 100644 --- a/.github/workflows/push-master.yml +++ b/.github/workflows/push-master.yml @@ -1,9 +1,8 @@ name: Hyperion CI Build on: push: - branches-ignore: - - 'gh-pages' - - 'docker-ci' + branches: + - '**' tags: - '*' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 125c29a3..00000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: Release Actions -on: - release: - types: [published] - -jobs: - hyperbian: - runs-on: ubuntu-latest - steps: - # Dispatch event to build new HyperBian image - - name: Dispatch HyperBian build - uses: peter-evans/repository-dispatch@v1 - if: ${{ github.repository_owner == 'hyperion-project'}} - with: - repository: hyperion-project/HyperBian - token: ${{ secrets.HYPERION_BOT_TOKEN }} - event-type: hyperion_push diff --git a/CMakeLists.txt b/CMakeLists.txt index 3faf3fb3..ecebcc11 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,14 +25,14 @@ if ( CCACHE_FOUND ) set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) endif(CCACHE_FOUND) -if (NOT CMAKE_VERSION VERSION_LESS "3.12") - find_package(Python3 COMPONENTS Interpreter Development REQUIRED) - if(Python_FOUND) +if ("${CMAKE_VERSION}" VERSION_LESS "3.12.0") + set(Python_ADDITIONAL_VERSIONS 3.5) + find_package(PythonInterp 3.5 REQUIRED) +else() + find_package(Python3 3.5 COMPONENTS Interpreter Development REQUIRED) + if(Python3_FOUND) set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE}) endif() -else() - set(Python_ADDITIONAL_VERSIONS 3.5) - find_package( PythonInterp 3.5 REQUIRED ) endif() # Set build variables @@ -50,6 +50,7 @@ SET ( DEFAULT_USE_SYSTEM_PROTO_LIBS OFF ) SET ( DEFAULT_USE_SYSTEM_MBEDTLS_LIBS OFF ) SET ( DEFAULT_TESTS OFF ) SET ( DEFAULT_EXPERIMENTAL OFF ) +SET ( DEFAULT_DEPLOY_DEPENDENCIES ON ) IF ( ${CMAKE_SYSTEM} MATCHES "Linux" ) SET ( DEFAULT_V4L2 ON ) @@ -204,6 +205,9 @@ message(STATUS "ENABLE_PROFILER = ${ENABLE_PROFILER}") option(ENABLE_EXPERIMENTAL "Compile experimental features" ${DEFAULT_EXPERIMENTAL}) message(STATUS "ENABLE_EXPERIMENTAL = ${ENABLE_EXPERIMENTAL}") +option(ENABLE_DEPLOY_DEPENDENCIES "Deploy with dependencies" ${DEFAULT_DEPLOY_DEPENDENCIES}) +message(STATUS "ENABLE_DEPLOY_DEPENDENCIES = ${ENABLE_DEPLOY_DEPENDENCIES}") + SET ( FLATBUFFERS_INSTALL_BIN_DIR ${CMAKE_BINARY_DIR}/flatbuf ) SET ( FLATBUFFERS_INSTALL_LIB_DIR ${CMAKE_BINARY_DIR}/flatbuf ) @@ -349,17 +353,19 @@ if (NOT WIN32) include (${CMAKE_CURRENT_SOURCE_DIR}/cmake/LDGold.cmake) endif() -# Don't create new dynamic tags (RUNPATH) -if (NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--disable-new-dtags") -endif() +if (ENABLE_DEPLOY_DEPENDENCIES) + # Don't create new dynamic tags (RUNPATH) + if (NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--disable-new-dtags") + endif() -# setup -rpath to search for shared libs in BINARY/../lib folder -if (UNIX AND NOT APPLE) - SET(CMAKE_SKIP_BUILD_RPATH FALSE) - SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) - SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:$ORIGIN/../lib") - SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + # setup -rpath to search for shared libs in BINARY/../lib folder + if (UNIX AND NOT APPLE) + SET(CMAKE_SKIP_BUILD_RPATH FALSE) + SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) + SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:$ORIGIN/../lib") + SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + endif () endif () # add QT5 dependency diff --git a/Installation.md b/Installation.md new file mode 100644 index 00000000..37e24bde --- /dev/null +++ b/Installation.md @@ -0,0 +1,46 @@ + +# Installation + +This page contains general installation steps for Hyperion. For Linux please follow the instructions below. For Windows is an installation file available on our [Release page](https://github.com/hyperion-project/hyperion.ng/releases). + +## 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) + +*** + +### Install Hyperion: +1. Add Hyperion’s official GPG key: +```bash +wget -qO- https://apt.hyperion-project.org/hyperion.pub.key | sudo apt-key add - +``` + +2. Add Hyperion-Project to your APT sources: +```bash +echo "deb https://apt.hyperion-project.org/ stable main" | sudo tee /etc/apt/sources.list.d/hyperion.list +``` + +3. Update your local package index and install Hyperion: +```bash +sudo apt-get update && sudo apt-get install hyperion +``` +*** + +### Update Hyperion: +```bash +sudo apt-get install hyperion +``` +*** + +### If you want to uninstall Hyperion, use the following commands: +1. Remove Hyperion: +```bash +sudo apt-get --purge autoremove hyperion +``` + +2. Remove the Hyperion-Project APT source from your system: +```bash +sudo rm /etc/apt/sources.list.d/hyperion.list +``` diff --git a/cmake/desktop/hyperiond_128.png b/cmake/desktop/hyperiond_128.png index be7b4b16..c5ce7b04 100644 Binary files a/cmake/desktop/hyperiond_128.png and b/cmake/desktop/hyperiond_128.png differ diff --git a/cmake/osxbundle/Hyperion.icns b/cmake/osxbundle/Hyperion.icns index 784cdcc0..2006df13 100644 Binary files a/cmake/osxbundle/Hyperion.icns and b/cmake/osxbundle/Hyperion.icns differ diff --git a/cmake/packages.cmake b/cmake/packages.cmake index 6f25f01f..138f9d7c 100644 --- a/cmake/packages.cmake +++ b/cmake/packages.cmake @@ -52,6 +52,11 @@ SET ( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE" ) SET ( CPACK_PACKAGE_EXECUTABLES "hyperiond;Hyperion" ) SET ( CPACK_CREATE_DESKTOP_LINKS "hyperiond;Hyperion" ) +# Append pre-release version to CPACK_PACKAGE_VERSION_PATCH if exists +if (NOT "${HYPERION_VERSION_PRE}" STREQUAL "") + string(APPEND CPACK_PACKAGE_VERSION_PATCH ${HYPERION_VERSION_PRE}) +endif() + # Define the install prefix path for cpack IF ( UNIX ) #SET ( CPACK_PACKAGING_INSTALL_PREFIX "share/hyperion") diff --git a/cmake/version.cmake b/cmake/version.cmake index 1945d6d7..d6ed19b1 100644 --- a/cmake/version.cmake +++ b/cmake/version.cmake @@ -1,16 +1,30 @@ function(SetVersionNumber PREFIX VERSION_STRING) - STRING(REGEX MATCHALL "[0-9]+|-([A-Za-z0-9_]+)" VERSION_PARTS ${VERSION_STRING} ) - LIST( GET VERSION_PARTS 0 VERSION_MAJOR ) - LIST( GET VERSION_PARTS 1 VERSION_MINOR ) - LIST( GET VERSION_PARTS 2 VERSION_PATCH ) + STRING(REGEX MATCHALL "[0-9]+|-([A-Za-z0-9_.]+)" VERSION_PARTS ${VERSION_STRING} ) + LIST( LENGTH VERSION_PARTS VERSION_LEN) + if(${VERSION_LEN} GREATER 0) + LIST( GET VERSION_PARTS 0 VERSION_MAJOR ) + endif() + + if(${VERSION_LEN} GREATER 1) + LIST( GET VERSION_PARTS 1 VERSION_MINOR ) + endif() + + if(${VERSION_LEN} GREATER 3) + LIST( GET VERSION_PARTS 2 VERSION_PATCH ) + endif() + + if(${VERSION_LEN} GREATER 3) + LIST( GET VERSION_PARTS 3 VERSION_PRE ) + endif() set(${PREFIX}_VERSION_MAJOR ${VERSION_MAJOR} PARENT_SCOPE) set(${PREFIX}_VERSION_MINOR ${VERSION_MINOR} PARENT_SCOPE) set(${PREFIX}_VERSION_PATCH ${VERSION_PATCH} PARENT_SCOPE) + set(${PREFIX}_VERSION_PRE ${VERSION_PRE} PARENT_SCOPE) #if(NOT VERSION_PRE MATCHES "stable") # set(${PREFIX}_VERSION_PRE ${VERSION_PRE} PARENT_SCOPE) # set( VERSION_PRE_FULL "-${VERSION_PRE}") #endif() -endfunction() \ No newline at end of file +endfunction() diff --git a/debian/control.in b/debian/control.in new file mode 100644 index 00000000..5a75ef55 --- /dev/null +++ b/debian/control.in @@ -0,0 +1,12 @@ +Source: hyperion +Section: devel +Priority: optional +Build-Depends: @BUILD_DEPENDS@ +Standards-Version: 2.0.0 +Maintainer: Hyperion Project +Homepage: https://hyperion-project.org/ + +Package: hyperion +Architecture: @ARCHITECTURE@ +Depends: @DEPENDS@ +Description: Hyperion is an opensource Bias or Ambient Lighting implementation which you might know from TV manufactures. It supports many LED devices and video grabbers. diff --git a/debian/distributions b/debian/distributions new file mode 100644 index 00000000..57fe85de --- /dev/null +++ b/debian/distributions @@ -0,0 +1,66 @@ +Origin: Hyperion-Project +Label: apt.hyperion-project.org +Codename: bionic +Architectures: amd64 +Components: main +Description: Official APT Repository by Hyperion Project +SignWith: yes + +Origin: Hyperion-Project +Label: apt.hyperion-project.org +Codename: focal +Architectures: amd64 +Components: main +Description: Official APT Repository by Hyperion Project +SignWith: yes + +Origin: Hyperion-Project +Label: apt.hyperion-project.org +Codename: groovy +Architectures: amd64 +Components: main +Description: Official APT Repository by Hyperion Project +SignWith: yes + +Origin: Hyperion-Project +Label: apt.hyperion-project.org +Codename: hirsute +Architectures: amd64 +Components: main +Description: Official APT Repository by Hyperion Project +SignWith: yes + +Origin: Hyperion-Project +Label: apt.hyperion-project.org +Codename: impish +Architectures: amd64 +Components: main +Description: Official APT Repository by Hyperion Project +SignWith: yes + +Origin: Hyperion-Project +Label: apt.hyperion-project.org +Suite: oldstable +Codename: stretch +Architectures: armhf amd64 +Components: main +Description: Official APT Repository by Hyperion Project +SignWith: yes + +Origin: Hyperion-Project +Label: apt.hyperion-project.org +Suite: stable +Codename: buster +Architectures: armhf amd64 +Components: main +Description: Official APT Repository by Hyperion Project +SignWith: yes + +Origin: Hyperion-Project +Label: apt.hyperion-project.org +Suite: unstable +Codename: bullseye +Architectures: armhf amd64 +Components: main +Description: Official APT Repository by Hyperion Project +SignWith: yes diff --git a/debian/rules b/debian/rules new file mode 100755 index 00000000..c504276e --- /dev/null +++ b/debian/rules @@ -0,0 +1,31 @@ +#!/usr/bin/make -f +export DH_VERBOSE = 1 + +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 .. + make -j4 -C $(BUILDDIR) + +binary: binary-indep binary-arch + +binary-indep: + +binary-arch: + cd $(BUILDDIR); cmake -P cmake_install.cmake + mkdir debian/tmp/DEBIAN + cp cmake/debian/postinst debian/tmp/DEBIAN + chmod 0775 debian/tmp/DEBIAN/postinst + cp cmake/debian/preinst debian/tmp/DEBIAN + chmod 0775 debian/tmp/DEBIAN/preinst + cp cmake/debian/prerm debian/tmp/DEBIAN + chmod 0775 debian/tmp/DEBIAN/prerm + dpkg-gencontrol -phyperion + dpkg --build debian/tmp .. + rm -rf debian/tmp + +clean: + rm -rf $(BUILDDIR) + +.PHONY: build binary binary-arch binary-indep clean diff --git a/src/hyperiond/CMakeLists.txt b/src/hyperiond/CMakeLists.txt index 02bce862..8dbd14fb 100644 --- a/src/hyperiond/CMakeLists.txt +++ b/src/hyperiond/CMakeLists.txt @@ -146,11 +146,13 @@ if(WIN32) add_custom_command(TARGET hyperiond POST_BUILD COMMAND ${WINDEPLOYQT_EXECUTABLE} ${WINDEPLOYQT_PARAMS} "$") endif() -# Deploy all dependencies for package creation (not for OSX) -include(${CMAKE_SOURCE_DIR}/cmake/Dependencies.cmake) +if(ENABLE_DEPLOY_DEPENDENCIES) + # Deploy all dependencies for package creation (not for OSX) + include(${CMAKE_SOURCE_DIR}/cmake/Dependencies.cmake) -if (NOT ENABLE_OSX AND NOT WIN32) # Unix - DeployUnix("hyperiond") -elseif(WIN32) # Windows - DeployWindows("hyperiond") -endif () + if (NOT ENABLE_OSX AND NOT WIN32) # Unix + DeployUnix("hyperiond") + elseif(WIN32) # Windows + DeployWindows("hyperiond") + endif () +endif(ENABLE_DEPLOY_DEPENDENCIES)