aboutsummaryrefslogtreecommitdiffstats
path: root/community/lxd/APKBUILD
blob: 87fb2faa51fd7645f1adff097b0df93317056d94 (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
# Contributor: Carlo Landmeter <clandmeter@gmail.com>
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Leonardo Arena <larena@alpinelinux.org>
pkgname=lxd
pkgver=4.0.9 # only LTS releases
pkgrel=8
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"
source="https://linuxcontainers.org/downloads/$pkgname/$pkgname-$pkgver.tar.gz
	$pkgname.confd
	$pkgname.initd

	lxd-dont-go-get.patch
	add-missing-includes.patch
	"

_project="github.com/lxc/lxd"

build() {
	export GOPATH="$builddir/vendor"
	export CGO_CFLAGS="-I/usr/include/raft -I/usr/include/dqlite"
	export CGO_LDFLAGS="$CGO_LDFLAGS -lintl"
	export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)"

	make

	for bin in lxc fuidshift lxc-to-lxd lxd-benchmark lxd-agent lxd-p2c; 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/vendor"
	cd $GOPATH

	for tool in fuidshift lxc-to-lxd lxd-benchmark lxd-agent lxd-p2c; 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
}

sha512sums="
657949311753895f3941deaabae2d03092fc67490d2de78db48b296fdd3e9df4c5844467dd6913814426ca423a6ee1da9705bb1a2652ea99fe1356eb7da97ebb  lxd-4.0.9.tar.gz
bc32c71f2ce10f508433e1e4651c08c18e8a17e9419a7ce391c0f127fc7cf378c665178926b35eae8813e290d9c5eab3ceb605679fd32efdf2cf98a57cee4127  lxd.confd
e279920e604dbf21d5bf65b9ea2a6e309527549eac059a0a014503b02b5cc19fc9de5638ded3a543c32173072a5f471941968b6abcceed5d2a00b116bf878c0d  lxd.initd
d15cf32be09c4eeaa81979c930f5dc531f158cda1aea019e98e51d8559ad9bc1e05eb9a359811f5e7061abc383c5790b3957118221d3fbfddbeedad21b48dd2b  lxd-dont-go-get.patch
1e3a33a1e59ff202b556dd20596abf562d6af652b50ac6ce85d762043e765c0b5f91676735319132ed68d543c7857796e8a1aa9a642ae892e4c1311c727dbd2a  add-missing-includes.patch
"