summaryrefslogtreecommitdiffstats
path: root/main/libvirt/APKBUILD
blob: e1cca4fbd7b18b0b4191598bd66f28117037d12f (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
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=libvirt
pkgver=1.0.5
_ver="${pkgver/_rc/-rc}"
pkgrel=1
pkgdesc="A virtualization API for several hypervisor and container systems"
url="http://libvirt.org/"
arch="all"
license="LGPL"
depends="bridge-utils dmidecode iptables netcat-openbsd pm-utils python"
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"
install=
subpackages="$pkgname-client $pkgname-daemon $pkgname-dev $pkgname-doc $pkgname-lang
	$pkgname-lxc $pkgname-qemu $pkgname-uml"
source="http://libvirt.org/sources/$pkgname-$pkgver.tar.gz
	libvirt.confd
	libvirt.initd
	uclibc-physmem.patch
	remoteDispatchStoragePoolListAllVolumes.patch
	"

if [ "$ALPINE_LIBC" != "eglibc" ]; then
	subpackages="$subpackages $pkgname-xen"
	makedepends="$makedepends xen-dev"
fi

_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 LDFLAGS="$LDFLAGS -lm"
	./configure --prefix=/usr \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
		--libexec=/usr/lib/"$pkgname" \
		--without-libxl \
		|| 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
}

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

client() {
	cd "$_builddir"
	pkgdesc="libvirt client package"
	depends="libvirt"
	replaces="libvirt"
	mkdir -p "$subpkgdir"/etc/$pkgname "$subpkgdir"/usr/bin
	# mkdir -p "$subpkgdir"/usr/bin
	mv "$pkgdir"/etc/$pkgname/$pkgname.conf "$subpkgdir"/etc/libvirt/
	mv "$pkgdir"/usr/bin/* "$subpkgdir"/usr/bin/
}

_mv_driver() {
	local _name="$1" _driver="$2" _pkg="$3"
	pkgdesc="$_name driver for libvirt"
	depends="libvirt-daemon logrotate"
	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

	mv "$pkgdir"/$_dir/libvirt_driver_$_driver.so "$subpkgdir"/$_dir/ \
		|| return 1

	if [ -e "$pkgdir"/etc/logrotate.d/libvirtd.$_driver ]; then
		mv "$pkgdir"/etc/logrotate.d/libvirtd.$_driver \
			"$subpkgdir"/etc/logrotate.d/
	fi
}

qemu() {
	_mv_driver "QEMU" qemu qemu
	mv "$pkgdir"/etc/libvirt/qemu.conf "$subpkgdir"/etc/libvirt/
}

xen() {
	_mv_driver "XEN" xen xen
}

lxc() {
	_mv_driver "LXC" lxc lxc
}

uml() {
	_mv_driver "UML" uml
}

md5sums="91c4145f49bcf92e89470fa3fb28fff6  libvirt-1.0.5.tar.gz
1c84a7baeafe0a7f4e9d7ae5180311b7  libvirt.confd
d897df38c7e7fa1a297aa551108633c9  libvirt.initd
df9cbfaf8a6e520a4822914a300add4d  uclibc-physmem.patch
25d31e5965f90ac8c50483305d5f3d12  remoteDispatchStoragePoolListAllVolumes.patch"
sha256sums="337f1cd6611462b6e3cdf94541c49477df678074321fb7923274e4e30398209f  libvirt-1.0.5.tar.gz
851ab3f9678f0fa9c3ee03f7fc7bd00c4ee86d5f0777eecf9eb1ffe3243adfd1  libvirt.confd
e9fad203434ffaa6afe524e42a9fb6594edad61cb02b1ca60a68d1a7fe0c31ab  libvirt.initd
807005a8669b7396c9af43ddb2534bb0f073f1e97a5c8b1d9eefc1949f3c2df8  uclibc-physmem.patch
de912a18bcf62a11b4c7e25c13f42d3f10d5f6597bd2787cb20a97b7af39dfc0  remoteDispatchStoragePoolListAllVolumes.patch"
sha512sums="ee069f6047bad26b59cc14f7811725801d96525e7943e7abc31d33d256c77ae6024cf5ff841af9441a6853a3c24ba6aa5e0f437dcf2c5b2cfe860364b01719fc  libvirt-1.0.5.tar.gz
9aba6ab73219a635c64a340ee8887356e644445c9128734cbce73f5d54778378da2f10a190365ad88a7db8bc95b1fb17f0c6ca41fc41bb786c09e1afe84d65dc  libvirt.confd
f48c97f93ef4509a86eda6200b3aae5b2c0c6263403bde933b770fd62240dca27bc439bd29b440ea6a47c8337f8b4511230ed915cb5ff54d9a1cf311863f6fa1  libvirt.initd
4c885e72dcb11f8523a267917315d4874812eee289fb00075334c1728d0da9bd0e5db6c52d6e3c39bd3fe66d5ccadf9e26ec9dcaa855397e211b9bd1173ac72d  uclibc-physmem.patch
cd31b3a68fe29f7e506068806f2854902319d0fd4506c02da39a8e4d29eec7fd18a7a4ea2ee85be64ef3795cb199446ad0d2f342d5e7995bb48f0a4cd7ec925a  remoteDispatchStoragePoolListAllVolumes.patch"