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.
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...
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.
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.
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.
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.
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
New Package CVS Request ======================= Package Name: librdmacm Short Description: Userspace RDMA Connection Manager Owners: rolandd Branches: F-7 F-8 InitialCC: Cvsextras Commits: yes
cvs done.
Successfully built.