diff --git a/.gitmodules b/.gitmodules index 713e3e3e31cab2153bf3cb91a5ced0a64fc505cd..a2a8a724eceda94f0d4690cbf21b832cfd308de3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,24 +1,24 @@ [submodule "client-android"] path = client-android - url = https://review.jami.net/ring-client-android + url = https://review.jami.net/jami-client-android [submodule "client-gnome"] path = client-gnome - url = https://review.jami.net/ring-client-gnome + url = https://review.jami.net/jami-client-gnome [submodule "daemon"] path = daemon - url = https://review.jami.net/ring-daemon + url = https://review.jami.net/jami-daemon [submodule "lrc"] path = lrc - url = https://review.jami.net/ring-lrc + url = https://review.jami.net/jami-libclient [submodule "client-macosx"] path = client-macosx - url = https://review.jami.net/ring-client-macosx + url = https://review.jami.net/jami-client-macos [submodule "client-ios"] path = client-ios - url = https://review.jami.net/ring-client-ios + url = https://review.jami.net/jami-client-ios [submodule "client-uwp"] path = client-uwp - url = https://review.jami.net/ring-client-uwp + url = https://review.jami.net/jami-client-uwp [submodule "client-qt"] path = client-qt url = https://review.jami.net/jami-client-qt diff --git a/.gitreview b/.gitreview index b796e1d9fecb70d7f156c40a3a242153703322a6..2766f7b72015a89ba4586c519132ed8b82983cc0 100644 --- a/.gitreview +++ b/.gitreview @@ -1,6 +1,6 @@ [gerrit] host=review.jami.net port=29420 -project=ring-project +project=jami-project defaultremote=origin defaultbranch=master diff --git a/Jenkinsfile b/Jenkinsfile index 8494fcf02d2f6d804e9a26b5b649237821e57445..3dca96e3b4895f2b08450c83df639675fec6613b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -29,7 +29,7 @@ pipeline { [branches: [[compareType: 'PLAIN', pattern: 'master']], compareType: 'PLAIN', disableStrictForbiddenFileVerification: false, - pattern: 'ring-project']], + pattern: 'jami-project']], triggerOnEvents: [ commentAddedContains('!build'), patchsetCreated(excludeDrafts: true, excludeNoCodeChange: true, diff --git a/Makefile b/Makefile index 5e8cee2a09554c23a64a12892f66d1d1e8898e5e..bd7fe50874bb0f3c7bd415a6b5a161d7fb6816cb 100644 --- a/Makefile +++ b/Makefile @@ -165,6 +165,7 @@ DISTRIBUTIONS := \ ubuntu_18.04 \ ubuntu_20.04 \ ubuntu_21.04 \ + ubuntu_21.10 \ fedora_33 \ fedora_34 \ opensuse-leap_15.2 \ diff --git a/README.rst b/README.rst index 1e05d1eb3478392f1f5be9cbad7e4652311bdd77..36ec11822262bb296209cfeb6633c78415729b0b 100644 --- a/README.rst +++ b/README.rst @@ -2,13 +2,13 @@ jami-project ============ This repository is the master repository for Jami. It contains a build script, build.py, -that can be used to build and install ring from source on different platforms. +that can be used to build and install Jami from source on different platforms. More documentation can be found on http://docs.jami.net. You may also build the documentation with ``make docs``. The documentation will be built in ``docs/build/html``. -Using make-ring -############### +Using build.py +############## Dependencies ------------ @@ -105,7 +105,7 @@ You can find the .app file in the ``./install/client-macosx`` folder. On Android ---------- -Please make sure you have the Android SDK and NDK installed, and that their paths are properly set. For further information, please visit <https://github.com/savoirfairelinux/ring-client-android> +Please make sure you have the Android SDK and NDK installed, and that their paths are properly set. For further information, please visit <https://git.jami.net/savoirfairelinux/jami-client-android> Build and install locally under this repository: diff --git a/client-android b/client-android index 1376034cc660b69d09158aeb28d7665ae5cd6ec6..91b367921398a44fd787b5b85a6e83cd50cbbd03 160000 --- a/client-android +++ b/client-android @@ -1 +1 @@ -Subproject commit 1376034cc660b69d09158aeb28d7665ae5cd6ec6 +Subproject commit 91b367921398a44fd787b5b85a6e83cd50cbbd03 diff --git a/client-gnome b/client-gnome index 40277efa9abd980b010cee852b405e564e6b0c3d..e9bc95724de31484a20d15c1a5acffb159a525a7 160000 --- a/client-gnome +++ b/client-gnome @@ -1 +1 @@ -Subproject commit 40277efa9abd980b010cee852b405e564e6b0c3d +Subproject commit e9bc95724de31484a20d15c1a5acffb159a525a7 diff --git a/client-ios b/client-ios index ba96ab4f0d1529ad5386f8542d3d20f2ba0ea98a..556d248d2fa6dcd3a748cc3775f1e13385c6acd2 160000 --- a/client-ios +++ b/client-ios @@ -1 +1 @@ -Subproject commit ba96ab4f0d1529ad5386f8542d3d20f2ba0ea98a +Subproject commit 556d248d2fa6dcd3a748cc3775f1e13385c6acd2 diff --git a/client-macosx b/client-macosx index c35095bb31662e5655e591f31ce1c85bb9ba29c2..1c62576ea7fe9b96d631d5b260f8660b9982ea9f 160000 --- a/client-macosx +++ b/client-macosx @@ -1 +1 @@ -Subproject commit c35095bb31662e5655e591f31ce1c85bb9ba29c2 +Subproject commit 1c62576ea7fe9b96d631d5b260f8660b9982ea9f diff --git a/client-qt b/client-qt index e0737f4b70cb0e31bd7f8514847a26ccbedc8169..e0b28eed7b4971d1ac96a234395fd7d045ac9cdd 160000 --- a/client-qt +++ b/client-qt @@ -1 +1 @@ -Subproject commit e0737f4b70cb0e31bd7f8514847a26ccbedc8169 +Subproject commit e0b28eed7b4971d1ac96a234395fd7d045ac9cdd diff --git a/daemon b/daemon index c2b167da6171d54740a9afeb7a66577a8abfb504..042ad25ca2174df18ca18bcaf39286259fe275be 160000 --- a/daemon +++ b/daemon @@ -1 +1 @@ -Subproject commit c2b167da6171d54740a9afeb7a66577a8abfb504 +Subproject commit 042ad25ca2174df18ca18bcaf39286259fe275be diff --git a/docker/Dockerfile_debian_testing b/docker/Dockerfile_debian_testing index f051e12f82908803b98b7573ca5514f66267d866..e5a8e40c10d9a76f5f882524138fd2f095d0c802 100644 --- a/docker/Dockerfile_debian_testing +++ b/docker/Dockerfile_debian_testing @@ -3,7 +3,7 @@ FROM debian:testing ENV DEBIAN_FRONTEND=noninteractive RUN apt-get clean -RUN apt-get update && \ +RUN apt-get update --allow-releaseinfo-change && \ apt-get install -y -o Acquire::Retries=10 \ devscripts \ equivs \ diff --git a/docker/Dockerfile_ubuntu_21.10 b/docker/Dockerfile_ubuntu_21.10 new file mode 100644 index 0000000000000000000000000000000000000000..cb072b0b60dbfba018757070b176c67a51bf1122 --- /dev/null +++ b/docker/Dockerfile_ubuntu_21.10 @@ -0,0 +1,21 @@ +FROM ubuntu:21.10 + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get clean +RUN apt-get update && \ + apt-get install -y -o Acquire::Retries=10 \ + devscripts \ + equivs \ + wget + +ADD scripts/prebuild-package-debian.sh /opt/prebuild-package-debian.sh + +COPY packaging/rules/debian-qt/control /tmp/builddeps/debian/control +RUN /opt/prebuild-package-debian.sh qt-deps + +COPY packaging/rules/debian/control /tmp/builddeps/debian/control +RUN /opt/prebuild-package-debian.sh jami-deps + +ADD scripts/build-package-debian.sh /opt/build-package-debian.sh +CMD ["/opt/build-package-debian.sh"] diff --git a/lrc b/lrc index bbda106696c397a16c9f7da5e0ff40821509f90a..44202dea3b46ca5c7cd58f8c6f08530c0fae8efa 160000 --- a/lrc +++ b/lrc @@ -1 +1 @@ -Subproject commit bbda106696c397a16c9f7da5e0ff40821509f90a +Subproject commit 44202dea3b46ca5c7cd58f8c6f08530c0fae8efa diff --git a/packaging/rules/debian-qt/rules b/packaging/rules/debian-qt/rules index e4a325860ab322b0e745822281cc7a784db9a292..99c1dd0286c1df17473790d611bf27fa789b8bf0 100755 --- a/packaging/rules/debian-qt/rules +++ b/packaging/rules/debian-qt/rules @@ -30,12 +30,24 @@ JOB_COUNT = $(call min,$(NO_CPUS),$(COMPUTED_JOB_COUNT)) dh $@ override_dh_auto_configure: + # 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 ubuntu 21.10 + 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 + 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 \ -nomake examples \ -nomake tests \ -prefix "${QT_JAMI_PREFIX}" + sed -i 's,bin/python,bin/env python3,g' qtbase/mkspecs/features/uikit/devices.py override_dh_auto_build: @echo Building Qt using $(JOB_COUNT) parallel jobs diff --git a/packaging/rules/debian/control b/packaging/rules/debian/control index a3d4a4b713f8dc3acff64e6f528ebc0c02ef069b..b34d1a20faf8b7d759cd6b78f95dbb9f9c01a0d6 100644 --- a/packaging/rules/debian/control +++ b/packaging/rules/debian/control @@ -60,8 +60,8 @@ Build-Depends: debhelper (>= 9), yasm, Standards-Version: 4.1.5 Homepage: https://jami.net -Vcs-Git: https://git.jami.net/savoirfairelinux/ring-project.git -Vcs-Browser: https://git.jami.net/savoirfairelinux/ring-project +Vcs-Git: https://git.jami.net/savoirfairelinux/jami-project.git +Vcs-Browser: https://git.jami.net/savoirfairelinux/jami-project # The jami-all package is used as the "one-click install" package # offered on the Jami website. The following relationships ensure diff --git a/packaging/rules/debian/jami-all.postinst b/packaging/rules/debian/jami-all.postinst index 31ad8b6ecf96b4b34121abbb71b7f4f47cd4be84..572889d794edadc598c2e3660e5636839884ea36 100755 --- a/packaging/rules/debian/jami-all.postinst +++ b/packaging/rules/debian/jami-all.postinst @@ -106,6 +106,8 @@ if [ -f /etc/os-release ]; then ENDTAG="ubuntu_20.04" elif [ "${UBUNTU_CODENAME}" = "hirsute" ] || [ "${ID}_${VERSION_ID}" = "ubuntu_21.04" ]; then ENDTAG="ubuntu_21.04" + elif [ "${UBUNTU_CODENAME}" = "impish" ] || [ "${ID}_${VERSION_ID}" = "ubuntu_21.10" ]; then + ENDTAG="ubuntu_21.10" elif [ "${ID}" = "debian" ] && \ [ "$(command -v lsb_release)" ] && \ [ "$(lsb_release -rs)" = "testing" ]; then diff --git a/packaging/rules/debian/rules b/packaging/rules/debian/rules index 7ae06366cb24b3e9027b19ce17d36e5c20cf5bd5..a1fd53bba2470ebbee2398aa7b15380e0ded627d 100755 --- a/packaging/rules/debian/rules +++ b/packaging/rules/debian/rules @@ -55,9 +55,9 @@ OCI_INSTALL_DIR = $(CURDIR)/debian/$(JAMI_ALL_IN_ONE_PKG_NAME) dh $@ override_dh_auto_configure: - ########################### - ## Daemon configure ## - ########################### + +override_dh_auto_build: + # Daemon contribs build + configure mkdir -p daemon/contrib/native cd daemon/contrib/native && \ ../bootstrap \ @@ -75,68 +75,45 @@ override_dh_auto_configure: --disable-natpmp \ --enable-gnutls $(BUNDLED_PKGS) && \ make list && \ - GTKDOCIZE=true make -j$(NO_CPUS) V=1 + make -j$(NO_CPUS) V=1 cd daemon && \ ./autogen.sh && \ ./configure \ - --disable-shared \ --prefix=/usr \ --host=${HOST_ARCH} - ############################# - ## libringclient configure ## - ############################# + # Daemon build + make -C daemon -j$(NO_CPUS) V=1 + pod2man daemon/man/jamid.pod > daemon/jamid.1 + + # Libringclient configure cd lrc && \ mkdir build && \ cd build && \ cmake \ -DRING_BUILD_DIR=$(CURDIR)/daemon/src \ - -DENABLE_LIBWRAP=false \ + -DENABLE_LIBWRAP=true \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=lib \ $(CMAKE_OPTIONS) .. - ############################ - ## gnome client configure ## - ############################ - cd client-gnome && \ - mkdir build && \ - cd build && \ - cmake \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_INSTALL_LIBDIR=lib \ - -DLibRingClient_PROJECT_DIR=/$(CURDIR)/lrc \ - -DGSETTINGS_LOCALCOMPILE=OFF \ - $(CMAKE_OPTIONS) \ - .. - - ######################### - ## qt client configure ## - ######################### - # needs to be done after lrc is built; see below - - dh_auto_configure - -override_dh_auto_build: - ####################### - ## Daemon build ## - ####################### - make -C daemon -j$(NO_CPUS) V=1 - pod2man daemon/man/jamid.pod > daemon/jamid.1 - - ######################### - ## libringclient build ## - ######################### + # libringclient build make -C lrc/build -j$(NO_CPUS) V=1 - ######################## - ## gnome client build ## - ######################## + # GNOME client configure + cd client-gnome && \ + mkdir build && \ + cd build && \ + cmake -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DLibRingClient_PROJECT_DIR=/$(CURDIR)/lrc \ + -DGSETTINGS_LOCALCOMPILE=OFF \ + $(CMAKE_OPTIONS) .. + + # GNOME client build make -C client-gnome/build LDFLAGS="-lpthread" -j$(NO_CPUS) V=1 - ################################### - ## qt client configure and build ## - ################################### + # Qt client configure and build cd client-qt && \ mkdir build && \ cd build && \ diff --git a/packaging/rules/rpm/jami-daemon.spec b/packaging/rules/rpm/jami-daemon.spec index 82be069c74aee34a2295c894b145d536fe93e45a..ec16bac0ab241342f569e7c3fed05db5054cb809 100644 --- a/packaging/rules/rpm/jami-daemon.spec +++ b/packaging/rules/rpm/jami-daemon.spec @@ -85,8 +85,7 @@ cd %{_builddir}/ring-project/daemon && \ ./autogen.sh && \ ./configure \ --prefix=%{_prefix} \ - --libdir=%{_libdir} \ - --disable-shared + --libdir=%{_libdir} # Build the daemon. make -C %{_builddir}/ring-project/daemon %{_smp_mflags} V=1 @@ -102,6 +101,7 @@ rm -rfv %{buildroot}/%{_libdir}/*.la %files %defattr(-,root,root,-) +%{_libdir}/libring.so* # XXX: Use %%{_libexecdir}/jamid after there's no more OpenSUSE Leap # < 16 (see https://en.opensuse.org/openSUSE:Specfile_guidelines). /usr/libexec/jamid diff --git a/packaging/rules/rpm/jami-libclient.spec b/packaging/rules/rpm/jami-libclient.spec index 55556bc31728f93a56deca1e7b75fdbbff9283da..e80526297576d230aca96ba9fc5ef16a16106989 100644 --- a/packaging/rules/rpm/jami-libclient.spec +++ b/packaging/rules/rpm/jami-libclient.spec @@ -34,6 +34,7 @@ users. cd %{_builddir}/ring-project/lrc && \ mkdir build && cd build && \ cmake -DRING_BUILD_DIR=%{_builddir}/ring-project/daemon/src \ + -DENABLE_LIBWRAP=true \ -DCMAKE_INSTALL_PREFIX=%{_prefix} \ -DCMAKE_INSTALL_LIBDIR=%{_libdir} \ -DCMAKE_BUILD_TYPE=Debug \ diff --git a/plugins b/plugins index 17c0bc64a374d601012943a0a79ace65734dd922..adba0af01d3b90f3f629256acb344379afa97f8a 160000 --- a/plugins +++ b/plugins @@ -1 +1 @@ -Subproject commit 17c0bc64a374d601012943a0a79ace65734dd922 +Subproject commit adba0af01d3b90f3f629256acb344379afa97f8a diff --git a/scripts/install.sh b/scripts/install.sh index 5c2b8020986f8d431ee45711a946ad8b8d1b9223..b053090e46a40843a51ff3e1942c5b67bcd6e8af 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -1,7 +1,6 @@ #!/usr/bin/env bash # Build and install to a local prefix under this repository. -export OSTYPE # Flags: @@ -81,7 +80,7 @@ else BUILDDIR="build-local" fi -# dring +# jamid DAEMON=${TOP}/daemon cd "$DAEMON" @@ -96,15 +95,10 @@ mkdir -p contrib/native # Build the daemon itself. test -f configure || ./autogen.sh -if [[ "$OSTYPE" != "darwin"* ]]; then - # Keep the shared libaries on MAC OSX. - sharedLib="--disable-shared" -fi - if [ "${global}" = "true" ]; then - ./configure $sharedLib "$CONFIGURE_FLAGS" ${prefix:+"--prefix=$prefix"} + ./configure "$CONFIGURE_FLAGS" ${prefix:+"--prefix=$prefix"} else - ./configure $sharedLib "$CONFIGURE_FLAGS" --prefix="${INSTALL}/daemon" + ./configure "$CONFIGURE_FLAGS" --prefix="${INSTALL}/daemon" fi make -j"${proc}" V=1 make_install "${global}" "${priv_install}" @@ -144,6 +138,7 @@ lrc_cmake_flags=(-DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}" -DCMAKE_BUILD_TYPE=Debug -DQT5_VER="${qt5ver}" -DQT5_PATH="${qt5path}" + -DENABLE_LIBWRAP=true $static) if [ "${global}" = "true" ]; then lrc_cmake_flags+=(${prefix:+"-DCMAKE_INSTALL_PREFIX=$prefix"})