summaryrefslogtreecommitdiff
path: root/pcr/cjdns-git/PKGBUILD
blob: 2e96460064ee8b0043d34675a38fca25d9ed830b (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
# Maintainer: Prurigro
# Contributor: Prurigro
# Contributor: Werecat
# Contributor: Xyne

_pkgname=cjdns
pkgname=${_pkgname}-git
pkgver=0.3.1473
pkgrel=1
pkgdesc="A routing engine designed for security, scalability, speed and ease of use."
url="https://github.com/cjdelisle/${_pkgname}"
license=('GPL3')
makedepends=('git' 'cmake' 'python2')
optdepends=('python2: required by the python cjdnsadmin utilities')
arch=('i686' 'x86_64' 'armv6h' 'armv7h')
install=${pkgname}.install
backup=("etc/default/${_pkgname}")

source=("git://github.com/cjdelisle/${_pkgname}.git#branch=master")
sha256sums=('SKIP')

pkgver() {
    cd "${srcdir}/${_pkgname}"
    git describe --always | sed 's|-|.|g;s|[^\.]*\.||;s|\.[^\.]*$||'
}

prepare() {
    cd "${srcdir}/${_pkgname}"

    ## Clean previous builds and resync
    ./clean

    mkdir build

    ## Set occurances of python to python2 due to a naming conflict between Debian and Archlinux
    find "${srcdir}/${_pkgname}"/contrib/python \
         -type f \
         -exec sed -i 's@/usr/bin/python\s*$@/usr/bin/python2@;s@/usr/bin/env\ python@/usr/bin/env\ python2@' {} \+
}

build() {
    cd "${srcdir}"/${_pkgname}

    ##  Disable Arch's generic makepkg optimizations (set via /etc/makepkg.conf) in favour of those specified by cjdns
    unset MAKEFLAGS
#    unset CFLAGS
#    unset CPPFLAGS

    ##  Build using the ./do script
    export NO_DEBUG=1
    cd build
    cmake ..
    make
}

## Package creation helper functions
_package_cjdns() {
    install -D -m755 "${srcdir}"/${_pkgname}/build/admin/angel/cjdroute2 "${pkgdir}"/usr/bin/cjdroute
    install -D -m755 "${srcdir}"/${_pkgname}/build/admin/angel/${_pkgname} "${pkgdir}"/usr/bin/${_pkgname}
    install -D -m644 "${srcdir}"/${_pkgname}/contrib/systemd/${_pkgname}.service "${pkgdir}"/usr/lib/systemd/system/${_pkgname}.service
    install -D -m755 "${srcdir}"/${_pkgname}/contrib/bash/i_am_stupid.sh "${pkgdir}"/usr/bin/cjdns-recoverconfig
}
_package_pyutils() {
    install -D -m644 "${srcdir}"/${_pkgname}/contrib/python/cjdnsadmin/cjdnsadmin.py "${pkgdir}"/usr/lib/$(python2-config --libs | grep -o -E python2.*)/cjdnsadmin/cjdnsadmin.py
    install -D -m644 "${srcdir}"/${_pkgname}/contrib/python/cjdnsadmin/bencode.py "${pkgdir}"/usr/lib/$(python2-config --libs | grep -o -E python2.*)/cjdnsadmin/bencode.py
    install -D -m644 "${srcdir}"/${_pkgname}/contrib/python/cjdnsadmin/__init__.py "${pkgdir}"/usr/lib/$(python2-config --libs | grep -o -E python2.*)/cjdnsadmin/__init__.py
    install -D -m755 "${srcdir}"/${_pkgname}/contrib/python/cjdnslog "${pkgdir}"/usr/bin/cjdns-log
    install -D -m755 "${srcdir}"/${_pkgname}/contrib/python/dumptable "${pkgdir}"/usr/bin/cjdns-dumptable
    install -D -m755 "${srcdir}"/${_pkgname}/contrib/python/findnodes "${pkgdir}"/usr/bin/cjdns-findnodes
    install -D -m755 "${srcdir}"/${_pkgname}/contrib/python/pingAll.py "${pkgdir}"/usr/bin/cjdns-pingAll
}

## Package creation function: comment out a helper function to remove its associated functionality
package() {
    _package_cjdns ## Core binaries (cjdns and cjdroute), a systemd service file and a config recovery script written in bash
    _package_pyutils ## Miscellaneous python2-based cjdns admin port utility scripts and libraries
}