summaryrefslogtreecommitdiffstats
path: root/main/libvirt/APKBUILD
blob: 836fd2f42cb53e2e2db39a4b584ff30d9f4faa26 (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.2"
_ver="${pkgver/_rc/-rc}"
pkgrel=0
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 
	libnetcf-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
	0001-util-refactor-iptables-command-construction-into-mul.patch

	0001-net-support-set-public-ip-range-for-forward-mode-nat.patch
	0002-net-add-support-for-specifying-port-range-for-forwar.patch

	0001-complete-virterror-virerror-name-change.patch
	0001-Fix-missing-error-constants-in-libvirt-python-module.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="7e268ed702c4331d393e5b43449cae13  libvirt-1.0.2.tar.gz
1c84a7baeafe0a7f4e9d7ae5180311b7  libvirt.confd
d897df38c7e7fa1a297aa551108633c9  libvirt.initd
df9cbfaf8a6e520a4822914a300add4d  uclibc-physmem.patch
98a496d6d606c3406e6f8b03c3b25028  0001-util-refactor-iptables-command-construction-into-mul.patch
05789e003f4b90808b6898e9d72ad8f4  0001-net-support-set-public-ip-range-for-forward-mode-nat.patch
de01f68b563a51dd39b873c5eade0f25  0002-net-add-support-for-specifying-port-range-for-forwar.patch
854982416fafeabbeca06e807c868a9c  0001-complete-virterror-virerror-name-change.patch
dcb427eeceb5dcb79e5ea8eef748e44d  0001-Fix-missing-error-constants-in-libvirt-python-module.patch"