APKBUILD 6.42 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.3.3
4
_ver="${pkgver/_rc/-rc}"
5
pkgrel=1
Leonardo Arena's avatar
Leonardo Arena committed
6 7
pkgdesc="A virtualization API for several hypervisor and container systems"
url="http://libvirt.org/"
Natanael Copa's avatar
Natanael Copa committed
8
arch="all"
Leonardo Arena's avatar
Leonardo Arena committed
9
license="LGPL"
10 11 12
_daemon_deps="bridge-utils dmidecode iptables"
_client_deps="pm-utils gnutls-utils netcat-openbsd"
depends=""
13
depends_dev="libtirpc-dev"
14 15
makedepends="augeas-dev bridge-utils cyrus-sasl-dev device-mapper
	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 gnutls-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 dnsmasq linux-headers $depends_dev
20
	fuse-dev util-linux $_daemon_deps $_client_deps
21
	automake autoconf libtool
22
	"
23
install="$pkgname.post-install"
24
subpackages="$pkgname-dev $pkgname-doc $pkgname-client $pkgname-daemon
Natanael Copa's avatar
Natanael Copa committed
25
	$pkgname-lang $pkgname-lxc $pkgname-qemu $pkgname-uml $pkgname-vbox"
26
source="http://libvirt.org/sources/$pkgname-$pkgver.tar.gz
Leonardo Arena's avatar
Leonardo Arena committed
27
	libvirt.confd
28
	libvirt.initd
Timo Teräs's avatar
Timo Teräs committed
29
	musl-fix-includes.patch
30
	fix-fortify-virnetlink.patch
31
	"
Leonardo Arena's avatar
Leonardo Arena committed
32

33
if [ "$CARCH" = "x86_64" ]; then
34 35 36
	subpackages="$subpackages $pkgname-xen"
	makedepends="$makedepends xen-dev"
fi
37
subpackages="$subpackages $pkgname-common-drivers:_common_drivers"
38

39
_builddir="$srcdir"/$pkgname-$pkgver
Leonardo Arena's avatar
Leonardo Arena committed
40

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

build() {
	cd "$_builddir"
64 65
	export CFLAGS="$CFLAGS `pkgconf --cflags libtirpc`"
	export LDFLAGS="$LDFLAGS -lm `pkgconf --libs libtirpc`"
66 67 68 69
	local _xen_opt=
	if [ "$CARCH" = x86_64 ]; then
		_xen_opt="--with-libxl"
	fi
70 71 72 73
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
Leonardo Arena's avatar
Leonardo Arena committed
74 75 76
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
77
		--libexec=/usr/lib/"$pkgname" \
78
		$_xen_opt \
79
		--with-polkit \
80
		--with-storage-fs \
81
		|| return 1
82
	make || return 1
Leonardo Arena's avatar
Leonardo Arena committed
83 84 85 86
}

package() {
	cd "$_builddir"
Natanael Copa's avatar
Natanael Copa committed
87
	make DESTDIR="$pkgdir" install || return 1
Leonardo Arena's avatar
Leonardo Arena committed
88 89
	install -D -m755 $srcdir/$pkgname.initd $pkgdir/etc/init.d/libvirtd
	install -D -m755 $srcdir/$pkgname.confd $pkgdir/etc/conf.d/libvirtd
Timo Teräs's avatar
Timo Teräs committed
90 91 92 93

	rm -rf "$pkgdir"/usr/lib/charset.alias
	rmdir -p "$pkgdir"/usr/lib 2>/dev/null
	return 0
Leonardo Arena's avatar
Leonardo Arena committed
94 95
}

96 97 98 99 100 101 102
dev() {
	default_dev
	mkdir -p "$subpkgdir"/usr/share/libvirt
	mv "$pkgdir"/usr/share/libvirt/api \
		"$subpkgdir"/usr/share/libvirt/
}

103 104 105
daemon() {
	cd "$_builddir"
	pkgdesc="libvirt daemon package"
106
	depends="libvirt-client $_daemon_deps"
107 108 109 110 111 112
	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
113 114
	mv "$pkgdir"/etc/$pkgname/libvirtd.conf "$subpkgdir"/etc/libvirt/
	mv "$pkgdir"/usr/sbin/libvirtd "$subpkgdir"/usr/sbin/
115 116 117 118 119 120
	mv "$pkgdir"/etc/logrotate.d/libvirtd "$subpkgdir"/etc/logrotate.d/
}

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

130
_mv_driver() {
Natanael Copa's avatar
Natanael Copa committed
131
	local _name="$1" _drivers="$2" _pkg="$3"
132
	pkgdesc="$_name driver for libvirt"
133 134
	depends="$pkgname-daemon=$pkgver-r$pkgrel
		$pkgname-common-drivers=$pkgver-r$pkgrel"
135 136 137 138 139 140 141 142 143 144
	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
145
	local _d
146
	cd "$pkgdir"
Natanael Copa's avatar
Natanael Copa committed
147
	for _d in $_drivers; do
148 149 150 151
		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
152
	done
153 154
}

155 156 157 158 159
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; }
160

161 162 163 164 165 166 167 168 169
_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
170 171
}

Natanael Copa's avatar
Natanael Copa committed
172
md5sums="698e0949a41a2b669dbe374759aaa64b  libvirt-1.3.3.tar.gz
Leonardo Arena's avatar
Leonardo Arena committed
173
1c84a7baeafe0a7f4e9d7ae5180311b7  libvirt.confd
174
3e7f800197cad204e36274b54aba2be3  libvirt.initd
175
9da7723b114b2d87558e92828366fbcb  musl-fix-includes.patch
176
bc6ed2ce739dcc40542bb4e6bc94c0d3  fix-fortify-virnetlink.patch"
Natanael Copa's avatar
Natanael Copa committed
177
sha256sums="99603b8dba574bc592673fdf5c77e96cf5221e21104ab0477efeb8aba133858f  libvirt-1.3.3.tar.gz
Natanael Copa's avatar
Natanael Copa committed
178
851ab3f9678f0fa9c3ee03f7fc7bd00c4ee86d5f0777eecf9eb1ffe3243adfd1  libvirt.confd
179
d07461d86c4db3fb74e4d4af23ff7fb1ee9e7f0ec471d9a5f3fbf0dd9ca148ad  libvirt.initd
180
8dfa9dbe71ee21dc53e44bd7cc0127adde1bf3371d6b393657b386bb83f8139b  musl-fix-includes.patch
181
84132508aeb5a5946e07426337d6fbb0208b1181d51d3c4927ef9601562ce3d3  fix-fortify-virnetlink.patch"
Natanael Copa's avatar
Natanael Copa committed
182
sha512sums="79eeb2bb07429e76dbe06957494f71b6166dc4a1b78178d39dbc870eed0a19fa78297bcb1974219f1bfbbb54e678f88ce964f7678670b073ebc0866ded61a83f  libvirt-1.3.3.tar.gz
Natanael Copa's avatar
Natanael Copa committed
183
9aba6ab73219a635c64a340ee8887356e644445c9128734cbce73f5d54778378da2f10a190365ad88a7db8bc95b1fb17f0c6ca41fc41bb786c09e1afe84d65dc  libvirt.confd
184
6dadee33f6696182971d24028d6d4e1a3036f93305d54f9ae4919dcb93e813375d981037244900b6c533f46e5132dc053cf168020d1aa1c2545c28c811469553  libvirt.initd
185
b6142256bf2700b9e5335c60fe5628e4095a24689c31d54afcab46f46a06b9c0ae676f87f77a487377eafbec11fb7afa9b994aef48a10a39e82f47c45df008ba  musl-fix-includes.patch
186
0ef74be8c8f0e6c6ae6e3dcf6e83dc76c1371e1eaab123589f634c22f221cc26a8f0b0de6a9f5d36510b270d4a06fae42b51b749311f3e57953e65fbfc241911  fix-fortify-virnetlink.patch"