aboutsummaryrefslogtreecommitdiffstats
path: root/main/libvirt/APKBUILD
blob: eeeb838404073ce189843bf229522d6e738c1803 (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
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libvirt
pkgver=1.3.5
_ver="${pkgver/_rc/-rc}"
pkgrel=2
pkgdesc="A virtualization API for several hypervisor and container systems"
url="http://libvirt.org/"
arch="all"
license="LGPL"
_daemon_deps="bridge-utils dmidecode dnsmasq ebtables ip6tables iptables"
_client_deps="pm-utils gnutls-utils netcat-openbsd"
depends=""
depends_dev="libtirpc-dev"
makedepends="augeas-dev bridge-utils cyrus-sasl-dev device-mapper
	e2fsprogs-dev gnutls-dev libcap-ng-dev libgpg-error-dev
	netcf-dev libnl3-dev libxml2-dev libxslt-dev libtasn1-dev
	lvm2-dev lxc-dev gnutls-dev libgcrypt-dev parted-dev perl pkgconfig
	eudev-dev zlib-dev yajl-dev libpcap-dev curl-dev libpciaccess-dev
	polkit-dev readline-dev dnsmasq linux-headers $depends_dev
	fuse-dev util-linux $_daemon_deps $_client_deps
	automake autoconf libtool
	"
install="$pkgname.post-install"
subpackages="$pkgname-dev $pkgname-doc $pkgname-client $pkgname-daemon
	$pkgname-lang $pkgname-lxc $pkgname-qemu $pkgname-uml $pkgname-vbox"
source="http://libvirt.org/sources/$pkgname-$pkgver.tar.gz
	libvirt.confd
	libvirt.initd
	virtlogd.initd
	virtlockd.initd
	musl-fix-includes.patch
	fix-fortify-virnetlink.patch
	CVE-2016-5008.patch
	"

if [ "$CARCH" = "x86_64" ]; then
	subpackages="$subpackages $pkgname-xen"
	makedepends="$makedepends xen-dev"
fi
subpackages="$subpackages $pkgname-common-drivers:_common_drivers"

_builddir="$srcdir"/$pkgname-$pkgver

prepare() {
        cd "$_builddir" || return 1
        for patch in $source; do
                case $patch in
                # we concider patches with uclibc in its name
                # only usefull on uclibc install
                *uclibc*.patch)
                        if [ "$ALPINE_LIBC" != "eglibc" ]; then
                                msg "Applying patch $patch"
                                patch -p1 -i "$srcdir"/$patch || return 1
                        fi
                        ;;
                *.patch)
                        msg "Applying patch $patch"
                        patch -p1 -i "$srcdir"/$patch || return 1
                        ;;
                esac
        done
	autoreconf -vif || return 1
}

build() {
	cd "$_builddir"
	export CFLAGS="$CFLAGS `pkgconf --cflags libtirpc`"
	export LDFLAGS="$LDFLAGS -lm `pkgconf --libs libtirpc`"
	local _xen_opt=
	if [ "$CARCH" = x86_64 ]; then
		_xen_opt="--with-libxl"
	fi
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
		--libexec=/usr/lib/"$pkgname" \
		$_xen_opt \
		--with-polkit \
		--with-storage-fs \
		|| return 1
	make || return 1
}

package() {
	cd "$_builddir"
	make DESTDIR="$pkgdir" install || return 1
	install -D -m755 $srcdir/$pkgname.initd $pkgdir/etc/init.d/libvirtd
	install -D -m755 $srcdir/$pkgname.confd $pkgdir/etc/conf.d/libvirtd
	install -D -m755 $srcdir/virtlogd.initd $pkgdir/etc/init.d/virtlogd
	install -D -m755 $srcdir/virtlockd.initd $pkgdir/etc/init.d/virtlockd

	install -d "$pkgdir"/etc/modules-load.d
	echo "tun" > "$pkgdir"/etc/modules-load.d/libvirt

	rm -rf "$pkgdir"/usr/lib/charset.alias
	rmdir -p "$pkgdir"/usr/lib 2>/dev/null
	return 0
}

dev() {
	default_dev
	mkdir -p "$subpkgdir"/usr/share/libvirt
	mv "$pkgdir"/usr/share/libvirt/api \
		"$subpkgdir"/usr/share/libvirt/
}

daemon() {
	cd "$_builddir"
	pkgdesc="libvirt daemon package"
	depends="libvirt-client $_daemon_deps"
	replaces="libvirt"
	mkdir -p "$subpkgdir"/etc/$pkgname \
	 "$subpkgdir"/etc/logrotate.d \
	 "$subpkgdir"/usr/sbin
	mv "$pkgdir"/etc/init.d "$subpkgdir"/etc
	mv "$pkgdir"/etc/conf.d "$subpkgdir"/etc
	mv "$pkgdir"/etc/modules-load.d "$subpkgdir"/etc
	mv "$pkgdir"/etc/$pkgname/libvirtd.conf "$subpkgdir"/etc/libvirt/
	mv "$pkgdir"/usr/sbin/libvirtd "$subpkgdir"/usr/sbin/
	mv "$pkgdir"/etc/logrotate.d/libvirtd "$subpkgdir"/etc/logrotate.d/
}

client() {
	cd "$_builddir"
	pkgdesc="libvirt client package"
	depends="libvirt $_client_deps"
	replaces="libvirt"
	mkdir -p "$subpkgdir"/etc/$pkgname "$subpkgdir"/usr/bin \
		"$subpkgdir"/usr/lib
	mv "$pkgdir"/etc/$pkgname/$pkgname.conf "$subpkgdir"/etc/libvirt/
	mv "$pkgdir"/usr/bin/* "$subpkgdir"/usr/bin/
	mv "$pkgdir"/usr/lib/lib*.so.* "$subpkgdir"/usr/lib/ || return 1
}

_mv_driver() {
	local _name="$1" _drivers="$2" _pkg="$3"
	pkgdesc="$_name driver for libvirt"
	depends="$pkgname-daemon=$pkgver-r$pkgrel
		$pkgname-common-drivers=$pkgver-r$pkgrel"
	replaces="libvirt"
	if [ -n "$_pkg" ]; then
		install_if="$pkgname-daemon=$pkgver-r$pkgrel $_pkg"
	else
		install_if=
	fi
	local _dir=/usr/lib/libvirt/connection-driver
	mkdir -p "$subpkgdir"/$_dir \
		"$subpkgdir"/etc/libvirt \
		"$subpkgdir"/etc/logrotate.d
	local _d
	cd "$pkgdir"
	for _d in $_drivers; do
		find * -name "*$_d[.-]*" -o -name "*$_d" | while read _f; do
			mkdir -p "$subpkgdir"/${_f%/*}
			mv "$pkgdir"/$_f "$subpkgdir"/$_f || return 1
		done
	done
}

qemu() { _mv_driver "QEMU" qemu qemu; }
xen() { _mv_driver "XEN" "libxl xen" xen; }
lxc() { _mv_driver "LXC" lxc lxc; }
uml() { _mv_driver "UML" uml; }
vbox() { _mv_driver "VirtualBox" vbox; }

_common_drivers() {
	pkgdesc="Common libvirt daemon drivers"
	replaces="libvirt"
	mkdir -p "$subpkgdir"/usr/lib/libvirt \
		"$subpkgdir"/etc/libvirt/nwfilter
	mv "$pkgdir"/usr/lib/libvirt/connection-driver \
		"$subpkgdir"/usr/lib/libvirt/
	mv "$pkgdir"/etc/libvirt/nwfilter \
		"$subpkgdir"/etc/libvirt/
}

md5sums="f9dc1e63d559eca50ae0ee798a4c6c6d  libvirt-1.3.5.tar.gz
1c84a7baeafe0a7f4e9d7ae5180311b7  libvirt.confd
bb94cd55d0029de387e6cb41e41f9167  libvirt.initd
e979ad068888cc824be210bd51c82f82  virtlogd.initd
4fb24502be354972041b37186ef5406c  virtlockd.initd
9da7723b114b2d87558e92828366fbcb  musl-fix-includes.patch
bc6ed2ce739dcc40542bb4e6bc94c0d3  fix-fortify-virnetlink.patch
989f7e79636e863e3db5203ec8bac39b  CVE-2016-5008.patch"
sha256sums="93a23c44eb431da46c9458f95a66e29c9b98e37515d44b6be09e75b35ec94ac8  libvirt-1.3.5.tar.gz
851ab3f9678f0fa9c3ee03f7fc7bd00c4ee86d5f0777eecf9eb1ffe3243adfd1  libvirt.confd
e198935231f34601f1aafccdda132ca6ef22ea1bcc376446e2ceb04e6cd89800  libvirt.initd
51c030d7ba9a9dad1f927020592d7aef2dc2cd4abf38bd4ca97eee60943c7901  virtlogd.initd
552ba1f6edf92513a3041cbd3655ce782dc413c6f60995e77e6e3245ad1ef1f2  virtlockd.initd
8dfa9dbe71ee21dc53e44bd7cc0127adde1bf3371d6b393657b386bb83f8139b  musl-fix-includes.patch
84132508aeb5a5946e07426337d6fbb0208b1181d51d3c4927ef9601562ce3d3  fix-fortify-virnetlink.patch
dd3753a52e6ad3b6e46e9460242b7ad076ace6a054b683f96504342ca526b260  CVE-2016-5008.patch"
sha512sums="6c6a09623d3d4d426311bfa7039f5e39584d5f891b8e761bbdb3022601ea066b8e1c3f8d609326e8ba4081ae40b7b03086fbc8ba5759d218b8616ec98200a89d  libvirt-1.3.5.tar.gz
9aba6ab73219a635c64a340ee8887356e644445c9128734cbce73f5d54778378da2f10a190365ad88a7db8bc95b1fb17f0c6ca41fc41bb786c09e1afe84d65dc  libvirt.confd
734afb83b7a4703dd238f1d89dbc853a8c73bcf1994af648c41ab01ae4088e5c7a423f0cb91e5e31f2ae5e60c66d08a6e1583a1e3b88bb5554e0f9fd15ecc15c  libvirt.initd
36b85f473d292be8df415256d01a562131d8ae61450ba3893658090a12d589ca32215382f56f286a830b4e59ffd98fbe1d92004f2ce14ca0834451b943cd8f2f  virtlogd.initd
a4c4d26e4111931acbe7594451bf963a36c8db33c64b1bc447ab4758bb92803510bebee0511d6bc16ba80c289ab6f87e74377d47bf560412f9adb9c161a206d9  virtlockd.initd
b6142256bf2700b9e5335c60fe5628e4095a24689c31d54afcab46f46a06b9c0ae676f87f77a487377eafbec11fb7afa9b994aef48a10a39e82f47c45df008ba  musl-fix-includes.patch
0ef74be8c8f0e6c6ae6e3dcf6e83dc76c1371e1eaab123589f634c22f221cc26a8f0b0de6a9f5d36510b270d4a06fae42b51b749311f3e57953e65fbfc241911  fix-fortify-virnetlink.patch
37ebc14aa1616964c89bcac17df14abd7f3fdd95f49eb3c121c89c94fe1321b1f996133763cddbabdccfe8f139edd60a7588bc81b6f14a35c78e8353050b0493  CVE-2016-5008.patch"