APKBUILD 7.31 KB
Newer Older
1
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
Leonardo Arena's avatar
Leonardo Arena committed
2
pkgname=libvirt
3
pkgver=2.3.0
4
_ver="${pkgver/_rc/-rc}"
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/"
Natanael Copa's avatar
Natanael Copa committed
8
arch="all"
Leonardo Arena's avatar
Leonardo Arena committed
9
license="LGPL"
10
_daemon_deps="bridge-utils dmidecode dnsmasq ebtables ip6tables iptables"
11 12
_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.xz
Leonardo Arena's avatar
Leonardo Arena committed
27
	libvirt.confd
28
	libvirt.initd
29 30
	virtlogd.initd
	virtlockd.initd
Timo Teräs's avatar
Timo Teräs committed
31
	musl-fix-includes.patch
32
	fix-fortify-virnetlink.patch
33
	"
Leonardo Arena's avatar
Leonardo Arena committed
34

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

41
_builddir="$srcdir"/$pkgname-$pkgver
Leonardo Arena's avatar
Leonardo Arena committed
42

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

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

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

95
	install -d "$pkgdir"/etc/modules-load.d
96
	echo "tun" > "$pkgdir"/etc/modules-load.d/libvirt.conf
97

Timo Teräs's avatar
Timo Teräs committed
98 99 100
	rm -rf "$pkgdir"/usr/lib/charset.alias
	rmdir -p "$pkgdir"/usr/lib 2>/dev/null
	return 0
Leonardo Arena's avatar
Leonardo Arena committed
101 102
}

103 104 105 106 107 108 109
dev() {
	default_dev
	mkdir -p "$subpkgdir"/usr/share/libvirt
	mv "$pkgdir"/usr/share/libvirt/api \
		"$subpkgdir"/usr/share/libvirt/
}

110 111 112
daemon() {
	cd "$_builddir"
	pkgdesc="libvirt daemon package"
113
	depends="libvirt-client $_daemon_deps"
114 115 116 117 118 119
	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
120
	mv "$pkgdir"/etc/modules-load.d "$subpkgdir"/etc
121 122
	mv "$pkgdir"/etc/$pkgname/libvirtd.conf "$subpkgdir"/etc/libvirt/
	mv "$pkgdir"/usr/sbin/libvirtd "$subpkgdir"/usr/sbin/
123 124 125 126 127 128
	mv "$pkgdir"/etc/logrotate.d/libvirtd "$subpkgdir"/etc/logrotate.d/
}

client() {
	cd "$_builddir"
	pkgdesc="libvirt client package"
129
	depends="libvirt $_client_deps"
130
	replaces="libvirt"
131 132
	mkdir -p "$subpkgdir"/etc/$pkgname "$subpkgdir"/usr/bin \
		"$subpkgdir"/usr/lib
133 134
	mv "$pkgdir"/etc/$pkgname/$pkgname.conf "$subpkgdir"/etc/libvirt/
	mv "$pkgdir"/usr/bin/* "$subpkgdir"/usr/bin/
135 136 137
	mv "$pkgdir"/usr/lib/lib*.so.* "$subpkgdir"/usr/lib/ || return 1
}

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

163 164 165 166 167
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; }
168

169 170 171 172 173 174 175 176 177
_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
178 179
}

180
md5sums="a492cd17aae09284b3b218d597887ae2  libvirt-2.3.0.tar.xz
Leonardo Arena's avatar
Leonardo Arena committed
181
1c84a7baeafe0a7f4e9d7ae5180311b7  libvirt.confd
182
bb94cd55d0029de387e6cb41e41f9167  libvirt.initd
183 184
e979ad068888cc824be210bd51c82f82  virtlogd.initd
4fb24502be354972041b37186ef5406c  virtlockd.initd
185
9da7723b114b2d87558e92828366fbcb  musl-fix-includes.patch
186
bc6ed2ce739dcc40542bb4e6bc94c0d3  fix-fortify-virnetlink.patch"
187
sha256sums="e430e69b27d3f6c97255e638617b59b179618d531d81ac7dfe0783a1c1eeafd1  libvirt-2.3.0.tar.xz
Natanael Copa's avatar
Natanael Copa committed
188
851ab3f9678f0fa9c3ee03f7fc7bd00c4ee86d5f0777eecf9eb1ffe3243adfd1  libvirt.confd
189
e198935231f34601f1aafccdda132ca6ef22ea1bcc376446e2ceb04e6cd89800  libvirt.initd
190 191
51c030d7ba9a9dad1f927020592d7aef2dc2cd4abf38bd4ca97eee60943c7901  virtlogd.initd
552ba1f6edf92513a3041cbd3655ce782dc413c6f60995e77e6e3245ad1ef1f2  virtlockd.initd
192
8dfa9dbe71ee21dc53e44bd7cc0127adde1bf3371d6b393657b386bb83f8139b  musl-fix-includes.patch
193
84132508aeb5a5946e07426337d6fbb0208b1181d51d3c4927ef9601562ce3d3  fix-fortify-virnetlink.patch"
194
sha512sums="b815704a7d021895e94f34551f783b053f4dce3d6f792e0734b98745b8bd895ddb30250b3cf9b1ecc61bb2f09073a51bc75edb2745591d22d6a7ef2935eac701  libvirt-2.3.0.tar.xz
Natanael Copa's avatar
Natanael Copa committed
195
9aba6ab73219a635c64a340ee8887356e644445c9128734cbce73f5d54778378da2f10a190365ad88a7db8bc95b1fb17f0c6ca41fc41bb786c09e1afe84d65dc  libvirt.confd
196
734afb83b7a4703dd238f1d89dbc853a8c73bcf1994af648c41ab01ae4088e5c7a423f0cb91e5e31f2ae5e60c66d08a6e1583a1e3b88bb5554e0f9fd15ecc15c  libvirt.initd
197 198
36b85f473d292be8df415256d01a562131d8ae61450ba3893658090a12d589ca32215382f56f286a830b4e59ffd98fbe1d92004f2ce14ca0834451b943cd8f2f  virtlogd.initd
a4c4d26e4111931acbe7594451bf963a36c8db33c64b1bc447ab4758bb92803510bebee0511d6bc16ba80c289ab6f87e74377d47bf560412f9adb9c161a206d9  virtlockd.initd
199
b6142256bf2700b9e5335c60fe5628e4095a24689c31d54afcab46f46a06b9c0ae676f87f77a487377eafbec11fb7afa9b994aef48a10a39e82f47c45df008ba  musl-fix-includes.patch
200
0ef74be8c8f0e6c6ae6e3dcf6e83dc76c1371e1eaab123589f634c22f221cc26a8f0b0de6a9f5d36510b270d4a06fae42b51b749311f3e57953e65fbfc241911  fix-fortify-virnetlink.patch"