diff --git a/.gitignore b/.gitignore
index f4a63d6d8e22c714a03563eb4b9be823fdff3d59..335796a1d8df5b30987a9f87b47c27b62634a4c0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,3 +36,10 @@ src/app/constant/JamiResources.qml
 
 # macOS
 .DS_Store
+
+# packaging
+.tarball-version
+tarballs.manifest
+jami-*.tar.gz
+extras/packaging/gnu-linux/packages/
+.docker-image-*
diff --git a/extras/packaging/gnu-linux/Jenkinsfile b/extras/packaging/gnu-linux/Jenkinsfile
index 08c8ac99e79e22f1c782a4efea1db77089645ab7..7b7cf19421a4b9a87d8e19b894608546767a7b8a 100644
--- a/extras/packaging/gnu-linux/Jenkinsfile
+++ b/extras/packaging/gnu-linux/Jenkinsfile
@@ -140,8 +140,8 @@ make -f extras/packaging/gnu-linux/Makefile portable-release-tarball .tarball-ve
                 sshagent(credentials: [JENKINS_SSH_KEY, DL_SSH_KEY]) {
                     echo "Publishing to git repository..."
                     script {
-                        def wantedTag = sh (
-                            script: "echo ${params.CHANNEL}/\$(date +\"%Y%m%d\")",
+                        def wantedTag = "${params.CHANNEL}/" + sh (
+                            script: "./extras/packaging/gnu-linux/scripts/release-version.sh ${params.CHANNEL}",
                             returnStdout: true
                         ).trim()
                         sh """
diff --git a/extras/packaging/gnu-linux/Makefile b/extras/packaging/gnu-linux/Makefile
index f3adcbbd16d43941d1fb68e714b82a6e429d2773..520c47c7ee26e9df3b4249cae91e0e8a3aa5c2f2 100644
--- a/extras/packaging/gnu-linux/Makefile
+++ b/extras/packaging/gnu-linux/Makefile
@@ -27,17 +27,17 @@ export TARBALLS ?= /var/cache/jami
 TARBALL_VERSION := $(shell cat $(CURDIR)/.tarball-version 2> /dev/null)
 
 ifeq ($(TARBALL_VERSION),)
-LAST_COMMIT_DATE := $(shell git log -1 --format=%cd --date=format:'%Y%m%d.%H%M')
-COMMIT_ID := $(shell git rev-parse --short HEAD)
-RELEASE_VERSION := $(LAST_COMMIT_DATE).$(COMMIT_ID)
+RELEASE_VERSION := $(shell ./extras/packaging/gnu-linux/scripts/release-version.sh)
 else
 $(warning Using version from the .tarball-version file: $(TARBALL_VERSION))
 RELEASE_VERSION := $(TARBALL_VERSION)
 endif
-RELEASE_TARBALL_FILENAME := jami_$(RELEASE_VERSION).tar.gz
+RELEASE_DIRNAME := jami-$(RELEASE_VERSION)
+RELEASE_TARBALL_FILENAME := $(RELEASE_DIRNAME).tar.gz
 
 # Export for consumption in child processes.
 export RELEASE_VERSION
+export RELEASE_DIRNAME
 export RELEASE_TARBALL_FILENAME
 
 # Debian versions
@@ -78,7 +78,7 @@ TAR_REPRODUCIBILITY_OPTIONS = \
 	echo $(RELEASE_VERSION) > $@
 
 purge-release-tarballs:
-	rm -f jami_*.tar.* tarballs.manifest
+	rm -f jami-*.tar.* tarballs.manifest
 
 release-tarball:
 	rm -f "$(RELEASE_TARBALL_FILENAME)" tarballs.manifest
@@ -123,27 +123,27 @@ ifeq ($(TARBALL_VERSION),)
 $(RELEASE_TARBALL_FILENAME): tarballs.manifest
 # Prepare the sources of the top repository and relevant submodules.
 	rm -f "$@"
-	mkdir $(TMPDIR)/client-qt
-	git archive HEAD | tar xf - -C $(TMPDIR)/client-qt
+	mkdir $(TMPDIR)/$(RELEASE_DIRNAME)
+	git archive HEAD | tar xf - -C $(TMPDIR)/$(RELEASE_DIRNAME)
 	for m in \
 	    ./daemon \
 	    . \
 	    ./3rdparty/SortFilterProxyModel; do \
 	  (cd "$$m" && git archive --prefix "$$m/" HEAD \
-		| tar xf - -C $(TMPDIR)/client-qt); \
+	    | tar xf - -C $(TMPDIR)/$(RELEASE_DIRNAME)); \
 	done
 # Create the base archive.
-	tar -cf $(TMPDIR)/client-qt.tar $(TMPDIR)/client-qt \
-	  --transform 's,.*/client-qt,client-qt,' \
+	tar -cf $(TMPDIR)/$(RELEASE_DIRNAME).tar $(TMPDIR)/$(RELEASE_DIRNAME) \
+	  --transform "s,.*/$(RELEASE_DIRNAME),$(RELEASE_DIRNAME)," \
 	  $(TAR_REPRODUCIBILITY_OPTIONS)
 # Append the cached tarballs listed in the manifest.
-	tar --append --file $(TMPDIR)/client-qt.tar \
+	tar --append --file $(TMPDIR)/$(RELEASE_DIRNAME).tar \
 	  --files-from $< \
-	  --transform 's,^.*/,client-qt/daemon/contrib/tarballs/,' \
-          $(TAR_REPRODUCIBILITY_OPTIONS)
+	  --transform "s,^.*/,$(RELEASE_DIRNAME)/daemon/contrib/tarballs/," \
+        $(TAR_REPRODUCIBILITY_OPTIONS)
 # Compress the tarball and move it into place.
-	gzip --no-name $(TMPDIR)/client-qt.tar
-	mv $(TMPDIR)/client-qt.tar.gz "$@"
+	gzip --no-name $(TMPDIR)/$(RELEASE_DIRNAME).tar
+	mv $(TMPDIR)/$(RELEASE_DIRNAME).tar.gz "$@"
 	rm -rf $(TMPDIR)
 else
 # If TARBALL_VERSION is defined, assume it's already been generated,
@@ -189,6 +189,7 @@ $(1)-docker-image-file := .docker-image-$$($(1)-docker-image-name)
 $(1)-docker-run-command := docker run \
   --rm --privileged --security-opt apparmor=docker-default \
   -e RELEASE_VERSION="$(RELEASE_VERSION)" \
+  -e RELEASE_DIRNAME="$(RELEASE_DIRNAME)" \
   -e RELEASE_TARBALL_FILENAME="$(RELEASE_TARBALL_FILENAME)" \
   -e DEBIAN_VERSION="$(DEBIAN_VERSION)" \
   -e DEBIAN_QT_VERSION="$(DEBIAN_QT_VERSION)" \
@@ -296,8 +297,7 @@ env:
 clean:
 	rm -rf env
 	rm -rf docs/build
-	rm -f jami_*.tar.gz
+	rm -f jami-*.tar.gz
 	rm -rf extras/packaging/gnu-linux/packages
-	rm -f Makefile.packaging.distro_targets
 	rm -f .docker-image-*
-	rm -rf client-qt/daemon/contrib/tarballs/*
+	rm -rf daemon/contrib/tarballs/*
diff --git a/extras/packaging/gnu-linux/rules/rpm/jami-daemon.spec b/extras/packaging/gnu-linux/rules/rpm/jami-daemon.spec
index 7c268e28882f38119e01e298461a6ca25adf4f63..de587dd4854869a4f52ab32ef0140ca33bd7f07d 100644
--- a/extras/packaging/gnu-linux/rules/rpm/jami-daemon.spec
+++ b/extras/packaging/gnu-linux/rules/rpm/jami-daemon.spec
@@ -10,7 +10,7 @@ Group:         Applications/Internet
 License:       GPLv3+
 Vendor:        Savoir-faire Linux
 URL:           https://jami.net/
-Source:        jami_%{version}.tar.gz
+Source:        jami-%{version}.tar.gz
 Requires:      jami-daemon = %{version}
 
 # Build dependencies
@@ -59,14 +59,14 @@ universal communication which respects the freedoms and privacy of its
 users.
 
 %prep
-%setup -n client-qt
+%setup -n jami-%{version}
 
 %build
 CFLAGS="${CFLAGS} -fno-lto"
 CXXFLAGS="${CXXFLAGS} -fno-lto"
 # Configure the Jami bundled libraries (ffmpeg & pjproject).
 mkdir -p daemon/contrib/native
-cd %{_builddir}/client-qt/daemon/contrib/native && \
+cd %{_builddir}/jami-%{version}/daemon/contrib/native && \
     ../bootstrap \
         --no-checksums \
         --disable-ogg \
@@ -83,19 +83,19 @@ cd %{_builddir}/client-qt/daemon/contrib/native && \
     make %{_smp_mflags} V=1 && \
     make %{_smp_mflags} V=1 .ffmpeg
 # Configure the daemon.
-cd %{_builddir}/client-qt/daemon && \
+cd %{_builddir}/jami-%{version}/daemon && \
     ./autogen.sh && \
     ./configure \
         --prefix=%{_prefix} \
         --libdir=%{_libdir}
 # Build the daemon.
-make -C %{_builddir}/client-qt/daemon %{_smp_mflags} V=1
-pod2man %{_builddir}/client-qt/daemon/man/jamid.pod \
-        > %{_builddir}/client-qt/daemon/jamid.1
+make -C %{_builddir}/jami-%{version}/daemon %{_smp_mflags} V=1
+pod2man %{_builddir}/jami-%{version}/daemon/man/jamid.pod \
+        > %{_builddir}/jami-%{version}/daemon/jamid.1
 
 %install
 DESTDIR=%{buildroot} make -C daemon install
-cp %{_builddir}/client-qt/daemon/jamid.1 \
+cp %{_builddir}/jami-%{version}/daemon/jamid.1 \
    %{buildroot}/%{_mandir}/man1/jamid.1
 rm -rfv %{buildroot}/%{_libdir}/*.a
 rm -rfv %{buildroot}/%{_libdir}/*.la
diff --git a/extras/packaging/gnu-linux/rules/rpm/jami-libclient.spec b/extras/packaging/gnu-linux/rules/rpm/jami-libclient.spec
index 003e311611c6f87f674480ba5118a16ae675c5a6..e64cf1220d72d9e09d1be3d3f2d2d8b9e84938eb 100644
--- a/extras/packaging/gnu-linux/rules/rpm/jami-libclient.spec
+++ b/extras/packaging/gnu-linux/rules/rpm/jami-libclient.spec
@@ -15,7 +15,7 @@ Group:         Applications/Internet
 License:       GPLv3+
 Vendor:        Savoir-faire Linux
 URL:           https://jami.net/
-Source:        jami_%{version}.tar.gz
+Source:        jami-%{version}.tar.gz
 
 %description
 This is a transitional package. Jami libclient has been merged into
diff --git a/extras/packaging/gnu-linux/rules/rpm/jami-libqt.spec b/extras/packaging/gnu-linux/rules/rpm/jami-libqt.spec
index 5e2e3d1eaa4366c24e7378b2b7ba0626bc94843b..72e4472d01a901a33397f6dc129d3e4757c02780 100644
--- a/extras/packaging/gnu-linux/rules/rpm/jami-libqt.spec
+++ b/extras/packaging/gnu-linux/rules/rpm/jami-libqt.spec
@@ -25,7 +25,7 @@ Group:         Applications/Internet
 License:       GPLv3+
 Vendor:        Savoir-faire Linux
 URL:           https://jami.net/
-Source:        jami-qtlib_%{version}.tar.xz
+Source:        jami-libqt-%{version}.tar.xz
 Patch0:        0001-qtbug-101201-fatal-error-getcurrenkeyboard.patch
 
 %global gst 0.10
diff --git a/extras/packaging/gnu-linux/rules/rpm/jami-qt.spec b/extras/packaging/gnu-linux/rules/rpm/jami-qt.spec
index 5cc25e896063251c09d783f8ffeeb3a96044361c..7e7cb955c7bffff8572ed1deb9904df6352fc0a5 100644
--- a/extras/packaging/gnu-linux/rules/rpm/jami-qt.spec
+++ b/extras/packaging/gnu-linux/rules/rpm/jami-qt.spec
@@ -15,7 +15,7 @@ Group:         Applications/Internet
 License:       GPLv3+
 Vendor:        Savoir-faire Linux
 URL:           https://jami.net/
-Source:        jami_%{version}.tar.gz
+Source:        jami-%{version}.tar.gz
 Requires:      jami
 
 %description
diff --git a/extras/packaging/gnu-linux/rules/rpm/jami.spec b/extras/packaging/gnu-linux/rules/rpm/jami.spec
index 6ae92b70de61a253facb9a5bfc6d1a14c754e631..41792814b96e1f61a7287a72cf7d0374ff40768b 100644
--- a/extras/packaging/gnu-linux/rules/rpm/jami.spec
+++ b/extras/packaging/gnu-linux/rules/rpm/jami.spec
@@ -10,7 +10,7 @@ Group:         Applications/Internet
 License:       GPLv3+
 Vendor:        Savoir-faire Linux
 URL:           https://jami.net/
-Source:        jami_%{version}.tar.gz
+Source:        jami-%{version}.tar.gz
 Requires:      jami-daemon = %{version}
 Requires:      jami-libqt
 Provides:      jami-qt = %{version}
@@ -36,12 +36,12 @@ software for universal communication which respects freedoms and
 privacy of its users.
 
 %prep
-%setup -n client-qt
+%setup -n jami-%{version}
 
 %build
 # Configure and build bundled ffmpeg (for libavutil/avframe).
-mkdir -p %{_builddir}/client-qt/daemon/contrib/native
-cd %{_builddir}/client-qt/daemon/contrib/native && \
+mkdir -p %{_builddir}/jami-%{version}/daemon/contrib/native
+cd %{_builddir}/jami-%{version}/daemon/contrib/native && \
     ../bootstrap \
         --no-checksums \
         --disable-ogg \
@@ -57,19 +57,19 @@ cd %{_builddir}/client-qt/daemon/contrib/native && \
     make fetch && \
     make %{_smp_mflags} V=1 .ffmpeg
 # Qt-related variables
-cd %{_builddir}/client-qt && \
+cd %{_builddir}/jami-%{version} && \
     mkdir build && cd build && \
     cmake -DENABLE_LIBWRAP=true \
-          -DLIBJAMI_BUILD_DIR=%{_builddir}/client-qt/daemon/src \
+          -DLIBJAMI_BUILD_DIR=%{_builddir}/jami-%{version}/daemon/src \
           -DCMAKE_INSTALL_PREFIX=%{_prefix} \
           -DCMAKE_INSTALL_LIBDIR=%{_libdir} \
           -DWITH_DAEMON_SUBMODULE=true \
           -DCMAKE_BUILD_TYPE=Release \
           ..
-make -C %{_builddir}/client-qt/build %{_smp_mflags} V=1
+make -C %{_builddir}/jami-%{version}/build %{_smp_mflags} V=1
 
 %install
-DESTDIR=%{buildroot} make -C %{_builddir}/client-qt/build install
+DESTDIR=%{buildroot} make -C %{_builddir}/jami-%{version}/build install
 
 %files
 %defattr(-,root,root,-)
@@ -81,4 +81,4 @@ DESTDIR=%{buildroot} make -C %{_builddir}/client-qt/build install
 %{_datadir}/pixmaps/jami.xpm
 %{_datadir}/metainfo/jami.appdata.xml
 %{_datadir}/jami/translations/*
-%doc %{_mandir}/man1/jami*
\ No newline at end of file
+%doc %{_mandir}/man1/jami*
diff --git a/extras/packaging/gnu-linux/scripts/build-package-rpm.sh b/extras/packaging/gnu-linux/scripts/build-package-rpm.sh
index 694e3617e8c21bd4fda8e313091be9721a06a42c..8689b35012c26f2eab239356b87a478472315cdf 100755
--- a/extras/packaging/gnu-linux/scripts/build-package-rpm.sh
+++ b/extras/packaging/gnu-linux/scripts/build-package-rpm.sh
@@ -26,7 +26,7 @@ set -e
 # Import the spec file.
 mkdir -p /opt/client-qt
 cd /opt/client-qt
-tar xf "/src/$RELEASE_TARBALL_FILENAME" client-qt/extras/packaging/gnu-linux/rules/rpm \
+tar xf "/src/$RELEASE_TARBALL_FILENAME" --wildcards 'jami-*/extras/packaging/gnu-linux/rules/rpm' \
     --strip-components=5 && mv rpm/* . && rmdir rpm
 rm jami-libqt.spec
 
@@ -74,7 +74,7 @@ if [ ! -f "${RPM_PATH}" ]; then
         mkdir /opt/qt-jami-build
         cd /opt/qt-jami-build
         tar xf "/src/$RELEASE_TARBALL_FILENAME" \
-            client-qt/extras/packaging/gnu-linux/rules/rpm/jami-libqt.spec \
+            --wildcards 'jami-*/extras/packaging/gnu-linux/rules/rpm/jami-libqt.spec' \
             --strip-components=6
 
         # Fetch and cache the tarball, if not already available.
@@ -93,7 +93,7 @@ if [ ! -f "${RPM_PATH}" ]; then
             ) 8>"${CACHED_QT_TARBALL}.lock"
         fi
 
-        cp "$CACHED_QT_TARBALL" "/root/rpmbuild/SOURCES/jami-qtlib_$QT_MAJOR_MINOR_PATCH.tar.xz"
+        cp "$CACHED_QT_TARBALL" "/root/rpmbuild/SOURCES/jami-libqt-$QT_MAJOR_MINOR_PATCH.tar.xz"
         sed -i "s/RELEASE_VERSION/$QT_MAJOR_MINOR_PATCH/g" jami-libqt.spec
         rpmdev-bumpspec --comment="Automatic nightly release" \
                         --userstring="Jenkins <jami@lists.savoirfairelinux.net>" jami-libqt.spec
diff --git a/extras/packaging/gnu-linux/scripts/build-package-snap.sh b/extras/packaging/gnu-linux/scripts/build-package-snap.sh
index 4215b79012f922b7f589af5cd9d9b5d4ccb246d5..30f452486e9d73aa92389c7ed26f860216b3a759 100755
--- a/extras/packaging/gnu-linux/scripts/build-package-snap.sh
+++ b/extras/packaging/gnu-linux/scripts/build-package-snap.sh
@@ -24,7 +24,7 @@
 set -e
 
 tar xf "/src/$RELEASE_TARBALL_FILENAME" -C /opt
-cd /opt/client-qt/
+cd /opt/jami-*/
 cp -r extras/packaging/gnu-linux/rules/snap/common .
 cp -r extras/packaging/gnu-linux/rules/snap/${SNAP_PKG_NAME}/snapcraft.yaml .
 
diff --git a/extras/packaging/gnu-linux/scripts/release-version.sh b/extras/packaging/gnu-linux/scripts/release-version.sh
new file mode 100755
index 0000000000000000000000000000000000000000..3d1e0b3b597c4eaa4a9c3955761d5e820e13c94c
--- /dev/null
+++ b/extras/packaging/gnu-linux/scripts/release-version.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+#
+# Copyright (C) 2023 Savoir-faire Linux Inc.
+#
+# Author: Amin Bandali <amin.bandali@savoirfairelinux.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+# This script is used in the packaging containers to build a snap
+# package on an ubuntu base distro.
+
+if [ $# -gt 1 ]; then
+    echo "Usage: $0 {stable,beta,nightly}"
+    exit 1
+fi
+
+# default to stable if no release type given
+release_type=${1:-stable}
+
+last_commit_date=$(git log -1 --format=%cd --date=format:'%Y%m%d')
+same_day_releases=$(git tag -l "${release_type}/${last_commit_date}*" | wc -l)
+release_counter=${same_day_releases:-0}
+release_version=${last_commit_date}.${release_counter}
+printf "${release_version}"
diff --git a/extras/packaging/gnu-linux/tarballs.manifest b/extras/packaging/gnu-linux/tarballs.manifest
deleted file mode 100644
index b3e813177c003c2a5cd71b3e0240f786618b85f8..0000000000000000000000000000000000000000
--- a/extras/packaging/gnu-linux/tarballs.manifest
+++ /dev/null
@@ -1,16 +0,0 @@
-/home/amarok/Projects/jami/daemon/contrib/tarballs/asio-asio-1-22-1.tar.gz
-/home/amarok/Projects/jami/daemon/contrib/tarballs/ffmpeg-n5.0.tar.gz
-/home/amarok/Projects/jami/daemon/contrib/tarballs/ffnvcodec-n11.1.5.1.tar.xz
-/home/amarok/Projects/jami/daemon/contrib/tarballs/fmt-9.1.0.tar.gz
-/home/amarok/Projects/jami/daemon/contrib/tarballs/gmp-6.2.1.tar.bz2
-/home/amarok/Projects/jami/daemon/contrib/tarballs/http-parser-2.9.4.tar.gz
-/home/amarok/Projects/jami/daemon/contrib/tarballs/libarchive-3.6.0.tar.xz
-/home/amarok/Projects/jami/daemon/contrib/tarballs/libgit2-v1.1.0.tar.gz
-/home/amarok/Projects/jami/daemon/contrib/tarballs/libnatpmp-20150609.tar.gz
-/home/amarok/Projects/jami/daemon/contrib/tarballs/opendht-af7d88b057fa4c84ab9096c6a1932bd5d34634ef.tar.gz
-/home/amarok/Projects/jami/daemon/contrib/tarballs/pjproject-513a3f14c44b2c2652f9219ec20dea64b236b713.tar.gz
-/home/amarok/Projects/jami/daemon/contrib/tarballs/restinio-bbaa034dbcc7555ce67df0f8a1475591a7441733.tar.gz
-/home/amarok/Projects/jami/daemon/contrib/tarballs/secp256k1-0b7024185045a49a1a6a4c5615bf31c94f63d9c4.tar.gz
-/home/amarok/Projects/jami/daemon/contrib/tarballs/pupnp-release-1.14.13.tar.gz
-/home/amarok/Projects/jami/daemon/contrib/tarballs/libvpx-v1.12.0.tar.gz
-/home/amarok/Projects/jami/daemon/contrib/tarballs/webrtc-audio-processing-v0.3.1.tar.gz