[Bug 730888] Review Request: nagios-plugins-rhev - Nagios Plugin to monitor RHEV

bugzilla at redhat.com bugzilla at redhat.com
Tue Aug 23 19:49:38 UTC 2011

Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug.


James Laska <jlaska at redhat.com> changed:

           What    |Removed                     |Added
               Flag|                            |needinfo?(dougsland at redhat.
                   |                            |com)

--- Comment #2 from James Laska <jlaska at redhat.com> 2011-08-23 15:49:36 EDT ---
> [ WARN ] MUST: rpmlint must be run on every package

# rpmlint nagios-plugins-rhev.spec 
0 packages and 1 specfiles checked; 0 errors, 0 warnings.

# rpmlint
1 packages and 0 specfiles checked; 0 errors, 0 warnings.

# rpmlint
nagios-plugins-rhev.src: W: file-size-mismatch nagios-plugins-rhev-1.0.0.tar.gz
= 9403,
= 1
1 packages and 0 specfiles checked; 0 errors, 1 warnings.

> [  OK  ] MUST: The package must be named according to the Package Naming 
>          Guidelines
> [  OK  ] MUST: The spec file name must match the base package %{name} [...]
> [      ] MUST: The package must meet the Packaging Guidelines
> [  OK  ] MUST: The package must be licensed with a Fedora approved license
>          and meet the Licensing Guidelines
> [ WARN ] MUST: The License field in the package spec file must match the 
>          actual license

The upstream project page shows, GPLv2 while the .spec lists GPLv2+.  I don't
believe those are in conflict

> [  OK  ] MUST: If (and only if) the source package includes the text of the 
>          license(s) in its own file, then that file, containing the text of 
>          the license(s) for the package must be included in %doc

COPYING is included in %doc

> [  OK  ] MUST: The spec file must be written in American English.
> [  OK  ] MUST: The spec file for the package MUST be legible.
> [  OK  ] MUST: The sources used to build the package must match the upstream 
>          source, as provided in the spec URL. Reviewers should use md5sum for 
>          this task. If no upstream URL can be specified for this package, 
>          please see the Source URL Guidelines for how to deal with this.

# rpm2cpio nagios-plugins-rhev-1.0.0-1.fc15.src.rpm | cpio -id
23 blocks
# md5sum nagios-plugins-rhev-1.0.0.tar.gz
85fa94a6bcbf1937ecdf3bd010867559  nagios-plugins-rhev-1.0.0.tar.gz

# curl
2>/dev/null | md5sum
987d8ef38a72cdc8811a5752825c160a  -

> [  OK  ] MUST: The package MUST successfully compile and build into binary 
>          rpms on at least one primary architecture

Built using mock for -r fedora-16-x86_64

> [ N/A  ] MUST: If the package does not successfully compile, build or work on 
>          an architecture, then those architectures should be listed in the 
>          spec in ExcludeArch. Each architecture listed in ExcludeArch MUST 
>          have a bug filed in bugzilla, describing the reason that the package 
>          does not compile/build/work on that architecture. The bug number MUST 
>          be placed in a comment, next to the corresponding ExcludeArch line
> [ WARN ] MUST: All build dependencies must be listed in BuildRequires, except 
>          for any that are listed in the exceptions section of the Packaging 
>          Guidelines ; inclusion of those as BuildRequires is optional. Apply 
>          common sense.

Should python-paramiko be listed as a Requires?  It is imported from within
check_rhev.  I assume this is a runtime requirement, not a build requirement? 
Or perhaps both?

> [ N/A  ] MUST: The spec file MUST handle locales properly. This is done by 
>          using the %find_lang macro. Using %{_datadir}/locale/* is strictly 
>          forbidden
> [ N/A  ] MUST: Every binary RPM package (or subpackage) which stores shared 
>          library files (not just symlinks) in any of the dynamic linker's 
>          default paths, must call ldconfig in %post and %postun.
> [ N/A  ] MUST: If the package is designed to be relocatable, the packager must 
>          state this fact in the request for review, along with the 
>          rationalization for relocation of that specific package. Without 
>          this, use of Prefix: /usr is considered a blocker.
> [ FAIL ] MUST: A package must own all directories that it creates. If it does 
>          not create a directory that it uses, then it should require a package 
>          which does create that directory.

This package should "Requires: nagios-plugins" to ensure that
{_libdir}/nagios/plugins is available upon install.

> [  OK  ] MUST: A package must not contain any duplicate files in the %files 
>          listing.
> [  OK ] MUST: Permissions on files must be set properly. Executables should 
>          be set with executable permissions, for example. Every %files section 
>          must include a %defattr(...) line.
> [  OK  ] MUST: Each package must have a %clean section, which contains rm -rf
>          %{buildroot} (or $RPM_BUILD_ROOT).
> [  OK  ] MUST: Each package must consistently use macros.
> [  OK  ] MUST: The package must contain code, or permissable content.
> [ N/A  ] MUST: Large documentation files must go in a -doc subpackage. (The 
>          definition of large is left up to the packager's best judgement, but 
>          is not restricted to size. Large can refer to either size or 
>          quantity).
> [  OK  ] MUST: If a package includes something as %doc, it must not affect the 
>          runtime of the application. To summarize: If it is in %doc, the 
>          program must run properly if it is not present.

Only documentation is included in %doc

> [ N/A  ] MUST: Header files must be in a -devel package.
> [ N/A  ] MUST: Static libraries must be in a -static package.
> [ N/A  ] MUST: Packages containing pkgconfig(.pc) files must 'Requires: 
>          pkgconfig' (for directory ownership and usability).
> [ N/A  ] MUST: If a package contains library files with a suffix (e.g. 
>          libfoo.so.1.1), then library files that end in .so (without suffix) 
>          must go in a -devel package.
> [ N/A  ] MUST: In the vast majority of cases, devel packages must require the 
>          base package using a fully versioned dependency: Requires: %{name} =
>          %{version}-%{release}
> [ N/A  ] MUST: Packages must NOT contain any .la libtool archives, these must 
>          be removed in the spec if they are built.
> [ N/A  ] MUST: Packages containing GUI applications must include a
>          %{name}.desktop file, and that file must be properly installed with 
>          desktop-file-install in the %install section. If you feel that your 
>          packaged GUI application does not need a .desktop file, you must put 
>          a comment in the spec file with your explanation.
> [  OK  ] MUST: Packages must not own files or directories already owned by 
>          other packages. The rule of thumb here is that the first package to 
>          be installed should own the files or directories that other packages 
>          may rely upon. This means, for example, that no package in Fedora 
>          should ever share ownership with any of the files or directories 
>          owned by the filesystem or man package. If you feel that you have a 
>          good reason to own a file or directory that another package owns, 
>          then please present that at package review time.
> [  OK  ] MUST: At the beginning of %install, each package MUST run rm -rf
>          %{buildroot} (or $RPM_BUILD_ROOT).
> [  OK  ] MUST: All filenames in rpm packages must be valid UTF-8.

> [  OK  ] SHOULD: If the source package does not include license text(s) as 
>          a separate file from upstream, the packager query upstream to include 
>          it.

License text included in COPYING file that comes with upstream tarball

> [ N/A  ] SHOULD: The description and summary sections in the package spec file
>         should contain translations for supported Non-English languages, if
>         available.
> [  OK  ] SHOULD: The reviewer should test that the package builds in mock.


> [ N/A  ] SHOULD: The package should compile and build into binary rpms on all
>         supported architectures.

It's a noarch package

> [  OK  ] SHOULD: The reviewer should test that the package functions as
>         described. A package should not segfault instead of running, for
>         example.

I didn't fully setup nagios or the plugin, but I did install and run the
check_rhev script manually.

> [ N/A  ] SHOULD: If scriptlets are used, those scriptlets must be sane. This is
>         vague, and left up to the reviewers judgement to determine sanity.
> [ N/A  ] SHOULD: Usually, subpackages other than devel should require the base
>         package using a fully versioned dependency.
> [ N/A  ] SHOULD: The placement of pkgconfig(.pc) files depends on their
>         usecase, and this is usually for development purposes, so should be
>         placed in a -devel pkg. A reasonable exception is that the main pkg
>         itself is a devel tool not installed in a user runtime, e.g. gcc or
>         gdb.
> [ N/A  ] SHOULD: If the package has file dependencies outside of /etc, /bin,
>         /sbin, /usr/bin, or /usr/sbin consider requiring the package which
>         provides the file instead of the file itself.
> [ WARN ] SHOULD: your package should contain man pages for binaries/scripts. If
>         it doesn't, work with upstream to add them where they make sense.[34]

Not a hard requirement, other nagios-plugins-* don't seem to provide manpages. 
It might be helpful to include a README

== Python ==

> [  OK  ] MUST: Python eggs must be built from source. They cannot simply drop an egg
>          from upstream into the proper directory. (See prebuilt binaries Guidelines 
>          for details)
> [  OK  ] MUST: Python eggs must not download any dependencies during the build
>          process.
> [ N/A  ] MUST: When building a compat package, it must install using 
>          easy_install -m so it won't conflict with the main package.
> [ N/A  ] MUST: When building multiple versions (for a compat package) one of the
>          packages must contain a default version that is usable via "import 
>          MODULE" with no prior setup. 

== Additional ==

Since you are also the upstream for this package, I poked around a bit more. 
Feel free to direct this feedback elsewhere.

[  WARN  ] - In the upstream setup.py included in the tarball, there appears to
be a copy'n'paste error.  Should the name be changed to:

- setup(name='python-confparser', version='1.0.0',
+ setup(name='nagios-plugins-rhev', version='1.0.0',

[  WARN  ] - It's worrisome to edit the check_rhev script directly to setup
configuration parameters.  Is it possible to setup some sort of
/etc/nagios/rhev.cfg (similar to how nrpe does) and add optparse support to
check_rhev so the admin can provide alternate configuration files?

Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

More information about the package-review mailing list