summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 5bed1bec48b9572a3e90453f40a72289c09ef5ff (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
# Maintainer: Evgeniy Alekseev

pkgbase='ahriman'
pkgname=('ahriman' 'ahriman-core' 'ahriman-triggers' 'ahriman-web')
pkgver=2.16.0
pkgrel=2
pkgdesc="ArcH linux ReposItory MANager"
arch=('any')
url="https://ahriman.readthedocs.io/"
license=('GPL-3.0-or-later')
depends=('devtools>=1:1.0.0' 'git' 'pyalpm' 'python-bcrypt' 'python-inflection' 'python-pyelftools' 'python-requests')
makedepends=('python-build' 'python-flit' 'python-installer' 'python-wheel')
source=("https://github.com/arcan1s/ahriman/releases/download/$pkgver/$pkgbase-$pkgver.tar.gz"
        "$pkgbase.sysusers"
        "$pkgbase.tmpfiles")

build() {
    cd "$pkgbase-$pkgver"

    python -m build --wheel --no-isolation
}

package_ahriman() {
    pkgname='ahriman'
    pkgdesc="ArcH linux ReposItory MANager (meta package)"
    depends=("$pkgbase-core=$pkgver" "$pkgbase-triggers=$pkgver" "$pkgbase-web=$pkgver")
}

package_ahriman-core() {
    pkgname='ahriman-core'
    optdepends=('ahriman-triggers: additional extensions for the application'
                'ahriman-web: web server'
                'python-boto3: sync to s3'
                'python-cerberus: configuration validator'
                'python-matplotlib: usage statistics chart'
                'python-requests-unixsocket2: client report to web server by unix socket'
                'python-jinja: html report generation'
                'python-systemd: journal support'
                'rsync: sync by using rsync')
    install="$pkgbase.install"
    backup=('etc/ahriman.ini'
            'etc/ahriman.ini.d/logging.ini')

    cd "$pkgbase-$pkgver"

    python -m installer --destdir="$pkgdir" "dist/$pkgbase-$pkgver-py3-none-any.whl"
    python subpackages.py "$pkgdir" "$pkgname"

    # keep usr/share configs as reference and copy them to /etc
    install -Dm644 "$pkgdir/usr/share/$pkgbase/settings/ahriman.ini" "$pkgdir/etc/ahriman.ini"
    install -Dm644 "$pkgdir/usr/share/$pkgbase/settings/ahriman.ini.d/logging.ini" "$pkgdir/etc/ahriman.ini.d/logging.ini"

    install -Dm644 "$srcdir/$pkgbase.sysusers" "$pkgdir/usr/lib/sysusers.d/$pkgbase.conf"
    install -Dm644 "$srcdir/$pkgbase.tmpfiles" "$pkgdir/usr/lib/tmpfiles.d/$pkgbase.conf"
}

package_ahriman-triggers() {
    pkgname='ahriman-triggers'
    pkgdesc="ArcH linux ReposItory MANager, additional extensions"
    depends=("$pkgbase-core=$pkgver")
    backup=('etc/ahriman.ini.d/00-triggers.ini')

    cd "$pkgbase-$pkgver"

    python -m installer --destdir="$pkgdir" "dist/$pkgbase-$pkgver-py3-none-any.whl"
    python subpackages.py "$pkgdir" "$pkgname"

    install -Dm644 "$pkgdir/usr/share/$pkgbase/settings/ahriman.ini.d/00-triggers.ini" "$pkgdir/etc/ahriman.ini.d/00-triggers.ini"
}

package_ahriman-web() {
    pkgname='ahriman-web'
    pkgdesc="ArcH linux ReposItory MANager, web server"
    depends=("$pkgbase-core=$pkgver" 'python-aiohttp-apispec-git' 'python-aiohttp-cors' 'python-aiohttp-jinja2')
    optdepends=('python-aioauth-client: OAuth2 authorization support'
                'python-aiohttp-security: authorization support'
                'python-aiohttp-session: authorization support'
                'python-cryptography: authorization support')
    backup=('etc/ahriman.ini.d/00-web.ini')

    cd "$pkgbase-$pkgver"

    python -m installer --destdir="$pkgdir" "dist/$pkgbase-$pkgver-py3-none-any.whl"
    python subpackages.py "$pkgdir" "$pkgname"

    install -Dm644 "$pkgdir/usr/share/$pkgbase/settings/ahriman.ini.d/00-web.ini" "$pkgdir/etc/ahriman.ini.d/00-web.ini"
}
sha256sums=('2f2eaef7a1fad1fff0d2d441fadf6384dd6d78f5274111bb05c8bc950d3f1bb7'
            '0c1cb37a57c47b5159c626f69c08d094c58241319e2a5a3b29c76170b92f09c8'
            '720a02af47ac718b31acd9feb73b1b81a5eed4f0bc4ca7a18dfc299dc0da5013')