From 5f4793401128c761a5f3fc057c1c742fa514d915 Mon Sep 17 00:00:00 2001 From: Dominic Ricottone Date: Tue, 6 Jun 2023 19:06:31 -0500 Subject: [PATCH] Initial commit --- .gitignore | 3 + LICENSE.md | 31 ++++++ Makefile | 27 +++++ README.md | 43 ++++++++ src/builds.sr.ht/APKBUILD | 99 +++++++++++++++++ src/builds.sr.ht/LICENSE.txt | 26 +++++ src/builds.sr.ht/builds.sr.ht-api.confd | 8 ++ src/builds.sr.ht/builds.sr.ht-api.initd | 26 +++++ src/builds.sr.ht/builds.sr.ht-worker.confd | 5 + src/builds.sr.ht/builds.sr.ht-worker.initd | 24 +++++ src/builds.sr.ht/builds.sr.ht.confd | 11 ++ .../builds.sr.ht.gunicorn.conf.py | 5 + src/builds.sr.ht/builds.sr.ht.initd | 32 ++++++ src/builds.sr.ht/builds.sr.ht.post-upgrade | 3 + src/builds.sr.ht/builds.sr.ht.pre-install | 3 + src/git.sr.ht/APKBUILD | 81 ++++++++++++++ src/git.sr.ht/LICENSE.txt | 26 +++++ src/git.sr.ht/git.sr.ht-api.confd | 8 ++ src/git.sr.ht/git.sr.ht-api.initd | 24 +++++ src/git.sr.ht/git.sr.ht-webhooks.confd | 5 + src/git.sr.ht/git.sr.ht-webhooks.initd | 23 ++++ src/git.sr.ht/git.sr.ht.confd | 11 ++ src/git.sr.ht/git.sr.ht.gunicorn.conf.py | 5 + src/git.sr.ht/git.sr.ht.initd | 32 ++++++ src/git.sr.ht/git.sr.ht.post-install | 3 + src/git.sr.ht/git.sr.ht.post-upgrade | 3 + src/lists.sr.ht/APKBUILD | 94 ++++++++++++++++ src/lists.sr.ht/LICENSE.txt | 26 +++++ src/lists.sr.ht/lists.sr.ht-api.confd | 8 ++ src/lists.sr.ht/lists.sr.ht-api.initd | 24 +++++ src/lists.sr.ht/lists.sr.ht-lmtp.confd | 2 + src/lists.sr.ht/lists.sr.ht-lmtp.initd | 21 ++++ src/lists.sr.ht/lists.sr.ht-process.confd | 5 + src/lists.sr.ht/lists.sr.ht-process.initd | 23 ++++ src/lists.sr.ht/lists.sr.ht-webhooks.confd | 5 + src/lists.sr.ht/lists.sr.ht-webhooks.initd | 23 ++++ src/lists.sr.ht/lists.sr.ht.confd | 11 ++ src/lists.sr.ht/lists.sr.ht.gunicorn.conf.py | 5 + src/lists.sr.ht/lists.sr.ht.initd | 32 ++++++ src/lists.sr.ht/lists.sr.ht.post-install | 3 + src/lists.sr.ht/lists.sr.ht.post-upgrade | 3 + src/meta.sr.ht/APKBUILD | 85 +++++++++++++++ src/meta.sr.ht/LICENSE.txt | 26 +++++ src/meta.sr.ht/meta.sr.ht-api.confd | 8 ++ src/meta.sr.ht/meta.sr.ht-api.initd | 26 +++++ src/meta.sr.ht/meta.sr.ht-webhooks.confd | 5 + src/meta.sr.ht/meta.sr.ht-webhooks.initd | 23 ++++ src/meta.sr.ht/meta.sr.ht.confd | 11 ++ src/meta.sr.ht/meta.sr.ht.gunicorn.conf.py | 5 + src/meta.sr.ht/meta.sr.ht.initd | 32 ++++++ src/meta.sr.ht/meta.sr.ht.post-install | 3 + src/meta.sr.ht/meta.sr.ht.post-upgrade | 3 + src/py3-aiosmtpd/APKBUILD | 34 ++++++ src/py3-aiosmtpd/LICENSE.txt | 26 +++++ src/py3-amqp/APKBUILD | 30 ++++++ src/py3-amqp/LICENSE.txt | 26 +++++ src/py3-ansi2html/APKBUILD | 40 +++++++ src/py3-ansi2html/LICENSE.txt | 26 +++++ src/py3-asyncpg/APKBUILD | 32 ++++++ src/py3-asyncpg/LICENSE.txt | 26 +++++ src/py3-atpublic/APKBUILD | 43 ++++++++ src/py3-atpublic/LICENSE.txt | 26 +++++ src/py3-atpublic/pyproject.toml | 97 +++++++++++++++++ src/py3-billiard/APKBUILD | 31 ++++++ src/py3-billiard/LICENSE.txt | 26 +++++ src/py3-case/APKBUILD | 31 ++++++ src/py3-case/LICENSE.txt | 26 +++++ src/py3-celery/7446.patch | 34 ++++++ src/py3-celery/APKBUILD | 43 ++++++++ src/py3-celery/LICENSE.txt | 26 +++++ src/py3-click-didyoumean/APKBUILD | 28 +++++ src/py3-click-didyoumean/LICENSE.txt | 26 +++++ src/py3-click-repl/APKBUILD | 30 ++++++ src/py3-click-repl/LICENSE.txt | 26 +++++ src/py3-colour/APKBUILD | 42 ++++++++ src/py3-colour/LICENSE.txt | 26 +++++ src/py3-colour/setup.cfg | 40 +++++++ src/py3-colour/setup.py | 57 ++++++++++ src/py3-furl/APKBUILD | 30 ++++++ src/py3-furl/LICENSE.txt | 26 +++++ src/py3-humanize/APKBUILD | 30 ++++++ src/py3-humanize/LICENSE.txt | 26 +++++ src/py3-infinity/APKBUILD | 30 ++++++ src/py3-infinity/LICENSE.txt | 26 +++++ src/py3-intervals/APKBUILD | 30 ++++++ src/py3-intervals/LICENSE.txt | 26 +++++ src/py3-kombu/APKBUILD | 32 ++++++ src/py3-kombu/LICENSE.txt | 26 +++++ src/py3-minio/APKBUILD | 30 ++++++ src/py3-minio/LICENSE.txt | 26 +++++ src/py3-mistletoe/APKBUILD | 30 ++++++ src/py3-mistletoe/LICENSE.txt | 26 +++++ src/py3-orderedmultidict/APKBUILD | 30 ++++++ src/py3-orderedmultidict/LICENSE.txt | 26 +++++ src/py3-pgpy/APKBUILD | 34 ++++++ src/py3-pgpy/LICENSE.txt | 26 +++++ src/py3-pgpy/cryptography.patch | 101 ++++++++++++++++++ src/py3-scmsrht/APKBUILD | 38 +++++++ src/py3-scmsrht/LICENSE.txt | 26 +++++ src/py3-sqlalchemy-utils/APKBUILD | 41 +++++++ src/py3-sqlalchemy-utils/LICENSE.txt | 26 +++++ src/py3-srht/APKBUILD | 64 +++++++++++ src/py3-srht/LICENSE.txt | 26 +++++ src/py3-vine/APKBUILD | 32 ++++++ src/py3-vine/LICENSE.txt | 26 +++++ src/py3-zxcvbn/APKBUILD | 30 ++++++ src/py3-zxcvbn/LICENSE.txt | 26 +++++ src/todo.sr.ht/APKBUILD | 83 ++++++++++++++ src/todo.sr.ht/LICENSE.txt | 26 +++++ src/todo.sr.ht/todo.sr.ht-api.confd | 8 ++ src/todo.sr.ht/todo.sr.ht-api.initd | 24 +++++ src/todo.sr.ht/todo.sr.ht-lmtp.confd | 5 + src/todo.sr.ht/todo.sr.ht-lmtp.initd | 22 ++++ src/todo.sr.ht/todo.sr.ht-webhooks.confd | 5 + src/todo.sr.ht/todo.sr.ht-webhooks.initd | 23 ++++ src/todo.sr.ht/todo.sr.ht.confd | 11 ++ src/todo.sr.ht/todo.sr.ht.gunicorn.conf.py | 5 + src/todo.sr.ht/todo.sr.ht.initd | 32 ++++++ src/todo.sr.ht/todo.sr.ht.post-install | 3 + src/todo.sr.ht/todo.sr.ht.post-upgrade | 3 + 120 files changed, 3173 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE.md create mode 100644 Makefile create mode 100644 README.md create mode 100755 src/builds.sr.ht/APKBUILD create mode 100644 src/builds.sr.ht/LICENSE.txt create mode 100644 src/builds.sr.ht/builds.sr.ht-api.confd create mode 100755 src/builds.sr.ht/builds.sr.ht-api.initd create mode 100644 src/builds.sr.ht/builds.sr.ht-worker.confd create mode 100755 src/builds.sr.ht/builds.sr.ht-worker.initd create mode 100644 src/builds.sr.ht/builds.sr.ht.confd create mode 100644 src/builds.sr.ht/builds.sr.ht.gunicorn.conf.py create mode 100755 src/builds.sr.ht/builds.sr.ht.initd create mode 100644 src/builds.sr.ht/builds.sr.ht.post-upgrade create mode 100644 src/builds.sr.ht/builds.sr.ht.pre-install create mode 100644 src/git.sr.ht/APKBUILD create mode 100644 src/git.sr.ht/LICENSE.txt create mode 100644 src/git.sr.ht/git.sr.ht-api.confd create mode 100755 src/git.sr.ht/git.sr.ht-api.initd create mode 100644 src/git.sr.ht/git.sr.ht-webhooks.confd create mode 100755 src/git.sr.ht/git.sr.ht-webhooks.initd create mode 100644 src/git.sr.ht/git.sr.ht.confd create mode 100644 src/git.sr.ht/git.sr.ht.gunicorn.conf.py create mode 100755 src/git.sr.ht/git.sr.ht.initd create mode 100644 src/git.sr.ht/git.sr.ht.post-install create mode 100644 src/git.sr.ht/git.sr.ht.post-upgrade create mode 100644 src/lists.sr.ht/APKBUILD create mode 100644 src/lists.sr.ht/LICENSE.txt create mode 100644 src/lists.sr.ht/lists.sr.ht-api.confd create mode 100755 src/lists.sr.ht/lists.sr.ht-api.initd create mode 100644 src/lists.sr.ht/lists.sr.ht-lmtp.confd create mode 100755 src/lists.sr.ht/lists.sr.ht-lmtp.initd create mode 100644 src/lists.sr.ht/lists.sr.ht-process.confd create mode 100755 src/lists.sr.ht/lists.sr.ht-process.initd create mode 100644 src/lists.sr.ht/lists.sr.ht-webhooks.confd create mode 100755 src/lists.sr.ht/lists.sr.ht-webhooks.initd create mode 100644 src/lists.sr.ht/lists.sr.ht.confd create mode 100644 src/lists.sr.ht/lists.sr.ht.gunicorn.conf.py create mode 100755 src/lists.sr.ht/lists.sr.ht.initd create mode 100644 src/lists.sr.ht/lists.sr.ht.post-install create mode 100644 src/lists.sr.ht/lists.sr.ht.post-upgrade create mode 100644 src/meta.sr.ht/APKBUILD create mode 100644 src/meta.sr.ht/LICENSE.txt create mode 100644 src/meta.sr.ht/meta.sr.ht-api.confd create mode 100755 src/meta.sr.ht/meta.sr.ht-api.initd create mode 100644 src/meta.sr.ht/meta.sr.ht-webhooks.confd create mode 100755 src/meta.sr.ht/meta.sr.ht-webhooks.initd create mode 100644 src/meta.sr.ht/meta.sr.ht.confd create mode 100644 src/meta.sr.ht/meta.sr.ht.gunicorn.conf.py create mode 100755 src/meta.sr.ht/meta.sr.ht.initd create mode 100644 src/meta.sr.ht/meta.sr.ht.post-install create mode 100644 src/meta.sr.ht/meta.sr.ht.post-upgrade create mode 100644 src/py3-aiosmtpd/APKBUILD create mode 100644 src/py3-aiosmtpd/LICENSE.txt create mode 100644 src/py3-amqp/APKBUILD create mode 100644 src/py3-amqp/LICENSE.txt create mode 100644 src/py3-ansi2html/APKBUILD create mode 100644 src/py3-ansi2html/LICENSE.txt create mode 100644 src/py3-asyncpg/APKBUILD create mode 100644 src/py3-asyncpg/LICENSE.txt create mode 100644 src/py3-atpublic/APKBUILD create mode 100644 src/py3-atpublic/LICENSE.txt create mode 100644 src/py3-atpublic/pyproject.toml create mode 100644 src/py3-billiard/APKBUILD create mode 100644 src/py3-billiard/LICENSE.txt create mode 100644 src/py3-case/APKBUILD create mode 100644 src/py3-case/LICENSE.txt create mode 100644 src/py3-celery/7446.patch create mode 100644 src/py3-celery/APKBUILD create mode 100644 src/py3-celery/LICENSE.txt create mode 100644 src/py3-click-didyoumean/APKBUILD create mode 100644 src/py3-click-didyoumean/LICENSE.txt create mode 100644 src/py3-click-repl/APKBUILD create mode 100644 src/py3-click-repl/LICENSE.txt create mode 100644 src/py3-colour/APKBUILD create mode 100644 src/py3-colour/LICENSE.txt create mode 100644 src/py3-colour/setup.cfg create mode 100644 src/py3-colour/setup.py create mode 100644 src/py3-furl/APKBUILD create mode 100644 src/py3-furl/LICENSE.txt create mode 100644 src/py3-humanize/APKBUILD create mode 100644 src/py3-humanize/LICENSE.txt create mode 100644 src/py3-infinity/APKBUILD create mode 100644 src/py3-infinity/LICENSE.txt create mode 100644 src/py3-intervals/APKBUILD create mode 100644 src/py3-intervals/LICENSE.txt create mode 100644 src/py3-kombu/APKBUILD create mode 100644 src/py3-kombu/LICENSE.txt create mode 100644 src/py3-minio/APKBUILD create mode 100644 src/py3-minio/LICENSE.txt create mode 100644 src/py3-mistletoe/APKBUILD create mode 100644 src/py3-mistletoe/LICENSE.txt create mode 100644 src/py3-orderedmultidict/APKBUILD create mode 100644 src/py3-orderedmultidict/LICENSE.txt create mode 100644 src/py3-pgpy/APKBUILD create mode 100644 src/py3-pgpy/LICENSE.txt create mode 100644 src/py3-pgpy/cryptography.patch create mode 100644 src/py3-scmsrht/APKBUILD create mode 100644 src/py3-scmsrht/LICENSE.txt create mode 100644 src/py3-sqlalchemy-utils/APKBUILD create mode 100644 src/py3-sqlalchemy-utils/LICENSE.txt create mode 100644 src/py3-srht/APKBUILD create mode 100644 src/py3-srht/LICENSE.txt create mode 100644 src/py3-vine/APKBUILD create mode 100644 src/py3-vine/LICENSE.txt create mode 100644 src/py3-zxcvbn/APKBUILD create mode 100644 src/py3-zxcvbn/LICENSE.txt create mode 100644 src/todo.sr.ht/APKBUILD create mode 100644 src/todo.sr.ht/LICENSE.txt create mode 100644 src/todo.sr.ht/todo.sr.ht-api.confd create mode 100755 src/todo.sr.ht/todo.sr.ht-api.initd create mode 100644 src/todo.sr.ht/todo.sr.ht-lmtp.confd create mode 100755 src/todo.sr.ht/todo.sr.ht-lmtp.initd create mode 100644 src/todo.sr.ht/todo.sr.ht-webhooks.confd create mode 100755 src/todo.sr.ht/todo.sr.ht-webhooks.initd create mode 100644 src/todo.sr.ht/todo.sr.ht.confd create mode 100644 src/todo.sr.ht/todo.sr.ht.gunicorn.conf.py create mode 100755 src/todo.sr.ht/todo.sr.ht.initd create mode 100644 src/todo.sr.ht/todo.sr.ht.post-install create mode 100644 src/todo.sr.ht/todo.sr.ht.post-upgrade diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b58907c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +pkg +builder/abuild/*.rsa +builder/abuild/*.rsa.pub diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..41dc2f1 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,31 @@ +BSD 3-Clause License +==================== + +_Copyright (c) 2021, Dominic Ricottone_ +_All rights reserved._ + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..8ecd1da --- /dev/null +++ b/Makefile @@ -0,0 +1,27 @@ +REPO=/hdd/media/pkg/alpine/v3.17 + +ls: + simple-builder -repository $(REPO)/x86_64 + simple-builder -repository $(REPO)/aarch64 + +clean: + rm -rf pkg + +pkg: + mkdir -p pkg/src/x86_64 + rsync --recursive --update --times --verbose $(REPO)/x86_64 ./pkg/src/ + mkdir -p pkg/src/aarch64 + rsync --recursive --update --times --verbose $(REPO)/aarch64 ./pkg/src/ + +PWD=$(dir $(abspath $(lastword $(MAKEFILE_LIST)))) +shell: + docker run --rm --interactive --tty --entrypoint sh \ + --mount type=bind,src=$(PWD)src,dst=/home/builder/src \ + --mount type=bind,src=$(PWD)pkg,dst=/home/builder/packages/src \ + $(MOUNTS) apkbuilder + +build: pkg + simple-builder -repository $(REPO)/x86_64 -build + simple-builder -repository $(REPO)/aarch64 -build + +.PHONY: clean ls shell build diff --git a/README.md b/README.md new file mode 100644 index 0000000..ceaf9ec --- /dev/null +++ b/README.md @@ -0,0 +1,43 @@ +# apkbuilds + +## Workflow + +Depends on my other projects. + +``` +docker login https://registry.intra.dominic-ricottone.com +docker pull registry.intra.dominic-ricottone.com/apkbuilder:latest +``` + +``` +git clone https://git.dominic-ricottone.com/~dricottone/simple-builder +cd simple-builder +make +make install +``` + +Initialize a local copy of the repository with `make pkg`. + +Delete any old packages that should no longer be served. +I recommend keeping 2 versions of any package, so that downgrades can be +executed if a runtime bug is discovered. + +List packages that can be build with `make ls`. + +Begin building packages with `make build`. +On success, built packages are automatically pushed to the repository. +Address failures as needed. + + +## License + +I share the contents of this repository under the BSD 3 clause license, except +where alternate attribution and licensing is required. + +Namely, the `APKBUILD`s for sr.ht software is highly derivative of Drew +DeVault. +The original license is reproduced in this repository, co-located with the +corresponding files. +The original license can also be viewed online at +https://git.sr.ht/~sircmpwn/sr.ht-apkbuilds/tree/master/item/LICENSE . + diff --git a/src/builds.sr.ht/APKBUILD b/src/builds.sr.ht/APKBUILD new file mode 100755 index 0000000..ba6d128 --- /dev/null +++ b/src/builds.sr.ht/APKBUILD @@ -0,0 +1,99 @@ +# Maintainer: Drew DeVault +pkgname=builds.sr.ht +pkgver=0.85.6 +pkgrel=0 +pkgdesc="sr.ht build service" +url="https://git.sr.ht/~sircmpwn/builds.sr.ht" +arch="all" +license="AGPLv3" +depends=" + py3-ansi2html + py3-celery + py3-gunicorn + py3-lxml + py3-redis + py3-srht + py3-yaml +" +makedepends="py-setuptools sassc go minify" +subpackages=" + $pkgname-images:_images + $pkgname-worker:_worker + $pkgname-openrc + $pkgname-nginx:_nginx:noarch +" +source=" + $pkgname-$pkgver.tar.gz::https://git.sr.ht/~sircmpwn/$pkgname/archive/${pkgver}.tar.gz + sr.ht-nginx-$pkgver.tar.gz::https://git.sr.ht/~sircmpwn/sr.ht-nginx/archive/master.tar.gz + builds.sr.ht.confd + builds.sr.ht.initd + builds.sr.ht-api.confd + builds.sr.ht-api.initd + builds.sr.ht-worker.confd + builds.sr.ht-worker.initd + builds.sr.ht.gunicorn.conf.py +" +install="$pkgname.pre-install $pkgname.post-upgrade" +builddir="$srcdir/$pkgname-$pkgver" +export PKGVER=$pkgver +options="$options !check" + +build() { + python3 setup.py build + pyver="$(python3 --version | cut -d. -f1-2 | cut -d' ' -f2-)" + make SRHT_PATH=/usr/lib/python$pyver/site-packages/srht +} + +package() { + cd "$builddir" + python3 setup.py install --root="$pkgdir" --optimize=1 + install -Dm755 api/api "$pkgdir"/usr/bin/buildssrht-api + install -Dm755 "$srcdir"/builds.sr.ht.initd \ + "$pkgdir"/etc/init.d/builds.sr.ht + install -Dm644 "$srcdir"/builds.sr.ht.confd \ + "$pkgdir"/etc/conf.d/builds.sr.ht + install -Dm755 "$srcdir"/builds.sr.ht-api.initd \ + "$pkgdir"/etc/init.d/builds.sr.ht-api + install -Dm644 "$srcdir"/builds.sr.ht-api.confd \ + "$pkgdir"/etc/conf.d/builds.sr.ht-api + install -Dm644 "$srcdir"/builds.sr.ht.gunicorn.conf.py \ + "$pkgdir"/etc/sr.ht/builds.sr.ht.gunicorn.conf.py +} + +_images() { + depends="builds.sr.ht" + pkgdesc="builds.sr.ht build images" + cd "$builddir" + mkdir -p "$subpkgdir"/var/lib/ + cp -R images "$subpkgdir"/var/lib/ +} + +_worker() { + depends="builds.sr.ht-images" + pkgdesc="builds.sr.ht build worker" + cd "$builddir" + install -Dm755 worker/worker "$subpkgdir"/usr/bin/builds.sr.ht-worker + install -Dm755 "$srcdir"/builds.sr.ht-worker.initd \ + "$subpkgdir"/etc/init.d/builds.sr.ht-worker + install -Dm644 "$srcdir"/builds.sr.ht-worker.confd \ + "$subpkgdir"/etc/conf.d/builds.sr.ht-worker +} + +_nginx() { + depends="sr.ht-nginx" + pkgdesc="nginx configuration for $pkgname" + install -Dm644 "$srcdir/sr.ht-nginx-master/builds.sr.ht.conf" \ + "$subpkgdir"/etc/nginx/http.d/builds.sr.ht.conf +} + +sha512sums=" +8c17db53a93e79551370c60379f70a72870b7edb34f93df971255d2f42f15dcf0e88cc42149fbbdaae6553987eaf3ada02f9608b9397e2d9afb5202badd66be8 builds.sr.ht-0.85.6.tar.gz +43f867c307a3c4104938522d71a6f128130af3c969598fe52ef9caf9b4788b34448aa6c25ba16403706d9ff83cf313d9b5170c74d30d011628121efdfa3bf626 sr.ht-nginx-0.85.6.tar.gz +d205043f3fe0dc022d25f8714ad5fb095a7dc92a10fe4eb4a1c6d6a500b54692773c1e314e9337a320f9b6043225a9a5a9e50d9a5dc30e7c80305b7ad538ea0f builds.sr.ht.confd +ea8b25d92e53d62bff2466d048d9a34482d9d06a2d6bdb828ce9d036009cdb2ca7435c288f79b51860539399acdb3c27eda268e8ec7a7fcfa2969961959b2d0e builds.sr.ht.initd +a507ea33f4e87d41d68b42f816914d357ff687e249e424f2278e3c44e980774080377ca5daa02212776095402ba7e271355d427750270005cf6f6db079040a08 builds.sr.ht-api.confd +e48c2c1ab073a2e8c900bea336004be6f792c5151dc3af4ea3625fd403959b6959d816acfbd8e3f0faae35ed10626c64616fad701bf5212b0c198b554483721d builds.sr.ht-api.initd +5aa18804ddfee263763b035780679b98cf4877de193c254f24fab7ce56f304556af9a377bfca36635c21b4380892e8d458a420021919934080cc43feda1694c4 builds.sr.ht-worker.confd +074627ee36977e9ded111fa746afab36719065d3eb063b212fefd2371f59cb88a12067ca66951b014dab0d6668c682e3fbd18c7b3cf430e432490aca8e0f1ed4 builds.sr.ht-worker.initd +21f39ea0981d7773eb512e5ba234022364d0f7ee9b6ca897ce4c51e3b127eb2d9a7a5fbcaa06d14f20b2df2439421d7261f200e3f4f13b45a91e78ba77bc363c builds.sr.ht.gunicorn.conf.py +" diff --git a/src/builds.sr.ht/LICENSE.txt b/src/builds.sr.ht/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/builds.sr.ht/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/builds.sr.ht/builds.sr.ht-api.confd b/src/builds.sr.ht/builds.sr.ht-api.confd new file mode 100644 index 0000000..add62f3 --- /dev/null +++ b/src/builds.sr.ht/builds.sr.ht-api.confd @@ -0,0 +1,8 @@ +# Run the daemon as this user: +# BUILDS_USER=builds + +# Bind the API service to this address: +# BUILDS_BIND=:5102 + +# Extra arguments to pass to Gunicorn +# BUILDS_ARGS= diff --git a/src/builds.sr.ht/builds.sr.ht-api.initd b/src/builds.sr.ht/builds.sr.ht-api.initd new file mode 100755 index 0000000..e32576b --- /dev/null +++ b/src/builds.sr.ht/builds.sr.ht-api.initd @@ -0,0 +1,26 @@ +#!/sbin/openrc-run +name="builds.sr.ht-api" +description="builds.sr.ht API service" +supervisor=supervise-daemon +BUILDS_USER=${BUILDS_USER:-builds} +BUILDS_BIND=${BUILDS_BIND:-:5102} +BUILDS_ARGS=${BUILDS_ARGS:-} +LOCAL_PG=${LOCAL_PG:-yes} +LOCAL_REDIS=${LOCAL_REDIS:-yes} +LOGS=/var/log/builds.sr.ht-api.log +supervise_daemon_args="-1 $LOGS -2 $LOGS" +command="/usr/bin/buildssrht-api" +command_args="-b $BUILDS_BIND" +command_user="$BUILDS_USER:$BUILDS_USER" +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + need net + use redis + use postgresql + use pgbouncer +} + +start_pre() { + checkpath -f "$LOGS" -m 644 -o "$BUILDS_USER:$BUILDS_USER" +} diff --git a/src/builds.sr.ht/builds.sr.ht-worker.confd b/src/builds.sr.ht/builds.sr.ht-worker.confd new file mode 100644 index 0000000..aaf4293 --- /dev/null +++ b/src/builds.sr.ht/builds.sr.ht-worker.confd @@ -0,0 +1,5 @@ +# Run the daemon as this user: +# BUILDS_USER=builds + +# A common extra parameter might be EXTRA_ARGS=-workers [n] where n != nproc +# EXTRA_ARGS= diff --git a/src/builds.sr.ht/builds.sr.ht-worker.initd b/src/builds.sr.ht/builds.sr.ht-worker.initd new file mode 100755 index 0000000..cec6543 --- /dev/null +++ b/src/builds.sr.ht/builds.sr.ht-worker.initd @@ -0,0 +1,24 @@ +#!/sbin/openrc-run +name="builds.sr.ht-worker" +description="builds.sr.ht build worker" +supervisor=supervise-daemon +EXTRA_ARGS=${EXTRA_ARGS:-} +BUILDS_USER=builds +LOGS=/var/log/builds.sr.ht-worker.log +supervise_daemon_args="-1 $LOGS -2 $LOGS" +command="/usr/bin/builds.sr.ht-worker" +command_args="$EXTRA_ARGS" +command_user="$BUILDS_USER:$BUILDS_USER" +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + need net + use redis + use postgresql + use pgbouncer +} + +start_pre() { + checkpath -f "$LOGS" -m 644 -o "$BUILDS_USER:$BUILDS_USER" +} + diff --git a/src/builds.sr.ht/builds.sr.ht.confd b/src/builds.sr.ht/builds.sr.ht.confd new file mode 100644 index 0000000..cf80f7e --- /dev/null +++ b/src/builds.sr.ht/builds.sr.ht.confd @@ -0,0 +1,11 @@ +# Run the daemon as this user: +# BUILDS_USER=builds + +# Bind the web service to this address: +# BUILDS_BIND=127.0.0.1:5002 + +# Gunicorn configuration file +# BUILDS_GUNICORN_CONF=/etc/sr.ht/builds.sr.ht.gunicorn.conf.py + +# Extra arguments to pass to Gunicorn +# BUILDS_ARGS= diff --git a/src/builds.sr.ht/builds.sr.ht.gunicorn.conf.py b/src/builds.sr.ht/builds.sr.ht.gunicorn.conf.py new file mode 100644 index 0000000..aa3e7ae --- /dev/null +++ b/src/builds.sr.ht/builds.sr.ht.gunicorn.conf.py @@ -0,0 +1,5 @@ +from prometheus_client import multiprocess + + +def child_exit(server, worker): + multiprocess.mark_process_dead(worker.pid) diff --git a/src/builds.sr.ht/builds.sr.ht.initd b/src/builds.sr.ht/builds.sr.ht.initd new file mode 100755 index 0000000..51c99d7 --- /dev/null +++ b/src/builds.sr.ht/builds.sr.ht.initd @@ -0,0 +1,32 @@ +#!/sbin/openrc-run +name="builds.sr.ht" +description="builds.sr.ht service" +supervisor=supervise-daemon +BUILDS_USER=${BUILDS_USER:-builds} +BUILDS_BIND=${BUILDS_BIND:-127.0.0.1:5002} +BUILDS_GUNICORN_CONF=${BUILDS_GUNICORN_CONF:-/etc/sr.ht/builds.sr.ht.gunicorn.conf.py} +BUILDS_ARGS=${BUILDS_ARGS:-} +LOGS=/var/log/builds.sr.ht.log +prometheus_multiproc_dir=/run/builds.sr.ht +supervise_daemon_args="-1 $LOGS -2 $LOGS -e prometheus_multiproc_dir=$prometheus_multiproc_dir" +command="/usr/bin/gunicorn" +command_args="buildsrht.app:app -b $BUILDS_BIND -c $BUILDS_GUNICORN_CONF $BUILDS_ARGS" +command_user="$BUILDS_USER:$BUILDS_USER" +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + need net + use redis + use postgresql + use pgbouncer +} + +start_pre() { + checkpath -f "$LOGS" -m 644 -o "$BUILDS_USER:$BUILDS_USER" + # Workaround for https://github.com/OpenRC/openrc/issues/335 + if [ -n "$prometheus_multiproc_dir" ] + then + checkpath -d "$prometheus_multiproc_dir" -m 775 -o "$BUILDS_USER:$BUILDS_USER" + rm -rf "$prometheus_multiproc_dir"/* + fi +} diff --git a/src/builds.sr.ht/builds.sr.ht.post-upgrade b/src/builds.sr.ht/builds.sr.ht.post-upgrade new file mode 100644 index 0000000..de36bb0 --- /dev/null +++ b/src/builds.sr.ht/builds.sr.ht.post-upgrade @@ -0,0 +1,3 @@ +#!/bin/sh +srht-migrate builds.sr.ht -a upgrade head +buildsrht-migrate -a upgrade head diff --git a/src/builds.sr.ht/builds.sr.ht.pre-install b/src/builds.sr.ht/builds.sr.ht.pre-install new file mode 100644 index 0000000..9210426 --- /dev/null +++ b/src/builds.sr.ht/builds.sr.ht.pre-install @@ -0,0 +1,3 @@ +#!/bin/sh +addgroup -S builds || true +adduser -SDH -s /sbin/nologin -g builds builds || true diff --git a/src/git.sr.ht/APKBUILD b/src/git.sr.ht/APKBUILD new file mode 100644 index 0000000..5040084 --- /dev/null +++ b/src/git.sr.ht/APKBUILD @@ -0,0 +1,81 @@ +# Maintainer: Drew DeVault +pkgname=git.sr.ht +pkgver=0.83.5 +pkgrel=0 +pkgdesc="sr.ht git service" +url="https://git.sr.ht/~sircmpwn/git.sr.ht" +arch="all" +license="AGPLv3" +depends=" + git + py3-minio + py3-pygit2 + py3-redis + py3-scmsrht +" +makedepends="py-setuptools sassc go minify" +subpackages="$pkgname-openrc $pkgname-nginx:_nginx:noarch" +source=" + $pkgname-$pkgver.tar.gz::https://git.sr.ht/~sircmpwn/$pkgname/archive/$pkgver.tar.gz + sr.ht-nginx-$pkgver.tar.gz::https://git.sr.ht/~sircmpwn/sr.ht-nginx/archive/master.tar.gz + git.sr.ht.initd + git.sr.ht.confd + git.sr.ht-api.initd + git.sr.ht-api.confd + git.sr.ht-webhooks.initd + git.sr.ht-webhooks.confd + git.sr.ht.gunicorn.conf.py +" +export PKGVER=$pkgver +options="$options !check" +install="$pkgname.post-install $pkgname.post-upgrade" + +build() { + python3 setup.py build + pyver="$(python3 --version | cut -d. -f1-2 | cut -d' ' -f2-)" + make SRHT_PATH=/usr/lib/python$pyver/site-packages/srht +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 + mkdir -p "$pkgdir"/etc/init.d + install -Dm755 "$srcdir"/git.sr.ht.initd \ + "$pkgdir"/etc/init.d/git.sr.ht + install -Dm644 "$srcdir"/git.sr.ht.confd \ + "$pkgdir"/etc/conf.d/git.sr.ht + install -Dm755 "$srcdir"/git.sr.ht-api.initd \ + "$pkgdir"/etc/init.d/git.sr.ht-api + install -Dm644 "$srcdir"/git.sr.ht-api.confd \ + "$pkgdir"/etc/conf.d/git.sr.ht-api + install -Dm755 "$srcdir"/git.sr.ht-webhooks.initd \ + "$pkgdir"/etc/init.d/git.sr.ht-webhooks + install -Dm644 "$srcdir"/git.sr.ht-webhooks.confd \ + "$pkgdir"/etc/conf.d/git.sr.ht-webhooks + install -Dm644 "$srcdir"/git.sr.ht.gunicorn.conf.py \ + "$pkgdir"/etc/sr.ht/git.sr.ht.gunicorn.conf.py + + install -Dm755 gitsrht-dispatch/gitsrht-dispatch "$pkgdir"/usr/bin/gitsrht-dispatch + install -Dm755 gitsrht-shell/gitsrht-shell "$pkgdir"/usr/bin/gitsrht-shell + install -Dm755 gitsrht-keys/gitsrht-keys "$pkgdir"/usr/bin/gitsrht-keys + install -Dm755 gitsrht-update-hook/gitsrht-update-hook "$pkgdir"/usr/bin/gitsrht-update-hook + install -Dm755 api/api "$pkgdir"/usr/bin/gitsrht-api +} + +_nginx() { + depends="sr.ht-nginx" + pkgdesc="nginx configuration for $pkgname" + install -Dm644 "$srcdir/sr.ht-nginx-master/git.sr.ht.conf" \ + "$subpkgdir"/etc/nginx/http.d/git.sr.ht.conf +} + +sha512sums=" +898ef22c923b08114820aad9211ee6370d413c484578ec42901fdeca42dea2d61c4a77455f33fb8ae46ee31348d341e84d9e2f4c9a4f2fc5c583bba6b154a0c9 git.sr.ht-0.83.5.tar.gz +43f867c307a3c4104938522d71a6f128130af3c969598fe52ef9caf9b4788b34448aa6c25ba16403706d9ff83cf313d9b5170c74d30d011628121efdfa3bf626 sr.ht-nginx-0.83.5.tar.gz +bab6312b5a6d1bd9808cb6eae2b33f1fc4f544ac286ce9a67f4c07fc8d4679dc81d93f3d1ec7f8adad3dedead9203b5d10ab63aff478fb11780790e7a01a232a git.sr.ht.initd +7462f15928aa24b10e63041b0021aa5a69fa92d071f497d6b1dc353dac3bff30818cb560c6011effbd619d450e8b8c6f8f3ab07a1df9714ea79b00e4d12dcf44 git.sr.ht.confd +370a9f710704d7dfe88632f0ae2b7d2b406621322cab1f87f4f4c3984c741fba616f9c2a806d83e79250dc58aba89161a2db8ca424794dbd2cacbffb6e1a9adb git.sr.ht-api.initd +938a8aefdea3e4c6a9b15ac1c10d789282443c5b6cd1fee662d86af261cf69d8b67435f3bcececcd64544bd147addbd2792fcdbf67b9a36975e0e5e00f337719 git.sr.ht-api.confd +4038c7375d50ab393d076d31d776e82a2fcd54d6edcd55eb864fcc8d7254646799b4ee05a2e1f75f3a79e660e802a0fa05d9e34c16870aebe33dbf8191ed386a git.sr.ht-webhooks.initd +acd385323da772e1163b690eafca3b3a59e13bf236bb279c08a383a9ab2b356b4f1b7dce18f235882ba79c8ac35a6fa7594aad260962b38f7df70886e4fcace5 git.sr.ht-webhooks.confd +21f39ea0981d7773eb512e5ba234022364d0f7ee9b6ca897ce4c51e3b127eb2d9a7a5fbcaa06d14f20b2df2439421d7261f200e3f4f13b45a91e78ba77bc363c git.sr.ht.gunicorn.conf.py +" diff --git a/src/git.sr.ht/LICENSE.txt b/src/git.sr.ht/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/git.sr.ht/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/git.sr.ht/git.sr.ht-api.confd b/src/git.sr.ht/git.sr.ht-api.confd new file mode 100644 index 0000000..d42214d --- /dev/null +++ b/src/git.sr.ht/git.sr.ht-api.confd @@ -0,0 +1,8 @@ +# Run the daemon as this user: +# GIT_USER=git + +# Bind the API service to this address: +# GIT_BIND=:5101 + +# Extra arguments to pass to Gunicorn +# GIT_ARGS= diff --git a/src/git.sr.ht/git.sr.ht-api.initd b/src/git.sr.ht/git.sr.ht-api.initd new file mode 100755 index 0000000..1215301 --- /dev/null +++ b/src/git.sr.ht/git.sr.ht-api.initd @@ -0,0 +1,24 @@ +#!/sbin/openrc-run +name="git.sr.ht-api" +description="git.sr.ht API service" +supervisor=supervise-daemon +GIT_USER=${GIT_USER:-git} +GIT_BIND=${GIT_BIND:-:5101} +GIT_ARGS=${GIT_ARGS:-} +LOGS=/var/log/git.sr.ht-api.log +supervise_daemon_args="-1 $LOGS -2 $LOGS" +command="/usr/bin/gitsrht-api" +command_args="-b $GIT_BIND" +command_user="$GIT_USER:$GIT_USER" +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + need net + use redis + use postgresql + use pgbouncer +} + +start_pre() { + checkpath -f "$LOGS" -m 644 -o "$GIT_USER:$GIT_USER" +} diff --git a/src/git.sr.ht/git.sr.ht-webhooks.confd b/src/git.sr.ht/git.sr.ht-webhooks.confd new file mode 100644 index 0000000..1c3cf84 --- /dev/null +++ b/src/git.sr.ht/git.sr.ht-webhooks.confd @@ -0,0 +1,5 @@ +# Run the daemon as this user: +# GIT_USER=git + +# Extra arguments to pass to celery +# GIT_ARGS= diff --git a/src/git.sr.ht/git.sr.ht-webhooks.initd b/src/git.sr.ht/git.sr.ht-webhooks.initd new file mode 100755 index 0000000..438b3a4 --- /dev/null +++ b/src/git.sr.ht/git.sr.ht-webhooks.initd @@ -0,0 +1,23 @@ +#!/sbin/openrc-run +name="git.sr.ht-webhooks" +description="git.sr.ht webhook delivery service" +supervisor=supervise-daemon +GIT_USER=${GIT_USER:-git} +GIT_ARGS=${GIT_ARGS:-} +LOGS=/var/log/git.sr.ht-webhooks.log +supervise_daemon_args="-1 $LOGS -2 $LOGS" +command="/usr/bin/celery" +command_args="-A gitsrht.webhooks worker --loglevel=info $GIT_ARGS" +command_user="$GIT_USER:$GIT_USER" +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + need net + use redis + use postgresql + use pgbouncer +} + +start_pre() { + checkpath -f "$LOGS" -m 644 -o "$GIT_USER:$GIT_USER" +} diff --git a/src/git.sr.ht/git.sr.ht.confd b/src/git.sr.ht/git.sr.ht.confd new file mode 100644 index 0000000..966e2eb --- /dev/null +++ b/src/git.sr.ht/git.sr.ht.confd @@ -0,0 +1,11 @@ +# Run the daemon as this user: +# GIT_USER=git + +# Bind the web service to this address: +# GIT_BIND=127.0.0.1:5001 + +# Gunicorn configuration file +# GIT_GUNICORN_CONF=/etc/sr.ht/git.sr.ht.gunicorn.conf.py + +# Extra arguments to pass to Gunicorn +# GIT_ARGS= diff --git a/src/git.sr.ht/git.sr.ht.gunicorn.conf.py b/src/git.sr.ht/git.sr.ht.gunicorn.conf.py new file mode 100644 index 0000000..aa3e7ae --- /dev/null +++ b/src/git.sr.ht/git.sr.ht.gunicorn.conf.py @@ -0,0 +1,5 @@ +from prometheus_client import multiprocess + + +def child_exit(server, worker): + multiprocess.mark_process_dead(worker.pid) diff --git a/src/git.sr.ht/git.sr.ht.initd b/src/git.sr.ht/git.sr.ht.initd new file mode 100755 index 0000000..090fbb8 --- /dev/null +++ b/src/git.sr.ht/git.sr.ht.initd @@ -0,0 +1,32 @@ +#!/sbin/openrc-run +name="git.sr.ht" +description="git.sr.ht service" +supervisor=supervise-daemon +GIT_USER=${GIT_USER:-git} +GIT_BIND=${GIT_BIND:-127.0.0.1:5001} +GIT_GUNICORN_CONF=${GIT_GUNICORN_CONF:-/etc/sr.ht/git.sr.ht.gunicorn.conf.py} +GIT_ARGS=${GIT_ARGS:-} +LOGS=/var/log/git.sr.ht.log +prometheus_multiproc_dir=/run/git.sr.ht +supervise_daemon_args="-1 $LOGS -2 $LOGS -e prometheus_multiproc_dir=$prometheus_multiproc_dir" +command="/usr/bin/gunicorn" +command_args="gitsrht.app:app -b $GIT_BIND -c $GIT_GUNICORN_CONF $GIT_ARGS" +command_user="$GIT_USER:$GIT_USER" +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + need net + use redis + use postgresql + use pgbouncer +} + +start_pre() { + checkpath -f "$LOGS" -m 644 -o "$GIT_USER:$GIT_USER" + # Workaround for https://github.com/OpenRC/openrc/issues/335 + if [ -n "$prometheus_multiproc_dir" ] + then + checkpath -d "$prometheus_multiproc_dir" -m 775 -o "$GIT_USER:$GIT_USER" + rm -rf "$prometheus_multiproc_dir"/* + fi +} diff --git a/src/git.sr.ht/git.sr.ht.post-install b/src/git.sr.ht/git.sr.ht.post-install new file mode 100644 index 0000000..f887d66 --- /dev/null +++ b/src/git.sr.ht/git.sr.ht.post-install @@ -0,0 +1,3 @@ +#!/bin/sh +addgroup -S git || true +adduser -SD -h /var/lib/git -s /bin/sh -G git -g git git || true diff --git a/src/git.sr.ht/git.sr.ht.post-upgrade b/src/git.sr.ht/git.sr.ht.post-upgrade new file mode 100644 index 0000000..70ab5ac --- /dev/null +++ b/src/git.sr.ht/git.sr.ht.post-upgrade @@ -0,0 +1,3 @@ +#!/bin/sh +srht-migrate git.sr.ht -a upgrade head +gitsrht-migrate -a upgrade head diff --git a/src/lists.sr.ht/APKBUILD b/src/lists.sr.ht/APKBUILD new file mode 100644 index 0000000..33c6436 --- /dev/null +++ b/src/lists.sr.ht/APKBUILD @@ -0,0 +1,94 @@ +# Maintainer: Drew DeVault +pkgname=lists.sr.ht +pkgver=0.57.4 +pkgrel=0 +pkgdesc="sr.ht mailing list service" +url="https://git.sr.ht/~sircmpwn/lists.sr.ht" +arch="all" +license="AGPLv3" +depends=" + py3-pygit2 + py3-srht + py3-celery + py3-aiosmtpd + py3-asyncpg + py3-redis + py3-gunicorn +" +makedepends="py-setuptools sassc go minify" +subpackages="$pkgname-openrc $pkgname-nginx:_nginx" +source=" + $pkgname-$pkgver.tar.gz::https://git.sr.ht/~sircmpwn/$pkgname/archive/$pkgver.tar.gz + sr.ht-nginx-$pkgver.tar.gz::https://git.sr.ht/~sircmpwn/sr.ht-nginx/archive/master.tar.gz + lists.sr.ht.initd + lists.sr.ht.confd + lists.sr.ht-api.initd + lists.sr.ht-api.confd + lists.sr.ht-process.initd + lists.sr.ht-process.confd + lists.sr.ht-lmtp.initd + lists.sr.ht-lmtp.confd + lists.sr.ht-webhooks.initd + lists.sr.ht-webhooks.confd + lists.sr.ht.gunicorn.conf.py +" +export PKGVER=$pkgver +options="$options !check" +install="$pkgname.post-install $pkgname.post-upgrade" + +build() { + python3 setup.py build + pyver="$(python3 --version | cut -d. -f1-2 | cut -d' ' -f2-)" + make SRHT_PATH=/usr/lib/python$pyver/site-packages/srht +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 + install -Dm755 api/api "$pkgdir"/usr/bin/listssrht-api + mkdir -p "$pkgdir"/etc/init.d + install -Dm755 "$srcdir"/lists.sr.ht.initd \ + "$pkgdir"/etc/init.d/lists.sr.ht + install -Dm644 "$srcdir"/lists.sr.ht.confd \ + "$pkgdir"/etc/conf.d/lists.sr.ht + install -Dm755 "$srcdir"/lists.sr.ht-api.initd \ + "$pkgdir"/etc/init.d/lists.sr.ht-api + install -Dm644 "$srcdir"/lists.sr.ht-api.confd \ + "$pkgdir"/etc/conf.d/lists.sr.ht-api + install -Dm755 "$srcdir"/lists.sr.ht-lmtp.initd \ + "$pkgdir"/etc/init.d/lists.sr.ht-lmtp + install -Dm644 "$srcdir"/lists.sr.ht-lmtp.confd \ + "$pkgdir"/etc/conf.d/lists.sr.ht-lmtp + install -Dm755 "$srcdir"/lists.sr.ht-process.initd \ + "$pkgdir"/etc/init.d/lists.sr.ht-process + install -Dm644 "$srcdir"/lists.sr.ht-process.confd \ + "$pkgdir"/etc/conf.d/lists.sr.ht-process + install -Dm755 "$srcdir"/lists.sr.ht-webhooks.initd \ + "$pkgdir"/etc/init.d/lists.sr.ht-webhooks + install -Dm644 "$srcdir"/lists.sr.ht-webhooks.confd \ + "$pkgdir"/etc/conf.d/lists.sr.ht-webhooks + install -Dm644 "$srcdir"/lists.sr.ht.gunicorn.conf.py \ + "$pkgdir"/etc/sr.ht/lists.sr.ht.gunicorn.conf.py +} + +_nginx() { + depends="sr.ht-nginx" + pkgdesc="nginx configuration for $pkgname" + install -Dm644 "$srcdir/sr.ht-nginx-master/lists.sr.ht.conf" \ + "$subpkgdir"/etc/nginx/http.d/lists.sr.ht.conf +} + +sha512sums=" +02244a3d1f1a90f2ee16a8c2a9108eb8bae0aaa888de3bdfc3ebf860827679d853b6c424ae1edf2aa875a42f5884402790b8183b0bbc514b3d433f21386343d4 lists.sr.ht-0.57.4.tar.gz +43f867c307a3c4104938522d71a6f128130af3c969598fe52ef9caf9b4788b34448aa6c25ba16403706d9ff83cf313d9b5170c74d30d011628121efdfa3bf626 sr.ht-nginx-0.57.4.tar.gz +bc34e789d752eb35f534511eef7ee70f257db0fee9db2cc5829adf48dfd7b20a2e259d01ab0ca914e64768c5e99cdfca995bf49e9d879fb6aff4cef5bdecc631 lists.sr.ht.initd +0fdee2ea046f0f90ff56be74d3ad036c855103e76a4ca47b418f66f54c581a4e5d5674499fa68bcb4ca4dee1a35e9fffab0dfe45b66d071b841ffc113cdf9d79 lists.sr.ht.confd +2460050d9d6e6d2ebf623c2734a31fd2d1aeaaf8161a6a2d5fdc701b3d38f8844951f2361745aad175ce0edd3b92a0bfe326beb04a239f59fb902a000f32d6f9 lists.sr.ht-api.initd +ddd380a46dbf7f6c1fd883f2b1f80e984ba7e11bf71a53e60152549737b3253e9e7010ccdeae66811f3b2f6a8bafe241f57fc36a12b9f80379900355bb68c8ef lists.sr.ht-api.confd +b70ef07ee3247b33167111e301804d69416e8ebe020ea28587a4fd7d8fa0a81c7228309a5aa344d83f32578a7a66466f9484eac5332cfe264a538178645fd202 lists.sr.ht-process.initd +66d114850cc9002a2491458fb91947da35010e521f28a89828b0fd5ef76463a8298bd4f921f22a67c70cfc85cdf13a62a8eee71925eb6e531d81e36ff1e78982 lists.sr.ht-process.confd +4527cf69c943fcdf4ca8b9a02e3916fcadd03781995b34123b8b2a953e7962fd62f51cee5b22cb35ee702be8599015ae59dbd49583e7451a84bb1cc68f557c86 lists.sr.ht-lmtp.initd +47e703f2820bc6161909eb5434cba80b4c801fd4f18ee2b984afb217bbe43f21391ff86a8855d470b122131db1f2714a7c8c5aa58a6666123a8520327bdc0b11 lists.sr.ht-lmtp.confd +5f06d373d62096eea3c1bc6cabc220151f23705cd544be4b73d3ef488a4cffebfa5bd72455af7a1fc3b10fe08a894737fe627a1e2e2395a22d4bd08bd3042586 lists.sr.ht-webhooks.initd +66d114850cc9002a2491458fb91947da35010e521f28a89828b0fd5ef76463a8298bd4f921f22a67c70cfc85cdf13a62a8eee71925eb6e531d81e36ff1e78982 lists.sr.ht-webhooks.confd +21f39ea0981d7773eb512e5ba234022364d0f7ee9b6ca897ce4c51e3b127eb2d9a7a5fbcaa06d14f20b2df2439421d7261f200e3f4f13b45a91e78ba77bc363c lists.sr.ht.gunicorn.conf.py +" diff --git a/src/lists.sr.ht/LICENSE.txt b/src/lists.sr.ht/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/lists.sr.ht/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/lists.sr.ht/lists.sr.ht-api.confd b/src/lists.sr.ht/lists.sr.ht-api.confd new file mode 100644 index 0000000..066b3bd --- /dev/null +++ b/src/lists.sr.ht/lists.sr.ht-api.confd @@ -0,0 +1,8 @@ +# Run the daemon as this user: +# LISTS_USER=lists + +# Bind the API service to this address: +# LISTS_BIND=:5106 + +# Extra arguments to pass to Gunicorn +# LISTS_ARGS= diff --git a/src/lists.sr.ht/lists.sr.ht-api.initd b/src/lists.sr.ht/lists.sr.ht-api.initd new file mode 100755 index 0000000..4486de0 --- /dev/null +++ b/src/lists.sr.ht/lists.sr.ht-api.initd @@ -0,0 +1,24 @@ +#!/sbin/openrc-run +name="lists.sr.ht-api" +description="lists.sr.ht API service" +supervisor=supervise-daemon +LISTS_USER=${LISTS_USER:-lists} +LISTS_BIND=${LISTS_BIND:-:5106} +LISTS_ARGS=${LISTS_ARGS:-} +LOGS=/var/log/lists.sr.ht-api.log +supervise_daemon_args="-1 $LOGS -2 $LOGS" +command="/usr/bin/listssrht-api" +command_args="-b $LISTS_BIND" +command_user="$LISTS_USER:$LISTS_USER" +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + need net + use redis + use postgresql + use pgbouncer +} + +start_pre() { + checkpath -f "$LOGS" -m 644 -o "$LISTS_USER:$LISTS_USER" +} diff --git a/src/lists.sr.ht/lists.sr.ht-lmtp.confd b/src/lists.sr.ht/lists.sr.ht-lmtp.confd new file mode 100644 index 0000000..51707bc --- /dev/null +++ b/src/lists.sr.ht/lists.sr.ht-lmtp.confd @@ -0,0 +1,2 @@ +# Run the daemon as this user: +# LISTS_USER=lists diff --git a/src/lists.sr.ht/lists.sr.ht-lmtp.initd b/src/lists.sr.ht/lists.sr.ht-lmtp.initd new file mode 100755 index 0000000..d1cbf3d --- /dev/null +++ b/src/lists.sr.ht/lists.sr.ht-lmtp.initd @@ -0,0 +1,21 @@ +#!/sbin/openrc-run +name="lists.sr.ht-lmtp" +description="lists.sr.ht mail ingress service" +supervisor=supervise-daemon +LISTS_USER=${LISTS_USER:-lists} +LOGS=/var/log/lists.sr.ht-lmtp.log +supervise_daemon_args="-1 $LOGS -2 $LOGS" +command="/usr/bin/listssrht-lmtp" +command_user="$LISTS_USER:$LISTS_USER" +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + need net + use redis + use postgresql + use pgbouncer +} + +start_pre() { + checkpath -f "$LOGS" -m 644 -o "$LISTS_USER:$LISTS_USER" +} diff --git a/src/lists.sr.ht/lists.sr.ht-process.confd b/src/lists.sr.ht/lists.sr.ht-process.confd new file mode 100644 index 0000000..6566a92 --- /dev/null +++ b/src/lists.sr.ht/lists.sr.ht-process.confd @@ -0,0 +1,5 @@ +# Run the daemon as this user: +# LISTS_USER=lists + +# Extra arguments to pass to celery +# LISTS_ARGS= diff --git a/src/lists.sr.ht/lists.sr.ht-process.initd b/src/lists.sr.ht/lists.sr.ht-process.initd new file mode 100755 index 0000000..44a419d --- /dev/null +++ b/src/lists.sr.ht/lists.sr.ht-process.initd @@ -0,0 +1,23 @@ +#!/sbin/openrc-run +name="lists.sr.ht-process" +description="lists.sr.ht mail processing service" +supervisor=supervise-daemon +LISTS_USER=${LISTS_USER:-lists} +LISTS_ARGS=${LISTS_ARGS:-} +LOGS=/var/log/lists.sr.ht-process.log +supervise_daemon_args="-1 $LOGS -2 $LOGS" +command="/usr/bin/celery" +command_args="-A listssrht.process worker --loglevel=info $LISTS_ARGS" +command_user="$LISTS_USER:$LISTS_USER" +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + need net + use redis + use postgresql + use pgbouncer +} + +start_pre() { + checkpath -f "$LOGS" -m 644 -o "$LISTS_USER:$LISTS_USER" +} diff --git a/src/lists.sr.ht/lists.sr.ht-webhooks.confd b/src/lists.sr.ht/lists.sr.ht-webhooks.confd new file mode 100644 index 0000000..6566a92 --- /dev/null +++ b/src/lists.sr.ht/lists.sr.ht-webhooks.confd @@ -0,0 +1,5 @@ +# Run the daemon as this user: +# LISTS_USER=lists + +# Extra arguments to pass to celery +# LISTS_ARGS= diff --git a/src/lists.sr.ht/lists.sr.ht-webhooks.initd b/src/lists.sr.ht/lists.sr.ht-webhooks.initd new file mode 100755 index 0000000..077b228 --- /dev/null +++ b/src/lists.sr.ht/lists.sr.ht-webhooks.initd @@ -0,0 +1,23 @@ +#!/sbin/openrc-run +name="lists.sr.ht-webhooks" +description="lists.sr.ht webhook delivery service" +supervisor=supervise-daemon +LISTS_USER=${LISTS_USER:-lists} +LISTS_ARGS=${LISTS_ARGS:-} +LOGS=/var/log/lists.sr.ht-webhooks.log +supervise_daemon_args="-1 $LOGS -2 $LOGS" +command="/usr/bin/celery" +command_args="-A listssrht.webhooks worker --loglevel=info $LISTS_ARGS" +command_user="$LISTS_USER:$LISTS_USER" +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + need net + use redis + use postgresql + use pgbouncer +} + +start_pre() { + checkpath -f "$LOGS" -m 644 -o "$LISTS_USER:$LISTS_USER" +} diff --git a/src/lists.sr.ht/lists.sr.ht.confd b/src/lists.sr.ht/lists.sr.ht.confd new file mode 100644 index 0000000..5be9a6d --- /dev/null +++ b/src/lists.sr.ht/lists.sr.ht.confd @@ -0,0 +1,11 @@ +# Run the daemon as this user: +# LISTS_USER=lists + +# Bind the web service to this address: +# LISTS_BIND=127.0.0.1:5006 + +# Gunicorn configuration file +# LISTS_GUNICORN_CONF=/etc/sr.ht/lists.sr.ht.gunicorn.conf.py + +# Extra arguments to pass to Gunicorn +# LISTS_ARGS= diff --git a/src/lists.sr.ht/lists.sr.ht.gunicorn.conf.py b/src/lists.sr.ht/lists.sr.ht.gunicorn.conf.py new file mode 100644 index 0000000..aa3e7ae --- /dev/null +++ b/src/lists.sr.ht/lists.sr.ht.gunicorn.conf.py @@ -0,0 +1,5 @@ +from prometheus_client import multiprocess + + +def child_exit(server, worker): + multiprocess.mark_process_dead(worker.pid) diff --git a/src/lists.sr.ht/lists.sr.ht.initd b/src/lists.sr.ht/lists.sr.ht.initd new file mode 100755 index 0000000..82e8b82 --- /dev/null +++ b/src/lists.sr.ht/lists.sr.ht.initd @@ -0,0 +1,32 @@ +#!/sbin/openrc-run +name="lists.sr.ht" +description="lists.sr.ht service" +supervisor=supervise-daemon +LISTS_USER=${LISTS_USER:-lists} +LISTS_BIND=${LISTS_BIND:-127.0.0.1:5006} +LISTS_GUNICORN_CONF=${LISTS_GUNICORN_CONF:-/etc/sr.ht/lists.sr.ht.gunicorn.conf.py} +LISTS_ARGS=${LISTS_ARGS:-} +LOGS=/var/log/lists.sr.ht.log +prometheus_multiproc_dir=/run/lists.sr.ht +supervise_daemon_args="-1 $LOGS -2 $LOGS -e prometheus_multiproc_dir=$prometheus_multiproc_dir" +command="/usr/bin/gunicorn" +command_args="listssrht.app:app -b $LISTS_BIND -c $LISTS_GUNICORN_CONF $LISTS_ARGS" +command_user="$LISTS_USER:$LISTS_USER" +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + need net + use redis + use postgresql + use pgbouncer +} + +start_pre() { + checkpath -f "$LOGS" -m 644 -o "$LISTS_USER:$LISTS_USER" + # Workaround for https://github.com/OpenRC/openrc/issues/335 + if [ -n "$prometheus_multiproc_dir" ] + then + checkpath -d "$prometheus_multiproc_dir" -m 775 -o "$LISTS_USER:$LISTS_USER" + rm -rf "$prometheus_multiproc_dir"/* + fi +} diff --git a/src/lists.sr.ht/lists.sr.ht.post-install b/src/lists.sr.ht/lists.sr.ht.post-install new file mode 100644 index 0000000..0a273dd --- /dev/null +++ b/src/lists.sr.ht/lists.sr.ht.post-install @@ -0,0 +1,3 @@ +#!/bin/sh +addgroup -S lists || true +adduser -SDH -s /sbin/nologin -G lists -g lists lists || true diff --git a/src/lists.sr.ht/lists.sr.ht.post-upgrade b/src/lists.sr.ht/lists.sr.ht.post-upgrade new file mode 100644 index 0000000..d9e5bd3 --- /dev/null +++ b/src/lists.sr.ht/lists.sr.ht.post-upgrade @@ -0,0 +1,3 @@ +#!/bin/sh +srht-migrate lists.sr.ht -a upgrade head +listssrht-migrate -a upgrade head diff --git a/src/meta.sr.ht/APKBUILD b/src/meta.sr.ht/APKBUILD new file mode 100644 index 0000000..f000ad3 --- /dev/null +++ b/src/meta.sr.ht/APKBUILD @@ -0,0 +1,85 @@ +# Maintainer: Drew DeVault +pkgname=meta.sr.ht +pkgver=0.64.7 +pkgrel=0 +pkgdesc="sr.ht account service" +url="https://git.sr.ht/~sircmpwn/meta.sr.ht" +arch="all" +license="AGPLv3" +depends=" + py3-bcrypt + py3-dnspython + py3-gunicorn + py3-qrcode + py3-redis + py3-srht + py3-zxcvbn + redis +" +makedepends="py-setuptools sassc go minify" +subpackages="$pkgname-openrc $pkgname-billing:_billing:noarch $pkgname-nginx:_nginx:noarch" +# XXX: Is this sr.ht-nginx URL acceptable? I'm not sure how to version it +source=" + $pkgname-$pkgver.tar.gz::https://git.sr.ht/~sircmpwn/$pkgname/archive/$pkgver.tar.gz + sr.ht-nginx-$pkgver.tar.gz::https://git.sr.ht/~sircmpwn/sr.ht-nginx/archive/master.tar.gz + meta.sr.ht.initd + meta.sr.ht.confd + meta.sr.ht-api.initd + meta.sr.ht-api.confd + meta.sr.ht-webhooks.initd + meta.sr.ht-webhooks.confd + meta.sr.ht.gunicorn.conf.py +" +builddir="$srcdir/$pkgname-$pkgver" +export PKGVER=$pkgver +options="$options !check" +install="$pkgname.post-install $pkgname.post-upgrade" + +build() { + python3 setup.py build +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 + install -Dm755 "$srcdir"/meta.sr.ht.initd \ + "$pkgdir"/etc/init.d/meta.sr.ht + install -Dm644 "$srcdir"/meta.sr.ht.confd \ + "$pkgdir"/etc/conf.d/meta.sr.ht + install -Dm755 "$srcdir"/meta.sr.ht-api.initd \ + "$pkgdir"/etc/init.d/meta.sr.ht-api + install -Dm644 "$srcdir"/meta.sr.ht-api.confd \ + "$pkgdir"/etc/conf.d/meta.sr.ht-api + install -Dm755 "$srcdir"/meta.sr.ht-webhooks.initd \ + "$pkgdir"/etc/init.d/meta.sr.ht-webhooks + install -Dm644 "$srcdir"/meta.sr.ht-webhooks.confd \ + "$pkgdir"/etc/conf.d/meta.sr.ht-webhooks + install -Dm644 "$srcdir"/meta.sr.ht.gunicorn.conf.py \ + "$pkgdir"/etc/sr.ht/meta.sr.ht.gunicorn.conf.py + install -Dm755 api/api "$pkgdir"/usr/bin/metasrht-api +} + +_billing() { + depends="py3-stripe" + pkgdesc="Extra meta.sr.ht dependencies for billing" + mkdir -p "$subpkgdir"/usr/lib/python3.8/site-packages/metasrht + touch "$subpkgdir"/usr/lib/python3.8/site-packages/metasrht/.billing +} + +_nginx() { + depends="sr.ht-nginx" + pkgdesc="nginx configuration for $pkgname" + install -Dm644 "$srcdir/sr.ht-nginx-master/meta.sr.ht.conf" \ + "$subpkgdir"/etc/nginx/http.d/meta.sr.ht.conf +} + +sha512sums=" +efbd7bc658d4cb3da980858dcaed4817329384a23c6d5f929cf1425a3af3199a710344e749e51a6e9108b3bdeb236deda01944d61981ff5b4f8ce39a8347bed0 meta.sr.ht-0.64.7.tar.gz +43f867c307a3c4104938522d71a6f128130af3c969598fe52ef9caf9b4788b34448aa6c25ba16403706d9ff83cf313d9b5170c74d30d011628121efdfa3bf626 sr.ht-nginx-0.64.7.tar.gz +f84bb7c0532a27b1a2425726a79b329d4782eb459571c289d793beabfe9334ffbca53bcb19a699e1f0a7d696fe57cf8c0692f72576351d9cf4b9f8f325222eaf meta.sr.ht.initd +fbff1755c572da66c351004690530d875c882a65576cc641399e07dfb39e818105be1370f6ba28c6e2774e3868fe3aa3aa17dec51d14547c8db7f1aa685b0ac8 meta.sr.ht.confd +8377026251395fa74980a6733a6715c5dcfa6b893ad846d556479d3170605ba7cbe5dcc1c482f90a20e0b6332732cba9480d198dfcc9d73d2d6e338e5276bc65 meta.sr.ht-api.initd +36550c28b15fbdf32051591a9231035852916ae701521afa00b7da5959ec08c6eca74714ecea3b8d5f35d41c388aadd61ddfeee9a270cefdadf9be32b0ced145 meta.sr.ht-api.confd +26db23b2302c5a3a3dcb6068f0bc57d932a24ff8bcf288b8d8e1ca2385ee05603eded26e19b73c40adc96b8a0d2fad64c4f28526d69bcbc61981df8acc3efb11 meta.sr.ht-webhooks.initd +0091092a0f0f77158c571e0731470239034cd1480657755ca0537ab4d00002d60b444bcd7df12bfc86b4ca79f5cfed51722079a46a44abc8bf2ba6a7e1111a7c meta.sr.ht-webhooks.confd +21f39ea0981d7773eb512e5ba234022364d0f7ee9b6ca897ce4c51e3b127eb2d9a7a5fbcaa06d14f20b2df2439421d7261f200e3f4f13b45a91e78ba77bc363c meta.sr.ht.gunicorn.conf.py +" diff --git a/src/meta.sr.ht/LICENSE.txt b/src/meta.sr.ht/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/meta.sr.ht/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/meta.sr.ht/meta.sr.ht-api.confd b/src/meta.sr.ht/meta.sr.ht-api.confd new file mode 100644 index 0000000..da71704 --- /dev/null +++ b/src/meta.sr.ht/meta.sr.ht-api.confd @@ -0,0 +1,8 @@ +# Run the daemon as this user: +# META_USER=meta + +# Bind the API service to this address: +# META_BIND=:5100 + +# Extra arguments to pass to Gunicorn +# META_ARGS= diff --git a/src/meta.sr.ht/meta.sr.ht-api.initd b/src/meta.sr.ht/meta.sr.ht-api.initd new file mode 100755 index 0000000..f3cf3c9 --- /dev/null +++ b/src/meta.sr.ht/meta.sr.ht-api.initd @@ -0,0 +1,26 @@ +#!/sbin/openrc-run +name="meta.sr.ht-api" +description="meta.sr.ht API service" +supervisor=supervise-daemon +META_USER=${META_USER:-meta} +META_BIND=${META_BIND:-:5100} +META_ARGS=${META_ARGS:-} +LOCAL_PG=${LOCAL_PG:-yes} +LOCAL_REDIS=${LOCAL_REDIS:-yes} +LOGS=/var/log/meta.sr.ht-api.log +supervise_daemon_args="-1 $LOGS -2 $LOGS" +command="/usr/bin/metasrht-api" +command_args="-b $META_BIND" +command_user="$META_USER:$META_USER" +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + need net + use redis + use postgresql + use pgbouncer +} + +start_pre() { + checkpath -f "$LOGS" -m 644 -o "$META_USER:$META_USER" +} diff --git a/src/meta.sr.ht/meta.sr.ht-webhooks.confd b/src/meta.sr.ht/meta.sr.ht-webhooks.confd new file mode 100644 index 0000000..4be0222 --- /dev/null +++ b/src/meta.sr.ht/meta.sr.ht-webhooks.confd @@ -0,0 +1,5 @@ +# Run the daemon as this user: +# META_USER=meta + +# Extra arguments to pass to Gunicorn +# META_ARGS= diff --git a/src/meta.sr.ht/meta.sr.ht-webhooks.initd b/src/meta.sr.ht/meta.sr.ht-webhooks.initd new file mode 100755 index 0000000..57e9b0c --- /dev/null +++ b/src/meta.sr.ht/meta.sr.ht-webhooks.initd @@ -0,0 +1,23 @@ +#!/sbin/openrc-run +name="meta.sr.ht-webhooks" +description="meta.sr.ht webhook delivery service" +supervisor=supervise-daemon +META_USER=${META_USER:-meta} +LOCAL_PG=${LOCAL_PG:-yes} +META_ARGS=${META_ARGS:-} +LOGS=/var/log/meta.sr.ht-webhooks.log +supervise_daemon_args="-1 $LOGS -2 $LOGS" +command="/usr/bin/celery" +command_args="-A metasrht.webhooks worker --loglevel=info $META_ARGS" +command_user="$META_USER:$META_USER" +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + need net + use redis + use postgresql +} + +start_pre() { + checkpath -f "$LOGS" -m 644 -o "$META_USER:$META_USER" +} diff --git a/src/meta.sr.ht/meta.sr.ht.confd b/src/meta.sr.ht/meta.sr.ht.confd new file mode 100644 index 0000000..be9e936 --- /dev/null +++ b/src/meta.sr.ht/meta.sr.ht.confd @@ -0,0 +1,11 @@ +# Run the daemon as this user: +# META_USER=meta + +# Bind the web service to this address: +# META_BIND=127.0.0.1:5000 + +# Gunicorn configuration file +# META_GUNICORN_CONF=/etc/sr.ht/meta.sr.ht.gunicorn.conf.py + +# Extra arguments to pass to Gunicorn +# META_ARGS= diff --git a/src/meta.sr.ht/meta.sr.ht.gunicorn.conf.py b/src/meta.sr.ht/meta.sr.ht.gunicorn.conf.py new file mode 100644 index 0000000..aa3e7ae --- /dev/null +++ b/src/meta.sr.ht/meta.sr.ht.gunicorn.conf.py @@ -0,0 +1,5 @@ +from prometheus_client import multiprocess + + +def child_exit(server, worker): + multiprocess.mark_process_dead(worker.pid) diff --git a/src/meta.sr.ht/meta.sr.ht.initd b/src/meta.sr.ht/meta.sr.ht.initd new file mode 100755 index 0000000..61f6f19 --- /dev/null +++ b/src/meta.sr.ht/meta.sr.ht.initd @@ -0,0 +1,32 @@ +#!/sbin/openrc-run +name="meta.sr.ht" +description="meta.sr.ht service" +supervisor=supervise-daemon +META_USER=${META_USER:-meta} +META_BIND=${META_BIND:-127.0.0.1:5000} +META_GUNICORN_CONF=${META_GUNICORN_CONF:-/etc/sr.ht/meta.sr.ht.gunicorn.conf.py} +META_ARGS=${META_ARGS:-} +LOGS=/var/log/meta.sr.ht.log +prometheus_multiproc_dir=/run/meta.sr.ht +supervise_daemon_args="-1 $LOGS -2 $LOGS -e prometheus_multiproc_dir=$prometheus_multiproc_dir" +command="/usr/bin/gunicorn" +command_args="metasrht.app:app -b $META_BIND -c $META_GUNICORN_CONF $META_ARGS" +command_user="$META_USER:$META_USER" +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + need net + use redis + use postgresql + use pgbouncer +} + +start_pre() { + checkpath -f "$LOGS" -m 644 -o "$META_USER:$META_USER" + # Workaround for https://github.com/OpenRC/openrc/issues/335 + if [ -n "$prometheus_multiproc_dir" ] + then + checkpath -d "$prometheus_multiproc_dir" -m 775 -o "$META_USER:$META_USER" + rm -rf "$prometheus_multiproc_dir"/* + fi +} diff --git a/src/meta.sr.ht/meta.sr.ht.post-install b/src/meta.sr.ht/meta.sr.ht.post-install new file mode 100644 index 0000000..620a937 --- /dev/null +++ b/src/meta.sr.ht/meta.sr.ht.post-install @@ -0,0 +1,3 @@ +#!/bin/sh +addgroup -S meta || true +adduser -SDH -s /sbin/nologin -G meta -g meta meta || true diff --git a/src/meta.sr.ht/meta.sr.ht.post-upgrade b/src/meta.sr.ht/meta.sr.ht.post-upgrade new file mode 100644 index 0000000..e11b25b --- /dev/null +++ b/src/meta.sr.ht/meta.sr.ht.post-upgrade @@ -0,0 +1,3 @@ +#!/bin/sh +srht-migrate meta.sr.ht -a upgrade head +metasrht-migrate -a upgrade head diff --git a/src/py3-aiosmtpd/APKBUILD b/src/py3-aiosmtpd/APKBUILD new file mode 100644 index 0000000..0687052 --- /dev/null +++ b/src/py3-aiosmtpd/APKBUILD @@ -0,0 +1,34 @@ +# Contributor: Drew DeVault +# Maintainer: Drew DeVault +pkgname=py3-aiosmtpd +_pyname=aiosmtpd +pkgver=1.4.2 +pkgrel=1 +pkgdesc="A reimplementation of the Python stdlib smtpd.py based on asyncio" +url="https://github.com/aio-libs/aiosmtpd" +arch="noarch" +license="Apache-2.0" +depends="py3-atpublic" +makedepends="python3-dev py3-setuptools" +checkdepends="py3-pytest py3-pytest-mock py3-pluggy" +_pypiprefix="${_pyname%${_pyname#?}}" +source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz" +replaces="py-aiosmtpd" +builddir="$srcdir"/$_pyname-$pkgver +options="!check" # https://gitlab.alpinelinux.org/alpine/aports/-/issues/12503 + +build() { + python3 setup.py build +} + +check() { + pytest-3 +} + +package() { + python3 setup.py install --prefix=/usr --root="$pkgdir" +} + +sha512sums=" +b910ae4c00b52f59b9f2199b296a1b76caa7567cbcd2e27c73d4ec894e9b48cd8190090083ce33b87dc924c4394a6425506355951208af65b89a6c1abe371114 aiosmtpd-1.4.2.tar.gz +" diff --git a/src/py3-aiosmtpd/LICENSE.txt b/src/py3-aiosmtpd/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-aiosmtpd/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-amqp/APKBUILD b/src/py3-amqp/APKBUILD new file mode 100644 index 0000000..35693f3 --- /dev/null +++ b/src/py3-amqp/APKBUILD @@ -0,0 +1,30 @@ +# Maintainer: Drew DeVault +pkgname=py3-amqp +_pyname=amqp +pkgver=5.1.1 +pkgrel=0 +pkgdesc="Low-level AMQP client for Python" +url="https://github.com/celery/py-amqp" +arch="noarch" +license="LGPL" +depends="python3 py3-vine" +makedepends="py3-setuptools" +_pypiprefix="${_pyname%${_pyname#?}}" +source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz" +builddir="$srcdir/$_pyname-$pkgver" + +build() { + python3 setup.py build +} + +check() { + python3 setup.py check +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 +} + +sha512sums=" +f549a85e4f04543dd8e844edb68350ca185de9259aa896af31ae5ee5dfdfe73f904d95821c403dc797c7f3ada17ce6bff4e0fd9fcdf2abc1b33a94d079f99179 amqp-5.1.1.tar.gz +" diff --git a/src/py3-amqp/LICENSE.txt b/src/py3-amqp/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-amqp/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-ansi2html/APKBUILD b/src/py3-ansi2html/APKBUILD new file mode 100644 index 0000000..ac212da --- /dev/null +++ b/src/py3-ansi2html/APKBUILD @@ -0,0 +1,40 @@ +# Contributor: Fabian Affolter +# Maintainer: Fabian Affolter +pkgname=py3-ansi2html +_pyname=ansi2html +pkgver=1.8.0 +pkgrel=0 +pkgdesc="Convert text with ANSI color codes to HTML" +url="http://github.com/ralphbean/ansi2html/" +arch="noarch" +license="LGPL-3.0-or-later" +depends="py3-six" +makedepends="py3-setuptools_scm py3-wheel py3-installer py3-build" +checkdepends="py3-pytest py3-mock py3-nose" +replaces="py-ansi2html py2-ansi2html" +_pypiprefix="${_pyname%${_pyname#?}}" +source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz" +builddir="$srcdir"/$_pyname-$pkgver +options="!check" # Upstream tests are stupid + +prepare() { + sed -i pyproject.toml -e 's/.*setuptools_scm_git_archive.*//g' +} + +build() { + export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver + python3 -m build --no-isolation --wheel . +} + +check() { + PYTHONPATH="$(pwd)" pytest-3 +} + +package() { + python3 -m installer --destdir="$pkgdir" \ + dist/ansi2html-$pkgver-py3-none-any.whl +} + +sha512sums=" +cbdda41f206ced5b19761a1ff9747acc6cadca3a5a2f58c97c6073db7d517e59fea7601bba28a8e7e105f3c0c9c4d78ca4f242100cbded6c8a9ca2d598de0ab4 ansi2html-1.8.0.tar.gz +" diff --git a/src/py3-ansi2html/LICENSE.txt b/src/py3-ansi2html/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-ansi2html/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-asyncpg/APKBUILD b/src/py3-asyncpg/APKBUILD new file mode 100644 index 0000000..db242f2 --- /dev/null +++ b/src/py3-asyncpg/APKBUILD @@ -0,0 +1,32 @@ +# Contributor: Drew DeVault +# Maintainer: Drew DeVault +pkgname=py3-asyncpg +_pyname=asyncpg +pkgver=0.27.0 +pkgrel=0 +pkgdesc="An asyncio PostgreSQL driver" +url="https://github.com/MagicStack/asyncpg" +arch="all" +license="Apache-2.0" +makedepends="python3-dev py3-setuptools cython" +checkdepends="postgresql postgresql-contrib postgresql-dev" +_pypiprefix="${_pyname%${_pyname#?}}" +source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz" +replaces="py-asyncpg" +builddir="$srcdir"/$_pyname-$pkgver + +build() { + python3 setup.py build +} + +check() { + python3 setup.py test +} + +package() { + python3 setup.py install --prefix=/usr --root="$pkgdir" +} + +sha512sums=" +66d4e16cba8ebebfa0403c7d3b1d3ee1b9b8f55a9b70f57e809d28161873d74750152e6ed548b17ceb97ca84f7a669a5fa503c824a861b295db731f86bfb0137 asyncpg-0.27.0.tar.gz +" diff --git a/src/py3-asyncpg/LICENSE.txt b/src/py3-asyncpg/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-asyncpg/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-atpublic/APKBUILD b/src/py3-atpublic/APKBUILD new file mode 100644 index 0000000..253116b --- /dev/null +++ b/src/py3-atpublic/APKBUILD @@ -0,0 +1,43 @@ +# Contributor: Drew DeVault +# Maintainer: Drew DeVault +pkgname=py3-atpublic +_pyname=atpublic +pkgver=3.1.1 +pkgrel=0 +pkgdesc="@public for populating __all__" +url="https://gitlab.com/warsaw/public" +arch="noarch" +license="Apache-2.0" +makedepends="python3-dev py3-setuptools py3-build py3-installer py3-wheel py3-toml" +checkdepends="py3-sybil py3-pytest py3-pytest-cov" +_pypiprefix="${_pyname%${_pyname#?}}" +source=" + https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz + pyproject.toml +" +replaces="py-atpublic" +builddir="$srcdir"/$_pyname-$pkgver + +prepare() { + default_prepare + # Remove pdm garbage + cp "$srcdir"/pyproject.toml "$builddir" +} + +build() { + python3 -m build --no-isolation --wheel +} + +check() { + export PYTHONPATH="$builddir"/src + python3 -m pytest +} + +package() { + python3 -m installer -d"$pkgdir" dist/$_pyname-$pkgver-py3-none-any.whl +} + +sha512sums=" +b34dbb236717b2017de95aa79226f0138e77814a4041e26e98f50db8f8521d81b60f9998aed719e1e1f2ee29a7c590170725e12a54260900ce9819ea3a623dac atpublic-3.1.1.tar.gz +a3ef1b33c4872937a659a76450e63f707b10a9193a0246e339d939aff4b643f4db01eb0a962050e7c8267f847c3eacf5b4b15b3ec775840b36ce7977784c33de pyproject.toml +" diff --git a/src/py3-atpublic/LICENSE.txt b/src/py3-atpublic/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-atpublic/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-atpublic/pyproject.toml b/src/py3-atpublic/pyproject.toml new file mode 100644 index 0000000..4ee3884 --- /dev/null +++ b/src/py3-atpublic/pyproject.toml @@ -0,0 +1,97 @@ +[project] +name = "atpublic" +authors = [ + { name = "Barry Warsaw", email = "barry@python.org" }, +] +description = "Keep all y'all's __all__'s in sync" +readme = "README.rst" +requires-python = ">=3.7" +keywords = [ + "__all__", + "public", + "private", +] +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Development Status :: 6 - Mature", + "Intended Audience :: Developers", + "License :: OSI Approved :: Apache Software License", + "Operating System :: POSIX", + "Operating System :: MacOS :: MacOS X", + "Operating System :: Microsoft :: Windows", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Topic :: Software Development :: Libraries", + "Topic :: Software Development :: Libraries :: Python Modules", + "Topic :: Utilities", +] +dependencies = [] +dynamic = [] +version = "3.1.1" + +[project.license] +text = "Apache-2.0" + +[project.urls] +"Home Page" = "https://public.readthedocs.io" +Documentation = "https://public.readthedocs.io" +Source = "https://gitlab.com/warsaw/public.git" +"Bug Tracker" = "https://gitlab.com/warsaw/public/issues" + +[project.optional-dependencies] + +[tool.pytest.ini_options] +addopts = "--cov=public --cov-report=term --cov-report=xml -p no:doctest" +testpaths = "test docs" + +[tool.coverage.report] +fail_under = 100 +show_missing = true + +[tool.coverage.run] +branch = true +parallel = true + +[tool.isort] +include_trailing_comma = true +known_first_party = "public" +length_sort_straight = true +lines_after_imports = 2 +lines_between_types = 1 +multi_line_output = 3 +order_by_type = false +skip = [ + "conf.py", +] + +[tool.mypy] +mypy_path = "src" +disallow_any_generics = true +disallow_subclassing_any = true +disallow_untyped_calls = false +disallow_untyped_defs = true +disallow_incomplete_defs = true +check_untyped_defs = true +disallow_untyped_decorators = false +no_implicit_optional = true +warn_redundant_casts = true +warn_unused_ignores = true +warn_no_return = true +warn_return_any = true +warn_unreachable = true +implicit_reexport = false +strict_equality = true +show_error_context = true +show_column_numbers = true +show_error_codes = true +pretty = true +show_absolute_path = true +warn_unused_configs = true +verbosity = 0 + +[[tool.mypy.overrides]] +module = [ + "pytest", + "sybil.*", +] +ignore_missing_imports = true diff --git a/src/py3-billiard/APKBUILD b/src/py3-billiard/APKBUILD new file mode 100644 index 0000000..ae44a1f --- /dev/null +++ b/src/py3-billiard/APKBUILD @@ -0,0 +1,31 @@ +# Maintainer: Drew DeVault +pkgname=py3-billiard +_pyname=billiard +pkgver=3.6.4.0 +pkgrel=0 +pkgdesc="Python multiprocessing fork with improvements and bugfixes." +url="http://pypi.python.org/pypi/billiard" +arch="noarch" +license="BSD" +depends="python3" +makedepends="py3-setuptools" +_pypiprefix="${_pyname%${_pyname#?}}" +source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz" +builddir="$srcdir/$_pyname-$pkgver" +options="!check" + +build() { + python3 setup.py check +} + +check() { + python3 setup.py check +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 +} + +sha512sums=" +9f2a44024e45c4e7667472a0a3ade7caae755ec7c163929433f818e4b87165218b9cc9545bdee2254e7159c206e525306e383d38906b00fd5428bd1616c39b8f billiard-3.6.4.0.tar.gz +" diff --git a/src/py3-billiard/LICENSE.txt b/src/py3-billiard/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-billiard/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-case/APKBUILD b/src/py3-case/APKBUILD new file mode 100644 index 0000000..1664f4f --- /dev/null +++ b/src/py3-case/APKBUILD @@ -0,0 +1,31 @@ +# Maintainer: Drew DeVault +pkgname=py3-case +_pyname=case +pkgver=1.5.3 +pkgrel=0 +pkgdesc="Ptyhon unit testing utilities" +url="https://github.com/celery/case" +arch="noarch" +license="BSD" +depends="python3 py3-six" +checkdepends="py3-nose" +makedepends="py3-setuptools" +_pypiprefix="${_pyname%${_pyname#?}}" +source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz" +builddir="$srcdir/$_pyname-$pkgver" + +build() { + python3 setup.py build +} + +check() { + nosetests +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 +} + +sha512sums=" +ae98a571c282f80c685c42ab1dc578847fe88cf8cd07faff505a8df8e3282a602908a8780ab88b36851e3ee6f3c178405e5c50776fd0f49fcc990087575f2958 case-1.5.3.tar.gz +" diff --git a/src/py3-case/LICENSE.txt b/src/py3-case/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-case/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-celery/7446.patch b/src/py3-celery/7446.patch new file mode 100644 index 0000000..1472437 --- /dev/null +++ b/src/py3-celery/7446.patch @@ -0,0 +1,34 @@ +From 85a8fcf0a6eb421218d746eedd88d158c450cf35 Mon Sep 17 00:00:00 2001 +From: Omer Katz +Date: Sat, 9 Apr 2022 13:27:58 +0300 +Subject: [PATCH] Avoid importing buf_t from billiard's compat module as it was + removed. + +buf_t was a compatibility layer for 2.7, it's no longer needed so it was removed from billiard. +We should adjust the code in Celery as well. +--- + celery/concurrency/asynpool.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/celery/concurrency/asynpool.py b/celery/concurrency/asynpool.py +index b9f2875a26..489336936c 100644 +--- a/celery/concurrency/asynpool.py ++++ b/celery/concurrency/asynpool.py +@@ -26,7 +26,7 @@ + from weakref import WeakValueDictionary, ref + + from billiard import pool as _pool +-from billiard.compat import buf_t, isblocking, setblocking ++from billiard.compat import isblocking, setblocking + from billiard.pool import ACK, NACK, RUN, TERMINATE, WorkersJoined + from billiard.queues import _SimpleQueue + from kombu.asynchronous import ERR, WRITE +@@ -868,7 +868,7 @@ def send_job(tup): + header = pack('>I', body_size) + # index 1,0 is the job ID. + job = get_job(tup[1][0]) +- job._payload = buf_t(header), buf_t(body), body_size ++ job._payload = memoryview(header), memoryview(body), body_size + put_message(job) + self._quick_put = send_job + diff --git a/src/py3-celery/APKBUILD b/src/py3-celery/APKBUILD new file mode 100644 index 0000000..57aa9ae --- /dev/null +++ b/src/py3-celery/APKBUILD @@ -0,0 +1,43 @@ +# Maintainer: Drew DeVault +pkgname=py3-celery +_pyname=celery +pkgver=5.2.7 +pkgrel=0 +pkgdesc="Distributed Asyncronous Task Queue" +url="http://celeryproject.org" +arch="noarch" +license="BSD" +depends="python3" +makedepends="py-setuptools" +depends=" + py3-amqp + py3-billiard + py3-click-repl + py3-click-didyoumean + py3-click-plugins + py3-kombu + py3-tz + py3-vine +" +source=" + https://pypi.io/packages/source/c/celery/celery-$pkgver.tar.gz + 7446.patch +" +builddir="$srcdir/$_pyname-$pkgver" + +build() { + python3 setup.py build +} + +check() { + python3 setup.py check +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 +} + +sha512sums=" +68e3bb082f97ebe20391293cc8fa96c41c8f5ac5e8c24b2b7bd66eb104ec459bdfa49741e47486676e5daa88d7a71e3eb0d9432851aeafc74b0d4352e567e853 celery-5.2.7.tar.gz +de75758692f07bd181137095dbb3e5edc0e88c23a57df286ff52c5f5db384cb704924a43ee8f6379fec0430c06c41c529d2c2609f23546b7db0a306a069274f9 7446.patch +" diff --git a/src/py3-celery/LICENSE.txt b/src/py3-celery/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-celery/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-click-didyoumean/APKBUILD b/src/py3-click-didyoumean/APKBUILD new file mode 100644 index 0000000..9c1faf6 --- /dev/null +++ b/src/py3-click-didyoumean/APKBUILD @@ -0,0 +1,28 @@ +# Contributor: Drew DeVault +# Maintainer: Drew DeVault +pkgname=py3-click-didyoumean +_pyname=click-didyoumean +pkgver=0.3.0 +pkgrel=0 +pkgdesc="Enable git-like did-you-mean feature in click" +url="https://pypi.org/project/click-didyoumean/" +arch="noarch" +license="MIT" +depends="py3-click" +makedepends="py3-setuptools" +_pypiprefix="${_pyname%${_pyname#?}}" +source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz" +builddir="$srcdir"/$_pyname-$pkgver +options="!check" # no tests + +build() { + python3 setup.py build +} + +package() { + python3 setup.py install --prefix=/usr --root="$pkgdir" +} + +sha512sums=" +781d3f0f0ce7a8cbc297cce16647dd7bc8f2cc32db9071b68e896d8f01ef08382cd83051db685535b86a77b392ed93f6f8e453ed6d1299065a24df032cd046cb click-didyoumean-0.3.0.tar.gz +" diff --git a/src/py3-click-didyoumean/LICENSE.txt b/src/py3-click-didyoumean/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-click-didyoumean/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-click-repl/APKBUILD b/src/py3-click-repl/APKBUILD new file mode 100644 index 0000000..9c1228a --- /dev/null +++ b/src/py3-click-repl/APKBUILD @@ -0,0 +1,30 @@ +# Maintainer: Drew DeVault +pkgname=py3-click-repl +_pyname=click-repl +pkgver=0.2.0 +pkgrel=0 +pkgdesc="REPL plugin for Click" +url="https://pypi.org/project/click-repl/" +arch="noarch" +license="MIT" +depends="py3-click py3-prompt_toolkit py3-six" +makedepends="py3-setuptools" +_pypiprefix="${_pyname%${_pyname#?}}" +source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz" +builddir="$srcdir/$_pyname-$pkgver" + +build() { + python3 setup.py build +} + +check() { + python3 setup.py check +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 +} + +sha512sums=" +b377e1efda7f8dd20b90f531c49dd42a372db789331f8cfcca63169be17fe429dfc66d5a1e5ef7376eacfdb41167f933ec68b63a170aae45af09b086f826edf0 click-repl-0.2.0.tar.gz +" diff --git a/src/py3-click-repl/LICENSE.txt b/src/py3-click-repl/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-click-repl/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-colour/APKBUILD b/src/py3-colour/APKBUILD new file mode 100644 index 0000000..9a1e337 --- /dev/null +++ b/src/py3-colour/APKBUILD @@ -0,0 +1,42 @@ +# Maintainer: Drew DeVault +pkgname=py3-colour +_pyname=colour +pkgver=0.1.5 +pkgrel=0 +pkgdesc="Colour representations manipulation library (RGB, HSL, web, ...)" +url="https://github.com/vaab/colour" +arch="noarch" +license="MIT" +depends="python3" +makedepends="py3-setuptools py3-wheel" +_pypiprefix="${_pyname%${_pyname#?}}" +source=" + https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz + setup.cfg + setup.py +" +builddir="$srcdir/$_pyname-$pkgver" + +prepare() { + # I hate the Python community so much + cp "$srcdir"/setup.py ./ + cp "$srcdir"/setup.cfg ./ +} + +build() { + python3 setup.py build +} + +check() { + python3 setup.py check +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 +} + +sha512sums=" +09a5160862bf10cd5f4a94e43c63d6f2a5db43bcaae0e9d8f66900113ec04471e22d0bec7412f0289c6f1e6871c1a544f5be36266aa8d6fd5ec274bd461d9df8 colour-0.1.5.tar.gz +6e0c52b0515ae82ee10116d567c60e4b81c78e2e94da17ddac5b6bd58641bee3682dfbdddb04398d536b96f54708dad749cc323bcce1d6921849c92ce1abc67e setup.cfg +1b89dee1b34668e78c8115f297e2a68af48cfbef820694f6f0771fa07292c480d1fa2d52ddecd4989850ec3a0a34a25a08965bfa31baa20728935f60e38d1588 setup.py +" diff --git a/src/py3-colour/LICENSE.txt b/src/py3-colour/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-colour/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-colour/setup.cfg b/src/py3-colour/setup.cfg new file mode 100644 index 0000000..5668162 --- /dev/null +++ b/src/py3-colour/setup.cfg @@ -0,0 +1,40 @@ +[metadata] +name = colour +version = 0.1.5.dev202112201038 +description = converts and manipulates various color representation (HSL, RVB, web, X11, ...) +long_description = file: README.rst, CHANGELOG.rst, TODO.rst +license_file = LICENSE + +## sdist info +author = Valentin LAB +author_email = valentin.lab@kalysto.org +url = http://github.com/vaab/colour +license = BSD 3-Clause License +classifiers = + Programming Language :: Python + Topic :: Software Development :: Libraries :: Python Modules + Development Status :: 3 - Alpha + License :: OSI Approved :: BSD License + Intended Audience :: Developers + Programming Language :: Python :: 2 + Programming Language :: Python :: 2.7 + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.3 + Programming Language :: Python :: 3.4 + Programming Language :: Python :: 3.5 + Programming Language :: Python :: 3.6 + + +[bdist_wheel] +universal = 1 + + +[nosetests] +verbosity = 3 +with-doctest = 1 +doctest-extension = rst +exe = 1 +with-coverage = 1 +cover-package = colour +cover-min-percentage = 90 +doctest-options = +ELLIPSIS,+NORMALIZE_WHITESPACE diff --git a/src/py3-colour/setup.py b/src/py3-colour/setup.py new file mode 100644 index 0000000..c75a53e --- /dev/null +++ b/src/py3-colour/setup.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python + +## +## You can download latest version of this file: +## $ wget https://gist.github.com/vaab/e0eae9607ae806b662d4/raw -O setup.py +## $ chmod +x setup.py +## +## This setup.py is meant to be run along with ``./autogen.sh`` that +## you can also find here: https://gist.github.com/vaab/9118087/raw +## + +try: + from setuptools import setup +except ImportError: + from distribute_setup import use_setuptools + use_setuptools() + from setuptools import setup + +## +## Ensure that ``./autogen.sh`` is run prior to using ``setup.py`` +## + +if "0.1.5".startswith("%%"): + import os.path + import sys + WIN32 = sys.platform == 'win32' + autogen = os.path.join(".", "autogen.sh") + if not os.path.exists(autogen): + sys.stderr.write( + "This source repository was not configured.\n" + "Please ensure ``./autogen.sh`` exists and that you are running " + "``setup.py`` from the project root directory.\n") + sys.exit(1) + if os.path.exists('.autogen.sh.output'): + sys.stderr.write( + "It seems that ``./autogen.sh`` couldn't do its job as expected.\n" + "Please try to launch ``./autogen.sh`` manualy, and send the " + "results to the\nmaintainer of this package.\n" + "Package will not be installed !\n") + sys.exit(1) + sys.stderr.write("Missing version information: " + "running './autogen.sh'...\n") + import os + import subprocess + os.system('%s%s > .autogen.sh.output' + % ("bash " if WIN32 else "", + autogen)) + cmdline = sys.argv[:] + if cmdline[0] == "-c": + ## for some reason, this is needed when launched from pip + cmdline[0] = "setup.py" + errlvl = subprocess.call(["python", ] + cmdline) + os.unlink(".autogen.sh.output") + sys.exit(errlvl) + + +setup(extras_require={'test': ['nose', ]}) diff --git a/src/py3-furl/APKBUILD b/src/py3-furl/APKBUILD new file mode 100644 index 0000000..8fc643c --- /dev/null +++ b/src/py3-furl/APKBUILD @@ -0,0 +1,30 @@ +# Maintainer: Drew DeVault +pkgname=py3-furl +_pyname=furl +pkgver=2.1.3 +pkgrel=0 +pkgdesc="Python library that makes manipulating URLs simple." +url="https://github.com/gruns/furl" +arch="noarch" +license="Unlicense" +depends="python3 py3-six py3-orderedmultidict" +makedepends="py3-setuptools" +_pypiprefix="${_pyname%${_pyname#?}}" +source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz" +builddir="$srcdir/$_pyname-$pkgver" + +build() { + python3 setup.py build +} + +check() { + python3 setup.py check +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 +} + +sha512sums=" +ce7455bd1a352243efd9715e80e9f9979631cc058927edcd8c52ccb85d27fd8f32079611bb29c487d2add2d1d941d56e4db75520339dc371b1539811ccefda02 furl-2.1.3.tar.gz +" diff --git a/src/py3-furl/LICENSE.txt b/src/py3-furl/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-furl/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-humanize/APKBUILD b/src/py3-humanize/APKBUILD new file mode 100644 index 0000000..ec48813 --- /dev/null +++ b/src/py3-humanize/APKBUILD @@ -0,0 +1,30 @@ +# Maintainer: Drew DeVault +pkgname=py3-humanize +_pyname=humanize +pkgver=4.4.0 +pkgrel=0 +pkgdesc="Humanize is a modest package contains various common humanization utilities" +url="https://github.com/jmoiron/humanize" +arch="noarch" +license="MIT" +depends="python3" +makedepends="py3-setuptools" +_pypiprefix="${_pyname%${_pyname#?}}" +source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz" +builddir="$srcdir/$_pyname-$pkgver" + +build() { + python3 setup.py build +} + +check() { + python3 setup.py check +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 +} + +sha512sums=" +bbbd386d9af82d9db0f2edc4653928654203c4239419232abfc15c51ccd865b355366549c46651e1291d4222ca8b2a297ffc0fce3cc32be4ae2f904ae308a8e4 humanize-4.4.0.tar.gz +" diff --git a/src/py3-humanize/LICENSE.txt b/src/py3-humanize/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-humanize/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-infinity/APKBUILD b/src/py3-infinity/APKBUILD new file mode 100644 index 0000000..a22af88 --- /dev/null +++ b/src/py3-infinity/APKBUILD @@ -0,0 +1,30 @@ +# Maintainer: Drew DeVault +pkgname=py3-infinity +_pyname=infinity +pkgver=1.5 +pkgrel=0 +pkgdesc="All-in-one infinity value for Python. Can be compared to any object." +url="https://github.com/kvesteri/infinity" +arch="noarch" +license="BSD" +depends="python3" +makedepends="py3-setuptools" +_pypiprefix="${_pyname%${_pyname#?}}" +source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz" +builddir="$srcdir/$_pyname-$pkgver" + +build() { + python3 setup.py build +} + +check() { + python3 setup.py check +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 +} + +sha512sums=" +d61c16fe08749dab050ffb17f8cb392b22ef0c409d736625820419859a0533e067d04a3244e937cf968b40eb02d6bcecb0f80525797dc372eba7205836bad9cb infinity-1.5.tar.gz +" diff --git a/src/py3-infinity/LICENSE.txt b/src/py3-infinity/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-infinity/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-intervals/APKBUILD b/src/py3-intervals/APKBUILD new file mode 100644 index 0000000..588b19e --- /dev/null +++ b/src/py3-intervals/APKBUILD @@ -0,0 +1,30 @@ +# Maintainer: Drew DeVault +pkgname=py3-intervals +_pyname=intervals +pkgver=0.9.2 +pkgrel=0 +pkgdesc="Python tools for handling intervals (ranges of comparable objects)." +url="https://github.com/kvesteri/intervals" +arch="noarch" +license="BSD" +depends="python3 py3-infinity" +makedepends="py3-setuptools" +_pypiprefix="${_pyname%${_pyname#?}}" +source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz" +builddir="$srcdir/$_pyname-$pkgver" + +build() { + python3 setup.py build +} + +check() { + python3 setup.py check +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 +} + +sha512sums=" +40da5f7630bc84dbd47196e7e84f94701730b4f2ee71294edfaecfc9187f5c05333fc79502c315d5962c29c9c2a50c8e471980c98764d7c0581d33383a487e4a intervals-0.9.2.tar.gz +" diff --git a/src/py3-intervals/LICENSE.txt b/src/py3-intervals/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-intervals/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-kombu/APKBUILD b/src/py3-kombu/APKBUILD new file mode 100644 index 0000000..4710c3a --- /dev/null +++ b/src/py3-kombu/APKBUILD @@ -0,0 +1,32 @@ +# Maintainer: Drew DeVault +pkgname=py3-kombu +_pyname=kombu +pkgver=5.2.4 +pkgrel=0 +pkgdesc="A messaging library for Python" +url="http://kombu.readthedocs.org" +arch="noarch" +license="BSD" +depends="python3" +makedepends="py3-setuptools py3-amqp" +_pypiprefix="${_pyname%${_pyname#?}}" +source=" + https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz +" +builddir="$srcdir/$_pyname-$pkgver" + +build() { + python3 setup.py build +} + +check() { + python3 setup.py check +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 +} + +sha512sums=" +695813bee71d627649e772b45b25494784a6a81bcad92331160705e34d8b2268fa90629983ebcfd04ec23208508d422f1834cc56895532911602d58ec0090a03 kombu-5.2.4.tar.gz +" diff --git a/src/py3-kombu/LICENSE.txt b/src/py3-kombu/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-kombu/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-minio/APKBUILD b/src/py3-minio/APKBUILD new file mode 100644 index 0000000..85a9531 --- /dev/null +++ b/src/py3-minio/APKBUILD @@ -0,0 +1,30 @@ +# Maintainer: Drew DeVault +pkgname=py3-minio +pkgver=7.1.12 +pkgrel=0 +pkgdesc="MinIO Python Library for Amazon S3 Compatible Cloud Storage" +url="https://pypi.org/project/minio/" +arch="noarch" +license="Apache-2.0" +depends="py3-tz py3-dateutil py3-certifi py3-urllib3" +makedepends="py3-setuptools" +checkdepends="py3-pytest py3-mock py3-nose py3-faker" +source="$pkgname-$pkgver.tar.gz::https://github.com/minio/minio-py/archive/$pkgver.tar.gz" +builddir="$srcdir/minio-py-${pkgver}" +options="!check" # requires network + +build() { + python3 setup.py build +} + +check() { + pytest-3 +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 +} + +sha512sums=" +a295c1988bce1f4e2dad735f5ed69ed3e49cc4be5d9b001908e68945ae965a85a4c683efa44400a5160098607c4ff21d740700b4480960873a051fe45cff29f1 py3-minio-7.1.12.tar.gz +" diff --git a/src/py3-minio/LICENSE.txt b/src/py3-minio/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-minio/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-mistletoe/APKBUILD b/src/py3-mistletoe/APKBUILD new file mode 100644 index 0000000..28cd09b --- /dev/null +++ b/src/py3-mistletoe/APKBUILD @@ -0,0 +1,30 @@ +# Maintainer: Drew DeVault +pkgname=py3-mistletoe +_pyname=mistletoe +pkgver=0.9.0 +pkgrel=0 +pkgdesc="A fast, extensible Markdown parser in pure Python." +url="https://pypi.org/project/mistletoe/" +arch="noarch" +license="MIT" +depends="python3" +makedepends="py3-setuptools" +_pypiprefix="${_pyname%${_pyname#?}}" +source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz" +builddir="$srcdir/$_pyname-$pkgver" + +build() { + python3 setup.py build +} + +check() { + python3 setup.py check +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 +} + +sha512sums=" +ec0f6fc23d81cb2725cf6a8bb8024a3a7c055d1dd733b1dbc10a9fbd4c1431209daffbb2f44591cac9a948ed944496dd8d4175a106e7e9ed4656594e33c23ada mistletoe-0.9.0.tar.gz +" diff --git a/src/py3-mistletoe/LICENSE.txt b/src/py3-mistletoe/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-mistletoe/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-orderedmultidict/APKBUILD b/src/py3-orderedmultidict/APKBUILD new file mode 100644 index 0000000..6946799 --- /dev/null +++ b/src/py3-orderedmultidict/APKBUILD @@ -0,0 +1,30 @@ +# Maintainer: Drew DeVault +pkgname=py3-orderedmultidict +_pyname=orderedmultidict +pkgver=1.0.1 +pkgrel=0 +pkgdesc="Ordered multivalue dictionary that retains method parity with dict." +url="https://github.com/gruns/orderedmultidict" +arch="noarch" +license="Unlicense" +depends="python3 py3-six" +makedepends="py3-setuptools" +_pypiprefix="${_pyname%${_pyname#?}}" +source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz" +builddir="$srcdir/$_pyname-$pkgver" + +build() { + python3 setup.py build +} + +check() { + python3 setup.py check +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 +} + +sha512sums=" +5a826bb46dfe9d7e6e2159bf545612a35dd0f1bb5817c1fd78e0f3f4019f9144b36be94af08f87e881a310f593091df09702d001624c377f559a30f64b219c24 orderedmultidict-1.0.1.tar.gz +" diff --git a/src/py3-orderedmultidict/LICENSE.txt b/src/py3-orderedmultidict/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-orderedmultidict/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-pgpy/APKBUILD b/src/py3-pgpy/APKBUILD new file mode 100644 index 0000000..947fff7 --- /dev/null +++ b/src/py3-pgpy/APKBUILD @@ -0,0 +1,34 @@ +# Maintainer: Drew DeVault +pkgname=py3-pgpy +_pyname=PGPy +pkgver=0.5.4 +pkgrel=2 +pkgdesc="Pretty Good Privacy for Python - a pure Python OpenPGP implementation" +url="https://github.com/SecurityInnovation/PGPy" +arch="noarch" +license="BSD" +depends="py3-cryptography py3-six py3-asn1" +makedepends="py3-setuptools py3-wheel" +_pypiprefix="${_pyname%${_pyname#?}}" +source=" + https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz + cryptography.patch +" +builddir="$srcdir/$_pyname-$pkgver" + +build() { + python3 setup.py build +} + +check() { + python3 setup.py check +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 +} + +sha512sums=" +bf19a72d5113cb88e6538d515a06a115a7f329ee1331553100140848226773db0a539a0cbe480f04b0f26cd587fc0c3c8e5fe392e2421d6e6210e86bd0ab70c1 PGPy-0.5.4.tar.gz +2c2db2238d9f171c795fc1e2d2ea96e92313cb2df045fbbd38f2d2642eae96e323637fbaa2528b1f9160138186c07dbfd8cfca7a179848dd5c39b3d63f20f6a4 cryptography.patch +" diff --git a/src/py3-pgpy/LICENSE.txt b/src/py3-pgpy/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-pgpy/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-pgpy/cryptography.patch b/src/py3-pgpy/cryptography.patch new file mode 100644 index 0000000..f2c617e --- /dev/null +++ b/src/py3-pgpy/cryptography.patch @@ -0,0 +1,101 @@ +From d84597eb8417a482433ff51dc6b13060d4b2e686 Mon Sep 17 00:00:00 2001 +From: Robert Hofer <1058012+hofrob@users.noreply.github.com> +Date: Wed, 7 Sep 2022 22:26:17 +0200 +Subject: [PATCH] fix removed cryptography.utils.register_interface + +--- + pgpy/_curves.py | 73 +++++++++++++++++++++++++++++++++++-------------- + 1 file changed, 53 insertions(+), 20 deletions(-) + +diff --git a/pgpy/_curves.py b/pgpy/_curves.py +index ce6a9f01..2c6ae468 100644 +--- a/pgpy/_curves.py ++++ b/pgpy/_curves.py +@@ -34,34 +34,67 @@ def _openssl_get_supported_curves(): + return curves + + +-@utils.register_interface(ec.EllipticCurve) +-class BrainpoolP256R1(object): +- name = 'brainpoolP256r1' +- key_size = 256 ++def use_legacy_cryptography_decorator(): ++ """ ++ The decorator utils.register_interface was removed in version 38.0.0. Keep using it ++ if the decorator exists, inherit from `ec.EllipticCurve` otherwise. ++ """ ++ return hasattr(utils, "register_interface") and callable(utils.register_interface) + + +-@utils.register_interface(ec.EllipticCurve) +-class BrainpoolP384R1(object): +- name = 'brainpoolP384r1' +- key_size = 384 ++if use_legacy_cryptography_decorator(): ++ @utils.register_interface(ec.EllipticCurve) ++ class BrainpoolP256R1(object): ++ name = 'brainpoolP256r1' ++ key_size = 256 + + +-@utils.register_interface(ec.EllipticCurve) +-class BrainpoolP512R1(object): +- name = 'brainpoolP512r1' +- key_size = 512 ++ @utils.register_interface(ec.EllipticCurve) ++ class BrainpoolP384R1(object): ++ name = 'brainpoolP384r1' ++ key_size = 384 + + +-@utils.register_interface(ec.EllipticCurve) +-class X25519(object): +- name = 'X25519' +- key_size = 256 ++ @utils.register_interface(ec.EllipticCurve) ++ class BrainpoolP512R1(object): ++ name = 'brainpoolP512r1' ++ key_size = 512 + + +-@utils.register_interface(ec.EllipticCurve) +-class Ed25519(object): +- name = 'ed25519' +- key_size = 256 ++ @utils.register_interface(ec.EllipticCurve) ++ class X25519(object): ++ name = 'X25519' ++ key_size = 256 ++ ++ ++ @utils.register_interface(ec.EllipticCurve) ++ class Ed25519(object): ++ name = 'ed25519' ++ key_size = 256 ++else: ++ class BrainpoolP256R1(ec.EllipticCurve): ++ name = 'brainpoolP256r1' ++ key_size = 256 ++ ++ ++ class BrainpoolP384R1(ec.EllipticCurve): ++ name = 'brainpoolP384r1' ++ key_size = 384 ++ ++ ++ class BrainpoolP512R1(ec.EllipticCurve): ++ name = 'brainpoolP512r1' ++ key_size = 512 ++ ++ ++ class X25519(ec.EllipticCurve): ++ name = 'X25519' ++ key_size = 256 ++ ++ ++ class Ed25519(ec.EllipticCurve): ++ name = 'ed25519' ++ key_size = 256 + + + # add these curves to the _CURVE_TYPES list diff --git a/src/py3-scmsrht/APKBUILD b/src/py3-scmsrht/APKBUILD new file mode 100644 index 0000000..fd2f839 --- /dev/null +++ b/src/py3-scmsrht/APKBUILD @@ -0,0 +1,38 @@ +# Maintainer: Drew DeVault +pkgbase=scm.sr.ht +pkgname=py3-scmsrht +pkgver=0.22.22 +pkgrel=0 +pkgdesc="sr.ht shared code" +url="https://git.sr.ht/~sircmpwn/scm.sr.ht" +arch="noarch" +license="BSD" +depends=" + builds.sr.ht + py3-srht +" +makedepends=" + py-setuptools + git +" +source=" + $pkgbase-$pkgver.tar.gz::https://git.sr.ht/~sircmpwn/$pkgbase/archive/$pkgver.tar.gz +" +builddir="$srcdir/$pkgbase-$pkgver" +options="$options !check" + +build() { + cd "$builddir" + export PKGVER=$pkgver + python3 setup.py build +} + +package() { + cd "$builddir" + export PKGVER=$pkgver + python3 setup.py install --root="$pkgdir" --optimize=1 +} + +sha512sums=" +11ef7c1368a0f76ff273d49820b87a5a0c008057ed1c51c47460468bf4252f5e835a828e2a9dff8d289f83931d9f1e67038a63c18c621ec481765ab3247884ae scm.sr.ht-0.22.22.tar.gz +" diff --git a/src/py3-scmsrht/LICENSE.txt b/src/py3-scmsrht/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-scmsrht/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-sqlalchemy-utils/APKBUILD b/src/py3-sqlalchemy-utils/APKBUILD new file mode 100644 index 0000000..f114f8d --- /dev/null +++ b/src/py3-sqlalchemy-utils/APKBUILD @@ -0,0 +1,41 @@ +# Maintainer: Drew DeVault +pkgname=py3-sqlalchemy-utils +_pyname=SQLAlchemy-Utils +pkgver=0.38.3 +pkgrel=0 +pkgdesc="Various utility functions, new data types and helpers for SQLAlchemy." +url="https://github.com/kvesteri/sqlalchemy-utils" +arch="noarch" +license="3-Clause-BSD" +depends=" + python3 + py3-babel + py3-arrow + py3-intervals + py3-phonenumbers + py3-passlib + py3-colour + py3-dateutil + py3-furl + py3-cryptography +" +makedepends="py3-setuptools" +_pypiprefix="${_pyname%${_pyname#?}}" +source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz" +builddir="$srcdir/$_pyname-$pkgver" + +build() { + python3 setup.py build +} + +check() { + python3 setup.py check +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 +} + +sha512sums=" +0aa38f7d29cf7756fd0d3c735f721ed0c5889a6e8b0364f26e74e29404115e0a141beab8587db4d56a2e4a4bd1352c24d5922d7e379e64cfa196161c6ff18825 SQLAlchemy-Utils-0.38.3.tar.gz +" diff --git a/src/py3-sqlalchemy-utils/LICENSE.txt b/src/py3-sqlalchemy-utils/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-sqlalchemy-utils/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-srht/APKBUILD b/src/py3-srht/APKBUILD new file mode 100644 index 0000000..370ae6a --- /dev/null +++ b/src/py3-srht/APKBUILD @@ -0,0 +1,64 @@ +# Maintainer: Drew DeVault +pkgbase=core.sr.ht +pkgname=py3-srht +pkgver=0.69.14 +pkgrel=0 +pkgdesc="sr.ht shared code" +url="https://git.sr.ht/~sircmpwn/core.sr.ht" +arch="noarch" +license="BSD" +depends=" + py3-alembic + py3-bleach + py3-celery + py3-cryptography + py3-flask + py3-html5lib + py3-humanize + py3-mistletoe + py3-pgpy + py3-prometheus-client + py3-psycopg2 + py3-pygments + py3-redis + py3-requests + py3-soupsieve + py3-sqlalchemy + py3-sqlalchemy-utils + py3-beautifulsoup4 +" +makedepends=" + py-setuptools + minify + git +" +source=" + $pkgbase-$pkgver.tar.gz::https://git.sr.ht/~sircmpwn/$pkgbase/archive/$pkgver.tar.gz +" +builddir="$srcdir/$pkgbase-$pkgver" +options="$options !check" + +prepare() { + default_prepare + cd "$builddir" + pyver="$(python3 --version | cut -d. -f1-2 | cut -d' ' -f2-)" + sed -e "s/python3.8/python$pyver/" -i srht/Makefile + git clone --depth=1 -b v4.1.1 \ + https://github.com/twbs/bootstrap srht/scss/bootstrap +} + +build() { + cd "$builddir" + export PKGVER=$pkgver + python3 setup.py build +} + +package() { + cd "$builddir" + export PKGVER=$pkgver + python3 setup.py install --root="$pkgdir" --optimize=1 +} + +sha512sums=" +e50423cb995608a28897a753faee88c07e02749b1de2e4d70841ed1a4eb2719c2580a745f093dc7be4423de9a360fc915fb63e772ec8a71c842b0f48a4c5601b core.sr.ht-0.69.14.tar.gz +" diff --git a/src/py3-srht/LICENSE.txt b/src/py3-srht/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-srht/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-vine/APKBUILD b/src/py3-vine/APKBUILD new file mode 100644 index 0000000..e177686 --- /dev/null +++ b/src/py3-vine/APKBUILD @@ -0,0 +1,32 @@ +# Maintainer: Drew DeVault +pkgname=py3-vine +_pyname=vine +pkgver=5.0.0 +pkgrel=1 +pkgdesc="Promises library for Python" +url="https://github.com/celery/vine" +arch="noarch" +license="BSD" +depends="python3" +makedepends="py3-setuptools py3-case py3-pytest" +checkdepends="py3-nose" +_pypiprefix="${_pyname%${_pyname#?}}" +source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz" +builddir="$srcdir/$_pyname-$pkgver" +options="!check" # Missing some fixtures? TODO + +build() { + python3 setup.py build +} + +check() { + pytest-3 +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 +} + +sha512sums=" +ff8f4b3f675220772ed0523e468eedbaec4aca793877b984e9a215603d1288cc3cc71dfeb152219d22f98de0ac7e9f9fa0cc35c2424ff36044cfc8f28192c159 vine-5.0.0.tar.gz +" diff --git a/src/py3-vine/LICENSE.txt b/src/py3-vine/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-vine/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/py3-zxcvbn/APKBUILD b/src/py3-zxcvbn/APKBUILD new file mode 100644 index 0000000..d605c89 --- /dev/null +++ b/src/py3-zxcvbn/APKBUILD @@ -0,0 +1,30 @@ +# Contributor: Drew DeVault +# Maintainer: Drew DeVault +pkgname=py3-zxcvbn +_pyname=zxcvbn +pkgver=4.4.28 +pkgrel=0 +pkgdesc="Python implementation of Dropbox's realistic password strength estimator" +url="https://github.com/dwolfhub/zxcvbn-python" +arch="noarch" +license="MIT" +makedepends="python3-dev py-setuptools" +checkdepends="py3-pytest" +source="$pkgname-$pkgver.tar.gz::https://github.com/dwolfhub/zxcvbn-python/archive/v$pkgver.tar.gz" +builddir="$srcdir/$_pyname-python-$pkgver" + +build() { + python3 setup.py build +} + +check() { + pytest-3 +} + +package() { + python3 setup.py install --prefix=/usr --root="$pkgdir" +} + +sha512sums=" +be85f976dcf685e2885edff116147cc4549f9c86dee4317b61b84dc4f36ab2c8c2f3468d5d1a55e8890693c852a09104b14360f9ce43feb3727f8fc164eb78f1 py3-zxcvbn-4.4.28.tar.gz +" diff --git a/src/py3-zxcvbn/LICENSE.txt b/src/py3-zxcvbn/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/py3-zxcvbn/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/todo.sr.ht/APKBUILD b/src/todo.sr.ht/APKBUILD new file mode 100644 index 0000000..c2128fe --- /dev/null +++ b/src/todo.sr.ht/APKBUILD @@ -0,0 +1,83 @@ +# Maintainer: Drew DeVault +pkgname=todo.sr.ht +pkgver=0.74.5 +pkgrel=0 +pkgdesc="sr.ht ticket tracking service" +url="https://git.sr.ht/~sircmpwn/todo.sr.ht" +arch="all" +license="AGPLv3" +depends=" + py3-aiosmtpd + py3-gunicorn + py3-srht +" +makedepends="py-setuptools sassc go minify" +subpackages="$pkgname-openrc $pkgname-nginx:_nginx" +source=" + $pkgname-$pkgver.tar.gz::https://git.sr.ht/~sircmpwn/$pkgname/archive/$pkgver.tar.gz + sr.ht-nginx-$pkgver.tar.gz::https://git.sr.ht/~sircmpwn/sr.ht-nginx/archive/master.tar.gz + todo.sr.ht.initd + todo.sr.ht.confd + todo.sr.ht-lmtp.initd + todo.sr.ht-lmtp.confd + todo.sr.ht-webhooks.confd + todo.sr.ht-webhooks.initd + todo.sr.ht-api.confd + todo.sr.ht-api.initd + todo.sr.ht.gunicorn.conf.py +" +export PKGVER=$pkgver +options="$options !check" +install="$pkgname.post-install $pkgname.post-upgrade" + +build() { + python3 setup.py build + pyver="$(python3 --version | cut -d. -f1-2 | cut -d' ' -f2-)" + make SRHT_PATH=/usr/lib/python$pyver/site-packages/srht +} + +package() { + python3 setup.py install --root="$pkgdir" --optimize=1 + + install -Dm755 api/api "$pkgdir"/usr/bin/todosrht-api + + install -Dm755 "$srcdir"/todo.sr.ht.initd \ + "$pkgdir"/etc/init.d/todo.sr.ht + install -Dm644 "$srcdir"/todo.sr.ht.confd \ + "$pkgdir"/etc/conf.d/todo.sr.ht + install -Dm755 "$srcdir"/todo.sr.ht-lmtp.initd \ + "$pkgdir"/etc/init.d/todo.sr.ht-lmtp + install -Dm644 "$srcdir"/todo.sr.ht-lmtp.confd \ + "$pkgdir"/etc/conf.d/todo.sr.ht-lmtp + install -Dm755 "$srcdir"/todo.sr.ht-webhooks.initd \ + "$pkgdir"/etc/init.d/todo.sr.ht-webhooks + install -Dm644 "$srcdir"/todo.sr.ht-webhooks.confd \ + "$pkgdir"/etc/conf.d/todo.sr.ht-webhooks + install -Dm755 "$srcdir"/todo.sr.ht-api.initd \ + "$pkgdir"/etc/init.d/todo.sr.ht-api + install -Dm644 "$srcdir"/todo.sr.ht-api.confd \ + "$pkgdir"/etc/conf.d/todo.sr.ht-api + install -Dm644 "$srcdir"/todo.sr.ht.gunicorn.conf.py \ + "$pkgdir"/etc/sr.ht/todo.sr.ht.gunicorn.conf.py +} + +_nginx() { + depends="sr.ht-nginx" + pkgdesc="nginx configuration for $pkgname" + install -Dm644 "$srcdir/sr.ht-nginx-master/todo.sr.ht.conf" \ + "$subpkgdir"/etc/nginx/http.d/todo.sr.ht.conf +} + +sha512sums=" +7db1eac243661f246380573eef783339253518c0a0998de8b17d3c6803dcdf6edd178cf06d06e92c84ad2cc01004f5fb7b6520aa0b8adf6312bbf0f0b0074c28 todo.sr.ht-0.74.5.tar.gz +43f867c307a3c4104938522d71a6f128130af3c969598fe52ef9caf9b4788b34448aa6c25ba16403706d9ff83cf313d9b5170c74d30d011628121efdfa3bf626 sr.ht-nginx-0.74.5.tar.gz +946a15e8a723dea178edc451b461f756761a9429fd434820df1955225a9fe73c7aefb838ec32bb9f3a3f7b80a5921641540cdf5fcde3fff272420ea1abe3970e todo.sr.ht.initd +a71116bd25e0c6e8e3e14e4dadb653e6360e2b468bd415439559b56ffc18724efa9bcb593181d8f0fe0cbccf96f3196a452659bb4375e687faf0b09a48ef5557 todo.sr.ht.confd +c4ac342b5fa506c1323d9c55f36b800e16cb9afdecc32f94bf7261c8fa2710db839b84137d24f3e43ac28e036cf21f63c381a650661e722e416c61a6cf44c938 todo.sr.ht-lmtp.initd +8765703a5ac67da782e471f3f89d0c6fb58cf1dba7342377bccba6e39bd324c47d13948edd5a99af6376b39f60239b3689f6983b92353380f208fe1f12589907 todo.sr.ht-lmtp.confd +befda599f189e99b542ebaf5dd17739169bf73a1499c9de92a98778bd108bb9813e1838e461ced494c6b495a16e34cf805abdb3ccabcf14c2ccecf2d42e780df todo.sr.ht-webhooks.confd +a2e9686eacd4f37262067749b8844c005839cf190751ab9d49f631e1aa61f64541715e19a942ab20f0541db2b7594499c5c12b522c7b4b90176543f05d576eb7 todo.sr.ht-webhooks.initd +6d096a0559db2c689938e0f0c24d0158efe836dec209f694256f2803494884f206cab423cd5d3b08a68c9446aa2aff1eca0a95da31088fa8a9628becbf344215 todo.sr.ht-api.confd +a1b4901c6e18bc5826bb359941c99b53143f2b4ecdddf6fbba89c78fa4721578720d9a60fe95d4a4d382ef98cf1c3ad3e3f75d5d46782b1ec349c0c2adc7164b todo.sr.ht-api.initd +21f39ea0981d7773eb512e5ba234022364d0f7ee9b6ca897ce4c51e3b127eb2d9a7a5fbcaa06d14f20b2df2439421d7261f200e3f4f13b45a91e78ba77bc363c todo.sr.ht.gunicorn.conf.py +" diff --git a/src/todo.sr.ht/LICENSE.txt b/src/todo.sr.ht/LICENSE.txt new file mode 100644 index 0000000..634e145 --- /dev/null +++ b/src/todo.sr.ht/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright 2017 Drew DeVault + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/todo.sr.ht/todo.sr.ht-api.confd b/src/todo.sr.ht/todo.sr.ht-api.confd new file mode 100644 index 0000000..cf42168 --- /dev/null +++ b/src/todo.sr.ht/todo.sr.ht-api.confd @@ -0,0 +1,8 @@ +# Run the daemon as this user: +# TODO_USER=todo + +# Bind the API service to this address: +# TODO_BIND=:5103 + +# Extra arguments to pass to Gunicorn +# TODO_ARGS= diff --git a/src/todo.sr.ht/todo.sr.ht-api.initd b/src/todo.sr.ht/todo.sr.ht-api.initd new file mode 100755 index 0000000..cac1a5c --- /dev/null +++ b/src/todo.sr.ht/todo.sr.ht-api.initd @@ -0,0 +1,24 @@ +#!/sbin/openrc-run +name="todo.sr.ht-api" +description="todo.sr.ht API service" +supervisor=supervise-daemon +TODO_USER=${TODO_USER:-todo} +TODO_BIND=${TODO_BIND:-:5103} +TODO_ARGS=${TODO_ARGS:-} +LOGS=/var/log/todo.sr.ht-api.log +supervise_daemon_args="-1 $LOGS -2 $LOGS" +command="/usr/bin/todosrht-api" +command_args="-b $TODO_BIND" +command_user="$TODO_USER:$TODO_USER" +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + need net + use redis + use postgresql + use pgbouncer +} + +start_pre() { + checkpath -f "$LOGS" -m 644 -o "$TODO_USER:$TODO_USER" +} diff --git a/src/todo.sr.ht/todo.sr.ht-lmtp.confd b/src/todo.sr.ht/todo.sr.ht-lmtp.confd new file mode 100644 index 0000000..cc8afea --- /dev/null +++ b/src/todo.sr.ht/todo.sr.ht-lmtp.confd @@ -0,0 +1,5 @@ +# Run the daemon as this user: +# TODO_USER=todo + +# Extra arguments to pass to Gunicorn +# TODO_ARGS= diff --git a/src/todo.sr.ht/todo.sr.ht-lmtp.initd b/src/todo.sr.ht/todo.sr.ht-lmtp.initd new file mode 100755 index 0000000..e89529b --- /dev/null +++ b/src/todo.sr.ht/todo.sr.ht-lmtp.initd @@ -0,0 +1,22 @@ +#!/sbin/openrc-run +name="todo.sr.ht-ltmp" +description="todo.sr.ht mail processing daemon" +supervisor=supervise-daemon +TODO_USER=${TODO_USER:-todo} +TODO_ARGS=${TODO_ARGS:-} +LOGS=/var/log/todo.sr.ht-lmtp.log +supervise_daemon_args="-1 $LOGS -2 $LOGS" +command="/usr/bin/todosrht-lmtp" +command_user="$TODO_USER:$TODO_USER" +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + need net + use redis + use postgresql + use pgbouncer +} + +start_pre() { + checkpath -f "$LOGS" -m 644 -o "$TODO_USER:$TODO_USER" +} diff --git a/src/todo.sr.ht/todo.sr.ht-webhooks.confd b/src/todo.sr.ht/todo.sr.ht-webhooks.confd new file mode 100644 index 0000000..736a3df --- /dev/null +++ b/src/todo.sr.ht/todo.sr.ht-webhooks.confd @@ -0,0 +1,5 @@ +# Run the daemon as this user: +# TODO_USER=todo + +# Extra arguments to pass to celery +# TODO_ARGS= diff --git a/src/todo.sr.ht/todo.sr.ht-webhooks.initd b/src/todo.sr.ht/todo.sr.ht-webhooks.initd new file mode 100755 index 0000000..ff13f91 --- /dev/null +++ b/src/todo.sr.ht/todo.sr.ht-webhooks.initd @@ -0,0 +1,23 @@ +#!/sbin/openrc-run +name="todo.sr.ht-webhooks" +description="todo.sr.ht webhook delivery service" +supervisor=supervise-daemon +TODO_USER=${TODO_USER:-todo} +TODO_ARGS=${TODO_ARGS:-} +LOGS=/var/log/todo.sr.ht-webhooks.log +supervise_daemon_args="-1 $LOGS -2 $LOGS" +command="/usr/bin/celery" +command_args="-A todosrht.webhooks worker --loglevel=info $GIT_ARGS" +command_user="$TODO_USER:$TODO_USER" +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + need net + use redis + use postgresql + use pgbouncer +} + +start_pre() { + checkpath -f "$LOGS" -m 644 -o "$TODO_USER:$TODO_USER" +} diff --git a/src/todo.sr.ht/todo.sr.ht.confd b/src/todo.sr.ht/todo.sr.ht.confd new file mode 100644 index 0000000..5da096b --- /dev/null +++ b/src/todo.sr.ht/todo.sr.ht.confd @@ -0,0 +1,11 @@ +# Run the daemon as this user: +# TODO_USER=todo + +# Bind the web service to this address: +# TODO_BIND=127.0.0.1:5003 + +# Gunicorn configuration file +# TODO_GUNICORN_CONF=/etc/sr.ht/todo.sr.ht.gunicorn.conf.py + +# Extra arguments to pass to Gunicorn +# TODO_ARGS= diff --git a/src/todo.sr.ht/todo.sr.ht.gunicorn.conf.py b/src/todo.sr.ht/todo.sr.ht.gunicorn.conf.py new file mode 100644 index 0000000..aa3e7ae --- /dev/null +++ b/src/todo.sr.ht/todo.sr.ht.gunicorn.conf.py @@ -0,0 +1,5 @@ +from prometheus_client import multiprocess + + +def child_exit(server, worker): + multiprocess.mark_process_dead(worker.pid) diff --git a/src/todo.sr.ht/todo.sr.ht.initd b/src/todo.sr.ht/todo.sr.ht.initd new file mode 100755 index 0000000..61cf457 --- /dev/null +++ b/src/todo.sr.ht/todo.sr.ht.initd @@ -0,0 +1,32 @@ +#!/sbin/openrc-run +name="todo.sr.ht" +description="todo.sr.ht service" +supervisor=supervise-daemon +TODO_USER=${TODO_USER:-todo} +TODO_BIND=${TODO_BIND:-127.0.0.1:5003} +TODO_GUNICORN_CONF=${TODO_GUNICORN_CONF:-/etc/sr.ht/todo.sr.ht.gunicorn.conf.py} +TODO_ARGS=${TODO_ARGS:-} +LOGS=/var/log/todo.sr.ht.log +prometheus_multiproc_dir=/run/todo.sr.ht +supervise_daemon_args="-1 $LOGS -2 $LOGS -e prometheus_multiproc_dir=$prometheus_multiproc_dir" +command="/usr/bin/gunicorn" +command_args="todosrht.app:app -b $TODO_BIND -c $TODO_GUNICORN_CONF $TODO_ARGS" +command_user="$TODO_USER:$TODO_USER" +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + need net + use redis + use postgresql + use pgbouncer +} + +start_pre() { + checkpath -f "$LOGS" -m 644 -o "$TODO_USER:$TODO_USER" + # Workaround for https://github.com/OpenRC/openrc/issues/335 + if [ -n "$prometheus_multiproc_dir" ] + then + checkpath -d "$prometheus_multiproc_dir" -m 775 -o "$TODO_USER:$TODO_USER" + rm -rf "$prometheus_multiproc_dir"/* + fi +} diff --git a/src/todo.sr.ht/todo.sr.ht.post-install b/src/todo.sr.ht/todo.sr.ht.post-install new file mode 100644 index 0000000..67bd6b0 --- /dev/null +++ b/src/todo.sr.ht/todo.sr.ht.post-install @@ -0,0 +1,3 @@ +#!/bin/sh +addgroup -S todo || true +adduser -SDH -s /sbin/nologin -G todo -g todo todo || true diff --git a/src/todo.sr.ht/todo.sr.ht.post-upgrade b/src/todo.sr.ht/todo.sr.ht.post-upgrade new file mode 100644 index 0000000..bd74197 --- /dev/null +++ b/src/todo.sr.ht/todo.sr.ht.post-upgrade @@ -0,0 +1,3 @@ +#!/bin/sh +srht-migrate todo.sr.ht -a upgrade head +todosrht-migrate -a upgrade head -- 2.43.4