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

packaging: add fedora 38, ubuntu 23.04

Ubuntu 23.04 is not yet functional due to python2 missing.
We're working on fixing Jami for Qt 6.4 (they changed the whole video
pipeline and introduced some breaking changes).
Fedora 38 is working fine.

GitLab: #1086
Change-Id: I51bbecdfbcf908e2bf57c4c002ef4216a34d746d
parent 59843863
Branches
Tags nightly/20230426.0
No related merge requests found
Showing
with 1394 additions and 4 deletions
daemon @ 0972070b
Subproject commit a9d0ef42bc4966495011dd376e5ac7adc46bb144 Subproject commit 0972070b38739c17effe986542c98878fe880e99
...@@ -166,8 +166,10 @@ DISTRIBUTIONS := \ ...@@ -166,8 +166,10 @@ DISTRIBUTIONS := \
ubuntu_20.04 \ ubuntu_20.04 \
ubuntu_22.04 \ ubuntu_22.04 \
ubuntu_22.10 \ ubuntu_22.10 \
ubuntu_23.04 \
fedora_36 \ fedora_36 \
fedora_37 \ fedora_37 \
fedora_38 \
opensuse-leap_15.4 \ opensuse-leap_15.4 \
snap snap
......
FROM fedora:38
RUN dnf clean all
RUN dnf update -y
RUN dnf install -y dnf-command\(builddep\) rpmdevtools && \
dnf install -y mock
RUN dnf groupinstall -y "X Software Development"
RUN dnf install -y \
git \
rpm-build \
tar \
make \
autoconf \
automake \
nasm \
speexdsp-devel \
pulseaudio-libs-devel \
libcanberra-devel \
libcurl-devel \
libtool \
mesa-libgbm-devel \
mesa-dri-drivers \
dbus-devel \
expat-devel \
pcre-devel \
yaml-cpp-devel \
dbus-c++-devel \
dbus-devel \
libXext-devel \
libXfixes-devel \
yasm \
python2.7 \
speex-devel \
gsm-devel \
chrpath \
check \
astyle \
uuid-c++-devel \
gettext-devel \
gcc-c++ \
which \
alsa-lib-devel \
systemd-devel \
libuuid-devel \
uuid-devel \
gnutls-devel \
nettle-devel \
opus-devel \
patch \
jsoncpp-devel \
libnatpmp-devel \
webkitgtk4-devel \
cryptopp-devel \
libva-devel \
libvdpau-devel \
msgpack-devel \
NetworkManager-libnm-devel \
openssl-devel \
clutter-devel \
clutter-gtk-devel \
libappindicator-gtk3-devel \
libnotify-devel \
libupnp-devel \
qrencode-devel \
libargon2-devel \
libsndfile-devel \
libdrm \
gperf \
bison \
clang \
clang-devel \
llvm-devel \
nodejs \
flex \
gstreamer1 gstreamer1-devel \
gstreamer1-plugins-base-devel \
gstreamer1-plugins-good \
gstreamer1-plugins-bad-free-devel \
nss-devel \
libxcb* \
libxkb* \
libX11-devel \
vulkan-devel \
libXrender-devel \
xcb-util-* \
xz \
xkeyboard-config \
libnotify \
wget \
libstdc++-static \
sqlite-devel \
perl-generators \
perl-English \
libxshmfence-devel \
ninja-build \
clang \
cmake \
fmt-devel
ADD extras/packaging/gnu-linux/scripts/build-package-rpm.sh /opt/build-package-rpm.sh
CMD ["/opt/build-package-rpm.sh"]
FROM ubuntu:23.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get clean
RUN apt-get update && \
apt-get install -y -o Acquire::Retries=10 \
devscripts \
equivs \
python-is-python3 \
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
ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
CMD ["/opt/build-package-debian.sh"]
...@@ -315,7 +315,6 @@ Build-Depends: debhelper (>= 9), ...@@ -315,7 +315,6 @@ Build-Depends: debhelper (>= 9),
# pkg-config, # pkg-config,
# pkg-kde-tools, # pkg-kde-tools,
protobuf-compiler, protobuf-compiler,
python2 | python,
# qtbase5-dev (>= 5.15.2+dfsg~), # qtbase5-dev (>= 5.15.2+dfsg~),
# qtbase5-private-dev (>= 5.15.2+dfsg~), # qtbase5-private-dev (>= 5.15.2+dfsg~),
# qtdeclarative5-private-dev (>= 5.15.2+dfsg~), # qtdeclarative5-private-dev (>= 5.15.2+dfsg~),
......
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)
This diff is collapsed.
0001-qtbug-101201-fatal-error-getcurrenkeyboard.patch 0001-qtbug-101201-fatal-error-getcurrenkeyboard.patch
0002-check-ulimit.patch
0003-fix-gcc13.patch
\ No newline at end of file
...@@ -105,6 +105,8 @@ if [ -f /etc/os-release ]; then ...@@ -105,6 +105,8 @@ if [ -f /etc/os-release ]; then
ENDTAG="ubuntu_22.04" ENDTAG="ubuntu_22.04"
elif [ "${UBUNTU_CODENAME}" = "kinetic" ] || [ "${ID}_${VERSION_ID}" = "ubuntu_22.10" ]; then elif [ "${UBUNTU_CODENAME}" = "kinetic" ] || [ "${ID}_${VERSION_ID}" = "ubuntu_22.10" ]; then
ENDTAG="ubuntu_22.10" ENDTAG="ubuntu_22.10"
elif [ "${UBUNTU_CODENAME}" = "lunar" ] || [ "${ID}_${VERSION_ID}" = "ubuntu_23.04" ]; then
ENDTAG="ubuntu_23.04"
elif [ "${ID}" = "debian" ] && \ elif [ "${ID}" = "debian" ] && \
[ "$(command -v lsb_release)" ] && \ [ "$(command -v lsb_release)" ] && \
[ "$(lsb_release -rs)" = "testing" ]; then [ "$(lsb_release -rs)" = "testing" ]; then
......
...@@ -27,6 +27,8 @@ Vendor: Savoir-faire Linux Inc. ...@@ -27,6 +27,8 @@ Vendor: Savoir-faire Linux Inc.
URL: https://jami.net/ URL: https://jami.net/
Source: jami-libqt-%{version}.tar.xz Source: jami-libqt-%{version}.tar.xz
Patch0: 0001-qtbug-101201-fatal-error-getcurrenkeyboard.patch Patch0: 0001-qtbug-101201-fatal-error-getcurrenkeyboard.patch
Patch1: 0002-check-ulimit.patch
Patch2: 0003-fix-gcc13.patch
%global gst 0.10 %global gst 0.10
%if 0%{?fedora} || 0%{?rhel} > 7 %if 0%{?fedora} || 0%{?rhel} > 7
...@@ -62,11 +64,16 @@ This package contains Qt libraries for Jami. ...@@ -62,11 +64,16 @@ This package contains Qt libraries for Jami.
%prep %prep
%setup -n qt-everywhere-src-%{version} %setup -n qt-everywhere-src-%{version}
%patch0 -p1 %patch0 -p1
%patch1 -p1
%patch2 -p1
%build %build
echo "Building Qt using %{job_count} parallel jobs" echo "Building Qt using %{job_count} parallel jobs"
# Qt 6.2 (https://wiki.linuxfromscratch.org/blfs/ticket/14729) # Qt 6.2 (https://wiki.linuxfromscratch.org/blfs/ticket/14729)
sed -i 's,default=False,default=True,g' qtwebengine/src/3rdparty/chromium/third_party/catapult/tracing/tracing_build/generate_about_tracing_contents.py sed -i 's,default=False,default=True,g' qtwebengine/src/3rdparty/chromium/third_party/catapult/tracing/tracing_build/generate_about_tracing_contents.py
# Gcc 13
sed -i 's,std::uint32_t,uint32_t,g' qt3d/src/3rdparty/assimp/src/code/AssetLib/FBX/FBXBinaryTokenizer.cpp
sed -i 's,std::uint32_t,uint32_t,g' qtquick3d/src/3rdparty/assimp/src/code/AssetLib/FBX/FBXBinaryTokenizer.cpp
# https://bugs.gentoo.org/768261 (Qt 5.15) # https://bugs.gentoo.org/768261 (Qt 5.15)
sed -i 's,#include "absl/base/internal/spinlock.h"1,#include "absl/base/internal/spinlock.h"1\n#include <limits>,g' qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc sed -i 's,#include "absl/base/internal/spinlock.h"1,#include "absl/base/internal/spinlock.h"1\n#include <limits>,g' qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc
sed -i 's,#include <stdint.h>,#include <stdint.h>\n#include <limits>,g' qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/containers/string_pool.h sed -i 's,#include <stdint.h>,#include <stdint.h>\n#include <limits>,g' qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/containers/string_pool.h
...@@ -78,6 +85,7 @@ sed -i 's,#include <string.h>,#include <string.h>\n#include <limits>,g' qtbase/s ...@@ -78,6 +85,7 @@ sed -i 's,#include <string.h>,#include <string.h>\n#include <limits>,g' qtbase/s
cat qtbase/src/corelib/global/qendian.h cat qtbase/src/corelib/global/qendian.h
sed -i 's,#include <string.h>,#include <string.h>\n#include <limits>,g' qtbase/src/corelib/global/qfloat16.h sed -i 's,#include <string.h>,#include <string.h>\n#include <limits>,g' qtbase/src/corelib/global/qfloat16.h
sed -i 's,#include <QtCore/qbytearray.h>,#include <QtCore/qbytearray.h>\n#include <limits>,g' qtbase/src/corelib/text/qbytearraymatcher.h sed -i 's,#include <QtCore/qbytearray.h>,#include <QtCore/qbytearray.h>\n#include <limits>,g' qtbase/src/corelib/text/qbytearraymatcher.h
cat qtwebengine/configure.cmake
# recent gcc version do not like lto from qt # recent gcc version do not like lto from qt
CXXFLAGS="${CXXFLAGS} -fno-lto" CFLAGS="${CFLAGS} -fno-lto" ./configure \ CXXFLAGS="${CXXFLAGS} -fno-lto" CFLAGS="${CFLAGS} -fno-lto" ./configure \
-opensource \ -opensource \
......
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)
This diff is collapsed.
...@@ -84,7 +84,7 @@ ${QT_MAJOR}.${QT_MINOR}/${qt_version}/single ...@@ -84,7 +84,7 @@ ${QT_MAJOR}.${QT_MINOR}/${qt_version}/single
cd "libqt-jami-${qt_version}" cd "libqt-jami-${qt_version}"
# Extract the debian folder # Extract the debian folder
tar xf "/src/$RELEASE_TARBALL_FILENAME" client-qt/extras/packaging/gnu-linux/rules/debian-qt \ tar xf "/src/$RELEASE_TARBALL_FILENAME" --wildcards 'jami-*/extras/packaging/gnu-linux/rules/debian-qt' \
--strip-components=5 && mv debian-qt debian --strip-components=5 && mv debian-qt debian
# Create the changelog file. # Create the changelog file.
......
...@@ -36,7 +36,7 @@ rpmdev-setuptree ...@@ -36,7 +36,7 @@ rpmdev-setuptree
# Copy the source tarball. # Copy the source tarball.
cp --reflink=auto "/src/$RELEASE_TARBALL_FILENAME" /root/rpmbuild/SOURCES cp --reflink=auto "/src/$RELEASE_TARBALL_FILENAME" /root/rpmbuild/SOURCES
cp patches/0001-qtbug-101201-fatal-error-getcurrenkeyboard.patch /root/rpmbuild/SOURCES/ cp patches/*.patch /root/rpmbuild/SOURCES/
QT_JAMI_PREFIX="/usr/lib64/qt-jami" QT_JAMI_PREFIX="/usr/lib64/qt-jami"
PATH="${QT_JAMI_PREFIX}/bin:${PATH}" PATH="${QT_JAMI_PREFIX}/bin:${PATH}"
...@@ -115,6 +115,8 @@ if [ ! -f "${RPM_PATH}" ]; then ...@@ -115,6 +115,8 @@ if [ ! -f "${RPM_PATH}" ]; then
cp /root/rpmbuild/RPMS/x86_64/jami-libqt-$QT_MAJOR_MINOR_PATCH-*.fc36.x86_64.rpm "${RPM_PATH}" cp /root/rpmbuild/RPMS/x86_64/jami-libqt-$QT_MAJOR_MINOR_PATCH-*.fc36.x86_64.rpm "${RPM_PATH}"
elif [[ "${DISTRIBUTION}" == "fedora_37" ]]; then elif [[ "${DISTRIBUTION}" == "fedora_37" ]]; then
cp /root/rpmbuild/RPMS/x86_64/jami-libqt-$QT_MAJOR_MINOR_PATCH-*.fc37.x86_64.rpm "${RPM_PATH}" cp /root/rpmbuild/RPMS/x86_64/jami-libqt-$QT_MAJOR_MINOR_PATCH-*.fc37.x86_64.rpm "${RPM_PATH}"
elif [[ "${DISTRIBUTION}" == "fedora_38" ]]; then
cp /root/rpmbuild/RPMS/x86_64/jami-libqt-$QT_MAJOR_MINOR_PATCH-*.fc38.x86_64.rpm "${RPM_PATH}"
else else
cp /root/rpmbuild/RPMS/x86_64/jami-libqt-*.rpm "${RPM_PATH}" cp /root/rpmbuild/RPMS/x86_64/jami-libqt-*.rpm "${RPM_PATH}"
fi fi
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment