diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9da72048e73d0c8110728eed16b8674a9596bd2f..11f1603cb4ba3696f9bb4058fadf2cb6b552f268 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -715,13 +715,13 @@ elseif (NOT APPLE)
   # Install .desktop in XDG desktop direcory so that it is recognized
   # by the system.
   install(
-    FILES ${DATA_DIR}/jami.desktop
+    FILES ${DATA_DIR}/net.jami.Jami.desktop
     DESTINATION ${JAMI_DATA_PREFIX}/applications)
 
   # Install .desktop in the jami data directory, so that it can be
   # copied to the autostart directory by the client.
   install(
-    FILES ${DATA_DIR}/jami.desktop
+    FILES ${DATA_DIR}/net.jami.Jami.desktop
     DESTINATION "${JAMI_DATA_PREFIX}/${PROJECT_NAME}"
     PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) # 644
 
@@ -756,9 +756,19 @@ elseif (NOT APPLE)
     DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps
     RENAME jami.xpm)
 
+  # AppStream metadata
+  #
+  # MetaInfo file:
   install(
-    FILES ${DATA_DIR}/jami.appdata.xml
+    FILES ${DATA_DIR}/net.jami.Jami.metainfo.xml
     DESTINATION ${CMAKE_INSTALL_PREFIX}/share/metainfo)
+  # Catalog file:
+  if(NOT DEFINED APPSTREAM_CATALOG_DIR)
+    set(APPSTREAM_CATALOG_DIR /share/swcatalog/xml)
+  endif()
+  install(
+    FILES ${DATA_DIR}/jami.xml
+    DESTINATION ${CMAKE_INSTALL_PREFIX}${APPSTREAM_CATALOG_DIR})
 
   # man page
   install(
diff --git a/extras/data/jami.appdata.xml b/extras/data/jami.appdata.xml
deleted file mode 100644
index 949fa47e694e23e011745b750dfb37261b581edd..0000000000000000000000000000000000000000
--- a/extras/data/jami.appdata.xml
+++ /dev/null
@@ -1,219 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2015-2024 Savoir-faire Linux Inc. -->
-<component type="desktop-application">
-  <id>net.jami.Jami</id>
-  <metadata_license>CC-BY-SA-3.0</metadata_license>
-  <project_license>GPL-3.0+</project_license>
-  <name>Jami</name>
-
-  <summary>Privacy-oriented voice, video, chat, and conference platform</summary>
-  <summary xml:lang="hu">Adatvédelem-orientált hang-, video-, csevegés- és konferenciaplatform</summary>
-  <icon type="stock">jami</icon>
-
-  <description>
-    <p>
-      Jami, a GNU package, is software for universal and distributed peer-to-peer communication that respects the freedom and privacy of its users.
-    </p>
-    <p>
-      Jami is the simplest and easiest way to connect with people (and devices) with instant messaging, audio and video calls over the Internet and LAN/WAN intranets.
-    </p>
-    <p>
-      Jami is a free/libre, end-to-end encrypted, and private communication platform.
-    </p>
-    <p>
-      Jami – which used to be known as Ring – is also an open-source alternative (to Facebook Messenger, Signal, Skype, Teams, Telegram, TikTok, Viber, WhatsApp, Zoom) that prioritizes the privacy of its users.
-    </p>
-    <p>
-      Jami has a professional-looking design and is available for a wide range of platforms. Unlike the alternatives, calls using Jami are directly between users as it does not use servers to handle calls.
-    </p>
-    <p>
-      This gives the greatest privacy as the distributed nature of Jami means your calls are only between participants.
-    </p>
-    <p>
-      One-to-one and group conversations with Jami are enhanced with: instant messaging; audio and video calling; recording and sending audio and video messages; file transfers; screen sharing; and, location sharing.
-    </p>
-    <p>
-      Jami can also function as a SIP client.
-    </p>
-    <p>
-      Jami has multiple extensions available: Audio Filter; Auto Answer; Green Screen; Watermark; and, Whisper Transcript.
-    </p>
-    <p>
-      Jami can be easily deployed in organizations with the “Jami Account Management Server” (JAMS), allowing users to connect with their corporate credentials or create local accounts. JAMS allows you to manage your own Jami community while taking advantage of Jami’s distributed network architecture.
-    </p>
-    <p>
-      Jami is available for GNU/Linux, Windows, macOS, iOS, Android, and Android TV, making Jami an interoperable and cross-platform communication framework.
-    </p>
-    <p>
-      Manage multiple SIP accounts, Jami accounts and JAMS accounts with the Jami client installed on one or multiple devices.
-    </p>
-    <p>
-      Jami is free, unlimited, private, advertising free, compatible, fast, autonomous, and anonymous.
-    </p>
-    <p>
-      Learn more about:<br/>
-      Jami: https://jami.net/<br/>
-      Jami extensions: https://jami.net/extensions/<br/>
-      “Jami Account Management Server” (JAMS): https://jami.biz/<br/>
-      Jami documentation: https://docs.jami.net/
-    </p>
-    <p>
-      Follow us for more:<br/>
-      Mastodon: https://mstdn.io/@Jami<br/>
-      X: https://x.com/jami_social<br/>
-      YouTube: https://www.youtube.com/@jami9311
-    </p>
-    <p>
-      We’d love to hear from you! Join the Jami community:<br/>
-      Contribute: https://jami.net/contribute/<br/>
-      Forum: https://forum.jami.net/
-    </p>
-    <p>
-      Build with Jami on your IoT project: re-use the universal communications technology of Jami with its portable library on your system of choice.
-    </p>
-    <p>
-      Jami for Android TV is tested on NVIDIA SHIELD TV with Logitech cameras.
-    </p>
-    <p>
-      Jami is published under the GPL license, version 3 or higher.<br/>
-      Copyright © Savoir-faire Linux Inc.
-    </p>
-
-    <p xml:lang="hu">
-      A Jami, egy GNU-csomag, egy univerzális és elosztott társ-társ kommunikációra szolgáló szoftver, amely tiszteletben tartja a felhasználók szabadságát és magánéletét.
-    </p>
-    <p xml:lang="hu">
-      A Jami a legegyszerűbb és legegyszerűbb módja annak, hogy azonnali üzenetküldéssel, hang- és videohívásokkal kapcsolódjon az emberekhez (és eszközökhöz) az interneten és a LAN/WAN intraneteken keresztül.
-    </p>
-    <p xml:lang="hu">
-      A Jami egy ingyenes, teljes körűen titkosított és privát kommunikációs platform.
-    </p>
-    <p xml:lang="hu">
-      A Jami – amelyet korábban Ring néven ismertek – egy nyílt forráskódú alternatíva is (a Facebook Messenger, a Signal, a Skype, a Teams, a Telegram, a TikTok, a Viber, a WhatsApp, a Zoom számára), amely előtérbe helyezi a felhasználók magánéletét.
-    </p>
-    <p xml:lang="hu">
-      A Jami professzionális megjelenésű, és platformok széles skálájához elérhető. Az alternatívákkal ellentétben a Jami-t használó hívások közvetlenül a felhasználók között zajlanak, mivel nem használ kiszolgálókat a hívások kezelésére.
-    </p>
-    <p xml:lang="hu">
-      Ez biztosítja a legnagyobb magánéletet, mivel a Jami elosztott jellege azt jelenti, hogy a hívások csak a résztvevők között zajlanak.
-    </p>
-    <p xml:lang="hu">
-      A Jamival folytatott személyes és csoportos beszélgetéseket a következők javítják: azonnali üzenetküldés; hang- és videohívások; hang- és videoüzenetek rögzítése és küldése; fájlátvitel; képernyőmegosztás; és helymegosztás.
-    </p>
-    <p xml:lang="hu">
-      A Jami SIP-ügyfélként is működhet.
-    </p>
-    <p xml:lang="hu">
-      A Jami-nek több bővítménye is elérhető: hangszűrő; automatikus válasz; zöld képernyő; vízjel; és, suttogó átirat.
-    </p>
-    <p xml:lang="hu">
-      A Jami könnyen telepíthető a szervezetekben a JAMS (Jami Account Management Server – Jami fiókkezelő kiszolgáló), amely lehetővé teszi a felhasználók számára, hogy csatlakozzanak vállalati hitelesítő adataikhoz, vagy helyi fiókokat hozzanak létre. A JAMS lehetővé teszi saját Jami közösségének kezelését, miközben kihasználja a Jami elosztott hálózati architektúráját.
-    </p>
-    <p xml:lang="hu">
-      A Jami elérhető GNU/Linux, Windows, macOS, iOS, Android és Android TV rendszereken, így a Jami egy interoperábilis és platformok közötti kommunikációs keretrendszer.
-    </p>
-    <p xml:lang="hu">
-      Kezeljen több SIP-fiókot, Jami-fiókot és JAMS-fiókot az egy vagy több eszközre telepített Jami-ügyféllel.
-    </p>
-    <p xml:lang="hu">
-      A Jami ingyenes, korlátlan, privát, reklámmentes, kompatibilis, gyors, autonóm és névtelen.
-    </p>
-    <p xml:lang="hu">
-      További tájékoztatás:<br/>
-      Jami: https://jami.net/hu/<br/>
-      Jami-bővítmények: https://jami.net/hu/extensions/<br/>
-      JAMS (Jami Account Management Server – Jami fiókkezelő kiszolgáló): https://jami.biz/<br/>
-      Jami-dokumentáció: https://docs.jami.net/hu/
-    </p>
-    <p xml:lang="hu">
-      Kövess minket a továbbiakért:<br/>
-      Mastodon: https://mstdn.io/@Jami<br/>
-      X: https://x.com/jami_social<br/>
-      YouTube: https://www.youtube.com/@jami9311
-    </p>
-    <p xml:lang="hu">
-      Szívesen hallanánk felőled! Csatlakozzon a Jami közösséghez:<br/>
-      Közreműködés: https://jami.net/hu/contribute/<br/>
-      Fórum: https://forum.jami.net/
-    </p>
-    <p xml:lang="hu">
-      Építsen a Jamival IoT-projektjére: használja újra a Jami univerzális kommunikációs technológiáját a hordozható könyvtárával a választott rendszerén.
-    </p>
-    <p xml:lang="hu">
-      A Jami for Android TV-t Logitech kamerákkal ellátott NVIDIA SHIELD TV-n tesztelték.
-    </p>
-    <p xml:lang="hu">
-      A Jami a GPL licenc 3-as vagy újabb verziója alatt jelent meg.<br/>
-      Szerzői jog © Savoir-faire Linux Inc.
-    </p>
-
-  </description>
-
-  <url type="homepage">https://jami.net/</url>
-  <url type="bugtracker">https://git.jami.net/savoirfairelinux/jami-client-qt/issues</url>
-  <url type="faq">https://docs.jami.net/user/faq.html</url>
-  <url type="help">https://forum.jami.net/</url>
-  <url type="donation">https://jami.net/whydonate/</url>
-  <url type="translate">https://www.transifex.com/savoirfairelinux/jami</url>
-
-  <!-- Maximum caption length is 60 characters -->
-  <!-- Officially GIF is not an allowed video format, but it appears to work nonetheless -->
-  <screenshots>
-    <screenshot type="default">
-      <image type="source" width="1310" height="650">https://dl.jami.net/media-resources/screenshots/jami_linux_audiovideo.png</image>
-      <caption>Send chat messages and talk with audio and video</caption>
-      <caption xml:lang="hu">Csevegőüzenetek küldése, valamint hang- és videobeszélgetés</caption>
-    </screenshot>
-    <screenshot>
-      <image type="source" width="1016" height="659">https://dl.jami.net/media-resources/screenshots/jami_linux_screenshare.png</image>
-      <caption>Screen sharing</caption>
-      <caption xml:lang="hu">Képernyőmegosztás</caption>
-    </screenshot>
-    <screenshot>
-      <video container="webm" codec="vp9" width="600" height="400">https://dl.jami.net/media-resources/gifs_features/conversiongif_webm/audio-call_web.webm</video>
-      <caption>Crystal clear audio calls between Jami users</caption>
-      <caption xml:lang="hu">Kristálytiszta hanghívások a Jami felhasználók között</caption>
-    </screenshot>
-    <screenshot>
-      <video container="webm" codec="vp9" width="600" height="400">https://dl.jami.net/media-resources/gifs_features/conversiongif_webm/conference_web.webm</video>
-      <caption>Conference calls with an unlimited number of participants</caption>
-      <caption xml:lang="hu">Konferenciahívások korlátlan számú résztvevővel</caption>
-    </screenshot>
-    <screenshot>
-      <video container="webm" codec="vp9" width="600" height="400">https://dl.jami.net/media-resources/gifs_features/conversiongif_webm/chat_web.webm</video>
-      <caption>Encrypted and secure text messaging without servers</caption>
-      <caption xml:lang="hu">Titkosított és biztonságos csevegési üzenetküldés, kiszolgálók nélkül</caption>
-    </screenshot>
-    <screenshot>
-      <video container="webm" codec="vp9" width="600" height="400">https://dl.jami.net/media-resources/gifs_features/conversiongif_webm/files-share_web.webm</video>
-      <caption>Transfer files of any size</caption>
-      <caption xml:lang="hu">Bármilyen méretű fájl küldése</caption>
-    </screenshot>
-  </screenshots>
-
-  <launchable type="desktop-id">jami.desktop</launchable>
-
-  <provides><binary>jami</binary></provides>
-
-  <!-- https://specifications.freedesktop.org/menu-spec/latest/apa.html -->
-  <!-- https://specifications.freedesktop.org/menu-spec/latest/apas02.html -->
-  <categories>
-    <category>Chat</category>
-    <category>Communication</category>
-    <category>FileTransfer</category>
-    <category>InstantMessaging</category>
-    <category>Network</category>
-    <category>P2P</category>
-    <category>Productivity</category>
-  </categories>
-
-  <translation type="gettext">jami-client-qt</translation>
-
-  <content_rating type="oars-1.1">
-    <content_attribute id="social-chat">intense</content_attribute>
-    <content_attribute id="social-audio">intense</content_attribute>
-  </content_rating>
-
-  <requires><id>net.jami.daemon</id></requires>
-
-</component>
diff --git a/extras/data/jami.xml b/extras/data/jami.xml
new file mode 100644
index 0000000000000000000000000000000000000000..49ae6e79764a693628d83647077ae084f7f98080
--- /dev/null
+++ b/extras/data/jami.xml
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="utf-8"?>
+<components version="0.14" origin="jami">
+  <component type="desktop-application">
+    <id>net.jami.Jami</id>
+    <pkgname>jami</pkgname>
+    <name>Jami</name>
+    <summary>Privacy-oriented voice, video, chat, and conference platform</summary>
+    <summary xml:lang="hu">Adatvédelem-orientált hang-, video-, csevegés- és konferenciaplatform</summary>
+    <project_license>GPL-3.0+</project_license>
+    <description>
+      <p>Jami, a GNU package, is software for universal and distributed peer-to-peer communication that respects the freedom and privacy of its users.</p>
+      <p>Jami is the simplest and easiest way to connect with people (and devices) with instant messaging, audio and video calls over the Internet and LAN/WAN intranets.</p>
+      <p>Jami is a free/libre, end-to-end encrypted, and private communication platform.</p>
+      <p>Jami – which used to be known as Ring – is also an open-source alternative (to Facebook Messenger, Signal, Skype, Teams, Telegram, TikTok, Viber, WhatsApp, Zoom) that prioritizes the privacy of its users.</p>
+      <p>Jami has a professional-looking design and is available for a wide range of platforms. Unlike the alternatives, calls using Jami are directly between users as it does not use servers to handle calls.</p>
+      <p>This gives the greatest privacy as the distributed nature of Jami means your calls are only between participants.</p>
+      <p>One-to-one and group conversations with Jami are enhanced with: instant messaging; audio and video calling; recording and sending audio and video messages; file transfers; screen sharing; and, location sharing.</p>
+      <p>Jami can also function as a SIP client.</p>
+      <p>Jami has multiple extensions available: Audio Filter; Auto Answer; Green Screen; Watermark; and, Whisper Transcript.</p>
+      <p>Jami can be easily deployed in organizations with the “Jami Account Management Server” (JAMS), allowing users to connect with their corporate credentials or create local accounts. JAMS allows you to manage your own Jami community while taking advantage of Jami’s distributed network architecture.</p>
+      <p>Jami is available for GNU/Linux, Windows, macOS, iOS, Android, and Android TV, making Jami an interoperable and cross-platform communication framework.</p>
+      <p>Manage multiple SIP accounts, Jami accounts and JAMS accounts with the Jami client installed on one or multiple devices.</p>
+      <p>Jami is free, unlimited, private, advertising free, compatible, fast, autonomous, and anonymous.</p>
+      <p>Learn more about:</p>
+      <ul>
+        <li>Jami: https://jami.net/</li>
+        <li>Jami extensions: https://jami.net/extensions/</li>
+        <li>“Jami Account Management Server” (JAMS): https://jami.biz/</li>
+        <li>Jami documentation: https://docs.jami.net/</li>
+      </ul>
+      <p>Follow us for more:</p>
+      <ul>
+        <li>Mastodon: https://mstdn.io/@Jami</li>
+        <li>X: https://x.com/jami_social</li>
+        <li>YouTube: https://www.youtube.com/@jami9311</li>
+      </ul>
+      <p>We’d love to hear from you! Join the Jami community:</p>
+      <ul>
+        <li>Contribute: https://jami.net/contribute/</li>
+        <li>Forum: https://forum.jami.net/</li>
+      </ul>
+      <p>Build with Jami on your IoT project: re-use the universal communications technology of Jami with its portable library on your system of choice.</p>
+      <p>Jami for Android TV is tested on NVIDIA SHIELD TV with Logitech cameras.</p>
+      <p>Jami is published under the GPL license, version 3 or higher.</p>
+      <p>Copyright © Savoir-faire Linux Inc.</p>
+    </description>
+    <description xml:lang="hu">
+      <p>A Jami, egy GNU-csomag, egy univerzális és elosztott társ-társ kommunikációra szolgáló szoftver, amely tiszteletben tartja a felhasználók szabadságát és magánéletét.</p>
+      <p>A Jami a legegyszerűbb és legegyszerűbb módja annak, hogy azonnali üzenetküldéssel, hang- és videohívásokkal kapcsolódjon az emberekhez (és eszközökhöz) az interneten és a LAN/WAN intraneteken keresztül.</p>
+      <p>A Jami egy ingyenes, teljes körűen titkosított és privát kommunikációs platform.</p>
+      <p>A Jami – amelyet korábban Ring néven ismertek – egy nyílt forráskódú alternatíva is (a Facebook Messenger, a Signal, a Skype, a Teams, a Telegram, a TikTok, a Viber, a WhatsApp, a Zoom számára), amely előtérbe helyezi a felhasználók magánéletét.</p>
+      <p>A Jami professzionális megjelenésű, és platformok széles skálájához elérhető. Az alternatívákkal ellentétben a Jami-t használó hívások közvetlenül a felhasználók között zajlanak, mivel nem használ kiszolgálókat a hívások kezelésére.</p>
+      <p>Ez biztosítja a legnagyobb magánéletet, mivel a Jami elosztott jellege azt jelenti, hogy a hívások csak a résztvevők között zajlanak.</p>
+      <p>A Jamival folytatott személyes és csoportos beszélgetéseket a következők javítják: azonnali üzenetküldés; hang- és videohívások; hang- és videoüzenetek rögzítése és küldése; fájlátvitel; képernyőmegosztás; és helymegosztás.</p>
+      <p>A Jami SIP-ügyfélként is működhet.</p>
+      <p>A Jami-nek több bővítménye is elérhető: hangszűrő; automatikus válasz; zöld képernyő; vízjel; és, suttogó átirat.</p>
+      <p>A Jami könnyen telepíthető a szervezetekben a JAMS (Jami Account Management Server – Jami fiókkezelő kiszolgáló), amely lehetővé teszi a felhasználók számára, hogy csatlakozzanak vállalati hitelesítő adataikhoz, vagy helyi fiókokat hozzanak létre. A JAMS lehetővé teszi saját Jami közösségének kezelését, miközben kihasználja a Jami elosztott hálózati architektúráját.</p>
+      <p>A Jami elérhető GNU/Linux, Windows, macOS, iOS, Android és Android TV rendszereken, így a Jami egy interoperábilis és platformok közötti kommunikációs keretrendszer.</p>
+      <p>Kezeljen több SIP-fiókot, Jami-fiókot és JAMS-fiókot az egy vagy több eszközre telepített Jami-ügyféllel.</p>
+      <p>A Jami ingyenes, korlátlan, privát, reklámmentes, kompatibilis, gyors, autonóm és névtelen.</p>
+      <p>További tájékoztatás:</p>
+      <ul>
+        <li>Jami: https://jami.net/hu/</li>
+        <li>Jami-bővítmények: https://jami.net/hu/extensions/</li>
+        <li>JAMS (Jami Account Management Server – Jami fiókkezelő kiszolgáló): https://jami.biz/</li>
+        <li>Jami-dokumentáció: https://docs.jami.net/hu/</li>
+      </ul>
+      <p>Kövess minket a továbbiakért:</p>
+      <ul>
+        <li>Mastodon: https://mstdn.io/@Jami</li>
+        <li>X: https://x.com/jami_social</li>
+        <li>YouTube: https://www.youtube.com/@jami9311</li>
+      </ul>
+      <p>Szívesen hallanánk felőled! Csatlakozzon a Jami közösséghez:</p>
+      <ul>
+        <li>Közreműködés: https://jami.net/hu/contribute/</li>
+        <li>Fórum: https://forum.jami.net/</li>
+      </ul>
+      <p>Építsen a Jamival IoT-projektjére: használja újra a Jami univerzális kommunikációs technológiáját a hordozható könyvtárával a választott rendszerén.</p>
+      <p>A Jami for Android TV-t Logitech kamerákkal ellátott NVIDIA SHIELD TV-n tesztelték.</p>
+      <p>A Jami a GPL licenc 3-as vagy újabb verziója alatt jelent meg.</p>
+      <p>Szerzői jog © Savoir-faire Linux Inc.</p>
+    </description>
+    <requires>
+      <id>net.jami.daemon</id>
+    </requires>
+    <launchable type="desktop-id">net.jami.Jami.desktop</launchable>
+    <icon type="stock">jami</icon>
+    <url type="homepage">https://jami.net/</url>
+    <url type="bugtracker">https://git.jami.net/savoirfairelinux/jami-client-qt/issues</url>
+    <url type="faq">https://docs.jami.net/user/faq.html</url>
+    <url type="help">https://forum.jami.net/</url>
+    <url type="donation">https://jami.net/whydonate/</url>
+    <url type="translate">https://www.transifex.com/savoirfairelinux/jami</url>
+    <categories>
+      <category>Chat</category>
+      <category>FileTransfer</category>
+      <category>InstantMessaging</category>
+      <category>Network</category>
+      <category>P2P</category>
+      <category>Telephony</category>
+      <category>VideoConference</category>
+    </categories>
+    <provides>
+      <binary>jami</binary>
+      <mediatype>x-scheme-handler/jami</mediatype>
+    </provides>
+    <screenshots>
+      <screenshot type="default">
+        <caption>Send chat messages and talk with audio and video</caption>
+        <caption xml:lang="hu">Csevegőüzenetek küldése, valamint hang- és videobeszélgetés</caption>
+        <image type="source" width="1310" height="650">https://dl.jami.net/media-resources/screenshots/jami_linux_audiovideo.png</image>
+      </screenshot>
+      <screenshot>
+        <caption>Screen sharing</caption>
+        <caption xml:lang="hu">Képernyőmegosztás</caption>
+        <image type="source" width="1016" height="659">https://dl.jami.net/media-resources/screenshots/jami_linux_screenshare.png</image>
+      </screenshot>
+      <screenshot>
+        <caption>Crystal clear audio calls between Jami users</caption>
+        <caption xml:lang="hu">Kristálytiszta hanghívások a Jami felhasználók között</caption>
+        <video codec="vp9" container="webm" width="600" height="400">https://dl.jami.net/media-resources/gifs_features/conversiongif_webm/audio-call_web.webm</video>
+      </screenshot>
+      <screenshot>
+        <caption>Conference calls with an unlimited number of participants</caption>
+        <caption xml:lang="hu">Konferenciahívások korlátlan számú résztvevővel</caption>
+        <video codec="vp9" container="webm" width="600" height="400">https://dl.jami.net/media-resources/gifs_features/conversiongif_webm/conference_web.webm</video>
+      </screenshot>
+      <screenshot>
+        <caption>Encrypted and secure text messaging without servers</caption>
+        <caption xml:lang="hu">Titkosított és biztonságos csevegési üzenetküldés, kiszolgálók nélkül</caption>
+        <video codec="vp9" container="webm" width="600" height="400">https://dl.jami.net/media-resources/gifs_features/conversiongif_webm/chat_web.webm</video>
+      </screenshot>
+      <screenshot>
+        <caption>Transfer files of any size</caption>
+        <caption xml:lang="hu">Bármilyen méretű fájl küldése</caption>
+        <video codec="vp9" container="webm" width="600" height="400">https://dl.jami.net/media-resources/gifs_features/conversiongif_webm/files-share_web.webm</video>
+      </screenshot>
+    </screenshots>
+    <keywords>
+      <keyword>Qt</keyword>
+      <keyword>chat</keyword>
+      <keyword>talk</keyword>
+      <keyword>im</keyword>
+      <keyword>message</keyword>
+      <keyword>voip</keyword>
+    </keywords>
+    <content_rating type="oars-1.1">
+      <content_attribute id="social-chat">intense</content_attribute>
+      <content_attribute id="social-audio">intense</content_attribute>
+    </content_rating>
+  </component>
+</components>
diff --git a/extras/data/jami.desktop b/extras/data/net.jami.Jami.desktop
similarity index 100%
rename from extras/data/jami.desktop
rename to extras/data/net.jami.Jami.desktop
diff --git a/extras/data/net.jami.Jami.metainfo.xml b/extras/data/net.jami.Jami.metainfo.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8bf42c6d4428ff35ac61e553a4715508bc7969b0
--- /dev/null
+++ b/extras/data/net.jami.Jami.metainfo.xml
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2015-2024 Savoir-faire Linux Inc. -->
+<component type="desktop-application">
+  <id>net.jami.Jami</id>
+  <metadata_license>CC-BY-SA-3.0</metadata_license>
+  <project_license>GPL-3.0+</project_license>
+  <name>Jami</name>
+
+  <summary>Privacy-oriented voice, video, chat, and conference platform</summary>
+  <summary xml:lang="hu">Adatvédelem-orientált hang-, video-, csevegés- és konferenciaplatform</summary>
+  <icon type="stock">jami</icon>
+
+  <description>
+    <p>Jami, a GNU package, is software for universal and distributed peer-to-peer communication that respects the freedom and privacy of its users.</p>
+    <p xml:lang="hu">A Jami, egy GNU-csomag, egy univerzális és elosztott társ-társ kommunikációra szolgáló szoftver, amely tiszteletben tartja a felhasználók szabadságát és magánéletét.</p>
+    <p>Jami is the simplest and easiest way to connect with people (and devices) with instant messaging, audio and video calls over the Internet and LAN/WAN intranets.</p>
+    <p xml:lang="hu">A Jami a legegyszerűbb és legegyszerűbb módja annak, hogy azonnali üzenetküldéssel, hang- és videohívásokkal kapcsolódjon az emberekhez (és eszközökhöz) az interneten és a LAN/WAN intraneteken keresztül.</p>
+    <p>Jami is a free/libre, end-to-end encrypted, and private communication platform.</p>
+    <p xml:lang="hu">A Jami egy ingyenes, teljes körűen titkosított és privát kommunikációs platform.</p>
+    <p>Jami – which used to be known as Ring – is also an open-source alternative (to Facebook Messenger, Signal, Skype, Teams, Telegram, TikTok, Viber, WhatsApp, Zoom) that prioritizes the privacy of its users.</p>
+    <p xml:lang="hu">A Jami – amelyet korábban Ring néven ismertek – egy nyílt forráskódú alternatíva is (a Facebook Messenger, a Signal, a Skype, a Teams, a Telegram, a TikTok, a Viber, a WhatsApp, a Zoom számára), amely előtérbe helyezi a felhasználók magánéletét.</p>
+    <p>Jami has a professional-looking design and is available for a wide range of platforms. Unlike the alternatives, calls using Jami are directly between users as it does not use servers to handle calls.</p>
+    <p xml:lang="hu">A Jami professzionális megjelenésű, és platformok széles skálájához elérhető. Az alternatívákkal ellentétben a Jami-t használó hívások közvetlenül a felhasználók között zajlanak, mivel nem használ kiszolgálókat a hívások kezelésére.</p>
+    <p>This gives the greatest privacy as the distributed nature of Jami means your calls are only between participants.</p>
+    <p xml:lang="hu">Ez biztosítja a legnagyobb magánéletet, mivel a Jami elosztott jellege azt jelenti, hogy a hívások csak a résztvevők között zajlanak.</p>
+    <p>One-to-one and group conversations with Jami are enhanced with: instant messaging; audio and video calling; recording and sending audio and video messages; file transfers; screen sharing; and, location sharing.</p>
+    <p xml:lang="hu">A Jamival folytatott személyes és csoportos beszélgetéseket a következők javítják: azonnali üzenetküldés; hang- és videohívások; hang- és videoüzenetek rögzítése és küldése; fájlátvitel; képernyőmegosztás; és helymegosztás.</p>
+    <p>Jami can also function as a SIP client.</p>
+    <p xml:lang="hu">A Jami SIP-ügyfélként is működhet.</p>
+    <p>Jami has multiple extensions available: Audio Filter; Auto Answer; Green Screen; Watermark; and, Whisper Transcript.</p>
+    <p xml:lang="hu">A Jami-nek több bővítménye is elérhető: hangszűrő; automatikus válasz; zöld képernyő; vízjel; és, suttogó átirat.</p>
+    <p>Jami can be easily deployed in organizations with the “Jami Account Management Server” (JAMS), allowing users to connect with their corporate credentials or create local accounts. JAMS allows you to manage your own Jami community while taking advantage of Jami’s distributed network architecture.</p>
+    <p xml:lang="hu">A Jami könnyen telepíthető a szervezetekben a JAMS (Jami Account Management Server – Jami fiókkezelő kiszolgáló), amely lehetővé teszi a felhasználók számára, hogy csatlakozzanak vállalati hitelesítő adataikhoz, vagy helyi fiókokat hozzanak létre. A JAMS lehetővé teszi saját Jami közösségének kezelését, miközben kihasználja a Jami elosztott hálózati architektúráját.</p>
+    <p>Jami is available for GNU/Linux, Windows, macOS, iOS, Android, and Android TV, making Jami an interoperable and cross-platform communication framework.</p>
+    <p xml:lang="hu">A Jami elérhető GNU/Linux, Windows, macOS, iOS, Android és Android TV rendszereken, így a Jami egy interoperábilis és platformok közötti kommunikációs keretrendszer.</p>
+    <p>Manage multiple SIP accounts, Jami accounts and JAMS accounts with the Jami client installed on one or multiple devices.</p>
+    <p xml:lang="hu">Kezeljen több SIP-fiókot, Jami-fiókot és JAMS-fiókot az egy vagy több eszközre telepített Jami-ügyféllel.</p>
+    <p>Jami is free, unlimited, private, advertising free, compatible, fast, autonomous, and anonymous.</p>
+    <p xml:lang="hu">A Jami ingyenes, korlátlan, privát, reklámmentes, kompatibilis, gyors, autonóm és névtelen.</p>
+    <p>Learn more about:</p>
+    <p xml:lang="hu">További tájékoztatás:</p>
+    <ul>
+      <li>Jami: https://jami.net/</li>
+      <li xml:lang="hu">Jami: https://jami.net/hu/</li>
+      <li>Jami extensions: https://jami.net/extensions/</li>
+      <li xml:lang="hu">Jami-bővítmények: https://jami.net/hu/extensions/</li>
+      <li>“Jami Account Management Server” (JAMS): https://jami.biz/</li>
+      <li xml:lang="hu">JAMS (Jami Account Management Server – Jami fiókkezelő kiszolgáló): https://jami.biz/</li>
+      <li>Jami documentation: https://docs.jami.net/</li>
+      <li xml:lang="hu">Jami-dokumentáció: https://docs.jami.net/hu/</li>
+    </ul>
+    <p>Follow us for more:</p>
+    <p xml:lang="hu">Kövess minket a továbbiakért:</p>
+    <ul>
+      <li>Mastodon: https://mstdn.io/@Jami</li>
+      <li xml:lang="hu">Mastodon: https://mstdn.io/@Jami</li>
+      <li>X: https://x.com/jami_social</li>
+      <li xml:lang="hu">X: https://x.com/jami_social</li>
+      <li>YouTube: https://www.youtube.com/@jami9311</li>
+      <li xml:lang="hu">YouTube: https://www.youtube.com/@jami9311</li>
+    </ul>
+    <p>We’d love to hear from you! Join the Jami community:</p>
+    <p xml:lang="hu">Szívesen hallanánk felőled! Csatlakozzon a Jami közösséghez:</p>
+    <ul>
+      <li>Contribute: https://jami.net/contribute/</li>
+      <li xml:lang="hu">Közreműködés: https://jami.net/hu/contribute/</li>
+      <li>Forum: https://forum.jami.net/</li>
+      <li xml:lang="hu">Fórum: https://forum.jami.net/</li>
+    </ul>
+    <p>Build with Jami on your IoT project: re-use the universal communications technology of Jami with its portable library on your system of choice.</p>
+    <p xml:lang="hu">Építsen a Jamival IoT-projektjére: használja újra a Jami univerzális kommunikációs technológiáját a hordozható könyvtárával a választott rendszerén.</p>
+    <p>Jami for Android TV is tested on NVIDIA SHIELD TV with Logitech cameras.</p>
+    <p xml:lang="hu">A Jami for Android TV-t Logitech kamerákkal ellátott NVIDIA SHIELD TV-n tesztelték.</p>
+    <p>Jami is published under the GPL license, version 3 or higher.</p>
+    <p xml:lang="hu">A Jami a GPL licenc 3-as vagy újabb verziója alatt jelent meg.</p>
+    <p>Copyright © Savoir-faire Linux Inc.</p>
+    <p xml:lang="hu">Szerzői jog © Savoir-faire Linux Inc.</p>
+  </description>
+
+  <url type="homepage">https://jami.net/</url>
+  <url type="bugtracker">https://git.jami.net/savoirfairelinux/jami-client-qt/issues</url>
+  <url type="faq">https://docs.jami.net/user/faq.html</url>
+  <url type="help">https://forum.jami.net/</url>
+  <url type="donation">https://jami.net/whydonate/</url>
+  <url type="translate">https://www.transifex.com/savoirfairelinux/jami</url>
+
+  <!-- Maximum caption length is 60 characters -->
+  <!-- Officially GIF is not an allowed video format, but it appears to work nonetheless -->
+  <screenshots>
+    <screenshot type="default">
+      <image type="source" width="1310" height="650">https://dl.jami.net/media-resources/screenshots/jami_linux_audiovideo.png</image>
+      <caption>Send chat messages and talk with audio and video</caption>
+      <caption xml:lang="hu">Csevegőüzenetek küldése, valamint hang- és videobeszélgetés</caption>
+    </screenshot>
+    <screenshot>
+      <image type="source" width="1016" height="659">https://dl.jami.net/media-resources/screenshots/jami_linux_screenshare.png</image>
+      <caption>Screen sharing</caption>
+      <caption xml:lang="hu">Képernyőmegosztás</caption>
+    </screenshot>
+    <screenshot>
+      <video container="webm" codec="vp9" width="600" height="400">https://dl.jami.net/media-resources/gifs_features/conversiongif_webm/audio-call_web.webm</video>
+      <caption>Crystal clear audio calls between Jami users</caption>
+      <caption xml:lang="hu">Kristálytiszta hanghívások a Jami felhasználók között</caption>
+    </screenshot>
+    <screenshot>
+      <video container="webm" codec="vp9" width="600" height="400">https://dl.jami.net/media-resources/gifs_features/conversiongif_webm/conference_web.webm</video>
+      <caption>Conference calls with an unlimited number of participants</caption>
+      <caption xml:lang="hu">Konferenciahívások korlátlan számú résztvevővel</caption>
+    </screenshot>
+    <screenshot>
+      <video container="webm" codec="vp9" width="600" height="400">https://dl.jami.net/media-resources/gifs_features/conversiongif_webm/chat_web.webm</video>
+      <caption>Encrypted and secure text messaging without servers</caption>
+      <caption xml:lang="hu">Titkosított és biztonságos csevegési üzenetküldés, kiszolgálók nélkül</caption>
+    </screenshot>
+    <screenshot>
+      <video container="webm" codec="vp9" width="600" height="400">https://dl.jami.net/media-resources/gifs_features/conversiongif_webm/files-share_web.webm</video>
+      <caption>Transfer files of any size</caption>
+      <caption xml:lang="hu">Bármilyen méretű fájl küldése</caption>
+    </screenshot>
+  </screenshots>
+
+  <launchable type="desktop-id">net.jami.Jami.desktop</launchable>
+
+  <provides><binary>jami</binary></provides>
+
+  <!-- https://specifications.freedesktop.org/menu-spec/latest/apa.html -->
+  <!-- https://specifications.freedesktop.org/menu-spec/latest/apas02.html -->
+  <categories>
+    <category>Chat</category>
+    <category>FileTransfer</category>
+    <category>InstantMessaging</category>
+    <category>Network</category>
+    <category>P2P</category>
+    <category>Telephony</category>
+    <category>VideoConference</category>
+  </categories>
+
+  <translation type="gettext">jami-client-qt</translation>
+
+  <content_rating type="oars-1.1">
+    <content_attribute id="social-chat">intense</content_attribute>
+    <content_attribute id="social-audio">intense</content_attribute>
+  </content_rating>
+
+  <requires><id>net.jami.daemon</id></requires>
+</component>
diff --git a/extras/packaging/gnu-linux/Makefile b/extras/packaging/gnu-linux/Makefile
index 9adf7c83ada416494cde222960067a6c007e29df..8d7b053271ac6c99de3ef64431a37104400c641e 100644
--- a/extras/packaging/gnu-linux/Makefile
+++ b/extras/packaging/gnu-linux/Makefile
@@ -253,10 +253,11 @@ GUIX_PACK_FORMATS = deb rpm
 define guix-pack-command
 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/applications/net.jami.Jami.desktop=share/applications/net.jami.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 \
+  -S /usr/share/metainfo/net.jami.Jami.metainfo.xml=share/metainfo/net.jami.Jami.metainfo.xml \
+  -S /usr/share/swcatalog/xml/jami.xml=share/swcatalog/xml/jami.xml \
   $(and $(findstring deb,$(1)), \
     --postinst-file=$(CURDIR)/extras/packaging/gnu-linux/guix/guix-pack-deb.postinst)
 endef
diff --git a/extras/packaging/gnu-linux/rules/rpm/jami.spec b/extras/packaging/gnu-linux/rules/rpm/jami.spec
index f0e8219ceb8b445ca7e5a5568dc2a839b3c70893..98954f0e2c8950b32e1b35cf93af4def82c604d2 100644
--- a/extras/packaging/gnu-linux/rules/rpm/jami.spec
+++ b/extras/packaging/gnu-linux/rules/rpm/jami.spec
@@ -2,6 +2,16 @@
 %define version     RELEASE_VERSION
 %define release     0
 
+# The AppStream 1.0 spec says that the catalog file must be put in /usr/share/swcatalog/xml
+# (see https://www.freedesktop.org/software/appstream/docs/chap-CatalogData.html).
+#
+# However, openSUSE Leap still uses the legacy path /usr/share/app-info/xmls as of version 15.5.
+%if 0%{?sle_version} &&  0%{?sle_version} <= 150500
+%define appstream_catalog_dir /share/app-info/xmls
+%else
+%define appstream_catalog_dir /share/swcatalog/xml
+%endif
+
 # Exclude vendored Qt6 from dependency generator
 %define __requires_exclude ^libQt6.*$
 
@@ -69,6 +79,7 @@ cd %{_builddir}/jami-%{version} && \
           -DLIBJAMI_BUILD_DIR=%{_builddir}/jami-%{version}/daemon/src \
           -DCMAKE_INSTALL_PREFIX=%{_prefix} \
           -DCMAKE_INSTALL_LIBDIR=%{_libdir} \
+          -DAPPSTREAM_CATALOG_DIR=%{appstream_catalog_dir} \
           -DWITH_DAEMON_SUBMODULE=true \
           -DCMAKE_BUILD_TYPE=Release \
           ..
@@ -80,11 +91,12 @@ DESTDIR=%{buildroot} make -C %{_builddir}/jami-%{version}/build install V=2
 %files
 %defattr(-,root,root,-)
 %{_bindir}/jami
-%{_datadir}/applications/jami.desktop
-%{_datadir}/jami/jami.desktop
+%{_datadir}/applications/net.jami.Jami.desktop
+%{_datadir}/jami/net.jami.Jami.desktop
 %{_datadir}/icons/hicolor/scalable/apps/jami.svg
 %{_datadir}/icons/hicolor/48x48/apps/jami.png
 %{_datadir}/pixmaps/jami.xpm
-%{_datadir}/metainfo/jami.appdata.xml
+%{_datadir}/metainfo/net.jami.Jami.metainfo.xml
+%{_prefix}%{appstream_catalog_dir}/jami.xml
 %{_datadir}/jami/translations/*
 %doc %{_mandir}/man1/jami*
diff --git a/extras/packaging/gnu-linux/rules/snap/jami/snapcraft.yaml b/extras/packaging/gnu-linux/rules/snap/jami/snapcraft.yaml
index 110466b69d70d09793adc0fe11b0aa0035319735..6841afa1a682234e4c3d92d5f6fe9f02f47d4571 100644
--- a/extras/packaging/gnu-linux/rules/snap/jami/snapcraft.yaml
+++ b/extras/packaging/gnu-linux/rules/snap/jami/snapcraft.yaml
@@ -151,9 +151,9 @@ apps:
     - bin/desktop-launch
     - snap/command-chain/alsa-launch
     - bin/jami-wrapper
-    autostart: jami.desktop
+    autostart: net.jami.Jami.desktop
     common-id: net.jami.Jami
-    desktop: usr/share/applications/jami.desktop
+    desktop: usr/share/applications/net.jami.Jami.desktop
     environment:
       PIPEWIRE_CONFIG_NAME: "$SNAP/usr/share/pipewire/pipewire.conf"
       PIPEWIRE_MODULE_DIR: "$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/pipewire-0.3"
@@ -258,7 +258,7 @@ parts:
     after: [alsa-mixin]
     source: .
     plugin: nil
-    parse-info: [usr/share/metainfo/jami.appdata.xml]
+    parse-info: [usr/share/metainfo/net.jami.Jami.metainfo.xml]
     stage:
       - -usr/lib/x86_64-linux-gnu/liblber-2.4.so*
       - -usr/lib/x86_64-linux-gnu/libldap_r-2.4.so*
@@ -273,7 +273,7 @@ parts:
       ls
       snapcraftctl pull
       sed -i -E 's|(tmpName) << (PACKAGE_NAME << "_shm_")|\1 << "snap.jami." << \2|' ./daemon/src/media/video/sinkclient.cpp
-      sed -i -E 's|^Icon=.*|Icon=${SNAP}/usr/share/icons/hicolor/scalable/apps/jami.svg|' extras/data/jami.desktop
+      sed -i -E 's|^Icon=.*|Icon=${SNAP}/usr/share/icons/hicolor/scalable/apps/jami.svg|' extras/data/net.jami.Jami.desktop
     override-build: |
       $SNAPCRAFT_PART_BUILD/extras/packaging/gnu-linux/scripts/install-pipewire-from-source.sh
 
diff --git a/src/app/utils.cpp b/src/app/utils.cpp
index 2c07a0cbf219981cf0eaeb165b354244acba7772..d9bdcb8e2ccaf3e667eef8e6f30d6a3ff2fb34ac 100644
--- a/src/app/utils.cpp
+++ b/src/app/utils.cpp
@@ -155,9 +155,9 @@ Utils::CreateStartupLink(const std::wstring& wstrAppName)
 
 #ifdef JAMI_INSTALL_PREFIX
     desktopPath = JAMI_INSTALL_PREFIX;
-    desktopPath += "/jami/jami.desktop";
+    desktopPath += "/jami/net.jami.Jami.desktop";
 #else
-    desktopPath = "share/jami/jami.desktop";
+    desktopPath = "share/jami/net.jami.Jami.desktop";
     QStringList paths = {"/usr/" + desktopPath,
                          "/usr/local/" + desktopPath,
                          QDir::currentPath() + "/../../install/client-qt/" + desktopPath};
@@ -178,7 +178,7 @@ Utils::CreateStartupLink(const std::wstring& wstrAppName)
     qDebug() << "Linking autostart file from" << desktopPath;
 
     QString desktopFile = QStandardPaths::locate(QStandardPaths::ConfigLocation,
-                                                 "autostart/jami.desktop");
+                                                 "autostart/net.jami.Jami.desktop");
     if (!desktopFile.isEmpty()) {
         QFileInfo symlinkInfo(desktopFile);
         if (symlinkInfo.isSymLink()) {
@@ -203,7 +203,7 @@ Utils::CreateStartupLink(const std::wstring& wstrAppName)
                 return false;
             }
         }
-        desktopFile = autoStartDir + "/jami.desktop";
+        desktopFile = autoStartDir + "/net.jami.Jami.desktop";
     }
 
     QFile srcFile(desktopPath);
@@ -261,7 +261,7 @@ Utils::DeleteStartupLink(const std::wstring& wstrAppName)
 #else
     Q_UNUSED(wstrAppName)
     QString desktopFile = QStandardPaths::locate(QStandardPaths::ConfigLocation,
-                                                 "autostart/jami.desktop");
+                                                 "autostart/net.jami.Jami.desktop");
     if (!desktopFile.isEmpty()) {
         try {
             QFile::remove(desktopFile);
@@ -288,7 +288,7 @@ Utils::CheckStartupLink(const std::wstring& wstrAppName)
 #else
     Q_UNUSED(wstrAppName)
     return (
-        !QStandardPaths::locate(QStandardPaths::ConfigLocation, "autostart/jami.desktop").isEmpty());
+        !QStandardPaths::locate(QStandardPaths::ConfigLocation, "autostart/net.jami.Jami.desktop").isEmpty());
 #endif
 }