aboutsummaryrefslogtreecommitdiffstats
path: root/community/lxd/APKBUILD
blob: a5e04e79146208cc94e84096c3969f6d78f1bab1 (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
# Contributor: Carlo Landmeter <clandmeter@gmail.com>
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Leonardo Arena <larena@alpinelinux.org>
pkgname=lxd
pkgver=5.0.0 # only LTS releases
pkgrel=2
pkgdesc="A container hypervisor and a new user experience for LXC - 'LTS' release channel"
url="https://linuxcontainers.org/lxd/"
arch="all"
license="Apache-2.0"
depends="acl
	attr
	ca-certificates
	cgmanager
	dbus
	dnsmasq
	lxc
	ip6tables
	iproute2
	netcat-openbsd
	rsync
	squashfs-tools
	shadow-uidmap
	tar
	xz
	"
makedepends="acl-dev
	autoconf
	automake
	dqlite-dev
	eudev-dev
	gettext-dev
	go
	intltool
	libcap-dev
	libtool
	libuv-dev
	linux-headers
	lxc-dev
	lz4-dev
	raft-dev
	rsync
	sqlite-dev
	tcl-dev
	"
subpackages="$pkgname-scripts:scripts
	$pkgname-bash-completion:bashcomp:noarch
	$pkgname-openrc
	$pkgname-client
	"
provides=$pkgname-lts=$pkgver-r$pkgrel
install="$pkgname.pre-install"
options="!check" # FIXME: several tests failing
source="https://linuxcontainers.org/downloads/$pkgname/$pkgname-$pkgver.tar.gz
	$pkgname.confd
	$pkgname.initd

	add-missing-includes.patch
	0001-no-go-get.patch
	"

_project="github.com/lxc/lxd"

build() {
	export GOPATH="$builddir/_dist"
	export CGO_CFLAGS="-I/usr/include/raft -I/usr/include/dqlite"
	export CGO_LDFLAGS="$LDFLAGS -lintl"
	export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)"
	export GOFLAGS="$GOFLAGS -buildmode=pie -trimpath"
	export GO111MODULE=on

	make

	for bin in lxc fuidshift lxc-to-lxd lxd-benchmark lxd-agent; do
		go install -v -x $_project/$bin
	done
}

package() {
	cd $GOPATH
	install -Dm755 bin/$pkgname "$pkgdir"/usr/sbin/$pkgname
	install -Dm755 bin/lxc "$pkgdir"/usr/bin/lxc

	install -Dm755 "$srcdir"/$pkgname.initd \
		"$pkgdir"/etc/init.d/lxd
	install -Dm644 "$srcdir"/$pkgname.confd \
		"$pkgdir"/etc/conf.d/lxd
}

bashcomp() {
	depends="bash"
	pkgdesc="Bash completions for $pkgname"
	install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
	provides=$pkgname-lts-bash-completion=$pkgver-r$pkgrel

	cd "$builddir"
	mkdir -p "$subpkgdir"/usr/share/bash-completion/completions
	cp scripts/bash/lxd-client "$subpkgdir"/usr/share/bash-completion/completions/lxd-client
}

scripts() {
	pkgdesc="LXD scripts"
	depends="$pkgname py3-lxc"
	provides=$pkgname-lts-scripts=$pkgver-r$pkgrel

	export GOPATH="$builddir/_dist"
	cd $GOPATH

	for tool in fuidshift lxc-to-lxd lxd-benchmark lxd-agent; do
		install -Dm755 bin/$tool "$subpkgdir"/usr/bin/$tool
	done
	install -Dm755 ../scripts/empty-lxd.sh "$subpkgdir"/usr/bin/empty-lxd.sh
}

openrc() {
	provides=$pkgname-lts-openrc=$pkgver-r$pkgrel
	default_openrc
}

client() {
	pkgdesc="LXD CLI client"
	mkdir -p "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/bin/lxc "$subpkgdir"/usr/bin
}

check() {
	LXD_OFFLINE=true make check
}

sha512sums="
e74c14a2642ee4ea738629b1da9c4b416f3bdbb26a49c8c920eb0e5e0467236fd610276541af1d481d6b069093cb1c35c705008652ff2cd55d2d15e9b7433696  lxd-5.0.0.tar.gz
bc32c71f2ce10f508433e1e4651c08c18e8a17e9419a7ce391c0f127fc7cf378c665178926b35eae8813e290d9c5eab3ceb605679fd32efdf2cf98a57cee4127  lxd.confd
e279920e604dbf21d5bf65b9ea2a6e309527549eac059a0a014503b02b5cc19fc9de5638ded3a543c32173072a5f471941968b6abcceed5d2a00b116bf878c0d  lxd.initd
1e3a33a1e59ff202b556dd20596abf562d6af652b50ac6ce85d762043e765c0b5f91676735319132ed68d543c7857796e8a1aa9a642ae892e4c1311c727dbd2a  add-missing-includes.patch
1f4ea3c2e6ce73604407d26adf45e2f9bd6d5e94f6d914d278ce2c82c38cc29b65c063962c7e2f0ae996828bf2de9fd61177fe979ad7e5865766c1cd1103c2cb  0001-no-go-get.patch
"