From 5380071d3ec2473dfd4765bce35e43ab2e5cbe3c Mon Sep 17 00:00:00 2001 From: Joel Beckmeyer Date: Tue, 12 Oct 2021 13:34:46 -0400 Subject: [PATCH 1/5] New package: python3-questionary-1.10.0 --- srcpkgs/python3-questionary/template | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 srcpkgs/python3-questionary/template diff --git a/srcpkgs/python3-questionary/template b/srcpkgs/python3-questionary/template new file mode 100644 index 000000000000..9e38f9962a06 --- /dev/null +++ b/srcpkgs/python3-questionary/template @@ -0,0 +1,19 @@ +# Template file for 'python3-questionary' +pkgname=python3-questionary +version=1.10.0 +revision=1 +wrksrc="questionary-${version}" +build_style=python3-module +hostmakedepends="python3-setuptools" +depends="python3-prompt_toolkit" +short_desc="Python library to build pretty command line user prompts" +maintainer="Joel Beckmeyer " +license="MIT" +homepage="https://github.com/tmbo/questionary" +distfiles="${PYPI_SITE}/q/questionary/questionary-${version}.tar.gz" +checksum=600d3aefecce26d48d97eee936fdb66e4bc27f934c3ab6dd1e292c4f43946d90 +make_check=no # tests not updated to support Python 3.10 yet + +post_install() { + vlicense LICENSE +} From d9414ddb7023e977cea342bd24ee753d11980b30 Mon Sep 17 00:00:00 2001 From: Joel Beckmeyer Date: Mon, 28 Mar 2022 11:24:05 -0400 Subject: [PATCH 2/5] New package: python3-asyncpg-0.25.0 --- srcpkgs/python3-asyncpg/template | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 srcpkgs/python3-asyncpg/template diff --git a/srcpkgs/python3-asyncpg/template b/srcpkgs/python3-asyncpg/template new file mode 100644 index 000000000000..87016927c142 --- /dev/null +++ b/srcpkgs/python3-asyncpg/template @@ -0,0 +1,16 @@ +# Template file for 'python3-asyncpg' +pkgname=python3-asyncpg +version=0.25.0 +revision=1 +wrksrc="asyncpg-${version}" +build_style=python3-module +hostmakedepends="python3-setuptools" +makedepends="python3-devel" +depends="python3" +short_desc="Asyncio PostgreSQL driver" +maintainer="Joel Beckmeyer " +license="Apache-2.0" +homepage="https://github.com/MagicStack/asyncpg" +distfiles="${PYPI_SITE}/a/asyncpg/asyncpg-${version}.tar.gz" +checksum=63f8e6a69733b285497c2855464a34de657f2cccd25aeaeeb5071872e9382540 +make_check=no # requires running postgres server on system From 1a0d2b4b1b81b4701046c0c3b4605f17c1eb7fb3 Mon Sep 17 00:00:00 2001 From: Joel Beckmeyer Date: Mon, 28 Mar 2022 11:24:19 -0400 Subject: [PATCH 3/5] New package: python3-aiosqlite-0.17.0 --- srcpkgs/python3-aiosqlite/template | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 srcpkgs/python3-aiosqlite/template diff --git a/srcpkgs/python3-aiosqlite/template b/srcpkgs/python3-aiosqlite/template new file mode 100644 index 000000000000..723a70999f01 --- /dev/null +++ b/srcpkgs/python3-aiosqlite/template @@ -0,0 +1,21 @@ +# Template file for 'python3-aiosqlite' +pkgname=python3-aiosqlite +version=0.17.0 +revision=1 +wrksrc="aiosqlite-${version}" +build_style=python3-pep517 +make_check_target="aiosqlite/tests" +hostmakedepends="python3-setuptools python3-flit_core + python3-typing_extensions" +depends="python3" +short_desc="Asyncio bridge to the standard sqlite3 module" +maintainer="Joel Beckmeyer " +license="MIT" +homepage="https://aiosqlite.omnilib.dev/en/stable/" +changelog="https://raw.githubusercontent.com/omnilib/aiosqlite/main/CHANGELOG.md" +distfiles="${PYPI_SITE}/a/aiosqlite/aiosqlite-${version}.tar.gz" +checksum=f0e6acc24bc4864149267ac82fb46dfb3be4455f99fe21df82609cc6e6baee51 + +post_install() { + vlicense LICENSE +} From 681ff5baf480e50343f2348b50f0bca9044e75cb Mon Sep 17 00:00:00 2001 From: Joel Beckmeyer Date: Wed, 13 Oct 2021 11:13:45 -0400 Subject: [PATCH 4/5] New package: python3-mautrix-0.15.8 --- srcpkgs/python3-mautrix/template | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 srcpkgs/python3-mautrix/template diff --git a/srcpkgs/python3-mautrix/template b/srcpkgs/python3-mautrix/template new file mode 100644 index 000000000000..f2e5137b3748 --- /dev/null +++ b/srcpkgs/python3-mautrix/template @@ -0,0 +1,19 @@ +# Template file for 'python3-mautrix' +pkgname=python3-mautrix +version=0.15.8 +revision=1 +wrksrc="mautrix-${version}" +build_style=python3-module +make_check_args="--deselect=mautrix/client/state_store/tests/store_test.py::test_basic_updated \ + --deselect mautrix/client/state_store/tests/store_test.py::test_updates" +hostmakedepends="python3-setuptools" +depends="python3-aiohttp python3-attrs python3-yarl" +checkdepends="python3-pytest-asyncio python3-asyncpg python3-SQLAlchemy + python3-aiosqlite ${depends}" +short_desc="Python 3 asyncio Matrix framework" +maintainer="Joel Beckmeyer " +license="MPL-2.0" +homepage="https://github.com/mautrix/python" +changelog="https://raw.githubusercontent.com/mautrix/python/master/CHANGELOG.md" +distfiles="${PYPI_SITE}/m/mautrix/mautrix-${version}.tar.gz" +checksum=c58761873062aa6a3e72dc0aef9f9b7bde75a743475c1a181b787dbf5087df1a From 32e0419b86c3ffb01f47c8fc1148802698a0daa7 Mon Sep 17 00:00:00 2001 From: Joel Beckmeyer Date: Mon, 28 Mar 2022 11:05:05 -0400 Subject: [PATCH 5/5] New package: maubot-0.3.1 --- srcpkgs/maubot/INSTALL | 5 +++ srcpkgs/maubot/files/maubot/log/run | 1 + srcpkgs/maubot/files/maubot/run | 5 +++ srcpkgs/maubot/patches/entry_point.patch | 12 ++++++ srcpkgs/maubot/patches/maubot-config.patch | 46 ++++++++++++++++++++++ srcpkgs/maubot/template | 44 +++++++++++++++++++++ 6 files changed, 113 insertions(+) create mode 100644 srcpkgs/maubot/INSTALL create mode 120000 srcpkgs/maubot/files/maubot/log/run create mode 100755 srcpkgs/maubot/files/maubot/run create mode 100644 srcpkgs/maubot/patches/entry_point.patch create mode 100644 srcpkgs/maubot/patches/maubot-config.patch create mode 100644 srcpkgs/maubot/template diff --git a/srcpkgs/maubot/INSTALL b/srcpkgs/maubot/INSTALL new file mode 100644 index 000000000000..d25382425381 --- /dev/null +++ b/srcpkgs/maubot/INSTALL @@ -0,0 +1,5 @@ +case "${ACTION}" in +post) + chown _maubot:_maubot etc/maubot/config.yaml + ;; +esac diff --git a/srcpkgs/maubot/files/maubot/log/run b/srcpkgs/maubot/files/maubot/log/run new file mode 120000 index 000000000000..3a5b4a586051 --- /dev/null +++ b/srcpkgs/maubot/files/maubot/log/run @@ -0,0 +1 @@ +/usr/bin/vlogger \ No newline at end of file diff --git a/srcpkgs/maubot/files/maubot/run b/srcpkgs/maubot/files/maubot/run new file mode 100755 index 000000000000..4e487a56631d --- /dev/null +++ b/srcpkgs/maubot/files/maubot/run @@ -0,0 +1,5 @@ +#!/bin/sh +exec 2>&1 +exec chpst -u _maubot:_maubot maubot \ + -c /etc/maubot/config.yaml \ + -b /usr/share/maubot/example-config.yaml diff --git a/srcpkgs/maubot/patches/entry_point.patch b/srcpkgs/maubot/patches/entry_point.patch new file mode 100644 index 000000000000..885569317b2a --- /dev/null +++ b/srcpkgs/maubot/patches/entry_point.patch @@ -0,0 +1,12 @@ +diff --git a/setup.py b/setup.py +index eca1e05..0ae93d0 100644 +--- a/setup.py ++++ b/setup.py +@@ -55,6 +55,7 @@ setuptools.setup( + entry_points=""" + [console_scripts] + mbc=maubot.cli:app ++ maubot=maubot.__main__:main + """, + data_files=[ + (".", ["maubot/example-config.yaml", "alembic.ini"]), diff --git a/srcpkgs/maubot/patches/maubot-config.patch b/srcpkgs/maubot/patches/maubot-config.patch new file mode 100644 index 000000000000..ea60675a9c61 --- /dev/null +++ b/srcpkgs/maubot/patches/maubot-config.patch @@ -0,0 +1,46 @@ +diff --git a/maubot/example-config.yaml b/maubot/example-config.yaml +index d157269..bd3bf23 100644 +--- a/maubot/example-config.yaml ++++ b/maubot/example-config.yaml +@@ -3,7 +3,7 @@ + # Format examples: + # SQLite: sqlite:///filename.db + # Postgres: postgresql://username:password@hostname/dbname +-database: sqlite:///maubot.db ++database: sqlite:////var/lib/maubot/maubot.db + + # Separate database URL for the crypto database. "default" means use the same database as above. + crypto_database: default +@@ -19,19 +19,19 @@ database_opts: + # Configuration for storing plugin .mbp files + plugin_directories: + # The directory where uploaded new plugins should be stored. +- upload: ./plugins ++ upload: /var/lib/maubot/plugins + # The directories from which plugins should be loaded. + # Duplicate plugin IDs will be moved to the trash. + load: +- - ./plugins ++ - /var/lib/maubot/plugins + # The directory where old plugin versions and conflicting plugins should be moved. + # Set to "delete" to delete files immediately. +- trash: ./trash ++ trash: /var/lib/maubot/trash + + # Configuration for storing plugin databases + plugin_databases: + # The directory where SQLite plugin databases should be stored. +- sqlite: ./plugins ++ sqlite: /var/lib/maubot/plugins + # The connection URL for plugin databases. If null, all plugins will get SQLite databases. + # If set, plugins using the new asyncpg interface will get a Postgres connection instead. + # Plugins using the legacy SQLAlchemy interface will always get a SQLite connection. +@@ -117,7 +117,7 @@ logging: + file: + class: logging.handlers.RotatingFileHandler + formatter: normal +- filename: ./maubot.log ++ filename: /var/log/maubot/maubot.log + maxBytes: 10485760 + backupCount: 10 + console: diff --git a/srcpkgs/maubot/template b/srcpkgs/maubot/template new file mode 100644 index 000000000000..62ce2b9fc4d7 --- /dev/null +++ b/srcpkgs/maubot/template @@ -0,0 +1,44 @@ +# Template file for 'maubot' +pkgname=maubot +version=0.3.1 +revision=1 +wrksrc="maubot-${version}" +build_style=python3-module +hostmakedepends="python3-setuptools" +depends="python3-mautrix python3-aiohttp python3-yarl python3-SQLAlchemy + python3-asyncpg python3-aiosqlite python3-commonmark python3-ruamel.yaml + python3-attrs python3-bcrypt python3-packaging python3-click python3-colorama + python3-questionary python3-Jinja2" +short_desc="Plugin-based Matrix bot system" +maintainer="Joel Beckmeyer " +license="AGPL-3.0-or-later" +homepage="https://github.com/maubot/maubot" +distfiles="${PYPI_SITE}/m/maubot/maubot-${version}.tar.gz" +checksum=f2026d1f040e47506a2db59648572bddc5c36c8bc36701b4312b280b3fcbae75 +make_check=no # no tests specified + +conf_files="/etc/maubot/config.yaml" + +system_accounts="_maubot" +_maubot_homedir="/var/lib/maubot" + +make_dirs=" + /var/lib/maubot 0700 _maubot _maubot + /var/lib/maubot/plugins 0700 _maubot _maubot + /var/lib/maubot/trash 0700 _maubot _maubot + /var/lib/maubot/crypto 0700 _maubot _maubot + /var/log/maubot 0700 _maubot _maubot +" + +post_install() { + vsv maubot + + vmkdir usr/lib/maubot + + vinstall maubot/example-config.yaml 644 etc/maubot config.yaml + + vmkdir usr/share/maubot + mv ${DESTDIR}/usr/example-config.yaml ${DESTDIR}/usr/share/maubot + + vlicense LICENSE +}