[meta-virtualization] [PATCHv3 13/14] Upgraded to libvirt 1.0.0, and added a more detailed packageconfig

David Nyström david.nystrom at enea.com
Thu Dec 6 08:11:24 PST 2012



On 12/06/2012 04:14 PM, Saul Wold wrote:
> On 12/06/2012 06:53 AM, David Nyström wrote:
>>
>>
>> On 12/06/2012 03:26 PM, Bruce Ashfield wrote:
>>> On Thu, Dec 6, 2012 at 9:03 AM, <david.c.nystrom at gmail.com> wrote:
>>>
>>>> From: David Nyström <david.nystrom at enea.com>
>>>>
>>>> ---
>>>>   recipes-extended/libvirt/libvirt_1.0.0.bb |  139
>>>> +++++++++++++++++++++++++++++
>>>>   1 file changed, 139 insertions(+)
>>>>   create mode 100644 recipes-extended/libvirt/libvirt_1.0.0.bb
>>>>
>>>> diff --git
>>>> a/recipes-extended/libvirt/libvirt_1.0.0.bbb/recipes-extended/libvirt/
>>>> libvirt_1.0.0.bb
>>>> new file mode 100644
>>>> index 0000000..45b460a
>>>> --- /dev/null
>>>> +++ b/recipes-extended/libvirt/libvirt_1.0.0.bb
>>>> @@ -0,0 +1,139 @@
>>>> +DESCRIPTION = "A toolkit to interact with the virtualization
>>>> capabilities
>>>> of recent versions of Linux."
>>>> +HOMEPAGE = "http://libvirt.org"
>>>> +LICENSE = "GPLv2+"
>>>> +LIC_FILES_CHKSUM =
>>>> "file://COPYING;md5=fb919cc88dbe06ec0b0bd50e001ccf1f"
>>>> +SECTION = "console/tools"
>>>> +PR = "r2"
>>>> +
>>>> +DEPENDS = "bridge-utils gnutls libxml2 lvm2 avahi parted curl libpcap
>>>> util-linux e2fsprogs pm-utils \
>>>> +          iptables ebtables dnsmasq readline"
>>>> +
>>>> +# These might be included by PACKAGECONFIG
>>>> +#RRECOMMENDS+= "polkit qemu yajl libnl lxc netcf"
>>>> +
>>>> +RDEPENDS_libvirt-libvirtd += "bridge-utils iptables pm-utils dnsmasq
>>>> openbsd-netcat"
>>>> +RDEPENDS_libvirt-libvirtd_append_x86-64 = " dmidecode"
>>>> +RDEPENDS_libvirt-libvirtd_append_x86 = " dmidecode"
>>>> +
>>>> +#connman blocks the 53 port and libvirtd can't start its DNS service
>>>> +RCONFLICTS_${PN}_libvirtd = "connman"
>>>> +
>>>> +SRC_URI = "http://libvirt.org/sources/libvirt-${PV}.tar.gz \
>>>> +       file://libvirtd.sh \
>>>> +       file://libvirtd.conf"
>>>> +
>>>> +SRC_URI[md5sum] = "7c8b006de7338e30866bb56738803b21"
>>>> +SRC_URI[sha256sum] =
>>>> "14c8a30ebfb939c82cab5f759a95d09646b43b4210e45490e92459ae65123076"
>>>> +
>>>> +inherit autotools gettext update-rc.d
>>>> +
>>>> +CACHED_CONFIGUREVARS += "\
>>>> +ac_cv_path_XMLLINT=/usr/bin/xmllint \
>>>> +ac_cv_path_XMLCATLOG=/usr/bin/xmlcatalog \
>>>> +ac_cv_path_AUGPARSE=/usr/bin/augparse \
>>>> +ac_cv_path_DNSMASQ=/usr/bin/dnsmasq \
>>>> +ac_cv_path_BRCTL=/usr/sbin/brctl \
>>>> +ac_cv_path_TC=/sbin/tc \
>>>> +ac_cv_path_UDEVADM=/sbin/udevadm \
>>>> +ac_cv_path_MODPROBE=/sbin/modprobe \
>>>> +ac_cv_path_IP_PATH=/bin/ip \
>>>> +ac_cv_path_IPTABLES_PATH=/usr/sbin/iptables \
>>>> +ac_cv_path_IP6TABLES_PATH=/usr/sbin/ip6tables \
>>>> +ac_cv_path_MOUNT=/bin/mount \
>>>> +ac_cv_path_UMOUNT=/bin/umount \
>>>> +ac_cv_path_MKFS=/usr/sbin/mkfs \
>>>> +ac_cv_path_SHOWMOUNT=/usr/sbin/showmount \
>>>> +ac_cv_path_PVCREATE=/usr/sbin/pvcreate \
>>>> +ac_cv_path_VGCREATE=/usr/sbin/vgcreate \
>>>> +ac_cv_path_LVCREATE=/usr/sbin/lvcreate \
>>>> +ac_cv_path_PVREMOVE=/usr/sbin/pvremove \
>>>> +ac_cv_path_VGREMOVE=/usr/sbin/vgremove \
>>>> +ac_cv_path_LVREMOVE=/usr/sbin/lvremove \
>>>> +ac_cv_path_LVCHANGE=/usr/sbin/lvchange \
>>>> +ac_cv_path_VGCHANGE=/usr/sbin/vgchange \
>>>> +ac_cv_path_VGSCAN=/usr/sbin/vgscan \
>>>> +ac_cv_path_PVS=/usr/sbin/pvs \
>>>> +ac_cv_path_VGS=/usr/sbin/vgs \
>>>> +ac_cv_path_LVS=/usr/sbin/lvs \
>>>> +ac_cv_path_PARTED=/usr/sbin/parted \
>>>> +ac_cv_path_DMSETUP=/usr/sbin/dmsetup"
>>>> +
>>>> +# Some other possible paths we are not yet setting
>>>> +#ac_cv_path_RPCGEN=
>>>> +#ac_cv_path_XSLTPROC=
>>>> +#ac_cv_path_RADVD=
>>>> +#ac_cv_path_UDEVSETTLE=
>>>> +#ac_cv_path_EBTABLES_PATH=
>>>> +#ac_cv_path_PKG_CONFIG=
>>>> +#ac_cv_path_ac_pt_PKG_CONFIG
>>>> +#ac_cv_path_PKCHECK_PATH=
>>>> +#ac_cv_path_POLKIT_AUTH=
>>>> +#ac_cv_path_DTRACE=
>>>> +#ac_cv_path_ISCSIADM=
>>>> +#ac_cv_path_MSGFMT=
>>>> +#ac_cv_path_GMSGFMT=
>>>> +#ac_cv_path_XGETTEXT=
>>>> +#ac_cv_path_MSGMERGE=
>>>> +#ac_cv_path_SCRUB=
>>>> +#ac_cv_path_PYTHON=
>>>> +
>>>> +ALLOW_EMPTY_${PN} = "1"
>>>> +
>>>> +PACKAGES =+ "${PN}-libvirtd ${PN}-virsh"
>>>> +
>>>> +FILES_${PN}-libvirtd = "${sysconfdir}/init.d \
>>>> +       ${sysconfdir}/sysctl.d \
>>>> +       ${sysconfdir}/logrotate.d \
>>>> +       ${sysconfdir}/libvirt/libvirtd.conf \
>>>> +       ${sbindir}/libvirtd"
>>>>
>>>
>>> What happens if libvirtd is disabled via:
>>>
>>>   PACKAGECONFIG[libvirtd] = "--with-libvirtd,--without-libvirtd"
>>>
>>> I haven't tried it to see, but on a glance, it looks like some missing
>>> files
>>> and packaging issues.
>>>
>>> Cheers,
>>>
>>> Bruce
>>
>> I assume your suggested solution for this would be to
>> ALLOW_EMPTY_${PN}-libvirtd = "1".
>> Not good for QA, but do we have any other options ?
>>
>>>
>>> +
>>>> +FILES_${PN}-virsh = "${bindir}/virsh"
>>>> +FILES_${PN} += "${libdir}/libvirt/connection-driver \
>>>> +           ${datadir}/augeas \
>>>> +           ${datadir}/polkit-1"
>>>> +
>>>> +FILES_${PN}-dbg += "${libdir}/libvirt/connection-driver/.debug"
>>>> +FILES_${PN}-staticdev += "${libdir}/*.a
>>>> ${libdir}/libvirt/connection-driver/*.a"
>>>> +
>>>> +INITSCRIPT_PACKAGES = "${PN}-libvirtd"
>>>> +INITSCRIPT_NAME_${PN}-libvirtd = "libvirtd"
>>>> +INITSCRIPT_PARAMS_${PN}-libvirtd = "defaults 72"
>>>> +
>>>> +# xen-minimal config
>>>> +#PACKAGECONFIG ??= "xen libxl xen-inotify test remote libvirtd"
>>>> +
>>>> +# full config
>>>> +PACKAGECONFIG ??= "qemu yajl xen libxl xen-inotify uml openvz vmware
>>>> vbox
>>>> esx \
>>>> +                  polkit lxc test remote macvtap libvirtd netcf"
>>>> +
>>>> +PACKAGECONFIG[qemu] = "--with-qemu,--without-qemu,qemu"
>>>> +PACKAGECONFIG[yajl] = "--with-yajl,--without-yajl,yajl,yajl"
>>>> +PACKAGECONFIG[xen] = "--with-xen,--without-xen,xen"
>>>> +PACKAGECONFIG[xenapi] = "--with-xenapi,--without-xenapi"
>>>> +PACKAGECONFIG[libxl] =
>>>> "--with-libxl=${STAGING_DIR_TARGET}/lib,--without-libxl,xen"
>>>> +PACKAGECONFIG[xen-inotify] =
>>>> "--with-xen-inotify,--without-xen-inotify,xen"
>>>> +PACKAGECONFIG[uml] = "--with-uml, --without-uml"
>>>> +PACKAGECONFIG[openvz] = "--with-openvz,--without-openvz"
>>>> +PACKAGECONFIG[vmware] = "--with-vmware,--without-vmware"
>>>> +PACKAGECONFIG[phyp] = "--with-phyp,--without-phyp"
>>>> +PACKAGECONFIG[vbox] = "--with-vbox,--without-vbox"
>>>> +PACKAGECONFIG[esx] = "--with-esx,--without-esx"
>>>> +PACKAGECONFIG[hyperv] = "--with-hyperv,--without-hyperv"
>>>> +PACKAGECONFIG[polkit] = "--with-polkit,--without-polkit,polkit,polkit"
>>>> +PACKAGECONFIG[lxc] = "--with-lxc,--without-lxc, lxc"
>>>> +PACKAGECONFIG[test] = "--with-test=yes,--with-test=no"
>>>> +PACKAGECONFIG[remote] = "--with-remote,--without-remote"
>>>> +PACKAGECONFIG[macvtap] =
>>>> "--with-macvtap=yes,--with-macvtap=no,libnl,libnl"
>>>> +PACKAGECONFIG[libvirtd] = "--with-libvirtd,--without-libvirtd"
>>>> +PACKAGECONFIG[netcf] = "--with-netcf,--without-netcf,netcf,netcf"
>>>>
>>>
>>> Another random questions. I've got some other libvirt recipes kicking
>>> around, and
>>> is it generally frowned upon to trigger options via DISTRO_FEATURES vs
>>> PACKAGECONFIG ? I'm thinking of bigger scale features like selinux,
>>> which
>>> are
>>> decided on a distro basis.
>>>
>>> Cheers,
>>>
>>> Bruce
>>
>> Thats a good question, CC:ing RP who added the feature in 1.3.
>>
>> Don't know whats generally frowned upon by the community, I see
>> PACKAGECONFIG as a more fine granular way of doing this.
>> Alot of packages in oe-core do a R/DEPENDS split with:
>>
>> DEPENDS += ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11
>> libxtst libice libsm libxcb gtk+', '', d)}"
>>
>> I see no reason for why DISTRO_FEATURES can't select a PACKAGECONFIG
>> setup instead. I'm guessing that's why it was added. i.e.
>>
>> PACKAGECONFIG += ${@base_contains('DISTRO_FEATURES', 'kvm', 'qemu yajl',
>> '', d)}"
>>
> Exactly, DISTRO_FEATURES can enable local PACKAGECONFIG items,
> DISTRO_FEAUTRES is more of a GLOBAL (DISTRO) setting.
>
> On a different note, will there be plans to remove the older libvirt
> recipe?  Is there a reason it needs to be kept around?
>
> In the Yocto Project, we try not to keep older versions of recipes
> unless required because of license changes from GPLv2 -> GPLv3.

Yes, removing it in v4.

> Sau!
>
>>
>>>
>>>
>>>> +
>>>> +# Enable the Python tool support
>>>> +require libvirt-python.inc
>>>> +
>>>> +do_install_append() {
>>>> +       install -d ${D}/etc/init.d
>>>> +       install -d ${D}/etc/libvirt
>>>> +
>>>> +       install -m 0755 ${WORKDIR}/libvirtd.sh ${D}/etc/init.d/libvirtd
>>>> +       install -m 0644 ${WORKDIR}/libvirtd.conf
>>>> ${D}/etc/libvirt/libvirtd.conf
>>>> +}
>>>> --
>>>> 1.7.9.5
>>>>
>>>> _______________________________________________
>>>> meta-virtualization mailing list
>>>> meta-virtualization at yoctoproject.org
>>>> https://lists.yoctoproject.org/listinfo/meta-virtualization
>>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> meta-virtualization mailing list
>>> meta-virtualization at yoctoproject.org
>>> https://lists.yoctoproject.org/listinfo/meta-virtualization
>>>
>> _______________________________________________
>> meta-virtualization mailing list
>> meta-virtualization at yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/meta-virtualization



More information about the meta-virtualization mailing list