<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Fri, Oct 20, 2017 at 11:37 AM Sandro Bonazzola &lt;<a href="mailto:sbonazzo@redhat.com">sbonazzo@redhat.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Just an heads up we have improvement margin on vdsm spec file quality.</div><div><br></div><div>[sbonazzo@sbonazzo SPECS]$ rpmlint ./vdsm.spec /var/lib/mock/epel-7-x86_64/result/*rpm</div><div>vdsm.x86_64: E: explicit-lib-dependency libnl3</div></div></blockquote><div><br></div><div>What is wrong with this?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>vdsm.x86_64: E: explicit-lib-dependency libvirt-client</div><div>vdsm.x86_64: E: explicit-lib-dependency libvirt-daemon-config-nwfilter</div><div>vdsm.x86_64: E: explicit-lib-dependency libvirt-lock-sanlock</div><div>vdsm.x86_64: W: obsolete-not-provided vdsm-infra<br></div><div>vdsm.x86_64: E: no-binary</div></div></blockquote><div><br></div><div>Ha?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/mom.log</div></div></blockquote><div><br></div><div>This is not a conf file, we should probably change this</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/supervdsm.log</div><div>vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/vdsm.log</div><div>vdsm.x86_64: W: non-conffile-in-etc /etc/NetworkManager/conf.d/vdsm.conf</div></div></blockquote><div><br></div><div>Ha?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>vdsm.x86_64: W: non-conffile-in-etc /etc/modprobe.d/vdsm-bonding-modprobe.conf</div><div>vdsm.x86_64: E: non-readable /etc/pki/vdsm/keys/libvirt_password 600</div><div>vdsm.x86_64: W: non-conffile-in-etc /etc/security/limits.d/99-vdsm.conf</div></div></blockquote><div><br></div><div>Ha?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>vdsm.x86_64: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm</div><div>vdsm.x86_64: W: systemd-unit-in-etc /etc/systemd/system/libvirtd.service.d/unlimited-core.conf</div><div>vdsm.x86_64: W: non-conffile-in-etc /etc/systemd/system/libvirtd.service.d/unlimited-core.conf</div><div>vdsm.x86_64: E: zero-length /etc/vdsm/mom.d/01-parameters.policy</div><div>vdsm.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/kvm2ovirt /usr/bin/env python</div></div></blockquote><div><br></div><div>This used to be the recommended way to write scripts, but it is easy to</div><div>replace with /usr/bin/python2.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>vdsm.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/vm_migrate_hook.py /usr/bin/env python</div><div>vdsm.x86_64: E: wrong-script-interpreter /usr/share/vdsm/virt/vm_migrate_hook.py /usr/bin/env python</div><div>vdsm.x86_64: E: non-executable-script /usr/share/vdsm/virt/vm_migrate_hook.py 644 /usr/bin/env python</div><div>vdsm.x86_64: E: non-standard-dir-perm /var/lib/libvirt/qemu/channels 775</div><div>vdsm.x86_64: E: non-standard-dir-perm /var/log/core 1777</div><div>vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm</div></div></blockquote><div><br></div><div>What is wrong with this?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/payload</div><div>vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/sourceRoutes</div><div>vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/trackedInterfaces</div><div>vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/v2v</div><div>vdsm.x86_64: W: log-files-without-logrotate [&#39;/var/log/core&#39;, &#39;/var/log/vdsm&#39;]</div></div></blockquote><div><br></div><div>We have logrotate configuration for vdsm, but we don&#39;t use the standard</div><div>configuration since we need more frequent rotation.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>vdsm.x86_64: W: dangerous-command-in-%pre rpm</div><div>vdsm.x86_64: W: dangerous-command-in-%post chmod</div><div>vdsm-api.noarch: E: wrong-script-interpreter /usr/lib/python2.7/site-packages/vdsm/api/vdsmapi.py /usr/bin/env python</div><div>vdsm-api.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/vdsm/api/vdsmapi.py 644 /usr/bin/env python</div><div>vdsm-cli.noarch: W: non-conffile-in-etc /etc/bash_completion.d/vdsClient</div><div>vdsm-gluster.noarch: W: spelling-error %description -l en_US functionalities -&gt; functionalists, functionality, functionalist</div><div>vdsm-gluster.noarch: W: no-documentation</div><div>vdsm-hook-allocate_net.noarch: W: summary-not-capitalized C random_network allocation hook for VDSM</div><div>vdsm-hook-allocate_net.noarch: W: spelling-error %description -l en_US vms -&gt; vs, ms, ems</div><div>vdsm-hook-allocate_net.noarch: W: no-documentation</div><div>vdsm-hook-allocate_net.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_device_create/10_allocate_net /usr/bin/env python</div><div>vdsm-hook-checkimages.noarch: W: no-documentation</div><div>vdsm-hook-checkips.x86_64: W: no-documentation</div><div>vdsm-hook-checkips.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/after_get_stats/10_checkips /usr/bin/env python</div><div>vdsm-hook-checkips.x86_64: E: non-executable-script /usr/libexec/vdsm/hooks/after_get_stats/checkips_utils.py 644 /usr/bin/python2 </div><div>vdsm-hook-diskunmap.noarch: W: spelling-error Summary(en_US) lun -&gt; loon, lung, sun</div><div>vdsm-hook-diskunmap.noarch: W: no-documentation</div><div>vdsm-hook-diskunmap.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_vm_start/50_diskunmap /usr/bin/env python2</div><div>vdsm-hook-ethtool-options.noarch: W: spelling-error Summary(en_US) nics -&gt; incs, mics, nicks</div><div>vdsm-hook-ethtool-options.noarch: W: spelling-error %description -l en_US nics -&gt; incs, mics, nicks</div><div>vdsm-hook-ethtool-options.noarch: W: no-documentation</div><div>vdsm-hook-ethtool-options.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/after_network_setup/30_ethtool_options /usr/bin/env python</div><div>vdsm-hook-extnet.noarch: W: spelling-error Summary(en_US) vNIC -&gt; Venice</div><div>vdsm-hook-extnet.noarch: W: spelling-error Summary(en_US) libvirt -&gt; liberty, ovirt</div><div>vdsm-hook-extnet.noarch: W: spelling-error %description -l en_US vNIC -&gt; Venice</div><div>vdsm-hook-extnet.noarch: W: spelling-error %description -l en_US libvirt -&gt; liberty, ovirt</div><div>vdsm-hook-extnet.noarch: W: spelling-error %description -l en_US openvswitch -&gt; switchboard</div><div>vdsm-hook-extnet.noarch: W: no-documentation</div><div>vdsm-hook-extra-ipv4-addrs.x86_64: W: summary-ended-with-dot C Set extra ipv4 addresses for vdsm networks.</div><div>vdsm-hook-extra-ipv4-addrs.x86_64: W: no-documentation</div><div>vdsm-hook-extra-ipv4-addrs.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/after_network_setup/40_extra_ipv4_addrs /usr/bin/env python</div><div>vdsm-hook-fakesriov.x86_64: W: spelling-error %description -l en_US hostdevListByCaps </div><div>vdsm-hook-fakesriov.x86_64: W: spelling-error %description -l en_US sriov -&gt; Rios</div><div>vdsm-hook-fakesriov.x86_64: W: spelling-error %description -l en_US conf -&gt; con, cone, cons</div><div>vdsm-hook-fakesriov.x86_64: W: no-documentation</div><div>vdsm-hook-fakevmstats.noarch: W: spelling-error %description -l en_US vmstats -&gt; stats</div><div>vdsm-hook-fakevmstats.noarch: W: spelling-error %description -l en_US conf -&gt; con, cone, cons</div><div>vdsm-hook-fakevmstats.noarch: W: no-documentation</div><div>vdsm-hook-faqemu.noarch: W: spelling-error Summary(en_US) qemu -&gt; emu, q emu</div><div>vdsm-hook-faqemu.noarch: W: spelling-error %description -l en_US kvm -&gt; km</div><div>vdsm-hook-faqemu.noarch: W: spelling-error %description -l en_US conf -&gt; con, cone, cons</div><div>vdsm-hook-faqemu.noarch: W: no-documentation</div><div>vdsm-hook-fcoe.noarch: W: no-documentation</div><div>vdsm-hook-fcoe.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_network_setup/50_fcoe /bin/env python</div><div>vdsm-hook-fileinject.noarch: W: no-documentation</div><div>vdsm-hook-floppy.noarch: W: no-documentation</div><div>vdsm-hook-hostusb.noarch: W: no-documentation</div><div>vdsm-hook-hostusb.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_hostusb 440</div><div>vdsm-hook-hostusb.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_hostusb</div><div>vdsm-hook-httpsisoboot.noarch: W: spelling-error Summary(en_US) https -&gt; HTTP</div><div>vdsm-hook-httpsisoboot.noarch: W: spelling-error %description -l en_US https -&gt; HTTP</div><div>vdsm-hook-httpsisoboot.noarch: W: spelling-error %description -l en_US http -&gt; HTTP</div><div>vdsm-hook-httpsisoboot.noarch: W: no-documentation</div><div>vdsm-hook-hugepages.noarch: W: summary-ended-with-dot C Huge pages enable user to handle VM with 2048KB page files.</div><div>vdsm-hook-hugepages.noarch: W: no-documentation</div><div>vdsm-hook-hugepages.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_hugepages 440</div><div>vdsm-hook-hugepages.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_hugepages</div><div>vdsm-hook-ipv6.noarch: W: no-documentation</div><div>vdsm-hook-ipv6.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_network_setup/50_ipv6 /usr/bin/env python2</div><div>vdsm-hook-isolatedprivatevlan.noarch: W: spelling-error %description -l en_US ip -&gt; pi, up, op</div><div>vdsm-hook-isolatedprivatevlan.noarch: W: spelling-error %description -l en_US filterref -&gt; filter ref, filter-ref, filterer</div><div>vdsm-hook-isolatedprivatevlan.noarch: W: spelling-error %description -l en_US xml -&gt; XML, ml, x ml</div><div>vdsm-hook-isolatedprivatevlan.noarch: W: no-documentation</div><div>vdsm-hook-isolatedprivatevlan.noarch: E: executable-marked-as-config-file /etc/libvirt/nwfilter/isolatedprivatevlan-vdsm.xml</div><div>vdsm-hook-isolatedprivatevlan.noarch: E: script-without-shebang /etc/libvirt/nwfilter/isolatedprivatevlan-vdsm.xml</div><div>vdsm-hook-localdisk.noarch: W: spelling-error %description -l en_US lvm -&gt; lvi, lam, Lvov</div><div>vdsm-hook-localdisk.noarch: W: only-non-binary-in-usr-lib</div><div>vdsm-hook-localdisk.noarch: W: no-documentation</div><div>vdsm-hook-localdisk.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_localdisk 440</div><div>vdsm-hook-localdisk.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_localdisk</div><div>vdsm-hook-macbind.noarch: W: spelling-error Summary(en_US) vNIC -&gt; Venice</div><div>vdsm-hook-macbind.noarch: W: spelling-error %description -l en_US vNIC -&gt; Venice</div><div>vdsm-hook-macbind.noarch: W: no-documentation</div><div>vdsm-hook-macbind.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_vm_start/50_macbind /usr/bin/env python2</div><div>vdsm-hook-macspoof.noarch: W: spelling-error %description -l en_US vnics -&gt; conics</div><div>vdsm-hook-macspoof.noarch: W: no-documentation</div><div>vdsm-hook-nestedvt.noarch: W: spelling-error %description -l en_US virtualization -&gt; visualization, actualization, vitalization</div><div>vdsm-hook-nestedvt.noarch: W: spelling-error %description -l en_US kvm -&gt; km</div><div>vdsm-hook-nestedvt.noarch: W: no-documentation</div><div>vdsm-hook-nestedvt.noarch: W: non-conffile-in-etc /etc/modprobe.d/vdsm-nestedvt.conf</div><div>vdsm-hook-noipspoof.noarch: W: no-documentation</div><div>vdsm-hook-numa.noarch: W: spelling-error %description -l en_US xml -&gt; XML, ml, x ml</div><div>vdsm-hook-numa.noarch: W: no-documentation</div><div>vdsm-hook-openstacknet.noarch: W: spelling-error Summary(en_US) vNICs -&gt; conics</div><div>vdsm-hook-openstacknet.noarch: W: spelling-error %description -l en_US vNICs -&gt; conics</div><div>vdsm-hook-openstacknet.noarch: W: no-documentation</div><div>vdsm-hook-openstacknet.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_openstacknet 440</div><div>vdsm-hook-openstacknet.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_openstacknet</div><div>vdsm-hook-openstacknet.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_device_migrate_destination/50_openstacknet /usr/bin/env python2</div><div>vdsm-hook-pincpu.noarch: W: no-documentation</div><div>vdsm-hook-promisc.noarch: W: no-documentation</div><div>vdsm-hook-promisc.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_promisc 440</div><div>vdsm-hook-promisc.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_promisc</div><div>vdsm-hook-qemucmdline.noarch: W: spelling-error Summary(en_US) cmdline -&gt; decline</div><div>vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US cmdline -&gt; decline</div><div>vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US libvirt&#39;s -&gt; liberty&#39;s</div><div>vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US qemu -&gt; emu, q emu</div><div>vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US commandline -&gt; command line, command-line, commandment</div><div>vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US xml -&gt; XML, ml, x ml</div><div>vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US namespace -&gt; name space, name-space, names pace</div><div>vdsm-hook-qemucmdline.noarch: W: no-documentation</div><div>vdsm-hook-qos.noarch: W: no-documentation</div><div>vdsm-hook-scratchpad.noarch: W: no-documentation</div><div>vdsm-hook-smbios.noarch: W: spelling-error Summary(en_US) libvirt -&gt; liberty, ovirt</div><div>vdsm-hook-smbios.noarch: W: spelling-error %description -l en_US libvirt -&gt; liberty, ovirt</div><div>vdsm-hook-smbios.noarch: W: no-documentation</div><div>vdsm-hook-spiceoptions.noarch: W: spelling-error Summary(en_US) vm -&gt; cm, v, m</div><div>vdsm-hook-spiceoptions.noarch: W: no-documentation</div><div>vdsm-hook-vfio-mdev.noarch: W: summary-ended-with-dot C Hook to enable mdev-capable devices.</div><div>vdsm-hook-vfio-mdev.noarch: W: no-documentation</div><div>vdsm-hook-vhostmd.noarch: W: no-documentation</div><div>vdsm-hook-vhostmd.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_vhostmd 440</div><div>vdsm-hook-vhostmd.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_vhostmd</div><div>vdsm-hook-vmdisk.noarch: W: no-documentation</div><div>vdsm-hook-vmfex.noarch: W: summary-not-capitalized C vmfex support for VDSM</div><div>vdsm-hook-vmfex.noarch: W: no-documentation</div><div>vdsm-hook-vmfex-dev.noarch: W: spelling-error Summary(en_US) vNIC -&gt; Venice</div><div>vdsm-hook-vmfex-dev.noarch: W: spelling-error %description -l en_US vNIC -&gt; Venice</div><div>vdsm-hook-vmfex-dev.noarch: W: spelling-error %description -l en_US macvtap -&gt; madcap</div><div>vdsm-hook-vmfex-dev.noarch: W: no-documentation</div><div>vdsm-jsonrpc.noarch: W: spelling-error %description -l en_US libvdsm -&gt; liberalism</div><div>vdsm-jsonrpc.noarch: W: obsolete-not-provided vdsm-api</div><div>vdsm-jsonrpc.noarch: W: no-documentation</div><div>vdsm-python.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/vdsm/tool/dummybr.py 644 /usr/bin/python2 </div><div>vdsm-python.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/vdsm/tool/nwfilter.py 644 /usr/bin/python2 </div><div>vdsm-python.noarch: W: dangerous-command-in-%post rm</div><div>vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/alignmentScanTests.py 644 /usr/bin/python2 </div></div></blockquote><div><br></div><div>This looks easy, this is not a script</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>vdsm-tests.noarch: E: wrong-script-interpreter /usr/share/vdsm/tests/fake-ssh-add /usr/bin/env python</div><div>vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/fake-ssh-add 644 /usr/bin/env python</div><div>vdsm-tests.noarch: E: wrong-script-interpreter /usr/share/vdsm/tests/fake-ssh-agent /usr/bin/env python</div><div>vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/fake-ssh-agent 644 /usr/bin/env python</div><div>vdsm-tests.noarch: E: wrong-script-interpreter /usr/share/vdsm/tests/fake-virt-v2v /usr/bin/env python</div><div>vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/fake-virt-v2v 644 /usr/bin/env python</div><div>vdsm-tests.noarch: E: script-without-shebang /usr/share/vdsm/tests/testValidation.py</div></div></blockquote><div><br></div><div>This is also not a script, maybe wrong permissions?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>vdsm-tests.noarch: E: zero-length /usr/share/vdsm/tests/toolTests_empty.conf</div></div></blockquote><div><br></div><div>This is bogus error, but we can probably replace this with generated temporary file.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>vdsm-xmlrpc.noarch: W: spelling-error %description -l en_US vdsmd </div><div>vdsm-xmlrpc.noarch: W: spelling-error %description -l en_US vdsClient -&gt; clientele</div><div>vdsm-xmlrpc.noarch: W: no-documentation</div><div>vdsm-yajsonrpc.noarch: W: no-documentation</div><div>48 packages and 1 specfiles checked; 49 errors, 120 warnings.</div></div></blockquote><div><br></div><div>Sandro, can you help with adding a test to vdsm build, failing if the spec has</div><div>errors?</div><div><br></div><div>This would also would be useful to other projects like ovirt-imageio.</div><div><br></div><div>Nir</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><br></div><div><br></div>-- <br><div class="m_1679924899913372686gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><p style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-weight:bold;margin:0px;padding:0px;font-size:14px;text-transform:uppercase"><span>SANDRO</span> <span>BONAZZOLA</span></p><p style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:10px;margin:0px 0px 4px;text-transform:uppercase"><span>ASSOCIATE MANAGER, SOFTWARE ENGINEERING, EMEA ENG VIRTUALIZATION R&amp;D</span></p><p style="font-family:overpass,sans-serif;margin:0px;font-size:10px;color:rgb(153,153,153)"><a href="https://www.redhat.com/" style="color:rgb(0,136,206);margin:0px" target="_blank">Red Hat <span>EMEA</span></a></p><table border="0" style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium"><tbody><tr><td width="100px"><a href="https://red.ht/sig" target="_blank"><img src="https://www.redhat.com/profiles/rh/themes/redhatdotcom/img/logo-red-hat-black.png" width="90" height="auto"></a></td><td style="font-size:10px"><div><a href="https://redhat.com/trusted" style="color:rgb(204,0,0);font-weight:bold" target="_blank">TRIED. TESTED. TRUSTED.</a></div></td></tr></tbody></table><a href="http://www.teraplan.it/redhat-osd-2017/" target="_blank"><img src="http://images.engage.redhat.com/EloquaImages/clients/RedHat/%7Bce8ba915-16e1-4b66-8a16-dfaac06bd5c0%7D_RH_OSD_Generic_Banner_655x100.png" width="420" height="60"></a><span></span><a href="http:///" target="_blank"></a><span></span><br></div></div></div></div></div></div></div></div></div></div></div>
</div>
_______________________________________________<br>
Devel mailing list<br>
<a href="mailto:Devel@ovirt.org" target="_blank">Devel@ovirt.org</a><br>
<a href="http://lists.ovirt.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.ovirt.org/mailman/listinfo/devel</a></blockquote></div></div>