After 11 years of "temporary" monkey patches, I've finally made a friendly fork of Wokkel at https://www.goffi.org/forge/goffi/tx-xmpp with all needed PRs merged and changes from `sat_tmp`, using the same license as Wokkel (with agreement from contributors). No more monkey patching, and it will also stop the deprecation warning due to outdated packages used in Wokkel. Last but not least, it should unblock the move to the latest Twisted and Python versions.
215 lines
5.5 KiB
TOML
215 lines
5.5 KiB
TOML
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "libervia-backend"
|
|
dynamic = ["version"]
|
|
description = "Libervia: A feature-rich XMPP client showcasing diverse frontends, uniting instant messaging, blogging, file sharing, and ActivityPub-XMPP interactions seamlessly."
|
|
readme = "README.md"
|
|
license = "AGPL-3.0-or-later"
|
|
requires-python = ">=3.11"
|
|
authors = [
|
|
{ name = "Libervia Dev Team", email = "contact@goffi.org" },
|
|
]
|
|
classifiers = [
|
|
"Development Status :: 5 - Production/Stable",
|
|
"Environment :: Console",
|
|
"Framework :: Twisted",
|
|
"Operating System :: POSIX :: Linux",
|
|
"Topic :: Communications :: Chat",
|
|
"Topic :: Internet :: XMPP"
|
|
]
|
|
dependencies = [
|
|
"aiosqlite",
|
|
"alembic",
|
|
"babel < 3",
|
|
"cryptography >= 41.0.1",
|
|
"emoji ~= 2.8",
|
|
"html2text < 2020.2",
|
|
"jinja2 >= 3.1.2",
|
|
"langid < 2",
|
|
"lxml ~= 5.2",
|
|
"lxml_html_clean >= 0.1.1",
|
|
"markdown >= 3.0",
|
|
"miniupnpc >= 2.3.3",
|
|
"mutagen < 2",
|
|
"oldmemo >= 1.0.0, < 2",
|
|
"omemo >= 1.0.0, < 2",
|
|
"pillow >= 6.0.0",
|
|
"progressbar2 < 3.54",
|
|
"pydantic ~= 2.12",
|
|
"pydantic-settings ~= 2.12",
|
|
"pygments < 3",
|
|
"pyopenssl ~= 24.1",
|
|
"python-dateutil >= 2.8.1, < 3",
|
|
# currently disabled due to incompatibility, OTR feature may be removed in
|
|
# the close future
|
|
# "python-potr < 1.1",
|
|
"pyyaml < 7.0.0",
|
|
"python-xlib ~= 0.33",
|
|
"prompt_toolkit ~= 3.0",
|
|
"rich ~= 13.5",
|
|
"setuptools_scm",
|
|
"shortuuid ~= 1.0.11",
|
|
"sqlalchemy >= 1.4",
|
|
"treq ~= 24.9.0",
|
|
# We have to restrict to a version < 24.11.0 due to Wokkel being unmaintained (it
|
|
# depends on twisted.python.constants which has been removed). This is temporary until
|
|
# a solution is found for Wokkel.
|
|
"twisted[tls] >= 22.10, < 24.11.0",
|
|
"twomemo >= 1.0.0, < 2",
|
|
"txdbus",
|
|
"urwid >= 1.2.0, < 3",
|
|
"urwid-satext",
|
|
"xmlschema < 4.3.1",
|
|
"tx-xmpp",
|
|
]
|
|
keywords = [
|
|
"XMPP",
|
|
"chat",
|
|
"instant_messaging",
|
|
"blogging",
|
|
"photo albums",
|
|
"ActivityPub",
|
|
"file sharing",
|
|
"events"
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
SVG = [
|
|
"CairoSVG",
|
|
]
|
|
GUI = [
|
|
"PyQt6"
|
|
]
|
|
TUI = [
|
|
"term-image ~= 0.7.1"
|
|
]
|
|
webrtc = [
|
|
"pygobject >= 3.48",
|
|
]
|
|
# legacy dependency used in `plugin_misc_ip` but not mandatory, and may cause troubles
|
|
# during isntallation. Will be removed in future.
|
|
netifaces = [
|
|
"netifaces < 0.12",
|
|
]
|
|
remote-control = [
|
|
"libervia-backend[webrtc]",
|
|
"cbor2"
|
|
]
|
|
conferences = [
|
|
"autobahn ~= 23.6"
|
|
]
|
|
tor = [
|
|
"txtorcon ~= 24.8.0"
|
|
]
|
|
ox = [
|
|
# Use when virtual environment is isolated from system package. Otherwise, official
|
|
# GPGME python bidings are used.
|
|
"python-gnupg>=0.5.6",
|
|
]
|
|
|
|
# Main features for a good experience
|
|
main = [
|
|
"libervia-backend[tor]",
|
|
"libervia-backend[ox]",
|
|
"libervia-backend[tui]"
|
|
]
|
|
|
|
# All features
|
|
all = [
|
|
# Only used by desktop-kivy so far
|
|
"libervia-backend[SVG]",
|
|
# Needs Qt
|
|
"libervia-backend[GUI]",
|
|
# Only used for (real) images in terminal.
|
|
"libervia-backend[TUI]",
|
|
# Necessary for A/V calls and webRTC based file transfer in local frontends
|
|
# (i.e.; everything but web).
|
|
"libervia-backend[webrtc]",
|
|
# Following 2 are experimental
|
|
"libervia-backend[remote-control]",
|
|
"libervia-backend[conferences]",
|
|
# Needs the Tor daémon
|
|
"libervia-backend[tor]",
|
|
# Used in isolated environment (on system packages, official GPGME Python binding
|
|
# should be used).
|
|
"libervia-backend[ox]"
|
|
]
|
|
|
|
[dependency-groups]
|
|
|
|
dev = [
|
|
{include-group = "debugging"},
|
|
{include-group = "tests"},
|
|
{include-group = "docs"},
|
|
]
|
|
|
|
debugging = [
|
|
"ipdb", "pudb"
|
|
]
|
|
|
|
tests = [
|
|
"pytest ~= 9.0",
|
|
"pytest-twisted",
|
|
"aiosmtpd"
|
|
]
|
|
|
|
docs = [
|
|
"sphinx ~= 9.0",
|
|
"autodoc_pydantic ~= 2.2"
|
|
]
|
|
|
|
|
|
[project.scripts]
|
|
# Legacy name, will be removed in future version
|
|
jp = "libervia.cli.base:LiberviaCli.run"
|
|
li = "libervia.cli.base:LiberviaCli.run"
|
|
libervia-backend = "libervia.backend.core.launcher:Launcher.run"
|
|
libervia-cli = "libervia.cli.base:LiberviaCli.run"
|
|
libervia-tui = "libervia.tui.base:LiberviaTUIApp.run"
|
|
# Legacy name, will be removed in future version
|
|
primitivus = "libervia.tui.base:LiberviaTUIApp.run"
|
|
# Legacy name, will be removed in future version
|
|
sat = "libervia.backend.core.launcher:Launcher.run"
|
|
|
|
[project.urls]
|
|
Homepage = "https://libervia.org"
|
|
Documentation = "https://libervia.org/documentation"
|
|
Repository = "https://repos.goffi.org/libervia-backend/"
|
|
Roadmap = "https://libervia.org/roadmap"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["libervia", "twisted"]
|
|
|
|
[tool.pytest.ini_options]
|
|
# We need to use AsyncIO reactor with pytest-twisted, otherwise AsyncIO calls like for
|
|
# memory.sqla can't be done.
|
|
addopts = "--reactor asyncio"
|
|
|
|
[tool.uv.sources]
|
|
urwid-satext = { url = "https://repos.goffi.org/urwid-satext/archive/tip.tar.bz2" }
|
|
tx-xmpp = { git = "https://www.goffi.org/forge/goffi/tx-xmpp" }
|
|
|
|
|
|
[tool.hatch.version]
|
|
path = "libervia/backend/__init__.py"
|
|
|
|
[tool.hatch.build]
|
|
artifacts = [
|
|
"*.ini",
|
|
"*.yaml"
|
|
]
|
|
|
|
[tool.hatch.build.targets.wheel.shared-data]
|
|
"i18n/fr/LC_MESSAGES/libervia_backend.mo" = "share/locale/fr/LC_MESSAGES/libervia_backend.mo"
|
|
CHANGELOG = "share/doc/libervia-backend/CHANGELOG"
|
|
COPYING = "share/doc/libervia-backend/COPYING"
|
|
INSTALL = "share/doc/libervia-backend/INSTALL"
|
|
README = "share/doc/libervia-backend/README"
|
|
README4TRANSLATORS = "share/doc/libervia-backend/README4TRANSLATORS"
|
|
"misc/org.libervia.Libervia.service" = "share/dbus-1/services/org.libervia.Libervia.service"
|
|
|
|
[tool.hatch.metadata]
|
|
allow-direct-references = true
|