changeset 171:a213053a03be

flatpak: update files following names change + Python 3 update: - `build_manifest.py` has been fixed to work with recent SàT/Libervia - filenames/scripts have been udpated to reflect project name change - installation now uses `requirements.txt` when dev version is requested - there are now 3 types of commands wrapper: * `libervia_wrapper.py` uses `pb` bridge, starts backend before frontend, and stops it when frontend is stopped. It's used by `Libervia Desktop` (Cagou) * `libervia_wrapper-dbus.py` uses `dbus` bridge, starts backend before frontend, and stops it when frontend is stopped. It's used for `Libervia TUI` (Primitivus) * `libervia_wrapper-dbus.py` uses `dbus` bridge, starts backend if necessary and doesn't stop it (to avoid waiting for backend start next time). It's used by `Libervia CLI` (jp).
author Goffi <goffi@goffi.org>
date Tue, 30 Nov 2021 21:42:06 +0100
parents e38a968cb873
children a91a55a87830
files flatpak/_tpl_org.libervia.LiberviaCLI.appdata.xml flatpak/_tpl_org.libervia.LiberviaCLI.json flatpak/_tpl_org.libervia.LiberviaDesktop.appdata.xml flatpak/_tpl_org.libervia.LiberviaDesktop.json flatpak/_tpl_org.libervia.LiberviaTUI.appdata.xml flatpak/_tpl_org.libervia.LiberviaTUI.json flatpak/_tpl_org.salutatoi.Cagou.appdata.xml flatpak/_tpl_org.salutatoi.Cagou.json flatpak/_tpl_org.salutatoi.Jp.appdata.xml flatpak/_tpl_org.salutatoi.Jp.json flatpak/_tpl_org.salutatoi.Primitivus.appdata.xml flatpak/_tpl_org.salutatoi.Primitivus.json flatpak/build_manifest.py flatpak/libervia-dbus.conf flatpak/libervia.conf flatpak/libervia_wrapper-dbus.py flatpak/libervia_wrapper-dbus_keep.py flatpak/libervia_wrapper.py flatpak/org.libervia.Libervia.json flatpak/org.libervia.LiberviaCLI.desktop flatpak/org.libervia.LiberviaDesktop.desktop flatpak/org.libervia.LiberviaTUI.desktop flatpak/org.libervia.LiberviaWeb.json flatpak/org.salutatoi.Libervia.json flatpak/org.salutatoi.Primitivus.desktop flatpak/org.salutatoi.SAT.json flatpak/org.salutatoi.Sdk.json flatpak/sat.conf flatpak/sat_wrapper.py
diffstat 29 files changed, 681 insertions(+), 1509 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flatpak/_tpl_org.libervia.LiberviaCLI.appdata.xml	Tue Nov 30 21:42:06 2021 +0100
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="console-application">
+    <!--
+    Copyright 2018-2021 Jérôme Poisson <goffi@goffi.org>
+
+    Copying and distribution of this file, with or without modification,
+    are permitted in any medium without royalty provided the copyright
+    notice and this notice are preserved.  This file is offered as-is,
+    without any warranty.
+    -->
+    <id>org.libervia.LiberviaCLI</id>
+    <metadata_license>FSFAP</metadata_license>
+    <project_license>AGPL-3.0-or-later</project_license>
+    <name>Libervia CLI (jp)</name>
+    <summary>Multi-purpose communication ecosystem (CLI frontend) - XMPP standard</summary>
+    <categories>
+        <category>Network</category>
+        <category>Chat</category>
+        <category>FileTransfer</category>
+        <category>ConsoleOnly</category>
+    </categories>
+    <description>
+        <p>Libervia is a multi-purpose communication ecosystem.</p>
+        <p>It offers many tools to communicate and collaborate (instant messaging, blogging, file sharing, photos albums, forums, events, etc.).
+        It is multi-purposes, but also multi-frontends (you can use it on desktop, mobile devices, web browser, or terminal) and multi-platforms.</p>
+
+        <p>Libervia is made with a strong sense of ethics (see social contract), is decentralized (you can run your own service, keep your important data yourself, while still being able to communicate with the rest of the network), and use a standard communication protocol (XMPP), making it compatible with many other software.</p>
+        <p>This part is the Command Line Interface frontend. You can use it to work with any XMPP based service, do scripts, etc. A REPL shell is included.</p>
+    </description>
+    <screenshots>
+        <screenshot type="default">
+            <caption>The list of room commands seen</caption>
+            <image>https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/jp_commands_list.png</image>
+        </screenshot>
+        <screenshot>
+            <caption>REPL shell used to retrieve last blog post</caption>
+            <image>https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/jp_shell_blog.png</image>
+        </screenshot>
+    </screenshots>
+    <url type="homepage">https://salut-a-toi.org</url>
+    <url type="bugtracker">https://bugs.goffi.org</url>
+    <project_group>Libervia</project_group>
+    <provides>
+        <binary>libervia-cli</binary>
+    </provides>
+    <releases>
+        <release date="2019-07-24" type="stable" version="0.7.0">
+            <description>
+                <p>"La Commune" release.</p>
+                <p>This version is the first "general audience" one, and introduce Cagou (desktop/mobile interface), OMEMO end-to-end encryption, advanced file sharing, and many other features.</p>
+            </description>
+            <url>https://www.goffi.org/b/N29CuUQS4U4TK36JFuTQ5Q/salut-commune</url>
+        </release>
+    </releases>
+    <content_rating type="oars-1.1">
+        <content_attribute id="social-chat">intense</content_attribute>
+        <content_attribute id="social-audio">intense</content_attribute>
+        <content_attribute id="social-contacts">intense</content_attribute>
+    </content_rating>
+</component>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flatpak/_tpl_org.libervia.LiberviaCLI.json	Tue Nov 30 21:42:06 2021 +0100
@@ -0,0 +1,12 @@
+{
+    "_build_settings": {
+        "package": "sat",
+        "wrapped_command": "libervia-cli",
+        "wrapper_template": "libervia_wrapper-dbus_keep.py",
+        "conf_file": "libervia-dbus.conf",
+        "dev_repos": {"type": "hg", "url": "https://repos.goffi.org/sat"},
+        "icon": "https://repos.goffi.org/sat_media/raw-file/tip/icons_svg/sat.svg",
+        "desktop_file": "org.libervia.LiberviaCLI.desktop",
+        "appdata_file": "_tpl_org.libervia.LiberviaCLI.appdata.xml"
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flatpak/_tpl_org.libervia.LiberviaDesktop.appdata.xml	Tue Nov 30 21:42:06 2021 +0100
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="desktop-application">
+    <!--
+    Copyright 2018-2021 Jérôme Poisson <goffi@goffi.org>
+
+    Copying and distribution of this file, with or without modification,
+    are permitted in any medium without royalty provided the copyright
+    notice and this notice are preserved.  This file is offered as-is,
+    without any warranty.
+    -->
+    <id>org.libervia.LiberviaDesktop</id>
+    <metadata_license>FSFAP</metadata_license>
+    <project_license>AGPL-3.0-or-later</project_license>
+    <name>Libervia Desktop (Cagou)</name>
+    <summary>Multi-purpose communication ecosystem (desktop/mobile frontend) - XMPP standard</summary>
+    <categories>
+        <category>Network</category>
+        <category>Chat</category>
+        <category>FileTransfer</category>
+    </categories>
+    <description>
+        <p>Libervia is a multi-purpose communication ecosystem.</p>
+        <p>It offers many tools to communicate and collaborate (instant messaging, blogging, file sharing, photos albums, forums, events, etc.).
+        It is multi-purposes, but also multi-frontends (you can use it on desktop, mobile devices, web browser, or terminal) and multi-platforms.</p>
+
+        <p>Libervia is made with a strong sense of ethics (see social contract), is decentralized (you can run your own service, keep your important data yourself, while still being able to communicate with the rest of the network), and use a standard communication protocol (XMPP), making it compatible with many other software.</p>
+        <p>This part is the desktop/mobile frontend.</p>
+    </description>
+    <launchable type="desktop-id">org.libervia.LiberviaDesktop.desktop</launchable>
+    <screenshots>
+        <screenshot type="default">
+            <caption>A chat conversation seen with Cagou on Android</caption>
+            <image>https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/cagou_0.7.0b1_android.jpg</image>
+        </screenshot>
+        <screenshot>
+            <caption>A chat conversation seen with Libervia frontend</caption>
+            <image>https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/libervia_pages_chat.png</image>
+        </screenshot>
+        <screenshot>
+            <caption>A photos album seen with Libervia frontend</caption>
+            <image>https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/libervia_pages_photos_album.png</image>
+        </screenshot>
+    </screenshots>
+    <url type="homepage">https://salut-a-toi.org</url>
+    <url type="bugtracker">https://bugs.goffi.org</url>
+    <project_group>Libervia</project_group>
+    <provides>
+        <binary>libervia-desktop</binary>
+    </provides>
+    <releases>
+        <release date="2019-07-24" type="stable" version="0.7.0">
+            <description>
+                <p>"La Commune" release.</p>
+                <p>This version is the first "general audience" one, and introduce Cagou (desktop/mobile interface), OMEMO end-to-end encryption, advanced file sharing, and many other features.</p>
+            </description>
+            <url>https://www.goffi.org/b/N29CuUQS4U4TK36JFuTQ5Q/salut-commune</url>
+        </release>
+    </releases>
+    <content_rating type="oars-1.1">
+        <content_attribute id="social-chat">intense</content_attribute>
+        <content_attribute id="social-audio">intense</content_attribute>
+        <content_attribute id="social-contacts">intense</content_attribute>
+    </content_rating>
+</component>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flatpak/_tpl_org.libervia.LiberviaDesktop.json	Tue Nov 30 21:42:06 2021 +0100
@@ -0,0 +1,52 @@
+{
+    "_build_settings": {
+        "package": "cagou",
+        "wrapped_command": "libervia-desktop",
+        "dev_repos": {"type": "hg", "url": "https://repos.goffi.org/cagou"},
+        "icon": "https://repos.goffi.org/sat_media/raw-file/tip/icons/muchoslava/svg/cagou_profil_bleu_avec_cou.svg",
+        "desktop_file": "org.libervia.LiberviaDesktop.desktop",
+        "appdata_file": "_tpl_org.libervia.LiberviaDesktop.appdata.xml"
+    },
+    "finish-args": [
+        "--socket=session-bus",
+        "--socket=x11",
+        "--share=ipc",
+        "--socket=wayland",
+        "--share=network",
+        "--filesystem=home"
+    ],
+    "modules": [
+        {
+            "name": "mtdev",
+            "sources": [
+                {
+                    "type": "archive",
+                    "url": "http://bitmath.org/code/mtdev/mtdev-1.1.6.tar.bz2",
+                    "sha256": "15d7b28da8ac71d8bc8c9287c2045fd174267bc740bec10cfda332dc1204e0e0"
+                }
+            ]
+        },
+        {
+            "name": "libxmu",
+            "buildsystem": "autotools",
+            "sources": [
+                {
+                    "type": "archive",
+                    "url": "https://github.com/freedesktop/libXmu/archive/libXmu-1.1.2.tar.gz",
+                    "sha256": "fb1485a0ffcc360c0cc8fe18f54a2f49af6fc384da743c0b136ab99cc6c6e54c"
+                }
+            ]
+        },
+        {
+            "name": "xclip",
+            "buildsystem": "autotools",
+            "sources": [
+                {
+                    "type": "archive",
+                    "url": "https://github.com/astrand/xclip/archive/0.13.tar.gz",
+                    "sha256": "ca5b8804e3c910a66423a882d79bf3c9450b875ac8528791fb60ec9de667f758"
+                }
+            ]
+        }
+    ]
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flatpak/_tpl_org.libervia.LiberviaTUI.appdata.xml	Tue Nov 30 21:42:06 2021 +0100
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="console-application">
+    <!--
+    Copyright 2018-2021 Jérôme Poisson <goffi@goffi.org>
+
+    Copying and distribution of this file, with or without modification,
+    are permitted in any medium without royalty provided the copyright
+    notice and this notice are preserved.  This file is offered as-is,
+    without any warranty.
+    -->
+    <id>org.libervia.LiberviaTUI</id>
+    <metadata_license>FSFAP</metadata_license>
+    <project_license>AGPL-3.0-or-later</project_license>
+    <name>Libervia TUI (Primitivus)</name>
+    <summary>Multi-purpose communication ecosystem (TUI frontend) - XMPP standard</summary>
+    <categories>
+        <category>Network</category>
+        <category>Chat</category>
+        <category>FileTransfer</category>
+        <category>ConsoleOnly</category>
+    </categories>
+    <description>
+        <p>Libervia is a multi-purpose communication ecosystem.</p>
+        <p>It offers many tools to communicate and collaborate (instant messaging, blogging, file sharing, photos albums, forums, events, etc.).
+        It is multi-purposes, but also multi-frontends (you can use it on desktop, mobile devices, web browser, or terminal) and multi-platforms.</p>
+
+        <p>Libervia is made with a strong sense of ethics (see social contract), is decentralized (you can run your own service, keep your important data yourself, while still being able to communicate with the rest of the network), and use a standard communication protocol (XMPP), making it compatible with many other software.</p>
+        <p>This part is the Terminal User Interface frontend.</p>
+    </description>
+    <screenshots>
+        <screenshot type="default">
+            <caption>A chat conversation seen with Primitivus</caption>
+            <image>https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/primitivus_chat.png</image>
+        </screenshot>
+    </screenshots>
+    <url type="homepage">https://salut-a-toi.org</url>
+    <url type="bugtracker">https://bugs.goffi.org</url>
+    <project_group>Libervia</project_group>
+    <provides>
+        <binary>libervia-tui</binary>
+    </provides>
+    <releases>
+        <release date="2019-07-24" type="stable" version="0.7.0">
+            <description>
+                <p>"La Commune" release.</p>
+                <p>This version is the first "general audience" one, and introduce Cagou (desktop/mobile interface), OMEMO end-to-end encryption, advanced file sharing, and many other features.</p>
+            </description>
+            <url>https://www.goffi.org/b/N29CuUQS4U4TK36JFuTQ5Q/salut-commune</url>
+        </release>
+    </releases>
+    <content_rating type="oars-1.1">
+        <content_attribute id="social-chat">intense</content_attribute>
+        <content_attribute id="social-audio">intense</content_attribute>
+        <content_attribute id="social-contacts">intense</content_attribute>
+    </content_rating>
+</component>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flatpak/_tpl_org.libervia.LiberviaTUI.json	Tue Nov 30 21:42:06 2021 +0100
@@ -0,0 +1,11 @@
+{
+    "_build_settings": {
+        "package": "sat",
+        "wrapped_command": "libervia-tui",
+        "wrapper_template": "libervia_wrapper-dbus.py",
+        "dev_repos": {"type": "hg", "url": "https://repos.goffi.org/sat"},
+        "icon": "https://repos.goffi.org/sat_media/raw-file/tip/icons_svg/sat.svg",
+        "desktop_file": "org.libervia.LiberviaTUI.desktop",
+        "appdata_file": "_tpl_org.libervia.LiberviaTUI.appdata.xml"
+    }
+}
--- a/flatpak/_tpl_org.salutatoi.Cagou.appdata.xml	Thu Jan 28 21:51:10 2021 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component type="desktop-application">
-    <!--
-    Copyright 2018, 2019 Jérôme Poisson <goffi@goffi.org>
-
-    Copying and distribution of this file, with or without modification,
-    are permitted in any medium without royalty provided the copyright
-    notice and this notice are preserved.  This file is offered as-is,
-    without any warranty.
-    -->
-    <id>org.salutatoi.Cagou</id>
-    <metadata_license>FSFAP</metadata_license>
-    <project_license>AGPL-3.0-or-later</project_license>
-    <name>Cagou (SàT)</name>
-    <summary>Multi-purpose communication ecosystem (desktop/mobile frontend) - XMPP standard</summary>
-    <categories>
-        <category>Network</category>
-        <category>Chat</category>
-        <category>FileTransfer</category>
-    </categories>
-    <description>
-        <p>Salut à Toi is a multi-purpose communication ecosystem.</p>
-        <p>It offers many tools to communicate and collaborate (instant messaging, blogging, file sharing, photos albums, forums, events, etc.).
-        It is multi-purposes, but also multi-frontends (you can use it on desktop, mobile devices, web browser, or terminal) and multi-platforms.</p>
-
-        <p>Salut à Toi (SàT) is made with a strong sense of ethics (see social contract), is decentralized (you can run your own service, keep your important data yourself, while still being able to communicate with the rest of the network), and use a standard communication protocol (XMPP), making it compatible with many other software.</p>
-        <p>This part is the desktop/mobile frontend.</p>
-    </description>
-    <launchable type="desktop-id">org.salutatoi.Cagou.desktop</launchable>
-    <screenshots>
-        <screenshot type="default">
-            <caption>A chat conversation seen with Cagou on Android</caption>
-            <image>https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/cagou_0.7.0b1_android.jpg</image>
-        </screenshot>
-        <screenshot>
-            <caption>A chat conversation seen with Libervia frontend</caption>
-            <image>https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/libervia_pages_chat.png</image>
-        </screenshot>
-        <screenshot>
-            <caption>A photos album seen with Libervia frontend</caption>
-            <image>https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/libervia_pages_photos_album.png</image>
-        </screenshot>
-    </screenshots>
-    <url type="homepage">https://salut-a-toi.org</url>
-    <url type="bugtracker">https://bugs.goffi.org</url>
-    <project_group>SAT</project_group>
-    <provides>
-        <binary>cagou</binary>
-    </provides>
-    <releases>
-        <release date="2019-07-24" type="stable" version="0.7.0">
-            <description>
-                <p>"La Commune" release.</p>
-                <p>This version is the first "general audience" one, and introduce Cagou (desktop/mobile interface), OMEMO end-to-end encryption, advanced file sharing, and many other features.</p>
-            </description>
-            <url>https://www.goffi.org/b/N29CuUQS4U4TK36JFuTQ5Q/salut-commune</url>
-        </release>
-    </releases>
-    <content_rating type="oars-1.1">
-        <content_attribute id="social-chat">intense</content_attribute>
-        <content_attribute id="social-audio">intense</content_attribute>
-        <content_attribute id="social-contacts">intense</content_attribute>
-    </content_rating>
-</component>
--- a/flatpak/_tpl_org.salutatoi.Cagou.json	Thu Jan 28 21:51:10 2021 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-{
-    "_build_settings": {
-        "wrapped_command": "cagou",
-        "dev_repos": {"type": "hg", "url": "https://repos.goffi.org/cagou"},
-        "setup_requirements": [["cython", "0.29.10"]],
-        "icon": "https://repos.goffi.org/sat_media/raw-file/tip/icons/muchoslava/svg/cagou_profil_bleu_avec_cou.svg",
-        "desktop_file": "org.salutatoi.Cagou.desktop",
-        "appdata_file": "_tpl_org.salutatoi.Cagou.appdata.xml"
-    },
-    "finish-args": [
-        "--socket=session-bus",
-        "--socket=x11",
-        "--share=ipc",
-        "--socket=wayland",
-        "--share=network",
-        "--filesystem=home"
-    ],
-    "modules": [
-        {
-            "name": "mtdev",
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "http://bitmath.org/code/mtdev/mtdev-1.1.5.tar.bz2",
-                    "sha256": "6677d5708a7948840de734d8b4675d5980d4561171c5a8e89e54adf7a13eba7f"
-                }
-            ]
-        },
-        {
-            "name": "xsel",
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "http://www.vergenet.net/~conrad/software/xsel/download/xsel-1.2.0.tar.gz",
-                    "sha256": "b927ce08dc82f4c30140223959b90cf65e1076f000ce95e520419ec32f5b141c"
-                }
-            ]
-        },
-        {
-            "name": "garden-contextmenu",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 -c 'import os, shutil, kivy; d=os.path.join(os.path.dirname(kivy.__file__), \"garden/contextmenu\"); shutil.copytree(\".\",d)'"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://ftp.goffi.org/kivy_garden/contextmenu.zip",
-                    "sha256": "34c81cdc0ae968537ae6ecfa3d9417d942c82ad012de5ca72fd9d0f5de57cac9"
-                }
-            ]
-        },
-        {
-            "name": "garden-modernmenu",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 -c 'import os, shutil, kivy; d=os.path.join(os.path.dirname(kivy.__file__), \"garden/modernmenu\"); shutil.copytree(\".\",d)'"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://ftp.goffi.org/kivy_garden/modernmenu.zip",
-                    "sha256": "f9a6f8d4248050ed2d1be9b7ed67059e4bfdd5b52009606aaf643eb66f41b531"
-                }
-            ]
-        }
-    ]
-}
--- a/flatpak/_tpl_org.salutatoi.Jp.appdata.xml	Thu Jan 28 21:51:10 2021 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component type="console-application">
-    <!--
-    Copyright 2018, 2019 Jérôme Poisson <goffi@goffi.org>
-
-    Copying and distribution of this file, with or without modification,
-    are permitted in any medium without royalty provided the copyright
-    notice and this notice are preserved.  This file is offered as-is,
-    without any warranty.
-    -->
-    <id>org.salutatoi.Jp</id>
-    <metadata_license>FSFAP</metadata_license>
-    <project_license>AGPL-3.0-or-later</project_license>
-    <name>Jp (SàT)</name>
-    <summary>Multi-purpose communication ecosystem (CLI frontend) - XMPP standard</summary>
-    <categories>
-        <category>Network</category>
-        <category>Chat</category>
-        <category>FileTransfer</category>
-        <category>ConsoleOnly</category>
-    </categories>
-    <description>
-        <p>Salut à Toi is a multi-purpose communication ecosystem.</p>
-        <p>It offers many tools to communicate and collaborate (instant messaging, blogging, file sharing, photos albums, forums, events, etc.).
-        It is multi-purposes, but also multi-frontends (you can use it on desktop, mobile devices, web browser, or terminal) and multi-platforms.</p>
-
-        <p>Salut à Toi (SàT) is made with a strong sense of ethics (see social contract), is decentralized (you can run your own service, keep your important data yourself, while still being able to communicate with the rest of the network), and use a standard communication protocol (XMPP), making it compatible with many other software.</p>
-        <p>This part is the Command Line Interface frontend. You can use it to work with any XMPP based service, do scripts, etc. A REPL shell is included.</p>
-    </description>
-    <screenshots>
-        <screenshot type="default">
-            <caption>The list of room commands seen</caption>
-            <image>https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/jp_commands_list.png</image>
-        </screenshot>
-        <screenshot>
-            <caption>REPL shell used to retrieve last blog post</caption>
-            <image>https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/jp_shell_blog.png</image>
-        </screenshot>
-    </screenshots>
-    <url type="homepage">https://salut-a-toi.org</url>
-    <url type="bugtracker">https://bugs.goffi.org</url>
-    <project_group>SAT</project_group>
-    <provides>
-        <binary>jp</binary>
-    </provides>
-    <releases>
-        <release date="2019-07-24" type="stable" version="0.7.0">
-            <description>
-                <p>"La Commune" release.</p>
-                <p>This version is the first "general audience" one, and introduce Cagou (desktop/mobile interface), OMEMO end-to-end encryption, advanced file sharing, and many other features.</p>
-            </description>
-            <url>https://www.goffi.org/b/N29CuUQS4U4TK36JFuTQ5Q/salut-commune</url>
-        </release>
-    </releases>
-    <content_rating type="oars-1.1">
-        <content_attribute id="social-chat">intense</content_attribute>
-        <content_attribute id="social-audio">intense</content_attribute>
-        <content_attribute id="social-contacts">intense</content_attribute>
-    </content_rating>
-</component>
--- a/flatpak/_tpl_org.salutatoi.Jp.json	Thu Jan 28 21:51:10 2021 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-{
-    "_build_settings": {
-        "package": "sat",
-        "wrapped_command": "jp",
-        "dev_repos": {"type": "hg", "url": "https://repos.goffi.org/sat"},
-        "icon": "https://repos.goffi.org/sat_media/raw-file/tip/icons_svg/sat.svg",
-        "desktop_file": "org.salutatoi.Jp.desktop",
-        "appdata_file": "_tpl_org.salutatoi.Jp.appdata.xml"
-    }
-}
--- a/flatpak/_tpl_org.salutatoi.Primitivus.appdata.xml	Thu Jan 28 21:51:10 2021 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component type="console-application">
-    <!--
-    Copyright 2018, 2019 Jérôme Poisson <goffi@goffi.org>
-
-    Copying and distribution of this file, with or without modification,
-    are permitted in any medium without royalty provided the copyright
-    notice and this notice are preserved.  This file is offered as-is,
-    without any warranty.
-    -->
-    <id>org.salutatoi.Primitivus</id>
-    <metadata_license>FSFAP</metadata_license>
-    <project_license>AGPL-3.0-or-later</project_license>
-    <name>Primitivus (SàT)</name>
-    <summary>Multi-purpose communication ecosystem (TUI frontend) - XMPP standard</summary>
-    <categories>
-        <category>Network</category>
-        <category>Chat</category>
-        <category>FileTransfer</category>
-        <category>ConsoleOnly</category>
-    </categories>
-    <description>
-        <p>Salut à Toi is a multi-purpose communication ecosystem.</p>
-        <p>It offers many tools to communicate and collaborate (instant messaging, blogging, file sharing, photos albums, forums, events, etc.).
-        It is multi-purposes, but also multi-frontends (you can use it on desktop, mobile devices, web browser, or terminal) and multi-platforms.</p>
-
-        <p>Salut à Toi (SàT) is made with a strong sense of ethics (see social contract), is decentralized (you can run your own service, keep your important data yourself, while still being able to communicate with the rest of the network), and use a standard communication protocol (XMPP), making it compatible with many other software.</p>
-        <p>This part is the Terminal User Interface frontend.</p>
-    </description>
-    <screenshots>
-        <screenshot type="default">
-            <caption>A chat conversation seen with Primitivus</caption>
-            <image>https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/primitivus_chat.png</image>
-        </screenshot>
-    </screenshots>
-    <url type="homepage">https://salut-a-toi.org</url>
-    <url type="bugtracker">https://bugs.goffi.org</url>
-    <project_group>SAT</project_group>
-    <provides>
-        <binary>primitivus</binary>
-    </provides>
-    <releases>
-        <release date="2019-07-24" type="stable" version="0.7.0">
-            <description>
-                <p>"La Commune" release.</p>
-                <p>This version is the first "general audience" one, and introduce Cagou (desktop/mobile interface), OMEMO end-to-end encryption, advanced file sharing, and many other features.</p>
-            </description>
-            <url>https://www.goffi.org/b/N29CuUQS4U4TK36JFuTQ5Q/salut-commune</url>
-        </release>
-    </releases>
-    <content_rating type="oars-1.1">
-        <content_attribute id="social-chat">intense</content_attribute>
-        <content_attribute id="social-audio">intense</content_attribute>
-        <content_attribute id="social-contacts">intense</content_attribute>
-    </content_rating>
-</component>
--- a/flatpak/_tpl_org.salutatoi.Primitivus.json	Thu Jan 28 21:51:10 2021 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-{
-    "_build_settings": {
-        "package": "sat",
-        "wrapped_command": "primitivus",
-        "dev_repos": {"type": "hg", "url": "https://repos.goffi.org/sat"},
-        "icon": "https://repos.goffi.org/sat_media/raw-file/tip/icons_svg/sat.svg",
-        "desktop_file": "org.salutatoi.Primitivus.desktop",
-        "appdata_file": "_tpl_org.salutatoi.Primitivus.appdata.xml"
-    }
-}
--- a/flatpak/build_manifest.py	Thu Jan 28 21:51:10 2021 +0100
+++ b/flatpak/build_manifest.py	Tue Nov 30 21:42:06 2021 +0100
@@ -3,7 +3,7 @@
 import tempfile
 import subprocess
 from pathlib import Path
-from typing import List
+from typing import Optional, List
 from dataclasses import dataclass
 import hashlib
 from ftplib import FTP
@@ -22,68 +22,41 @@
 
 CACHE_LIMIT = 3600 * 24
 PYTHON_DEP_OVERRIDE = {
-    "lxml": {
+    "pygments": {
         "build-commands": [
-            # --optimize=1 make the build fail, to be tried again once moved to Python3
-            # "python2 ./setup.py install --prefix=${FLATPAK_DEST} --optimize=1"
-            "python2 ./setup.py install --prefix=${FLATPAK_DEST}"
-        ],
-        "build-options": {
-            "env": {
-                "XSLT_CONFIG": "pkg-config libxslt"
-            }
-        },
-    },
-    "dbus-python": {
-        "build-commands": [
-            "python2 setup.py build",
-            "python2 setup.py install --prefix=${FLATPAK_DEST}",
+            # pygments being in freedesktop SDK, we need to use --ignore-installed flag
+            'pip3 install --ignore-installed --exists-action=i --no-index --find-links='
+            '"file://${PWD}" --prefix=${FLATPAK_DEST} . --no-build-isolation'
         ]
-    },
-    "kivy": {
-        "post-install": [
-            # this file is not copied normally when installing with
-            # `python2 setup.py install`.
-            # TODO: report upstream
-            "cp kivy/setupconfig.py /app/lib/python2.7/site-packages/Kivy-*.egg/kivy/"
-        ]
-    },
-    "pillow": {
-        "build-options": {
-            "arch": {
-                "x86_64": {
-                    "ldflags": "-L/usr/lib/x86_64-linux-gnu"
-                }
-            }
-        }
-    },
+    }
 }
-# FIXME: Q&D way to install older version of twisted for Flatpak
-PYTHON_DEP_PREINSTALL = ['twisted<19.7.0']
+PYTHON_DEP_PREINSTALL = [
+    "wheel",
+]
 PYTHON_DEP_REQUIREMENTS_UPDATE = {
-    # service-identity is not seen as a twisted requirement, so it's sometimes misplaced
-    'twisted': ['service-identity'],
+    # those modules are not seen as a twisted requirement, so they're sometimes misplaced
+    'twisted': ['service-identity', 'pyopenssl'],
 }
 PYTHON_SETUP_REQUIREMENTS = [
-    'setuptools',  # to have an up-to-date version
+    # needed for cryptography
+    'toml',
+    'semantic_version',
+
     'setuptools_scm',
-    'docutils',  # needed my m2r
-    'mistune',  # needed my m2r
+    'docutils',  # needed by m2r
+    'mistune',  # needed by m2r
     'm2r',  # needed by automat
 ]
 DEFAULT_MANIFEST = {
     "runtime": "org.freedesktop.Platform",
-    "runtime-version": "18.08",
+    "runtime-version": "20.08",
     "sdk": "org.freedesktop.Sdk",
-    "command": "sat_wrapper",
+    "command": "libervia_wrapper",
     "finish-args": [
         "--socket=session-bus",
         "--share=network",
         "--filesystem=home"
     ],
-    "modules": [
-        "shared-modules/python2.7/python-2.7.json",
-    ]
 }
 SHOW_REQUIRES_HEADER = 'Requires: '
 SHOW_VERSION_HEADER = 'Version: '
@@ -94,6 +67,27 @@
     """)
 OVERWRITE_WARNING = "{} already exists, do you want to overwrite it (y/N)? "
 
+# packages already installed in flatpak runtime
+PYTHON_DEPS_IGNORE = ("setuptools", "cython", "six", "markdown")
+PYTHON_VERSION_FORCE = {
+    # we have to restrict idna due to requests's idna<3 requirements
+    # (as of requests 2.25.1)
+    # TODO: check if this requirements is still there
+    'idna': '2.10',
+    # next versions need RUST
+    # TODO: upgrade
+    'cryptography': '3.3.2',
+}
+
+
+PIP_CMD = (
+    'pip3 install --exists-action=i --no-index --find-links="file://${{PWD}}" '
+    '--prefix=${{FLATPAK_DEST}} {package} --no-build-isolation'
+)
+
+pkg_repos = {}
+python_setup_requirements = PYTHON_SETUP_REQUIREMENTS.copy()
+
 
 @dataclass
 class Package:
@@ -102,6 +96,7 @@
     hash_: str
     url: str
     requirements: List[str]
+    repos: Optional[dict]
 
     def __hash__(self):
         return hash(self.name)
@@ -111,16 +106,18 @@
 
 
 def print_step(step):
-    print()
-    print("┌" + "─" * (len(step) + 2) + "┐")
-    print("│ {} │".format(step))
-    print("└" + "─" * (len(step) + 2) + "┘")
-    print()
+    print(
+        "\n"
+        f"┌{'─' * (len(step) + 2)}┐\n"
+        f"│ {step} │\n"
+        f"└{'─' * (len(step) + 2)}┘\n"
+        "\n"
+    )
 
 
 def parse_args():
     parser = argparse.ArgumentParser(
-        description='Flatpak manifest builder for Salut à Toi')
+        description='Flatpak manifest builder for Libervia')
 
     build_group = parser.add_argument_group('building', 'options used to generate the manifest')
     export_group = parser.add_argument_group('export', 'otions used to building files')
@@ -273,7 +270,7 @@
             "name": name,
             "buildsystem": "simple",
             "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
+                PIP_CMD.format(package=".")
             ],
             "sources": [
                 {
@@ -282,10 +279,6 @@
                     "sha256": package["digests"]["sha256"],
                 }
             ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth",
-                "/lib/python2.7/site-packages/setuptools.pth",
-            ]
         }
         data.append(dep_data)
 
@@ -580,7 +573,7 @@
             print("packages are already installed")
         else:
             print(f"working in temporary directory {tmp_dirname}")
-            venv_cplted = subprocess.run(["/usr/bin/env", "virtualenv2", env_dir])
+            venv_cplted = subprocess.run(["/usr/bin/env", "python3", "-m", "venv", env_dir])
             venv_cplted.check_returncode()
             print("\ninstalling package\n")
             if PYTHON_DEP_PREINSTALL:
@@ -591,10 +584,34 @@
 
             # we install package to have a good map of requirements, pypi metadata
             # are incomplete. Packages should be retrieved from pip cache
-            inst_cplted = subprocess.run(
-                [pip, "install", "--progress-bar", "emoji", main_package_source])
+            if isinstance(main_package_source, Path):
+                inst_cplted = subprocess.run(
+                    [pip, "install", "--progress-bar", "emoji", "-r", "requirements.txt"],
+                    cwd = main_package_source
+                )
+            else:
+                inst_cplted = subprocess.run(
+                    [pip, "install", "--progress-bar", "emoji", main_package_source])
             inst_cplted.check_returncode()
 
+
+        print("checking package coming from VCS")
+        freeze_cplted = subprocess.run(
+            [pip,  "freeze"], capture_output=True, text=True
+        )
+        freeze_cplted.check_returncode()
+        lines = freeze_cplted.stdout.split('\n')
+        for line in lines:
+            if " @ " in line:
+                pkg, reference = line.split(" @ ")
+                pkg = canonical(pkg)
+                if pkg == main_package:
+                    continue
+                if reference.startswith("hg+http"):
+                    url = reference[3:].split('@')[0]
+                    pkg_repos[pkg] = {"type": "hg", "url": url}
+                    print(f"found {pkg!r} from {url!r} (Mercurial)")
+
         print_step("analyzing python dependencies")
         deps_map = {}
 
@@ -607,27 +624,46 @@
             print(r"/!\ retrieving binary packages is not currently supported")
 
         deps = []
+        # deps coming from repository, we put at the end to make rebuildind quicker
+        repos_deps = []
         for name, version, pkg_requirements in requirements:
             print(f"{name}: ", end='')
-            r = requests.get(f"https://pypi.org/pypi/{name}/{version}/json")
-            r.raise_for_status()
-            dep_json = r.json()
-            release_json = dep_json["releases"][version]
-            source_release = next(r for r in release_json if r['packagetype'] == 'sdist')
-            dep_hash = source_release['digests']['sha256']
-            url = source_release['url']
-            dep = Package(name=name,
-                          version=version,
-                          hash_=dep_hash,
-                          url=url,
-                          requirements=pkg_requirements,
-                          )
-            deps.append(dep)
+            if name in PYTHON_DEPS_IGNORE:
+                print(f"{name!r} ignored")
+                continue
+            if name in pkg_repos:
+                # main_package must be in normal dependencies
+                target_deps = repos_deps if name != main_package else deps
+                repos = pkg_repos[name]
+                dep_hash = ""
+                url = ""
+                source_release = {"packagetype": f"VCS ({repos['type']})"}
+            else:
+                target_deps = deps
+                r = requests.get(f"https://pypi.org/pypi/{name}/{version}/json")
+                r.raise_for_status()
+                dep_json = r.json()
+                release_json = dep_json["releases"][version]
+                source_release = next(
+                    r for r in release_json if r['packagetype'] == 'sdist'
+                )
+                dep_hash = source_release['digests']['sha256']
+                url = source_release['url']
+                repos = None
+            dep = Package(
+                name=name,
+                version=version,
+                hash_=dep_hash,
+                url=url,
+                requirements=pkg_requirements,
+                repos=repos,
+            )
+            target_deps.append(dep)
             deps_map[name] = dep
             print(f"version: {version}, type: {source_release['packagetype']}")
 
     # we remove deps already installed with PYTHON_SETUP_REQUIREMENTS
-    for name in PYTHON_SETUP_REQUIREMENTS:
+    for name in python_setup_requirements:
         if not isinstance(name, str):
             # this is a package with version in a list, first item is the name
             name = name[0]
@@ -648,7 +684,7 @@
         for n,v in build_settings.get('python_deps_version_force', {}).items()
     }
 
-    for dep in deps:
+    for dep in deps + repos_deps:
         version_forced = version_force.get(dep.name)
         if version_forced == 'pre-release':
             print(f"using pre-release version for {dep.name} as requested in build "
@@ -659,12 +695,15 @@
                   "build settings")
             dep_data = get_python_package(dep.name, step_message='',
                                           version=version_forced)[0]
+        elif dep.repos is not None:
+            package_source = cache_from_repos(dep.name, dep.repos)
+            dep_data = get_repos_module(dep.name, package_source)
         else:
             dep_data = {
                 "name": dep.name,
                 "buildsystem": "simple",
                 "build-commands": [
-                    "python2 setup.py install --prefix=${FLATPAK_DEST}"
+                    PIP_CMD.format(package=".")
                 ],
                 "sources": [
                     {
@@ -673,10 +712,6 @@
                         "sha256": dep.hash_,
                     }
                 ],
-                "ensure-writable": [
-                    "/lib/python2.7/site-packages/easy-install.pth",
-                    "/lib/python2.7/site-packages/setuptools.pth",
-                ]
             }
 
         if dep.name in PYTHON_DEP_OVERRIDE:
@@ -707,15 +742,14 @@
     return data
 
 
-def cache_from_repos():
+def cache_from_repos(name, dev_repos):
     """Get and cache locally a repository and returns cache path"""
-    print_step("retrieving code from repository")
-    dev_repos = build_settings['dev_repos']
+    print(f"retrieving code from repository {dev_repos!r}")
     repos_type = dev_repos.get('type', 'hg')
     if repos_type != 'hg':
         raise NotImplementedError("only Mercurial is managed so far")
     url = dev_repos['url']
-    dest_path = get_cache_dir() / main_package
+    dest_path = get_cache_dir() / name
     dest_path.mkdir(parents=True, exist_ok=True)
     if (dest_path / '.hg').is_dir():
         print("code is already in cache, updating")
@@ -732,26 +766,22 @@
     return dest_path
 
 
-def get_repos_module():
-    """Generate manifest module for the repository"""
+def get_repos_module(package, source):
+    """Generate manifest module for a locally downloaded repository"""
     dep_data = {
-        "name": main_package,
+        "name": package,
         "buildsystem": "simple",
         "build-commands": [
-            "python2 setup.py install --prefix=${FLATPAK_DEST}"
+            PIP_CMD.format(package=".")
         ],
         "sources": [
             {
                 "type": "dir",
-                "path": str(main_package_source)
+                "path": str(source)
             }
         ],
-        "ensure-writable": [
-            "/lib/python2.7/site-packages/easy-install.pth",
-            "/lib/python2.7/site-packages/setuptools.pth",
-        ]
     }
-    return [dep_data]
+    return dep_data
 
 
 def get_sat_media():
@@ -886,8 +916,7 @@
 if __name__ == '__main__':
 
     args = parse_args()
-    title = args.name.title()
-    app_id = f"org.salutatoi.{title}"
+    app_id = f"org.libervia.{args.name}"
     package_file = Path(f"{app_id}.json")
 
     print(f"generating manifest for {app_id} ({args.version})")
@@ -908,16 +937,23 @@
         template = json.load(f)
 
     build_settings = template.pop(SETTINGS_KEY, {})
+    if PYTHON_VERSION_FORCE:
+        build_settings.setdefault('python_deps_version_force', {}).update(PYTHON_VERSION_FORCE)
     if "setup_requirements" in build_settings:
-        PYTHON_SETUP_REQUIREMENTS.extend(build_settings["setup_requirements"])
-    main_package = canonical(build_settings.get('package', args.name))
+        python_setup_requirements.extend(build_settings["setup_requirements"])
+    main_package = canonical(build_settings['package'])
     if args.version == 'dev':
+        # mercurial is needed for dev version to install but also to
+        # retrieve revision used
+        python_setup_requirements.append("mercurial")
         if 'dev_repos' not in build_settings:
             raise NotImplementedError(
                 "dev version can currently only be handled with a dev repostiory "
                 "(dev_repos)")
         dev_repos = build_settings['dev_repos']
-        main_package_source = cache_from_repos()
+        pkg_repos[main_package] = dev_repos
+        print_step("retrieving code from repository")
+        main_package_source = cache_from_repos(main_package, dev_repos)
         dev_version_rev, dev_version_date = get_hg_id_date(main_package_source)
     else:
         main_package_source = main_package
@@ -936,7 +972,7 @@
 
     # setup requirements
     modules.extend(get_python_package(
-        PYTHON_SETUP_REQUIREMENTS,
+        python_setup_requirements,
         step_name=f"setup_requirements__{app_id}",
         step_message="generating modules for setup requirements")
     )
@@ -954,14 +990,21 @@
     if "sat_templates" not in existing_modules:
         modules.extend(get_python_package("sat_templates", with_pre=True))
     modules.extend(get_sat_media())
-    modules.extend(file_upload('sat.conf', '/app'))
+    conf_file = build_settings.get('conf_file')
+    if conf_file:
+        modules.extend(file_upload('libervia.conf', '/app', src=conf_file,
+                                   replace={'##DBUS_PREFIX##': app_id},
+                                   use_install=True))
+    else:
+        modules.extend(file_upload('libervia.conf', '/app'))
 
     # wrapper to launch the backend if needed
-    wrapped_command = build_settings.get('wrapped_command')
-    if wrapped_command:
-        modules.extend(file_upload('sat_wrapper', src='sat_wrapper.py',
-                                   replace={'##COMMAND##': wrapped_command},
-                                   use_install=True))
+    wrapped_command = build_settings['wrapped_command']
+    manifest['command'] = command = f'{wrapped_command}_wrapper'
+    wrapper_template = build_settings.get("wrapper_template", "libervia_wrapper.py")
+    modules.extend(file_upload(command, src=wrapper_template,
+                               replace={'##COMMAND##': wrapped_command},
+                               use_install=True))
 
     # icon
     modules.extend(get_icon())
@@ -971,10 +1014,7 @@
 
     # now the app itself
     if args.version == 'dev':
-        # mercurial is needed for dev version to install but also to
-        # retrieve revision used
-        modules.extend(get_python_package("mercurial"))
-        modules.extend(get_repos_module())
+        modules.append(get_repos_module(main_package, main_package_source))
     else:
         modules.extend(get_python_package(main_package, version=args.version))
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flatpak/libervia-dbus.conf	Tue Nov 30 21:42:06 2021 +0100
@@ -0,0 +1,7 @@
+[DEFAULT]
+media_dir = /app/share/sat-media
+pid_dir = /tmp
+bridge_dbus_int_prefix = ##DBUS_PREFIX##
+
+[libervia]
+data_dir = /app/share/libervia
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flatpak/libervia.conf	Tue Nov 30 21:42:06 2021 +0100
@@ -0,0 +1,7 @@
+[DEFAULT]
+media_dir = /app/share/sat-media
+pid_dir = /tmp
+bridge_dbus_int_prefix = org.libervia.LiberviaCLI
+
+[libervia]
+data_dir = /app/share/libervia
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flatpak/libervia_wrapper-dbus.py	Tue Nov 30 21:42:06 2021 +0100
@@ -0,0 +1,44 @@
+#!/usr/bin/env python3
+"""This script launch Libervia backend if it's not before running command"""
+
+import os
+import sys
+import dbus
+import subprocess
+from sat.tools import config
+
+command = "##COMMAND##"
+const_INT_PREFIX = "org.libervia.LiberviaCLI"
+const_OBJ_PATH = '/org/libervia/Libervia/bridge'
+
+const_INT_PREFIX = config.getConfig(
+    config.parseMainConf(),
+    "",
+    "bridge_dbus_int_prefix",
+    "org.libervia.Libervia")
+
+# we remove any path with "/home" from PYTHONPATH because we have
+# "--filesystem=home" permission and packages in .local/lib/pythonX/site-packages may
+# conflict with the ones from flatpak
+clean_pythonpath = ':'.join(p for p in sys.path if p and not p.startswith('/home'))
+os.environ['PYTHONPATH'] = clean_pythonpath
+os.environ['PYTHONNOUSERSITE'] = '1'
+
+try:
+    sessions_bus = dbus.SessionBus()
+    db_object = sessions_bus.get_object(const_INT_PREFIX,
+                                        const_OBJ_PATH)
+except dbus.exceptions.DBusException as e:
+    if e._dbus_error_name != 'org.freedesktop.DBus.Error.ServiceUnknown':
+        raise e
+    # backend not found, we need to launch it
+    print("Launching Libervia backend")
+    subprocess.check_call("libervia-backend")
+    backend_launched = True
+else:
+    backend_launched = False
+
+subprocess.run([command, *sys.argv[1:]])
+if backend_launched:
+    print("Stopping Libervia backend")
+    subprocess.check_call(["libervia-backend", "stop"])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flatpak/libervia_wrapper-dbus_keep.py	Tue Nov 30 21:42:06 2021 +0100
@@ -0,0 +1,41 @@
+#!/usr/bin/env python3
+
+"""This script launch Libervia backend if it's not before running command, and keep it running afterwards"""
+
+# We keep the backend running to avoid the backend launching cost each time the frontend is used
+
+import os
+import sys
+import dbus
+import subprocess
+from sat.tools import config
+
+command = "##COMMAND##"
+const_INT_PREFIX = "org.libervia.LiberviaCLI"
+const_OBJ_PATH = '/org/libervia/Libervia/bridge'
+
+const_INT_PREFIX = config.getConfig(
+    config.parseMainConf(),
+    "",
+    "bridge_dbus_int_prefix",
+    "org.libervia.Libervia")
+
+# we remove any path with "/home" from PYTHONPATH because we have
+# "--filesystem=home" permission and packages in .local/lib/pythonX/site-packages may
+# conflict with the ones from flatpak
+clean_pythonpath = ':'.join(p for p in sys.path if p and not p.startswith('/home'))
+os.environ['PYTHONPATH'] = clean_pythonpath
+os.environ['PYTHONNOUSERSITE'] = '1'
+
+try:
+    sessions_bus = dbus.SessionBus()
+    db_object = sessions_bus.get_object(const_INT_PREFIX,
+                                        const_OBJ_PATH)
+except dbus.exceptions.DBusException as e:
+    if e._dbus_error_name != 'org.freedesktop.DBus.Error.ServiceUnknown':
+        raise e
+    # backend not found, we need to launch it
+    print("Launching Libervia backend")
+    subprocess.check_call("libervia-backend")
+
+os.execlp(command, command, *sys.argv[1:])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flatpak/libervia_wrapper.py	Tue Nov 30 21:42:06 2021 +0100
@@ -0,0 +1,37 @@
+#!/usr/bin/env python3
+"""This script launch Libervia backend if it's not before running command"""
+
+import os
+import sys
+import subprocess
+from sat.tools import config
+from pathlib import Path
+
+command = "##COMMAND##"
+
+local_path = Path(config.getConfig(
+    config.parseMainConf(),
+    "",
+    "local_dir"
+))
+socket_path = local_path / "bridge_pb"
+
+# we remove any path with "/home" from PYTHONPATH because we have
+# "--filesystem=home" permission and packages in .local/lib/pythonX/site-packages may
+# conflict with the ones from flatpak
+clean_pythonpath = ':'.join(p for p in sys.path if p and not p.startswith('/home'))
+os.environ['PYTHONPATH'] = clean_pythonpath
+os.environ['PYTHONNOUSERSITE'] = '1'
+
+if not socket_path.is_socket():
+    # backend is not launched we need to launch it
+    print("Launching Libervia backend")
+    subprocess.check_call("libervia-backend")
+    backend_launched = True
+else:
+    backend_launched = False
+
+subprocess.run([command, *sys.argv[1:]])
+if backend_launched:
+    print("Stopping Libervia backend")
+    subprocess.check_call(["libervia-backend", "stop"])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flatpak/org.libervia.Libervia.json	Tue Nov 30 21:42:06 2021 +0100
@@ -0,0 +1,22 @@
+{
+    "app-id": "org.salutatoi.SAT",
+    "branch": "0.7.0a2",
+    "runtime": "org.salutatoi.Platform",
+    "runtime-version": "0.7.0a2",
+    "sdk": "org.salutatoi.Sdk",
+    "command": "sat",
+    "finish-args": [
+        "--share=network",
+        "--filesystem=home"
+    ],
+    "modules": [
+        {
+            "name": "sat",
+            "buildsystem": "simple",
+            "build-commands": [
+                "install -D /usr/bin/sat /app/bin/sat",
+                "install -D /usr/lib/python2.7/site-packages/sat-0.7.0a2-py2.7.egg/share/dbus-1/services/org.salutatoi.SAT.service /app/share/dbus-1/services/org.salutatoi.SAT.service"
+            ]
+        }
+    ]
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flatpak/org.libervia.LiberviaCLI.desktop	Tue Nov 30 21:42:06 2021 +0100
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Application
+Name=Libervia CLI (jp)
+Comment=CLI frontend for Libervia (XMPP)
+Exec=libervia-cli_wrapper
+Icon=org.libervia.LiberviaCLI
+Categories=Network;InstantMessaging;Chat;FileTransfer;RemoteAccess;
+Keywords=xmpp;chat;messaging;im;file;sharing;communication;jabber;social;network;decentralization;console;cli;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flatpak/org.libervia.LiberviaDesktop.desktop	Tue Nov 30 21:42:06 2021 +0100
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Application
+Name=Libervia Desktop (Cagou)
+Comment=desktop/mobile frontend for Libervia (XMPP)
+Exec=libervia-desktop_wrapper
+Icon=org.libervia.LiberviaDesktop
+Categories=Network;InstantMessaging;Chat;FileTransfer;RemoteAccess;
+Keywords=xmpp;chat;messaging;im;file;sharing;communication;jabber;social;network;decentralization;desktop;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flatpak/org.libervia.LiberviaTUI.desktop	Tue Nov 30 21:42:06 2021 +0100
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Application
+Name=Libervia TUI (Primitivus)
+Comment=console frontend for Libervia (XMPP)
+Exec=libervia-tui_wrapper
+Icon=org.libervia.LiberviaTUI
+Categories=Network;InstantMessaging;Chat;FileTransfer;RemoteAccess;
+Keywords=xmpp;chat;messaging;im;file;sharing;communication;jabber;social;network;decentralization;console;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flatpak/org.libervia.LiberviaWeb.json	Tue Nov 30 21:42:06 2021 +0100
@@ -0,0 +1,93 @@
+{
+    "app-id": "org.salutatoi.Libervia",
+    "runtime": "org.salutatoi.Platform",
+    "runtime-version": "0.7.0a2",
+    "sdk": "org.salutatoi.Sdk",
+    "command": "libervia",
+    "finish-args": [
+        "--socket=session-bus",
+        "--share=network",
+        "--filesystem=home"
+    ],
+    "modules": [
+        {
+            "name": "python2-txJSON-RPC",
+            "buildsystem": "simple",
+            "build-commands": [
+                "python2 setup.py install --prefix=${FLATPAK_DEST}"
+            ],
+            "sources": [
+                {
+                    "type": "archive",
+                    "url": "https://files.pythonhosted.org/packages/f0/2e/cf58ccd5115a2940fd1e2f734af029ea99a5600932b5e87bb0bbe6e7633d/txJSON-RPC-0.3.1.tar.gz",
+                    "sha256": "98367d4046da9ff2f2a0d8db1cf15b692d0ac1112b699710a1b557d951f0d33a"
+                }
+            ]
+        },
+        {
+            "name": "python2-txaio",
+            "buildsystem": "simple",
+            "build-commands": [
+                "python2 setup.py install --prefix=${FLATPAK_DEST}"
+            ],
+            "sources": [
+                {
+                    "type": "archive",
+                    "url": "https://files.pythonhosted.org/packages/b8/87/efcae4040c2a0af9c871116a6dbf02ee582b396e6de3797fb30cdcc4a7e4/txaio-2.10.0.tar.gz",
+                    "sha256": "4797f9f6a9866fe887c96abc0110a226dd5744c894dc3630870542597ad30853"
+                }
+            ],
+            "ensure-writable": [
+                "/lib/python2.7/site-packages/easy-install.pth"
+            ]
+        },
+        {
+            "name": "python2-autobahn",
+            "buildsystem": "simple",
+            "build-commands": [
+                "python2 setup.py install --prefix=${FLATPAK_DEST}"
+            ],
+            "sources": [
+                {
+                    "type": "archive",
+                    "url": "https://files.pythonhosted.org/packages/e0/a4/ca655f7fc8cc28274f7415a304e73c525b203828c164cea22e60207afea0/autobahn-18.6.1.tar.gz",
+                    "sha256": "2f41bfc512ec482044fa8cfa74182118dedd87e03b3494472d9ff1b5a1e27d24"
+                }
+            ],
+            "ensure-writable": [
+                "/lib/python2.7/site-packages/easy-install.pth"
+            ]
+        },
+        {
+            "name": "libervia",
+            "buildsystem": "simple",
+            "build-commands": [
+                "python2 setup.py install --prefix=${FLATPAK_DEST}",
+                "install -D src/libervia.sh /app/bin/libervia",
+                "cp -va src/browser/public /app/share/libervia/html"
+            ],
+            "sources": [
+                {
+                    "type": "archive",
+                    "url": "https://files.pythonhosted.org/packages/1e/05/0bc2491aef3ee380bf9a81ab41ddfe42e6f91f7be4c026575ac40dd0933d/libervia-0.7.0a2.post1.tar.gz",
+                    "sha256": "43334d52cf6570b40dda20ed182bfa2019fc080cf1d45fa069c29fff07069c55"
+                }
+            ]
+        },
+        {
+            "name": "python2-pyjamas",
+            "buildsystem": "simple",
+            "build-commands": [
+                "python2 bootstrap.py",
+                "cd /app/lib/python2.7/site-packages/libervia/browser && /run/build/python2-pyjamas/bin/pyjsbuild libervia_main.py --no-compile-inplace -o /app/share/libervia/html"
+            ],
+            "sources": [
+                {
+                    "type": "archive",
+                    "url": "https://ftp.goffi.org/pyjamas/pyjamas_git.tar.bz2",
+                    "sha256": "2cae6215cbf5d9b94257eac86df31fa85e9bd13a203c332729a95b91ff8c68bd"
+                }
+            ]
+        }
+    ]
+}
--- a/flatpak/org.salutatoi.Libervia.json	Thu Jan 28 21:51:10 2021 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-{
-    "app-id": "org.salutatoi.Libervia",
-    "runtime": "org.salutatoi.Platform",
-    "runtime-version": "0.7.0a2",
-    "sdk": "org.salutatoi.Sdk",
-    "command": "libervia",
-    "finish-args": [
-        "--socket=session-bus",
-        "--share=network",
-        "--filesystem=home"
-    ],
-    "modules": [
-        {
-            "name": "python2-txJSON-RPC",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/f0/2e/cf58ccd5115a2940fd1e2f734af029ea99a5600932b5e87bb0bbe6e7633d/txJSON-RPC-0.3.1.tar.gz",
-                    "sha256": "98367d4046da9ff2f2a0d8db1cf15b692d0ac1112b699710a1b557d951f0d33a"
-                }
-            ]
-        },
-        {
-            "name": "python2-txaio",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/b8/87/efcae4040c2a0af9c871116a6dbf02ee582b396e6de3797fb30cdcc4a7e4/txaio-2.10.0.tar.gz",
-                    "sha256": "4797f9f6a9866fe887c96abc0110a226dd5744c894dc3630870542597ad30853"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-autobahn",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/e0/a4/ca655f7fc8cc28274f7415a304e73c525b203828c164cea22e60207afea0/autobahn-18.6.1.tar.gz",
-                    "sha256": "2f41bfc512ec482044fa8cfa74182118dedd87e03b3494472d9ff1b5a1e27d24"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "libervia",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}",
-                "install -D src/libervia.sh /app/bin/libervia",
-                "cp -va src/browser/public /app/share/libervia/html"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/1e/05/0bc2491aef3ee380bf9a81ab41ddfe42e6f91f7be4c026575ac40dd0933d/libervia-0.7.0a2.post1.tar.gz",
-                    "sha256": "43334d52cf6570b40dda20ed182bfa2019fc080cf1d45fa069c29fff07069c55"
-                }
-            ]
-        },
-        {
-            "name": "python2-pyjamas",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 bootstrap.py",
-                "cd /app/lib/python2.7/site-packages/libervia/browser && /run/build/python2-pyjamas/bin/pyjsbuild libervia_main.py --no-compile-inplace -o /app/share/libervia/html"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://ftp.goffi.org/pyjamas/pyjamas_git.tar.bz2",
-                    "sha256": "2cae6215cbf5d9b94257eac86df31fa85e9bd13a203c332729a95b91ff8c68bd"
-                }
-            ]
-        }
-    ]
-}
--- a/flatpak/org.salutatoi.Primitivus.desktop	Thu Jan 28 21:51:10 2021 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-[Desktop Entry]
-Type=Application
-Name=Primitivus (SàT)
-Comment=console frontend for Salut à Toi (XMPP)
-Exec=sat_wrapper
-Icon=org.salutatoi.Primitivus
-Categories=Network;InstantMessaging;Chat;FileTransfer;RemoteAccess;
-Keywords=xmpp;chat;messaging;im;file;sharing;communication;jabber;social;network;decentralization;console;
--- a/flatpak/org.salutatoi.SAT.json	Thu Jan 28 21:51:10 2021 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-{
-    "app-id": "org.salutatoi.SAT",
-    "branch": "0.7.0a2",
-    "runtime": "org.salutatoi.Platform",
-    "runtime-version": "0.7.0a2",
-    "sdk": "org.salutatoi.Sdk",
-    "command": "sat",
-    "finish-args": [
-        "--share=network",
-        "--filesystem=home"
-    ],
-    "modules": [
-        {
-            "name": "sat",
-            "buildsystem": "simple",
-            "build-commands": [
-                "install -D /usr/bin/sat /app/bin/sat",
-                "install -D /usr/lib/python2.7/site-packages/sat-0.7.0a2-py2.7.egg/share/dbus-1/services/org.salutatoi.SAT.service /app/share/dbus-1/services/org.salutatoi.SAT.service"
-            ]
-        }
-    ]
-}
--- a/flatpak/org.salutatoi.Sdk.json	Thu Jan 28 21:51:10 2021 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,969 +0,0 @@
-{
-    "id": "org.salutatoi.Sdk",
-    "id-platform": "org.salutatoi.Platform",
-    "branch": "0.7.0a2",
-    "build-runtime": true,
-    "runtime": "org.freedesktop.Platform",
-    "runtime-version": "1.6",
-    "sdk": "org.freedesktop.Sdk",
-    "sdk-extensions": [
-        "org.freedesktop.Sdk.Debug",
-        "org.freedesktop.Sdk.Locale",
-        "org.freedesktop.Sdk.Docs"
-    ],
-    "platform-extensions": [
-        "org.freedesktop.Platform.Locale"
-    ],
-    "modules": [
-        {
-            "name": "libxslt",
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "ftp://xmlsoft.org/libxml2/libxslt-1.1.32.tar.gz",
-                    "sha256": "526ecd0abaf4a7789041622c3950c0e7f2c4c8835471515fd77eec684a355460"
-                }
-            ]
-        },
-        {
-            "name": "lxml",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python ./setup.py install --prefix=${FLATPAK_DEST} --optimize=1"
-            ],
-            "build-options": {
-                "env": {
-                    "XSLT_CONFIG": "pkg-config libxslt"
-                }
-            },
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://pypi.python.org/packages/39/e8/a8e0b1fa65dd021d48fe21464f71783655f39a41f218293c1c590d54eb82/lxml-3.7.3.tar.gz",
-                    "sha256": "aa502d78a51ee7d127b4824ff96500f0181d3c7826e6ee7b800d068be79361c7"
-                }
-            ]
-        },
-        {
-            "name": "python2-wheel",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/2a/fb/aefe5d5dbc3f4fe1e815bcdb05cbaab19744d201bbc9b59cfa06ec7fc789/wheel-0.31.1.tar.gz",
-                    "sha256": "0a2e54558a0628f2145d2fc822137e322412115173e8a2ddbe1c9024338ae83c"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-setuptools_scm",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/e5/62/f9e1ac314464eb5945c97542acb6bf6f3381dfa5d7a658de7730c36f31a1/setuptools_scm-2.1.0.tar.gz",
-                    "sha256": "a767141fecdab1c0b3c8e4c788ac912d7c94a0d6c452d40777ba84f918316379"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-ipaddress",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/97/8d/77b8cedcfbf93676148518036c6b1ce7f8e14bf07e95d7fd4ddcb8cc052f/ipaddress-1.0.22.tar.gz",
-                    "sha256": "b146c751ea45cad6188dd6cf2d9b757f6f4f8d6ffb96a023e6f2e26eea02a72c"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-enum34",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz",
-                    "sha256": "8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-pycparser",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/8c/2d/aad7f16146f4197a11f8e91fb81df177adcc2073d36a17b1491fd09df6ed/pycparser-2.18.tar.gz",
-                    "sha256": "99a8ca03e29851d96616ad0404b4aad7d9ee16f25c9f9708a11faf2810f7b226"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-cffi",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/e7/a7/4cd50e57cc6f436f1cc3a7e8fa700ff9b8b4d471620629074913e3735fb2/cffi-1.11.5.tar.gz",
-                    "sha256": "e90f17980e6ab0f3c2f3730e56d1fe9bcba1891eeea58966e89d352492cc74f4"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-asn1crypto",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/fc/f1/8db7daa71f414ddabfa056c4ef792e1461ff655c2ae2928a2b675bfed6b4/asn1crypto-0.24.0.tar.gz",
-                    "sha256": "9d5c20441baf0cb60a4ac34cc447c6c189024b6b4c6cd7877034f4965c464e49"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-constantly",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/95/f1/207a0a478c4bb34b1b49d5915e2db574cadc415c9ac3a7ef17e29b2e8951/constantly-15.1.0.tar.gz",
-                    "sha256": "586372eb92059873e29eba4f9dec8381541b4d3834660707faf8ba59146dfc35"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-zope.interface",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/ac/8a/657532df378c2cd2a1fe6b12be3b4097521570769d4852ec02c24bd3594e/zope.interface-4.5.0.tar.gz",
-                    "sha256": "57c38470d9f57e37afb460c399eb254e7193ac7fb8042bd09bdc001981a9c74c"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth",
-                "/lib/python2.7/site-packages/setuptools.pth"
-            ]
-        },
-        {
-            "name": "python2-pyasn1",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/0d/33/3466a3210321a02040e3ab2cd1ffc6f44664301a5d650a7e44be1dc341f2/pyasn1-0.4.3.tar.gz",
-                    "sha256": "fb81622d8f3509f0026b0683fe90fea27be7284d3826a5f2edf97f69151ab0fc"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-pyasn1-modules",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/37/33/74ebdc52be534e683dc91faf263931bc00ae05c6073909fde53999088541/pyasn1-modules-0.2.2.tar.gz",
-                    "sha256": "a0cf3e1842e7c60fde97cb22d275eb6f9524f5c5250489e292529de841417547"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-attrs",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/e4/ac/a04671e118b57bee87dabca1e0f2d3bda816b7a551036012d0ca24190e71/attrs-18.1.0.tar.gz",
-                    "sha256": "e0d0eb91441a3b53dab4d9b743eafc1ac44476296a2053b6ca3af0b139faf87b"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-six",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/16/d8/bc6316cf98419719bd59c91742194c111b6f2e85abac88e496adefaf7afe/six-1.11.0.tar.gz",
-                    "sha256": "70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-idna",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/65/c4/80f97e9c9628f3cac9b98bfca0402ede54e0563b56482e3e6e45c43c4935/idna-2.7.tar.gz",
-                    "sha256": "684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-hyperlink",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/41/e1/0abd4b480ec04892b1db714560f8c855d43df81895c98506442babf3652f/hyperlink-18.0.0.tar.gz",
-                    "sha256": "f01b4ff744f14bc5d0a22a6b9f1525ab7d6312cb0ff967f59414bbac52f0a306"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-docutils",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/84/f4/5771e41fdf52aabebbadecc9381d11dea0fa34e4759b4071244fa094804c/docutils-0.14.tar.gz",
-                    "sha256": "51e64ef2ebfb29cae1faa133b3710143496eca21c530f3f71424d77687764274"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-mistune",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/9d/be/e06d4346cc608a01dec6bf770d7d0303a4fd6db588b318ced18f5f257145/mistune-0.8.3.tar.gz",
-                    "sha256": "bc10c33bfdcaa4e749b779f62f60d6e12f8215c46a292d05e486b869ae306619"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-m2r",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/23/c5/cf5510b7347c3664f404f08a431dd915048e2643a070dc7f6822904aa6cc/m2r-0.1.15.tar.gz",
-                    "sha256": "1c358d8bf21ff70e569968d604a0e3c9b05fe01b5f362389235e97bc7c0cd542"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-Automat",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/4a/4f/64db3ffda8828cb0541fe949354615f39d02f596b4c33fb74863756fc565/Automat-0.7.0.tar.gz",
-                    "sha256": "cbd78b83fa2d81fe2a4d23d258e1661dd7493c9a50ee2f1a5b2cac61c1793b0e"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-incremental",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/8f/26/02c4016aa95f45479eea37c90c34f8fab6775732ae62587a874b619ca097/incremental-17.5.0.tar.gz",
-                    "sha256": "7b751696aaf36eebfab537e458929e194460051ccad279c72b755a167eebd4b3"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-cryptography",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/ec/b2/faa78c1ab928d2b2c634c8b41ff1181f0abdd9adf9193211bd606ffa57e2/cryptography-2.2.2.tar.gz",
-                    "sha256": "9fc295bf69130a342e7a19a39d7bbeb15c0bcaabc7382ec33ef3b2b7d18d2f63"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-pycairo",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/60/47/d335364f0ca00e475a40a5a664f17691bf77b3973f999b157d56ee89e04a/pycairo-1.17.0.tar.gz",
-                    "sha256": "cdd4d1d357325dec3a21720b85d273408ef83da5f15c184f2eff3212ff236b9f"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-numpy",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/d5/6e/f00492653d0fdf6497a181a1c1d46bbea5a2383e7faf4c8ca6d6f3d2581d/numpy-1.14.5.zip",
-                    "sha256": "a4a433b3a264dbc9aa9c7c241e87c0358a503ea6394f8737df1683c7c9a102ac"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-MarkupSafe",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/4d/de/32d741db316d8fdb7680822dd37001ef7a448255de9699ab4bfcbdf4172b/MarkupSafe-1.0.tar.gz",
-                    "sha256": "a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-pytz",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/ca/a9/62f96decb1e309d6300ebe7eee9acfd7bccaeedd693794437005b9067b44/pytz-2018.5.tar.gz",
-                    "sha256": "ffb9ef1de172603304d9d2819af6f5ece76f2e85ec10692a524dd876e72bf277"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-python-dateutil",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/a0/b0/a4e3241d2dee665fea11baec21389aec6886655cd4db7647ddf96c3fad15/python-dateutil-2.7.3.tar.gz",
-                    "sha256": "e27001de32f627c22380a688bcc43ce83504a7bc5da472209b4c70f02829f0b8"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-Twisted",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/12/2a/e9e4fb2e6b2f7a75577e0614926819a472934b0b85f205ba5d5d2add54d0/Twisted-18.4.0.tar.bz2",
-                    "sha256": "a4cc164a781859c74de47f17f0e85f4bce8a3321a9d0892c015c8f80c4158ad9"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth",
-                "/lib/python2.7/site-packages/setuptools.pth"
-            ]
-        },
-        {
-            "name": "python2-wokkel",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/0e/89/ab6121506b2b8a363dac4fddc648734a44e486defbe0fc4de3785e5ce499/wokkel-0.7.1.tar.gz",
-                    "sha256": "5306591c28f406873fad1d4eba27e5e081a4a7f37e3725b24afd47b3137f4965"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-urwid",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/c7/90/415728875c230fafd13d118512bde3184d810d7bf798a631abc05fac09d0/urwid-2.0.1.tar.gz",
-                    "sha256": "644d3e3900867161a2fc9287a9762753d66bd194754679adb26aede559bcccbc"
-                },
-                {
-                    "type": "patch",
-                    "path": "main_loop.patch"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-urwid_satext",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/e1/3f/a2d15538f7ca1fd1f152698fa863d8ea4059638493f21f91b559e03d8ebb/urwid_satext-0.7.0a2.tar.bz2",
-                    "sha256": "de0c9ed17f69caa01b7eca5b806d906856df6f985005f629aa511080f7da3131"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-shortuuid",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/80/d7/2bfc9332e68d3e15ea97b9b1588b3899ad565120253d3fd71c8f7f13b4fe/shortuuid-0.5.0.tar.gz",
-                    "sha256": "d08fd398f40f8baf87e15eef8355e92fa541bca4eb8465fefab7ee22f92711b9"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-pyOpenSSL",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/9b/7c/ee600b2a9304d260d96044ab5c5e57aa489755b92bbeb4c0803f9504f480/pyOpenSSL-18.0.0.tar.gz",
-                    "sha256": "6488f1423b00f73b7ad5167885312bb0ce410d3312eb212393795b53c8caa580"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-service_identity",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/de/2a/cab6e30be82c8fcd2339ef618036720eda954cf05daef514e386661c9221/service_identity-17.0.0.tar.gz",
-                    "sha256": "4001fbb3da19e0df22c47a06d29681a398473af4aa9d745eca525b3b2c2302ab"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-sat_tmp",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/7e/64/516fdb617a02ba9015264b81438aef1406923bc45c19d178e41237205216/sat_tmp-0.7.0a2.tar.gz",
-                    "sha256": "75cafd560c5ca9cd9aa0833b0ad4e1f6b63310c068a8d3176c346d62bd9958c7"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth",
-                "/lib/python2.7/site-packages/setuptools.pth"
-            ]
-        },
-        {
-            "name": "python2-pyxdg",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/47/6e/311d5f22e2b76381719b5d0c6e9dc39cd33999adae67db71d7279a6d70f4/pyxdg-0.26.tar.gz",
-                    "sha256": "fe2928d3f532ed32b39c32a482b54136fe766d19936afc96c8f00645f9da1a06"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-pycrypto",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz",
-                    "sha256": "f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-python-potr",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/8e/58/bcbd8f223512d733992fcc0793170ffe20af2cd8da50e73c6f14e66d4e16/python-potr-1.0.2.tar.gz",
-                    "sha256": "f95b9a7feaf8e3a6aaa898609f8a2ada55518cf52fc09152775c4c59c99b8ea6"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-PyGObject",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/e0/e8/1e4f21800015a9ca153969e85fc29f7962f8f82fc5dbc1ecbdeb9dc54c75/PyGObject-3.28.3.tar.gz",
-                    "sha256": "250fb669b6ac64eba034cc4404fcbcc993717b1f77c29dff29f8c9202da20d55"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-Pygments",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/71/2a/2e4e77803a8bd6408a2903340ac498cb0a2181811af7c9ec92cb70b0308a/Pygments-2.2.0.tar.gz",
-                    "sha256": "dbae1046def0efb574852fab9e90209b23f556367b5a320c0bcb871c77c3e8cc"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-progressbar",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/a3/a6/b8e451f6cff1c99b4747a2f7235aa904d2d49e8e1464e0b798272aa84358/progressbar-2.5.tar.gz",
-                    "sha256": "5d81cb529da2e223b53962afd6c8ca0f05c6670e40309a7219eacc36af9b6c63"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-Pillow",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/d3/c4/b45b9c0d549f482dd072055e2d3ced88f3b977f7b87c7a990228b20e7da1/Pillow-5.2.0.tar.gz",
-                    "sha256": "f8b3d413c5a8f84b12cd4c5df1d8e211777c9852c6be3ee9c094b626644d3eab"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-netifaces",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/81/39/4e9a026265ba944ddf1fea176dbb29e0fe50c43717ba4fcf3646d099fe38/netifaces-0.10.7.tar.gz",
-                    "sha256": "bd590fcb75421537d4149825e1e63cca225fd47dad861710c46bd1cb329d8cbd"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-mutagen",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/2c/6a/0b2caf9364db074b616b1b8c26ce7166a883c21b0e40bd50f6db02307afe/mutagen-1.40.0.tar.gz",
-                    "sha256": "b2a2c2ce87863af12ed7896f341419cd051a3c72c3c6733db9e83060dcadee5e"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-miniupnpc",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/0c/e8/dbb2747230dfd98a6138cb65b322072eade4d92e1006e518c8711f8f5b85/miniupnpc-2.0.2.tar.gz",
-                    "sha256": "7ea46c93486fe1bdb31f0e0c2d911d224fce70bf5ea120e4295d647dfe274931"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-Markdown",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/b3/73/fc5c850f44af5889192dff783b7b0d8f3fe8d30b65c8e3f78f8f0265fecf/Markdown-2.6.11.tar.gz",
-                    "sha256": "a856869c7ff079ad84a3e19cd87a64998350c2b94e9e08e44270faef33400f81"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-langid",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/ea/4c/0fb7d900d3b0b9c8703be316fbddffecdab23c64e1b46c7a83561d78bd43/langid-1.1.6.tar.gz",
-                    "sha256": "044bcae1912dab85c33d8e98f2811b8f4ff1213e5e9a9e9510137b84da2cb293"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-Jinja2",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/56/e6/332789f295cf22308386cf5bbd1f4e00ed11484299c5d7383378cf48ba47/Jinja2-2.10.tar.gz",
-                    "sha256": "f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-html2text",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/dd/79/f8387c4e82275a7b540e0b948d261a636eb5aedd1d23be8ca05fbf605726/html2text-2018.1.9.tar.gz",
-                    "sha256": "627514fb30e7566b37be6900df26c2c78a030cc9e6211bda604d8181233bcdd4"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-dbus-python",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py build",
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/3f/e7/4edb582d1ffd5ac3c84188deea32e960b5c8c0fe1da56ce70224f85ce542/dbus-python-1.2.8.tar.gz",
-                    "sha256": "abf12bbb765e300bf8e2a1b2f32f85949eab06998dbda127952c31cb63957b6f"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-Babel",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/be/cc/9c981b249a455fa0c76338966325fc70b7265521bad641bf2932f77712f4/Babel-2.6.0.tar.gz",
-                    "sha256": "8cba50f48c529ca3fa18cf81fa9403be176d374ac4d60738b839122dfaaa3d23"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "python2-sat_templates",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/44/4d/c6b105e8164a3dbb77a277730f04ebf04a2a5c0b4722ce08b37aaed97aaf/sat_templates-0.7.0a2.tar.gz",
-                    "sha256": "530605df6d20ab5f68a02fd3e539062427abfda4b65a85d918d47351c3e33bff"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth"
-            ]
-        },
-        {
-            "name": "sat-media",
-            "buildsystem": "simple",
-            "build-commands": [
-                "cp -vr . ${FLATPAK_DEST}/share/sat-media"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://ftp.goffi.org/sat_media/sat_media_0.7.0a1.tar.bz2",
-                    "sha256": "875eb66c871e2c053e237c35ae874916091125f5a517f797860a14c39cb1eebe"
-                }
-            ]
-        },
-        {
-            "name": "sat.conf",
-            "buildsystem": "simple",
-            "build-commands": [
-                "install sat.conf /etc"
-            ],
-            "sources": [
-                {
-                    "type": "file",
-                    "path": "sat.conf",
-                    "sha256": "69cfdb1d8a115601a441b1e283c5626e0d50f673e7bd86650cd1843da940552d"
-                }
-            ]
-        },
-        {
-            "name": "sat",
-            "buildsystem": "simple",
-            "build-commands": [
-                "python2 setup.py install --prefix=${FLATPAK_DEST}"
-            ],
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": "https://files.pythonhosted.org/packages/ea/61/f644e07a70a7a805b1339d79e231db384299c9c390b2cf9b93fa7e4fb63e/sat-0.7.0a2.tar.gz",
-                    "sha256": "1d3789fd4be41acca70dae0e19feed66a165f836cfe0381f412c52756f52e1c3"
-                }
-            ],
-            "ensure-writable": [
-                "/lib/python2.7/site-packages/easy-install.pth",
-                "/lib/python2.7/site-packages/setuptools.pth"
-            ]
-        }
-    ]
-}
--- a/flatpak/sat.conf	Thu Jan 28 21:51:10 2021 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-[DEFAULT]
-media_dir = /app/share/sat-media
-pid_dir = /tmp
-
-[libervia]
-data_dir = /app/share/libervia
--- a/flatpak/sat_wrapper.py	Thu Jan 28 21:51:10 2021 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-#!/usr/bin/env python2
-# -*- coding: utf-8 -*-
-"""This script launch SàT backend if it's not before running command"""
-
-import os
-import sys
-import dbus
-import subprocess
-
-command = "##COMMAND##"
-const_INT_PREFIX = "org.salutatoi.SAT"
-const_OBJ_PATH = '/org/salutatoi/SAT/bridge'
-
-# we remove any path with "/home" from PYTHONPATH because we have
-# "--filesystem=home" permission and packages in .local/lib/python2.7/site-packages may
-# conflict with the ones from flatpak
-clean_pythonpath = ':'.join(p for p in sys.path if p and not p.startswith('/home'))
-os.environ['PYTHONPATH'] = clean_pythonpath
-os.environ['PYTHONNOUSERSITE'] = '1'
-
-try:
-    sessions_bus = dbus.SessionBus()
-    db_object = sessions_bus.get_object(const_INT_PREFIX,
-                                        const_OBJ_PATH)
-except dbus.exceptions.DBusException as e:
-    if e._dbus_error_name != 'org.freedesktop.DBus.Error.ServiceUnknown':
-        raise e
-    # backend not found, we need to launch it
-    print("Launching SàT backend")
-    subprocess.check_call("sat")
-
-os.execlp(command, command, *sys.argv[1:])