From 7f0af7f5b377fccb0f0019c65e8ccaf01601c909 Mon Sep 17 00:00:00 2001 From: Awawa Date: Sat, 5 Aug 2023 16:35:51 +0200 Subject: [PATCH] Add option to standardize Linux installer name --- .ci/ci_build.sh | 22 ++++++++++--------- .github/workflows/image-builder-from-repo.yml | 2 +- .github/workflows/image-builder.yml | 13 +++++++++-- .github/workflows/push-master.yml | 5 +++++ .github/workflows/upload-to-github-pages.yml | 2 +- CMakeLists.txt | 7 ++++++ cmake/packages.cmake | 6 +---- 7 files changed, 38 insertions(+), 19 deletions(-) diff --git a/.ci/ci_build.sh b/.ci/ci_build.sh index 1d723b13b..bdf3e1357 100755 --- a/.ci/ci_build.sh +++ b/.ci/ci_build.sh @@ -25,6 +25,8 @@ fi # set environment variables if not exists (debug) [ -z "${BUILD_TYPE}" ] && BUILD_TYPE="Release" +[ -z "${USE_STANDARD_INSTALLER_NAME}" ] && USE_STANDARD_INSTALLER_NAME="OFF" + echo "Platform: ${PLATFORM}, build type: ${BUILD_TYPE}, CI_NAME: $CI_NAME, docker image: ${DOCKER_IMAGE}, docker type: ${DOCKER_TAG}, is archive enabled: ${IS_ARCHIVE_SKIPPED}" # Build the package on osx or linux @@ -117,7 +119,7 @@ elif [[ "$CI_NAME" == 'linux' ]]; then cat PKGBUILD chmod -R a+rw ${CI_BUILD_DIR}/.ccache else - executeCommand="cd build && ( cmake ${cachecommand} -DPLATFORM=${PLATFORM} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DDEBIAN_NAME_TAG=${DOCKER_TAG} ../ || exit 2 )" + executeCommand="cd build && ( cmake ${cachecommand} -DPLATFORM=${PLATFORM} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DDEBIAN_NAME_TAG=${DOCKER_TAG} -DUSE_STANDARD_INSTALLER_NAME=${USE_STANDARD_INSTALLER_NAME} ../ || exit 2 )" executeCommand+=" && ( make -j $(nproc) package || exit 3 )" fi @@ -129,10 +131,10 @@ elif [[ "$CI_NAME" == 'linux' ]]; then -v "${CI_BUILD_DIR}:/source:ro" \ $REGISTRY_URL:$DOCKER_TAG \ /bin/bash -c "${cache_env} && cd / && mkdir -p hyperhdr && cp -r source/. /hyperhdr && - cd /hyperhdr && mkdir build && ${executeCommand} && - cp /hyperhdr/build/bin/h* /deploy/ 2>/dev/null || : && - cp /hyperhdr/build/Hyper* /deploy/ 2>/dev/null || : && - cp /hyperhdr/Hyper*.zst /deploy/ 2>/dev/null || : && + cd /hyperhdr && mkdir build && (${executeCommand}) && + (cp /hyperhdr/build/bin/h* /deploy/ 2>/dev/null || : ) && + (cp /hyperhdr/build/Hyper* /deploy/ 2>/dev/null || : ) && + (cp /hyperhdr/Hyper*.zst /deploy/ 2>/dev/null || : ) && ccache -s && exit 0; exit 1 " || { echo "---> HyperHDR compilation failed! Abort"; exit 5; } @@ -145,7 +147,7 @@ elif [[ "$CI_NAME" == 'linux' ]]; then echo "Using makepkg" cat PKGBUILD else - executeCommand="cd build && ( cmake -DPLATFORM=${PLATFORM} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DDEBIAN_NAME_TAG=${DOCKER_TAG} ../ || exit 2 )" + executeCommand="cd build && ( cmake -DPLATFORM=${PLATFORM} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DDEBIAN_NAME_TAG=${DOCKER_TAG} -DUSE_STANDARD_INSTALLER_NAME=${USE_STANDARD_INSTALLER_NAME} ../ || exit 2 )" executeCommand+=" && ( make -j $(nproc) package || exit 3 )" fi @@ -155,10 +157,10 @@ elif [[ "$CI_NAME" == 'linux' ]]; then -v "${CI_BUILD_DIR}:/source:ro" \ $REGISTRY_URL:$DOCKER_TAG \ /bin/bash -c "cd / && mkdir -p hyperhdr && cp -r source/. /hyperhdr && - cd /hyperhdr && mkdir build && ${executeCommand} && - cp /hyperhdr/build/bin/h* /deploy/ 2>/dev/null || : && - cp /hyperhdr/build/Hyper* /deploy/ 2>/dev/null || : && - cp /hyperhdr/Hyper*.zst /deploy/ 2>/dev/null || : && + cd /hyperhdr && mkdir build && (${executeCommand}) && + (cp /hyperhdr/build/bin/h* /deploy/ 2>/dev/null || : ) && + (cp /hyperhdr/build/Hyper* /deploy/ 2>/dev/null || : ) && + (cp /hyperhdr/Hyper*.zst /deploy/ 2>/dev/null || : ) && exit 0; exit 1 " || { echo "---> HyperHDR compilation failed! Abort"; exit 5; } fi diff --git a/.github/workflows/image-builder-from-repo.yml b/.github/workflows/image-builder-from-repo.yml index cd8318f30..44d6b9439 100644 --- a/.github/workflows/image-builder-from-repo.yml +++ b/.github/workflows/image-builder-from-repo.yml @@ -8,7 +8,7 @@ on: jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 env: HYPERHDR_DEB: 'https://github.com/awawa-dev/HyperHDR/releases/download/v${{ github.event.inputs.tags }}/HyperHDR-${{ github.event.inputs.tags }}-Linux-${{ github.event.inputs.architecture }}.deb' diff --git a/.github/workflows/image-builder.yml b/.github/workflows/image-builder.yml index 0de7b4cea..e9a357050 100644 --- a/.github/workflows/image-builder.yml +++ b/.github/workflows/image-builder.yml @@ -6,15 +6,24 @@ on: tags: description: 'HyperHDR release tag (for example 17.0.0.0)' architecture: - description: 'ARM architecture: armv6l/armv7l/aarch64' + description: 'ARM architecture: armv6l/aarch64' + debian: + default: "" + description: 'optional Debian version' jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 env: HYPERHDR_DEB: 'https://github.com/awawa-dev/HyperHDR/releases/download/v${{ github.event.inputs.tags }}/HyperHDR-${{ github.event.inputs.tags }}-Linux-${{ github.event.inputs.architecture }}.deb' steps: + + - name: Overrride Debian download link + if: github.event.inputs.debian != '' + run: | + echo "HYPERHDR_DEB='https://github.com/awawa-dev/HyperHDR/releases/download/v${{ github.event.inputs.tags }}/hyperhdr_{{ github.event.inputs.tags }}~${{ github.event.inputs.debian }}_${{ github.event.inputs.architecture }}.deb'" >> $GITHUB_ENV + - name: Install Dependencies run: | sudo apt update diff --git a/.github/workflows/push-master.yml b/.github/workflows/push-master.yml index f0c24c917..b3e92b326 100644 --- a/.github/workflows/push-master.yml +++ b/.github/workflows/push-master.yml @@ -84,6 +84,11 @@ jobs: key: ${{ matrix.linuxVersion }}-${{ matrix.dockerImage }}-ccache-${{ steps.ccache_cache_timestamp.outputs.timestamp }} restore-keys: ${{ matrix.linuxVersion }}-${{ matrix.dockerImage }}-ccache- + - name: Check testing version + if: github.linuxVersion == 'bookworm' + run: | + echo "USE_STANDARD_INSTALLER_NAME=ON" >> $GITHUB_ENV + - name: Build packages env: DOCKER_IMAGE: ${{ matrix.dockerImage }} diff --git a/.github/workflows/upload-to-github-pages.yml b/.github/workflows/upload-to-github-pages.yml index 071d105fd..81894725b 100644 --- a/.github/workflows/upload-to-github-pages.yml +++ b/.github/workflows/upload-to-github-pages.yml @@ -92,9 +92,9 @@ jobs: PLATFORM: ${{ matrix.platform }} USE_CCACHE: ${{ env.USE_CACHE }} RESET_CACHE: ${{ env.RESET_CACHE }} + USE_STANDARD_INSTALLER_NAME: 'ON' shell: bash run: | - sed -i 's/#SET(HYPERHDR_REPO_BUILD ON)/SET(HYPERHDR_REPO_BUILD ON)/' ./cmake/packages.cmake ./.ci/ci_build.sh # deploy the package diff --git a/CMakeLists.txt b/CMakeLists.txt index 217d9ec08..fc70cca84 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -391,6 +391,13 @@ colorMe("USE_SYSTEM_FLATBUFFERS_LIBS = " ${USE_SYSTEM_FLATBUFFERS_LIBS}) option(USE_SYSTEM_MBEDTLS_LIBS "Use system mbedtls libs" ${DEFAULT_USE_SYSTEM_MBEDTLS_LIBS}) colorMe("USE_SYSTEM_MBEDTLS_LIBS = " ${USE_SYSTEM_MBEDTLS_LIBS}) +if(UNIX AND NOT APPLE) + option(USE_STANDARD_INSTALLER_NAME "Use the standardized Linux installer name" OFF) + colorMe("USE_STANDARD_INSTALLER_NAME = " ${USE_STANDARD_INSTALLER_NAME}) +else() + SET ( USE_STANDARD_INSTALLER_NAME OFF ) +endif() + message( STATUS "\n") # next part diff --git a/cmake/packages.cmake b/cmake/packages.cmake index d994e6165..cc2ae327a 100644 --- a/cmake/packages.cmake +++ b/cmake/packages.cmake @@ -1,6 +1,3 @@ -# cmake file for generating distribution packages -#SET(HYPERHDR_REPO_BUILD ON) - MACRO (CHECK_GLIBC_VERSION) EXECUTE_PROCESS ( COMMAND ldd --version @@ -69,8 +66,7 @@ SET ( CPACK_PACKAGE_VERSION_MAJOR "${HYPERHDR_VERSION_MAJOR}") SET ( CPACK_PACKAGE_VERSION_MINOR "${HYPERHDR_VERSION_MINOR}") SET ( CPACK_PACKAGE_VERSION_PATCH "${HYPERHDR_VERSION_PATCH}") -# Github Action enables it for packages -if(HYPERHDR_REPO_BUILD) +if(USE_STANDARD_INSTALLER_NAME AND UNIX AND NOT APPLE) string(REPLACE "." ";" HYPERHDR_VERSION_LIST ${HYPERHDR_VERSION}) list(LENGTH HYPERHDR_VERSION_LIST HYPERHDR_VERSION_LIST_LEN) if (HYPERHDR_VERSION_LIST_LEN EQUAL 4)