Bug 730888

Summary: Review Request: nagios-plugins-rhev - Nagios Plugin to monitor RHEV
Product: [Fedora] Fedora Reporter: Douglas Schilling Landgraf <dougsland>
Component: Package ReviewAssignee: James Laska <jlaska>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: jlaska, jturner, notting, package-review
Target Milestone: ---Flags: jlaska: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: nagios-plugins-rhev-1.0.0-2.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-09-07 00:02:52 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Douglas Schilling Landgraf 2011-08-16 06:33:41 UTC
Spec URL: https://github.com/dougsland/nagios-plugins-rhev/raw/master/nagios-plugins-rhev.spec
SRPM URL: https://github.com/dougsland/nagios-plugins-rhev/raw/master/nagios-plugins-rhev-1.0.0-1.fc15.src.rpm
Description: This plugin allow you to monitor your RHEV environment.

Comment 1 James Laska 2011-08-23 16:43:44 UTC
Taking ownership for package review ...

Comment 2 James Laska 2011-08-23 19:49:36 UTC
> [ 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 /var/lib/mock/fedora-16-x86_64/result/nagios-plugins-rhev-1.0.0-1.fc16.noarch.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.

# rpmlint /var/lib/mock/fedora-16-x86_64/result/nagios-plugins-rhev-1.0.0-1.fc16.src.rpm 
nagios-plugins-rhev.src: W: file-size-mismatch nagios-plugins-rhev-1.0.0.tar.gz = 9403, https://github.com/dougsland/nagios-plugins-rhev/raw/master/nagios-plugins-rhev-1.0.0.tar.gz = 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 https://github.com/dougsland/nagios-plugins-rhev/raw/master/nagios-plugins-rhev-1.0.0.tar.gz 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.

http://koji.fedoraproject.org/koji/taskinfo?taskID=3296515

> [ 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?

Comment 3 Douglas Schilling Landgraf 2011-08-24 03:46:57 UTC
Hello James,

      Thanks for your review, please see below my comments/fixes:

> [ 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.

Fixed.

> [ 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

File README is included already.

> [  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',

Fixed

> # 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
> https://github.com/dougsland/nagios-plugins-rhev/raw/master/nagios-plugins
>-rhev-1.0.0.tar.gz
> 2>/dev/null | md5sum
> 987d8ef38a72cdc8811a5752825c160a  -

Fixed

New files available:

https://github.com/dougsland/nagios-plugins-rhev/raw/master/nagios-plugins-rhev-1.0.0.tar.gz

https://github.com/dougsland/nagios-plugins-rhev/raw/master/nagios-plugins-rhev-1.0.0-2.fc15.src.rpm

Thanks
Douglas

Comment 4 Douglas Schilling Landgraf 2011-08-24 03:51:18 UTC
Forgot to share the spec url:

https://github.com/dougsland/nagios-plugins-rhev/raw/master/nagios-plugins-rhev.spec

Cheers
Douglas

Comment 5 James Laska 2011-08-24 13:04:11 UTC
Greetings Douglas!  Thanks for the quick turnaround on the suggested changes.  I have re-reviewed the nagios-plugins-rhev package, and it passes my review.  Feel free to request a new SCM branch according to the instructions at https://fedoraproject.org/wiki/Package_SCM_admin_requests.

Feedback on resolved issues below.

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

The above issue has been resolved

> > [ 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?

The above issue has been resolved

> [ 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.

The above issue has been resolved

> [  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.

The above issue has been resolved

$ md5sum nagios-plugins-rhev-1.0.0*tar*
cb19d63804fca11c99996d354bae4d5a  nagios-plugins-rhev-1.0.0.tar.gz
cb19d63804fca11c99996d354bae4d5a  nagios-plugins-rhev-1.0.0.tar.gz.upstream

> [ WARN ] MUST: rpmlint must be run on every package

The remaining warning regarding file-size-mismatch should not prevent this package from passing review.  I have initiated discussion on packaging@ regarding this issue, and it seems related to using github for Source URL's (or the http server/configuration on github).  To follow that discussion, refer to ...

https://lists.fedoraproject.org/pipermail/packaging/2011-August/007912.html

Comment 6 Douglas Schilling Landgraf 2011-08-24 17:59:14 UTC
New Package SCM Request
=======================
Package Name: nagios-plugins-rhev 
Short Description: Nagios Plugin - check_rhev
Owners: dougsland
Branches: F14 F15 F16 EL-5 EL-6

Comment 7 Gwyn Ciesla 2011-08-24 18:06:46 UTC
Git done (by process-git-requests).

Comment 8 Douglas Schilling Landgraf 2011-08-25 03:24:56 UTC
Thanks Jon and James!

Cheers
Douglas

Comment 9 Fedora Update System 2011-08-25 04:35:19 UTC
nagios-plugins-rhev-1.0.0-2.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/nagios-plugins-rhev-1.0.0-2.fc14

Comment 10 Fedora Update System 2011-08-25 04:44:43 UTC
nagios-plugins-rhev-1.0.0-2.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/nagios-plugins-rhev-1.0.0-2.fc15

Comment 11 Fedora Update System 2011-08-25 04:52:49 UTC
nagios-plugins-rhev-1.0.0-2.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/nagios-plugins-rhev-1.0.0-2.fc16

Comment 12 Fedora Update System 2011-08-25 05:03:22 UTC
nagios-plugins-rhev-1.0.0-2.el5 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/nagios-plugins-rhev-1.0.0-2.el5

Comment 13 Fedora Update System 2011-08-25 05:12:33 UTC
nagios-plugins-rhev-1.0.0-2.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/nagios-plugins-rhev-1.0.0-2.el6

Comment 14 Fedora Update System 2011-08-26 14:18:58 UTC
nagios-plugins-rhev-1.0.0-2.fc16 has been pushed to the Fedora 16 testing repository.

Comment 15 Fedora Update System 2011-09-07 00:02:47 UTC
nagios-plugins-rhev-1.0.0-2.fc14 has been pushed to the Fedora 14 stable repository.

Comment 16 Fedora Update System 2011-09-07 00:06:43 UTC
nagios-plugins-rhev-1.0.0-2.fc15 has been pushed to the Fedora 15 stable repository.

Comment 17 Fedora Update System 2011-09-07 03:45:29 UTC
nagios-plugins-rhev-1.0.0-2.fc16 has been pushed to the Fedora 16 stable repository.

Comment 18 Fedora Update System 2011-10-04 18:33:54 UTC
nagios-plugins-rhev-1.0.0-2.el5 has been pushed to the Fedora EPEL 5 stable repository.

Comment 19 Fedora Update System 2011-10-04 18:35:34 UTC
nagios-plugins-rhev-1.0.0-2.el6 has been pushed to the Fedora EPEL 6 stable repository.