summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 14bea0418e8b215482cdd5240d1ec14437e7a867 (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
# Maintainer: Moses Narrow <moe_narrow@use.startmail.com>
pkgname1=btcd
pkgname=btcd-git
pkgver='autogenerated'
pkgrel=1
arch=('any')
pkggopath=("github.com/btcsuite/$pkgname1")
url="https://$pkggopath"
makedepends=('git' 'dep' 'go')
license=('ISC')
options=('!strip' '!emptydirs')
provides=('btcd')
conflicts=('btcd')
source=("git+${url}.git#branch=${BRANCH:-master}")
sha256sums=('SKIP')


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

export CGO_ENABLED=0

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/$pkgname1"
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//$pkgname1/} "$srcdir"/go/bin
ln -rTsf $srcdir/$pkgname1 $srcdir/go/src/$pkggopath
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.lock
rm -rf Gopkg.toml
dep init
dep ensure
}

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

package() {
msg2 'Installing btcd...'
btcdbin="$srcdir"/go/bin
potentialnameconflicts=$( ls --ignore=btc* --ignore=bitcoin* "$btcdbin")
cd $btcdbin
for i in $potentialnameconflicts; do
mv $btcdbin/$i $btcdbin/btc$i
done
btcdbins=$( ls "$btcdbin" )
for i in $btcdbins; do
install -Dm 755 "$srcdir/go/bin/$i" "$pkgdir/usr/bin/$i"
done

install -Dm 644 "$srcdir/$pkgname1/LICENSE" \
-t "$pkgdir/usr/share/licenses/btcd"

for _doc in CHANGES README.md sample-btcd.conf; do
install -Dm 644 "$srcdir/$pkgname1/$_doc" \
-t "$pkgdir/usr/share/doc/btcd"
done
cp -dpr --no-preserve=ownership "$srcdir/$pkgname1/docs" \
"$pkgdir/usr/share/doc/btcd"

msg2 'Cleaning up pkgdir...'
find "$pkgdir" -type d -name .git -exec rm -r '{}' +
find "$pkgdir" -type f -name .gitignore -exec rm -r '{}' +
}