Skip to content
Snippets Groups Projects
Commit 4d2c5534 authored by Sébastien Blin's avatar Sébastien Blin
Browse files

packaging: migrate from Qt 6.2.3 to 6.4.3

Python2 is removed from Debian stable/unstable and
latest Ubuntu. So, we need to use a newest version of
Qt (here Qt 6.4.3).

Change-Id: I6c8b1eee644aab787d54e467f64011762ffd7548
parent 2c97fea1
No related branches found
No related tags found
No related merge requests found
Showing
with 330 additions and 880 deletions
......@@ -145,7 +145,7 @@ set(CMAKE_MODULE_PATH
${CMAKE_MODULE_PATH} "${EXTRAS_DIR}/build/cmake/modules")
find_package(LibJami REQUIRED)
if(LIBJAMI_FOUND)
include_directories(${LIBJAMI_INCLUDE_DIR})
include_directories(${LIBJAMI_INCLUDE_DIRS})
endif()
include(FindPython3)
......
......@@ -20,19 +20,30 @@
# Once done, this find module will set:
#
# LIBJAMI_INCLUDE_DIR - libjami include directory
# LIBJAMI_INCLUDE_DIRS - libjami include directories
# LIBJAMI_FOUND - whether it was able to find the include directories
# LIBJAMI_LIB - path to libjami or libring library
set(LIBJAMI_FOUND true)
if(WITH_DAEMON_SUBMODULE)
set(LIBJAMI_INCLUDE_DIR ${DAEMON_DIR}/src/jami)
set(LIBJAMI_INCLUDE_DIRS ${DAEMON_DIR}/src/jami)
else()
find_path(LIBJAMI_INCLUDE_DIR jami.h PATH_SUFFIXES jami)
if(NOT LIBJAMI_INCLUDE_DIR)
if(EXISTS ${LIBJAMI_INCLUDE_DIR}/jami.h)
set(LIBJAMI_INCLUDE_DIRS ${LIBJAMI_INCLUDE_DIR})
elseif(EXISTS ${LIBJAMI_BUILD_DIR}/jami/jami.h)
set(LIBJAMI_INCLUDE_DIRS ${LIBJAMI_BUILD_DIR}/jami)
elseif(EXISTS ${RING_INCLUDE_DIR}/jami.h)
set(LIBJAMI_INCLUDE_DIRS ${RING_INCLUDE_DIR})
elseif(EXISTS ${RING_BUILD_DIR}/jami/jami.h)
set(LIBJAMI_INCLUDE_DIRS ${RING_BUILD_DIR}/jami)
elseif(EXISTS ${CMAKE_INSTALL_PREFIX}/include/jami/jami.h)
set(LIBJAMI_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/include/jami)
elseif(EXISTS ${CMAKE_INSTALL_PREFIX}/daemon/include/jami/jami.h)
set(LIBJAMI_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/daemon/include/jami)
else()
message(STATUS "Jami daemon headers not found!
To build using the daemon git submodule, set -DWITH_DAEMON_SUBMODULE")
Set -DLIBJAMI_BUILD_DIR or -DCMAKE_INSTALL_PREFIX")
set(LIBJAMI_FOUND false)
endif()
endif()
......@@ -104,5 +115,5 @@ endif()
# Restore the original value of CMAKE_FIND_LIBRARY_SUFFIXES.
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_orig})
message(STATUS "Jami daemon headers are in " ${LIBJAMI_INCLUDE_DIR})
message(STATUS "Jami daemon headers are in " ${LIBJAMI_INCLUDE_DIRS})
message(STATUS "Jami daemon library is at " ${LIBJAMI_LIB})
......@@ -46,10 +46,10 @@ DEBIAN_DSC_FILENAME := jami_$(DEBIAN_VERSION).dsc
# Qt versions
QT_MAJOR := 6
QT_MINOR := 2
QT_MINOR := 4
QT_PATCH := 3
QT_TARBALL_CHECKSUM := f784998a159334d1f47617fd51bd0619b9dbfe445184567d2cd7c820ccb12771
DEBIAN_QT_VERSION := $(QT_MAJOR).$(QT_MINOR).$(QT_PATCH)-2
QT_TARBALL_CHECKSUM := 29a7eebdbba0ea57978dea6083709c93593a60f0f3133a3de08b9571ee8eaab4
DEBIAN_QT_VERSION := $(QT_MAJOR).$(QT_MINOR).$(QT_PATCH)-1
DEBIAN_QT_DSC_FILENAME := libqt-jami_$(DEBIAN_QT_VERSION).dsc
QT_JAMI_PREFIX := /usr/lib/libqt-jami
......@@ -158,11 +158,9 @@ endif
# Traditionally built packages (in Docker containers).
#
DISTRIBUTIONS := \
debian_10 \
debian_11 \
debian_testing \
debian_unstable \
ubuntu_18.04 \
ubuntu_20.04 \
ubuntu_22.04 \
ubuntu_22.10 \
......
FROM debian:buster
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get clean
RUN apt-get update -y
RUN apt-get install -y -o Acquire::Retries=10 \
devscripts \
apt-utils \
equivs \
gcc-8 \
g++-8 \
clang \
clang-tools \
libarchive-dev \
wget
ADD extras/packaging/gnu-linux/scripts/prebuild-package-debian.sh /opt/prebuild-package-debian.sh
COPY extras/packaging/gnu-linux/rules/debian-qt/control /tmp/builddeps/debian/control
RUN /opt/prebuild-package-debian.sh qt-deps
COPY extras/packaging/gnu-linux/rules/debian/control /tmp/builddeps/debian/control
RUN /opt/prebuild-package-debian.sh jami-deps
RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 50
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 50
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 10
# Install CMake 3.19 for Qt 6
ADD extras/packaging/gnu-linux/scripts/install-cmake.sh /opt/install-cmake.sh
RUN /opt/install-cmake.sh
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash -
RUN apt install nodejs -y
ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
RUN wget https://ftp.gnu.org/gnu/binutils/binutils-2.37.tar.xz -q -O /tmp/binutils.xz \
&& cd /tmp/ \
&& tar xvf binutils.xz \
&& cd binutils-2.37 \
&& ./configure \
&& make \
&& make install
CMD ["/opt/build-package-debian.sh"]
......@@ -32,6 +32,7 @@ RUN dnf install -y \
libXfixes-devel \
yasm \
python2.7 \
python3-html5lib \
speex-devel \
gsm-devel \
chrpath \
......@@ -97,7 +98,8 @@ RUN dnf install -y \
ninja-build \
clang \
cmake \
fmt-devel
fmt-devel \
cups-devel #Chromium for Qt
ADD extras/packaging/gnu-linux/scripts/build-package-rpm.sh /opt/build-package-rpm.sh
......
......@@ -33,6 +33,7 @@ RUN dnf install -y \
libXfixes-devel \
yasm \
python2.7 \
python3-html5lib \
speex-devel \
gsm-devel \
chrpath \
......@@ -98,7 +99,8 @@ RUN dnf install -y \
ninja-build \
clang \
cmake \
fmt-devel
fmt-devel \
cups-devel #Chromium for Qt
ADD extras/packaging/gnu-linux/scripts/build-package-rpm.sh /opt/build-package-rpm.sh
......
......@@ -62,6 +62,7 @@ RUN zypper --non-interactive install -y \
gtk3-devel\
qrencode-devel \
python3-python-dateutil \
python3-html5lib \
libsndfile-devel \
libdrm \
gperf \
......
FROM ubuntu:18.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get clean
RUN apt-get update && \
apt-get install -y -o Acquire::Retries=10 \
devscripts \
equivs \
curl \
gcc-8 \
g++-8 \
clang \
clang-tools \
libarchive-dev \
software-properties-common \
wget
# nodejs (more recent version needed for building libqt-jami)
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash -
RUN apt install nodejs -y
ADD extras/packaging/gnu-linux/scripts/prebuild-package-debian.sh /opt/prebuild-package-debian.sh
COPY extras/packaging/gnu-linux/rules/debian-qt/control /tmp/builddeps/debian/control
RUN /opt/prebuild-package-debian.sh qt-deps
COPY extras/packaging/gnu-linux/rules/debian/control /tmp/builddeps/debian/control
RUN /opt/prebuild-package-debian.sh jami-deps
RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 50
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 50
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 10
# Install CMake 3.19 for Qt 6
ADD extras/packaging/gnu-linux/scripts/install-cmake.sh /opt/install-cmake.sh
RUN /opt/install-cmake.sh
ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
CMD ["/opt/build-package-debian.sh"]
......@@ -10,6 +10,10 @@ RUN apt-get update && \
python-is-python3 \
wget
# nodejs
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash -
RUN apt install nodejs -y
ADD extras/packaging/gnu-linux/scripts/prebuild-package-debian.sh /opt/prebuild-package-debian.sh
COPY extras/packaging/gnu-linux/rules/debian-qt/control /tmp/builddeps/debian/control
......@@ -21,9 +25,6 @@ RUN /opt/prebuild-package-debian.sh jami-deps
# Install CMake 3.19 for Qt 6
ADD extras/packaging/gnu-linux/scripts/install-cmake.sh /opt/install-cmake.sh
RUN /opt/install-cmake.sh
# nodejs
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash -
RUN apt install nodejs -y
ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
CMD ["/opt/build-package-debian.sh"]
......@@ -91,6 +91,7 @@ Build-Depends: debhelper (>= 9),
libgl1-mesa-dri,
# pkg-kde-tools (>= 0.15.17~),
python3:any,
python3-html5lib,
# qtbase5-private-dev (>= 5.15.2+dfsg~),
xauth <!nocheck>,
xvfb <!nocheck>,
......
Subject: [PATCH] Fix fatal error in getCurrentKeyboardLayout()
FATAL:xkb_keyboard_layout_engine.cc(640)] Keymap file failed to load: dk(polytonic)
Remove unnecessary tokenization of XKB layout.
Parsing of layout configuration is already handled by
XkbKeyboardLayoutEngine::ParseLayoutName().
Fixes: QTBUG-101201
Task-number: QTBUG-92971
Pick-to: 6.2 6.3
Change-Id: Ia4f09ed99eb82064a3b12e14eda69a6e0e12b0dd
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
---
.../src/core/ozone/ozone_platform_qt.cpp | 24 ++++---------------
1 file changed, 5 insertions(+), 19 deletions(-)
diff --git a/qtwebengine/src/core/ozone/ozone_platform_qt.cpp b/qtwebengine/src/core/ozone/ozone_platform_qt.cpp
index 33d7bd992b..543e4bd371 100644
--- a/qtwebengine/src/core/ozone/ozone_platform_qt.cpp
+++ b/qtwebengine/src/core/ozone/ozone_platform_qt.cpp
@@ -184,29 +184,15 @@ static std::string getCurrentKeyboardLayout()
if (XkbRF_GetNamesProp(dpy, nullptr, &vdr) == 0)
return std::string();
- char *layout = strtok(vdr.layout, ",");
- for (int i = 0; i < state.group; i++) {
- layout = strtok(nullptr, ",");
- if (layout == nullptr)
- return std::string();
- }
+ if (!vdr.layout)
+ return std::string();
if (!vdr.variant)
- return layout;
-
- char *variant = strtok(vdr.variant, ",");
- if (!variant)
- return layout;
-
- for (int i = 0; i < state.group; i++) {
- variant = strtok(nullptr, ",");
- if (variant == nullptr)
- return layout;
- }
+ return std::string(vdr.layout);
- std::string layoutWithVariant = layout;
+ std::string layoutWithVariant = vdr.layout;
layoutWithVariant = layoutWithVariant.append("-");
- layoutWithVariant = layoutWithVariant.append(variant);
+ layoutWithVariant = layoutWithVariant.append(vdr.variant);
return layoutWithVariant;
}
#endif // BUILDFLAG(USE_XKBCOMMON)
--
2.35.3
\ No newline at end of file
From 517d0890f9e95c841bea3421f2455651ca0d8070 Mon Sep 17 00:00:00 2001
From: Alexey Edelev <alexey.edelev@qt.io>
Date: Wed, 23 Nov 2022 12:40:45 +0100
Subject: [PATCH] Fix Linux build with CMake versions >= 3.25
The 'LINUX' variable exists in CMake since the version 3.25. This
variable previously was undefined while preparsing the configure.cmake
files. Since the CMake script that defines the 'check_for_ulimit'
function is not included while evaluating configure.cmake first time
we need to add a stub.
Change-Id: I25bdec4f4a1b6af23174507a8f0f9cbf01f0c398
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit 240e71877865ed07e4c8d5bd4553aa0772c2adf4)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
---
qtwebengine/configure.cmake | 2 ++
1 file changed, 2 insertions(+)
diff --git a/qtwebengine/configure.cmake b/qtwebengine/configure.cmake
index 015bcd1..d8e7fea 100644
--- a/qtwebengine/configure.cmake
+++ b/qtwebengine/configure.cmake
@@ -4,6 +4,8 @@ if(QT_CONFIGURE_RUNNING)
endfunction()
function(add_check_for_support)
endfunction()
+ function(check_for_ulimit)
+ endfunction()
else()
find_package(Ninja 1.7.2)
find_package(Gn ${QT_REPO_MODULE_VERSION} EXACT)
0001-qtbug-101201-fatal-error-getcurrenkeyboard.patch
0002-check-ulimit.patch
0003-fix-gcc13.patch
\ No newline at end of file
0001-fix-gcc13.patch
\ No newline at end of file
......@@ -7,18 +7,6 @@
dh $@
override_dh_auto_configure:
# Qt 6.2 build for gcc 8
sed -i 's,->GetProperty({,->GetProperty(GetPropertyRequest{,g' qtwebengine/src/3rdparty/chromium/ui/gfx/x/property_cache.cc
sed -i 's/max(),/max()/g' qtwebengine/src/3rdparty/chromium/ui/gfx/x/property_cache.cc
sed -i 's,PresentPixmap({,PresentPixmap(x11::Present::PresentPixmapRequest{,g' qtwebengine/src/3rdparty/chromium/components/viz/service/display_embedder/output_presenter_x11.cc
sed -i 's/last_target_msc_,/last_target_msc_/g' qtwebengine/src/3rdparty/chromium/components/viz/service/display_embedder/output_presenter_x11.cc
# Avoid MakeFlatSet
sed -i 's,const auto& GetNeverSniffedMimeTypes,/*const auto& GetNeverSniffedMimeTypes{,g' qtwebengine/src/3rdparty/chromium/services/network/public/cpp/cross_origin_read_blocking.cc
sed -i '1,/\/\/ static/{s/\/\/ static/*\/\}\/\/ static/;}' qtwebengine/src/3rdparty/chromium/services/network/public/cpp/cross_origin_read_blocking.cc
cp qtwebengine/src/3rdparty/chromium/services/network/public/cpp/cross_origin_read_blocking.cc temp
tac temp | sed '1,/return MimeType::kOthers/{s/return MimeType::kOthers/*\/return MimeType::kOthers/;}' | tac > qtwebengine/src/3rdparty/chromium/services/network/public/cpp/cross_origin_read_blocking.cc
rm temp -f
sed -i 's,if (base::Contains,/*if (base::Contains,g' qtwebengine/src/3rdparty/chromium/services/network/public/cpp/cross_origin_read_blocking.cc
CXXFLAGS="-flto -flto-partition=none" CFLAGS="-flto -flto-partition=none" ./configure \
-opensource \
-confirm-license \
......
......@@ -19,11 +19,11 @@ set -e
# of the distribution or version. The end tag is automatically appended,
# depending on the system the postinst script is run on. Examples:
#
# Ubuntu 18.04:
# $JAMI_REPO = $JAMI_REPO_BASE/ubuntu_18.04/
# Ubuntu 22.04:
# $JAMI_REPO = $JAMI_REPO_BASE/ubuntu_22.04/
#
# Debian 10:
# $JAMI_REPO = $JAMI_REPO_BASE/debian_10
# Debian 11:
# $JAMI_REPO = $JAMI_REPO_BASE/debian_11
#
# To update the appended end tags, modify the switch in [2].
JAMI_REPO_BASE="https://dl.jami.net/nightly"
......@@ -91,14 +91,8 @@ if [ -f /etc/os-release ]; then
. /etc/os-release
# Set-up Jami repository end tag
if [ "${VERSION_CODENAME}" = "buster" ] || [ "${ID}_${VERSION_ID}" = "debian_10" ]; then
ENDTAG="debian_10"
elif [ "${VERSION_CODENAME}" = "bullseye" ] || [ "${ID}_${VERSION_ID}" = "debian_11" ]; then
if [ "${VERSION_CODENAME}" = "bullseye" ] || [ "${ID}_${VERSION_ID}" = "debian_11" ]; then
ENDTAG="debian_11"
elif [ "${ID}_${VERSION_ID}" = "trisquel_9.0" ]; then
ENDTAG="ubuntu_18.04"
elif [ "${UBUNTU_CODENAME}" = "bionic" ] || [ "${ID}_${VERSION_ID}" = "ubuntu_18.04" ]; then
ENDTAG="ubuntu_18.04"
elif [ "${UBUNTU_CODENAME}" = "focal" ] || [ "${ID}_${VERSION_ID}" = "ubuntu_20.04" ]; then
ENDTAG="ubuntu_20.04"
elif [ "${UBUNTU_CODENAME}" = "jammy" ] || [ "${ID}_${VERSION_ID}" = "ubuntu_22.04" ]; then
......
......@@ -28,14 +28,6 @@ JAMI_DAEMON_PKG_NAME="jami-daemon"
# Bundled packages from contrib
BUNDLED_PKGS=""
ifeq (debian_10,$(findstring debian_10, $(DISTRIBUTION)))
# Daemon's bundled libarchive does not build on Debian 10
BUNDLED_PKGS="--disable-libarchive"
endif
ifeq (ubuntu_18.04,$(findstring ubuntu_18.04, $(DISTRIBUTION)))
# Daemon's bundled libarchive does not build on Ubuntu 18.04
BUNDLED_PKGS="--disable-libarchive"
endif
ifeq (raspbian_10_armhf,$(findstring raspbian_10_armhf, $(DISTRIBUTION)))
# Raspbian's yaml-cpp lib does not work properly
BUNDLED_PKGS="--enable-ffmpeg --enable-yaml-cpp"
......@@ -68,9 +60,6 @@ override_dh_auto_configure:
override_dh_auto_build:
# Daemon contribs build + configure
mkdir -p daemon/contrib/native
ifeq (ubuntu_18.04,$(findstring ubuntu_18.04, $(DISTRIBUTION)))
sed -i 's/GNUTLS_CONF :=/& --without-zstd/' daemon/contrib/src/gnutls/rules.mak
endif
cd daemon/contrib/native && \
../bootstrap \
--host=${HOST_ARCH} \
......
......@@ -26,9 +26,7 @@ License: GPLv3+
Vendor: Savoir-faire Linux Inc.
URL: https://jami.net/
Source: jami-libqt-%{version}.tar.xz
Patch0: 0001-qtbug-101201-fatal-error-getcurrenkeyboard.patch
Patch1: 0002-check-ulimit.patch
Patch2: 0003-fix-gcc13.patch
Patch0: 0001-fix-gcc13.patch
%global gst 0.10
%if 0%{?fedora} || 0%{?rhel} > 7
......@@ -64,8 +62,6 @@ This package contains Qt libraries for Jami.
%prep
%setup -n qt-everywhere-src-%{version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%build
echo "Building Qt using %{job_count} parallel jobs"
......
Subject: [PATCH] Fix fatal error in getCurrentKeyboardLayout()
FATAL:xkb_keyboard_layout_engine.cc(640)] Keymap file failed to load: dk(polytonic)
Remove unnecessary tokenization of XKB layout.
Parsing of layout configuration is already handled by
XkbKeyboardLayoutEngine::ParseLayoutName().
Fixes: QTBUG-101201
Task-number: QTBUG-92971
Pick-to: 6.2 6.3
Change-Id: Ia4f09ed99eb82064a3b12e14eda69a6e0e12b0dd
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
---
.../src/core/ozone/ozone_platform_qt.cpp | 24 ++++---------------
1 file changed, 5 insertions(+), 19 deletions(-)
diff --git a/qtwebengine/src/core/ozone/ozone_platform_qt.cpp b/qtwebengine/src/core/ozone/ozone_platform_qt.cpp
index 33d7bd992b..543e4bd371 100644
--- a/qtwebengine/src/core/ozone/ozone_platform_qt.cpp
+++ b/qtwebengine/src/core/ozone/ozone_platform_qt.cpp
@@ -184,29 +184,15 @@ static std::string getCurrentKeyboardLayout()
if (XkbRF_GetNamesProp(dpy, nullptr, &vdr) == 0)
return std::string();
- char *layout = strtok(vdr.layout, ",");
- for (int i = 0; i < state.group; i++) {
- layout = strtok(nullptr, ",");
- if (layout == nullptr)
- return std::string();
- }
+ if (!vdr.layout)
+ return std::string();
if (!vdr.variant)
- return layout;
-
- char *variant = strtok(vdr.variant, ",");
- if (!variant)
- return layout;
-
- for (int i = 0; i < state.group; i++) {
- variant = strtok(nullptr, ",");
- if (variant == nullptr)
- return layout;
- }
+ return std::string(vdr.layout);
- std::string layoutWithVariant = layout;
+ std::string layoutWithVariant = vdr.layout;
layoutWithVariant = layoutWithVariant.append("-");
- layoutWithVariant = layoutWithVariant.append(variant);
+ layoutWithVariant = layoutWithVariant.append(vdr.variant);
return layoutWithVariant;
}
#endif // BUILDFLAG(USE_XKBCOMMON)
--
2.35.3
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment