APKBUILD 5.88 KB
Newer Older
Leonardo Arena's avatar
Leonardo Arena committed
1
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
Leonardo Arena's avatar
Leonardo Arena committed
2
pkgname=libvirt
Natanael Copa's avatar
Natanael Copa committed
3
pkgver=1.1.1
4
_ver="${pkgver/_rc/-rc}"
Natanael Copa's avatar
Natanael Copa committed
5
pkgrel=0
Leonardo Arena's avatar
Leonardo Arena committed
6 7
pkgdesc="A virtualization API for several hypervisor and container systems"
url="http://libvirt.org/"
8
arch="all"
Leonardo Arena's avatar
Leonardo Arena committed
9
license="LGPL"
10 11 12 13 14 15 16 17
_daemon_deps="bridge-utils dmidecode iptables"
_client_deps="pm-utils gnutls-utils netcat-openbsd"
depends=""
makedepends="augeas-dev bridge-utils cyrus-sasl-dev device-mapper
	e2fsprogs-dev gnutls-dev libcap-ng-dev libgpg-error-dev
	netcf-dev libnl-dev libxml2-dev libxslt-dev libtasn1-dev
	lvm2-dev lxc-dev gnutls-dev libgcrypt-dev parted-dev perl pkgconfig
	udev-dev zlib-dev yajl-dev libpcap-dev curl-dev libpciaccess-dev
18
	polkit-dev readline-dev
19 20
	$_daemon_deps $_client_deps
	"
21
install="$pkgname.post-install"
22 23
subpackages="$pkgname-dev $pkgname-doc $pkgname-client $pkgname-daemon
	$pkgname-lang py-$pkgname:_py
Natanael Copa's avatar
Natanael Copa committed
24
	$pkgname-lxc $pkgname-qemu $pkgname-uml $pkgname-vbox"
25
source="http://libvirt.org/sources/$pkgname-$pkgver.tar.gz
Leonardo Arena's avatar
Leonardo Arena committed
26
	libvirt.confd
27
	libvirt.initd
28
	uclibc-physmem.patch
29
	"
Leonardo Arena's avatar
Leonardo Arena committed
30

31 32 33 34
if [ "$ALPINE_LIBC" != "eglibc" ]; then
	subpackages="$subpackages $pkgname-xen"
	makedepends="$makedepends xen-dev"
fi
35
subpackages="$subpackages $pkgname-common-drivers:_common_drivers"
36

37
_builddir="$srcdir"/$pkgname-$pkgver
Leonardo Arena's avatar
Leonardo Arena committed
38

39
prepare() {
40
        cd "$_builddir" || return 1
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
        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
57
}
Leonardo Arena's avatar
Leonardo Arena committed
58 59 60

build() {
	cd "$_builddir"
61
	export LDFLAGS="$LDFLAGS -lm"
62 63 64 65
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
Leonardo Arena's avatar
Leonardo Arena committed
66 67 68
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
69
		--libexec=/usr/lib/"$pkgname" \
Natanael Copa's avatar
Natanael Copa committed
70
		--with-libxl \
71
		--with-polkit \
72
		|| return 1
73
	make || return 1
Leonardo Arena's avatar
Leonardo Arena committed
74 75 76 77
}

package() {
	cd "$_builddir"
Natanael Copa's avatar
Natanael Copa committed
78
	make DESTDIR="$pkgdir" install || return 1
Natanael Copa's avatar
Natanael Copa committed
79
	find "$pkgdir" -name '*.la' -delete
Leonardo Arena's avatar
Leonardo Arena committed
80 81 82 83
	install -D -m755 $srcdir/$pkgname.initd $pkgdir/etc/init.d/libvirtd
	install -D -m755 $srcdir/$pkgname.confd $pkgdir/etc/conf.d/libvirtd
}

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

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

client() {
	cd "$_builddir"
	pkgdesc="libvirt client package"
109
	depends="libvirt $_client_deps"
110
	replaces="libvirt"
111 112
	mkdir -p "$subpkgdir"/etc/$pkgname "$subpkgdir"/usr/bin \
		"$subpkgdir"/usr/lib
113 114
	mv "$pkgdir"/etc/$pkgname/$pkgname.conf "$subpkgdir"/etc/libvirt/
	mv "$pkgdir"/usr/bin/* "$subpkgdir"/usr/bin/
115 116 117 118 119 120 121 122
	mv "$pkgdir"/usr/lib/lib*.so.* "$subpkgdir"/usr/lib/ || return 1
}

_py() {
	pkgdesc="Python bindings to libvirt"
	replaces="libvirt"
	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/python* "$subpkgdir"/usr/lib/
123 124 125
}

_mv_driver() {
Natanael Copa's avatar
Natanael Copa committed
126
	local _name="$1" _drivers="$2" _pkg="$3"
127
	pkgdesc="$_name driver for libvirt"
128 129
	depends="$pkgname-daemon=$pkgver-r$pkgrel
		$pkgname-common-drivers=$pkgver-r$pkgrel"
130 131 132 133 134 135 136 137 138 139
	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
140
	local _d
141
	cd "$pkgdir"
Natanael Copa's avatar
Natanael Copa committed
142
	for _d in $_drivers; do
143 144 145 146
		find * -name "*$_d[.-]*" -o -name "*$_d" | while read _f; do
			mkdir -p "$subpkgdir"/${_f%/*}
			mv "$pkgdir"/$_f "$subpkgdir"/$_f || return 1
		done
Natanael Copa's avatar
Natanael Copa committed
147
	done
148 149
}

150 151 152 153 154
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; }
155

156 157 158 159 160 161 162 163 164
_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
165 166
}

Natanael Copa's avatar
Natanael Copa committed
167
md5sums="632f30a2f22fbb404b8e10702d7f55ca  libvirt-1.1.1.tar.gz
Leonardo Arena's avatar
Leonardo Arena committed
168
1c84a7baeafe0a7f4e9d7ae5180311b7  libvirt.confd
Leonardo Arena's avatar
Leonardo Arena committed
169
d897df38c7e7fa1a297aa551108633c9  libvirt.initd
Natanael Copa's avatar
Natanael Copa committed
170
df9cbfaf8a6e520a4822914a300add4d  uclibc-physmem.patch"
Natanael Copa's avatar
Natanael Copa committed
171
sha256sums="dc6f1e1e15b9b190eaa706e76edabcfc94b239c012f5afc22b22357a4b3b22c2  libvirt-1.1.1.tar.gz
Natanael Copa's avatar
Natanael Copa committed
172 173
851ab3f9678f0fa9c3ee03f7fc7bd00c4ee86d5f0777eecf9eb1ffe3243adfd1  libvirt.confd
e9fad203434ffaa6afe524e42a9fb6594edad61cb02b1ca60a68d1a7fe0c31ab  libvirt.initd
Natanael Copa's avatar
Natanael Copa committed
174
807005a8669b7396c9af43ddb2534bb0f073f1e97a5c8b1d9eefc1949f3c2df8  uclibc-physmem.patch"
Natanael Copa's avatar
Natanael Copa committed
175
sha512sums="9f121827913cd99ba14ebf5755e679da5010e8784a16bc9ef9f49cfd8bf4d4335e6c200401b0592fe77a431d3de9a1b360695a515e5eb789cf675f087194cc4a  libvirt-1.1.1.tar.gz
Natanael Copa's avatar
Natanael Copa committed
176 177
9aba6ab73219a635c64a340ee8887356e644445c9128734cbce73f5d54778378da2f10a190365ad88a7db8bc95b1fb17f0c6ca41fc41bb786c09e1afe84d65dc  libvirt.confd
f48c97f93ef4509a86eda6200b3aae5b2c0c6263403bde933b770fd62240dca27bc439bd29b440ea6a47c8337f8b4511230ed915cb5ff54d9a1cf311863f6fa1  libvirt.initd
Natanael Copa's avatar
Natanael Copa committed
178
4c885e72dcb11f8523a267917315d4874812eee289fb00075334c1728d0da9bd0e5db6c52d6e3c39bd3fe66d5ccadf9e26ec9dcaa855397e211b9bd1173ac72d  uclibc-physmem.patch"