changeset 4080:0ea6b34f8f18

doc: README rewrite: - markdown is now used instead of plain text - updated text - contributors and credits have been moved to ACKNOWLEDGMENTS.md (but they are outdated)
author Goffi <goffi@goffi.org>
date Tue, 06 Jun 2023 13:42:00 +0200
parents 10b6ad569157
children 84f6bee6440d
files ACKNOWLEDGMENTS.md README README.md
diffstat 3 files changed, 209 insertions(+), 231 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ACKNOWLEDGMENTS.md	Tue Jun 06 13:42:00 2023 +0200
@@ -0,0 +1,111 @@
+* NOTE: this is coming from old REAME file, and it's not up-to-date, please check
+  `pyproject.toml` to see a list of third party projects used as requirements and Mercurial
+  logs of the various repositories to get a complete list of contributors*
+
+## CREDIT
+
+A big big thank to the authors/contributors of...
+
+proxy65:
+Libervia (plugin_xep_0065) use nearly all the code from proxy65 (http://code.google.com/p/proxy65/) which was coded by Dave Smith (2002-2004) and maintained by Fabio Forno (2007-2008).
+As the original MIT licence allows, the code is reused and sub-licenced until GPL v3 to follow the rest of the code.
+
+progressbar:
+Libervia (jp) use ProgressBar (http://pypi.python.org/pypi/progressbar/2.2), a class coded by Nilton Volpato which allow the textual representation of progression.
+
+twisted:
+Libervia is heavily based on the twisted framework (http://twistedmatrix.com/trac/), a very great tool which offer a lot of protocols management. There are too many contributors to name them here, so take a look on the website :).
+
+wokkel:
+Libervia use a library with high level enhancements on top of twisted, which is called wokkel (http://wokkel.ik.nu). Lot of thanks to Ralph Meijer and all other contributors.
+
+Urwid:
+Primitivus is based on Urwid (http://excess.org/urwid/) which saved me a lot of time. It's really a great library to easily make a sophisticated interface.
+
+Pyjamas:
+Libervia is built with a Pyjamas (http://pyjs.org), a Google Web Toolkit port for python, including Python to Javascript compiler, and Pyjamas Desktop which allow to execute the same application on the desktop or through a browser. It's really an amazing tool.
+
+Kivy and its linked tools (python-for-android, buildozer, plyer, pyjnius):
+Kivy and linked tools (https://kivy.org) are used to build Cagou frontend, and to port it on several platforms. Excellent pieces of software, well thought, 
+
+Kivy garden:
+in addition to Kivy itself, extension from the garden are used:
+- contextmenu: used to display main and context menus
+
+lxml(http://lxml.de/):
+this powerful and efficient XML parsing module is used sometimes to replace Twisted internal tools: its API is handy, and it have some features like evil content cleaning.
+
+pillow(https://python-pillow.github.io/):
+This image manipulation module is used for avatars
+
+txJSON-RPC:
+Libervia use txJSON-RPC (https://launchpad.net/txjsonrpc), a twisted library to communicate with the browser's javascript throught JSON-RPC
+
+Mutagen:
+Mutagen (https://bitbucket.org/lazka/mutagen) is an audio metadata handling library, it's used by the radiocol plugin.
+
+Python OTR (http://python-otr.pentabarf.de), PyCrypto (https://www.dlitz.net/software/pycrypto) and pyOpenSSL(https://github.com/pyca/pyopenssl):
+Used for cryptography
+
+otr.js and its dependencies Big Integer Library, CryptoJS, EventEmitter:
+Libervia frontend uses otr.js and its dependencies:
+    - otr.js was coded by Arlo Breault (2014) and is released under the Mozilla Public License Version 2.0
+    - Big Integer Library was coded by Leemon Baird (2000-2013) and is in the public domain
+    - CryptoJS was coded by Jeff Mott (2009-2013) and is released under the MIT licence
+    - EventEmitter was coded by Oliver Caldwell (2011-2013) and is released under the MIT licence
+As the original licences allow, the code is reused and sub-licenced until GPL v3 to follow the rest of the code.
+
+mardown (https://pythonhosted.org/Markdown/) and html2text (https://pypi.python.org/pypi/html2text/2015.6.21):
+both are used for syntaxes conversions
+
+Jinja2 (http://jinja.pocoo.org/):
+a poweful template engine for Python that we use for designing Libervia's static blog pages
+
+miniupnp (http://miniupnp.free.fr/):
+this UPnP-IGD implementation is used to facilitate P2P sessions
+
+netifaces (https://pypi.python.org/pypi/netifaces):
+when available, this module is used to detect local IPs
+
+pictures found in the libervia_media repository and used by Libervia and Libervia:
+Please read the credits and licence information that are given in the README and COPYING files for each work: http://repos.goffi.org/libervia_media/file
+
+the powerfull ImageMagick (http://www.imagemagick.org/) is used by the script written to split the previously named picture.
+
+PyXDF (http://freedesktop.org/wiki/Software/pyxdg):
+Used to follow FreeDesktop XDG standards
+
+A special thank to people working on XMPP standards, libre standards are the way to go !
+
+and the others:
+and of course, nothing would be possible without Python (http://www.python.org/), GNU and the Free Software Foundation (http://www.gnu.org, http://www.fsf.org/), the Linux Kernel (http://www.kernel.org/), and the coder of the tools we use like Vim (http://www.vim.org/), Mercurial (http://www.selenic.com/mercurial/wiki/), or all the KDE stuff (http://www.kde.org/ and of course http://amarok.kde.org/), and also XFCE (http://www.xfce.org), etc. Thanks thanks thanks, thanks to everybody in the Free (Libre) chain for making a part of this.
+
+If we forgot any credit (and we probably have), please contact us (mail below) to fix it.
+
+## CONTRIBUTORS
+
+Salut à Toi has received contributions from:
+
+- Adrien Vigneron <adrienvigneron@mailoo.org>: huge work on Libervia's CSS, Libervia Logo (the mascot is his work), and Quiz game graphics.
+
+- Xavier Maillard <xavier@maillard.im>: bugs fixes, libervia_templates installation.
+
+- Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>: bugs fixes, Libervia's notification, Libervia as a twisted application plugin.
+
+- Matthieu Rakotojaona <matthieu.rakotojaona@gmail.com>: English translation of the social contract.
+
+- Thomas Preud'homme <robotux@debian.org>: bugs fixes. He's also one of the co-maintainer of the Debian package.
+
+- Dal <kedals0@gmail.com>: profiles management, argparse refactoring in jp.
+
+- Matteo Cypriani <mcy@lm7.fr>: jp's mainloop update + doc improvements + various fixes. He's also the other co-maintainer of the Debian package.
+
+- Olly Betts <olly@survex.com>: icon fix in Wix [N.B.: Wix has since been removed]
+
+- Geoffrey Pouzet <chteufleur@kingpenguin.tk>: XEP-0070 and XEP-0184 implementations
+
+- Arnaud Joset <info@agayon.be>: setup fixes
+
+Many thanks to them.
+
+A big thank also to all the maintainers of Libervia packages.
--- a/README	Tue Jun 06 12:41:53 2023 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,231 +0,0 @@
-Salut à Toi
-(c) Jérôme Poisson aka Goffi 2008-2021
-(c) Adrien Cossa aka Souliane 2013-2016
-
-SàT is a XMPP (Jabber) client.
-
-
-** LICENCE **
-
-SàT is free software: you can redistribute it and/or modify
-it under the terms of the GNU Affero General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-SàT is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU Affero General Public License for more details.
-
-You should have received a copy of the GNU Affero General Public License
-along with SàT.  If not, see <http://www.gnu.org/licenses/>.
-
-
-** ABOUT **
-
-SàT is a XMPP (Jabber) client, made on a daemon/frontends architecture. Its aim is not only to be an instant messaging client: SàT manage microblogging, file transfer, rich text edition, piping over XMPP, XMPP remote, etc.
-In addition, SàT has been built with ethic in mind, a social contract show the main lines (see CONTRAT_SOCIAL or CONTRAT_SOCIAL_en). We have a lot of debates about the right way to do things, more on a social way than on a technical way (but consider technique too).
-
-For the moment, the frontends are:
-
-* primitivus: a console interface client, for terminal lovers
-* jp: the powerful command line toolkit.
-* libervia: the web frontend. It's in a different package, check libervia on the wiki: https://wiki.goffi.org/wiki/Libervia
-* cagou: the desktop/mobile frontend. It's in a different package
-* bellaciao: a Qt frontend at an early development stage (development currently paused)
-
-
-** HOW TO USE IT ? **
-
-For installation instructions, please read the file "INSTALL". Note that SàT is available in several GNU/Linux distributions
-
-A wiki is available online (https://wiki.goffi.org), in French and English so far (we would appreciate any help for other languages). You can also have a look at the bottom of this files (in contact section) for other available websites.
-
-
-** MISC **
-
-To use SàT, you need to have D-Bus daemon launched (http://www.freedesktop.org/wiki/Software/dbus/). If you use X Window, it should already be launched. If your are on a terminal environment without X11 (e.g. on a server) you may have to launch it. You can launch a daemon using the following command:
-$ eval `dbus-launch --sh-syntax`
-
-Be careful to use the same environment variables if you start a new session.
-
-I personally use the following script to do that automatically:
-
---- /usr/local/bin/dbus-launch.sh ---
-#!/bin/sh
-
-DBUS_PATH="/tmp/.dbus.`whoami`"
-
-if [ ! -e $DBUS_PATH ]; then
-        dbus-launch --sh-syntax > $DBUS_PATH
-        chmod 400 $DBUS_PATH
-fi
-
-cat $DBUS_PATH
---- end of /usr/local/bin/dbus-launch.sh ---
-
-You can launch this script by putting at the end of your .zshrc (or whatever you're using):
-eval `/usr/local/bin/dbus-launch.sh`
-
---
-
-You can find Primitivus shortcuts on the wiki:
-https://wiki.goffi.org/wiki/Primitivus
-
---
-
-SàT is the acronym (yes another one :( ) in tribute to the song Salut à Toi from the Bérurier Noir band and it means "hi to you" (which seems appropriate for a communication software). If you want to listen to the song, we also recommend the excellent cover from Les Ogres de Barback.
-jp stands for "Jabber coPy" or "JumP", and was choosen for its similarity with "cp" and short name.
-Primitivus is based on Urwid, and, according to their FAQ, "ur" is a German prefix for "ancestral or primal" (primitivus is a latin word).
-Libervia is made from "Liber" (libre) and via (road, path). It could be understood as the libre road, or the path to freedom.
-Cagou is the name of a beautiful bird (who bark and can't fly) from New-Caledonia, and it's also a wink to Kivy, the framework used.
-
-
-** CREDIT **
-
-A big big thank to the authors/contributors of...
-
-proxy65:
-SàT (plugin_xep_0065) use nearly all the code from proxy65 (http://code.google.com/p/proxy65/) which was coded by Dave Smith (2002-2004) and maintained by Fabio Forno (2007-2008).
-As the original MIT licence allows, the code is reused and sub-licenced until GPL v3 to follow the rest of the code.
-
-progressbar:
-SàT (jp) use ProgressBar (http://pypi.python.org/pypi/progressbar/2.2), a class coded by Nilton Volpato which allow the textual representation of progression.
-
-twisted:
-SàT is heavily based on the twisted framework (http://twistedmatrix.com/trac/), a very great tool which offer a lot of protocols management. There are too many contributors to name them here, so take a look on the website :).
-
-wokkel:
-SàT use a library with high level enhancements on top of twisted, which is called wokkel (http://wokkel.ik.nu). Lot of thanks to Ralph Meijer and all other contributors.
-
-Urwid:
-Primitivus is based on Urwid (http://excess.org/urwid/) which saved me a lot of time. It's really a great library to easily make a sophisticated interface.
-
-Pyjamas:
-Libervia is built with a Pyjamas (http://pyjs.org), a Google Web Toolkit port for python, including Python to Javascript compiler, and Pyjamas Desktop which allow to execute the same application on the desktop or through a browser. It's really an amazing tool.
-
-Kivy and its linked tools (python-for-android, buildozer, plyer, pyjnius):
-Kivy and linked tools (https://kivy.org) are used to build Cagou frontend, and to port it on several platforms. Excellent pieces of software, well thought, 
-
-Kivy garden:
-in addition to Kivy itself, extension from the garden are used:
-- contextmenu: used to display main and context menus
-
-lxml(http://lxml.de/):
-this powerful and efficient XML parsing module is used sometimes to replace Twisted internal tools: its API is handy, and it have some features like evil content cleaning.
-
-pillow(https://python-pillow.github.io/):
-This image manipulation module is used for avatars
-
-txJSON-RPC:
-Libervia use txJSON-RPC (https://launchpad.net/txjsonrpc), a twisted library to communicate with the browser's javascript throught JSON-RPC
-
-Mutagen:
-Mutagen (https://bitbucket.org/lazka/mutagen) is an audio metadata handling library, it's used by the radiocol plugin.
-
-Python OTR (http://python-otr.pentabarf.de), PyCrypto (https://www.dlitz.net/software/pycrypto) and pyOpenSSL(https://github.com/pyca/pyopenssl):
-Used for cryptography
-
-otr.js and its dependencies Big Integer Library, CryptoJS, EventEmitter:
-Libervia frontend uses otr.js and its dependencies:
-    - otr.js was coded by Arlo Breault (2014) and is released under the Mozilla Public License Version 2.0
-    - Big Integer Library was coded by Leemon Baird (2000-2013) and is in the public domain
-    - CryptoJS was coded by Jeff Mott (2009-2013) and is released under the MIT licence
-    - EventEmitter was coded by Oliver Caldwell (2011-2013) and is released under the MIT licence
-As the original licences allow, the code is reused and sub-licenced until GPL v3 to follow the rest of the code.
-
-mardown (https://pythonhosted.org/Markdown/) and html2text (https://pypi.python.org/pypi/html2text/2015.6.21):
-both are used for syntaxes conversions
-
-Jinja2 (http://jinja.pocoo.org/):
-a poweful template engine for Python that we use for designing Libervia's static blog pages
-
-miniupnp (http://miniupnp.free.fr/):
-this UPnP-IGD implementation is used to facilitate P2P sessions
-
-netifaces (https://pypi.python.org/pypi/netifaces):
-when available, this module is used to detect local IPs
-
-pictures found in the sat_media repository and used by SàT and Libervia:
-Please read the credits and licence information that are given in the README and COPYING files for each work: http://repos.goffi.org/sat_media/file
-
-the powerfull ImageMagick (http://www.imagemagick.org/) is used by the script written to split the previously named picture.
-
-PyXDF (http://freedesktop.org/wiki/Software/pyxdg):
-Used to follow FreeDesktop XDG standards
-
-A special thank to people working on XMPP standards, libre standards are the way to go !
-
-and the others:
-and of course, nothing would be possible without Python (http://www.python.org/), GNU and the Free Software Foundation (http://www.gnu.org, http://www.fsf.org/), the Linux Kernel (http://www.kernel.org/), and the coder of the tools we use like Vim (http://www.vim.org/), Mercurial (http://www.selenic.com/mercurial/wiki/), or all the KDE stuff (http://www.kde.org/ and of course http://amarok.kde.org/), and also XFCE (http://www.xfce.org), etc. Thanks thanks thanks, thanks to everybody in the Free (Libre) chain for making a part of this.
-
-If we forgot any credit (and we probably have), please contact us (mail below) to fix it.
-
-
-** CONTRIBUTORS **
-
-Salut à Toi has received contributions from:
-
-- Adrien Vigneron <adrienvigneron@mailoo.org>: huge work on Libervia's CSS, SàT Logo (the mascot is his work), and Quiz game graphics.
-
-- Xavier Maillard <xavier@maillard.im>: bugs fixes, sat_templates installation.
-
-- Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>: bugs fixes, Libervia's notification, Libervia as a twisted application plugin.
-
-- Matthieu Rakotojaona <matthieu.rakotojaona@gmail.com>: English translation of the social contract.
-
-- Thomas Preud'homme <robotux@debian.org>: bugs fixes. He's also one of the co-maintainer of the Debian package.
-
-- Dal <kedals0@gmail.com>: profiles management, argparse refactoring in jp.
-
-- Matteo Cypriani <mcy@lm7.fr>: jp's mainloop update + doc improvements + various fixes. He's also the other co-maintainer of the Debian package.
-
-- Olly Betts <olly@survex.com>: icon fix in Wix [N.B.: Wix has since been removed]
-
-- Geoffrey Pouzet <chteufleur@kingpenguin.tk>: XEP-0070 and XEP-0184 implementations
-
-- Arnaud Joset <info@agayon.be>: setup fixes
-
-Many thanks to them.
-
-A big thank also to all the maintainers of SàT packages.
-
-
-** CONTRIBUTIONS **
-
-Here are the URIs you can use to publish/retrieve tickets or merge requests:
-
-tickets: xmpp:pubsub.goffi.org?;node=org.salut-a-toi.tickets%3A0 (please use "core" label)
-merge requests: xmpp:pubsub.goffi.org?;node=org.salut-a-toi.merge_requests%3A0 (please use "core" label)
-
-Tickets and merge requests are handled by SàT itself using XMPP.
-
-
-** CONTACT **
-
-You can join us on the XMPP MUC room (sat@chat.jabberfr.org), or individually:
-
-SàT team:
-	- contact@salut-a-toi.invalid (replace invalid by org)
-	- https://libervia.org/blog/salut-a-toi (blog)
-
-Goffi:
-	- goffi@goffi.org (e-mail)
-	- goffi@jabber.fr (jid)
-	- https://www.goffi.org (blog - based on Libervia -, with fresh news about SàT)
-
-Souliane:
-	- souliane@mailoo.org (e-mail)
-	- souliane@libervia.org (jid)
-
-You'll find the latest version and other stuffs on *.goffi.org websites:
-
-- wiki (wiki.goffi.org), in French & English so far
-- ftp (ftp.goffi.org) for the latest version, or previous ones (and other projects)
-- bugtracker (bugs.goffi.org) to report any problem or give suggestions
-- mailing lists (lists.goffi.org)
-
-and the official SàT website is at https://www.salut-a-toi.org
-
-
-This software is dedicated to Roger Poisson.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README.md	Tue Jun 06 13:42:00 2023 +0200
@@ -0,0 +1,98 @@
+# Libervia
+
+### Copyrights
+
+- Jérôme Poisson aka Goffi 2008-2023
+- Adrien Cossa aka Souliane 2013-2016
+- Additional contributions by community members
+
+Libervia stands out as a one-of-a-kind XMPP (Jabber) client that brings you a
+comprehensive, multi-purpose, and multi-platform solution. It doesn't just focus on
+instant messaging but offers an array of tools and features all in one place.
+
+## License
+
+Libervia is a Libre software (Free as in "Freedom"), distributed under the AGPL v3+
+license. For the full license, please refer to the `COPYING` file.
+
+## Relevant URLs
+
+Here are some useful URLs, all of which (except for the source code repository) are
+powered by Libervia itself, showcasing the flexibility and versatility of the tool:
+
+- Official Website: <https://libervia.org>
+- Documentation: <https://libervia.org/documentation>
+- Bug Tracker: <https://libervia.org/tickets>
+- Source Code: <https://repos.goffi.org/libervia-backend/>
+- News: <https://libervia.org/news> (currently the same as the blog below)
+- Main Developer's Blog: <https://www.goffi.org/>
+
+Additionally, our blogs are accessible via ActivityPub thanks to the Libervia XMPP <=>
+ActivityPub gateway.
+
+## About
+
+Libervia is a unique XMPP client based on a daemon/frontends architecture. It supports
+multi-frontends (desktop, web, console interface, CLI, etc.) and provides a plethora of
+multi-purpose tools such as instant messaging, microblogging, photo albums, calendar
+events, file sharing, A/V calls, and state-of-the-art end-to-end encryption.
+
+Embedded within our DNA is a strong commitment to ethics. Our social contract provides
+insight into these principles - refer to `CONTRAT_SOCIAL` or `CONTRAT_SOCIAL_en`.
+
+This repository contains the "backend" of Libervia—the heart of the software. To use it,
+you will need to install one or more frontends:
+
+- [Libervia Web](https://repos.goffi.org/libervia-web/): Our flagship frontend, offering a
+  potent, customizable social network for a broad spectrum of users—families, friends,
+  groups, associations, public services, companies, and more.
+- [Libervia Desktop](https://repos.goffi.org/libervia-desktop/): Integrated with your
+  desktop, this frontend is under continual development. The existing
+  [Kivy](https://kivy.org/)-based version includes a prototype Android version, with an
+  upcoming iteration to be based on Qt.
+- Libervia CLI: Bundled with Libervia Backend, our CLI is a true standout—one of the most
+  powerful XMPP CLIs out there. It's the go-to tool for quick tasks or crafting automation
+  scripts.
+- Libervia TUI: Perfect for terminal enthusiasts or headless server operations, our TUI is
+  included with Libervia Backend.
+
+
+Libervia can also function as an XMPP server component or a "generic" plugin. Currently,
+we offer two components:
+
+- An advanced file sharing component supporting [HTTP File
+  Upload](https://xmpp.org/extensions/xep-0363.html), [Jingle File
+  Transfer](https://xmpp.org/extensions), file deletion, public link, access permission,
+  quotas, etc.
+- An XMPP <=> ActivityPub Gateway, enabling users to interact with ActivityPub content
+  (from platforms like Mastodon, Pleroma, PeerTube, Mobilizon, etc.) as if they were XMPP
+  blogs or private messages, and vice versa.
+
+## How To Use It?
+
+For installation instructions and general documentation, please refer to the `doc`
+directory or visit <https://libervia.org/documentation/>
+
+## Contributions
+
+Here are the URIs you can use to publish/retrieve tickets or merge requests:
+
+- Tickets: xmpp:pubsub.goffi.org?;node=org.salut-a-toi.tickets%3A0 (please use "core"
+  label)
+- Merge requests: xmpp:pubsub.goffi.org?;node=org.salut-a-toi.merge_requests%3A0 (please
+  use "core" label)
+
+Tickets and merge requests are managed by Libervia itself using XMPP. For more
+information, visit <https://libervia.org/tickets>
+
+## Contact
+
+Join us on the XMPP MUC room
+[libervia@chat.jabberfr.org](xmpp:libervia@chat.jabberfr.org?join) ([web
+link](https://chat.jabberfr.org/converse.js/libervia@chat.jabberfr.org)), or contact us
+directly:
+
+- contact@salut-a-toi.invalid (replace `invalid` with `org`)
+- goffi@goffi.invalid (email, replace `invalid` with `org`)
+
+This software is dedicated to Roger Poisson.