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"})