# HG changeset patch # User Goffi # Date 1638304926 -3600 # Node ID a213053a03bed456c9d7ae80261712d4195d34c5 # Parent e38a968cb8730a95ef78dd37554441f033d18537 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). diff -r e38a968cb873 -r a213053a03be flatpak/_tpl_org.libervia.LiberviaCLI.appdata.xml --- /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 @@ + + + + org.libervia.LiberviaCLI + FSFAP + AGPL-3.0-or-later + Libervia CLI (jp) + Multi-purpose communication ecosystem (CLI frontend) - XMPP standard + + Network + Chat + FileTransfer + ConsoleOnly + + +

Libervia is a multi-purpose communication ecosystem.

+

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.

+ +

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.

+

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.

+
+ + + The list of room commands seen + https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/jp_commands_list.png + + + REPL shell used to retrieve last blog post + https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/jp_shell_blog.png + + + https://salut-a-toi.org + https://bugs.goffi.org + Libervia + + libervia-cli + + + + +

"La Commune" release.

+

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.

+
+ https://www.goffi.org/b/N29CuUQS4U4TK36JFuTQ5Q/salut-commune +
+
+ + intense + intense + intense + +
diff -r e38a968cb873 -r a213053a03be flatpak/_tpl_org.libervia.LiberviaCLI.json --- /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" + } +} diff -r e38a968cb873 -r a213053a03be flatpak/_tpl_org.libervia.LiberviaDesktop.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 @@ + + + + org.libervia.LiberviaDesktop + FSFAP + AGPL-3.0-or-later + Libervia Desktop (Cagou) + Multi-purpose communication ecosystem (desktop/mobile frontend) - XMPP standard + + Network + Chat + FileTransfer + + +

Libervia is a multi-purpose communication ecosystem.

+

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.

+ +

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.

+

This part is the desktop/mobile frontend.

+
+ org.libervia.LiberviaDesktop.desktop + + + A chat conversation seen with Cagou on Android + https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/cagou_0.7.0b1_android.jpg + + + A chat conversation seen with Libervia frontend + https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/libervia_pages_chat.png + + + A photos album seen with Libervia frontend + https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/libervia_pages_photos_album.png + + + https://salut-a-toi.org + https://bugs.goffi.org + Libervia + + libervia-desktop + + + + +

"La Commune" release.

+

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.

+
+ https://www.goffi.org/b/N29CuUQS4U4TK36JFuTQ5Q/salut-commune +
+
+ + intense + intense + intense + +
diff -r e38a968cb873 -r a213053a03be flatpak/_tpl_org.libervia.LiberviaDesktop.json --- /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" + } + ] + } + ] +} diff -r e38a968cb873 -r a213053a03be flatpak/_tpl_org.libervia.LiberviaTUI.appdata.xml --- /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 @@ + + + + org.libervia.LiberviaTUI + FSFAP + AGPL-3.0-or-later + Libervia TUI (Primitivus) + Multi-purpose communication ecosystem (TUI frontend) - XMPP standard + + Network + Chat + FileTransfer + ConsoleOnly + + +

Libervia is a multi-purpose communication ecosystem.

+

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.

+ +

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.

+

This part is the Terminal User Interface frontend.

+
+ + + A chat conversation seen with Primitivus + https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/primitivus_chat.png + + + https://salut-a-toi.org + https://bugs.goffi.org + Libervia + + libervia-tui + + + + +

"La Commune" release.

+

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.

+
+ https://www.goffi.org/b/N29CuUQS4U4TK36JFuTQ5Q/salut-commune +
+
+ + intense + intense + intense + +
diff -r e38a968cb873 -r a213053a03be flatpak/_tpl_org.libervia.LiberviaTUI.json --- /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" + } +} diff -r e38a968cb873 -r a213053a03be flatpak/_tpl_org.salutatoi.Cagou.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 @@ - - - - org.salutatoi.Cagou - FSFAP - AGPL-3.0-or-later - Cagou (SàT) - Multi-purpose communication ecosystem (desktop/mobile frontend) - XMPP standard - - Network - Chat - FileTransfer - - -

Salut à Toi is a multi-purpose communication ecosystem.

-

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.

- -

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.

-

This part is the desktop/mobile frontend.

-
- org.salutatoi.Cagou.desktop - - - A chat conversation seen with Cagou on Android - https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/cagou_0.7.0b1_android.jpg - - - A chat conversation seen with Libervia frontend - https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/libervia_pages_chat.png - - - A photos album seen with Libervia frontend - https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/libervia_pages_photos_album.png - - - https://salut-a-toi.org - https://bugs.goffi.org - SAT - - cagou - - - - -

"La Commune" release.

-

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.

-
- https://www.goffi.org/b/N29CuUQS4U4TK36JFuTQ5Q/salut-commune -
-
- - intense - intense - intense - -
diff -r e38a968cb873 -r a213053a03be flatpak/_tpl_org.salutatoi.Cagou.json --- 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" - } - ] - } - ] -} diff -r e38a968cb873 -r a213053a03be flatpak/_tpl_org.salutatoi.Jp.appdata.xml --- 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 @@ - - - - org.salutatoi.Jp - FSFAP - AGPL-3.0-or-later - Jp (SàT) - Multi-purpose communication ecosystem (CLI frontend) - XMPP standard - - Network - Chat - FileTransfer - ConsoleOnly - - -

Salut à Toi is a multi-purpose communication ecosystem.

-

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.

- -

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.

-

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.

-
- - - The list of room commands seen - https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/jp_commands_list.png - - - REPL shell used to retrieve last blog post - https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/jp_shell_blog.png - - - https://salut-a-toi.org - https://bugs.goffi.org - SAT - - jp - - - - -

"La Commune" release.

-

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.

-
- https://www.goffi.org/b/N29CuUQS4U4TK36JFuTQ5Q/salut-commune -
-
- - intense - intense - intense - -
diff -r e38a968cb873 -r a213053a03be flatpak/_tpl_org.salutatoi.Jp.json --- 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" - } -} diff -r e38a968cb873 -r a213053a03be flatpak/_tpl_org.salutatoi.Primitivus.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 @@ - - - - org.salutatoi.Primitivus - FSFAP - AGPL-3.0-or-later - Primitivus (SàT) - Multi-purpose communication ecosystem (TUI frontend) - XMPP standard - - Network - Chat - FileTransfer - ConsoleOnly - - -

Salut à Toi is a multi-purpose communication ecosystem.

-

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.

- -

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.

-

This part is the Terminal User Interface frontend.

-
- - - A chat conversation seen with Primitivus - https://repos.goffi.org/sat_docs/raw-file/tip/screenshots/0.7/primitivus_chat.png - - - https://salut-a-toi.org - https://bugs.goffi.org - SAT - - primitivus - - - - -

"La Commune" release.

-

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.

-
- https://www.goffi.org/b/N29CuUQS4U4TK36JFuTQ5Q/salut-commune -
-
- - intense - intense - intense - -
diff -r e38a968cb873 -r a213053a03be flatpak/_tpl_org.salutatoi.Primitivus.json --- 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" - } -} diff -r e38a968cb873 -r a213053a03be flatpak/build_manifest.py --- 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)) diff -r e38a968cb873 -r a213053a03be flatpak/libervia-dbus.conf --- /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 diff -r e38a968cb873 -r a213053a03be flatpak/libervia.conf --- /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 diff -r e38a968cb873 -r a213053a03be flatpak/libervia_wrapper-dbus.py --- /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"]) diff -r e38a968cb873 -r a213053a03be flatpak/libervia_wrapper-dbus_keep.py --- /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:]) diff -r e38a968cb873 -r a213053a03be flatpak/libervia_wrapper.py --- /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"]) diff -r e38a968cb873 -r a213053a03be flatpak/org.libervia.Libervia.json --- /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" + ] + } + ] +} diff -r e38a968cb873 -r a213053a03be flatpak/org.libervia.LiberviaCLI.desktop --- /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; diff -r e38a968cb873 -r a213053a03be flatpak/org.libervia.LiberviaDesktop.desktop --- /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; diff -r e38a968cb873 -r a213053a03be flatpak/org.libervia.LiberviaTUI.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; diff -r e38a968cb873 -r a213053a03be flatpak/org.libervia.LiberviaWeb.json --- /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" + } + ] + } + ] +} diff -r e38a968cb873 -r a213053a03be flatpak/org.salutatoi.Libervia.json --- 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" - } - ] - } - ] -} diff -r e38a968cb873 -r a213053a03be flatpak/org.salutatoi.Primitivus.desktop --- 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; diff -r e38a968cb873 -r a213053a03be flatpak/org.salutatoi.SAT.json --- 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" - ] - } - ] -} diff -r e38a968cb873 -r a213053a03be flatpak/org.salutatoi.Sdk.json --- 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" - ] - } - ] -} diff -r e38a968cb873 -r a213053a03be flatpak/sat.conf --- 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 diff -r e38a968cb873 -r a213053a03be flatpak/sat_wrapper.py --- 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:])