diff options
-rw-r--r-- | user/apaste/APKBUILD | 75 | ||||
-rw-r--r-- | user/apaste/apaste-server.post-install | 7 | ||||
-rw-r--r-- | user/apaste/apaste-server.pre-install | 7 | ||||
-rw-r--r-- | user/apaste/apasted-log.run | 5 | ||||
-rw-r--r-- | user/apaste/apasted.confd | 32 | ||||
-rw-r--r-- | user/apaste/apasted.initd | 65 | ||||
-rw-r--r-- | user/apaste/apasted.run | 19 | ||||
-rw-r--r-- | user/apaste/apastesd.run | 23 |
8 files changed, 233 insertions, 0 deletions
diff --git a/user/apaste/APKBUILD b/user/apaste/APKBUILD new file mode 100644 index 000000000..23a289a3e --- /dev/null +++ b/user/apaste/APKBUILD @@ -0,0 +1,75 @@ +# Contributor: Laurent Bercot <ska-adelie@skarnet.org> +# Maintainer: Laurent Bercot <ska-adelie@skarnet.org> +pkgname=apaste +pkgver=0.0.2.0 +pkgrel=0 +pkgdesc="A command-line pastebin" +url="https://skarnet.org/software/apaste/" +arch="all" +options="!check" # No test suite. +license="ISC" +depends="s6-networking" +makedepends="skalibs-dev>=2.14.1.1 s6-networking-dev>=2.7.0.2" +subpackages="apasted:server apasted-openrc:openrc" +source=" + https://skarnet.org/software/apaste/apaste-$pkgver.tar.gz + apasted.run + apastesd.run + apasted-log.run + apasted.confd + apasted.initd + " + +build() { + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var + make +} + +_makeservicedir() { + name="apaste${1}d-${2}" + fn="$subpkgdir/var/lib/apasted/services/$name" + mkdir -p -m 0755 "$fn/log" + echo 3 > "$fn/log/notification-fd" + sed -e "s/@S@/${1}/g; s/@V@/${2}/g;" "$srcdir/apasted-log.run" > "$fn/log/run" + chmod 0755 "$fn/log/run" + echo 3 > "$fn/notification-fd" + sed -e "s/@V@/${2}/g;" "$srcdir/apaste${1}d.run" > "$fn/run" + chmod 0755 "$fn/run" +} + +package() { + make DESTDIR="$pkgdir" install +} + +server() { + depends="execline s6 s6-networking>=2.7.0.2 apasted-openrc" + pkgdesc="A server for the apaste command-line pastebin" + install="apaste-server.pre-install" + mkdir -p -m 0755 "$subpkgdir/usr/bin" "$subpkgdir/var/lib/apasted/services" + mv "$pkgdir/usr/bin/apasted" "$subpkgdir/usr/bin/" + _makeservicedir "" 4 + _makeservicedir "" 6 + _makeservicedir s 4 + _makeservicedir s 6 +} + +openrc() { + depends="apasted" + mkdir -p -m 0755 "$subpkgdir/etc/conf.d" "$subpkgdir/etc/init.d" + cp "$srcdir/apasted.confd" "$subpkgdir/etc/conf.d/apasted" + cp "$srcdir/apasted.initd" "$subpkgdir/etc/init.d/apasted" + chmod 0755 "$subpkgdir/etc/init.d/apasted" +} + +sha512sums="b1550d738801ddee528d0ce62333aa9a8fc9824183a61be295e767fbcdb1ae4d15a5e34295754cc5e8c51c8b410a56972bac28c5812099652fb8bb5140fb4c15 apaste-0.0.2.0.tar.gz +27f6b3ac98f52a6ed11d225ea19e34160b1fef2dd980a32a43ff03499e121b6418612be4c94d1139388bee47b14a5ea24edc383fcfcfe55abe7daf12be2d514c apasted.run +8cd74ba6c6579912083f9605056b46ca2887faaf23a0d1981043a5ac4d6e724def51a7c087fb719f2b0189e6b0a0d9469a1e955fcbf04c8ea9f2d818649c122e apastesd.run +9341c1c69c1d45b35052b0042665fffb9cff6583fad558ed37a19af574b53a5e298727c43a6c718fd40936e8f16d1a10e9c229392595ba1e06ddb21d1d8b055b apasted-log.run +3b91225252d95d676097d337ca77ef2bdffb52baa657197efe079b82c663baeaed0882993eeed7f7ce260f051e439159c61368f8a1d4b84d1daa74fe358c39d7 apasted.confd +da909cfc4aaa6571dda2fa0e4713e61c1b7f18ca35907ce4d0e3aa639596c69d801d6369b43ce67b20aa8d8a4050f46d98823b6158f80170866263b7b7a79e5b apasted.initd" diff --git a/user/apaste/apaste-server.post-install b/user/apaste/apaste-server.post-install new file mode 100644 index 000000000..aba532a62 --- /dev/null +++ b/user/apaste/apaste-server.post-install @@ -0,0 +1,7 @@ +#!/bin/sh -e + +mkdir -p -m 0755 /var/log +list="/var/log/apasted-4 /var/log/apasted-6 /var/log/apastesd-4 /var/log/apastesd-6" +mkdir -p -m 0755 $list +chown apastedlog:apasted $list +chmod 02755 $list diff --git a/user/apaste/apaste-server.pre-install b/user/apaste/apaste-server.pre-install new file mode 100644 index 000000000..32782d21f --- /dev/null +++ b/user/apaste/apaste-server.pre-install @@ -0,0 +1,7 @@ +#!/bin/sh + +addgroup -S apasted 2>/dev/null +adduser -S -D -h / -H -s /sbin/nologin -G apasted -g apastedlog apastedlog 2>/dev/null +adduser -S -D -h / -H -s /sbin/nologin -G apasted -g apasted apasted 2>/dev/null + +exit 0 diff --git a/user/apaste/apasted-log.run b/user/apaste/apasted-log.run new file mode 100644 index 000000000..4d10c72b1 --- /dev/null +++ b/user/apaste/apasted-log.run @@ -0,0 +1,5 @@ +#!/bin/execlineb -S1 + +s6-envuidgid apastedlog +exec -c +s6-log -d3 -- t /var/log/apaste@S@d-@V@ diff --git a/user/apaste/apasted.confd b/user/apaste/apasted.confd new file mode 100644 index 000000000..df57ce121 --- /dev/null +++ b/user/apaste/apasted.confd @@ -0,0 +1,32 @@ +# apasted configuration + +# The IPs you want the apasted server to listen on. +# Comment to disable. +APASTED_IPv4=0.0.0.0 +APASTED_IPv6=:: + +# The ports for plaintext service and TLS-tunneled service. +# Comment to disable. +APASTED_PORT=9999 +# APASTED_TLS_PORT=9997 + +# If APASTED_TLS_PORT is present, KEYFILE should point to +# your private key, and CERTFILE should point to your certificate. +# KEYFILE= +# CERTFILE= + +# Where the pastes are stored. Make sure this directory exists +# and is writable by the apasted user. +APASTED_ROOT=/var/tmp/apaste + +# If you want a prefix for the slugs. +# APASTED_PREFIX= + +# Maximum number of client files stored at once. Default is 10. +# APASTED_MAXFILES=10 + +# Maximum client file size, in bytes. Default is 1048576 (1 MB). +# APASTED_MAXSIZE=1048576 + +# Maximum total size of a transaction, in bytes. Default is 10485760 (10 MB). +# APASTED_MAXTOTALSIZE=10485760 diff --git a/user/apaste/apasted.initd b/user/apaste/apasted.initd new file mode 100644 index 000000000..106c2b11a --- /dev/null +++ b/user/apaste/apasted.initd @@ -0,0 +1,65 @@ +#!/sbin/openrc-run + +description="Start/stop the apasted services" + +depend() +{ + after net + after localmount +} + +_get_services() +{ + . /etc/conf.d/apasted + list= + if test -n "$APASTED_PORT" ; then + if test -n "$APASTED_IPv4" ; then + list="apasted-4" + fi + if test -n "$APASTED_IPv6" ; then + list="$list apasted-6" + fi + fi + if test -n "$APASTED_TLS_PORT" ; then + if test -n "$APASTED_IPV4" ; then + list="apastesd-4" + fi + if test -n "$APASTED_IPV6" ; then + list="$list apastesd-6" + fi + fi + echo $list +} + +stop() +{ + ebegin "Stopping the apasted services" + for i in `_get_services` ; do + s6-svunlink /run/service "$i" + done + eend $? +} + +start() +{ + ebegin "Starting the apasted services" + for i in `_get_services` ; do + s6-svlink -t10000 /run/service "/var/lib/apasted/services/$i" + done + eend $? +} + +status() +{ + for i in `_get_services` ; do + echo -n "${i}: " + s6-svstat "/run/service/${i}" + done +} + +restart() +{ + for i in `_get_services` ; do + s6-svc -rwR "/run/service/$i" + done +} diff --git a/user/apaste/apasted.run b/user/apaste/apasted.run new file mode 100644 index 000000000..4b49c6320 --- /dev/null +++ b/user/apaste/apasted.run @@ -0,0 +1,19 @@ +#!/bin/execlineb -S1 + +fdmove -c 2 1 +emptyenv -p +fdmove 1 3 +envfile /etc/conf.d/apasted +multisubstitute +{ + importas -ui APASTED_IPv@V@ APASTED_IPv@V@ + importas -ui APASTED_PORT APASTED_PORT + importas -ui APASTED_ROOT APASTED_ROOT + importas -uD "" APASTED_PREFIX APASTED_PREFIX + importas -uD 10 APASTED_MAXFILES APASTED_MAXFILES + importas -uD 1048576 APASTED_MAXSIZE APASTED_MAXSIZE + importas -uD 10485760 APASTED_MAXTOTALSIZE APASTED_MAXTOTALSIZE +} +s6-envuidgid apasted +s6-tcpserver -1 -U -- ${APASTED_IPv@V@} ${APASTED_PORT} +apasted -r 10000 -w 10000 -d ${APASTED_ROOT} -p ${APASTED_PREFIX} -n ${APASTED_MAXFILES} -s ${APASTED_MAXSIZE} -S ${APASTED_MAXTOTALSIZE} diff --git a/user/apaste/apastesd.run b/user/apaste/apastesd.run new file mode 100644 index 000000000..b5d0813f6 --- /dev/null +++ b/user/apaste/apastesd.run @@ -0,0 +1,23 @@ +#!/bin/execlineb -S1 + +fdmove -c 2 1 +emptyenv -p +fdmove 1 3 +envfile /etc/conf.d/apasted +multisubstitute +{ + importas -ui APASTED_IPv@V@ APASTED_IPv@V@ + importas -ui APASTED_TLS_PORT APASTED_TLS_PORT + importas -ui APASTED_ROOT APASTED_ROOT + importas -uD "" APASTED_PREFIX APASTED_PREFIX + importas -uD 10 APASTED_MAXFILES APASTED_MAXFILES + importas -uD 1048576 APASTED_MAXSIZE APASTED_MAXSIZE + importas -uD 10485760 APASTED_MAXTOTALSIZE APASTED_MAXTOTALSIZE + importas -ui KEYFILE KEYFILE + importas -ui CERTFILE CERTFILE +} +s6-envuidgid apasted +export TLS_UID 65534 +export TLS_GID 65534 +s6-tlsserver -1 -U -H -l0 -K 5000 -- ${APASTED_IPv@V@} ${APASTED_TLS_PORT} +apasted -r 10000 -w 10000 -d ${APASTED_ROOT} -p ${APASTED_PREFIX} -n ${APASTED_MAXFILES} -s ${APASTED_MAXSIZE} -S ${APASTED_MAXTOTALSIZE} |