summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 342ab527b8cc6d267cf0119f777b7bd3b000d946 (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
# Maintainer: Jason Papakostas <vithos@gmail.com>
# Contributor: Sean Enck <enckse@gmail.com>

pkgname=oragono
pkgver=2.6.1
pkgrel=1
pkgdesc="A modern IRC server written in Go."
arch=('x86_64')
url="https://github.com/oragono/oragono"
license=('MIT')
install=install
depends=('glibc')
makedepends=('go' 'git')
source=("git+$url#tag=v$pkgver"
        "oragono.service"
        "oragono.sysusers"
        "path.patch"
        "oragono.tmpfiles")
sha256sums=('SKIP'
            'd35dd5205e3b607ee105a1252677d0607d0c35636ee3e6057275b5f13e555858'
            '7e214caa8bee053adac26a00a17ed732970e86665cbe31553b1d3d609f0a49b4'
            'ce58277f778809df5f6bdaa5d6997f5d55157e367c0d4a0b6cae0a61fd293e51'
            '8f6baaa89e9723ac3344a2af201a93f348975537bc748024c0a48b0773f42b1f')
backup=('etc/oragono.conf')

prepare() {
    cd "${srcdir}/$pkgname"
    patch < ../path.patch
}

build() {
    export GOPATH=$(pwd)/..
    cd "${srcdir}/$pkgname"

    GIT_COMMIT="$(git rev-parse HEAD 2> /dev/null)"

    # flags from https://wiki.archlinux.org/index.php/Go_package_guidelines
    # to address issues namcap warns about:
    #   oragono W: ELF file ('usr/bin/oragono') lacks FULL RELRO, check LDFLAGS.
    #   oragono W: ELF file ('usr/bin/oragono') lacks PIE.
    # related: https://bugs.archlinux.org/task/60928
    go build \
        -trimpath \
        -buildmode=pie \
        -ldflags "-X main.commit=${GIT_COMMIT} -linkmode external -extldflags \"${LDFLAGS}\"" \
        -v \
        .

    rm languages/README.md
    rm -rf languages/example
}

check() {
    export GOPATH=$(pwd)/..
    cd "${srcdir}/$pkgname"

    go test ./...
}

package() {
    install -Dm644 oragono.service "$pkgdir/usr/lib/systemd/system/oragono.service"
    install -Dm644 "$srcdir/oragono.sysusers" "$pkgdir/usr/lib/sysusers.d/oragono.conf"
    install -Dm644 "$srcdir/oragono.tmpfiles" "${pkgdir}"/usr/lib/tmpfiles.d/oragono.conf

    cd "${srcdir}/$pkgname"
    install -Dm755 -d "$pkgdir/usr/share/$pkgname/i18n"
    cp languages/* "$pkgdir/usr/share/$pkgname/i18n/"
    install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
    install -Dm755 oragono "$pkgdir/usr/bin/oragono"
    install -Dm644 default.yaml "$pkgdir/etc/oragono.conf"
    install -Dm644 oragono.motd "$pkgdir/usr/share/$pkgname/default.motd"
}