diff --git a/.gitlab-ci-files/job-linux-desktop-archlinux-latest.yml b/.gitlab-ci-files/job-linux-desktop-archlinux-latest.yml index 841524725..a2ed4035b 100644 --- a/.gitlab-ci-files/job-linux-desktop-archlinux-latest.yml +++ b/.gitlab-ci-files/job-linux-desktop-archlinux-latest.yml @@ -1,3 +1,7 @@ +.install-qt-webview: &install-qt-webview + before_script: + - sudo pacman -Sy qt5-webview --noprogressbar --noconfirm + job-archlinux-latest-ninja-clang: tags: [ "docker-archlinux-latest" ] image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-archlinux:$ARCHLINUX_IMAGE_VERSION @@ -9,11 +13,12 @@ job-archlinux-latest-ninja-clang: CC: clang CXX: clang++ extends: .job-linux-desktop - + <<: *install-qt-webview + ################################################# # Nightly -################################################# - +################################################# + job-archlinux-latest-makefile-gcc: tags: [ "docker-archlinux-latest" ] image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-archlinux:$ARCHLINUX_IMAGE_VERSION @@ -25,6 +30,7 @@ job-archlinux-latest-makefile-gcc: CC: gcc CXX: g++ extends: .job-linux-desktop + <<: *install-qt-webview job-archlinux-latest-makefile-clang: @@ -38,6 +44,7 @@ job-archlinux-latest-makefile-clang: CC: clang CXX: clang++ extends: .job-linux-desktop + <<: *install-qt-webview job-archlinux-latest-ninja-gcc: @@ -51,6 +58,7 @@ job-archlinux-latest-ninja-gcc: CC: gcc CXX: g++ extends: .job-linux-desktop + <<: *install-qt-webview job-archlinux-latest-ninja-gcc-novideo: tags: [ "docker-archlinux-latest" ] @@ -60,6 +68,7 @@ job-archlinux-latest-ninja-gcc-novideo: variables: CMAKE_OPTIONS: -DENABLE_VIDEO=NO extends: job-archlinux-latest-ninja-gcc + <<: *install-qt-webview job-archlinux-latest-ninja-clang-novideo: tags: [ "docker-archlinux-latest" ] @@ -73,7 +82,8 @@ job-archlinux-latest-ninja-clang-novideo: CC: clang CXX: clang++ extends: .job-linux-desktop - + <<: *install-qt-webview + ################################################# # Package - Nightly ################################################# @@ -108,4 +118,3 @@ job-archlinux-latest-ninja-clang-novideo: # - $DEPLOY_LINUX # script: # - scp build/OUTPUT/Packages/Linphone*.AppImage $DEPLOY_SERVER:$APPIMAGE_UPLOAD_DIRECTORY/ - diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 75d66981f..a5a833186 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,11 +7,11 @@ variables: MAKEFILE_JOBS: 5 CCACHE_SIZE: 2G #this option is used to speedup submodule building times, when we don't need to trace debug (like SDK where it is already tested in its project) - LBC_NODEBUG_OPTIONS : --parallel $MAKEFILE_JOBS + LBC_NODEBUG_OPTIONS : --parallel $MAKEFILE_JOBS DEFAULT_LINUX_CMAKE_OPTIONS: -DCMAKE_BUILD_PARALLEL_LEVEL=$MAKEFILE_JOBS DEFAULT_MACOS_CMAKE_OPTIONS: -DCMAKE_BUILD_PARALLEL_LEVEL=$MAKEFILE_JOBS DEFAULT_WINDOWS_CMAKE_OPTIONS: -DCMAKE_BUILD_PARALLEL_LEVEL=$MAKEFILE_JOBS - + # DEFAULT_LINUX_CMAKE_OPTIONS: -DENABLE_NON_FREE_CODECS=YES -DENABLE_OPENH264=YES # DEFAULT_MACOS_CMAKE_OPTIONS: -DCMAKE_OSX_DEPLOYMENT_TARGET=10.11 -DENABLE_UPDATE_CHECK=YES # DEFAULT_WINDOWS_CMAKE_OPTIONS: -DENABLE_NON_FREE_CODECS=YES -DENABLE_OPENH264=YES -DENABLE_UPDATE_CHECK=YES @@ -28,7 +28,7 @@ variables: UBUNTU_ROLLING_IMAGE_VERSION: 20211012_add_qtwebview ################################################# -# Platforms to test +# Platforms to test ################################################# .job-prepare: @@ -43,7 +43,7 @@ include: ## - '.gitlab-ci-files/job-linux-desktop-debian10.yml' - '.gitlab-ci-files/job-linux-desktop-ubuntu-rolling.yml' - '.gitlab-ci-files/job-linux-desktop-archlinux-latest.yml' - - '.gitlab-ci-files/job-linux-desktop-centos7.yml' +# - '.gitlab-ci-files/job-linux-desktop-centos7.yml' #QtWebengine cannot be build (support for C++14 is not found in configuration) - '.gitlab-ci-files/job-windows-desktop.yml' - '.gitlab-ci-files/job-macosx-desktop.yml' diff --git a/docker-files/bc-dev-centos7-fuse-qt-wget b/docker-files/bc-dev-centos7-fuse-qt-wget index 44de63aff..17e969249 100644 --- a/docker-files/bc-dev-centos7-fuse-qt-wget +++ b/docker-files/bc-dev-centos7-fuse-qt-wget @@ -2,18 +2,29 @@ FROM gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-centos7:20210217_pyt MAINTAINER Peio Rigaux + # QT Dependenciesi (pigz is used to parallelize compression) RUN sudo yum install -y libxkbcommon* libxcb freeglut-devel pigz icc-profiles-openicc fontconfig fontconfig-devel libfontconfig1-dev freetype-devel -RUN scl enable devtoolset-7 bash +RUN sudo yum install -y devtoolset-8 +RUN sudo yum install -y devtoolset-8-gcc* +RUN scl enable devtoolset-8 bash +RUN sudo yum install -y gperf flex + +SHELL ["/bin/bash", "--login", "-c"] + +RUN scl enable devtoolset-8 bash +RUN gcc --version # Configure AppImages dependencies RUN sudo yum install -y fuse fuse-libs wget -# Build qt5.12 -RUN git clone -b master --single-branch https://gitlab.linphone.org/BC/public/linphone-desktop.git && \ + + +# Build qt5.12.12 +RUN git clone -b feature/webview_subscription --single-branch https://gitlab.linphone.org/BC/public/linphone-desktop.git && \ ./linphone-desktop/tools/build_qt_rpm && \ - sudo rpm -i ./linphone-desktop/rpm-linphone-qt-5.12/rpmbuild/RPMS/x86_64/*.rpm && \ - sudo mv ./linphone-desktop/rpm-linphone-qt-5.12/rpmbuild/RPMS/x86_64/*.rpm / && \ + sudo rpm -i ./linphone-desktop/rpm-linphone-qt-5.12.12/rpmbuild/RPMS/x86_64/*.rpm && \ + sudo mv ./linphone-desktop/rpm-linphone-qt-5.12.12/rpmbuild/RPMS/x86_64/*.rpm / && \ sudo rm -rf ./linphone-desktop diff --git a/docker-files/bc-dev-ubuntu-rolling-qt-fuse-wget-gpg2 b/docker-files/bc-dev-ubuntu-rolling-qt-fuse-wget-gpg2 new file mode 100644 index 000000000..ed306bd22 --- /dev/null +++ b/docker-files/bc-dev-ubuntu-rolling-qt-fuse-wget-gpg2 @@ -0,0 +1,35 @@ +FROM gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-ubuntu-rolling:20210217_python3 + +MAINTAINER Peio Rigaux + +#Tools for QT buid script +RUN sudo apt-get update && sudo apt-get install -y pigz + +RUN sudo ln -s /usr/bin/python3 /usr/bin/python + +#QT Dependencies +#atspi and dbus may be used to enable qt accessibility for screan reader +#xkbcommon is needed for special keyboard features +#flite1-dev, libspeechd-dev speech-dispatcher are needed for text to speech +#libfontconfig1-dev is needed to load correct fonts (support of ideograms, etc..) +RUN sudo apt-get update && sudo apt-get install -y libxkbcommon* libxcb-xfixes0-dev flite1-dev libspeechd-dev speech-dispatcher libfontconfig1-dev qdbus-qt5 libqt5dbus5 libdbus-1-dev libdbus-glib-1-dev libatspi2.0-0 libatspi2.0-dev + +#needed fot qt to find dbus +ENV PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig +# Build qt5.12.5 +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.5/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 + +USER bc +WORKDIR /home/bc +ENV PS1='\[\e[34m\]\u@bc-dev-centos7>\[\e[0m\] ' +CMD bash diff --git a/linphone-app/build/rpm/qt5.spec b/linphone-app/build/rpm/qt5.spec index 80b84888b..916d07e55 100644 --- a/linphone-app/build/rpm/qt5.spec +++ b/linphone-app/build/rpm/qt5.spec @@ -1,6 +1,6 @@ # -*- rpm-spec -*- -%define _qt5_version 5.12 +%define _qt5_version 5.12.12 %define _qt5_dir /opt/com.belledonne-communications/linphone %define _qt5_archdatadir %{_qt5_dir} @@ -83,16 +83,6 @@ make install INSTALL_ROOT=%{buildroot} -j12 # Some files got ambiguous python shebangs, we fix them to avoid install errors # Because in centos8 shebangs like #!/usr/bin/python are FORBIDDEN (see https://fedoraproject.org/wiki/Changes/Make_ambiguous_python_shebangs_error) -%build qtwebengine -cd qtwebengine -qmake -make -j12 - -find . \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i 's/#!\/usr\/bin\/python/#!\/usr\/bin\/python3/g' -make install INSTALL_ROOT=%{buildroot} -j12 - -cd .. - %files %defattr(-,root,root,-) diff --git a/tools/build_qt_rpm b/tools/build_qt_rpm index d8d3b0f7f..9f55d9d66 100755 --- a/tools/build_qt_rpm +++ b/tools/build_qt_rpm @@ -4,7 +4,7 @@ # See: http://doc.qt.io/qt-5/configure-options.html REPO_URL='https://gitlab.linphone.org/BC/public/external/qt/qt5.git' -QT_VERSION='5.12' +QT_VERSION='5.12.12' RPM_NAME=linphone-qt-${QT_VERSION} @@ -24,7 +24,8 @@ if [ ! -d "${REPO_FOLDER}/.git" ]; then #Simplest way to use paralle fetch if available #Otherwise we would have to parse the git version number - git clone "${REPO_URL}" "${REPO_FOLDER}" --recursive -j 12 || git clone "${REPO_URL}" "${REPO_FOLDER}" + git --version + git clone "${REPO_URL}" "${REPO_FOLDER}" --recursive -j 12 -b ${QT_VERSION} || git clone "${REPO_URL}" "${REPO_FOLDER}" -b ${QT_VERSION} --recursive || git clone "${REPO_URL}" "${REPO_FOLDER}" -b ${QT_VERSION} fi cd "${REPO_FOLDER}" while test $# -gt 0 @@ -40,8 +41,9 @@ do shift done -git checkout "${QT_VERSION}" -git submodule foreach --recursive 'if [ -n "$(git branch -a | grep 5.12)" ]; then git checkout 5.12; fi' +git submodule update --init --recursive +#git checkout "${QT_VERSION}" +#git submodule foreach --recursive 'if [ -n "$(git branch -a | grep 5.12.12)" ]; then git checkout 5.12.12; fi' if [[ $? != 0 ]] ; then printf "${RED}Unable to checkout ${QT_VERSION}.${NC}\n" exit 1