blob: 0ba6ea144d25be3951f33b804da2e2ca66019b6a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
# Maintainer: Caleb Maclennan <caleb@alerque.com>
# Contributor: Neal Gompa <ngompa13@gmail.com>
# Fedora spec: https://src.fedoraproject.org/rpms/pagure/blob/master/f/pagure.spec
# OpenSUSE spec: https://build.opensuse.org/package/view_file/openSUSE:Factory/pagure/pagure.spec?expand=1
# Mageia spec: http://svnweb.mageia.org/packages/cauldron/pagure/current/SPECS/pagure.spec?view=markup
pkgbase=pagure
pkgname=("$pkgbase" "$pkgbase-apache" "$pkgbase-mariadb" "$pkgbase-postgresql" "$pkgbase-sqlite")
pkgver=5.13.3
pkgrel=0.4
pkgdesc='A git-centered forge based on python using pygit2'
arch=(any)
url="https://pagure.io/$pkgbase"
license=(GPL-2.0-only)
_pydeps=(alembic
arrow
bcrypt
binaryornot
bleach
blinker
celery
chardet
cryptography
docutils
email-validator
flask
flask-wtf
kitchen
markdown
munch
pillow
psutil
pygit2
openid
openid-cla
openid-teams
redis
requests
six
sqlalchemy
straight.plugin
wtforms)
depends=(git
gitolite # This is technically optional, but our packaging assumes it
libffi
libgit2
libjpeg
python
"${_pydeps[@]/#/python-}"
redis)
optdepends=('clamav: Scan uploaded attachments')
makedepends=(python-{build,installer,wheel}
python-setuptools)
_archive="$pkgname-$pkgver"
source=("https://releases.pagure.org/$pkgbase/$_archive.tar.gz")
sha256sums=('f684d8193d4c4cf637b465c80cbfece6eb2b1646df3ec4f993adf75ea78d5a1a')
_homedir="/var/lib/$pkgbase"
_user=$pkgbase
prepare() {
cd "$_archive"
local site_packages=$(python -c "import site; print(site.getsitepackages()[0])")
sed -i -e "s#/usr/lib/pythonX.Y/site-packages#$site_packages#" \
-e 's/#//' \
-e '/!mod_authz/,+4d' \
-e '/# Apache 2.4/d' \
-e "s#/path/to/git/repositorios#$_homedir#g" \
-e "s/=git/=$_user/g" \
files/pagure-apache-httpd.conf
sed -i -e "/^#DB_URL/d;/^DB_URL/s/^.*$/execdir('pagure_database.cfg')/" \
files/pagure.cfg.sample
}
build() {
cd "$_archive"
python -m build -wn
}
check() {
cd "$_archive"
}
package_pagure() {
depends=("$pkgbase-database=$pkgver")
optdepends=("$pkgbase-apache: Apache host configuration files")
backup=("etc/$pkgbase/alembic.ini"
"etc/$pkgbase/pagure.cfg")
cd "$_archive"
python -m installer -d "$pkgdir" dist/*.whl
install -Dm644 -t "$pkgdir/usr/share/doc/$pkgbase/" {README,UPGRADING}.rst
install -Dm644 -T "files/pagure.cfg.sample" "$pkgdir/etc/$pkgbase/pagure.cfg"
install -Dm644 -t "$pkgdir/etc/$pkgbase/" "files/alembic.ini"
install -Dm644 -t "$pkgdir/usr/share/$pkgbase/pagure_createdb.py" createdb.py
install -Dm644 -t "$pkgdir/usr/share/$pkgbase/" files/{api_key_expire_mail,mirror_project_in}.py
install -Dm755 -t "$pkgdir/usr/lib/$pkgbase/" files/{aclchecker,keyhelper}.py
cp -r alembic "$pkgdir/usr/share/$pkgbase/"
# TODO: package stuff in doc folder, needs building
}
package_pagure-apache() {
pkgdesc+=" (Apache host configuration)"
depends=("$pkgbase=$pkgver" 'apache' 'mod_wsgi')
backup=("etc/httpd/conf/extra/$pkgbase.conf")
cd "$_archive"
install -Dm644 -T "files/pagure-apache-httpd.conf" "$pkgdir/etc/httpd/conf/extra/$pkgbase.conf"
install -Dm644 -t "$pkgdir/usr/lib/$pkgbase/" files/{doc_,}pagure.wsgi
}
package_pagure-mariadb() {
pkgdesc+=" (MariaDB database configuration)"
depends=("$pkgbase=$pkgver" 'mariadb' 'python-mysqlclient') # alternative: python-pymysql
provides=("$pkgbase-database")
conflicts=("$pkgbase-postgresql" "$pkgbase-sqlite")
backup=("etc/$pkgbase/pagure_database.cfg")
install="$pkgbase-mariadb.install"
install -Dm600 <(echo "DB_URL = 'mysql://$_user:<password>@localhost/$pkgbase'") \
"$pkgdir/etc/$pkgbase/pagure_database.cfg"
}
package_pagure-postgresql() {
pkgdesc+=" (PostgreSQL database configuration)"
depends=("$pkgbase=$pkgver" 'postgresql' 'python-psycopg2') # alternative: python-pg8000
provides=("$pkgbase-database")
conflicts=("$pkgbase-mariadb" "$pkgbase-sqlite")
backup=("etc/$pkgbase/pagure_database.cfg")
install="$pkgbase-postgresql.install"
install -Dm600 <(echo "DB_URL = 'postgres://$_user:<password>@localhost/$pkgbase'") \
"$pkgdir/etc/$pkgbase/pagure_database.cfg"
}
package_pagure-sqlite() {
pkgdesc+=" (SQLite database configuration)"
depends=("$pkgbase=$pkgver" 'sqlite')
provides=("$pkgbase-database")
conflicts=("$pkgbase-mariadb" "$pkgbase-postgresql")
backup=("etc/$pkgbase/pagure_database.cfg")
install="$pkgbase-sqlite.install"
install -Dm600 <(echo "DB_URL = 'sqlite:///var/tmp/$pkgbase.sqlite'") \
"$pkgdir/etc/$pkgbase/pagure_database.cfg"
}
|