APKBUILD 6.2 KB
Newer Older
1
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
Leonardo Arena's avatar
Leonardo Arena committed
2
pkgname=libvirt
3
pkgver=5.6.0
4
_ver="${pkgver/_rc/-rc}"
5
pkgrel=0
Leonardo Arena's avatar
Leonardo Arena committed
6
pkgdesc="A virtualization API for several hypervisor and container systems"
7
url="https://libvirt.org/"
8
arch="all"
TBK's avatar
TBK committed
9
license="LGPL-2.1-or-later"
10
_daemon_deps="bridge-utils dmidecode dnsmasq ip6tables iptables"
11
_client_deps="pm-utils gnutls-utils netcat-openbsd"
12
depends="lvm2"
13
depends_dev="libtirpc-dev"
14
makedepends="augeas-dev cyrus-sasl-dev device-mapper
15
	e2fsprogs-dev gnutls-dev libcap-ng-dev libgpg-error-dev
16
	netcf-dev libnl3-dev libxml2-dev libxslt-dev libtasn1-dev
17
	lvm2-dev lxc-dev libgcrypt-dev parted-dev perl pkgconfig
18
	eudev-dev zlib-dev yajl-dev libpcap-dev curl-dev libpciaccess-dev
19
	polkit-dev readline-dev linux-headers libssh2-dev jansson-dev
20
	$depends_dev perl-xml-xpath
21
	fuse-dev util-linux libxml2-utils bash-completion $_daemon_deps $_client_deps
22
	"
23
install="$pkgname.post-install"
24
subpackages="$pkgname-static $pkgname-libs $pkgname-dev $pkgname-doc $pkgname-client $pkgname-daemon
25
	$pkgname-lang $pkgname-lxc $pkgname-qemu $pkgname-uml::noarch $pkgname-vbox
26
	$pkgname-bash-completion:bashcomp:noarch"
27
source="https://libvirt.org/sources/$pkgname-$pkgver.tar.xz
Leonardo Arena's avatar
Leonardo Arena committed
28
	libvirt.confd
29
	libvirt.initd
30 31
	virtlogd.initd
	virtlockd.initd
Timo Teräs's avatar
Timo Teräs committed
32
	musl-fix-includes.patch
33
	stderr-fix.patch
34
	"
35
if [ "$CARCH" = "x86_64" ]; then
36
	subpackages="$subpackages $pkgname-xen"
37
	makedepends="$makedepends xen-dev zfs"
38
fi
39
subpackages="$subpackages $pkgname-common-drivers:_common_drivers"
40

41 42 43 44 45 46 47
# secfixes:
#   5.5.0-r0:
#     - CVE-2019-10168
#     - CVE-2019-10167
#     - CVE-2019-10166
#     - CVE-2019-10161

Leonardo Arena's avatar
Leonardo Arena committed
48
build() {
49 50 51 52
	cd "$builddir"
	# qemu sets libexec dir to /usr/lib/qemu
	export ac_cv_path_QEMU_BRIDGE_HELPER="/usr/lib/qemu/qemu-bridge-helper"
	[ "$CARCH" = x86_64 ] && local _xen_opt="--with-libxl"
53
	[ "$CARCH" = x86_64 ] && local _zfs_opt="--with-storage-zfs"
54 55 56 57
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
Leonardo Arena's avatar
Leonardo Arena committed
58 59 60
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
61
		--libexec=/usr/lib/"$pkgname" \
62
		$_xen_opt \
63
		$_zfs_opt \
64
		--with-polkit \
65
		--with-storage-fs \
66
		--with-storage-lvm \
67
		--enable-static \
68
		--with-qemu
69
	make
Leonardo Arena's avatar
Leonardo Arena committed
70 71 72
}

package() {
73
	cd "$builddir"
74
	make DESTDIR="$pkgdir" install
Leonardo Arena's avatar
Leonardo Arena committed
75 76
	install -D -m755 $srcdir/$pkgname.initd $pkgdir/etc/init.d/libvirtd
	install -D -m755 $srcdir/$pkgname.confd $pkgdir/etc/conf.d/libvirtd
77 78
	install -D -m755 $srcdir/virtlogd.initd $pkgdir/etc/init.d/virtlogd
	install -D -m755 $srcdir/virtlockd.initd $pkgdir/etc/init.d/virtlockd
Timo Teräs's avatar
Timo Teräs committed
79

80
	install -d "$pkgdir"/etc/modules-load.d
81
	echo "tun" > "$pkgdir"/etc/modules-load.d/libvirt.conf
82

Timo Teräs's avatar
Timo Teräs committed
83
	rm -rf "$pkgdir"/usr/lib/charset.alias
84
	rmdir -p "$pkgdir"/usr/lib 2>/dev/null || true
Leonardo Arena's avatar
Leonardo Arena committed
85 86
}

87 88 89 90 91 92 93
dev() {
	default_dev
	mkdir -p "$subpkgdir"/usr/share/libvirt
	mv "$pkgdir"/usr/share/libvirt/api \
		"$subpkgdir"/usr/share/libvirt/
}

94
daemon() {
95
	cd "$builddir"
96
	pkgdesc="libvirt daemon package"
97
	depends="libvirt-client $_daemon_deps"
98 99 100 101 102 103
	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
104
	mv "$pkgdir"/etc/modules-load.d "$subpkgdir"/etc
105 106
	mv "$pkgdir"/etc/$pkgname/libvirtd.conf "$subpkgdir"/etc/libvirt/
	mv "$pkgdir"/usr/sbin/libvirtd "$subpkgdir"/usr/sbin/
107 108 109 110
	mv "$pkgdir"/etc/logrotate.d/libvirtd "$subpkgdir"/etc/logrotate.d/
}

client() {
111
	cd "$builddir"
112
	pkgdesc="libvirt client package"
113
	depends="libvirt $_client_deps"
114
	replaces="libvirt"
115 116
	mkdir -p "$subpkgdir"/etc/$pkgname "$subpkgdir"/usr/bin \
		"$subpkgdir"/usr/lib
117 118
	mv "$pkgdir"/etc/$pkgname/$pkgname.conf "$subpkgdir"/etc/libvirt/
	mv "$pkgdir"/usr/bin/* "$subpkgdir"/usr/bin/
119 120 121 122 123 124 125 126 127 128
}

static() {
	pkgdesc="$pkgname static libraries"
	mkdir -p "$subpkgdir"/usr/lib
	cd "$pkgdir"
	for _lib in  $(find . -name '*.a'); do
		mkdir -p "$subpkgdir"/${_lib%/*}
		mv "$_lib" "$subpkgdir"/${_lib%/*}/
	done
129 130
}

131
bashcomp() {
132 133 134 135 136 137
	depends=""
	pkgdesc="Bash completions for $pkgname"
	install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
	mkdir -p "$subpkgdir"/usr/share/
	mv "$pkgdir"/usr/share/bash-completion \
		"$subpkgdir"/usr/share/
138 139
}

140
_mv_driver() {
Natanael Copa's avatar
Natanael Copa committed
141
	local _name="$1" _drivers="$2" _pkg="$3"
142
	pkgdesc="$_name driver for libvirt"
143 144
	depends="$pkgname-daemon=$pkgver-r$pkgrel
		$pkgname-common-drivers=$pkgver-r$pkgrel"
145 146 147 148 149 150 151 152 153 154
	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
Natanael Copa's avatar
Natanael Copa committed
155
	local _d
156
	cd "$pkgdir"
Natanael Copa's avatar
Natanael Copa committed
157
	for _d in $_drivers; do
158 159
		find * -name "*$_d[.-]*" -o -name "*$_d" | while read _f; do
			mkdir -p "$subpkgdir"/${_f%/*}
160
			mv "$pkgdir"/$_f "$subpkgdir"/$_f
161
		done
Natanael Copa's avatar
Natanael Copa committed
162
	done
163 164
}

165 166 167 168 169
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; }
170

171 172 173 174 175 176 177 178 179
_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/
Natanael Copa's avatar
Natanael Copa committed
180 181
}

182
sha512sums="95fe931394fb31288faf73349bb298f08f63cf062f851b9935303145f8166f69128be9360757f0e1845256c14f4d7672843dba0dc6c086b1c3c8bfc035cc8986  libvirt-5.6.0.tar.xz
Natanael Copa's avatar
Natanael Copa committed
183
9aba6ab73219a635c64a340ee8887356e644445c9128734cbce73f5d54778378da2f10a190365ad88a7db8bc95b1fb17f0c6ca41fc41bb786c09e1afe84d65dc  libvirt.confd
184
734afb83b7a4703dd238f1d89dbc853a8c73bcf1994af648c41ab01ae4088e5c7a423f0cb91e5e31f2ae5e60c66d08a6e1583a1e3b88bb5554e0f9fd15ecc15c  libvirt.initd
185 186
36b85f473d292be8df415256d01a562131d8ae61450ba3893658090a12d589ca32215382f56f286a830b4e59ffd98fbe1d92004f2ce14ca0834451b943cd8f2f  virtlogd.initd
a4c4d26e4111931acbe7594451bf963a36c8db33c64b1bc447ab4758bb92803510bebee0511d6bc16ba80c289ab6f87e74377d47bf560412f9adb9c161a206d9  virtlockd.initd
187 188
dfe042c596028125bf8548115de2922683829c4716f6b0efb8efc38518670e3e848481661b9714bb0664c1022b87e8f3c0773611fe10187b0bc588e2336ada0c  musl-fix-includes.patch
d32551d56eae2c33bab7571964f76421336967918c293cd1d18fc66626a7ead3551b5672a9e3fc3d8b7bca82cc0abb17e428ee8271d04d73bc06fd16309918b3  stderr-fix.patch"