diff --git a/docker/Dockerfile_fedora_33 b/docker/Dockerfile_fedora_33 index 633b855ba2794ac078f8fa51e67c96d91a2e1b31..6a918fc21958507d09d7ff961dc7ba08e766e2c6 100644 --- a/docker/Dockerfile_fedora_33 +++ b/docker/Dockerfile_fedora_33 @@ -5,6 +5,8 @@ RUN dnf clean all 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 \ @@ -63,15 +65,27 @@ RUN dnf install -y \ libnotify-devel \ libupnp-devel \ qrencode-devel \ - qt5-qtbase-devel \ - qt5-qttools-devel \ - qt5-qtdeclarative-devel \ - qt5-qtquickcontrols \ - qt5-qtquickcontrols2-devel \ - qt5-qtmultimedia-devel \ - qt5-qtsvg-devel \ - qt5-qtwebengine-devel \ libargon2-devel \ + libsndfile-devel \ + libdrm \ + gperf \ + clang \ + clang-devel \ + nodejs \ + bison \ + flex \ + nss-devel \ + libxcb* \ + libxkb* \ + libXrender-devel \ + xcb-util-* \ + libX11-devel \ + python2.7 \ + xz \ + xkeyboard-config \ + libnotify \ + wget \ + libstdc++-static \ sqlite-devel ADD scripts/build-package-rpm.sh /opt/build-package-rpm.sh diff --git a/docker/Dockerfile_fedora_34 b/docker/Dockerfile_fedora_34 index 23a0ccf35eaf632822f529821418a649cbd05978..b2529035d591bf5f300a1a416c0b050903046e9d 100644 --- a/docker/Dockerfile_fedora_34 +++ b/docker/Dockerfile_fedora_34 @@ -5,6 +5,8 @@ RUN dnf clean all 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 \ @@ -63,15 +65,27 @@ RUN dnf install -y \ libnotify-devel \ libupnp-devel \ qrencode-devel \ - qt5-qtbase-devel \ - qt5-qttools-devel \ - qt5-qtdeclarative-devel \ - qt5-qtquickcontrols \ - qt5-qtquickcontrols2-devel \ - qt5-qtmultimedia-devel \ - qt5-qtsvg-devel \ - qt5-qtwebengine-devel \ libargon2-devel \ + libsndfile-devel \ + libdrm \ + gperf \ + bison \ + clang \ + clang-devel \ + nodejs \ + flex \ + nss-devel \ + libxcb* \ + libxkb* \ + libX11-devel \ + libXrender-devel \ + xcb-util-* \ + python2.7 \ + xz \ + xkeyboard-config \ + libnotify \ + wget \ + libstdc++-static \ sqlite-devel ADD scripts/build-package-rpm.sh /opt/build-package-rpm.sh diff --git a/packaging/rules/rpm/jami-libclient.spec b/packaging/rules/rpm/jami-libclient.spec index aa54c06f25797bbb29cdd514c695213bc1796c98..55556bc31728f93a56deca1e7b75fdbbff9283da 100644 --- a/packaging/rules/rpm/jami-libclient.spec +++ b/packaging/rules/rpm/jami-libclient.spec @@ -20,8 +20,6 @@ BuildRequires: jami-daemon-devel = %{version} BuildRequires: make %if 0%{?fedora} >= 32 BuildRequires: NetworkManager-libnm-devel -BuildRequires: qt5-qtbase-devel -BuildRequires: qt5-qttools-devel %endif %description diff --git a/packaging/rules/rpm/jami-libqt.spec b/packaging/rules/rpm/jami-libqt.spec index dc7aca83dc182ba3e19f559a52337fef6b2b90fe..0bd11578e63e7f089d6a10778712228a296b93fe 100644 --- a/packaging/rules/rpm/jami-libqt.spec +++ b/packaging/rules/rpm/jami-libqt.spec @@ -47,6 +47,15 @@ This package contains Qt libraries for Jami. %build echo "Building Qt using %{job_count} parallel jobs" +# 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 <stdint.h>,#include <stdint.h>\n#include <limits>,g' qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/containers/string_pool.h +# https://bugreports.qt.io/browse/QTBUG-93452 (Qt 5.15) +sed -i 's,# include <utility>,# include <utility>\n# include <limits>,g' qtbase/src/corelib/global/qglobal.h +sed -i 's,#include <string.h>,#include <string.h>\n#include <limits>,g' 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 <QtCore/qbytearray.h>,#include <QtCore/qbytearray.h>\n#include <limits>,g' qtbase/src/corelib/text/qbytearraymatcher.h ./configure \ -opensource \ -confirm-license \ @@ -54,6 +63,7 @@ echo "Building Qt using %{job_count} parallel jobs" -nomake tests \ -prefix "%{_libdir}/qt-jami" sed -i 's,bin/python,bin/env python3,g' qtbase/mkspecs/features/uikit/devices.py + # Chromium is built using Ninja, which doesn't honor MAKEFLAGS. make -j%{job_count} V=1 NINJAFLAGS="-j%{job_count}" diff --git a/packaging/rules/rpm/jami-qt.spec b/packaging/rules/rpm/jami-qt.spec index 92f5d471873c16bcc3ad76fd97fc447588929a81..b8d9fd06beafde642cfd5a6ce88c5f72f989bb08 100644 --- a/packaging/rules/rpm/jami-qt.spec +++ b/packaging/rules/rpm/jami-qt.spec @@ -22,19 +22,6 @@ BuildRequires: make # Build and runtime dependencies. BuildRequires: qrencode-devel -%if 0%{?fedora} >= 32 -BuildRequires: qt5-qttools-devel -BuildRequires: qt5-qtbase-devel -BuildRequires: qt5-qtdeclarative-devel -BuildRequires: qt5-qtmultimedia-devel -BuildRequires: qt5-qtquickcontrols -BuildRequires: qt5-qtquickcontrols2-devel -BuildRequires: qt5-qtsvg-devel -BuildRequires: qt5-qtwebengine-devel -# Runtime dependencies not automatically registered by RPM. -Requires: qt5-qtquickcontrols -Requires: qt5-qtgraphicaleffects -%endif %description This package contains the Qt desktop client of Jami. Jami is a free diff --git a/scripts/build-package-rpm.sh b/scripts/build-package-rpm.sh index 3197fcfa173ff441744c4f5e4574bef0c0597111..fd8226a7c93c29cd925d28fb2b25a4974dd6b274 100755 --- a/scripts/build-package-rpm.sh +++ b/scripts/build-package-rpm.sh @@ -55,8 +55,7 @@ QT_TARBALL_SHA256="3a530d1b243b5dec00bc54937455471aaa3e56849d2593edb8ded07228202 QT_TARBALL_FILE_NAME=$(basename "$QT_TARBALL_URL") CACHED_QT_TARBALL=$TARBALLS/$QT_TARBALL_FILE_NAME -if [[ "${DISTRIBUTION:0:4}" == "rhel" \ - || "${DISTRIBUTION:0:13}" == "opensuse-leap" ]]; then +if [[ "${DISTRIBUTION}" != "opensuse-tumbleweed" ]]; then mkdir -p "$TARBALLS/$DISTRIBUTION" RPM_PATH=$TARBALLS/$DISTRIBUTION/jami-libqt-$QT_MAJOR_MINOR_PATCH-1.x86_64.rpm @@ -103,9 +102,13 @@ if [[ "${DISTRIBUTION:0:4}" == "rhel" \ # Cache the built Qt RPM package. if [[ "${DISTRIBUTION:0:4}" == "rhel" ]]; then - mv "/root/rpmbuild/RPMS/x86_64/jami-libqt-$QT_MAJOR_MINOR_PATCH-1.el8.x86_64.rpm" "${RPM_PATH}" + cp "/root/rpmbuild/RPMS/x86_64/jami-libqt-$QT_MAJOR_MINOR_PATCH-1.el8.x86_64.rpm" "${RPM_PATH}" + elif [[ "${DISTRIBUTION}" == "fedora_33" ]]; then + cp "/root/rpmbuild/RPMS/x86_64/jami-libqt-$QT_MAJOR_MINOR_PATCH-1.fc33.x86_64.rpm" "${RPM_PATH}" + elif [[ "${DISTRIBUTION}" == "fedora_34" ]]; then + cp "/root/rpmbuild/RPMS/x86_64/jami-libqt-$QT_MAJOR_MINOR_PATCH-1.fc34.x86_64.rpm" "${RPM_PATH}" else - mv /root/rpmbuild/RPMS/x86_64/jami-libqt-*.rpm "${RPM_PATH}" + cp /root/rpmbuild/RPMS/x86_64/jami-libqt-*.rpm "${RPM_PATH}" fi ) 9>"${RPM_PATH}.lock" fi