diff --git a/.gitlab-ci-files/job-linux-desktop-debian9.yml b/.gitlab-ci-files/job-linux-desktop-debian9.yml index a6355294e..35f7e2d75 100644 --- a/.gitlab-ci-files/job-linux-desktop-debian9.yml +++ b/.gitlab-ci-files/job-linux-desktop-debian9.yml @@ -2,7 +2,7 @@ job-debian9-ninja-gcc: tags: [ "docker-debian9" ] - image: gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-debian9-qt-fuse-wget-gpg2:$DEBIAN_9_QT_IMAGE_VERSION + image: gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-debian9-appimage:$DEBIAN_9_QT_IMAGE_VERSION except: refs: - schedules @@ -29,7 +29,7 @@ job-debian9-ninja-gcc-smallsdk: job-debian9-makefile-gcc: tags: [ "docker-debian9" ] - image: gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-debian9-qt-fuse-wget-gpg2:$DEBIAN_9_QT_IMAGE_VERSION + image: gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-debian9-appimage:$DEBIAN_9_QT_IMAGE_VERSION only: variables: - $NIGHTLY_MASTER @@ -55,7 +55,7 @@ job-debian9-ninja-clang: only: variables: - $NIGHTLY_MASTER - image: gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-debian9-qt-fuse-wget-gpg2:$DEBIAN_9_QT_IMAGE_VERSION + image: gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-debian9-appimage:$DEBIAN_9_QT_IMAGE_VERSION variables: CMAKE_OPTIONS: -DENABLE_DOC=ON -DENABLE_G729=ON -DENABLE_PQCRYPTO=ON CMAKE_GENERATOR: Ninja @@ -73,7 +73,7 @@ job-debian9-ninja-clang-novideo: job-debian9-makefile-clang: tags: [ "docker-debian9" ] - image: gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-debian9-qt-fuse-wget-gpg2:$DEBIAN_9_QT_IMAGE_VERSION + image: gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-debian9-appimage:$DEBIAN_9_QT_IMAGE_VERSION only: variables: - $NIGHTLY_MASTER @@ -112,7 +112,7 @@ job-debian9-makefile-clang: job-debian9-makefile-clang-package: stage: package tags: [ "docker-test-liblinphone" ] - image: gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-debian9-qt-fuse-wget-gpg2:$DEBIAN_9_QT_IMAGE_VERSION + image: gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-debian9-appimage:$DEBIAN_9_QT_IMAGE_VERSION dependencies: [] only: variables: @@ -187,7 +187,7 @@ job-debian9-makefile-clang-plugins-deploy: job-debian9-debug: stage: deploy tags: [ "docker-test-debian9-liblinphone-nuc" ] - image: gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-debian9-qt-fuse-wget-gpg2:$DEBIAN_9_QT_IMAGE_VERSION + image: gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-debian9-appimage:$DEBIAN_9_QT_IMAGE_VERSION dependencies: [] only: variables: diff --git a/.gitlab-ci-files/job-macosx-desktop.yml b/.gitlab-ci-files/job-macosx-desktop.yml index 3328f9bc9..90eea8cea 100644 --- a/.gitlab-ci-files/job-macosx-desktop.yml +++ b/.gitlab-ci-files/job-macosx-desktop.yml @@ -5,8 +5,8 @@ .build_all_script: &build_all_script | ccache -s - export Qt5_DIR=~/Qt/5.15.2/clang_64/lib/cmake/Qt5 - export PATH=~/Qt/5.15.2/clang_64/bin:$PATH + export Qt5_DIR=~/Qt/$QT_MAC_VER/lib/cmake/Qt5 + export PATH=~/Qt/$QT_MAC_VER/bin:$PATH if [ -d "build" ]; then rm -rf build; fi; mkdir -p build/OUTPUT cd build diff --git a/.gitlab-ci-files/job-windows-desktop.yml b/.gitlab-ci-files/job-windows-desktop.yml index 3f2e38dfd..220422726 100644 --- a/.gitlab-ci-files/job-windows-desktop.yml +++ b/.gitlab-ci-files/job-windows-desktop.yml @@ -25,7 +25,7 @@ - echo $PATH_TEMP - $env:Path = ($PATH_TEMP + ";C:\msys64\" + $MINGW_TYPE + "\bin;" + $env:SIGNTOOL_ROOT + "\x64;C:\msys64;C:\msys64\usr\bin") - If ($MINGW_TYPE -eq "mingw64") {Import-BatchEnvironment "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"} Else {Import-BatchEnvironment "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat"} - - If ($MINGW_TYPE -eq "mingw64") {$env:Path = ($env:Path + ";C:\Qt\5.15.2\msvc2019_64\bin")} Else {$env:Path = ($env:Path + ";C:\Qt\5.14.2\msvc2019\bin")} + - If ($MINGW_TYPE -eq "mingw64") {$env:Path = ($env:Path + ";C:\Qt\" + $env:QT_WIN_VER + "\msvc2019_64\bin")} Else {$env:Path = ($env:Path + ";C:\Qt\" + $env:QT_WIN_VER + "\msvc2019\bin")} - echo $env:Path - If ( Test-Path -Path "build-desktop" ) {Remove-Item -recurse -force -path "build-desktop" } - mkdir build-desktop diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 13f08e4df..814af29b4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -23,7 +23,7 @@ variables: # Docker image version ARCHLINUX_IMAGE_VERSION: latestupdated CENTOS_7_QT_IMAGE_VERSION: 20211012_add_qtwebview - DEBIAN_9_QT_IMAGE_VERSION: 20211027_update_qt_5.12.12 + DEBIAN_9_QT_IMAGE_VERSION: 20230222_qtcom DEBIAN_10_IMAGE_VERSION: 20210217_python3 UBUNTU_ROLLING_IMAGE_VERSION: 20211012_add_qtwebview diff --git a/CHANGELOG.md b/CHANGELOG.md index 04eb8cb60..68d08ac76 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Remove unadmin feature to self because of not fully supported. - Save Stun/Turn proxy configuration. - Switch off camera at startup. +- Upgrade Qt to 5.15.12 - Update SDK to 5.2.24 (Fix unresponsive video conference on Mac/Windows) ## 5.0.10 - 2023-02-02 diff --git a/docker-files/bc-dev-debian9-qt-fuse-wget-gpg2 b/docker-files/bc-dev-debian9-appimage similarity index 60% rename from docker-files/bc-dev-debian9-qt-fuse-wget-gpg2 rename to docker-files/bc-dev-debian9-appimage index 8fcdec1eb..cd11d839e 100644 --- a/docker-files/bc-dev-debian9-qt-fuse-wget-gpg2 +++ b/docker-files/bc-dev-debian9-appimage @@ -1,11 +1,15 @@ -FROM gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian9:20210217_python3 +FROM gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian9:20210421_python3_fix_pip + +ARG QT_EMAIL +ARG QT_PASSWORD +ARG QT_VERSION=5.15.12 +ARG QT_VERSION_MODULE=qt.qt5.51512 MAINTAINER Peio Rigaux #Tools for QT buid script RUN sudo apt-get update && sudo apt-get install -y pigz - #QT Dependencies #atspi and dbus may be used to enable qt accessibility for screan reader #xkbcommon is needed for special keyboard features @@ -17,20 +21,23 @@ RUN sudo apt-get update && sudo apt-get install -y libxcb-keysyms1-dev libxcb-im #needed fot qt to find dbus ENV PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig -# Build qt5.12.12 -RUN git clone -b master --single-branch https://gitlab.linphone.org/BC/public/linphone-desktop.git && \ - ./linphone-desktop/tools/build_qt_rpm && \ - find "./linphone-desktop/rpm-linphone-qt-5.12/rpmbuild/RPMS/x86_64/" -iname "*.rpm" -exec sudo fakeroot alien -d {} + && \ - find "." -maxdepth 1 -iname "*.deb" -exec sudo dpkg -i --force-overwrite {} + && \ - rm -rf ./linphone-desktop - -ENV Qt5_DIR=/opt/com.belledonne-communications/linphone/lib/cmake -ENV PATH=/opt/com.belledonne-communications/linphone/bin:$PATH #Appimage deps RUN sudo apt-get install -y wget fuse libfuse2 gnupg2 +#Update certificates +RUN sudo sed -i '/^mozilla\/DST_Root_CA_X3/s/^/!/' /etc/ca-certificates.conf +RUN sudo update-ca-certificates -f + +# Add Qt and download +ADD https://download.qt.io/development_releases/online_installers/4.4/qt-unified-linux-x64-4.4.0-beta-online.run /home/bc/qt-unified-linux-x64-4.4.0-beta-online.run +RUN sudo chmod +x /home/bc/qt-unified-linux-x64-4.4.0-beta-online.run +RUN sudo /home/bc/qt-unified-linux-x64-4.4.0-beta-online.run install $QT_VERSION_MODULE $QT_VERSION_MODULE.qtpdf $QT_VERSION_MODULE.qtwebengine $QT_VERSION_MODULE.qtnetworkauth --email $QT_EMAIL --pw $QT_PASSWORD --accept-licenses --accept-obligations --auto-answer telemetry-question=No,AssociateCommonFiletypes=Yes --confirm-command --no-default-installations + USER bc WORKDIR /home/bc + +ENV Qt5_DIR=/opt/Qt/$QT_VERSION/gcc_64/lib/cmake +ENV PATH=/opt/Qt/$QT_VERSION/gcc_64/bin:$PATH ENV PS1='\[\e[34m\]\u@bc-dev-centos7>\[\e[0m\] ' CMD bash diff --git a/linphone-app/tools/create_appimage.sh b/linphone-app/tools/create_appimage.sh index 5f8a85dca..c180a84e0 100755 --- a/linphone-app/tools/create_appimage.sh +++ b/linphone-app/tools/create_appimage.sh @@ -32,6 +32,9 @@ BIN_SOURCE_DIR="OUTPUT/" WORK_DIR="WORK/Packages/AppImageDir" +# Goal : avoid fuse on CI. --appimage-extract-and-run is not enough because of not propagate to plugins. +export APPIMAGE_EXTRACT_AND_RUN=1 + rm -rf ${WORK_DIR}/AppDir mkdir -p "${WORK_DIR}/AppDir/usr/" @@ -81,7 +84,7 @@ export LD_LIBRARY_PATH=${QT_PATH}/lib echo "-- Generating AppDir for AppImage" if [ -z "$4" ]; then - ./${WORK_DIR}/AppBin/linuxdeploy-x86_64.AppImage --appdir=${WORK_DIR}/AppDir -e ${WORK_DIR}/AppDir/usr/bin/${APP_NAME} --output appimage --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 + ./${WORK_DIR}/AppBin/linuxdeploy-x86_64.AppImage --appimage-extract-and-run --appdir=${WORK_DIR}/AppDir -e ${WORK_DIR}/AppDir/usr/bin/${APP_NAME} --output appimage --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 else if [ -f "${WORK_DIR}/AppBin/appimagetool-x86_64.AppImage" ]; then echo "appimagetool-x86_64.AppImage exists" @@ -89,11 +92,11 @@ else wget -P "${WORK_DIR}/AppBin" https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage chmod +x "${WORK_DIR}/AppBin/appimagetool-x86_64.AppImage" fi - ./${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 + ./${WORK_DIR}/AppBin/linuxdeploy-x86_64.AppImage --appimage-extract-and-run --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" # 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 + ./${WORK_DIR}/AppBin/appimagetool-x86_64.AppImage --appimage-extract-and-run ${WORK_DIR}/AppDir --sign --sign-key $4 fi mkdir -p "${BIN_SOURCE_DIR}/Packages"