vdsm spec file rpmlint

Just an heads up we have improvement margin on vdsm spec file quality. [sbonazzo@sbonazzo SPECS]$ rpmlint ./vdsm.spec /var/lib/mock/epel-7-x86_64/result/*rpm vdsm.x86_64: E: explicit-lib-dependency libnl3 vdsm.x86_64: E: explicit-lib-dependency libvirt-client vdsm.x86_64: E: explicit-lib-dependency libvirt-daemon-config-nwfilter vdsm.x86_64: E: explicit-lib-dependency libvirt-lock-sanlock vdsm.x86_64: W: obsolete-not-provided vdsm-infra vdsm.x86_64: E: no-binary vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/mom.log vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/supervdsm.log vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/vdsm.log vdsm.x86_64: W: non-conffile-in-etc /etc/NetworkManager/conf.d/vdsm.conf vdsm.x86_64: W: non-conffile-in-etc /etc/modprobe.d/vdsm-bonding-modprobe.conf vdsm.x86_64: E: non-readable /etc/pki/vdsm/keys/libvirt_password 600 vdsm.x86_64: W: non-conffile-in-etc /etc/security/limits.d/99-vdsm.conf vdsm.x86_64: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm vdsm.x86_64: W: systemd-unit-in-etc /etc/systemd/system/libvirtd.service.d/unlimited-core.conf vdsm.x86_64: W: non-conffile-in-etc /etc/systemd/system/libvirtd.service.d/unlimited-core.conf vdsm.x86_64: E: zero-length /etc/vdsm/mom.d/01-parameters.policy vdsm.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/kvm2ovirt /usr/bin/env python vdsm.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/vm_migrate_hook.py /usr/bin/env python vdsm.x86_64: E: wrong-script-interpreter /usr/share/vdsm/virt/vm_migrate_hook.py /usr/bin/env python vdsm.x86_64: E: non-executable-script /usr/share/vdsm/virt/vm_migrate_hook.py 644 /usr/bin/env python vdsm.x86_64: E: non-standard-dir-perm /var/lib/libvirt/qemu/channels 775 vdsm.x86_64: E: non-standard-dir-perm /var/log/core 1777 vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/payload vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/sourceRoutes vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/trackedInterfaces vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/v2v vdsm.x86_64: W: log-files-without-logrotate ['/var/log/core', '/var/log/vdsm'] vdsm.x86_64: W: dangerous-command-in-%pre rpm vdsm.x86_64: W: dangerous-command-in-%post chmod vdsm-api.noarch: E: wrong-script-interpreter /usr/lib/python2.7/site-packages/vdsm/api/vdsmapi.py /usr/bin/env python vdsm-api.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/vdsm/api/vdsmapi.py 644 /usr/bin/env python vdsm-cli.noarch: W: non-conffile-in-etc /etc/bash_completion.d/vdsClient vdsm-gluster.noarch: W: spelling-error %description -l en_US functionalities -> functionalists, functionality, functionalist vdsm-gluster.noarch: W: no-documentation vdsm-hook-allocate_net.noarch: W: summary-not-capitalized C random_network allocation hook for VDSM vdsm-hook-allocate_net.noarch: W: spelling-error %description -l en_US vms -> vs, ms, ems vdsm-hook-allocate_net.noarch: W: no-documentation vdsm-hook-allocate_net.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_device_create/10_allocate_net /usr/bin/env python vdsm-hook-checkimages.noarch: W: no-documentation vdsm-hook-checkips.x86_64: W: no-documentation vdsm-hook-checkips.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/after_get_stats/10_checkips /usr/bin/env python vdsm-hook-checkips.x86_64: E: non-executable-script /usr/libexec/vdsm/hooks/after_get_stats/checkips_utils.py 644 /usr/bin/python2 vdsm-hook-diskunmap.noarch: W: spelling-error Summary(en_US) lun -> loon, lung, sun vdsm-hook-diskunmap.noarch: W: no-documentation vdsm-hook-diskunmap.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_vm_start/50_diskunmap /usr/bin/env python2 vdsm-hook-ethtool-options.noarch: W: spelling-error Summary(en_US) nics -> incs, mics, nicks vdsm-hook-ethtool-options.noarch: W: spelling-error %description -l en_US nics -> incs, mics, nicks vdsm-hook-ethtool-options.noarch: W: no-documentation vdsm-hook-ethtool-options.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/after_network_setup/30_ethtool_options /usr/bin/env python vdsm-hook-extnet.noarch: W: spelling-error Summary(en_US) vNIC -> Venice vdsm-hook-extnet.noarch: W: spelling-error Summary(en_US) libvirt -> liberty, ovirt vdsm-hook-extnet.noarch: W: spelling-error %description -l en_US vNIC -> Venice vdsm-hook-extnet.noarch: W: spelling-error %description -l en_US libvirt -> liberty, ovirt vdsm-hook-extnet.noarch: W: spelling-error %description -l en_US openvswitch -> switchboard vdsm-hook-extnet.noarch: W: no-documentation vdsm-hook-extra-ipv4-addrs.x86_64: W: summary-ended-with-dot C Set extra ipv4 addresses for vdsm networks. vdsm-hook-extra-ipv4-addrs.x86_64: W: no-documentation 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 vdsm-hook-fakesriov.x86_64: W: spelling-error %description -l en_US hostdevListByCaps vdsm-hook-fakesriov.x86_64: W: spelling-error %description -l en_US sriov -> Rios vdsm-hook-fakesriov.x86_64: W: spelling-error %description -l en_US conf -> con, cone, cons vdsm-hook-fakesriov.x86_64: W: no-documentation vdsm-hook-fakevmstats.noarch: W: spelling-error %description -l en_US vmstats -> stats vdsm-hook-fakevmstats.noarch: W: spelling-error %description -l en_US conf -> con, cone, cons vdsm-hook-fakevmstats.noarch: W: no-documentation vdsm-hook-faqemu.noarch: W: spelling-error Summary(en_US) qemu -> emu, q emu vdsm-hook-faqemu.noarch: W: spelling-error %description -l en_US kvm -> km vdsm-hook-faqemu.noarch: W: spelling-error %description -l en_US conf -> con, cone, cons vdsm-hook-faqemu.noarch: W: no-documentation vdsm-hook-fcoe.noarch: W: no-documentation vdsm-hook-fcoe.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_network_setup/50_fcoe /bin/env python vdsm-hook-fileinject.noarch: W: no-documentation vdsm-hook-floppy.noarch: W: no-documentation vdsm-hook-hostusb.noarch: W: no-documentation vdsm-hook-hostusb.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_hostusb 440 vdsm-hook-hostusb.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_hostusb vdsm-hook-httpsisoboot.noarch: W: spelling-error Summary(en_US) https -> HTTP vdsm-hook-httpsisoboot.noarch: W: spelling-error %description -l en_US https -> HTTP vdsm-hook-httpsisoboot.noarch: W: spelling-error %description -l en_US http -> HTTP vdsm-hook-httpsisoboot.noarch: W: no-documentation vdsm-hook-hugepages.noarch: W: summary-ended-with-dot C Huge pages enable user to handle VM with 2048KB page files. vdsm-hook-hugepages.noarch: W: no-documentation vdsm-hook-hugepages.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_hugepages 440 vdsm-hook-hugepages.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_hugepages vdsm-hook-ipv6.noarch: W: no-documentation vdsm-hook-ipv6.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_network_setup/50_ipv6 /usr/bin/env python2 vdsm-hook-isolatedprivatevlan.noarch: W: spelling-error %description -l en_US ip -> pi, up, op vdsm-hook-isolatedprivatevlan.noarch: W: spelling-error %description -l en_US filterref -> filter ref, filter-ref, filterer vdsm-hook-isolatedprivatevlan.noarch: W: spelling-error %description -l en_US xml -> XML, ml, x ml vdsm-hook-isolatedprivatevlan.noarch: W: no-documentation vdsm-hook-isolatedprivatevlan.noarch: E: executable-marked-as-config-file /etc/libvirt/nwfilter/isolatedprivatevlan-vdsm.xml vdsm-hook-isolatedprivatevlan.noarch: E: script-without-shebang /etc/libvirt/nwfilter/isolatedprivatevlan-vdsm.xml vdsm-hook-localdisk.noarch: W: spelling-error %description -l en_US lvm -> lvi, lam, Lvov vdsm-hook-localdisk.noarch: W: only-non-binary-in-usr-lib vdsm-hook-localdisk.noarch: W: no-documentation vdsm-hook-localdisk.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_localdisk 440 vdsm-hook-localdisk.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_localdisk vdsm-hook-macbind.noarch: W: spelling-error Summary(en_US) vNIC -> Venice vdsm-hook-macbind.noarch: W: spelling-error %description -l en_US vNIC -> Venice vdsm-hook-macbind.noarch: W: no-documentation vdsm-hook-macbind.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_vm_start/50_macbind /usr/bin/env python2 vdsm-hook-macspoof.noarch: W: spelling-error %description -l en_US vnics -> conics vdsm-hook-macspoof.noarch: W: no-documentation vdsm-hook-nestedvt.noarch: W: spelling-error %description -l en_US virtualization -> visualization, actualization, vitalization vdsm-hook-nestedvt.noarch: W: spelling-error %description -l en_US kvm -> km vdsm-hook-nestedvt.noarch: W: no-documentation vdsm-hook-nestedvt.noarch: W: non-conffile-in-etc /etc/modprobe.d/vdsm-nestedvt.conf vdsm-hook-noipspoof.noarch: W: no-documentation vdsm-hook-numa.noarch: W: spelling-error %description -l en_US xml -> XML, ml, x ml vdsm-hook-numa.noarch: W: no-documentation vdsm-hook-openstacknet.noarch: W: spelling-error Summary(en_US) vNICs -> conics vdsm-hook-openstacknet.noarch: W: spelling-error %description -l en_US vNICs -> conics vdsm-hook-openstacknet.noarch: W: no-documentation vdsm-hook-openstacknet.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_openstacknet 440 vdsm-hook-openstacknet.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_openstacknet vdsm-hook-openstacknet.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_device_migrate_destination/50_openstacknet /usr/bin/env python2 vdsm-hook-pincpu.noarch: W: no-documentation vdsm-hook-promisc.noarch: W: no-documentation vdsm-hook-promisc.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_promisc 440 vdsm-hook-promisc.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_promisc vdsm-hook-qemucmdline.noarch: W: spelling-error Summary(en_US) cmdline -> decline vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US cmdline -> decline vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US libvirt's -> liberty's vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US qemu -> emu, q emu vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US commandline -> command line, command-line, commandment vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US xml -> XML, ml, x ml vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US namespace -> name space, name-space, names pace vdsm-hook-qemucmdline.noarch: W: no-documentation vdsm-hook-qos.noarch: W: no-documentation vdsm-hook-scratchpad.noarch: W: no-documentation vdsm-hook-smbios.noarch: W: spelling-error Summary(en_US) libvirt -> liberty, ovirt vdsm-hook-smbios.noarch: W: spelling-error %description -l en_US libvirt -> liberty, ovirt vdsm-hook-smbios.noarch: W: no-documentation vdsm-hook-spiceoptions.noarch: W: spelling-error Summary(en_US) vm -> cm, v, m vdsm-hook-spiceoptions.noarch: W: no-documentation vdsm-hook-vfio-mdev.noarch: W: summary-ended-with-dot C Hook to enable mdev-capable devices. vdsm-hook-vfio-mdev.noarch: W: no-documentation vdsm-hook-vhostmd.noarch: W: no-documentation vdsm-hook-vhostmd.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_vhostmd 440 vdsm-hook-vhostmd.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_vhostmd vdsm-hook-vmdisk.noarch: W: no-documentation vdsm-hook-vmfex.noarch: W: summary-not-capitalized C vmfex support for VDSM vdsm-hook-vmfex.noarch: W: no-documentation vdsm-hook-vmfex-dev.noarch: W: spelling-error Summary(en_US) vNIC -> Venice vdsm-hook-vmfex-dev.noarch: W: spelling-error %description -l en_US vNIC -> Venice vdsm-hook-vmfex-dev.noarch: W: spelling-error %description -l en_US macvtap -> madcap vdsm-hook-vmfex-dev.noarch: W: no-documentation vdsm-jsonrpc.noarch: W: spelling-error %description -l en_US libvdsm -> liberalism vdsm-jsonrpc.noarch: W: obsolete-not-provided vdsm-api vdsm-jsonrpc.noarch: W: no-documentation vdsm-python.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/vdsm/tool/dummybr.py 644 /usr/bin/python2 vdsm-python.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/vdsm/tool/nwfilter.py 644 /usr/bin/python2 vdsm-python.noarch: W: dangerous-command-in-%post rm vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/alignmentScanTests.py 644 /usr/bin/python2 vdsm-tests.noarch: E: wrong-script-interpreter /usr/share/vdsm/tests/fake-ssh-add /usr/bin/env python vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/fake-ssh-add 644 /usr/bin/env python vdsm-tests.noarch: E: wrong-script-interpreter /usr/share/vdsm/tests/fake-ssh-agent /usr/bin/env python vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/fake-ssh-agent 644 /usr/bin/env python vdsm-tests.noarch: E: wrong-script-interpreter /usr/share/vdsm/tests/fake-virt-v2v /usr/bin/env python vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/fake-virt-v2v 644 /usr/bin/env python vdsm-tests.noarch: E: script-without-shebang /usr/share/vdsm/tests/testValidation.py vdsm-tests.noarch: E: zero-length /usr/share/vdsm/tests/toolTests_empty.conf vdsm-xmlrpc.noarch: W: spelling-error %description -l en_US vdsmd vdsm-xmlrpc.noarch: W: spelling-error %description -l en_US vdsClient -> clientele vdsm-xmlrpc.noarch: W: no-documentation vdsm-yajsonrpc.noarch: W: no-documentation 48 packages and 1 specfiles checked; 49 errors, 120 warnings. -- SANDRO BONAZZOLA ASSOCIATE MANAGER, SOFTWARE ENGINEERING, EMEA ENG VIRTUALIZATION R&D Red Hat EMEA <https://www.redhat.com/> <https://red.ht/sig> TRIED. TESTED. TRUSTED. <https://redhat.com/trusted> <http://www.teraplan.it/redhat-osd-2017/>

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

On Fri, Oct 20, 2017 at 7:56 PM, Nir Soffer <nsoffer@redhat.com> wrote:
On Fri, Oct 20, 2017 at 11:37 AM Sandro Bonazzola <sbonazzo@redhat.com> wrote:
Just an heads up we have improvement margin on vdsm spec file quality.
[sbonazzo@sbonazzo SPECS]$ rpmlint ./vdsm.spec /var/lib/mock/epel-7-x86_64/result/*rpm vdsm.x86_64: E: explicit-lib-dependency libnl3
What is wrong with this?
vdsm.x86_64: E: explicit-lib-dependency libvirt-client vdsm.x86_64: E: explicit-lib-dependency libvirt-daemon-config-nwfilter vdsm.x86_64: E: explicit-lib-dependency libvirt-lock-sanlock vdsm.x86_64: W: obsolete-not-provided vdsm-infra vdsm.x86_64: E: no-binary
Ha?
vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/mom.log
This is not a conf file, we should probably change this
vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/supervdsm.log vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/vdsm.log vdsm.x86_64: W: non-conffile-in-etc /etc/NetworkManager/conf.d/vdsm.conf
Ha?
Perhaps: %{_sysconfdir}/NetworkManager/conf.d/vdsm.conf should be: %config(noreplace) %{_sysconfdir}/NetworkManager/conf.d/vdsm.conf
vdsm.x86_64: W: non-conffile-in-etc /etc/modprobe.d/vdsm-bonding- modprobe.conf vdsm.x86_64: E: non-readable /etc/pki/vdsm/keys/libvirt_password 600 vdsm.x86_64: W: non-conffile-in-etc /etc/security/limits.d/99-vdsm.conf
Ha?
Same?
vdsm.x86_64: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm vdsm.x86_64: W: systemd-unit-in-etc /etc/systemd/system/libvirtd. service.d/unlimited-core.conf vdsm.x86_64: W: non-conffile-in-etc /etc/systemd/system/libvirtd. service.d/unlimited-core.conf vdsm.x86_64: E: zero-length /etc/vdsm/mom.d/01-parameters.policy vdsm.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/kvm2ovirt /usr/bin/env python
This used to be the recommended way to write scripts, but it is easy to replace with /usr/bin/python2.
vdsm.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/vm_migrate_hook.py /usr/bin/env python vdsm.x86_64: E: wrong-script-interpreter /usr/share/vdsm/virt/vm_migrate_hook.py /usr/bin/env python vdsm.x86_64: E: non-executable-script /usr/share/vdsm/virt/vm_migrate_hook.py 644 /usr/bin/env python vdsm.x86_64: E: non-standard-dir-perm /var/lib/libvirt/qemu/channels 775 vdsm.x86_64: E: non-standard-dir-perm /var/log/core 1777 vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm
What is wrong with this?
"/var/run may be a temporary filesystem, so any directories or files needed there must be created dynamically at boot time." Y.
vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/payload vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/sourceRoutes vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/trackedInterfaces vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/v2v vdsm.x86_64: W: log-files-without-logrotate ['/var/log/core', '/var/log/vdsm']
We have logrotate configuration for vdsm, but we don't use the standard configuration since we need more frequent rotation.
vdsm.x86_64: W: dangerous-command-in-%pre rpm vdsm.x86_64: W: dangerous-command-in-%post chmod vdsm-api.noarch: E: wrong-script-interpreter /usr/lib/python2.7/site-packages/vdsm/api/vdsmapi.py /usr/bin/env python vdsm-api.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/vdsm/api/vdsmapi.py 644 /usr/bin/env python vdsm-cli.noarch: W: non-conffile-in-etc /etc/bash_completion.d/vdsClient vdsm-gluster.noarch: W: spelling-error %description -l en_US functionalities -> functionalists, functionality, functionalist vdsm-gluster.noarch: W: no-documentation vdsm-hook-allocate_net.noarch: W: summary-not-capitalized C random_network allocation hook for VDSM vdsm-hook-allocate_net.noarch: W: spelling-error %description -l en_US vms -> vs, ms, ems vdsm-hook-allocate_net.noarch: W: no-documentation vdsm-hook-allocate_net.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_device_create/10_allocate_net /usr/bin/env python vdsm-hook-checkimages.noarch: W: no-documentation vdsm-hook-checkips.x86_64: W: no-documentation vdsm-hook-checkips.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/after_get_stats/10_checkips /usr/bin/env python vdsm-hook-checkips.x86_64: E: non-executable-script /usr/libexec/vdsm/hooks/after_get_stats/checkips_utils.py 644 /usr/bin/python2 vdsm-hook-diskunmap.noarch: W: spelling-error Summary(en_US) lun -> loon, lung, sun vdsm-hook-diskunmap.noarch: W: no-documentation vdsm-hook-diskunmap.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_vm_start/50_diskunmap /usr/bin/env python2 vdsm-hook-ethtool-options.noarch: W: spelling-error Summary(en_US) nics -> incs, mics, nicks vdsm-hook-ethtool-options.noarch: W: spelling-error %description -l en_US nics -> incs, mics, nicks vdsm-hook-ethtool-options.noarch: W: no-documentation vdsm-hook-ethtool-options.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/after_network_setup/30_ethtool_options /usr/bin/env python vdsm-hook-extnet.noarch: W: spelling-error Summary(en_US) vNIC -> Venice vdsm-hook-extnet.noarch: W: spelling-error Summary(en_US) libvirt -> liberty, ovirt vdsm-hook-extnet.noarch: W: spelling-error %description -l en_US vNIC -> Venice vdsm-hook-extnet.noarch: W: spelling-error %description -l en_US libvirt -> liberty, ovirt vdsm-hook-extnet.noarch: W: spelling-error %description -l en_US openvswitch -> switchboard vdsm-hook-extnet.noarch: W: no-documentation vdsm-hook-extra-ipv4-addrs.x86_64: W: summary-ended-with-dot C Set extra ipv4 addresses for vdsm networks. vdsm-hook-extra-ipv4-addrs.x86_64: W: no-documentation 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 vdsm-hook-fakesriov.x86_64: W: spelling-error %description -l en_US hostdevListByCaps vdsm-hook-fakesriov.x86_64: W: spelling-error %description -l en_US sriov -> Rios vdsm-hook-fakesriov.x86_64: W: spelling-error %description -l en_US conf -> con, cone, cons vdsm-hook-fakesriov.x86_64: W: no-documentation vdsm-hook-fakevmstats.noarch: W: spelling-error %description -l en_US vmstats -> stats vdsm-hook-fakevmstats.noarch: W: spelling-error %description -l en_US conf -> con, cone, cons vdsm-hook-fakevmstats.noarch: W: no-documentation vdsm-hook-faqemu.noarch: W: spelling-error Summary(en_US) qemu -> emu, q emu vdsm-hook-faqemu.noarch: W: spelling-error %description -l en_US kvm -> km vdsm-hook-faqemu.noarch: W: spelling-error %description -l en_US conf -> con, cone, cons vdsm-hook-faqemu.noarch: W: no-documentation vdsm-hook-fcoe.noarch: W: no-documentation vdsm-hook-fcoe.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_network_setup/50_fcoe /bin/env python vdsm-hook-fileinject.noarch: W: no-documentation vdsm-hook-floppy.noarch: W: no-documentation vdsm-hook-hostusb.noarch: W: no-documentation vdsm-hook-hostusb.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_hostusb 440 vdsm-hook-hostusb.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_hostusb vdsm-hook-httpsisoboot.noarch: W: spelling-error Summary(en_US) https -> HTTP vdsm-hook-httpsisoboot.noarch: W: spelling-error %description -l en_US https -> HTTP vdsm-hook-httpsisoboot.noarch: W: spelling-error %description -l en_US http -> HTTP vdsm-hook-httpsisoboot.noarch: W: no-documentation vdsm-hook-hugepages.noarch: W: summary-ended-with-dot C Huge pages enable user to handle VM with 2048KB page files. vdsm-hook-hugepages.noarch: W: no-documentation vdsm-hook-hugepages.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_hugepages 440 vdsm-hook-hugepages.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_hugepages vdsm-hook-ipv6.noarch: W: no-documentation vdsm-hook-ipv6.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_network_setup/50_ipv6 /usr/bin/env python2 vdsm-hook-isolatedprivatevlan.noarch: W: spelling-error %description -l en_US ip -> pi, up, op vdsm-hook-isolatedprivatevlan.noarch: W: spelling-error %description -l en_US filterref -> filter ref, filter-ref, filterer vdsm-hook-isolatedprivatevlan.noarch: W: spelling-error %description -l en_US xml -> XML, ml, x ml vdsm-hook-isolatedprivatevlan.noarch: W: no-documentation vdsm-hook-isolatedprivatevlan.noarch: E: executable-marked-as-config-file /etc/libvirt/nwfilter/isolatedprivatevlan-vdsm.xml vdsm-hook-isolatedprivatevlan.noarch: E: script-without-shebang /etc/libvirt/nwfilter/isolatedprivatevlan-vdsm.xml vdsm-hook-localdisk.noarch: W: spelling-error %description -l en_US lvm -> lvi, lam, Lvov vdsm-hook-localdisk.noarch: W: only-non-binary-in-usr-lib vdsm-hook-localdisk.noarch: W: no-documentation vdsm-hook-localdisk.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_localdisk 440 vdsm-hook-localdisk.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_localdisk vdsm-hook-macbind.noarch: W: spelling-error Summary(en_US) vNIC -> Venice vdsm-hook-macbind.noarch: W: spelling-error %description -l en_US vNIC -> Venice vdsm-hook-macbind.noarch: W: no-documentation vdsm-hook-macbind.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_vm_start/50_macbind /usr/bin/env python2 vdsm-hook-macspoof.noarch: W: spelling-error %description -l en_US vnics -> conics vdsm-hook-macspoof.noarch: W: no-documentation vdsm-hook-nestedvt.noarch: W: spelling-error %description -l en_US virtualization -> visualization, actualization, vitalization vdsm-hook-nestedvt.noarch: W: spelling-error %description -l en_US kvm -> km vdsm-hook-nestedvt.noarch: W: no-documentation vdsm-hook-nestedvt.noarch: W: non-conffile-in-etc /etc/modprobe.d/vdsm-nestedvt.conf vdsm-hook-noipspoof.noarch: W: no-documentation vdsm-hook-numa.noarch: W: spelling-error %description -l en_US xml -> XML, ml, x ml vdsm-hook-numa.noarch: W: no-documentation vdsm-hook-openstacknet.noarch: W: spelling-error Summary(en_US) vNICs -> conics vdsm-hook-openstacknet.noarch: W: spelling-error %description -l en_US vNICs -> conics vdsm-hook-openstacknet.noarch: W: no-documentation vdsm-hook-openstacknet.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_openstacknet 440 vdsm-hook-openstacknet.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_openstacknet vdsm-hook-openstacknet.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_device_migrate_destination/50_openstacknet /usr/bin/env python2 vdsm-hook-pincpu.noarch: W: no-documentation vdsm-hook-promisc.noarch: W: no-documentation vdsm-hook-promisc.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_promisc 440 vdsm-hook-promisc.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_promisc vdsm-hook-qemucmdline.noarch: W: spelling-error Summary(en_US) cmdline -> decline vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US cmdline -> decline vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US libvirt's -> liberty's vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US qemu -> emu, q emu vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US commandline -> command line, command-line, commandment vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US xml -> XML, ml, x ml vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US namespace -> name space, name-space, names pace vdsm-hook-qemucmdline.noarch: W: no-documentation vdsm-hook-qos.noarch: W: no-documentation vdsm-hook-scratchpad.noarch: W: no-documentation vdsm-hook-smbios.noarch: W: spelling-error Summary(en_US) libvirt -> liberty, ovirt vdsm-hook-smbios.noarch: W: spelling-error %description -l en_US libvirt -> liberty, ovirt vdsm-hook-smbios.noarch: W: no-documentation vdsm-hook-spiceoptions.noarch: W: spelling-error Summary(en_US) vm -> cm, v, m vdsm-hook-spiceoptions.noarch: W: no-documentation vdsm-hook-vfio-mdev.noarch: W: summary-ended-with-dot C Hook to enable mdev-capable devices. vdsm-hook-vfio-mdev.noarch: W: no-documentation vdsm-hook-vhostmd.noarch: W: no-documentation vdsm-hook-vhostmd.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_vhostmd 440 vdsm-hook-vhostmd.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_vhostmd vdsm-hook-vmdisk.noarch: W: no-documentation vdsm-hook-vmfex.noarch: W: summary-not-capitalized C vmfex support for VDSM vdsm-hook-vmfex.noarch: W: no-documentation vdsm-hook-vmfex-dev.noarch: W: spelling-error Summary(en_US) vNIC -> Venice vdsm-hook-vmfex-dev.noarch: W: spelling-error %description -l en_US vNIC -> Venice vdsm-hook-vmfex-dev.noarch: W: spelling-error %description -l en_US macvtap -> madcap vdsm-hook-vmfex-dev.noarch: W: no-documentation vdsm-jsonrpc.noarch: W: spelling-error %description -l en_US libvdsm -> liberalism vdsm-jsonrpc.noarch: W: obsolete-not-provided vdsm-api vdsm-jsonrpc.noarch: W: no-documentation vdsm-python.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/vdsm/tool/dummybr.py 644 /usr/bin/python2 vdsm-python.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/vdsm/tool/nwfilter.py 644 /usr/bin/python2 vdsm-python.noarch: W: dangerous-command-in-%post rm vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/alignmentScanTests.py 644 /usr/bin/python2
This looks easy, this is not a script
vdsm-tests.noarch: E: wrong-script-interpreter /usr/share/vdsm/tests/fake-ssh-add /usr/bin/env python vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/fake-ssh-add 644 /usr/bin/env python vdsm-tests.noarch: E: wrong-script-interpreter /usr/share/vdsm/tests/fake-ssh-agent /usr/bin/env python vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/fake-ssh-agent 644 /usr/bin/env python vdsm-tests.noarch: E: wrong-script-interpreter /usr/share/vdsm/tests/fake-virt-v2v /usr/bin/env python vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/fake-virt-v2v 644 /usr/bin/env python vdsm-tests.noarch: E: script-without-shebang /usr/share/vdsm/tests/ testValidation.py
This is also not a script, maybe wrong permissions?
vdsm-tests.noarch: E: zero-length /usr/share/vdsm/tests/ toolTests_empty.conf
This is bogus error, but we can probably replace this with generated temporary file.
vdsm-xmlrpc.noarch: W: spelling-error %description -l en_US vdsmd vdsm-xmlrpc.noarch: W: spelling-error %description -l en_US vdsClient -> clientele vdsm-xmlrpc.noarch: W: no-documentation vdsm-yajsonrpc.noarch: W: no-documentation 48 packages and 1 specfiles checked; 49 errors, 120 warnings.
Sandro, can you help with adding a test to vdsm build, failing if the spec has errors?
This would also would be useful to other projects like ovirt-imageio.
Nir
--
SANDRO BONAZZOLA
ASSOCIATE MANAGER, SOFTWARE ENGINEERING, EMEA ENG VIRTUALIZATION R&D
Red Hat EMEA <https://www.redhat.com/> <https://red.ht/sig> TRIED. TESTED. TRUSTED. <https://redhat.com/trusted> <http://www.teraplan.it/redhat-osd-2017/> _______________________________________________ Devel mailing list Devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/devel
_______________________________________________ Devel mailing list Devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/devel

2017-10-20 20:05 GMT+02:00 Yaniv Kaul <ykaul@redhat.com>:
On Fri, Oct 20, 2017 at 7:56 PM, Nir Soffer <nsoffer@redhat.com> wrote:
On Fri, Oct 20, 2017 at 11:37 AM Sandro Bonazzola <sbonazzo@redhat.com> wrote:
Just an heads up we have improvement margin on vdsm spec file quality.
[sbonazzo@sbonazzo SPECS]$ rpmlint ./vdsm.spec /var/lib/mock/epel-7-x86_64/result/*rpm vdsm.x86_64: E: explicit-lib-dependency libnl3
What is wrong with this?
vdsm.x86_64: E: explicit-lib-dependency libvirt-client vdsm.x86_64: E: explicit-lib-dependency libvirt-daemon-config-nwfilter vdsm.x86_64: E: explicit-lib-dependency libvirt-lock-sanlock vdsm.x86_64: W: obsolete-not-provided vdsm-infra vdsm.x86_64: E: no-binary
Ha?
The package should be of the noarch architecture because it doesn't contain any binaries.
vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/mom.log
This is not a conf file, we should probably change this
vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/supervdsm.log vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/vdsm.log vdsm.x86_64: W: non-conffile-in-etc /etc/NetworkManager/conf.d/vdsm.conf
Ha?
Perhaps: %{_sysconfdir}/NetworkManager/conf.d/vdsm.conf
should be: %config(noreplace) %{_sysconfdir}/NetworkManager/conf.d/vdsm.conf
vdsm.x86_64: W: non-conffile-in-etc /etc/modprobe.d/vdsm-bonding-m odprobe.conf vdsm.x86_64: E: non-readable /etc/pki/vdsm/keys/libvirt_password 600 vdsm.x86_64: W: non-conffile-in-etc /etc/security/limits.d/99-vdsm.conf
Ha?
Same?
vdsm.x86_64: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm vdsm.x86_64: W: systemd-unit-in-etc /etc/systemd/system/libvirtd.s ervice.d/unlimited-core.conf vdsm.x86_64: W: non-conffile-in-etc /etc/systemd/system/libvirtd.s ervice.d/unlimited-core.conf vdsm.x86_64: E: zero-length /etc/vdsm/mom.d/01-parameters.policy vdsm.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/kvm2ovirt /usr/bin/env python
This used to be the recommended way to write scripts, but it is easy to replace with /usr/bin/python2.
It should be /usr/bin/python since python is under "alternatives" management
vdsm.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/vm_migrate_hook.py /usr/bin/env python vdsm.x86_64: E: wrong-script-interpreter /usr/share/vdsm/virt/vm_migrate_hook.py /usr/bin/env python vdsm.x86_64: E: non-executable-script /usr/share/vdsm/virt/vm_migrate_hook.py 644 /usr/bin/env python vdsm.x86_64: E: non-standard-dir-perm /var/lib/libvirt/qemu/channels 775 vdsm.x86_64: E: non-standard-dir-perm /var/log/core 1777 vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm
What is wrong with this?
"/var/run may be a temporary filesystem, so any directories or files needed there must be created dynamically at boot time."
Y.
vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/payload vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/sourceRoutes vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/trackedInterfaces vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/v2v vdsm.x86_64: W: log-files-without-logrotate ['/var/log/core', '/var/log/vdsm']
We have logrotate configuration for vdsm, but we don't use the standard configuration since we need more frequent rotation.
vdsm.x86_64: W: dangerous-command-in-%pre rpm vdsm.x86_64: W: dangerous-command-in-%post chmod vdsm-api.noarch: E: wrong-script-interpreter /usr/lib/python2.7/site-packages/vdsm/api/vdsmapi.py /usr/bin/env python vdsm-api.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/vdsm/api/vdsmapi.py 644 /usr/bin/env python vdsm-cli.noarch: W: non-conffile-in-etc /etc/bash_completion.d/vdsClient vdsm-gluster.noarch: W: spelling-error %description -l en_US functionalities -> functionalists, functionality, functionalist vdsm-gluster.noarch: W: no-documentation vdsm-hook-allocate_net.noarch: W: summary-not-capitalized C random_network allocation hook for VDSM vdsm-hook-allocate_net.noarch: W: spelling-error %description -l en_US vms -> vs, ms, ems vdsm-hook-allocate_net.noarch: W: no-documentation vdsm-hook-allocate_net.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_device_create/10_allocate_net /usr/bin/env python vdsm-hook-checkimages.noarch: W: no-documentation vdsm-hook-checkips.x86_64: W: no-documentation vdsm-hook-checkips.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/after_get_stats/10_checkips /usr/bin/env python vdsm-hook-checkips.x86_64: E: non-executable-script /usr/libexec/vdsm/hooks/after_get_stats/checkips_utils.py 644 /usr/bin/python2 vdsm-hook-diskunmap.noarch: W: spelling-error Summary(en_US) lun -> loon, lung, sun vdsm-hook-diskunmap.noarch: W: no-documentation vdsm-hook-diskunmap.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_vm_start/50_diskunmap /usr/bin/env python2 vdsm-hook-ethtool-options.noarch: W: spelling-error Summary(en_US) nics -> incs, mics, nicks vdsm-hook-ethtool-options.noarch: W: spelling-error %description -l en_US nics -> incs, mics, nicks vdsm-hook-ethtool-options.noarch: W: no-documentation vdsm-hook-ethtool-options.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/after_network_setup/30_ethtool_options /usr/bin/env python vdsm-hook-extnet.noarch: W: spelling-error Summary(en_US) vNIC -> Venice vdsm-hook-extnet.noarch: W: spelling-error Summary(en_US) libvirt -> liberty, ovirt vdsm-hook-extnet.noarch: W: spelling-error %description -l en_US vNIC -> Venice vdsm-hook-extnet.noarch: W: spelling-error %description -l en_US libvirt -> liberty, ovirt vdsm-hook-extnet.noarch: W: spelling-error %description -l en_US openvswitch -> switchboard vdsm-hook-extnet.noarch: W: no-documentation vdsm-hook-extra-ipv4-addrs.x86_64: W: summary-ended-with-dot C Set extra ipv4 addresses for vdsm networks. vdsm-hook-extra-ipv4-addrs.x86_64: W: no-documentation 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 vdsm-hook-fakesriov.x86_64: W: spelling-error %description -l en_US hostdevListByCaps vdsm-hook-fakesriov.x86_64: W: spelling-error %description -l en_US sriov -> Rios vdsm-hook-fakesriov.x86_64: W: spelling-error %description -l en_US conf -> con, cone, cons vdsm-hook-fakesriov.x86_64: W: no-documentation vdsm-hook-fakevmstats.noarch: W: spelling-error %description -l en_US vmstats -> stats vdsm-hook-fakevmstats.noarch: W: spelling-error %description -l en_US conf -> con, cone, cons vdsm-hook-fakevmstats.noarch: W: no-documentation vdsm-hook-faqemu.noarch: W: spelling-error Summary(en_US) qemu -> emu, q emu vdsm-hook-faqemu.noarch: W: spelling-error %description -l en_US kvm -> km vdsm-hook-faqemu.noarch: W: spelling-error %description -l en_US conf -> con, cone, cons vdsm-hook-faqemu.noarch: W: no-documentation vdsm-hook-fcoe.noarch: W: no-documentation vdsm-hook-fcoe.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_network_setup/50_fcoe /bin/env python vdsm-hook-fileinject.noarch: W: no-documentation vdsm-hook-floppy.noarch: W: no-documentation vdsm-hook-hostusb.noarch: W: no-documentation vdsm-hook-hostusb.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_hostusb 440 vdsm-hook-hostusb.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_hostusb vdsm-hook-httpsisoboot.noarch: W: spelling-error Summary(en_US) https -> HTTP vdsm-hook-httpsisoboot.noarch: W: spelling-error %description -l en_US https -> HTTP vdsm-hook-httpsisoboot.noarch: W: spelling-error %description -l en_US http -> HTTP vdsm-hook-httpsisoboot.noarch: W: no-documentation vdsm-hook-hugepages.noarch: W: summary-ended-with-dot C Huge pages enable user to handle VM with 2048KB page files. vdsm-hook-hugepages.noarch: W: no-documentation vdsm-hook-hugepages.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_hugepages 440 vdsm-hook-hugepages.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_hugepages vdsm-hook-ipv6.noarch: W: no-documentation vdsm-hook-ipv6.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_network_setup/50_ipv6 /usr/bin/env python2 vdsm-hook-isolatedprivatevlan.noarch: W: spelling-error %description -l en_US ip -> pi, up, op vdsm-hook-isolatedprivatevlan.noarch: W: spelling-error %description -l en_US filterref -> filter ref, filter-ref, filterer vdsm-hook-isolatedprivatevlan.noarch: W: spelling-error %description -l en_US xml -> XML, ml, x ml vdsm-hook-isolatedprivatevlan.noarch: W: no-documentation vdsm-hook-isolatedprivatevlan.noarch: E: executable-marked-as-config-file /etc/libvirt/nwfilter/isolatedprivatevlan-vdsm.xml vdsm-hook-isolatedprivatevlan.noarch: E: script-without-shebang /etc/libvirt/nwfilter/isolatedprivatevlan-vdsm.xml vdsm-hook-localdisk.noarch: W: spelling-error %description -l en_US lvm -> lvi, lam, Lvov vdsm-hook-localdisk.noarch: W: only-non-binary-in-usr-lib vdsm-hook-localdisk.noarch: W: no-documentation vdsm-hook-localdisk.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_localdisk 440 vdsm-hook-localdisk.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_localdisk vdsm-hook-macbind.noarch: W: spelling-error Summary(en_US) vNIC -> Venice vdsm-hook-macbind.noarch: W: spelling-error %description -l en_US vNIC -> Venice vdsm-hook-macbind.noarch: W: no-documentation vdsm-hook-macbind.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_vm_start/50_macbind /usr/bin/env python2 vdsm-hook-macspoof.noarch: W: spelling-error %description -l en_US vnics -> conics vdsm-hook-macspoof.noarch: W: no-documentation vdsm-hook-nestedvt.noarch: W: spelling-error %description -l en_US virtualization -> visualization, actualization, vitalization vdsm-hook-nestedvt.noarch: W: spelling-error %description -l en_US kvm -> km vdsm-hook-nestedvt.noarch: W: no-documentation vdsm-hook-nestedvt.noarch: W: non-conffile-in-etc /etc/modprobe.d/vdsm-nestedvt.conf vdsm-hook-noipspoof.noarch: W: no-documentation vdsm-hook-numa.noarch: W: spelling-error %description -l en_US xml -> XML, ml, x ml vdsm-hook-numa.noarch: W: no-documentation vdsm-hook-openstacknet.noarch: W: spelling-error Summary(en_US) vNICs -> conics vdsm-hook-openstacknet.noarch: W: spelling-error %description -l en_US vNICs -> conics vdsm-hook-openstacknet.noarch: W: no-documentation vdsm-hook-openstacknet.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_openstacknet 440 vdsm-hook-openstacknet.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_openstacknet vdsm-hook-openstacknet.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_device_migrate_destination/50_openstacknet /usr/bin/env python2 vdsm-hook-pincpu.noarch: W: no-documentation vdsm-hook-promisc.noarch: W: no-documentation vdsm-hook-promisc.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_promisc 440 vdsm-hook-promisc.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_promisc vdsm-hook-qemucmdline.noarch: W: spelling-error Summary(en_US) cmdline -> decline vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US cmdline -> decline vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US libvirt's -> liberty's vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US qemu -> emu, q emu vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US commandline -> command line, command-line, commandment vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US xml -> XML, ml, x ml vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US namespace -> name space, name-space, names pace vdsm-hook-qemucmdline.noarch: W: no-documentation vdsm-hook-qos.noarch: W: no-documentation vdsm-hook-scratchpad.noarch: W: no-documentation vdsm-hook-smbios.noarch: W: spelling-error Summary(en_US) libvirt -> liberty, ovirt vdsm-hook-smbios.noarch: W: spelling-error %description -l en_US libvirt -> liberty, ovirt vdsm-hook-smbios.noarch: W: no-documentation vdsm-hook-spiceoptions.noarch: W: spelling-error Summary(en_US) vm -> cm, v, m vdsm-hook-spiceoptions.noarch: W: no-documentation vdsm-hook-vfio-mdev.noarch: W: summary-ended-with-dot C Hook to enable mdev-capable devices. vdsm-hook-vfio-mdev.noarch: W: no-documentation vdsm-hook-vhostmd.noarch: W: no-documentation vdsm-hook-vhostmd.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_vhostmd 440 vdsm-hook-vhostmd.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_vhostmd vdsm-hook-vmdisk.noarch: W: no-documentation vdsm-hook-vmfex.noarch: W: summary-not-capitalized C vmfex support for VDSM vdsm-hook-vmfex.noarch: W: no-documentation vdsm-hook-vmfex-dev.noarch: W: spelling-error Summary(en_US) vNIC -> Venice vdsm-hook-vmfex-dev.noarch: W: spelling-error %description -l en_US vNIC -> Venice vdsm-hook-vmfex-dev.noarch: W: spelling-error %description -l en_US macvtap -> madcap vdsm-hook-vmfex-dev.noarch: W: no-documentation vdsm-jsonrpc.noarch: W: spelling-error %description -l en_US libvdsm -> liberalism vdsm-jsonrpc.noarch: W: obsolete-not-provided vdsm-api vdsm-jsonrpc.noarch: W: no-documentation vdsm-python.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/vdsm/tool/dummybr.py 644 /usr/bin/python2 vdsm-python.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/vdsm/tool/nwfilter.py 644 /usr/bin/python2 vdsm-python.noarch: W: dangerous-command-in-%post rm vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/alignmentScanTests.py 644 /usr/bin/python2
This looks easy, this is not a script
vdsm-tests.noarch: E: wrong-script-interpreter /usr/share/vdsm/tests/fake-ssh-add /usr/bin/env python vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/fake-ssh-add 644 /usr/bin/env python vdsm-tests.noarch: E: wrong-script-interpreter /usr/share/vdsm/tests/fake-ssh-agent /usr/bin/env python vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/fake-ssh-agent 644 /usr/bin/env python vdsm-tests.noarch: E: wrong-script-interpreter /usr/share/vdsm/tests/fake-virt-v2v /usr/bin/env python vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/fake-virt-v2v 644 /usr/bin/env python vdsm-tests.noarch: E: script-without-shebang /usr/share/vdsm/tests/testValidation.py
This is also not a script, maybe wrong permissions?
vdsm-tests.noarch: E: zero-length /usr/share/vdsm/tests/toolTest s_empty.conf
This is bogus error, but we can probably replace this with generated temporary file.
vdsm-xmlrpc.noarch: W: spelling-error %description -l en_US vdsmd vdsm-xmlrpc.noarch: W: spelling-error %description -l en_US vdsClient -> clientele vdsm-xmlrpc.noarch: W: no-documentation vdsm-yajsonrpc.noarch: W: no-documentation 48 packages and 1 specfiles checked; 49 errors, 120 warnings.
Sandro, can you help with adding a test to vdsm build, failing if the spec has errors?
Some of the errors may be false positives, but if really needed I can help with the test.
This would also would be useful to other projects like ovirt-imageio.
Nir
--
SANDRO BONAZZOLA
ASSOCIATE MANAGER, SOFTWARE ENGINEERING, EMEA ENG VIRTUALIZATION R&D
Red Hat EMEA <https://www.redhat.com/> <https://red.ht/sig> TRIED. TESTED. TRUSTED. <https://redhat.com/trusted> <http://www.teraplan.it/redhat-osd-2017/> _______________________________________________ Devel mailing list Devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/devel
_______________________________________________ Devel mailing list Devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/devel
-- SANDRO BONAZZOLA ASSOCIATE MANAGER, SOFTWARE ENGINEERING, EMEA ENG VIRTUALIZATION R&D Red Hat EMEA <https://www.redhat.com/> <https://red.ht/sig> TRIED. TESTED. TRUSTED. <https://redhat.com/trusted> <http://www.teraplan.it/redhat-osd-2017/>

On Wed, Oct 25, 2017 at 9:33 AM Sandro Bonazzola <sbonazzo@redhat.com> wrote:
2017-10-20 20:05 GMT+02:00 Yaniv Kaul <ykaul@redhat.com>:
On Fri, Oct 20, 2017 at 7:56 PM, Nir Soffer <nsoffer@redhat.com> wrote:
On Fri, Oct 20, 2017 at 11:37 AM Sandro Bonazzola <sbonazzo@redhat.com> wrote:
Just an heads up we have improvement margin on vdsm spec file quality.
[sbonazzo@sbonazzo SPECS]$ rpmlint ./vdsm.spec /var/lib/mock/epel-7-x86_64/result/*rpm vdsm.x86_64: E: explicit-lib-dependency libnl3
What is wrong with this?
vdsm.x86_64: E: explicit-lib-dependency libvirt-client vdsm.x86_64: E: explicit-lib-dependency libvirt-daemon-config-nwfilter vdsm.x86_64: E: explicit-lib-dependency libvirt-lock-sanlock vdsm.x86_64: W: obsolete-not-provided vdsm-infra vdsm.x86_64: E: no-binary
Ha?
The package should be of the noarch architecture because it doesn't contain any binaries.
Vdsm has many arch specific requirements, and we have different requirements on different platforms. Having a arch specific meta package was the solution suggested by Fedora reviewers about 2 years ago.
vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/mom.log
This is not a conf file, we should probably change this
vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/supervdsm.log vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/vdsm.log vdsm.x86_64: W: non-conffile-in-etc /etc/NetworkManager/conf.d/vdsm.conf
Ha?
Perhaps: %{_sysconfdir}/NetworkManager/conf.d/vdsm.conf
should be: %config(noreplace) %{_sysconfdir}/NetworkManager/conf.d/vdsm.conf
vdsm.x86_64: W: non-conffile-in-etc /etc/modprobe.d/vdsm-bonding-modprobe.conf vdsm.x86_64: E: non-readable /etc/pki/vdsm/keys/libvirt_password 600 vdsm.x86_64: W: non-conffile-in-etc /etc/security/limits.d/99-vdsm.conf
Ha?
Same?
vdsm.x86_64: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm vdsm.x86_64: W: systemd-unit-in-etc /etc/systemd/system/libvirtd.service.d/unlimited-core.conf vdsm.x86_64: W: non-conffile-in-etc /etc/systemd/system/libvirtd.service.d/unlimited-core.conf vdsm.x86_64: E: zero-length /etc/vdsm/mom.d/01-parameters.policy vdsm.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/kvm2ovirt /usr/bin/env python
This used to be the recommended way to write scripts, but it is easy to replace with /usr/bin/python2.
It should be /usr/bin/python since python is under "alternatives" management
But most of the code is python2 only - we recently update (most) scripts to use /usr/bin/python2.
vdsm.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/vm_migrate_hook.py /usr/bin/env python vdsm.x86_64: E: wrong-script-interpreter /usr/share/vdsm/virt/vm_migrate_hook.py /usr/bin/env python vdsm.x86_64: E: non-executable-script /usr/share/vdsm/virt/vm_migrate_hook.py 644 /usr/bin/env python vdsm.x86_64: E: non-standard-dir-perm /var/lib/libvirt/qemu/channels 775 vdsm.x86_64: E: non-standard-dir-perm /var/log/core 1777 vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm
What is wrong with this?
"/var/run may be a temporary filesystem, so any directories or files needed there must be created dynamically at boot time."
We create these directories in runtime, not sure why we create them also during instillation.
Y.
vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/payload vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/sourceRoutes vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/trackedInterfaces vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/v2v vdsm.x86_64: W: log-files-without-logrotate ['/var/log/core', '/var/log/vdsm']
We have logrotate configuration for vdsm, but we don't use the standard configuration since we need more frequent rotation.
vdsm.x86_64: W: dangerous-command-in-%pre rpm vdsm.x86_64: W: dangerous-command-in-%post chmod vdsm-api.noarch: E: wrong-script-interpreter /usr/lib/python2.7/site-packages/vdsm/api/vdsmapi.py /usr/bin/env python vdsm-api.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/vdsm/api/vdsmapi.py 644 /usr/bin/env python vdsm-cli.noarch: W: non-conffile-in-etc /etc/bash_completion.d/vdsClient vdsm-gluster.noarch: W: spelling-error %description -l en_US functionalities -> functionalists, functionality, functionalist vdsm-gluster.noarch: W: no-documentation vdsm-hook-allocate_net.noarch: W: summary-not-capitalized C random_network allocation hook for VDSM vdsm-hook-allocate_net.noarch: W: spelling-error %description -l en_US vms -> vs, ms, ems vdsm-hook-allocate_net.noarch: W: no-documentation vdsm-hook-allocate_net.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_device_create/10_allocate_net /usr/bin/env python vdsm-hook-checkimages.noarch: W: no-documentation vdsm-hook-checkips.x86_64: W: no-documentation vdsm-hook-checkips.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/after_get_stats/10_checkips /usr/bin/env python vdsm-hook-checkips.x86_64: E: non-executable-script /usr/libexec/vdsm/hooks/after_get_stats/checkips_utils.py 644 /usr/bin/python2 vdsm-hook-diskunmap.noarch: W: spelling-error Summary(en_US) lun -> loon, lung, sun vdsm-hook-diskunmap.noarch: W: no-documentation vdsm-hook-diskunmap.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_vm_start/50_diskunmap /usr/bin/env python2 vdsm-hook-ethtool-options.noarch: W: spelling-error Summary(en_US) nics -> incs, mics, nicks vdsm-hook-ethtool-options.noarch: W: spelling-error %description -l en_US nics -> incs, mics, nicks vdsm-hook-ethtool-options.noarch: W: no-documentation vdsm-hook-ethtool-options.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/after_network_setup/30_ethtool_options /usr/bin/env python vdsm-hook-extnet.noarch: W: spelling-error Summary(en_US) vNIC -> Venice vdsm-hook-extnet.noarch: W: spelling-error Summary(en_US) libvirt -> liberty, ovirt vdsm-hook-extnet.noarch: W: spelling-error %description -l en_US vNIC -> Venice vdsm-hook-extnet.noarch: W: spelling-error %description -l en_US libvirt -> liberty, ovirt vdsm-hook-extnet.noarch: W: spelling-error %description -l en_US openvswitch -> switchboard vdsm-hook-extnet.noarch: W: no-documentation vdsm-hook-extra-ipv4-addrs.x86_64: W: summary-ended-with-dot C Set extra ipv4 addresses for vdsm networks. vdsm-hook-extra-ipv4-addrs.x86_64: W: no-documentation 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 vdsm-hook-fakesriov.x86_64: W: spelling-error %description -l en_US hostdevListByCaps vdsm-hook-fakesriov.x86_64: W: spelling-error %description -l en_US sriov -> Rios vdsm-hook-fakesriov.x86_64: W: spelling-error %description -l en_US conf -> con, cone, cons vdsm-hook-fakesriov.x86_64: W: no-documentation vdsm-hook-fakevmstats.noarch: W: spelling-error %description -l en_US vmstats -> stats vdsm-hook-fakevmstats.noarch: W: spelling-error %description -l en_US conf -> con, cone, cons vdsm-hook-fakevmstats.noarch: W: no-documentation vdsm-hook-faqemu.noarch: W: spelling-error Summary(en_US) qemu -> emu, q emu vdsm-hook-faqemu.noarch: W: spelling-error %description -l en_US kvm -> km vdsm-hook-faqemu.noarch: W: spelling-error %description -l en_US conf -> con, cone, cons vdsm-hook-faqemu.noarch: W: no-documentation vdsm-hook-fcoe.noarch: W: no-documentation vdsm-hook-fcoe.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_network_setup/50_fcoe /bin/env python vdsm-hook-fileinject.noarch: W: no-documentation vdsm-hook-floppy.noarch: W: no-documentation vdsm-hook-hostusb.noarch: W: no-documentation vdsm-hook-hostusb.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_hostusb 440 vdsm-hook-hostusb.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_hostusb vdsm-hook-httpsisoboot.noarch: W: spelling-error Summary(en_US) https -> HTTP vdsm-hook-httpsisoboot.noarch: W: spelling-error %description -l en_US https -> HTTP vdsm-hook-httpsisoboot.noarch: W: spelling-error %description -l en_US http -> HTTP vdsm-hook-httpsisoboot.noarch: W: no-documentation vdsm-hook-hugepages.noarch: W: summary-ended-with-dot C Huge pages enable user to handle VM with 2048KB page files. vdsm-hook-hugepages.noarch: W: no-documentation vdsm-hook-hugepages.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_hugepages 440 vdsm-hook-hugepages.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_hugepages vdsm-hook-ipv6.noarch: W: no-documentation vdsm-hook-ipv6.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_network_setup/50_ipv6 /usr/bin/env python2 vdsm-hook-isolatedprivatevlan.noarch: W: spelling-error %description -l en_US ip -> pi, up, op vdsm-hook-isolatedprivatevlan.noarch: W: spelling-error %description -l en_US filterref -> filter ref, filter-ref, filterer vdsm-hook-isolatedprivatevlan.noarch: W: spelling-error %description -l en_US xml -> XML, ml, x ml vdsm-hook-isolatedprivatevlan.noarch: W: no-documentation vdsm-hook-isolatedprivatevlan.noarch: E: executable-marked-as-config-file /etc/libvirt/nwfilter/isolatedprivatevlan-vdsm.xml vdsm-hook-isolatedprivatevlan.noarch: E: script-without-shebang /etc/libvirt/nwfilter/isolatedprivatevlan-vdsm.xml vdsm-hook-localdisk.noarch: W: spelling-error %description -l en_US lvm -> lvi, lam, Lvov vdsm-hook-localdisk.noarch: W: only-non-binary-in-usr-lib vdsm-hook-localdisk.noarch: W: no-documentation vdsm-hook-localdisk.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_localdisk 440 vdsm-hook-localdisk.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_localdisk vdsm-hook-macbind.noarch: W: spelling-error Summary(en_US) vNIC -> Venice vdsm-hook-macbind.noarch: W: spelling-error %description -l en_US vNIC -> Venice vdsm-hook-macbind.noarch: W: no-documentation vdsm-hook-macbind.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_vm_start/50_macbind /usr/bin/env python2 vdsm-hook-macspoof.noarch: W: spelling-error %description -l en_US vnics -> conics vdsm-hook-macspoof.noarch: W: no-documentation vdsm-hook-nestedvt.noarch: W: spelling-error %description -l en_US virtualization -> visualization, actualization, vitalization vdsm-hook-nestedvt.noarch: W: spelling-error %description -l en_US kvm -> km vdsm-hook-nestedvt.noarch: W: no-documentation vdsm-hook-nestedvt.noarch: W: non-conffile-in-etc /etc/modprobe.d/vdsm-nestedvt.conf vdsm-hook-noipspoof.noarch: W: no-documentation vdsm-hook-numa.noarch: W: spelling-error %description -l en_US xml -> XML, ml, x ml vdsm-hook-numa.noarch: W: no-documentation vdsm-hook-openstacknet.noarch: W: spelling-error Summary(en_US) vNICs -> conics vdsm-hook-openstacknet.noarch: W: spelling-error %description -l en_US vNICs -> conics vdsm-hook-openstacknet.noarch: W: no-documentation vdsm-hook-openstacknet.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_openstacknet 440 vdsm-hook-openstacknet.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_openstacknet vdsm-hook-openstacknet.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_device_migrate_destination/50_openstacknet /usr/bin/env python2 vdsm-hook-pincpu.noarch: W: no-documentation vdsm-hook-promisc.noarch: W: no-documentation vdsm-hook-promisc.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_promisc 440 vdsm-hook-promisc.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_promisc vdsm-hook-qemucmdline.noarch: W: spelling-error Summary(en_US) cmdline -> decline vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US cmdline -> decline vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US libvirt's -> liberty's vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US qemu -> emu, q emu vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US commandline -> command line, command-line, commandment vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US xml -> XML, ml, x ml vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US namespace -> name space, name-space, names pace vdsm-hook-qemucmdline.noarch: W: no-documentation vdsm-hook-qos.noarch: W: no-documentation vdsm-hook-scratchpad.noarch: W: no-documentation vdsm-hook-smbios.noarch: W: spelling-error Summary(en_US) libvirt -> liberty, ovirt vdsm-hook-smbios.noarch: W: spelling-error %description -l en_US libvirt -> liberty, ovirt vdsm-hook-smbios.noarch: W: no-documentation vdsm-hook-spiceoptions.noarch: W: spelling-error Summary(en_US) vm -> cm, v, m vdsm-hook-spiceoptions.noarch: W: no-documentation vdsm-hook-vfio-mdev.noarch: W: summary-ended-with-dot C Hook to enable mdev-capable devices. vdsm-hook-vfio-mdev.noarch: W: no-documentation vdsm-hook-vhostmd.noarch: W: no-documentation vdsm-hook-vhostmd.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_vhostmd 440 vdsm-hook-vhostmd.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_vhostmd vdsm-hook-vmdisk.noarch: W: no-documentation vdsm-hook-vmfex.noarch: W: summary-not-capitalized C vmfex support for VDSM vdsm-hook-vmfex.noarch: W: no-documentation vdsm-hook-vmfex-dev.noarch: W: spelling-error Summary(en_US) vNIC -> Venice vdsm-hook-vmfex-dev.noarch: W: spelling-error %description -l en_US vNIC -> Venice vdsm-hook-vmfex-dev.noarch: W: spelling-error %description -l en_US macvtap -> madcap vdsm-hook-vmfex-dev.noarch: W: no-documentation vdsm-jsonrpc.noarch: W: spelling-error %description -l en_US libvdsm -> liberalism vdsm-jsonrpc.noarch: W: obsolete-not-provided vdsm-api vdsm-jsonrpc.noarch: W: no-documentation vdsm-python.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/vdsm/tool/dummybr.py 644 /usr/bin/python2 vdsm-python.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/vdsm/tool/nwfilter.py 644 /usr/bin/python2 vdsm-python.noarch: W: dangerous-command-in-%post rm vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/alignmentScanTests.py 644 /usr/bin/python2
This looks easy, this is not a script
vdsm-tests.noarch: E: wrong-script-interpreter /usr/share/vdsm/tests/fake-ssh-add /usr/bin/env python vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/fake-ssh-add 644 /usr/bin/env python vdsm-tests.noarch: E: wrong-script-interpreter /usr/share/vdsm/tests/fake-ssh-agent /usr/bin/env python vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/fake-ssh-agent 644 /usr/bin/env python vdsm-tests.noarch: E: wrong-script-interpreter /usr/share/vdsm/tests/fake-virt-v2v /usr/bin/env python vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/fake-virt-v2v 644 /usr/bin/env python vdsm-tests.noarch: E: script-without-shebang /usr/share/vdsm/tests/testValidation.py
This is also not a script, maybe wrong permissions?
vdsm-tests.noarch: E: zero-length /usr/share/vdsm/tests/toolTests_empty.conf
This is bogus error, but we can probably replace this with generated temporary file.
vdsm-xmlrpc.noarch: W: spelling-error %description -l en_US vdsmd vdsm-xmlrpc.noarch: W: spelling-error %description -l en_US vdsClient -> clientele vdsm-xmlrpc.noarch: W: no-documentation vdsm-yajsonrpc.noarch: W: no-documentation 48 packages and 1 specfiles checked; 49 errors, 120 warnings.
Sandro, can you help with adding a test to vdsm build, failing if the spec has errors?
Some of the errors may be false positives, but if really needed I can help with the test.
This would also would be useful to other projects like ovirt-imageio.
Nir
--
SANDRO BONAZZOLA
ASSOCIATE MANAGER, SOFTWARE ENGINEERING, EMEA ENG VIRTUALIZATION R&D
Red Hat EMEA <https://www.redhat.com/> <https://red.ht/sig> TRIED. TESTED. TRUSTED. <https://redhat.com/trusted> <http://www.teraplan.it/redhat-osd-2017/> _______________________________________________ Devel mailing list Devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/devel
_______________________________________________ Devel mailing list Devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/devel
--
SANDRO BONAZZOLA
ASSOCIATE MANAGER, SOFTWARE ENGINEERING, EMEA ENG VIRTUALIZATION R&D
Red Hat EMEA <https://www.redhat.com/> <https://red.ht/sig> TRIED. TESTED. TRUSTED. <https://redhat.com/trusted> <http://www.teraplan.it/redhat-osd-2017/>

On Wed, Oct 25, 2017 at 3:21 PM, Nir Soffer <nsoffer@redhat.com> wrote:
On Wed, Oct 25, 2017 at 9:33 AM Sandro Bonazzola <sbonazzo@redhat.com> wrote:
2017-10-20 20:05 GMT+02:00 Yaniv Kaul <ykaul@redhat.com>:
On Fri, Oct 20, 2017 at 7:56 PM, Nir Soffer <nsoffer@redhat.com> wrote:
On Fri, Oct 20, 2017 at 11:37 AM Sandro Bonazzola <sbonazzo@redhat.com> wrote:
Just an heads up we have improvement margin on vdsm spec file quality.
[sbonazzo@sbonazzo SPECS]$ rpmlint ./vdsm.spec /var/lib/mock/epel-7-x86_64/result/*rpm vdsm.x86_64: E: explicit-lib-dependency libnl3
What is wrong with this?
vdsm.x86_64: E: explicit-lib-dependency libvirt-client vdsm.x86_64: E: explicit-lib-dependency libvirt-daemon-config-nwfilter vdsm.x86_64: E: explicit-lib-dependency libvirt-lock-sanlock vdsm.x86_64: W: obsolete-not-provided vdsm-infra vdsm.x86_64: E: no-binary
Ha?
The package should be of the noarch architecture because it doesn't contain any binaries.
Vdsm has many arch specific requirements, and we have different requirements on different platforms. Having a arch specific meta package was the solution suggested by Fedora reviewers about 2 years ago.
vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/mom.log
This is not a conf file, we should probably change this
vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/supervdsm.log vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/vdsm.log vdsm.x86_64: W: non-conffile-in-etc /etc/NetworkManager/conf.d/ vdsm.conf
Ha?
Perhaps: %{_sysconfdir}/NetworkManager/conf.d/vdsm.conf
should be: %config(noreplace) %{_sysconfdir}/NetworkManager/conf.d/vdsm.conf
vdsm.x86_64: W: non-conffile-in-etc /etc/modprobe.d/vdsm-bonding- modprobe.conf vdsm.x86_64: E: non-readable /etc/pki/vdsm/keys/libvirt_password 600 vdsm.x86_64: W: non-conffile-in-etc /etc/security/limits.d/99- vdsm.conf
Ha?
Same?
vdsm.x86_64: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm vdsm.x86_64: W: systemd-unit-in-etc /etc/systemd/system/libvirtd. service.d/unlimited-core.conf vdsm.x86_64: W: non-conffile-in-etc /etc/systemd/system/libvirtd. service.d/unlimited-core.conf vdsm.x86_64: E: zero-length /etc/vdsm/mom.d/01-parameters.policy vdsm.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/kvm2ovirt /usr/bin/env python
This used to be the recommended way to write scripts, but it is easy to replace with /usr/bin/python2.
It should be /usr/bin/python since python is under "alternatives" management
But most of the code is python2 only - we recently update (most) scripts to use /usr/bin/python2.
vdsm.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/vm_migrate_hook.py /usr/bin/env python vdsm.x86_64: E: wrong-script-interpreter /usr/share/vdsm/virt/vm_migrate_hook.py /usr/bin/env python vdsm.x86_64: E: non-executable-script /usr/share/vdsm/virt/vm_migrate_hook.py 644 /usr/bin/env python vdsm.x86_64: E: non-standard-dir-perm /var/lib/libvirt/qemu/channels 775 vdsm.x86_64: E: non-standard-dir-perm /var/log/core 1777 vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm
What is wrong with this?
"/var/run may be a temporary filesystem, so any directories or files needed there must be created dynamically at boot time."
We create these directories in runtime, not sure why we create them also during instillation.
As of my I0bdc3b1f2be960d536856465979c89ac85bce4a5 (introduced to silence rpmlint), we no longer do. I do not recall why do we still have this horrible /var/log/core 1777; I hoped that with proper integration to ABRT, we can delegate the responsiblity of collecting core dumps. Irit, do you recall?

On Fri, Oct 20, 2017 at 11:35 AM, Sandro Bonazzola <sbonazzo@redhat.com> wrote:
Just an heads up we have improvement margin on vdsm spec file quality.
[sbonazzo@sbonazzo SPECS]$ rpmlint ./vdsm.spec /var/lib/mock/epel-7-x86_64/result/*rpm
I believe that you're testing 4.1. Few months back, I've fixed many of these in msater, and added check-patch test that make sure we do not reintroduce them. We still have a big "improvement margin" as your understatement goes. We ignore all warnings and 4 errors ! rpmlint "$EXPORT_DIR/"!(*.src).rpm | grep ': E: ' | grep -v explicit-lib-dependency | \ grep -v no-binary | \ grep -v non-readable | grep -v non-standard-dir-perm vdsm.x86_64: E: explicit-lib-dependency libnl3
vdsm.x86_64: E: explicit-lib-dependency libvirt-client vdsm.x86_64: E: explicit-lib-dependency libvirt-daemon-config-nwfilter vdsm.x86_64: E: explicit-lib-dependency libvirt-lock-sanlock vdsm.x86_64: W: obsolete-not-provided vdsm-infra vdsm.x86_64: E: no-binary vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/mom.log vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/supervdsm.log vdsm.x86_64: W: conffile-without-noreplace-flag /var/log/vdsm/vdsm.log vdsm.x86_64: W: non-conffile-in-etc /etc/NetworkManager/conf.d/vdsm.conf vdsm.x86_64: W: non-conffile-in-etc /etc/modprobe.d/vdsm-bonding- modprobe.conf vdsm.x86_64: E: non-readable /etc/pki/vdsm/keys/libvirt_password 600 vdsm.x86_64: W: non-conffile-in-etc /etc/security/limits.d/99-vdsm.conf vdsm.x86_64: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm vdsm.x86_64: W: systemd-unit-in-etc /etc/systemd/system/libvirtd. service.d/unlimited-core.conf vdsm.x86_64: W: non-conffile-in-etc /etc/systemd/system/libvirtd. service.d/unlimited-core.conf vdsm.x86_64: E: zero-length /etc/vdsm/mom.d/01-parameters.policy vdsm.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/kvm2ovirt /usr/bin/env python vdsm.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/vm_migrate_hook.py /usr/bin/env python vdsm.x86_64: E: wrong-script-interpreter /usr/share/vdsm/virt/vm_migrate_hook.py /usr/bin/env python vdsm.x86_64: E: non-executable-script /usr/share/vdsm/virt/vm_migrate_hook.py 644 /usr/bin/env python vdsm.x86_64: E: non-standard-dir-perm /var/lib/libvirt/qemu/channels 775 vdsm.x86_64: E: non-standard-dir-perm /var/log/core 1777 vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/payload vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/sourceRoutes vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/trackedInterfaces vdsm.x86_64: E: dir-or-file-in-var-run /var/run/vdsm/v2v vdsm.x86_64: W: log-files-without-logrotate ['/var/log/core', '/var/log/vdsm'] vdsm.x86_64: W: dangerous-command-in-%pre rpm vdsm.x86_64: W: dangerous-command-in-%post chmod vdsm-api.noarch: E: wrong-script-interpreter /usr/lib/python2.7/site-packages/vdsm/api/vdsmapi.py /usr/bin/env python vdsm-api.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/vdsm/api/vdsmapi.py 644 /usr/bin/env python vdsm-cli.noarch: W: non-conffile-in-etc /etc/bash_completion.d/vdsClient vdsm-gluster.noarch: W: spelling-error %description -l en_US functionalities -> functionalists, functionality, functionalist vdsm-gluster.noarch: W: no-documentation vdsm-hook-allocate_net.noarch: W: summary-not-capitalized C random_network allocation hook for VDSM vdsm-hook-allocate_net.noarch: W: spelling-error %description -l en_US vms -> vs, ms, ems vdsm-hook-allocate_net.noarch: W: no-documentation vdsm-hook-allocate_net.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_device_create/10_allocate_net /usr/bin/env python vdsm-hook-checkimages.noarch: W: no-documentation vdsm-hook-checkips.x86_64: W: no-documentation vdsm-hook-checkips.x86_64: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/after_get_stats/10_checkips /usr/bin/env python vdsm-hook-checkips.x86_64: E: non-executable-script /usr/libexec/vdsm/hooks/after_get_stats/checkips_utils.py 644 /usr/bin/python2 vdsm-hook-diskunmap.noarch: W: spelling-error Summary(en_US) lun -> loon, lung, sun vdsm-hook-diskunmap.noarch: W: no-documentation vdsm-hook-diskunmap.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_vm_start/50_diskunmap /usr/bin/env python2 vdsm-hook-ethtool-options.noarch: W: spelling-error Summary(en_US) nics -> incs, mics, nicks vdsm-hook-ethtool-options.noarch: W: spelling-error %description -l en_US nics -> incs, mics, nicks vdsm-hook-ethtool-options.noarch: W: no-documentation vdsm-hook-ethtool-options.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/after_network_setup/30_ethtool_options /usr/bin/env python vdsm-hook-extnet.noarch: W: spelling-error Summary(en_US) vNIC -> Venice vdsm-hook-extnet.noarch: W: spelling-error Summary(en_US) libvirt -> liberty, ovirt vdsm-hook-extnet.noarch: W: spelling-error %description -l en_US vNIC -> Venice vdsm-hook-extnet.noarch: W: spelling-error %description -l en_US libvirt -> liberty, ovirt vdsm-hook-extnet.noarch: W: spelling-error %description -l en_US openvswitch -> switchboard vdsm-hook-extnet.noarch: W: no-documentation vdsm-hook-extra-ipv4-addrs.x86_64: W: summary-ended-with-dot C Set extra ipv4 addresses for vdsm networks. vdsm-hook-extra-ipv4-addrs.x86_64: W: no-documentation 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 vdsm-hook-fakesriov.x86_64: W: spelling-error %description -l en_US hostdevListByCaps vdsm-hook-fakesriov.x86_64: W: spelling-error %description -l en_US sriov -> Rios vdsm-hook-fakesriov.x86_64: W: spelling-error %description -l en_US conf -> con, cone, cons vdsm-hook-fakesriov.x86_64: W: no-documentation vdsm-hook-fakevmstats.noarch: W: spelling-error %description -l en_US vmstats -> stats vdsm-hook-fakevmstats.noarch: W: spelling-error %description -l en_US conf -> con, cone, cons vdsm-hook-fakevmstats.noarch: W: no-documentation vdsm-hook-faqemu.noarch: W: spelling-error Summary(en_US) qemu -> emu, q emu vdsm-hook-faqemu.noarch: W: spelling-error %description -l en_US kvm -> km vdsm-hook-faqemu.noarch: W: spelling-error %description -l en_US conf -> con, cone, cons vdsm-hook-faqemu.noarch: W: no-documentation vdsm-hook-fcoe.noarch: W: no-documentation vdsm-hook-fcoe.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_network_setup/50_fcoe /bin/env python vdsm-hook-fileinject.noarch: W: no-documentation vdsm-hook-floppy.noarch: W: no-documentation vdsm-hook-hostusb.noarch: W: no-documentation vdsm-hook-hostusb.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_hostusb 440 vdsm-hook-hostusb.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_hostusb vdsm-hook-httpsisoboot.noarch: W: spelling-error Summary(en_US) https -> HTTP vdsm-hook-httpsisoboot.noarch: W: spelling-error %description -l en_US https -> HTTP vdsm-hook-httpsisoboot.noarch: W: spelling-error %description -l en_US http -> HTTP vdsm-hook-httpsisoboot.noarch: W: no-documentation vdsm-hook-hugepages.noarch: W: summary-ended-with-dot C Huge pages enable user to handle VM with 2048KB page files. vdsm-hook-hugepages.noarch: W: no-documentation vdsm-hook-hugepages.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_hugepages 440 vdsm-hook-hugepages.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_hugepages vdsm-hook-ipv6.noarch: W: no-documentation vdsm-hook-ipv6.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_network_setup/50_ipv6 /usr/bin/env python2 vdsm-hook-isolatedprivatevlan.noarch: W: spelling-error %description -l en_US ip -> pi, up, op vdsm-hook-isolatedprivatevlan.noarch: W: spelling-error %description -l en_US filterref -> filter ref, filter-ref, filterer vdsm-hook-isolatedprivatevlan.noarch: W: spelling-error %description -l en_US xml -> XML, ml, x ml vdsm-hook-isolatedprivatevlan.noarch: W: no-documentation vdsm-hook-isolatedprivatevlan.noarch: E: executable-marked-as-config-file /etc/libvirt/nwfilter/isolatedprivatevlan-vdsm.xml vdsm-hook-isolatedprivatevlan.noarch: E: script-without-shebang /etc/libvirt/nwfilter/isolatedprivatevlan-vdsm.xml vdsm-hook-localdisk.noarch: W: spelling-error %description -l en_US lvm -> lvi, lam, Lvov vdsm-hook-localdisk.noarch: W: only-non-binary-in-usr-lib vdsm-hook-localdisk.noarch: W: no-documentation vdsm-hook-localdisk.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_localdisk 440 vdsm-hook-localdisk.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_localdisk vdsm-hook-macbind.noarch: W: spelling-error Summary(en_US) vNIC -> Venice vdsm-hook-macbind.noarch: W: spelling-error %description -l en_US vNIC -> Venice vdsm-hook-macbind.noarch: W: no-documentation vdsm-hook-macbind.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_vm_start/50_macbind /usr/bin/env python2 vdsm-hook-macspoof.noarch: W: spelling-error %description -l en_US vnics -> conics vdsm-hook-macspoof.noarch: W: no-documentation vdsm-hook-nestedvt.noarch: W: spelling-error %description -l en_US virtualization -> visualization, actualization, vitalization vdsm-hook-nestedvt.noarch: W: spelling-error %description -l en_US kvm -> km vdsm-hook-nestedvt.noarch: W: no-documentation vdsm-hook-nestedvt.noarch: W: non-conffile-in-etc /etc/modprobe.d/vdsm-nestedvt.conf vdsm-hook-noipspoof.noarch: W: no-documentation vdsm-hook-numa.noarch: W: spelling-error %description -l en_US xml -> XML, ml, x ml vdsm-hook-numa.noarch: W: no-documentation vdsm-hook-openstacknet.noarch: W: spelling-error Summary(en_US) vNICs -> conics vdsm-hook-openstacknet.noarch: W: spelling-error %description -l en_US vNICs -> conics vdsm-hook-openstacknet.noarch: W: no-documentation vdsm-hook-openstacknet.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_openstacknet 440 vdsm-hook-openstacknet.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_openstacknet vdsm-hook-openstacknet.noarch: E: wrong-script-interpreter /usr/libexec/vdsm/hooks/before_device_migrate_destination/50_openstacknet /usr/bin/env python2 vdsm-hook-pincpu.noarch: W: no-documentation vdsm-hook-promisc.noarch: W: no-documentation vdsm-hook-promisc.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_promisc 440 vdsm-hook-promisc.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_promisc vdsm-hook-qemucmdline.noarch: W: spelling-error Summary(en_US) cmdline -> decline vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US cmdline -> decline vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US libvirt's -> liberty's vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US qemu -> emu, q emu vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US commandline -> command line, command-line, commandment vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US xml -> XML, ml, x ml vdsm-hook-qemucmdline.noarch: W: spelling-error %description -l en_US namespace -> name space, name-space, names pace vdsm-hook-qemucmdline.noarch: W: no-documentation vdsm-hook-qos.noarch: W: no-documentation vdsm-hook-scratchpad.noarch: W: no-documentation vdsm-hook-smbios.noarch: W: spelling-error Summary(en_US) libvirt -> liberty, ovirt vdsm-hook-smbios.noarch: W: spelling-error %description -l en_US libvirt -> liberty, ovirt vdsm-hook-smbios.noarch: W: no-documentation vdsm-hook-spiceoptions.noarch: W: spelling-error Summary(en_US) vm -> cm, v, m vdsm-hook-spiceoptions.noarch: W: no-documentation vdsm-hook-vfio-mdev.noarch: W: summary-ended-with-dot C Hook to enable mdev-capable devices. vdsm-hook-vfio-mdev.noarch: W: no-documentation vdsm-hook-vhostmd.noarch: W: no-documentation vdsm-hook-vhostmd.noarch: E: non-readable /etc/sudoers.d/50_vdsm_hook_vhostmd 440 vdsm-hook-vhostmd.noarch: W: non-conffile-in-etc /etc/sudoers.d/50_vdsm_hook_vhostmd vdsm-hook-vmdisk.noarch: W: no-documentation vdsm-hook-vmfex.noarch: W: summary-not-capitalized C vmfex support for VDSM vdsm-hook-vmfex.noarch: W: no-documentation vdsm-hook-vmfex-dev.noarch: W: spelling-error Summary(en_US) vNIC -> Venice vdsm-hook-vmfex-dev.noarch: W: spelling-error %description -l en_US vNIC -> Venice vdsm-hook-vmfex-dev.noarch: W: spelling-error %description -l en_US macvtap -> madcap vdsm-hook-vmfex-dev.noarch: W: no-documentation vdsm-jsonrpc.noarch: W: spelling-error %description -l en_US libvdsm -> liberalism vdsm-jsonrpc.noarch: W: obsolete-not-provided vdsm-api vdsm-jsonrpc.noarch: W: no-documentation vdsm-python.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/vdsm/tool/dummybr.py 644 /usr/bin/python2 vdsm-python.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/vdsm/tool/nwfilter.py 644 /usr/bin/python2 vdsm-python.noarch: W: dangerous-command-in-%post rm vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/alignmentScanTests.py 644 /usr/bin/python2 vdsm-tests.noarch: E: wrong-script-interpreter /usr/share/vdsm/tests/fake-ssh-add /usr/bin/env python vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/fake-ssh-add 644 /usr/bin/env python vdsm-tests.noarch: E: wrong-script-interpreter /usr/share/vdsm/tests/fake-ssh-agent /usr/bin/env python vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/fake-ssh-agent 644 /usr/bin/env python vdsm-tests.noarch: E: wrong-script-interpreter /usr/share/vdsm/tests/fake-virt-v2v /usr/bin/env python vdsm-tests.noarch: E: non-executable-script /usr/share/vdsm/tests/fake-virt-v2v 644 /usr/bin/env python vdsm-tests.noarch: E: script-without-shebang /usr/share/vdsm/tests/ testValidation.py vdsm-tests.noarch: E: zero-length /usr/share/vdsm/tests/ toolTests_empty.conf vdsm-xmlrpc.noarch: W: spelling-error %description -l en_US vdsmd vdsm-xmlrpc.noarch: W: spelling-error %description -l en_US vdsClient -> clientele vdsm-xmlrpc.noarch: W: no-documentation vdsm-yajsonrpc.noarch: W: no-documentation 48 packages and 1 specfiles checked; 49 errors, 120 warnings.
--
SANDRO BONAZZOLA
ASSOCIATE MANAGER, SOFTWARE ENGINEERING, EMEA ENG VIRTUALIZATION R&D
Red Hat EMEA <https://www.redhat.com/> <https://red.ht/sig> TRIED. TESTED. TRUSTED. <https://redhat.com/trusted> <http://www.teraplan.it/redhat-osd-2017/>
_______________________________________________ Devel mailing list Devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/devel
participants (4)
-
Dan Kenigsberg
-
Nir Soffer
-
Sandro Bonazzola
-
Yaniv Kaul