# Maintainer: Leonardo Arena pkgname=libvirt pkgver=1.2.3 _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 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 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 polkit-dev readline-dev $depends_dev $_daemon_deps $_client_deps " 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 physmem.patch musl-fix-includes.patch nodeinfo-musl.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 } 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 \ || return 1 make || return 1 } package() { cd "$_builddir" make DESTDIR="$pkgdir" install || return 1 find "$pkgdir" -name '*.la' -delete install -D -m755 $srcdir/$pkgname.initd $pkgdir/etc/init.d/libvirtd install -D -m755 $srcdir/$pkgname.confd $pkgdir/etc/conf.d/libvirtd 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/$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="ad1602a2fcc3609c83b885a28f3eecbd libvirt-1.2.3.tar.gz 1c84a7baeafe0a7f4e9d7ae5180311b7 libvirt.confd d897df38c7e7fa1a297aa551108633c9 libvirt.initd 2d44db1a1e849decd709ccf07098c475 physmem.patch 9da7723b114b2d87558e92828366fbcb musl-fix-includes.patch aea5a4bd25176fcc1333986c5932ecc2 nodeinfo-musl.patch" sha256sums="b489d1a29c6166643d34b72795a89b03c6ac775cdaeadb6aa86fc1a982c02e31 libvirt-1.2.3.tar.gz 851ab3f9678f0fa9c3ee03f7fc7bd00c4ee86d5f0777eecf9eb1ffe3243adfd1 libvirt.confd e9fad203434ffaa6afe524e42a9fb6594edad61cb02b1ca60a68d1a7fe0c31ab libvirt.initd 316a9783c162757d2b8530a65eccdc0d25975037699844679ffc3c7aee5206a6 physmem.patch 8dfa9dbe71ee21dc53e44bd7cc0127adde1bf3371d6b393657b386bb83f8139b musl-fix-includes.patch 7203f304eaf15f915c8a0551c9a5ea5f6646c9c6d937e399eda530d7be803768 nodeinfo-musl.patch" sha512sums="5ff85a98a0c62229d0ab8125d20fce982f8497d20cb89758bc37f475d7a5d59caa6d962e6c2313e1c494ca1648a836fcad253ceaccc34cc0060135470be3db5b libvirt-1.2.3.tar.gz 9aba6ab73219a635c64a340ee8887356e644445c9128734cbce73f5d54778378da2f10a190365ad88a7db8bc95b1fb17f0c6ca41fc41bb786c09e1afe84d65dc libvirt.confd f48c97f93ef4509a86eda6200b3aae5b2c0c6263403bde933b770fd62240dca27bc439bd29b440ea6a47c8337f8b4511230ed915cb5ff54d9a1cf311863f6fa1 libvirt.initd 4c876a89dee4cc793ce64a0bf43db4f493d1d47409a9fab727b8b0f182e4b25017aa4371afd96ce081dab4aa3e93c6c5ad46e0e6fc2c2076a9da50632ef7f06e physmem.patch b6142256bf2700b9e5335c60fe5628e4095a24689c31d54afcab46f46a06b9c0ae676f87f77a487377eafbec11fb7afa9b994aef48a10a39e82f47c45df008ba musl-fix-includes.patch 62267f24bc6c2baa8f09d0a56abc1cb39997b54ce665878f7e187bb87e2f25cc358849a63f2b10f43ce0f56d62261507ab5c0a6ad1874722b33f4e1329c4df34 nodeinfo-musl.patch"