On Wed, Oct 25, 2017 at 9:33 AM Sandro Bonazzola <[email protected]> wrote:
> 2017-10-20 20:05 GMT+02:00 Yaniv Kaul <[email protected]>: > >> >> >> On Fri, Oct 20, 2017 at 7:56 PM, Nir Soffer <[email protected]> wrote: >> >>> On Fri, Oct 20, 2017 at 11:37 AM Sandro Bonazzola <[email protected]> >>> 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 >>>> [email protected] >>>> http://lists.ovirt.org/mailman/listinfo/devel >>> >>> >>> _______________________________________________ >>> Devel mailing list >>> [email protected] >>> 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/> >
_______________________________________________ Devel mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/devel
