Update docker file to use Maintenance Tool from Qt.

Remove the fuse mandatory for CI.
Update CI to use Qt custom version and update application to Qt 5.15.12.
This commit is contained in:
Julien Wadel 2023-02-22 16:41:59 +01:00
parent d2131a94de
commit 073f159485
7 changed files with 35 additions and 24 deletions

View file

@ -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:

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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 <peio.rigaux@belledonne-communications.com>
#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

View file

@ -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"