summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 835bc2542871c5194e1a1066fdfc65064499537d (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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# Maintainer: BigfootACA <bigfoot@classfun.cn>

_pyname=placement
_pycname=openstack-${_pyname}
pkgbase=$_pycname
pkgname=($_pycname{,-doc})
pkgver=5.0.1
pkgrel=1
pkgdesc="Resource provider inventory usage and allocation service"
arch=('any')
url="https://docs.openstack.org/placement/latest/"
license=('Apache')
depends=(
	python
	python-pbr
	python-sqlalchemy
	python-keystonemiddleware
	python-routes
	python-webob
	python-jsonschema
	python-requests
	python-setuptools
	python-oslo-concurrency
	python-oslo-config
	python-oslo-context
	python-oslo-log
	python-oslo-serialization
	python-oslo-utils
	python-oslo-db
	python-oslo-policy
	python-oslo-middleware
	python-oslo-upgradecheck
	python-os-resource-classes
	python-os-traits
	python-microversion-parse
	python-psycopg2
	python-pymysql
)
makedepends=(
	python-setuptools
	python-sphinx
	python-sphinxcontrib-actdiag
	python-sphinxcontrib-seqdiag
	python-sphinx-feature-classification
	python-os-api-ref
	python-openstackdocstheme
	python-reno
	python-whereto
	python-osprofiler
)
checkdepends=(
	python-hacking
	python-coverage
	python-fixtures
	python-oslotest
	python-stestr
	python-testtools
	bandit
	python-gabbi
	python-wsgi-intercept
	python-osprofiler
)
options=('!emptydirs')
source=(
	"https://pypi.io/packages/source/${_pycname::1}/$_pycname/$_pycname-$pkgver.tar.gz"
	wsgi-placement-api.conf
	sysusers.conf
	tmpfiles.conf
)
md5sums=('bf4b054d404e0bdb71a680ebd8864829'
         'b61f4a6dd8921197426a07668af90497'
         '068a5d4a7483c8654d9f7d362405b5b4'
         'a58a1812012c7095c97d9824d61798d6')
sha256sums=('48e29df01953aeaa2af382c8905e3ac253368c469cfd7efbb9361d8c2e893bcb'
            'a616f40f5c91584ec0af4c83ba8f52520e5a82891b12f22b893f7a5603278712'
            'f0f112e74248179028f6d96173c13a99e81ec28c938174eef1fa6b94c60ab48a'
            '330d6afdb001430a9995207ebaa3ada47c483e4cfce729b27219f3333927fd8c')
sha512sums=('d6793274e0c36315c65fcc383be2414b60b4505f13512077a57d494973f0d6e8af4cca49741bf714d0366e35fb053f487de6c5e2cb4deaeb53eba7728457cfe7'
            '5ac7481641cf9d78b88a366bf016891481d6c6feeee125bf01243d23f473e0e11c1a301dc47b206311eb36e3d8dacc716e66c63a234423c3ee66c5f9bf368a71'
            '9ac7e51aaf172165a62ecc9ee4c9642b8534b4e9f4a58e996f7da7fb8aef1aee7fe1807b295da516533c309ac95add6d462cbd4c0b79a047c2c8d2457e844e66'
            '4e32e3648f36f1a3287698b6b93afb6cb868bf8f30ea2abc174d282c5205de4113dcc7c7c00a2592890099eccbe2c17d409965684b6222f5b9844a583116fc37')

export PBR_VERSION=$pkgver

prepare(){
	for i in "${source[@]}"
	do case "${i}" in
		?*.patch)
			msg2 "Apply patch ${i}"
			patch -Np1 <"${i}"
		;;
	esac
	done
}

build(){
	cd "$_pycname-$pkgver"
	python setup.py build
	sphinx-build -b html doc/source doc/build/html
}

check(){
	cd $_pycname-$pkgver
	stestr run
}

_package_pkg(){
	optdepends=(
		"apache: wsgi api support"
		"mod_wsgi: apache wsgi support"
		"python-openstackclient: OpenStack CLI Client"
		"${pkgbase}-doc: Documents for ${pkgdesc}"
	)
	backup=(
		etc/httpd/conf/extra/wsgi-placement-api.conf
		etc/placement/placement.conf
		etc/placement/policy.json
		etc/placement/policy.yaml
	)
	cd "$_pycname-$pkgver"
	export PYTHONPATH="$PWD"
	_DATADIR="$pkgdir/usr/share"
	_CONFDIR="$pkgdir/etc"
	_DOCDIR="$_DATADIR/doc"
	DATADIR="$_DATADIR/$_pyname"
	DOCDIR="$_DOCDIR/$_pyname"
	LIBDIR="$pkgdir/usr/lib"
	CONFDIR="$_CONFDIR/$_pyname"
	python setup.py install --root "$pkgdir" --optimize=1
	mkdir -p "$pkgdir"/{usr/share,var/{log,lib}}/"$_pyname"
	oslo-config-generator --config-file=etc/placement/config-generator.conf
	oslopolicy-sample-generator --config-file=etc/placement/policy-generator.conf
	install -Dm644 "$srcdir/tmpfiles.conf" "$LIBDIR/tmpfiles.d/$_pyname.conf"
	install -Dm644 "$srcdir/sysusers.conf" "$LIBDIR/sysusers.d/$_pyname.conf"
	install -Dm644 "$srcdir/wsgi-placement-api.conf" -t "$_CONFDIR/httpd/conf/extra"
	install -Dm644 "$srcdir/wsgi-placement-api.conf" -t "$DATADIR"
	install -Dm644 LICENSE "$_DATADIR/licenses/$_pyname/LICENSE"
	install -Dm644 etc/placement/placement.conf.sample "$CONFDIR/placement.conf"
	install -Dm644 etc/placement/placement.conf.sample -t "$DATADIR"
	install -Dm644 etc/placement/policy.yaml.sample "$CONFDIR/policy.yaml"
	install -Dm644 etc/placement/policy.yaml.sample -t "$DATADIR"
	echo '{}' >"$CONFDIR/policy.json"
}

_package_doc(){
	pkgdesc="${pkgdesc} Documents"
	depends=()
	cd "$_pycname-$pkgver"
	_DOCDIR="$pkgdir/usr/share/doc"
	DOCDIR="$_DOCDIR/$_pyname"
	mkdir -p "${_DOCDIR}"
	cp -r doc/build/html "$DOCDIR"
	rm -r "$DOCDIR/.doctrees"
}

eval "package_${pkgbase}(){ _package_pkg; }"
eval "package_${pkgbase}-doc(){ _package_doc; }"