From 241ece706a1943a2a1e01b7b9dc61f7cc6661bfd Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Tue, 20 Sep 2022 10:12:31 +0200 Subject: [PATCH] Fix sign-args drop out from appimagetool. --- .gitlab-ci-files/job-linux-desktop-centos7.yml | 3 ++- .gitlab-ci-files/job-linux-desktop-debian9.yml | 6 ++++-- .../cmake_builder/linphone_package/packaging.cmake.in | 2 +- linphone-app/tools/create_appimage.sh | 8 ++------ 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.gitlab-ci-files/job-linux-desktop-centos7.yml b/.gitlab-ci-files/job-linux-desktop-centos7.yml index 628d70030..6f462d081 100644 --- a/.gitlab-ci-files/job-linux-desktop-centos7.yml +++ b/.gitlab-ci-files/job-linux-desktop-centos7.yml @@ -73,10 +73,11 @@ job-centos7-ninja-gcc-package: variables: - $DEPLOY_LINUX_CENTOS7 variables: - CMAKE_OPTIONS: -DENABLE_APP_PACKAGING=YES -DLINPHONE_BUILDER_SIGNING_IDENTITY=$GPG_SIGNING_KEYID -DLINPHONE_BUILDER_SIGNING_PASSPHRASE=$GPG_SIGNING_PASS -DENABLE_G729=ON + CMAKE_OPTIONS: -DENABLE_APP_PACKAGING=YES -DLINPHONE_BUILDER_SIGNING_IDENTITY=$GPG_SIGNING_KEYID -DENABLE_G729=ON CMAKE_GENERATOR: Ninja CC: gcc CXX: g++ + APPIMAGETOOL_SIGN_PASSPHRASE: $GPG_SIGNING_PASS extends: .job-linux-desktop before_script: - source /opt/rh/devtoolset-8/enable diff --git a/.gitlab-ci-files/job-linux-desktop-debian9.yml b/.gitlab-ci-files/job-linux-desktop-debian9.yml index 02b62c724..9aee2fe69 100644 --- a/.gitlab-ci-files/job-linux-desktop-debian9.yml +++ b/.gitlab-ci-files/job-linux-desktop-debian9.yml @@ -77,11 +77,12 @@ job-debian9-makefile-clang: - $NIGHTLY_MASTER - $DEPLOY_PLUGINS variables: - CMAKE_OPTIONS: -DLINPHONE_BUILDER_SIGNING_IDENTITY=$GPG_SIGNING_KEYID -DLINPHONE_BUILDER_SIGNING_PASSPHRASE=$GPG_SIGNING_PASS -DENABLE_G729=ON + CMAKE_OPTIONS: -DLINPHONE_BUILDER_SIGNING_IDENTITY=$GPG_SIGNING_KEYID -DENABLE_G729=ON CMAKE_GENERATOR: Unix Makefiles CC: clang CXX: clang++ ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS + APPIMAGETOOL_SIGN_PASSPHRASE: $GPG_SIGNING_PASS script: - echo "$GPG_SIGNING_PUB" > file.key && sed -i 's/\r /\n/g' file.key && chmod 600 file.key - gpg --import file.key @@ -117,10 +118,11 @@ job-debian9-makefile-clang-package: - $PACKAGE_LINUX - $DEPLOY_LINUX variables: - CMAKE_OPTIONS: -DENABLE_APP_PACKAGING=YES -DLINPHONE_BUILDER_SIGNING_IDENTITY=$GPG_SIGNING_KEYID -DLINPHONE_BUILDER_SIGNING_PASSPHRASE=$GPG_SIGNING_PASS -DENABLE_G729=ON -DLINPHONE_SDK_MAKE_RELEASE_FILE_URL=$MAKE_RELEASE_FILE_URL/$LINUX_PLATFORM/$APP_FOLDER + CMAKE_OPTIONS: -DENABLE_APP_PACKAGING=YES -DLINPHONE_BUILDER_SIGNING_IDENTITY=$GPG_SIGNING_KEYID -DENABLE_G729=ON -DLINPHONE_SDK_MAKE_RELEASE_FILE_URL=$MAKE_RELEASE_FILE_URL/$LINUX_PLATFORM/$APP_FOLDER CMAKE_GENERATOR: Unix Makefiles CC: clang CXX: clang++ + APPIMAGETOOL_SIGN_PASSPHRASE: $GPG_SIGNING_PASS extends: .job-linux-desktop script: - echo "$GPG_SIGNING_PUB" > file.key && sed -i 's/\r /\n/g' file.key && chmod 600 file.key diff --git a/linphone-app/cmake_builder/linphone_package/packaging.cmake.in b/linphone-app/cmake_builder/linphone_package/packaging.cmake.in index 8a39bb31f..fa140bb9a 100644 --- a/linphone-app/cmake_builder/linphone_package/packaging.cmake.in +++ b/linphone-app/cmake_builder/linphone_package/packaging.cmake.in @@ -63,7 +63,7 @@ if (NOT "${CMAKE_INSTALL_PREFIX}" MATCHES .*/_CPack_Packages/.*) set(ENV QML_MODULES_PATHS="@LINPHONE_QML_DIR@") execute_process( COMMAND mkdir -p "WORK/Packages/AppImageDir/" WORKING_DIRECTORY "@CMAKE_INSTALL_PREFIX@/..") execute_process( COMMAND cp -rf "@LINPHONE_QML_DIR@" "WORK/Packages/AppImageDir/" WORKING_DIRECTORY "@CMAKE_INSTALL_PREFIX@/..") - execute_process( COMMAND "@CMAKE_CURRENT_SOURCE_DIR@/../../tools/create_appimage.sh" @EXECUTABLE_NAME@ @CPACK_PACKAGE_FILE_NAME@ @QT_PATH@ @LINPHONE_BUILDER_SIGNING_IDENTITY@ @LINPHONE_BUILDER_SIGNING_PASSPHRASE@ RESULT_VARIABLE CPACK_COMMAND_RESULT WORKING_DIRECTORY "@CMAKE_INSTALL_PREFIX@/.." ) + execute_process( COMMAND "@CMAKE_CURRENT_SOURCE_DIR@/../../tools/create_appimage.sh" @EXECUTABLE_NAME@ @CPACK_PACKAGE_FILE_NAME@ @QT_PATH@ @LINPHONE_BUILDER_SIGNING_IDENTITY@ RESULT_VARIABLE CPACK_COMMAND_RESULT WORKING_DIRECTORY "@CMAKE_INSTALL_PREFIX@/.." ) if(CPACK_COMMAND_RESULT) message(FATAL_ERROR "Failed to create AppImage package with this command : '@CMAKE_CURRENT_SOURCE_DIR@/../../tools/create_appimage.sh @EXECUTABLE_NAME@ @QT_PATH@ @APP_PROJECT_VERSION@' at @CMAKE_INSTALL_PREFIX@/..\nMaybe the .appimage already exists and is running. Please remove the file before packaging if it is the case.") endif() diff --git a/linphone-app/tools/create_appimage.sh b/linphone-app/tools/create_appimage.sh index 3fcb2999a..5f8a85dca 100755 --- a/linphone-app/tools/create_appimage.sh +++ b/linphone-app/tools/create_appimage.sh @@ -24,7 +24,6 @@ # $2 = Output Filename # $3 = Qt root path (eg. "~/Qt/5.15.2/gcc_64") # $4 = Key of the code sign (optional but mendatory if code signing) -# $5 = Passphrase of the code sign (Optional) APP_NAME="$1" QT_PATH="$3" @@ -93,11 +92,8 @@ else ./${WORK_DIR}/AppBin/linuxdeploy-x86_64.AppImage --appdir=${WORK_DIR}/AppDir -e ${WORK_DIR}/AppDir/usr/bin/${APP_NAME} --desktop-file=${WORK_DIR}/AppDir/usr/share/applications/${APP_NAME}.desktop -i ${WORK_DIR}/AppDir/usr/share/icons/hicolor/scalable/apps/${APP_NAME}.svg --plugin qt #./linuxdeploy-x86_64.AppImage --appdir=${WORK_DIR}/ -e ${WORK_DIR}/app/bin/${APP_NAME} --output appimage --desktop-file=${WORK_DIR}/app/share/applications/${APP_NAME}.desktop -i ${WORK_DIR}/app/share/icons/hicolor/scalable/apps/${APP_NAME}.svg echo "-- Code Signing of AppImage" - if [ -z "$5" ]; then - ./${WORK_DIR}/AppBin/appimagetool-x86_64.AppImage ${WORK_DIR}/AppDir --sign --sign-key $4 - else - ./${WORK_DIR}/AppBin/appimagetool-x86_64.AppImage ${WORK_DIR}/AppDir --sign --sign-key $4 --sign-args "--pinentry-mode loopback --passphrase $5" - fi + # APPIMAGETOOL_SIGN_PASSPHRASE has to the parent environment (not here). Do not use export. + ./${WORK_DIR}/AppBin/appimagetool-x86_64.AppImage ${WORK_DIR}/AppDir --sign --sign-key $4 fi mkdir -p "${BIN_SOURCE_DIR}/Packages"