diff --git a/Makefile b/Makefile index 67915118d2f3ce056f600831a7e1d2e28bc3a834..9ddfba7c1e64e6691a8a9ec5959ae6fba48a0096 100644 --- a/Makefile +++ b/Makefile @@ -177,6 +177,7 @@ DISTRIBUTIONS := \ ubuntu_21.10 \ fedora_33 \ fedora_34 \ + fedora_35 \ opensuse-leap_15.2 \ opensuse-leap_15.3 \ opensuse-tumbleweed \ diff --git a/docker/Dockerfile_fedora_35 b/docker/Dockerfile_fedora_35 new file mode 100644 index 0000000000000000000000000000000000000000..60a578894e7b4e3e0bc20d782ddf66478714cc74 --- /dev/null +++ b/docker/Dockerfile_fedora_35 @@ -0,0 +1,93 @@ +FROM fedora:35 + +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 \ + tar \ + make \ + autoconf \ + automake \ + nasm \ + cmake \ + 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 \ + 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 \ + openssl-static \ + clutter-devel \ + clutter-gtk-devel \ + libappindicator-gtk3-devel \ + libnotify-devel \ + libupnp-devel \ + qrencode-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 + +CMD ["/opt/build-package-rpm.sh"] diff --git a/packaging/rules/rpm/jami-libqt.spec b/packaging/rules/rpm/jami-libqt.spec index 0bd11578e63e7f089d6a10778712228a296b93fe..1951a59dd7bb831710db2ed75410b01997fd5801 100644 --- a/packaging/rules/rpm/jami-libqt.spec +++ b/packaging/rules/rpm/jami-libqt.spec @@ -50,6 +50,8 @@ 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 +# else, break build for fedora 35 +sed -i 's/static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ);/static const size_t kSigStackSize = std::max(size_t(16384), size_t(SIGSTKSZ));/g' qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc # 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 diff --git a/scripts/build-package-rpm.sh b/scripts/build-package-rpm.sh index fd8226a7c93c29cd925d28fb2b25a4974dd6b274..c7c84fe39cf657565eaa216fe1d0778772ed188a 100755 --- a/scripts/build-package-rpm.sh +++ b/scripts/build-package-rpm.sh @@ -97,7 +97,8 @@ if [[ "${DISTRIBUTION}" != "opensuse-tumbleweed" ]]; then rpmdev-bumpspec --comment="Automatic nightly release" \ --userstring="Jenkins <jami@lists.savoirfairelinux.net>" jami-libqt.spec - rpmbuild -ba jami-libqt.spec + QA_RPATHS=$(( 0x0008 )) rpmbuild -ba jami-libqt.spec + # Note: try to remove QA_RPATHS=$(( 0x0008 )) with Qt > 6. Else we have a problem with $ORIGIN mkdir -p "$TARBALLS/${DISTRIBUTION}" # Cache the built Qt RPM package. @@ -107,6 +108,8 @@ if [[ "${DISTRIBUTION}" != "opensuse-tumbleweed" ]]; 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}" + elif [[ "${DISTRIBUTION}" == "fedora_35" ]]; then + cp "/root/rpmbuild/RPMS/x86_64/jami-libqt-$QT_MAJOR_MINOR_PATCH-1.fc35.x86_64.rpm" "${RPM_PATH}" else cp /root/rpmbuild/RPMS/x86_64/jami-libqt-*.rpm "${RPM_PATH}" fi @@ -123,15 +126,15 @@ rpmdev-bumpspec --comment="Automatic nightly release" \ --userstring="Jenkins <jami@lists.savoirfairelinux.net>" ./*.spec # Build the daemon and install it. -rpmbuild -ba jami-daemon.spec +QA_RPATHS=$(( 0x0008 )) rpmbuild -ba jami-daemon.spec rpm --install /root/rpmbuild/RPMS/x86_64/jami-daemon-* # Build the client library and install it. -rpmbuild -ba jami-libclient.spec +QA_RPATHS=$(( 0x0008 )) rpmbuild -ba jami-libclient.spec rpm --install /root/rpmbuild/RPMS/x86_64/jami-libclient-* # Build the GNOME and Qt clients. -rpmbuild -ba jami-gnome.spec jami-qt.spec +QA_RPATHS=$(( 0x0008 )) rpmbuild -ba jami-gnome.spec jami-qt.spec # Move the built packages to the output directory. mv /root/rpmbuild/RPMS/*/* /opt/output