aboutsummaryrefslogtreecommitdiffstats
path: root/community/patchwork
diff options
context:
space:
mode:
authorCarlo Landmeter <clandmeter@alpinelinux.org>2018-01-30 23:40:17 +0000
committerCarlo Landmeter <clandmeter@alpinelinux.org>2018-01-30 23:40:17 +0000
commitd0d2c8164b2266ac86642397ba19baed2e6a5f55 (patch)
tree772b71c461dd0dba2ae02a960212bfaa11dc6d9f /community/patchwork
parent8b198b0998db2476459d39307b6b2996737a4298 (diff)
downloadaports-d0d2c8164b2266ac86642397ba19baed2e6a5f55.tar.bz2
aports-d0d2c8164b2266ac86642397ba19baed2e6a5f55.tar.xz
main/patchwork: move to community
Diffstat (limited to 'community/patchwork')
-rw-r--r--community/patchwork/0001-pwclient-set-default-url-to-alpine-patchwork.patch25
-rw-r--r--community/patchwork/0001-support-busybox-readlink.patch13
-rw-r--r--community/patchwork/0002-remove-uneeded-bashism-from-tools-and-change-path.patch29
-rw-r--r--community/patchwork/APKBUILD82
-rw-r--r--community/patchwork/nginx-patchwork.conf33
-rw-r--r--community/patchwork/nginx-uwsgi-patchwork-conf.ini26
6 files changed, 208 insertions, 0 deletions
diff --git a/community/patchwork/0001-pwclient-set-default-url-to-alpine-patchwork.patch b/community/patchwork/0001-pwclient-set-default-url-to-alpine-patchwork.patch
new file mode 100644
index 0000000000..511e9042f1
--- /dev/null
+++ b/community/patchwork/0001-pwclient-set-default-url-to-alpine-patchwork.patch
@@ -0,0 +1,25 @@
+From 304b9f210a6edccc33b5ead321b43f02884aca62 Mon Sep 17 00:00:00 2001
+From: Carlo Landmeter <clandmeter@gmail.com>
+Date: Thu, 23 Apr 2015 10:01:18 +0200
+Subject: [PATCH] pwclient set default url to alpine patchwork
+
+---
+ apps/patchwork/bin/pwclient | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/apps/patchwork/bin/pwclient b/apps/patchwork/bin/pwclient
+index 2a80981..b1adad3 100755
+--- a/apps/patchwork/bin/pwclient
++++ b/apps/patchwork/bin/pwclient
+@@ -35,7 +35,7 @@ import re
+ # This script will check the PW_XMLRPC_URL environment variable
+ # for the URL to access. If that is unspecified, it will fallback to
+ # the hardcoded default value specified here.
+-DEFAULT_URL = "http://patchwork/xmlrpc/"
++DEFAULT_URL = "http://patchwork.alpinelinux.org/xmlrpc/"
+ CONFIG_FILE = os.path.expanduser('~/.pwclientrc')
+
+ class Filter:
+--
+2.3.5
+
diff --git a/community/patchwork/0001-support-busybox-readlink.patch b/community/patchwork/0001-support-busybox-readlink.patch
new file mode 100644
index 0000000000..3918b58f0e
--- /dev/null
+++ b/community/patchwork/0001-support-busybox-readlink.patch
@@ -0,0 +1,13 @@
+diff --git a/patchwork/bin/parsemail.sh b/patchwork/bin/parsemail.sh
+index a742f60e54..14a608616c 100755
+--- a/patchwork/bin/parsemail.sh
++++ b/patchwork/bin/parsemail.sh
+@@ -20,7 +20,7 @@
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ BIN_DIR=$(dirname "$0")
+-PATCHWORK_BASE=$(readlink -e "$BIN_DIR/../..")
++PATCHWORK_BASE=$(readlink -f "$BIN_DIR/../..")
+
+ if [ -z "$PW_PYTHON" ]; then
+ PW_PYTHON=python2
diff --git a/community/patchwork/0002-remove-uneeded-bashism-from-tools-and-change-path.patch b/community/patchwork/0002-remove-uneeded-bashism-from-tools-and-change-path.patch
new file mode 100644
index 0000000000..858568f7be
--- /dev/null
+++ b/community/patchwork/0002-remove-uneeded-bashism-from-tools-and-change-path.patch
@@ -0,0 +1,29 @@
+diff --git a/tools/patchwork-update-commits b/tools/patchwork-update-commits
+index c84a6305e3..2d34f4f9a9 100755
+--- a/tools/patchwork-update-commits
++++ b/tools/patchwork-update-commits
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # Patchwork - automated patch tracking system
+ # Copyright (C) 2010 Jeremy Kerr <jk@ozlabs.org>
+diff --git a/tools/post-receive.hook b/tools/post-receive.hook
+index 8098ce825a..b8a1fd2f2a 100755
+--- a/tools/post-receive.hook
++++ b/tools/post-receive.hook
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ # Patchwork - automated patch tracking system
+ # Copyright (C) 2010 martin f. krafft <madduck@madduck.net>
+ #
+@@ -21,7 +21,7 @@
+ # Git post-receive hook to update Patchwork patches after Git pushes
+ set -eu
+
+-PW_DIR=/opt/patchwork/patchwork
++PW_DIR=/usr/share/webapps/patchwork/patchwork
+
+ #TODO: the state map should really live in the repo's git-config
+ STATE_MAP="refs/heads/master:Accepted"
diff --git a/community/patchwork/APKBUILD b/community/patchwork/APKBUILD
new file mode 100644
index 0000000000..787d0f3012
--- /dev/null
+++ b/community/patchwork/APKBUILD
@@ -0,0 +1,82 @@
+# Con#tributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=patchwork
+pkgver=2.0.1
+pkgrel=0
+pkgdesc="Web-based patch tracking system"
+url="https://github.com/getpatchwork/patchwork"
+arch="noarch"
+license="GPL"
+depends="py-django py-django-registration git py-psycopg2"
+subpackages="$pkgname-doc $pkgname-uwsgi-apache2:apache2_wsgi $pkgname-uwsgi-nginx:nginx_wsgi $pkgname-mysql
+ $pkgname-postgresql pwclient:pwclient"
+source="$pkgname-$pkgver.tar.gz::https://github.com/getpatchwork/$pkgname/archive/v$pkgver.tar.gz
+ 0001-support-busybox-readlink.patch
+ 0002-remove-uneeded-bashism-from-tools-and-change-path.patch
+ nginx-uwsgi-patchwork-conf.ini
+ nginx-patchwork.conf"
+
+builddir="$srcdir"/$pkgname-$pkgver
+
+build() {
+ cd "$builddir"
+ return 0
+}
+
+package() {
+ cd "$builddir"
+ mkdir -p "$pkgdir"/usr/share/webapps/$pkgname
+ install -Dm644 COPYING \
+ "$pkgdir"/usr/share/doc/$pkgname/COPYING
+ rm -f COPYING
+ install -Dm644 patchwork/settings/production.example.py \
+ "$pkgdir"/etc/$pkgname/production.py
+ mv * "$pkgdir"/usr/share/webapps/$pkgname
+ cd "$pkgdir"/usr/share/webapps/patchwork/patchwork/settings
+ ln -sf /etc/patchwork/production.py
+}
+
+apache2_wsgi() {
+ pkgdesc="$pkgname apache2 wsgi support"
+ depends="apache2 apache2-mod-wsgi"
+ replaces="$pkgname-apache2-wsgi"
+ install_if="$pkgname=$pkgver-r$pkgrel apache2-mod-wsgi"
+ install -Dm644 "$pkgdir"/usr/share/webapps/patchwork/lib/apache2/patchwork.wsgi.conf \
+ "$subpkgdir"/etc/apache2/conf.d/patchwork.wsgi.conf
+}
+
+nginx_wsgi() {
+ pkgdesc="$pkgname nginx wsgi support"
+ depends="nginx uwsgi-python"
+ replaces="$pkgname-nginx_wsgi"
+ install_if="nginx patchwork uwsgi"
+ install -Dm644 "$srcdir"/nginx-patchwork.conf \
+ "$subpkgdir"/etc/nginx/conf.d/patchwork.conf
+ install -Dm644 "$srcdir"/nginx-uwsgi-patchwork-conf.ini \
+ "$subpkgdir"/etc/uwsgi/conf.d/patchwork.ini
+}
+
+mysql() {
+ pkgdesc="$pkgname mysql support"
+ depends="py-mysqldb"
+ mkdir -p "$subpkgdir"
+}
+
+postgresql() {
+ pkgdesc="$pkgname postgresql support"
+ depends="py-psycopg2"
+ mkdir -p "$subpkgdir"
+}
+
+pwclient() {
+ pkgdesc="command-line client for patchwork"
+ depends="python2"
+ install -Dm775 "$pkgdir"/usr/share/webapps/patchwork/patchwork/bin/pwclient \
+ "$subpkgdir"/usr/bin/pwclient
+}
+
+sha512sums="95dcfcdf19de0a65a77ab4274de82457c969e3a65705da25cbec742e4d6671e51e629d5366d47ee510a1ac622afde3e2637fa4a013fd576a66808be75a7e84b5 patchwork-2.0.1.tar.gz
+5facc2c2620b2d614011bcdc06bb481fb1481c79333579e5a7fa5b8bc4f97d1651cc8c4632a5e150b62674d64c00345341229319f1edb2016721868e84146826 0001-support-busybox-readlink.patch
+f6d3590b3ac53797e0ae25fe50ab0935608be5ded44665599cbc91e93558895eddc6a7a717153d81fc194b314d7854686577ef5ecf9e0302b7824ce3b3863f7b 0002-remove-uneeded-bashism-from-tools-and-change-path.patch
+28911a25e00a254237f7214fb681e5e984a2eae331e610be62967d5e246958e0f8d3f84861d8fd17c1190c1df72a25f28ddb33843b3679a3864beb00cb4b4961 nginx-uwsgi-patchwork-conf.ini
+862dd2522236a0b18d2a8d06f1ad91ad0fd0936fa502d95e09556641e67d42e1212821bfd7fb98923e4fe8b8a7369ded8c23831fb496b1e2833d9831c1b23725 nginx-patchwork.conf"
diff --git a/community/patchwork/nginx-patchwork.conf b/community/patchwork/nginx-patchwork.conf
new file mode 100644
index 0000000000..575bc3e0ba
--- /dev/null
+++ b/community/patchwork/nginx-patchwork.conf
@@ -0,0 +1,33 @@
+server {
+ listen 80;
+ server_name domain.tld;
+ access_log /var/log/nginx/patchwork.log;
+ error_log /var/log/nginx/patchwork-error.log;
+
+ tcp_nopush on;
+ tcp_nodelay on;
+ keepalive_timeout 65;
+ types_hash_max_size 2048;
+
+ gzip on;
+ gzip_proxied any;
+ gzip_types text/plain text/css text/javascript application/x-javascript
+ text/xml application/xml image/svg+xml
+ application/vnd.ms-fontobject application/x-font-ttf font/opentype;
+
+ location = favicon.ico {
+ access_log off;
+ log_not_found off;
+ }
+
+ location /static {
+ alias /usr/share/webapps/patchwork/htdocs;
+ expires 3h;
+ }
+
+ location / {
+ include uwsgi_params;
+ uwsgi_pass unix:/run/uwsgi/patchwork.sock;
+ uwsgi_modifier1 30;
+ }
+}
diff --git a/community/patchwork/nginx-uwsgi-patchwork-conf.ini b/community/patchwork/nginx-uwsgi-patchwork-conf.ini
new file mode 100644
index 0000000000..2f76b80ddf
--- /dev/null
+++ b/community/patchwork/nginx-uwsgi-patchwork-conf.ini
@@ -0,0 +1,26 @@
+[uwsgi]
+project = patchwork
+base = /usr/share/webapps
+user = nginx
+group = www-data
+
+chdir = %(base)/%(project)
+pythonpath = %(base)/%(project)
+module = %(project).wsgi:application
+wsgi-file = %(project)/wsgi.py
+plugins = python
+
+master = true
+processes = 4
+# increase buffer size to avoid "502 bad gateway error"
+# "recv() failed (104: Connection reset by peer) while reading response header from upstream"
+buffer-size = 16384
+
+uid = %(user)
+gid = %(group)
+
+daemonize = /var/log/%(project).log
+socket = /run/uwsgi/%(project).sock
+chown-socket = nginx:www-data
+chmod-socket = 665
+vacuum = true