Gentoo Archives: gentoo-commits

From: Matthias Maier <tamiko@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: app-emulation/libvirt/files/, app-emulation/libvirt/
Date: Sun, 12 Nov 2017 19:36:03
Message-Id: 1510515350.5393325861e6e146359c4081bbcb2e121dcece77.tamiko@gentoo
1 commit: 5393325861e6e146359c4081bbcb2e121dcece77
2 Author: Matthias Maier <tamiko <AT> gentoo <DOT> org>
3 AuthorDate: Sun Nov 12 19:32:46 2017 +0000
4 Commit: Matthias Maier <tamiko <AT> gentoo <DOT> org>
5 CommitDate: Sun Nov 12 19:35:50 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=53933258
7
8 app-emulation/libvirt: version bump to 3.9.0, bug #637002
9
10 Bug: https://bugs.gentoo.org/637002
11 Package-Manager: Portage-2.3.8, Repoman-2.3.4
12
13 app-emulation/libvirt/Manifest | 1 +
14 .../libvirt/files/libvirt-3.9.0-tirpc.patch | 13 +
15 app-emulation/libvirt/libvirt-3.9.0.ebuild | 383 +++++++++++++++++++++
16 3 files changed, 397 insertions(+)
17
18 diff --git a/app-emulation/libvirt/Manifest b/app-emulation/libvirt/Manifest
19 index 4f0d6420ffe..720dad9f13e 100644
20 --- a/app-emulation/libvirt/Manifest
21 +++ b/app-emulation/libvirt/Manifest
22 @@ -1,2 +1,3 @@
23 DIST libvirt-3.6.0.tar.xz 14797704 SHA256 3a2c97f6950796f300f6a2e0404f4de8e51c3b9430cdb82738439adb0ac59e3d SHA512 6cde735a18cb71c9e6dbb25cd2a8f9c72d55ad7d74bdf97b00d784593f0bc59498917fb235ce04de4428899241520d87bf19c015b80282b3d0c12918d9b8b288 WHIRLPOOL 8185ad998158bac9aa6bc0dd0f590a3d9fb393ad94d308bdc84e60ac5c56e110d5f4a2355e2a10b01a6521d8261ae7484aee275e12a17cc7f2830f169e990596
24 DIST libvirt-3.8.0.tar.xz 14868712 SHA256 73eba834089ed0ce74e3183a7f12cf0c6f7de08e9a700b5456c62fb124f903f9 SHA512 fc48f29b493a5ec2b3586f6c5df0b8cb81f3f26be847bc42acfb6481d45970edc760dda0232ad57b95b8cf13382d0269dd3edf4a744040cda15b835d32d8c672 WHIRLPOOL af36d20c2713398f0d7aaf1b9fc2bcf978abc096d3070cb7cb1efa6680204e591e02b03340f4d862f6e7d1fabd4135cba23eef8ccd459264a44a052acf0e509e
25 +DIST libvirt-3.9.0.tar.xz 15010344 SHA256 89fc63213291d329d537ea96e363fd609160da080322973bd1126d431ff63424 SHA512 59878fe5f98ffb73f949315c02ec19f6a075cab21f695c9b98927d17fdc0820d6fd0aa6a9820a6bdb8e6957884a9dccc30b175bc5a3d8d25617546cccd460a38 WHIRLPOOL 9d00863262aefe3ee07653bb7b8fd5bd83efe08289edd106fd04acb93ddf9a65880fcc974b80f45057c410b87ea3233a2e09b4cc9475ee3fd65d597d2c4916ea
26
27 diff --git a/app-emulation/libvirt/files/libvirt-3.9.0-tirpc.patch b/app-emulation/libvirt/files/libvirt-3.9.0-tirpc.patch
28 new file mode 100644
29 index 00000000000..39e2bfafa63
30 --- /dev/null
31 +++ b/app-emulation/libvirt/files/libvirt-3.9.0-tirpc.patch
32 @@ -0,0 +1,13 @@
33 +diff --git a/tools/Makefile.am b/tools/Makefile.am
34 +index 5b73558..05bf8a5 100644
35 +--- a/tools/Makefile.am
36 ++++ b/tools/Makefile.am
37 +@@ -428,7 +428,7 @@ if WITH_WIRESHARK_DISSECTOR
38 +
39 + ws_plugin_LTLIBRARIES = wireshark/src/libvirt.la
40 + wireshark_src_libvirt_la_CPPFLAGS = \
41 +- -I wireshark/src $(WIRESHARK_DISSECTOR_CFLAGS)
42 ++ -I wireshark/src -I/usr/include/tirpc $(WIRESHARK_DISSECTOR_CFLAGS)
43 + wireshark_src_libvirt_la_LDFLAGS = -avoid-version -module
44 + nodist_wireshark_src_libvirt_la_SOURCES = wireshark/src/plugin.c
45 + wireshark_src_libvirt_la_SOURCES = \
46
47 diff --git a/app-emulation/libvirt/libvirt-3.9.0.ebuild b/app-emulation/libvirt/libvirt-3.9.0.ebuild
48 new file mode 100644
49 index 00000000000..d20a55de19b
50 --- /dev/null
51 +++ b/app-emulation/libvirt/libvirt-3.9.0.ebuild
52 @@ -0,0 +1,383 @@
53 +# Copyright 1999-2017 Gentoo Foundation
54 +# Distributed under the terms of the GNU General Public License v2
55 +
56 +EAPI=6
57 +
58 +inherit autotools eutils user linux-info systemd readme.gentoo-r1
59 +
60 +if [[ ${PV} = *9999* ]]; then
61 + inherit git-r3
62 + EGIT_REPO_URI="git://libvirt.org/libvirt.git"
63 + SRC_URI=""
64 + KEYWORDS=""
65 + SLOT="0"
66 +else
67 + # Versions with 4 numbers are stable updates:
68 + if [[ ${PV} =~ ^[0-9]+(\.[0-9]+){3} ]]; then
69 + SRC_URI="http://libvirt.org/sources/stable_updates/${P}.tar.xz"
70 + else
71 + SRC_URI="http://libvirt.org/sources/${P}.tar.xz"
72 + fi
73 + KEYWORDS="~amd64 ~arm64 ~x86"
74 + SLOT="0/${PV}"
75 +fi
76 +
77 +DESCRIPTION="C toolkit to manipulate virtual machines"
78 +HOMEPAGE="http://www.libvirt.org/"
79 +LICENSE="LGPL-2.1"
80 +IUSE="
81 + apparmor audit +caps +dbus firewalld fuse glusterfs iscsi +libvirtd lvm
82 + libssh lxc +macvtap nfs nls numa openvz parted pcap phyp policykit
83 + +qemu rbd sasl selinux +udev uml +vepa virtualbox virt-network
84 + wireshark-plugins xen zeroconf zfs
85 +"
86 +
87 +REQUIRED_USE="
88 + firewalld? ( virt-network )
89 + libvirtd? ( || ( lxc openvz qemu uml virtualbox xen ) )
90 + lxc? ( caps libvirtd )
91 + openvz? ( libvirtd )
92 + policykit? ( dbus )
93 + qemu? ( libvirtd )
94 + uml? ( libvirtd )
95 + vepa? ( macvtap )
96 + virt-network? ( libvirtd )
97 + virtualbox? ( libvirtd )
98 + xen? ( libvirtd )"
99 +
100 +# gettext.sh command is used by the libvirt command wrappers, and it's
101 +# non-optional, so put it into RDEPEND.
102 +# We can use both libnl:1.1 and libnl:3, but if you have both installed, the
103 +# package will use 3 by default. Since we don't have slot pinning in an API,
104 +# we must go with the most recent
105 +RDEPEND="
106 + app-misc/scrub
107 + dev-libs/libgcrypt:0
108 + dev-libs/libnl:3
109 + >=dev-libs/libxml2-2.7.6
110 + || ( >=net-analyzer/netcat6-1.0-r2 >=net-analyzer/openbsd-netcat-1.105-r1 )
111 + >=net-libs/gnutls-1.0.25:0=
112 + net-libs/libssh2
113 + net-libs/libtirpc
114 + net-libs/rpcsvc-proto
115 + >=net-misc/curl-7.18.0
116 + sys-apps/dmidecode
117 + >=sys-apps/util-linux-2.17
118 + sys-devel/gettext
119 + sys-libs/ncurses:0=
120 + sys-libs/readline:=
121 + apparmor? ( sys-libs/libapparmor )
122 + audit? ( sys-process/audit )
123 + caps? ( sys-libs/libcap-ng )
124 + dbus? ( sys-apps/dbus )
125 + firewalld? ( net-firewall/firewalld )
126 + fuse? ( >=sys-fs/fuse-2.8.6:= )
127 + glusterfs? ( >=sys-cluster/glusterfs-3.4.1 )
128 + iscsi? ( sys-block/open-iscsi )
129 + libssh? ( net-libs/libssh )
130 + lvm? ( >=sys-fs/lvm2-2.02.48-r2[-device-mapper-only(-)] )
131 + nfs? ( net-fs/nfs-utils )
132 + numa? (
133 + >sys-process/numactl-2.0.2
134 + sys-process/numad
135 + )
136 + parted? (
137 + >=sys-block/parted-1.8[device-mapper]
138 + sys-fs/lvm2[-device-mapper-only(-)]
139 + )
140 + pcap? ( >=net-libs/libpcap-1.0.0 )
141 + policykit? ( >=sys-auth/polkit-0.9 )
142 + qemu? (
143 + >=app-emulation/qemu-0.13.0
144 + dev-libs/yajl
145 + )
146 + rbd? ( sys-cluster/ceph )
147 + sasl? ( dev-libs/cyrus-sasl )
148 + selinux? ( >=sys-libs/libselinux-2.0.85 )
149 + virt-network? (
150 + net-dns/dnsmasq[script]
151 + net-firewall/ebtables
152 + >=net-firewall/iptables-1.4.10[ipv6]
153 + net-misc/radvd
154 + sys-apps/iproute2[-minimal]
155 + )
156 + virtualbox? ( || ( app-emulation/virtualbox >=app-emulation/virtualbox-bin-2.2.0 ) )
157 + wireshark-plugins? ( net-analyzer/wireshark:= )
158 + xen? (
159 + app-emulation/xen
160 + app-emulation/xen-tools:=
161 + )
162 + udev? (
163 + virtual/udev
164 + >=x11-libs/libpciaccess-0.10.9
165 + )
166 + zeroconf? ( >=net-dns/avahi-0.6[dbus] )
167 + zfs? ( sys-fs/zfs )"
168 +
169 +DEPEND="${RDEPEND}
170 + app-text/xhtml1
171 + dev-lang/perl
172 + dev-libs/libxslt
173 + dev-perl/XML-XPath
174 + virtual/pkgconfig"
175 +
176 +PATCHES=(
177 + "${FILESDIR}"/${PN}-1.3.0-do_not_use_sysconf.patch
178 + "${FILESDIR}"/${PN}-1.2.16-fix_paths_in_libvirt-guests_sh.patch
179 + "${FILESDIR}"/${PN}-3.0.0-fix_paths_for_apparmor.patch
180 + "${FILESDIR}"/${PN}-1.3.4-glibc-2.23.patch
181 + "${FILESDIR}"/${PN}-3.1.0-musl-fix-includes.patch # bug #609488
182 + "${FILESDIR}"/${PN}-3.9.0-tirpc.patch
183 +)
184 +
185 +pkg_setup() {
186 + if use qemu; then
187 + enewgroup qemu 77
188 + enewuser qemu 77 -1 -1 "qemu,kvm"
189 + fi
190 +
191 + use policykit && enewgroup libvirt
192 +
193 + # Check kernel configuration:
194 + CONFIG_CHECK=""
195 + use fuse && CONFIG_CHECK+="
196 + ~FUSE_FS"
197 +
198 + use lvm && CONFIG_CHECK+="
199 + ~BLK_DEV_DM
200 + ~DM_MULTIPATH
201 + ~DM_SNAPSHOT"
202 +
203 + use lxc && CONFIG_CHECK+="
204 + ~BLK_CGROUP
205 + ~CGROUP_CPUACCT
206 + ~CGROUP_DEVICE
207 + ~CGROUP_FREEZER
208 + ~CGROUP_NET_PRIO
209 + ~CGROUP_PERF
210 + ~CGROUPS
211 + ~CGROUP_SCHED
212 + ~CPUSETS
213 + ~IPC_NS
214 + ~MACVLAN
215 + ~NAMESPACES
216 + ~NET_CLS_CGROUP
217 + ~NET_NS
218 + ~PID_NS
219 + ~POSIX_MQUEUE
220 + ~SECURITYFS
221 + ~USER_NS
222 + ~UTS_NS
223 + ~VETH
224 + ~!GRKERNSEC_CHROOT_MOUNT
225 + ~!GRKERNSEC_CHROOT_DOUBLE
226 + ~!GRKERNSEC_CHROOT_PIVOT
227 + ~!GRKERNSEC_CHROOT_CHMOD
228 + ~!GRKERNSEC_CHROOT_CAPS"
229 +
230 + kernel_is lt 4 7 && use lxc && CONFIG_CHECK+="
231 + ~DEVPTS_MULTIPLE_INSTANCES"
232 +
233 + use macvtap && CONFIG_CHECK+="
234 + ~MACVTAP"
235 +
236 + use virt-network && CONFIG_CHECK+="
237 + ~BRIDGE_EBT_MARK_T
238 + ~BRIDGE_NF_EBTABLES
239 + ~NETFILTER_ADVANCED
240 + ~NETFILTER_XT_CONNMARK
241 + ~NETFILTER_XT_MARK
242 + ~NETFILTER_XT_TARGET_CHECKSUM"
243 + # Bandwidth Limiting Support
244 + use virt-network && CONFIG_CHECK+="
245 + ~BRIDGE_EBT_T_NAT
246 + ~NET_ACT_POLICE
247 + ~NET_CLS_FW
248 + ~NET_CLS_U32
249 + ~NET_SCH_HTB
250 + ~NET_SCH_INGRESS
251 + ~NET_SCH_SFQ"
252 +
253 + # Handle specific kernel versions for different features
254 + kernel_is lt 3 6 && CONFIG_CHECK+=" ~CGROUP_MEM_RES_CTLR"
255 + if kernel_is ge 3 6; then
256 + CONFIG_CHECK+=" ~MEMCG ~MEMCG_SWAP "
257 + kernel_is lt 4 5 && CONFIG_CHECK+=" ~MEMCG_KMEM "
258 + fi
259 +
260 + ERROR_USER_NS="Optional depending on LXC configuration."
261 +
262 + if [[ -n ${CONFIG_CHECK} ]]; then
263 + linux-info_pkg_setup
264 + fi
265 +}
266 +
267 +src_prepare() {
268 + touch "${S}/.mailmap"
269 +
270 + default
271 +
272 + if [[ ${PV} = *9999* ]]; then
273 + # git checkouts require bootstrapping to create the configure script.
274 + # Additionally the submodules must be cloned to the right locations
275 + # bug #377279
276 + ./bootstrap || die "bootstrap failed"
277 + (
278 + git submodule status | sed 's/^[ +-]//;s/ .*//'
279 + git hash-object bootstrap.conf
280 + ) >.git-module-status
281 + fi
282 +
283 + # Tweak the init script:
284 + cp "${FILESDIR}/libvirtd.init-r16" "${S}/libvirtd.init" || die
285 + sed -e "s/USE_FLAG_FIREWALLD/$(usex firewalld 'need firewalld' '')/" \
286 + -e "s/USE_FLAG_AVAHI/$(usex zeroconf 'use avahi-daemon' '')/" \
287 + -e "s/USE_FLAG_ISCSI/$(usex iscsi 'use iscsid' '')/" \
288 + -e "s/USE_FLAG_RBD/$(usex rbd 'use ceph' '')/" \
289 + -i "${S}/libvirtd.init" || die "sed failed"
290 +
291 + eautoreconf
292 +}
293 +
294 +src_configure() {
295 + local myeconfargs=(
296 + $(use_with apparmor)
297 + $(use_with apparmor apparmor-profiles)
298 + $(use_with audit)
299 + $(use_with caps capng)
300 + $(use_with dbus)
301 + $(use_with firewalld)
302 + $(use_with fuse)
303 + $(use_with glusterfs)
304 + $(use_with glusterfs storage-gluster)
305 + $(use_with iscsi storage-iscsi)
306 + $(use_with libvirtd)
307 + $(use_with libssh)
308 + $(use_with lvm storage-lvm)
309 + $(use_with lvm storage-mpath)
310 + $(use_with lxc)
311 + $(use_with macvtap)
312 + $(use_enable nls)
313 + $(use_with numa numactl)
314 + $(use_with numa numad)
315 + $(use_with openvz)
316 + $(use_with parted storage-disk)
317 + $(use_with pcap libpcap)
318 + $(use_with phyp)
319 + $(use_with policykit polkit)
320 + $(use_with qemu)
321 + $(use_with qemu yajl)
322 + $(use_with rbd storage-rbd)
323 + $(use_with sasl)
324 + $(use_with selinux)
325 + $(use_with udev)
326 + $(use_with uml)
327 + $(use_with vepa virtualport)
328 + $(use_with virt-network network)
329 + $(use_with wireshark-plugins wireshark-dissector)
330 + $(use_with xen)
331 + $(use_with xen xen-inotify)
332 + $(use_with xen libxl)
333 + $(use_with zeroconf avahi)
334 + $(use_with zfs storage-zfs)
335 +
336 + --without-hal
337 + --without-netcf
338 + --without-sanlock
339 + --without-xenapi
340 +
341 + --with-esx
342 + --with-init-script=systemd
343 + --with-qemu-group=$(usex caps qemu root)
344 + --with-qemu-user=$(usex caps qemu root)
345 + --with-remote
346 + --with-storage-fs
347 + --with-vmware
348 +
349 + --disable-static
350 + --disable-werror
351 +
352 + --with-html-subdir=${PF}/html
353 + --localstatedir=/var
354 + )
355 +
356 + if use virtualbox && has_version app-emulation/virtualbox-ose; then
357 + myeconfargs+=( --with-vbox=/usr/lib/virtualbox-ose/ )
358 + else
359 + myeconfargs+=( $(use_with virtualbox vbox) )
360 + fi
361 +
362 + econf "${myeconfargs[@]}"
363 +
364 + if [[ ${PV} = *9999* ]]; then
365 + # Restore gnulib's config.sub and config.guess
366 + # bug #377279
367 + (cd .gnulib && git reset --hard > /dev/null)
368 + fi
369 +}
370 +
371 +src_test() {
372 + cd "${BUILD_DIR}"
373 +
374 + # remove problematic tests, bug #591416, bug #591418
375 + sed -i -e 's#commandtest$(EXEEXT) # #' \
376 + -e 's#virfirewalltest$(EXEEXT) # #' \
377 + -e 's#nwfilterebiptablestest$(EXEEXT) # #' \
378 + -e 's#nwfilterxml2firewalltest$(EXEEXT)$##' \
379 + tests/Makefile
380 +
381 + export VIR_TEST_DEBUG=1
382 + HOME="${T}" emake check || die "tests failed"
383 +}
384 +
385 +src_install() {
386 + emake DESTDIR="${D}" \
387 + SYSTEMD_UNIT_DIR="$(systemd_get_systemunitdir)" install
388 +
389 + find "${D}" -name '*.la' -delete || die
390 +
391 + # Remove bogus, empty directories. They are either not used, or
392 + # libvirtd is able to create them on demand
393 + rm -rf "${D}"/etc/sysconfig
394 + rm -rf "${D}"/var/cache
395 + rm -rf "${D}"/var/run
396 + rm -rf "${D}"/var/log
397 +
398 + use libvirtd || return 0
399 + # From here, only libvirtd-related instructions, be warned!
400 +
401 + systemd_install_serviced \
402 + "${FILESDIR}"/libvirtd.service.conf libvirtd.service
403 +
404 + systemd_newtmpfilesd "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
405 +
406 + newinitd "${S}/libvirtd.init" libvirtd || die
407 + newinitd "${FILESDIR}/libvirt-guests.init-r2" libvirt-guests || die
408 + newinitd "${FILESDIR}/virtlockd.init-r1" virtlockd || die
409 + newinitd "${FILESDIR}/virtlogd.init-r1" virtlogd || die
410 +
411 + newconfd "${FILESDIR}/libvirtd.confd-r5" libvirtd || die
412 + newconfd "${FILESDIR}/libvirt-guests.confd" libvirt-guests || die
413 +
414 + DOC_CONTENTS=$(<"${FILESDIR}/README.gentoo-r2")
415 + DISABLE_AUTOFORMATTING=true
416 + readme.gentoo_create_doc
417 +}
418 +
419 +pkg_preinst() {
420 + # we only ever want to generate this once
421 + if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
422 + rm -rf "${D}"/etc/libvirt/qemu/networks/default.xml
423 + fi
424 +}
425 +
426 +pkg_postinst() {
427 + if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
428 + touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml
429 + fi
430 +
431 + use libvirtd || return 0
432 + # From here, only libvirtd-related instructions, be warned!
433 +
434 + readme.gentoo_print_elog
435 +}