Bug 915009

Summary: Review Request: rubygem-ruby-pcap - Ruby interface to LBL Packet Capture library.
Product: [Fedora] Fedora Reporter: Sam Kottler <skottler>
Component: Package ReviewAssignee: Rick Elrod <relrod>
Status: CLOSED DEFERRED QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: ohadlevy, package-review, relrod
Target Milestone: ---Flags: relrod: fedora-review?
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-06-25 16:46:46 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 Sam Kottler 2013-02-24 03:23:36 UTC
Spec URL: http://skottler.fedorapeople.org//rubygem-ruby-pcap.spec
SRPM URL: http://skottler.fedorapeople.org//rubygem-ruby-pcap-0.7.8-1.fc18.src.rpm

Description:
Ruby interface to LBL Packet Capture library. This library also includes
classes to access packet header fields.

Comment 1 Sam Kottler 2013-02-24 03:23:42 UTC
This package built on koji:  http://koji.fedoraproject.org/koji/taskinfo?taskID=5049110

Comment 2 Rick Elrod 2013-03-27 01:07:26 UTC
Here's a first go - Biggest thing is incorrect `License:` field. Other than that, a few rpmlint messages that should be fairly easy to fix.

Package Review
==============

Key:
[x] = Pass
[!] = Fail
[-] = Not applicable
[?] = Not evaluated
[ ] = Manual review needed


Issues:
=======
- License field seems off. https://github.com/ickymettle/ruby-pcap/blob/master/COPYING is GPLv2.
- rpmlint messages

===== MUST items =====

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[-]: Development files must be in a -devel package
[-]: Package requires other packages for directories it uses.
[x]: Package uses nothing in %doc for runtime.
[x]: Package is not known to require ExcludeArch.
[x]: Fully versioned dependency in subpackages, if present.
[x]: Package complies to the Packaging Guidelines
[!]: License field in the package spec file matches the actual license.
[-]: License file installed when any subpackage combination is installed.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Each %files section contains %defattr if rpm < 4.4
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Spec file lacks Packager, Vendor, PreReq tags.
[x]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package do not use a name that already exist
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as provided
     in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Large documentation must go in a -doc subpackage.
     Note: Documentation size is 0 bytes in 0 files.
[x]: Packages must not store files under /srv, /opt or /usr/local
[x]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).

Ruby:
[x]: Platform dependent files must all go under %{gem_extdir}, platform
     independent under %{gem_dir}.
[x]: Gem package is named rubygem-%{gem_name}
[x]: Package contains BuildRequires: rubygems-devel.
[x]: Gem package must define %{gem_name} macro.
[x]: Package contains Requires: ruby(abi).

===== SHOULD items =====

Generic:
[-]: If the source package does not include license text(s) as a separate file
     from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[-]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed files.
[x]: Sources can be downloaded from URI in Source: tag
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: Dist tag is present.
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: SourceX tarball generation or download is documented.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define.

Ruby:
[x]: Specfile should use macros from rubygem-devel package.
[-]: Test suite of the library should be run.
[x]: Gem package should exclude cached Gem.

===== EXTRA items =====

Generic:
[x]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: rubygem-ruby-pcap-0.7.8-1.fc17.x86_64.rpm
          rubygem-ruby-pcap-doc-0.7.8-1.fc17.noarch.rpm
rubygem-ruby-pcap.x86_64: W: summary-ended-with-dot C Ruby interface to LBL Packet Capture library.
rubygem-ruby-pcap.x86_64: W: no-soname /usr/lib64/gems/exts/ruby-pcap-0.7.8/lib/pcap.so
rubygem-ruby-pcap.x86_64: W: no-documentation
rubygem-ruby-pcap.x86_64: E: version-control-internal-file /usr/share/gems/gems/ruby-pcap-0.7.8/.gitignore
rubygem-ruby-pcap.x86_64: E: incorrect-fsf-address /usr/share/gems/gems/ruby-pcap-0.7.8/COPYING
2 packages and 0 specfiles checked; 2 errors, 3 warnings.




Rpmlint (installed packages)
----------------------------
# rpmlint rubygem-ruby-pcap rubygem-ruby-pcap-doc
rubygem-ruby-pcap.x86_64: W: summary-ended-with-dot C Ruby interface to LBL Packet Capture library.
rubygem-ruby-pcap.x86_64: W: no-soname /usr/lib64/gems/exts/ruby-pcap-0.7.8/lib/pcap.so
rubygem-ruby-pcap.x86_64: W: unused-direct-shlib-dependency /usr/lib64/gems/exts/ruby-pcap-0.7.8/lib/pcap.so /lib64/librt.so.1
rubygem-ruby-pcap.x86_64: W: unused-direct-shlib-dependency /usr/lib64/gems/exts/ruby-pcap-0.7.8/lib/pcap.so /lib64/libdl.so.2
rubygem-ruby-pcap.x86_64: W: unused-direct-shlib-dependency /usr/lib64/gems/exts/ruby-pcap-0.7.8/lib/pcap.so /lib64/libcrypt.so.1
rubygem-ruby-pcap.x86_64: W: unused-direct-shlib-dependency /usr/lib64/gems/exts/ruby-pcap-0.7.8/lib/pcap.so /lib64/libm.so.6
rubygem-ruby-pcap.x86_64: W: no-documentation
rubygem-ruby-pcap.x86_64: E: version-control-internal-file /usr/share/gems/gems/ruby-pcap-0.7.8/.gitignore
rubygem-ruby-pcap.x86_64: E: incorrect-fsf-address /usr/share/gems/gems/ruby-pcap-0.7.8/COPYING
2 packages and 0 specfiles checked; 2 errors, 7 warnings.
# echo 'rpmlint-done:'



Requires
--------
rubygem-ruby-pcap (rpmlib, GLIBC filtered):
    /usr/bin/env
    libc.so.6()(64bit)
    libcrypt.so.1()(64bit)
    libdl.so.2()(64bit)
    libm.so.6()(64bit)
    libpcap.so.1()(64bit)
    libpthread.so.0()(64bit)
    librt.so.1()(64bit)
    libruby.so.1.9()(64bit)
    rtld(GNU_HASH)
    ruby(abi)
    ruby(rubygems)

rubygem-ruby-pcap-doc (rpmlib, GLIBC filtered):
    rubygem-ruby-pcap



Provides
--------
rubygem-ruby-pcap:
    pcap.so()(64bit)
    rubygem(ruby-pcap)
    rubygem-ruby-pcap
    rubygem-ruby-pcap(x86-64)

rubygem-ruby-pcap-doc:
    rubygem-ruby-pcap-doc



Unversioned so-files
--------------------
rubygem-ruby-pcap: /usr/lib64/gems/exts/ruby-pcap-0.7.8/lib/pcap.so

MD5-sum check
-------------
http://rubygems.org/gems/ruby-pcap-0.7.8.gem :
  CHECKSUM(SHA256) this package     : 932582986bfbfea29e8c66f3985a948f45af98320477ad8dd75237aab9fc3521
  CHECKSUM(SHA256) upstream package : 932582986bfbfea29e8c66f3985a948f45af98320477ad8dd75237aab9fc3521

Comment 3 Rick Elrod 2013-04-04 02:26:03 UTC
Another note, if you're not planning on including this in EPEL, you should probably consider using %gem_install (a macro provided by rubygems-devel) to replace these lines:

    export CONFIGURE_ARGS="--with-cflags='%{optflags}'"
    
    gem install --local --install-dir ./%{gem_dir} \
                -V \
                --force %{gem_name}-%{version}.gem