diff --git a/extras/packaging/gnu-linux/Makefile b/extras/packaging/gnu-linux/Makefile
index 7db37612e7e51538699fccc9ed327060b025baea..8e9b0695f73442bda417f209fb833eb5d76b2540 100644
--- a/extras/packaging/gnu-linux/Makefile
+++ b/extras/packaging/gnu-linux/Makefile
@@ -239,36 +239,39 @@ $(foreach target,$(DISTRIBUTIONS),\
 # Guix-generated Debian packages (deb packs) targets.
 #
 SUPPORTED_GNU_ARCHS = x86_64
-DEB_PACK_TARGETS =
+GUIX_PACK_FORMATS = deb rpm
 
+# TODO: Add a postin script for the RPM pack.
+# Arg1: the 'guix pack' format to use, e.g. 'deb' or 'rpm'.
 define guix-pack-command
-guix pack -C xz -f deb -m $(CURDIR)/extras/packaging/gnu-linux/guix/guix-pack-manifest.scm -v3 \
+guix pack -C xz -f $(1) -m $(CURDIR)/extras/packaging/gnu-linux/guix/guix-pack-manifest.scm -v3 \
   -S /usr/bin/jami=bin/jami \
   -S /usr/share/applications/jami.desktop=share/applications/jami.desktop \
   -S /usr/share/icons/hicolor/scalable/apps/jami.svg=share/icons/hicolor/scalable/apps/jami.svg \
   -S /usr/share/icons/hicolor/48x48/apps/jami.png=share/icons/hicolor/48x48/apps/jami.png \
   -S /usr/share/metainfo/jami.appdata.xml=share/metainfo/jami.appdata.xml \
-  --postinst-file=$(CURDIR)/extras/packaging/gnu-linux/guix/guix-pack-deb.postinst
+  $(and $(findstring deb,$(1)), \
+    --postinst-file=$(CURDIR)/extras/packaging/gnu-linux/guix/guix-pack-deb.postinst)
 endef
 
-# Arg1: the GNU architecture type (e.g., x86_64, i686, powerpcle, etc.)
-define define-deb-pack-rule
-deb-file-name := extras/packaging/gnu-linux/packages/guix-deb-pack/jami-$(RELEASE_VERSION)-$(1).deb
-DEB_PACK_TARGETS += deb-pack-$(subst _,-,$(1))
-.PHONY: deb-pack-$(subst _,-,$(1))
-deb-pack-$(subst _,-,$(1)): $$(deb-file-name)
-$$(deb-file-name): has-guix-p $(RELEASE_TARBALL_FILENAME)
-	output=$$$$($(guix-pack-command) --system=$(1)-linux $$(GUIX_PACK_ARGS)) && \
+# Arg1: the 'guix pack' format to use, e.g. 'deb' or 'rpm'.
+# Arg2: the GNU architecture type (e.g., x86_64, i686, powerpcle, etc.)
+define define-guix-pack-rule
+$(1)-file-name := extras/packaging/gnu-linux/packages/guix-$(1)-pack/jami-$(RELEASE_VERSION)-$(2).$(1)
+PACKAGE-TARGETS += $(1)-pack-$(subst _,-,$(2))
+.PHONY: $(1)-pack-$(subst _,-,$(2))
+$(1)-pack-$(subst _,-,$(2)): $$($(1)-file-name)
+$$($(1)-file-name): has-guix-p $(RELEASE_TARBALL_FILENAME)
+	output=$$$$($(call guix-pack-command,$(1)) --system=$(2)-linux $$(GUIX_PACK_ARGS)) && \
 	mkdir -p "$$$$(dirname "$$@")" && \
 	cp --reflink=auto "$$$$output" "$$@" && \
 	guix gc --delete "$$$$output"
 	chmod +w "$$@"
 endef
 
-$(foreach arch,$(SUPPORTED_GNU_ARCHS),\
-	$(eval $(call define-deb-pack-rule,$(arch))))
-
-PACKAGE-TARGETS += $(DEB_PACK_TARGETS)
+$(foreach format,$(GUIX_PACK_FORMATS),\
+  $(foreach arch,$(SUPPORTED_GNU_ARCHS),\
+    $(eval $(call define-guix-pack-rule,$(format),$(arch)))))
 
 package-all: $(PACKAGE-TARGETS)
 
diff --git a/extras/packaging/gnu-linux/scripts/deploy-packages.sh b/extras/packaging/gnu-linux/scripts/deploy-packages.sh
index a655d9677332fce8833057520df25818990ce2b7..0459a5fc4df053edc3dc9c3fafdc87696c838251 100755
--- a/extras/packaging/gnu-linux/scripts/deploy-packages.sh
+++ b/extras/packaging/gnu-linux/scripts/deploy-packages.sh
@@ -272,7 +272,7 @@ function package()
 {
     if [[ $DISTRIBUTION =~ debian|ubuntu|raspbian|guix-deb-pack ]]; then
         package_deb
-    elif [[ $DISTRIBUTION =~ fedora|rhel|opensuse ]]; then
+    elif [[ $DISTRIBUTION =~ fedora|rhel|opensuse|guix-rpm-pack ]]; then
         package_rpm
     elif [[ $DISTRIBUTION =~ snap ]]; then
         package_snap