Bug 433418

Summary: Review Request: librdmacm - Userspace RDMA Connection Manager
Product: [Fedora] Fedora Reporter: Roland Dreier <rolandd>
Component: Package ReviewAssignee: Jason Tibbitts <j>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, notting
Target Milestone: ---Flags: j: fedora-review+
kevin: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-02-24 17:27:29 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 Roland Dreier 2008-02-19 05:55:14 UTC
Spec URL: http://digitalvampire.org/fedora/librdmacm.spec
SRPM URL: http://digitalvampire.org/fedora/librdmacm-1.0.6-1.fc8.src.rpm
Description: 
librdmacm is a library that allows applications to set up reliable
connected and unreliable datagram transfers when using RDMA adapters.
It provides a transport-neutral interface in the sense that the same
code can be used for both InfiniBand and iWARP adapters.  The
interface is based on sockets, but adapted for queue pair (QP) based
semantics: communication must use a specific RDMA device, and data
transfers are message-based.

librdmacm only provides communication management (connection setup
and tear-down) and works in conjunction with the verbs interface
provided by libibverbs, which provides the interface used to actually
transfer data.

Comment 1 Jason Tibbitts 2008-02-19 18:58:46 UTC
This fails to build for me:

checking for ibv_get_device_list in -libverbs... no
configure: error: ibv_get_device_list() not found.  librdmacm requires libibverbs.
error: Bad exit status from /var/tmp/rpm-tmp.55809 (%build)

I added a build dependency on libibverbs-devel and it built OK with no
complaints from rpmlint.  Full review forthcoming...

Comment 2 Roland Dreier 2008-02-20 04:28:30 UTC
oops, sorry about that... I've only tested on my development systems, which all
have libibverbs-devel.

I've added

BuildRequires: libibverbs-devel >= 1.1-1

to my spec file, thanks.

Comment 3 Jason Tibbitts 2008-02-21 04:55:35 UTC
Unfortunately rawhide ended up breaking so when I got back to this I couldn't
build it.  I'll get back to it as soon as rawhide unbreaks.

Comment 4 Jason Tibbitts 2008-02-21 20:56:39 UTC
OK, rawhide unbroke and I finally managed to get my local mirror updated.  So
it's clear, I'm reviewing the package with the libiverbs-devel dependency
included.

This package includes a static libarary.  That's OK (it's discouraged but
still left to the maintainer's discretion) but we have a few guidelines to
follow.  Specifically, the static library needs to be in a separate -static
package.  See the "Packaging Static Libraries" section of
http://fedoraproject.org/wiki/Packaging/Guidelines for more info.

* source files match upstream:
   6ce541b0de7752d87782901ffe45a2035eb499a548f80a278e8ce5102d032148
   librdmacm-1.0.6.tar.gz
* package meets naming and versioning guidelines.
* specfile is properly named, is cleanly written and uses macros consistently.
* summary is OK.
* description is OK.
* dist tag is present.
* build root is OK.
* license field matches the actual license.
* license is open source-compatible.
* license text included in package.
* latest version is being packaged.
* BuildRequires are proper.
* compiler flags are appropriate.
* %clean is present.
* package builds in mock (rawhide, x86_64).
* package installs properly
* debuginfo package looks complete.
* rpmlint is silent.
* final provides and requires are sane:
  librdmacm-1.0.6-1.fc9.x86_64.rpm
   librdmacm.so.1()(64bit)
   librdmacm.so.1(RDMACM_1.0)(64bit)
   librdmacm = 1.0.6-1.fc9
  =
   /sbin/ldconfig
   libibverbs.so.1()(64bit)
   libibverbs.so.1(IBVERBS_1.0)(64bit)
   libibverbs.so.1(IBVERBS_1.1)(64bit)
   librdmacm.so.1()(64bit)

  librdmacm-devel-1.0.6-1.fc9.x86_64.rpm
   librdmacm-devel = 1.0.6-1.fc9
  =
   /usr/include/infiniband/verbs.h
   librdmacm = 1.0.6-1.fc9
   librdmacm.so.1()(64bit)

  librdmacm-utils-1.0.6-1.fc9.x86_64.rpm
   librdmacm-utils = 1.0.6-1.fc9
  =
   libibverbs.so.1()(64bit)
   libibverbs.so.1(IBVERBS_1.0)(64bit)
   libibverbs.so.1(IBVERBS_1.1)(64bit)
   librdmacm = 1.0.6-1.fc9
   librdmacm.so.1()(64bit)
   librdmacm.so.1(RDMACM_1.0)(64bit)

* %check is not present because there's no updates.  I have no idea how to
  actually test this, although I did run the installed binaries and verified
  that they either printed help messages or complained about lack of
  infiniband hardware.
* shared libraries installed; ldconfig called properly.
* unversioned so files are in the -devel package.
* owns the directories it creates.
* doesn't own any directories it shouldn't.
* no duplicates in %files.
* file permissions are appropriate.
* scriptlets are OK (ldconfig).
* code, not content.
* documentation is small, so no -doc subpackage is necessary.
* %docs are not necessary for the proper functioning of the package.
* headers are in the -devel package.
* no pkgconfig files.
X static libraries are present but not in a -static package.
* no libtool .la files.


Comment 5 Roland Dreier 2008-02-23 04:31:19 UTC
Thanks for the review -- sorry for the glitches.  I just uploaded new packages:

Spec URL: http://digitalvampire.org/fedora/librdmacm.spec
SRPM URL: http://digitalvampire.org/fedora/librdmacm-1.0.6-2.fc8.src.rpm

which should fix both the issues you found:

* Fri Feb 22 2008 Roland Dreier <rdreier> - 1.0.6-2
- Spec file cleanups from Fedora review: add BuildRequires for
  libibverbs, and move the static library to -devel-static.

The only rpmlint complaint now is:

librdmacm-devel-static.x86_64: W: no-documentation

which I think is OK, because all the documentation just happens to be in other
packages.

Comment 6 Jason Tibbitts 2008-02-23 04:40:45 UTC
Looks good except the name of the static lib package should be just
librdmacm-static.  But just three trivial changes to the spec which you can
easily make when you check in, so:

APPROVED

Comment 7 Roland Dreier 2008-02-23 17:30:09 UTC
New Package CVS Request
=======================
Package Name: librdmacm
Short Description: Userspace RDMA Connection Manager
Owners: rolandd
Branches: F-7 F-8
InitialCC: 
Cvsextras Commits: yes


Comment 8 Kevin Fenzi 2008-02-24 04:22:57 UTC
cvs done.

Comment 9 Roland Dreier 2008-02-24 17:27:29 UTC
Successfully built.