summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 445dec2981a45bf4314eb37e8bc3ccd695713bde (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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
# Maintainer: Moses Narrow <moe_narrow@use.startmail.com>
# Maintainer: Rudi [KittyCash] <rudi@skycoinmail.com>
projectname=skycoin
pkgname=skywire-discovery
pkgname1=skywire
pkgdesc="Discovery Server for Skywire. discovery.skycoin.com:8001/#/"
pkgver=autogenerated
pkggopath="github.com/${projectname}/$pkgname"
pkgrel=6
arch=('any')
url="https://${pkggopath}"
license=()
makedepends=(dep git go gcc sqlite)
provides=('skywire')
conflicts=('skywire')
source=("git+${url}.git#branch=${BRANCH:-master}"
"git+${url//$pkgname/}${pkgname1}.git#branch=${BRANCH:-master} ")
sha256sums=('SKIP'
'SKIP')

export GOOS=linux
export GOPATH="${srcdir}"
export GOROOT="$builddir"
export GOBIN="$GOROOT"/bin
export GOROOT_FINAL=/usr/lib/go

export CGO_ENABLED=1

case "$CARCH" in
x86)      export GOARCH="386" GO386="387" ;;
x86_64)   export GOARCH="amd64" ;;
arm*)     export GOARCH="arm" ;;
armel)    export GOARCH="arm" GOARM="5" ;;
armhf)    export GOARCH="arm" GOARM="6" ;;
armv7)    export GOARCH="arm" GOARM="7" ;;
armv8)    export GOARCH="arm64" ;;
aarch64)  export GOARCH="arm64" ;;
mips)     export GOARCH="mips" ;;
mips64)   export GOARCH="mips64" ;;
mips64el) export GOARCH="mips64le" ;;
mipsel)   export GOARCH="mipsle" ;;
*)        return 1 ;;
esac

pkgver() {
cd "${srcdir}/$pkgname"
local date=$(git log -1 --format="%cd" --date=short | sed s/-//g)
local count=$(git rev-list --count HEAD)
local commit=$(git rev-parse --short HEAD)
echo "${date}.${count}_${commit}"
}

prepare() {
# https://wiki.archlinux.org/index.php/Go_package_guidelines
mkdir -p ${srcdir}/go/src/${pkggopath//$pkgname/} "${srcdir}"/go/bin
ln -rTsf ${srcdir}/$pkgname ${srcdir}/go/src/${pkggopath}
ln -rTsf ${srcdir}/${pkgname1} ${srcdir}/go/src/${pkggopath//$pkgname/}${pkgname1}
cd ${srcdir}/go/src/${pkggopath}/
git checkout master
git submodule --quiet update --init --recursive

export GOPATH="${srcdir}"/go
export GOBIN=${GOPATH}/bin
export PATH=${GOPATH}/bin:${PATH}
msg2 'installing go dependencies'
rm -rf Gopkg.toml
rm -rf Gopkg.lock
dep init
dep ensure

cd ${srcdir}/go/src/${pkggopath//$pkgname/}${pkgname1}
git checkout master
git submodule --quiet update --init --recursive

msg2 'installing go dependencies'
rm -rf Gopkg.toml
rm -rf Gopkg.lock
dep init
dep ensure
}

build() {
export GOPATH=${srcdir}/go
export GOBIN=${GOPATH}/bin
export PATH=${GOPATH}/bin:${PATH}
cd ${srcdir}/go/src/${pkggopath}/cmd
go install \
-gcflags "all=-trimpath=${GOPATH}" \
-asmflags "all=-trimpath=${GOPATH}" \
-ldflags "-extldflags ${LDFLAGS}" \
-v ./...

cd ${srcdir}/go/src/${pkggopath//$pkgname/}${pkgname1}/cmd
go install \
-gcflags "all=-trimpath=${GOPATH}" \
-asmflags "all=-trimpath=${GOPATH}" \
-ldflags "-extldflags ${LDFLAGS}" \
-v ./...

msg 2 'creating launcher scripts for skywire'
mkdir -p ${srcdir}/go/${pkgname1}-scripts
cd ${srcdir}/go/${pkgname1}-scripts

echo -e '#!/bin/bash
#launch skywire manager with nohup
skywire-manager-nohup
skywire-node-nohup
echo "skywire has started"' > ${pkgname1}
chmod +x ${pkgname1}

echo -e '#!/bin/bash
#launch skywire discovery server with nohup
export GOBIN=/usr/lib/skycoin/go/bin
export GOPATH=/usr/lib/skycoin/go
nohup skywire-discovery -web-dir /usr/lib/skycoin/skywire/static/skywire-discovery/ > /dev/null 2>&1 &sleep 3 \n echo "skywire-discovery server has started"' > $pkgname-nohup
chmod +x $pkgname-nohup

echo -e '#!/bin/bash
#launch skywire manager with nohup
export GOBIN=/usr/lib/skycoin/go/bin
export GOPATH=/usr/lib/skycoin/go
nohup skywire-manager -web-dir /usr/lib/skycoin/skywire/static/skywire-manager/ > /dev/null 2>&1 &sleep 3 \n echo "skywire-manager has started"' > ${pkgname1}-manager-nohup
chmod +x ${pkgname1}-manager-nohup

echo -e '#!/bin/bash
#launch skywire node with nohup
export GOBIN=/usr/lib/skycoin/go/bin
export GOPATH=/usr/lib/skycoin/go
nohup skywire-node -connect-manager -manager-address 127.0.0.1:5998 -manager-web 127.0.0.1:8000 -discovery-address discovery.skycoin.net:5999-034b1cd4ebad163e457fb805b3ba43779958bba49f2c5e1e8b062482904bacdb68 -address :5000 -web-port :6001 > /dev/null 2>&1 &cd / > /dev/null 2>&1 &sleep 3 \n echo "skywire-node has started"' > ${pkgname1}-node-nohup
chmod +x ${pkgname1}-node-nohup

echo -e '#!/bin/bash
#launch skywire official node with nohup
GOBIN=/usr/lib/skycoin/go/bin \n export GOPATH=/usr/lib/skycoin/go
nohup skywire-node -connect-manager -manager-address 192.168.0.2:5998 -manager-web 192.168.0.2:8000 -discovery-address discovery.skycoin.net:5999-034b1cd4ebad163e457fb805b3ba43779958bba49f2c5e1e8b062482904bacdb68 -address :5000 -web-port :6001 > /dev/null 2>&1 &cd / > /dev/null 2>&1 &sleep 3 \n echo "skywire-node has started"' > ${pkgname1}-node-miner
chmod +x ${pkgname1}-node-miner

echo -e '#!/bin/bash
#launch skywire qubes node with nohup
export GOBIN=/usr/lib/skycoin/go/bin
export GOPATH=/usr/lib/skycoin/go
nohup skywire-node -connect-manager -manager-address 10.137.0.16:5998 -manager-web 10.137.0.16:8000 -discovery-address discovery.skycoin.net:5999-034b1cd4ebad163e457fb805b3ba43779958bba49f2c5e1e8b062482904bacdb68 -address :5000 -web-port :6001 > /dev/null 2>&1 &cd / > /dev/null 2>&1 &sleep 3 \n echo "skywire-node has started"' > ${pkgname1}-node-qubes
chmod +x ${pkgname1}-node-qubes
}

package() {
options=(!strip staticlibs)
#create directory trees
mkdir -p ${pkgdir}/usr/bin
mkdir -p ${pkgdir}/usr/lib/${projectname}/go/bin
mkdir -p ${pkgdir}/usr/lib/${projectname}/${pkgname1}/
#restate go envs
export GOPATH=${pkgdir}/usr/lib/${projectname}/go
export GOBIN=${pkgdir}/usr/lib/${projectname}/go/bin
#install binaries & symlink to /usr/bin
msg2 'installing binaries'
skybins="${srcdir}"/go/bin
potentialnameconflicts=$( ls --ignore=skywire* "${skybins}")
cd ${skybins}
for i in ${potentialnameconflicts}; do
mv ${skybins}/${i} ${skybins}/${pkgname1}-${i}
done
skywirebins=$( ls "${skybins}")
for i in ${skywirebins}; do
install -Dm755 ${srcdir}/go/bin/${i} ${pkgdir}/usr/lib/${projectname}/go/bin/${i}
ln -rTsf ${pkgdir}/usr/lib/${projectname}/go/bin/${i} ${pkgdir}/usr/bin/${i}
chmod 755 ${pkgdir}/usr/bin/${i}
done
#install the web dir
cp -r ${srcdir}/${pkgname1}/static ${pkgdir}/usr/lib/${projectname}/${pkgname1}/
mkdir -p ${pkgdir}/usr/share/doc/${projectname}/${pkgname1}
#install the docs
cp -r ${srcdir}/${pkgname1}/docs/api ${pkgdir}/usr/share/doc/${projectname}/${pkgname1}-manager
#install the scripts
skywirescripts=$( ls ${srcdir}/go/${pkgname1}-scripts )
for i in ${skywirescripts}; do
cp ${srcdir}/go/${pkgname1}-scripts/${i} ${pkgdir}/usr/bin/${i}
done
msg2 'for the skywire discovery server to work you need the maxmind ip.db https://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz'
sleep 3
}