A => .gitignore +3 -0
@@ 1,3 @@
+pkg
+builder/abuild/*.rsa
+builder/abuild/*.rsa.pub
A => LICENSE.md +31 -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.
+
A => Makefile +27 -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
A => README.md +43 -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 .
+
A => src/builds.sr.ht/APKBUILD +99 -0
@@ 1,99 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/builds.sr.ht/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/builds.sr.ht/builds.sr.ht-api.confd +8 -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=
A => src/builds.sr.ht/builds.sr.ht-api.initd +26 -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"
+}
A => src/builds.sr.ht/builds.sr.ht-worker.confd +5 -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=
A => src/builds.sr.ht/builds.sr.ht-worker.initd +24 -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"
+}
+
A => src/builds.sr.ht/builds.sr.ht.confd +11 -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=
A => src/builds.sr.ht/builds.sr.ht.gunicorn.conf.py +5 -0
@@ 1,5 @@
+from prometheus_client import multiprocess
+
+
+def child_exit(server, worker):
+ multiprocess.mark_process_dead(worker.pid)
A => src/builds.sr.ht/builds.sr.ht.initd +32 -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
+}
A => src/builds.sr.ht/builds.sr.ht.post-upgrade +3 -0
@@ 1,3 @@
+#!/bin/sh
+srht-migrate builds.sr.ht -a upgrade head
+buildsrht-migrate -a upgrade head
A => src/builds.sr.ht/builds.sr.ht.pre-install +3 -0
@@ 1,3 @@
+#!/bin/sh
+addgroup -S builds || true
+adduser -SDH -s /sbin/nologin -g builds builds || true
A => src/git.sr.ht/APKBUILD +81 -0
@@ 1,81 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/git.sr.ht/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/git.sr.ht/git.sr.ht-api.confd +8 -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=
A => src/git.sr.ht/git.sr.ht-api.initd +24 -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"
+}
A => src/git.sr.ht/git.sr.ht-webhooks.confd +5 -0
@@ 1,5 @@
+# Run the daemon as this user:
+# GIT_USER=git
+
+# Extra arguments to pass to celery
+# GIT_ARGS=
A => src/git.sr.ht/git.sr.ht-webhooks.initd +23 -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"
+}
A => src/git.sr.ht/git.sr.ht.confd +11 -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=
A => src/git.sr.ht/git.sr.ht.gunicorn.conf.py +5 -0
@@ 1,5 @@
+from prometheus_client import multiprocess
+
+
+def child_exit(server, worker):
+ multiprocess.mark_process_dead(worker.pid)
A => src/git.sr.ht/git.sr.ht.initd +32 -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
+}
A => src/git.sr.ht/git.sr.ht.post-install +3 -0
@@ 1,3 @@
+#!/bin/sh
+addgroup -S git || true
+adduser -SD -h /var/lib/git -s /bin/sh -G git -g git git || true
A => src/git.sr.ht/git.sr.ht.post-upgrade +3 -0
@@ 1,3 @@
+#!/bin/sh
+srht-migrate git.sr.ht -a upgrade head
+gitsrht-migrate -a upgrade head
A => src/lists.sr.ht/APKBUILD +94 -0
@@ 1,94 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/lists.sr.ht/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/lists.sr.ht/lists.sr.ht-api.confd +8 -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=
A => src/lists.sr.ht/lists.sr.ht-api.initd +24 -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"
+}
A => src/lists.sr.ht/lists.sr.ht-lmtp.confd +2 -0
@@ 1,2 @@
+# Run the daemon as this user:
+# LISTS_USER=lists
A => src/lists.sr.ht/lists.sr.ht-lmtp.initd +21 -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"
+}
A => src/lists.sr.ht/lists.sr.ht-process.confd +5 -0
@@ 1,5 @@
+# Run the daemon as this user:
+# LISTS_USER=lists
+
+# Extra arguments to pass to celery
+# LISTS_ARGS=
A => src/lists.sr.ht/lists.sr.ht-process.initd +23 -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"
+}
A => src/lists.sr.ht/lists.sr.ht-webhooks.confd +5 -0
@@ 1,5 @@
+# Run the daemon as this user:
+# LISTS_USER=lists
+
+# Extra arguments to pass to celery
+# LISTS_ARGS=
A => src/lists.sr.ht/lists.sr.ht-webhooks.initd +23 -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"
+}
A => src/lists.sr.ht/lists.sr.ht.confd +11 -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=
A => src/lists.sr.ht/lists.sr.ht.gunicorn.conf.py +5 -0
@@ 1,5 @@
+from prometheus_client import multiprocess
+
+
+def child_exit(server, worker):
+ multiprocess.mark_process_dead(worker.pid)
A => src/lists.sr.ht/lists.sr.ht.initd +32 -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
+}
A => src/lists.sr.ht/lists.sr.ht.post-install +3 -0
@@ 1,3 @@
+#!/bin/sh
+addgroup -S lists || true
+adduser -SDH -s /sbin/nologin -G lists -g lists lists || true
A => src/lists.sr.ht/lists.sr.ht.post-upgrade +3 -0
@@ 1,3 @@
+#!/bin/sh
+srht-migrate lists.sr.ht -a upgrade head
+listssrht-migrate -a upgrade head
A => src/meta.sr.ht/APKBUILD +85 -0
@@ 1,85 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/meta.sr.ht/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/meta.sr.ht/meta.sr.ht-api.confd +8 -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=
A => src/meta.sr.ht/meta.sr.ht-api.initd +26 -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"
+}
A => src/meta.sr.ht/meta.sr.ht-webhooks.confd +5 -0
@@ 1,5 @@
+# Run the daemon as this user:
+# META_USER=meta
+
+# Extra arguments to pass to Gunicorn
+# META_ARGS=
A => src/meta.sr.ht/meta.sr.ht-webhooks.initd +23 -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"
+}
A => src/meta.sr.ht/meta.sr.ht.confd +11 -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=
A => src/meta.sr.ht/meta.sr.ht.gunicorn.conf.py +5 -0
@@ 1,5 @@
+from prometheus_client import multiprocess
+
+
+def child_exit(server, worker):
+ multiprocess.mark_process_dead(worker.pid)
A => src/meta.sr.ht/meta.sr.ht.initd +32 -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
+}
A => src/meta.sr.ht/meta.sr.ht.post-install +3 -0
@@ 1,3 @@
+#!/bin/sh
+addgroup -S meta || true
+adduser -SDH -s /sbin/nologin -G meta -g meta meta || true
A => src/meta.sr.ht/meta.sr.ht.post-upgrade +3 -0
@@ 1,3 @@
+#!/bin/sh
+srht-migrate meta.sr.ht -a upgrade head
+metasrht-migrate -a upgrade head
A => src/py3-aiosmtpd/APKBUILD +34 -0
@@ 1,34 @@
+# Contributor: Drew DeVault <sir@cmpwn.com>
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-aiosmtpd/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-amqp/APKBUILD +30 -0
@@ 1,30 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-amqp/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-ansi2html/APKBUILD +40 -0
@@ 1,40 @@
+# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
+# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
+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
+"
A => src/py3-ansi2html/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-asyncpg/APKBUILD +32 -0
@@ 1,32 @@
+# Contributor: Drew DeVault <sir@cmpwn.com>
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-asyncpg/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-atpublic/APKBUILD +43 -0
@@ 1,43 @@
+# Contributor: Drew DeVault <sir@cmpwn.com>
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-atpublic/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-atpublic/pyproject.toml +97 -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
A => src/py3-billiard/APKBUILD +31 -0
@@ 1,31 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-billiard/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-case/APKBUILD +31 -0
@@ 1,31 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-case/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-celery/7446.patch +34 -0
@@ 1,34 @@
+From 85a8fcf0a6eb421218d746eedd88d158c450cf35 Mon Sep 17 00:00:00 2001
+From: Omer Katz <omer.katz@kcg.tech>
+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
+
A => src/py3-celery/APKBUILD +43 -0
@@ 1,43 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-celery/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-click-didyoumean/APKBUILD +28 -0
@@ 1,28 @@
+# Contributor: Drew DeVault <sir@cmpwn.com>
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-click-didyoumean/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-click-repl/APKBUILD +30 -0
@@ 1,30 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-click-repl/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-colour/APKBUILD +42 -0
@@ 1,42 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-colour/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-colour/setup.cfg +40 -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
A => src/py3-colour/setup.py +57 -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', ]})
A => src/py3-furl/APKBUILD +30 -0
@@ 1,30 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-furl/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-humanize/APKBUILD +30 -0
@@ 1,30 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-humanize/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-infinity/APKBUILD +30 -0
@@ 1,30 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-infinity/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-intervals/APKBUILD +30 -0
@@ 1,30 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-intervals/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-kombu/APKBUILD +32 -0
@@ 1,32 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-kombu/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-minio/APKBUILD +30 -0
@@ 1,30 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-minio/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-mistletoe/APKBUILD +30 -0
@@ 1,30 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-mistletoe/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-orderedmultidict/APKBUILD +30 -0
@@ 1,30 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-orderedmultidict/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-pgpy/APKBUILD +34 -0
@@ 1,34 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-pgpy/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-pgpy/cryptography.patch +101 -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
A => src/py3-scmsrht/APKBUILD +38 -0
@@ 1,38 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-scmsrht/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-sqlalchemy-utils/APKBUILD +41 -0
@@ 1,41 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-sqlalchemy-utils/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-srht/APKBUILD +64 -0
@@ 1,64 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-srht/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-vine/APKBUILD +32 -0
@@ 1,32 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-vine/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/py3-zxcvbn/APKBUILD +30 -0
@@ 1,30 @@
+# Contributor: Drew DeVault <sir@cmpwn.com>
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/py3-zxcvbn/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/todo.sr.ht/APKBUILD +83 -0
@@ 1,83 @@
+# Maintainer: Drew DeVault <sir@cmpwn.com>
+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
+"
A => src/todo.sr.ht/LICENSE.txt +26 -0
@@ 1,26 @@
+Copyright 2017 Drew DeVault <sir@cmpwn.com>
+
+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.
A => src/todo.sr.ht/todo.sr.ht-api.confd +8 -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=
A => src/todo.sr.ht/todo.sr.ht-api.initd +24 -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"
+}
A => src/todo.sr.ht/todo.sr.ht-lmtp.confd +5 -0
@@ 1,5 @@
+# Run the daemon as this user:
+# TODO_USER=todo
+
+# Extra arguments to pass to Gunicorn
+# TODO_ARGS=
A => src/todo.sr.ht/todo.sr.ht-lmtp.initd +22 -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"
+}
A => src/todo.sr.ht/todo.sr.ht-webhooks.confd +5 -0
@@ 1,5 @@
+# Run the daemon as this user:
+# TODO_USER=todo
+
+# Extra arguments to pass to celery
+# TODO_ARGS=
A => src/todo.sr.ht/todo.sr.ht-webhooks.initd +23 -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"
+}
A => src/todo.sr.ht/todo.sr.ht.confd +11 -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=
A => src/todo.sr.ht/todo.sr.ht.gunicorn.conf.py +5 -0
@@ 1,5 @@
+from prometheus_client import multiprocess
+
+
+def child_exit(server, worker):
+ multiprocess.mark_process_dead(worker.pid)
A => src/todo.sr.ht/todo.sr.ht.initd +32 -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
+}
A => src/todo.sr.ht/todo.sr.ht.post-install +3 -0
@@ 1,3 @@
+#!/bin/sh
+addgroup -S todo || true
+adduser -SDH -s /sbin/nologin -G todo -g todo todo || true
A => src/todo.sr.ht/todo.sr.ht.post-upgrade +3 -0
@@ 1,3 @@
+#!/bin/sh
+srht-migrate todo.sr.ht -a upgrade head
+todosrht-migrate -a upgrade head