On Fri, Oct 20, 2017 at 11:37 AM Sandro Bonazzola
<sbonazzo(a)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?
> 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(a)ovirt.org
>
http://lists.ovirt.org/mailman/listinfo/devel
_______________________________________________
Devel mailing list
Devel(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/devel