Bug 1404043 - Review Request: rdma-core - RDMA core userspace libraries and daemons
Summary: Review Request: rdma-core - RDMA core userspace libraries and daemons
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Honggang LI
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-12-12 23:14 UTC by Jarod Wilson
Modified: 2017-08-18 12:18 UTC (History)
11 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2017-08-14 07:45:26 UTC
Type: ---
Embargoed:
honli: fedora-review+


Attachments (Terms of Use)
proposed patch against the SPEC file linked in comment #6. (3.00 KB, patch)
2016-12-22 14:00 UTC, Honggang LI
no flags Details | Diff
Use %{?systemd_requires} macro (2.03 KB, patch)
2017-08-09 01:55 UTC, Honggang LI
no flags Details | Diff


Links
System ID Private Priority Status Summary Last Updated
IBM Linux Technology Center 157646 0 None None None 2019-05-05 08:40:24 UTC

Description Jarod Wilson 2016-12-12 23:14:51 UTC
Spec URL: http://people.redhat.com/~jwilson/pkgreview/rdma-core/rdma-core.spec
SRPM URL: http://people.redhat.com/~jwilson/pkgreview/rdma-core/rdma-core-12-1.fc26.src.rpm

Description: 
This is the userspace components for the Linux Kernel's drivers/infiniband subsystem. Specifically this contains the userspace libraries for the following device nodes:

/dev/infiniband/uverbsX (libibverbs)
/dev/infiniband/rdma_cm (librdmacm)
/dev/infiniband/umadX (libibumad)
/dev/infiniband/ucmX (libibcm, deprecated)
The userspace component of the libibverbs RDMA kernel drivers are included under the providers/ directory. Support for the following Kernel RDMA drivers is included:

iw_cxgb3.ko
iw_cxgb4.ko
hfi1.ko
hns-roce.ko
i40iw.ko
ib_qib.ko
mlx4_ib.ko
mlx5_ib.ko
ib_mthca.ko
iw_nes.ko
ocrdma.ko
qedr.ko
rdma_rxe.ko
Additional service daemons are provided for:

srp_daemon (ib_srp.ko)
iwpmd (for iwarp kernel providers)

Fedora Account System Username: jwilson

Comment 1 Jarod Wilson 2016-12-12 23:16:54 UTC
There isn't an upstream rdma-core release just yet, so the tarball was generated using:

$ git archive --prefix rdma-core-12/ --output ~/rpmbuild/SOURCES/rdma-core-12.tgz HEAD

A release corresponding to kernel 4.9 is expected soon, I believe.

Comment 2 Jarod Wilson 2016-12-21 15:39:52 UTC
From honli via email, pasting here for all to see:

Issue 1: see line 11
honli@dhcp47-85:~/b1404043/1404043-rdma-core/srpm-unpacked/rdma-core-12$ cat -n MAINTAINERS 
     1                            List of maintainers
     2
     3  Generally patches should be submitted to the main development mailing list:
     4
     5  linux-rdma.org
     6
     7  Descriptions of section entries:
     8          F: Files and directories with wildcard patterns.
     9             A trailing slash includes all files and subdirectory files.
    10             F:   providers/mlx4/ all files in and below providers/mlx4/
    11             F:   providers/*     all files in drivers/net, but not below <---- drivers/net???
    12             F:   */net/*         all files in "any top level directory"/net
    13             One pattern per line.  Multiple F: lines acceptable.



Issue 2: Why remove the manpage?
[honli@dhcp47-85 srp]$ diff -Nurp ./usr/lib/systemd/system/srp_daemon.service /home/honli/rhel-scm/srptools/srptools.service 
--- ./usr/lib/systemd/system/srp_daemon.service	2016-12-19 03:48:07.774866479 -0500
+++ /home/honli/rhel-scm/srptools/srptools.service	2016-04-11 21:33:29.905060849 -0400
@@ -1,6 +1,6 @@
 [Unit]
 Description=Start or stop the daemon that attaches to SRP devices
-Documentation=man:srp_daemon file:/etc/rdma/rdma.conf file:/etc/srp_daemon.conf
+Documentation=file:///etc/rdma/rdma.conf file:///etc/srp_daemon.conf
 DefaultDependencies=false
 Conflicts=emergency.target emergency.service
 Requires=rdma.service
[honli@dhcp47-85 srp]$ 

Issue 3: please use the new name
189 %description -n srp_daemon
190 In conjunction with the kernel ib_srp driver, srptools allows you to <--- s/srptools/srp_daemon/
191 discover and use SCSI devices via the SCSI RDMA Protocol over InfiniBand.


Issue 4: broken soft link (librdmacm-12-1.fc26.x86_64.rpm)?
/usr/lib64/rsocket
[honli@dhcp47-85 rsocket]$ ll
total 0
lrwxrwxrwx. 1 honli honli 15 Dec 20 00:37 librspreload.so.1 -> librspreload.so
lrwxrwxrwx. 1 honli honli 15 Dec 20 00:37 librspreload.so.1.0.0 -> librspreload.so



Issue 5: missing BuildRequires
dracut missing  libipathverbs,libmlx4
libnl3-devel, missing iwpmd libibverbs
systemd     missing iwpmd, ibacm, srptools
systemd-units missing
valgrind-devel yes

ibacm-devel
libibumad-devel
libibverbs-devel

chrpath missing
autoconf missing
automake, missing
libtool missing
glibc-static  missing  libibumad


Issue 6: missing "Requires: tags"
Please see comment-rdma-core.spec.

Question 1:
/usr/lib/systemd/system/srpd.service -->  /usr/lib/systemd/system/srp_daemon.service
The service had been named as "srpd" since 2009, should we keep the old name?

Question 2: why libibacmp.so.* removed for new ibacm-12-1.fc26 pkg? (libibcm.f26 keeps libibcm.so.1.0.12)
   14 /usr/lib64/ibacm/libibacmp.so                    |   14 /usr/lib64/ibacm/libibacmp.so
   15 /usr/lib64/ibacm/libibacmp.so.1                  |      -------------------------------------------------
   16 /usr/lib64/ibacm/libibacmp.so.1.0.0              |      -------------------------------------------------




Comment 1:
/etc/rc.d/init.d/srpd (delete it as RHEL7 and FC26  use systemd.)

Comment 2: iwpmd no longer start after syslog.target, as it does not write any log files. iwpmd send log message to /var/log/messages.
diff -Nurp iwpmd-1.0.6-2.el7/usr/lib/systemd/system/iwpmd.service iwpmd-12-1.fc26/usr/lib/systemd/system/iwpmd.service
--- iwpmd-1.0.6-2.el7/usr/lib/systemd/system/iwpmd.service      2016-12-19 20:55:43.377778756 -0500
+++ iwpmd-12-1.fc26/usr/lib/systemd/system/iwpmd.service        2016-12-19 20:56:55.874779421 -0500
@@ -1,12 +1,12 @@
 [Unit]
-Description=Starts the IWPMD daemon
-Documentation=file:///usr/share/doc/iwpmd/README
-After=network.target syslog.target  <---
+Description=iWarp Port Mapper
+Documentation=man:iwpmd file:/etc/iwpmd.conf
+After=network.target

Comment 3:
AUTHORS files had been removed, but we have a new file "MAINTAINERS" for such info.

Comment 3 Jarod Wilson 2016-12-21 19:34:53 UTC
(In reply to Jarod Wilson from comment #2)
> From honli via email, pasting here for all to see:
> 
> Issue 1: see line 11
> honli@dhcp47-85:~/b1404043/1404043-rdma-core/srpm-unpacked/rdma-core-12$ cat
> -n MAINTAINERS 
>      1                            List of maintainers
>      2
>      3  Generally patches should be submitted to the main development
> mailing list:
>      4
>      5  linux-rdma.org
>      6
>      7  Descriptions of section entries:
>      8          F: Files and directories with wildcard patterns.
>      9             A trailing slash includes all files and subdirectory
> files.
>     10             F:   providers/mlx4/ all files in and below
> providers/mlx4/
>     11             F:   providers/*     all files in drivers/net, but not
> below <---- drivers/net???

Upstream typo. Will send a patch.


> Issue 2: Why remove the manpage?
> [honli@dhcp47-85 srp]$ diff -Nurp
> ./usr/lib/systemd/system/srp_daemon.service
> /home/honli/rhel-scm/srptools/srptools.service 
> --- ./usr/lib/systemd/system/srp_daemon.service	2016-12-19
> 03:48:07.774866479 -0500
> +++ /home/honli/rhel-scm/srptools/srptools.service	2016-04-11
> 21:33:29.905060849 -0400
> @@ -1,6 +1,6 @@
>  [Unit]
>  Description=Start or stop the daemon that attaches to SRP devices
> -Documentation=man:srp_daemon file:/etc/rdma/rdma.conf
> file:/etc/srp_daemon.conf
> +Documentation=file:///etc/rdma/rdma.conf file:///etc/srp_daemon.conf
>  DefaultDependencies=false
>  Conflicts=emergency.target emergency.service
>  Requires=rdma.service

Already since resolved upstream, commit 9317fbb01ac2ef33a4570c66b1e651ab71d07b90.


> Issue 3: please use the new name
> 189 %description -n srp_daemon
> 190 In conjunction with the kernel ib_srp driver, srptools allows you to
> <--- s/srptools/srp_daemon/
> 191 discover and use SCSI devices via the SCSI RDMA Protocol over InfiniBand.

Will send a patch upstream.

> Issue 4: broken soft link (librdmacm-12-1.fc26.x86_64.rpm)?
> /usr/lib64/rsocket
> [honli@dhcp47-85 rsocket]$ ll
> total 0
> lrwxrwxrwx. 1 honli honli 15 Dec 20 00:37 librspreload.so.1 ->
> librspreload.so
> lrwxrwxrwx. 1 honli honli 15 Dec 20 00:37 librspreload.so.1.0.0 ->
> librspreload.so

This looks like an upstream problem, just doing a build in a freshly unpacked tree sans-rpm has similar results. I'll address it there.

> Issue 5: missing BuildRequires

This was better explained elsewhere, it's really just "don't explicitly list gcc" here, which I'll send a patch upstream for.

> Issue 6: missing "Requires: tags"
> Please see comment-rdma-core.spec.

Will address this separately shortly.

> Question 1:
> /usr/lib/systemd/system/srpd.service --> 
> /usr/lib/systemd/system/srp_daemon.service
> The service had been named as "srpd" since 2009, should we keep the old name?

I'd stick with following upstream.

> Question 2: why libibacmp.so.* removed for new ibacm-12-1.fc26 pkg?
> (libibcm.f26 keeps libibcm.so.1.0.12)
>    14 /usr/lib64/ibacm/libibacmp.so                    |   14
> /usr/lib64/ibacm/libibacmp.so
>    15 /usr/lib64/ibacm/libibacmp.so.1                  |     
> -------------------------------------------------
>    16 /usr/lib64/ibacm/libibacmp.so.1.0.0              |     
> -------------------------------------------------

This is an upstream change as well. I believe libibacmp is only intended for internal use by ibacm.

> Comment 1:
> /etc/rc.d/init.d/srpd (delete it as RHEL7 and FC26  use systemd.)

Confused here, I don't see this in the build. Or did you mean "this is getting removed from the old version, but it's fine"?

> Comment 2: iwpmd no longer start after syslog.target, as it does not write
> any log files. iwpmd send log message to /var/log/messages.
> diff -Nurp iwpmd-1.0.6-2.el7/usr/lib/systemd/system/iwpmd.service
> iwpmd-12-1.fc26/usr/lib/systemd/system/iwpmd.service
> --- iwpmd-1.0.6-2.el7/usr/lib/systemd/system/iwpmd.service      2016-12-19
> 20:55:43.377778756 -0500
> +++ iwpmd-12-1.fc26/usr/lib/systemd/system/iwpmd.service        2016-12-19
> 20:56:55.874779421 -0500
> @@ -1,12 +1,12 @@
>  [Unit]
> -Description=Starts the IWPMD daemon
> -Documentation=file:///usr/share/doc/iwpmd/README
> -After=network.target syslog.target  <---
> +Description=iWarp Port Mapper
> +Documentation=man:iwpmd file:/etc/iwpmd.conf
> +After=network.target

Is this another "this is a change to take note of" thing? Just using the upstream .service file here.

> Comment 3:
> AUTHORS files had been removed, but we have a new file "MAINTAINERS" for
> such info.

Indeed.

Comment 4 Jarod Wilson 2016-12-21 19:45:08 UTC
Spec file comments from honli:

Url: https://github.com/linux-rdma/rdma-core
honli: https://fedoraproject.org/wiki/Packaging:SourceURL#When_Upstream_uses_Prohibited_Code
honli: Please add comment for the "Source:" tag.
Source: rdma-core-%{version}.tgz

BuildRequires: binutils
BuildRequires: cmake >= 2.8.11
BuildRequires: gcc
BuildRequires: libudev-devel
BuildRequires: pkgconfig
BuildRequires: pkgconfig(libnl-3.0)
BuildRequires: pkgconfig(libnl-route-3.0)
BuildRequires: valgrind-devel

honli: libnl3-devel is required for iwpmd libibverbs
honli: systemd and dracut also needed.

honli: You also delete a few necessary "Requires:" tags.
honli:  Please see review-comment.txt for details.

%description
RDMA core userspace infrastructure and documentation.
honli: I know this is an upstream issue. This is %description
honli: section is too simple, in other words, it is meaningless.
honli: If you do not have good %description section, I suggest
honli: you copy and paste https://bugzilla.redhat.com/show_bug.cgi?id=1404043#c0
honli: At least, user will know what is the package after read that.

%package -n libibverbs
Summary: A library and drivers for direct userspace use of RDMA (InfiniBand/iWARP) hardware
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
Requires: rdma-core
honli: Even over 99% files are stext files, rdma-core contains /usr/sbin/rdma-ndd,
honli: which is an ELF file, so rdma-core is not a noarch rpm. Please replace all
honli: "Requires: rdma-core" with "Requires: %{name}%{?_isa} = %{version}-%{release}"

%description -n srp_daemon
In conjunction with the kernel ib_srp driver, srptools allows you to
honli: should replace srptools with srp_daemon in above line?
discover and use SCSI devices via the SCSI RDMA Protocol over InfiniBand.

%prep
%setup
honli: %setup -q ???
%build

%postun -n ibacm
%systemd_postun_with_restart ibacm.service

honli: Why you only run systemd_post/systemd_preun/systemd_postun_with_restart
honli: against ibacm.service? How about iwpmd.service and srp_daemon.service?

%post -n libibcm -p /sbin/ldconfig
%postun -n libibcm -p /sbin/ldconfig
honli: Why not run ldconfig for other libraries, at least librdmacm has .so
honli: file in private dir.

Comment 5 Jarod Wilson 2016-12-21 21:23:38 UTC
(In reply to Jarod Wilson from comment #4)
> Spec file comments from honli:
> 
> Url: https://github.com/linux-rdma/rdma-core
> honli:
> https://fedoraproject.org/wiki/Packaging:
> SourceURL#When_Upstream_uses_Prohibited_Code
> honli: Please add comment for the "Source:" tag.
> Source: rdma-core-%{version}.tgz

I could, but this situation is temporary, there will be an upstream release and a full URL shortly. This was noted in comment #1, but I could add that same text to the spec until the release is out if need be.

> BuildRequires: binutils
> BuildRequires: cmake >= 2.8.11
> BuildRequires: gcc
> BuildRequires: libudev-devel
> BuildRequires: pkgconfig
> BuildRequires: pkgconfig(libnl-3.0)
> BuildRequires: pkgconfig(libnl-route-3.0)
> BuildRequires: valgrind-devel
> 
> honli: libnl3-devel is required for iwpmd libibverbs

That's what you get from pkgconfig(libnl-3.0).

> honli: systemd and dracut also needed.

These already get pulled in.

> honli: You also delete a few necessary "Requires:" tags.
> honli:  Please see review-comment.txt for details.

From that doc:

> honli: Please add "Requires:" entries against rsyslog, systemd, kmod,
> honli: logrotate, initscripts, and dracut.

None of these need to be listed explicitly, so far as I know. These are all things that are expected to be on the system, thus no need to call them out specifically. Several of them are already requirements of the kernel.


> %description
> RDMA core userspace infrastructure and documentation.
> honli: I know this is an upstream issue. This is %description
> honli: section is too simple, in other words, it is meaningless.
> honli: If you do not have good %description section, I suggest
> honli: you copy and paste
> https://bugzilla.redhat.com/show_bug.cgi?id=1404043#c0
> honli: At least, user will know what is the package after read that.

That #c0 text applies to the package as a whole though, including things that are in libibverbs. I'll expand on the text there a bit though.

Proposed update:

%description
RDMA core userspace infrastructure and documentation, including initscripts,
kernel driver-specific modprobe override configs, IPoIB network scripts,
dracut rules, and the rdma-ndd utility.

> %package -n libibverbs
> Summary: A library and drivers for direct userspace use of RDMA
> (InfiniBand/iWARP) hardware
> Requires(post): /sbin/ldconfig
> Requires(postun): /sbin/ldconfig
> Requires: rdma-core
> honli: Even over 99% files are stext files, rdma-core contains
> /usr/sbin/rdma-ndd,
> honli: which is an ELF file, so rdma-core is not a noarch rpm. Please
> replace all
> honli: "Requires: rdma-core" with "Requires: %{name}%{?_isa} =
> %{version}-%{release}"

Will do.

> %description -n srp_daemon
> In conjunction with the kernel ib_srp driver, srptools allows you to
> honli: should replace srptools with srp_daemon in above line?
> discover and use SCSI devices via the SCSI RDMA Protocol over InfiniBand.

Done.

> %prep
> %setup
> honli: %setup -q ???
> %build

Why? I prefer verbose myself, so you can see more easily in logs if something goes wrong.

> %postun -n ibacm
> %systemd_postun_with_restart ibacm.service
> 
> honli: Why you only run
> systemd_post/systemd_preun/systemd_postun_with_restart
> honli: against ibacm.service? How about iwpmd.service and srp_daemon.service?

Looks like an oversight, will correct this.

> %post -n libibcm -p /sbin/ldconfig
> %postun -n libibcm -p /sbin/ldconfig
> honli: Why not run ldconfig for other libraries, at least librdmacm has .so
> honli: file in private dir.

Another oversight. And on a related note, the ldconfigs for the base package serve no purpose, since there are no libs in it. This is probably a remnant of starting from the one-shot spec in the top level of the source dir. Will fix this up too.

Comment 6 Jarod Wilson 2016-12-21 22:03:15 UTC
(In reply to Jarod Wilson from comment #3)
...
> > Issue 4: broken soft link (librdmacm-12-1.fc26.x86_64.rpm)?
> > /usr/lib64/rsocket
> > [honli@dhcp47-85 rsocket]$ ll
> > total 0
> > lrwxrwxrwx. 1 honli honli 15 Dec 20 00:37 librspreload.so.1 ->
> > librspreload.so
> > lrwxrwxrwx. 1 honli honli 15 Dec 20 00:37 librspreload.so.1.0.0 ->
> > librspreload.so
> 
> This looks like an upstream problem, just doing a build in a freshly
> unpacked tree sans-rpm has similar results. I'll address it there.

There's a minor issue with the way it's built upstream that does leave it with a dangling symlink under build/, but when packaged, this was simply a case of the .so being in rdma-core-devel. I've moved it into librdmacm instead to resolve this.

Updated package for review w/same version at the moment:

http://people.redhat.com/~jwilson/pkgreview/rdma-core/rdma-core.spec
http://people.redhat.com/~jwilson/pkgreview/rdma-core/rdma-core-12-1.fc26.src.rpm

This should hopefully address just about everything, and I'll ship the patches that resulted from this work upstream shortly.

Comment 7 Honggang LI 2016-12-22 03:26:16 UTC
(In reply to Jarod Wilson from comment #3)
> 
> > Comment 1:
> > /etc/rc.d/init.d/srpd (delete it as RHEL7 and FC26  use systemd.)
> 
> Confused here, I don't see this in the build. Or did you mean "this is
> getting removed from the old version, but it's fine"?

Yes, it is fine.

> 
> > Comment 2: iwpmd no longer start after syslog.target, as it does not write
> > any log files. iwpmd send log message to /var/log/messages.
> > diff -Nurp iwpmd-1.0.6-2.el7/usr/lib/systemd/system/iwpmd.service

> 
> Is this another "this is a change to take note of" thing? Just using the
> upstream .service file here.

Yes, you are right. It is a change to take note of.

Comment 8 Honggang LI 2016-12-22 03:32:10 UTC
(In reply to Jarod Wilson from comment #5)
> 
> > honli: systemd and dracut also needed.
> 
> These already get pulled in.

No, you missed systemd. As a result, your new srpm can't be rebuilt.

> 
> > honli: You also delete a few necessary "Requires:" tags.
> > honli:  Please see review-comment.txt for details.
> 
> From that doc:
> 
> > honli: Please add "Requires:" entries against rsyslog, systemd, kmod,
> > honli: logrotate, initscripts, and dracut.
> 
> None of these need to be listed explicitly, so far as I know. These are all
> things that are expected to be on the system, thus no need to call them out
> specifically. Several of them are already requirements of the kernel.
> 

I would suggest to list explicitly. Otherwise fedora-review tool will complaint.
[ ]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/lib/udev, /usr/share/doc
     /rdma-core-12, /etc/rsyslog.d, /etc/sysconfig/network-scripts,
     /etc/udev/rules.d, /etc/udev, /etc/logrotate.d, /usr/lib/udev/rules.d
[ ]: Package does not own files or directories owned by other packages.
     Note: Dirs in package are owned also by: /usr/include/infiniband
     (ibacm-devel, libibverbs-devel),
     /usr/lib/dracut/modules.d/05rdma(rdma), /usr/include/rdma(kernel-
     headers), /etc/rdma(rdma, ibacm)

> > honli: %setup -q ???
> > %build
> 
> Why? I prefer verbose myself, so you can see more easily in logs if
> something goes wrong.

OK.

Comment 9 Honggang LI 2016-12-22 03:35:02 UTC
(In reply to Jarod Wilson from comment #6)

> http://people.redhat.com/~jwilson/pkgreview/rdma-core/rdma-core.spec
> http://people.redhat.com/~jwilson/pkgreview/rdma-core/rdma-core-12-1.fc26.
> src.rpm

Failed to rebuild this srpm.

Processing files: rdma-core-debuginfo-12-1.fc26.x86_64
Provides: rdma-core-debuginfo = 12-1.fc26 rdma-core-debuginfo(x86-64) = 12-1.fc26
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/rdma-core-12-1.fc26.x86_64
error: Installed (but unpackaged) file(s) found:
   /usr/lib64/rsocket/librspreload.so.1
   /usr/lib64/rsocket/librspreload.so.1.0.0

This patch works for me.
srpm-unpacked]$ cat spec-patch1.patch 
--- rdma-core.spec.old	2016-12-21 16:59:20.000000000 -0500
+++ rdma-core.spec	2016-12-21 21:41:01.750808435 -0500
@@ -21,6 +21,7 @@ BuildRequires: pkgconfig
 BuildRequires: pkgconfig(libnl-3.0)
 BuildRequires: pkgconfig(libnl-route-3.0)
 BuildRequires: valgrind-devel
+BuildRequires: systemd
 
 Requires: dracut
 # Red Hat/Fedora previously shipped redhat/ as a stand-alone
@@ -392,6 +393,7 @@ rm -rf %{buildroot}/%{_initrddir}/
 %{_libdir}/librdmacm*.so.*
 %dir %{_libdir}/rsocket
 %{_libdir}/rsocket/*.so
+%{_libdir}/rsocket/*.so.*
 %doc %{_docdir}/%{name}-%{version}/librdmacm.md
 %{_mandir}/man7/rsocket.*

Comment 10 Jarod Wilson 2016-12-22 07:13:38 UTC
(In reply to Honggang LI from comment #8)
> (In reply to Jarod Wilson from comment #5)
> > 
> > > honli: systemd and dracut also needed.
> > 
> > These already get pulled in.
> 
> No, you missed systemd. As a result, your new srpm can't be rebuilt.

I built it in mock just fine at one point while working on updates, and just got a shell in the buildroot, systemd is definitely there.

> > 
> > > honli: You also delete a few necessary "Requires:" tags.
> > > honli:  Please see review-comment.txt for details.
> > 
> > From that doc:
> > 
> > > honli: Please add "Requires:" entries against rsyslog, systemd, kmod,
> > > honli: logrotate, initscripts, and dracut.
> > 
> > None of these need to be listed explicitly, so far as I know. These are all
> > things that are expected to be on the system, thus no need to call them out
> > specifically. Several of them are already requirements of the kernel.
> > 
> 
> I would suggest to list explicitly. Otherwise fedora-review tool will
> complaint.
> [ ]: Package must own all directories that it creates.
>      Note: Directories without known owners: /usr/lib/udev, /usr/share/doc
>      /rdma-core-12, /etc/rsyslog.d, /etc/sysconfig/network-scripts,
>      /etc/udev/rules.d, /etc/udev, /etc/logrotate.d, /usr/lib/udev/rules.d
> [ ]: Package does not own files or directories owned by other packages.
>      Note: Dirs in package are owned also by: /usr/include/infiniband
>      (ibacm-devel, libibverbs-devel),
>      /usr/lib/dracut/modules.d/05rdma(rdma), /usr/include/rdma(kernel-
>      headers), /etc/rdma(rdma, ibacm)

Frankly, fedora-review is wrong, if it's insisting on Requires: for things that are absolutely going to be there, unless you somehow boot your system without a kernel installed.

Comment 11 Jarod Wilson 2016-12-22 07:15:08 UTC
(In reply to Honggang LI from comment #9)
> (In reply to Jarod Wilson from comment #6)
> 
> > http://people.redhat.com/~jwilson/pkgreview/rdma-core/rdma-core.spec
> > http://people.redhat.com/~jwilson/pkgreview/rdma-core/rdma-core-12-1.fc26.
> > src.rpm
> 
> Failed to rebuild this srpm.
> 
> Processing files: rdma-core-debuginfo-12-1.fc26.x86_64
> Provides: rdma-core-debuginfo = 12-1.fc26 rdma-core-debuginfo(x86-64) =
> 12-1.fc26
> Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests)
> <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
> Checking for unpackaged file(s): /usr/lib/rpm/check-files
> /builddir/build/BUILDROOT/rdma-core-12-1.fc26.x86_64
> error: Installed (but unpackaged) file(s) found:
>    /usr/lib64/rsocket/librspreload.so.1
>    /usr/lib64/rsocket/librspreload.so.1.0.0
> 
> This patch works for me.
> srpm-unpacked]$ cat spec-patch1.patch 
> --- rdma-core.spec.old	2016-12-21 16:59:20.000000000 -0500
> +++ rdma-core.spec	2016-12-21 21:41:01.750808435 -0500
> @@ -21,6 +21,7 @@ BuildRequires: pkgconfig
>  BuildRequires: pkgconfig(libnl-3.0)
>  BuildRequires: pkgconfig(libnl-route-3.0)
>  BuildRequires: valgrind-devel
> +BuildRequires: systemd

Hm. Maybe this fails on current Fedora mock chroots. I'm building in something... Older. And it works fine there. I'll take a closer look in the morning.

>  Requires: dracut
>  # Red Hat/Fedora previously shipped redhat/ as a stand-alone
> @@ -392,6 +393,7 @@ rm -rf %{buildroot}/%{_initrddir}/
>  %{_libdir}/librdmacm*.so.*
>  %dir %{_libdir}/rsocket
>  %{_libdir}/rsocket/*.so
> +%{_libdir}/rsocket/*.so.*
>  %doc %{_docdir}/%{name}-%{version}/librdmacm.md
>  %{_mandir}/man7/rsocket.*

Crap, that was supposed to be %{_libdir}/rsocket/*.so* there. I'll fix that in the morning as well.

Comment 12 Jarod Wilson 2016-12-22 07:38:28 UTC
Found the part of the packaging guidelines that says why we need BR: systemd for Fedora and verified it myself. Holding off on an srpm update until tomorrow, pending some additional upstream feedback (and sleep).

Comment 13 Honggang LI 2016-12-22 13:57:45 UTC
(In reply to Jarod Wilson from comment #6)
> http://people.redhat.com/~jwilson/pkgreview/rdma-core/rdma-core.spec
> http://people.redhat.com/~jwilson/pkgreview/rdma-core/rdma-core-12-1.fc26.
> src.rpm

Please consider attached patch "spec.patch". And please append valid changelog to the spec file. Then please DO build the srpm in koji system and feedback the task link. I had run fedora-review tool against local copy of updated spec and srpm. The test result seems acceptable now.

SIMPLE functional test had been run mlx5 HCA.No plan to run the entire RDMA regression test suite over all RDMA hardware.
1 libibverbs-utils PASSED
2 librdmacm-utils  PASSED
3 ibacm            PASSED
4 SRP              PASSED
5 rempbuild (libfabric/fabtests/openmpi) PASSED
6 iwpmd            NOT-TEST

thanks

Comment 14 Honggang LI 2016-12-22 14:00:16 UTC
Created attachment 1234802 [details]
proposed patch against the SPEC file linked in comment #6.

proposed patch against the SPEC file linked in comment #6.

Comment 15 Jarod Wilson 2016-12-22 19:02:21 UTC
SRPM and spec updated, based on proposed patch and upstream review discussion.

Comment 16 Honggang LI 2017-01-09 11:48:47 UTC
Hi, Jarod

1) systemd-udev is new sub-package of systemd for FC >= 24. It owns "/etc/udev/rules.d" and "/usr/lib/udev/rules.d/". rdma-core package installs three files into those directories, so rdma-core should "Requires: systemd-udev". In fact, systemd-udev is an essential package. Fedora system can't boot without this package. As result, ipoib rename (configured in file /etc/udev/rules.d/70-persistent-ipoib.rules) never works if systemd-udev was absent.

$ rpm -qpl rdma-core-12-1.fc26.x86_64.rpm | grep udev
/etc/udev/rules.d/70-persistent-ipoib.rules
/usr/lib/udev/rules.d/98-rdma.rules
/usr/lib/udev/rules.d/rdma-ndd.rules

You dropped "Requires: rsyslog" and kept "Requires: logrotate" for srp_daemon. If rsyslog was absent, /etc/rsyslog.d/srp_daemon.conf can't work. So, please apply "Requires: logrotate" too.

One symptom is bellow fedora-review error message, when those "Requires:" items absent.

[ ]: Package must own all directories that it creates.
     Note: Directories without known owners: /etc/rsyslog.d, /etc/udev,
     /usr/lib/udev/rules.d, /usr/lib/udev, /etc/udev/rules.d

2) ndd had been moved from infiniband-diags into rdma-core package. There is a conflict issue between those two packages.

3) POSTRUN scripts failed had been observed when run "yum/dnf erase -y rdma".
========================================================
  Erasing    : libibcm-12-1.el7.x86_64                                                                    8/17
/sbin/ldconfig: relative path `0' used to build cache
warning: %postun(libibcm-12-1.el7.x86_64) scriptlet failed, exit status 1
Non-fatal POSTUN scriptlet failure in rpm package libibcm-12-1.el7.x86_64
  Erasing    : librdmacm-utils-12-1.el7.x86_64                                                            9/17
  Erasing    : librdmacm-12-1.el7.x86_64                                                                 10/17
/sbin/ldconfig: relative path `0' used to build cache
warning: %postun(librdmacm-12-1.el7.x86_64) scriptlet failed, exit status 1
Non-fatal POSTUN scriptlet failure in rpm package librdmacm-12-1.el7.x86_64
  Erasing    : opensm-libs-3.3.19-1.el7.x86_64                                                           11/17
  Erasing    : libibmad-1.3.12-1.el7.x86_64                                                              12/17
  Erasing    : libibumad-12-1.el7.x86_64                                                                 13/17
/sbin/ldconfig: relative path `0' used to build cache
warning: %postun(libibumad-12-1.el7.x86_64) scriptlet failed, exit status 1
Non-fatal POSTUN scriptlet failure in rpm package libibumad-12-1.el7.x86_64
  Erasing    : libibverbs-utils-12-1.el7.x86_64                                                          14/17
  Erasing    : libibverbs-12-1.el7.x86_64                                                                15/17
/sbin/ldconfig: relative path `0' used to build cache
warning: %postun(libibverbs-12-1.el7.x86_64) scriptlet failed, exit status 1
Non-fatal POSTUN scriptlet failure in rpm package libibverbs-12-1.el7.x86_64
  Erasing    : iwpmd-12-1.el7.x86_64                                                                     16/17
===================================================================


4) armv7hl platform rpm building task failed.
https://koji.fedoraproject.org/koji/taskinfo?taskID=17218607

Comment 17 Jarod Wilson 2017-01-09 22:29:59 UTC
Working through some of the issues, have posted a few new iterations of patches upstream, with a few more pending. I've disabled building libibumad on 32-bit arm, as there's memory barrier support, but everything else seems to build just fine across all arches in Fedora:

https://koji.fedoraproject.org/koji/taskinfo?taskID=17225611

I haven't touched the ldconfig issue just yet, no clue how to address that, will have to get some upstream input there.

Comment 18 Honggang LI 2017-01-20 06:30:17 UTC
(In reply to Jarod Wilson from comment #17)
> I haven't touched the ldconfig issue just yet, no clue how to address that,
> will have to get some upstream input there.

======================================================
$ rpm -qp --scripts libibcm-12-1.fc26.x86_64.rpm
postinstall program: /sbin/ldconfig
postuninstall scriptlet (using /sbin/ldconfig):

# libibumad
======================================================

ldconfig failed because of unnecessary comments, for example, "# libibumad" for libibcm. Please consider apply this patch.

 f26]$ diff -Nurp rdma-core.spec.old rdma-core.spec
--- rdma-core.spec.old	2017-01-19 09:02:15.000000000 -0500
+++ rdma-core.spec	2017-01-20 00:25:04.245224686 -0500
@@ -207,6 +207,7 @@ Requires(preun): systemd-units
 Requires(postun): systemd-units
 Requires: %{name}%{?_isa} = %{version}-%{release}
 Requires: logrotate
+Requires: rsyslog
 
 %description -n srp_daemon
 In conjunction with the kernel ib_srp driver, srp_daemon allows you to
@@ -286,23 +287,18 @@ install -D -m0644 redhat/srp_daemon.serv
 # Delete the package's init.d scripts
 rm -rf %{buildroot}/%{_initrddir}/
 
-# libibverbs
 %post -n libibverbs -p /sbin/ldconfig
 %postun -n libibverbs -p /sbin/ldconfig
 
-# libibcm
 %post -n libibcm -p /sbin/ldconfig
 %postun -n libibcm -p /sbin/ldconfig
 
-# libibumad
 %post -n libibumad -p /sbin/ldconfig
 %postun -n libibumad -p /sbin/ldconfig
 
-# librdmacm
 %post -n librdmacm -p /sbin/ldconfig
 %postun -n librdmacm -p /sbin/ldconfig
 
-# ibacm
 %post -n ibacm
 %systemd_post ibacm.service
 %preun -n ibacm
@@ -310,7 +306,6 @@ rm -rf %{buildroot}/%{_initrddir}/
 %postun -n ibacm
 %systemd_postun_with_restart ibacm.service
 
-# srp_daemon
 %post -n srp_daemon
 %systemd_post srp_daemon.service
 %preun -n srp_daemon
@@ -318,7 +313,6 @@ rm -rf %{buildroot}/%{_initrddir}/
 %postun -n srp_daemon
 %systemd_postun_with_restart srp_daemon.service
 
-# iwpmd
 %post -n iwpmd
 %systemd_post iwpmd.service
 %preun -n iwpmd

Comment 19 Jarod Wilson 2017-01-20 14:40:10 UTC
That's.. Odd. I can remove the comments, but surprising that it's those that cause the problem.

On another note, the +rsyslog portion is actually the opposite direction we need to go here. Have discussed that with upstream, and neither rsyslog nor logrotate are deemed at all necessary, as systemd's journald handles all of that. (They were removed from the upstream spec, I just forgot to remove them here).

Comment 20 Honggang LI 2017-01-21 00:54:54 UTC
(In reply to Jarod Wilson from comment #19)

> On another note, the +rsyslog portion is actually the opposite direction we
> need to go here. Have discussed that with upstream, and neither rsyslog nor
> logrotate are deemed at all necessary, as systemd's journald handles all of
> that. (They were removed from the upstream spec, I just forgot to remove
> them here).

Thanks for the explanation. Please notify me when the SPEC and SRPM file get updated.

Comment 21 Jarod Wilson 2017-01-22 06:45:46 UTC
(In reply to Honggang LI from comment #20)
> (In reply to Jarod Wilson from comment #19)
> 
> > On another note, the +rsyslog portion is actually the opposite direction we
> > need to go here. Have discussed that with upstream, and neither rsyslog nor
> > logrotate are deemed at all necessary, as systemd's journald handles all of
> > that. (They were removed from the upstream spec, I just forgot to remove
> > them here).
> 
> Thanks for the explanation. Please notify me when the SPEC and SRPM file get
> updated.

Just pushed updated files, please give them a look! Hopefully, they're all set now...

Comment 22 Honggang LI 2017-01-22 13:09:59 UTC
Hi, Jarod
 
 Please append valid change-log to the end of SPEC file. Except that, the SPEC file looks good. Set "fedora‑review+" flag to ACK it.
 
Thanks
============================================================
Package Review
==============

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


Issues:
=======
- All build dependencies are listed in BuildRequires, except for any that
  are listed in the exceptions section of Packaging Guidelines.
  Note: These BR are not needed: gcc
  See: http://fedoraproject.org/wiki/Packaging/Guidelines#Exceptions_2

<honli> This is intentional, as upstream source of rdma-core can be compiled with gcc and clang.

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

C/C++:
[ ]: Package does not contain kernel modules.
[ ]: Package contains no static executables.
[ ]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.
[x]: Header files in -devel subpackage, if present.
[x]: ldconfig called in %post and %postun if required.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

Generic:
[ ]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[ ]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "BSD (2 clause)", "BSD (3 clause) GPL (v2)", "Unknown or
     generated". 237 files have unknown license. Detailed output of
     licensecheck in /home/honli/jd-rdma-core/Jan-22/1404043-rdma-
     core/licensecheck.txt

<honli> This is fine. As most code released under dual license, upstream does not add license statement at the head of every single file.

[ ]: License file installed when any subpackage combination is installed.
[ ]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
[ ]: Package does not own files or directories owned by other packages.
     Note: Dirs in package are owned also by: /usr/include/infiniband
     (libibcommon-devel), /usr/lib/dracut/modules.d/05rdma(rdma),
     /usr/include/rdma(kernel-headers), /etc/rdma(rdma, ibacm)

<honli> It is OK.

[ ]: %build honors applicable compiler flags or justifies otherwise.
[ ]: Package contains no bundled libraries without FPC exception.
[ ]: Changelog in prescribed format.
[ ]: 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 uses nothing in %doc for runtime.
[ ]: Package consistently uses macros (instead of hard-coded directory
     names).
[ ]: Package is named according to the Package Naming Guidelines.
[ ]: Package does not generate any conflict.
[ ]: Package obeys FHS, except libexecdir and /usr/target.
[ ]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[ ]: Requires correct, justified where necessary.
[ ]: Spec file is legible and written in American English.
[ ]: Package contains systemd file(s) if in need.
[ ]: Useful -debuginfo package or justification otherwise.
[ ]: Package is not known to require an ExcludeArch tag.
[ ]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 71680 bytes in 8 files.
[ ]: Package complies to the Packaging Guidelines
[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).
[x]: 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 is included in %license.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: %config files are marked noreplace or the reason is justified.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: No %config files under /usr.
[x]: Package does not use a name that already exists.
[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]: Packages must not store files under /srv, /opt or /usr/local

===== 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.
[ ]: Final provides and requires are sane (see attachments).
[ ]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in
     libibverbs-utils , librdmacm-utils , rdma-core-debuginfo

<honli>  libibverbs-utils and librdmacm-utils depends on %{name}-devel%{?_isa} = %{version}-%{release}. So, it is fine.

[ ]: Package functions as described.
[ ]: Latest version is packaged.
[ ]: Package does not include license text files separate from upstream.
[ ]: Scriptlets must be sane, if used.
[ ]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[ ]: Package should compile and build into binary rpms on all supported
     architectures.
[ ]: %check is present and all tests pass.
[ ]: Packages should try to preserve timestamps of original installed
     files.
[ ]: Spec use %global instead of %define unless justified.
     Note: %define requiring justification: %define CMAKE_FLAGS %{nil},
     %define CMAKE_FLAGS -GNinja, %define make_jobs ninja-build -v
     %{?_smp_mflags}, %define cmake_install DESTDIR=%{buildroot} ninja-
     build install, %define make_jobs make -v %{?_smp_mflags}, %define
     cmake_install DESTDIR=%{buildroot} make install, %define _rundir
     /var/run
[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]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: SourceX is a working URL.

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

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


Rpmlint
-------
Checking: rdma-core-12-1.fc26.x86_64.rpm
          rdma-core-devel-12-1.fc26.x86_64.rpm
          libibverbs-12-1.fc26.x86_64.rpm
          libibverbs-utils-12-1.fc26.x86_64.rpm
          ibacm-12-1.fc26.x86_64.rpm
          iwpmd-12-1.fc26.x86_64.rpm
          libibcm-12-1.fc26.x86_64.rpm
          libibumad-12-1.fc26.x86_64.rpm
          librdmacm-12-1.fc26.x86_64.rpm
          librdmacm-utils-12-1.fc26.x86_64.rpm
          srp_daemon-12-1.fc26.x86_64.rpm
          rdma-core-debuginfo-12-1.fc26.x86_64.rpm
          rdma-core-12-1.fc26.src.rpm
rdma-core.x86_64: W: spelling-error Summary(en_US) userspace -> user space, user-space, users pace
rdma-core.x86_64: W: spelling-error %description -l en_US userspace -> user space, user-space, users pace
rdma-core.x86_64: W: spelling-error %description -l en_US modprobe -> mod probe, mod-probe, probe
rdma-core.x86_64: W: spelling-error %description -l en_US configs -> con figs, con-figs, configure
rdma-core.x86_64: W: spelling-error %description -l en_US ndd -> dd, add, nod
rdma-core.x86_64: E: no-changelogname-tag
rdma-core-devel.x86_64: E: no-changelogname-tag
rdma-core-devel.x86_64: W: only-non-binary-in-usr-lib
libibverbs.x86_64: W: spelling-error Summary(en_US) userspace -> user space, user-space, users pace
libibverbs.x86_64: E: summary-too-long C A library and drivers for direct userspace use of RDMA (InfiniBand/iWARP/RoCE) hardware
libibverbs.x86_64: W: spelling-error %description -l en_US userspace -> user space, user-space, users pace
libibverbs.x86_64: W: spelling-error %description -l en_US ibverbs -> verbs
libibverbs.x86_64: W: spelling-error %description -l en_US Chelsio -> Chelsea
libibverbs.x86_64: W: spelling-error %description -l en_US iWARP -> i Warp, warp, antiwar
libibverbs.x86_64: W: spelling-error %description -l en_US QLogic -> Q Logic, Logic
libibverbs.x86_64: W: spelling-error %description -l en_US Mellanox -> Melanoma
libibverbs.x86_64: W: spelling-error %description -l en_US Emulex -> Emulate
libibverbs.x86_64: E: no-changelogname-tag
libibverbs-utils.x86_64: W: spelling-error %description -l en_US ibv -> iv, Ibo
libibverbs-utils.x86_64: W: spelling-error %description -l en_US devinfo -> Devin
libibverbs-utils.x86_64: E: no-changelogname-tag
ibacm.x86_64: W: spelling-error %description -l en_US lookups -> lookup, lockups, hookups
ibacm.x86_64: W: spelling-error %description -l en_US librdmacm -> Librium
ibacm.x86_64: E: no-changelogname-tag
iwpmd.x86_64: W: spelling-error Summary(en_US) iWarp -> i Warp, warp, antiwar
iwpmd.x86_64: W: spelling-error Summary(en_US) userspace -> user space, user-space, users pace
iwpmd.x86_64: W: summary-not-capitalized C iWarp Port Mapper userspace daemon
iwpmd.x86_64: W: spelling-error %description -l en_US userspace -> user space, user-space, users pace
iwpmd.x86_64: W: spelling-error %description -l en_US iWarp -> i Warp, warp, antiwar
iwpmd.x86_64: W: spelling-error %description -l en_US tcp -> pct, tsp, tip
iwpmd.x86_64: E: no-changelogname-tag
libibcm.x86_64: W: spelling-error Summary(en_US) Userspace -> User space, User-space, Users pace
libibcm.x86_64: W: spelling-error %description -l en_US userspace -> user space, user-space, users pace
libibcm.x86_64: E: no-changelogname-tag
libibumad.x86_64: W: spelling-error Summary(en_US) umad -> mad, u mad, um ad
libibumad.x86_64: W: spelling-error Summary(en_US) userspace -> user space, user-space, users pace
libibumad.x86_64: W: spelling-error Summary(en_US) datagram -> data gram, data-gram, diagram
libibumad.x86_64: W: spelling-error %description -l en_US userspace -> user space, user-space, users pace
libibumad.x86_64: W: spelling-error %description -l en_US datagram -> data gram, data-gram, diagram
libibumad.x86_64: W: spelling-error %description -l en_US umad -> mad, u mad, um ad
libibumad.x86_64: E: no-changelogname-tag
libibumad.x86_64: W: no-documentation
librdmacm.x86_64: W: spelling-error Summary(en_US) Userspace -> User space, User-space, Users pace
librdmacm.x86_64: W: spelling-error %description -l en_US userspace -> user space, user-space, users pace
librdmacm.x86_64: E: no-changelogname-tag
librdmacm-utils.x86_64: E: no-changelogname-tag
librdmacm-utils.x86_64: W: no-manual-page-for-binary udpong
librdmacm-utils.x86_64: W: no-manual-page-for-binary cmtime
srp_daemon.x86_64: W: spelling-error %description -l en_US ib -> bi, ob, iv
srp_daemon.x86_64: W: spelling-error %description -l en_US srp -> rps, sip, sap
srp_daemon.x86_64: E: no-changelogname-tag
srp_daemon.x86_64: W: obsolete-not-provided openib-srptools
srp_daemon.x86_64: W: no-manual-page-for-binary srp_daemon.sh
srp_daemon.x86_64: W: no-manual-page-for-binary run_srp_daemon
rdma-core-debuginfo.x86_64: E: no-changelogname-tag
rdma-core.src: W: spelling-error Summary(en_US) userspace -> user space, user-space, users pace
rdma-core.src: W: spelling-error %description -l en_US userspace -> user space, user-space, users pace
rdma-core.src: W: spelling-error %description -l en_US initscripts -> postscripts, transcripts, inscription
rdma-core.src: W: spelling-error %description -l en_US modprobe -> mod probe, mod-probe, probe
rdma-core.src: W: spelling-error %description -l en_US configs -> con figs, con-figs, configure
rdma-core.src: W: spelling-error %description -l en_US dracut -> Dracula
rdma-core.src: W: spelling-error %description -l en_US ndd -> dd, add, nod
rdma-core.src: E: no-changelogname-tag
rdma-core.src:215: W: setup-not-quiet
rdma-core.src:251: E: hardcoded-library-path in %{_prefix}/lib/dracut
rdma-core.src:252: E: hardcoded-library-path in %{_prefix}/lib/modprobe.d
rdma-core.src: W: invalid-url Source0: rdma-core-12.tgz
13 packages and 0 specfiles checked; 16 errors, 51 warnings.




Rpmlint (debuginfo)
-------------------
Checking: rdma-core-debuginfo-12-1.fc26.x86_64.rpm
rdma-core-debuginfo.x86_64: E: no-changelogname-tag
1 packages and 0 specfiles checked; 1 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
sh: /usr/bin/python: No such file or directory
libibverbs-utils.x86_64: W: spelling-error %description -l en_US ibv -> iv, Ibo
libibverbs-utils.x86_64: W: spelling-error %description -l en_US devinfo -> Devin
libibverbs-utils.x86_64: E: no-changelogname-tag
rdma-core-debuginfo.x86_64: E: no-changelogname-tag
librdmacm-utils.x86_64: E: no-changelogname-tag
librdmacm-utils.x86_64: W: no-manual-page-for-binary cmtime
librdmacm-utils.x86_64: W: no-manual-page-for-binary udpong
rdma-core-devel.x86_64: E: no-changelogname-tag
rdma-core-devel.x86_64: W: only-non-binary-in-usr-lib
libibverbs.x86_64: W: spelling-error Summary(en_US) userspace -> user space, user-space, users pace
libibverbs.x86_64: E: summary-too-long C A library and drivers for direct userspace use of RDMA (InfiniBand/iWARP/RoCE) hardware
libibverbs.x86_64: W: spelling-error %description -l en_US userspace -> user space, user-space, users pace
libibverbs.x86_64: W: spelling-error %description -l en_US ibverbs -> verbs
libibverbs.x86_64: W: spelling-error %description -l en_US Chelsio -> Chelsea
libibverbs.x86_64: W: spelling-error %description -l en_US iWARP -> i Warp, warp, antiwar
libibverbs.x86_64: W: spelling-error %description -l en_US QLogic -> Q Logic, Logic
libibverbs.x86_64: W: spelling-error %description -l en_US Mellanox -> Melanoma
libibverbs.x86_64: W: spelling-error %description -l en_US Emulex -> Emulate
libibverbs.x86_64: E: no-changelogname-tag
rdma-core.x86_64: W: spelling-error Summary(en_US) userspace -> user space, user-space, users pace
rdma-core.x86_64: W: spelling-error %description -l en_US userspace -> user space, user-space, users pace
rdma-core.x86_64: W: spelling-error %description -l en_US modprobe -> mod probe, mod-probe, probe
rdma-core.x86_64: W: spelling-error %description -l en_US configs -> con figs, con-figs, configure
rdma-core.x86_64: W: spelling-error %description -l en_US ndd -> dd, add, nod
rdma-core.x86_64: E: no-changelogname-tag
srp_daemon.x86_64: W: spelling-error %description -l en_US ib -> bi, ob, iv
srp_daemon.x86_64: W: spelling-error %description -l en_US srp -> rps, sip, sap
srp_daemon.x86_64: E: no-changelogname-tag
srp_daemon.x86_64: W: obsolete-not-provided openib-srptools
srp_daemon.x86_64: W: no-manual-page-for-binary run_srp_daemon
srp_daemon.x86_64: W: no-manual-page-for-binary srp_daemon.sh
librdmacm.x86_64: W: spelling-error Summary(en_US) Userspace -> User space, User-space, Users pace
librdmacm.x86_64: W: spelling-error %description -l en_US userspace -> user space, user-space, users pace
librdmacm.x86_64: E: no-changelogname-tag
iwpmd.x86_64: W: spelling-error Summary(en_US) iWarp -> i Warp, warp, antiwar
iwpmd.x86_64: W: spelling-error Summary(en_US) userspace -> user space, user-space, users pace
iwpmd.x86_64: W: summary-not-capitalized C iWarp Port Mapper userspace daemon
iwpmd.x86_64: W: spelling-error %description -l en_US userspace -> user space, user-space, users pace
iwpmd.x86_64: W: spelling-error %description -l en_US iWarp -> i Warp, warp, antiwar
iwpmd.x86_64: W: spelling-error %description -l en_US tcp -> pct, tsp, tip
iwpmd.x86_64: E: no-changelogname-tag
libibcm.x86_64: W: spelling-error Summary(en_US) Userspace -> User space, User-space, Users pace
libibcm.x86_64: W: spelling-error %description -l en_US userspace -> user space, user-space, users pace
libibcm.x86_64: E: no-changelogname-tag
libibumad.x86_64: W: spelling-error Summary(en_US) umad -> mad, u mad, um ad
libibumad.x86_64: W: spelling-error Summary(en_US) userspace -> user space, user-space, users pace
libibumad.x86_64: W: spelling-error Summary(en_US) datagram -> data gram, data-gram, diagram
libibumad.x86_64: W: spelling-error %description -l en_US userspace -> user space, user-space, users pace
libibumad.x86_64: W: spelling-error %description -l en_US datagram -> data gram, data-gram, diagram
libibumad.x86_64: W: spelling-error %description -l en_US umad -> mad, u mad, um ad
libibumad.x86_64: E: no-changelogname-tag
libibumad.x86_64: W: no-documentation
ibacm.x86_64: W: spelling-error %description -l en_US lookups -> lookup, lockups, hookups
ibacm.x86_64: W: spelling-error %description -l en_US librdmacm -> Librium
ibacm.x86_64: E: no-changelogname-tag
12 packages and 0 specfiles checked; 13 errors, 42 warnings.



Requires
--------
libibverbs-utils (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    libibverbs(x86-64)
    libibverbs.so.1()(64bit)
    libibverbs.so.1(IBVERBS_1.0)(64bit)
    libibverbs.so.1(IBVERBS_1.1)(64bit)
    rtld(GNU_HASH)

rdma-core-debuginfo (rpmlib, GLIBC filtered):

librdmacm-utils (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    libibverbs.so.1()(64bit)
    libibverbs.so.1(IBVERBS_1.0)(64bit)
    libibverbs.so.1(IBVERBS_1.1)(64bit)
    libpthread.so.0()(64bit)
    librdmacm(x86-64)
    librdmacm.so.1()(64bit)
    librdmacm.so.1(RDMACM_1.0)(64bit)
    rtld(GNU_HASH)

rdma-core-devel (rpmlib, GLIBC filtered):
    ibacm
    libibcm
    libibcm.so.1()(64bit)
    libibumad
    libibumad.so.3()(64bit)
    libibverbs
    libibverbs.so.1()(64bit)
    librdmacm
    librdmacm.so.1()(64bit)
    rdma-core(x86-64)

libibverbs (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    /usr/bin/perl
    config(libibverbs)
    libc.so.6()(64bit)
    libdl.so.2()(64bit)
    libibverbs.so.1()(64bit)
    libibverbs.so.1(IBVERBS_1.0)(64bit)
    libibverbs.so.1(IBVERBS_1.1)(64bit)
    libibverbs.so.1(IBVERBS_1.3)(64bit)
    libibverbs.so.1(IBVERBS_1.4)(64bit)
    libnl-3.so.200()(64bit)
    libnl-3.so.200(libnl_3)(64bit)
    libnl-route-3.so.200()(64bit)
    libnl-route-3.so.200(libnl_3)(64bit)
    libpthread.so.0()(64bit)
    rdma-core(x86-64)
    rtld(GNU_HASH)

rdma-core (rpmlib, GLIBC filtered):
    /bin/bash
    config(rdma-core)
    dracut
    initscripts
    kmod
    libc.so.6()(64bit)
    libudev.so.1()(64bit)
    libudev.so.1(LIBUDEV_183)(64bit)
    rtld(GNU_HASH)
    systemd
    systemd-udev

srp_daemon (rpmlib, GLIBC filtered):
    /bin/bash
    /bin/sh
    config(srp_daemon)
    libc.so.6()(64bit)
    libibumad.so.3()(64bit)
    libibumad.so.3(IBUMAD_1.0)(64bit)
    libibverbs.so.1()(64bit)
    libibverbs.so.1(IBVERBS_1.0)(64bit)
    libibverbs.so.1(IBVERBS_1.1)(64bit)
    libpthread.so.0()(64bit)
    rdma-core(x86-64)
    rtld(GNU_HASH)
    systemd-units

librdmacm (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    ld-linux-x86-64.so.2()(64bit)
    libc.so.6()(64bit)
    libdl.so.2()(64bit)
    libibverbs.so.1()(64bit)
    libibverbs.so.1(IBVERBS_1.0)(64bit)
    libibverbs.so.1(IBVERBS_1.1)(64bit)
    libpthread.so.0()(64bit)
    librdmacm.so.1()(64bit)
    librdmacm.so.1(RDMACM_1.0)(64bit)
    rdma-core(x86-64)
    rtld(GNU_HASH)

iwpmd (rpmlib, GLIBC filtered):
    /bin/sh
    config(iwpmd)
    libc.so.6()(64bit)
    libnl-3.so.200()(64bit)
    libnl-3.so.200(libnl_3)(64bit)
    libpthread.so.0()(64bit)
    rdma-core(x86-64)
    rtld(GNU_HASH)
    systemd-units

libibcm (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    libc.so.6()(64bit)
    libibverbs.so.1()(64bit)
    libibverbs.so.1(IBVERBS_1.0)(64bit)
    rdma-core(x86-64)
    rtld(GNU_HASH)

libibumad (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    libc.so.6()(64bit)
    rdma-core(x86-64)
    rtld(GNU_HASH)

ibacm (rpmlib, GLIBC filtered):
    /bin/sh
    config(ibacm)
    ld-linux-x86-64.so.2()(64bit)
    libc.so.6()(64bit)
    libdl.so.2()(64bit)
    libibumad.so.3()(64bit)
    libibumad.so.3(IBUMAD_1.0)(64bit)
    libibverbs.so.1()(64bit)
    libibverbs.so.1(IBVERBS_1.0)(64bit)
    libibverbs.so.1(IBVERBS_1.1)(64bit)
    libpthread.so.0()(64bit)
    rdma-core(x86-64)
    rtld(GNU_HASH)
    systemd-units



Provides
--------
libibverbs-utils:
    libibverbs-utils
    libibverbs-utils(x86-64)

rdma-core-debuginfo:
    rdma-core-debuginfo
    rdma-core-debuginfo(x86-64)

librdmacm-utils:
    librdmacm-utils
    librdmacm-utils(x86-64)

rdma-core-devel:
    ibacm-devel
    libibcm-devel
    libibumad-devel
    libibverbs-devel
    librdmacm-devel
    rdma-core-devel
    rdma-core-devel(x86-64)

libibverbs:
    config(libibverbs)
    libcxgb3
    libcxgb3-rdmav2.so()(64bit)
    libcxgb4
    libcxgb4-rdmav2.so()(64bit)
    libhfi1
    libhfi1verbs-rdmav2.so()(64bit)
    libhns-rdmav2.so()(64bit)
    libi40iw
    libi40iw-rdmav2.so()(64bit)
    libibverbs
    libibverbs(x86-64)
    libibverbs.so.1()(64bit)
    libibverbs.so.1(IBVERBS_1.0)(64bit)
    libibverbs.so.1(IBVERBS_1.1)(64bit)
    libibverbs.so.1(IBVERBS_1.3)(64bit)
    libibverbs.so.1(IBVERBS_1.4)(64bit)
    libipathverbs
    libipathverbs-rdmav2.so()(64bit)
    libmlx4
    libmlx4-rdmav2.so()(64bit)
    libmlx5
    libmlx5-rdmav2.so()(64bit)
    libmthca
    libmthca-rdmav2.so()(64bit)
    libnes
    libnes-rdmav2.so()(64bit)
    libocrdma
    libocrdma-rdmav2.so()(64bit)
    libqedr-rdmav2.so()(64bit)
    librxe
    librxe-rdmav2.so()(64bit)
    libvmw_pvrdma-rdmav2.so()(64bit)

rdma-core:
    config(rdma-core)
    rdma
    rdma-core
    rdma-core(x86-64)

srp_daemon:
    config(srp_daemon)
    srp_daemon
    srp_daemon(x86-64)
    srptools

librdmacm:
    librdmacm
    librdmacm(x86-64)
    librdmacm.so.1()(64bit)
    librdmacm.so.1(RDMACM_1.0)(64bit)
    librspreload.so()(64bit)

iwpmd:
    config(iwpmd)
    iwpmd
    iwpmd(x86-64)

libibcm:
    libibcm
    libibcm(x86-64)
    libibcm.so.1()(64bit)
    libibcm.so.1(IBCM_1.0)(64bit)

libibumad:
    libibumad
    libibumad(x86-64)
    libibumad.so.3()(64bit)
    libibumad.so.3(IBUMAD_1.0)(64bit)

ibacm:
    config(ibacm)
    ibacm
    ibacm(x86-64)
    libibacmp.so()(64bit)
    libibacmp.so(ACMP_1.0)(64bit)



Unversioned so-files
--------------------
libibverbs: /usr/lib64/libibverbs/libcxgb3-rdmav2.so
libibverbs: /usr/lib64/libibverbs/libcxgb4-rdmav2.so
libibverbs: /usr/lib64/libibverbs/libhfi1verbs-rdmav2.so
libibverbs: /usr/lib64/libibverbs/libhns-rdmav2.so
libibverbs: /usr/lib64/libibverbs/libi40iw-rdmav2.so
libibverbs: /usr/lib64/libibverbs/libipathverbs-rdmav2.so
libibverbs: /usr/lib64/libibverbs/libmlx4-rdmav2.so
libibverbs: /usr/lib64/libibverbs/libmlx5-rdmav2.so
libibverbs: /usr/lib64/libibverbs/libmthca-rdmav2.so
libibverbs: /usr/lib64/libibverbs/libnes-rdmav2.so
libibverbs: /usr/lib64/libibverbs/libocrdma-rdmav2.so
libibverbs: /usr/lib64/libibverbs/libqedr-rdmav2.so
libibverbs: /usr/lib64/libibverbs/librxe-rdmav2.so
libibverbs: /usr/lib64/libibverbs/libvmw_pvrdma-rdmav2.so
ibacm: /usr/lib64/ibacm/libibacmp.so
librdmacm: /usr/lib64/rsocket/librspreload.so

Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
Command line :/usr/bin/fedora-review -b 1404043
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 23 Gwyn Ciesla 2017-01-25 13:24:34 UTC
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/rpms/rdma-core

Comment 24 Jarod Wilson 2017-01-25 13:28:15 UTC
(In reply to Jon Ciesla from comment #23)
> Package request has been approved:
> https://admin.fedoraproject.org/pkgdb/package/rpms/rdma-core

Whoops, I just filed a new package request to get it into pkgdb moments before noticing it had already been done.

Comment 25 Dennis Gilmore 2017-01-30 14:19:08 UTC
this package is broken and untagged, scripts in /usr/bin that use perl for instance, with missing Requires on perl. rdma-core-12-0.1.rc3.1.fc26 broke the compose process with 
2017-01-29 07:38:48,191: /usr/bin/perl, needed by /var/tmp/lorax.vbio_v1v/installtree/usr/bin/rxe_cfg, does not exist
/usr/bin/perl, needed by /var/tmp/lorax.vbio_v1v/installtree/usr/bin/rxe_cfg, does not exist

packages in anaconda runtime changed

diff -u  new old
--- new	2017-01-30 07:53:34.145977214 -0600
+++ old	2017-01-30 07:53:26.247983109 -0600
@@ -12,6 +12,7 @@
 anaconda-widgets.x86_64
 anaconda.x86_64
 atk.x86_64
+atmel-firmware.noarch
 at-spi2-atk.x86_64
 at-spi2-core.x86_64
 attr.x86_64
@@ -26,6 +27,7 @@
 basesystem.noarch
 bash.x86_64
 bcache-tools.x86_64
+bfa-firmware.noarch
 bind99-libs.x86_64
 bind99-license.noarch
 bind-libs-lite.x86_64
@@ -199,14 +201,25 @@
 iptables-libs.x86_64
 iptables.x86_64
 iputils.x86_64
+ipw2100-firmware.noarch
 ipw2200-firmware.noarch
 iscsi-initiator-utils-iscsiuio.x86_64
 iscsi-initiator-utils.x86_64
 iso-codes.noarch
 isomd5sum.x86_64
 iwl1000-firmware.noarch
+iwl135-firmware.noarch
+iwl2000-firmware.noarch
+iwl2030-firmware.noarch
+iwl3160-firmware.noarch
+iwl3945-firmware.noarch
+iwl5000-firmware.noarch
+iwl5150-firmware.noarch
+iwl6000-firmware.noarch
 iwl6000g2a-firmware.noarch
 iwl6000g2b-firmware.noarch
+iwl6050-firmware.noarch
+iwl7260-firmware.noarch
 jansson.x86_64
 jasper-libs.x86_64
 jbigkit-libs.x86_64
@@ -287,8 +300,8 @@
 libdrm.x86_64
 libedit.x86_64
 libepoxy.x86_64
+libertas-sd8686-firmware.noarch
 libertas-usb8388-firmware.noarch
-libertas-usb8388-olpc-firmware.noarch
 libestr.x86_64
 libevdev.x86_64
 libevent.x86_64
@@ -322,6 +335,7 @@
 liblogging-stdlog.x86_64
 libmcpp.x86_64
 libmetalink.x86_64
+libmlx4.x86_64
 libmnl.x86_64
 libmodman.x86_64
 libmount.x86_64
@@ -523,23 +537,6 @@
 pciutils.x86_64
 pcmciautils.x86_64
 pcre.x86_64
-perl-Carp.noarch
-perl-constant.noarch
-perl-Errno.x86_64
-perl-Exporter.noarch
-perl-File-Path.noarch
-perl-IO.x86_64
-perl-libs.x86_64
-perl-macros.x86_64
-perl-parent.noarch
-perl-PathTools.x86_64
-perl-Scalar-List-Utils.x86_64
-perl-Socket.x86_64
-perl-Text-Tabs+Wrap.noarch
-perl-threads-shared.x86_64
-perl-threads.x86_64
-perl-Unicode-Normalize.x86_64
-perl.x86_64
 pigz.x86_64
 pixman.x86_64
 pkgconf-m4.noarch
@@ -614,7 +611,7 @@
 qrencode-libs.x86_64
 quota-nls.noarch
 quota.x86_64
-rdma-core.x86_64
+rdma.noarch
 readline.x86_64
 realmd.x86_64
 reiserfs-utils.x86_64


you need to properly deal with the existing packages also

Comment 26 Jarod Wilson 2017-01-30 19:20:32 UTC
(In reply to Dennis Gilmore from comment #25)
> this package is broken and untagged, scripts in /usr/bin that use perl for
> instance, with missing Requires on perl.

Say what now?

$ rpm -qp --requires ~/rpmbuild/RPMS/x86_64/libibverbs-12-1.fc26.x86_64.rpm
/sbin/ldconfig
/sbin/ldconfig
/sbin/ldconfig
/sbin/ldconfig
/usr/bin/perl
config(libibverbs) = 12-1.fc26
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.15)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libc.so.6(GLIBC_2.8)(64bit)
libdl.so.2()(64bit)
libdl.so.2(GLIBC_2.2.5)(64bit)
libibverbs.so.1()(64bit)
libibverbs.so.1(IBVERBS_1.0)(64bit)
libibverbs.so.1(IBVERBS_1.1)(64bit)
libibverbs.so.1(IBVERBS_1.3)(64bit)
libibverbs.so.1(IBVERBS_1.4)(64bit)
libnl-3.so.200()(64bit)
libnl-3.so.200(libnl_3)(64bit)
libnl-route-3.so.200()(64bit)
libnl-route-3.so.200(libnl_3)(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
perl(File::Basename)
perl(Getopt::Long)
perl(strict)
perl(warnings)
rdma-core(x86-64) = 12-1.fc26
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1


> you need to properly deal with the existing packages also

Obsoletes and Provides are all there, so far as I know. I'm a bit confused as to what is actually incorrect.

Comment 27 Zbigniew Jędrzejewski-Szmek 2017-01-30 21:01:57 UTC
systemd-units is long gone. You should replace:
Requires(post): systemd-units
Requires(preun): systemd-units
Requires(postun): systemd-units
→
%systemd_requires

Those Requires are generated automatically (when %post -p /sbin/ldconfig is used). Can be removed:
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig

It's better to not add files in /etc:
%config(noreplace) %{_sysconfdir}/udev/rules.d/*
→ %_udevrulesdir

%config(noreplace) %{_sysconfdir}/modprobe.d/mlx4.conf
%config(noreplace) %{_sysconfdir}/modprobe.d/truescale.conf
Are those really needed? If yes, then they should be in /usr/lib/modprobe.d.

See https://fedoraproject.org/wiki/Changes/UnversionedDocdirs.
%doc %{_docdir}/%{name}-%{version}/libibverbs.md
%doc %{_docdir}/%{name}-%{version}/rxe.md
should all have no %version suffix.

Comment 28 Jarod Wilson 2017-07-25 15:41:14 UTC
Pushed an rdma-core v14 build just now.

Comment 29 Jarod Wilson 2017-07-25 15:51:45 UTC
(In reply to Zbigniew Jędrzejewski-Szmek from comment #27)
> systemd-units is long gone. You should replace:
> Requires(post): systemd-units
> Requires(preun): systemd-units
> Requires(postun): systemd-units
> →
> %systemd_requires

That makes the build fail:
error: line 178: Unknown tag: %systemd_requires

Comment 30 Jarod Wilson 2017-07-25 17:55:10 UTC
And now the build fails on ppc64le, while successful on all other arches:

bin/ib_acme: error while loading shared libraries: /builddir/build/BUILD/rdma-core-14/lib/libibverbs.so.1: expected localentry:0 `pthread_cond_init'
error: Bad exit status from /var/tmp/rpm-tmp.X6YP93 (%install)
RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.X6YP93 (%install)

For the time being, I've thrown a quick hack into the package to make it at least build, and we can debug from there, with the caveat that the ppc64le package is at least partially broken at runtime.

Comment 31 Zbigniew Jędrzejewski-Szmek 2017-07-25 18:14:06 UTC
(In reply to Jarod Wilson from comment #29)
> That makes the build fail:
> error: line 178: Unknown tag: %systemd_requires

It should be "%{?systemd_requires}", see https://fedoraproject.org/wiki/Packaging:Scriptlets?rd=Packaging:ScriptletSnippets#Scriptlets

Comment 32 Honggang LI 2017-07-26 00:57:13 UTC
(In reply to Dennis Gilmore from comment #25)
> this package is broken and untagged, scripts in /usr/bin that use perl for
> instance, with missing Requires on perl. rdma-core-12-0.1.rc3.1.fc26 broke
> the compose process with 
> 2017-01-29 07:38:48,191: /usr/bin/perl, needed by
> /var/tmp/lorax.vbio_v1v/installtree/usr/bin/rxe_cfg, does not exist
> /usr/bin/perl, needed by
> /var/tmp/lorax.vbio_v1v/installtree/usr/bin/rxe_cfg, does not exist

Hi, Dennis
 Could you please provide the reproducer for this issue? thanks

Comment 33 Kevin Fenzi 2017-07-28 18:02:49 UTC
So, the problem is actually that the old libibverbs package had no dependency on perl, but this new one (subpackage of rdma-core) does. This results in the rawhide composes failing because lorax prunes out perl and then the /usr/bin/rxe_cfg script has no perl and errors out. 

So, very short term I have just untagged rdma-core again, so we can hopefully get a rawhide compose today or this weekend. 

Slightly longer term, we have put in a PR to make lorax not prune perl: 
https://github.com/rhinstaller/lorax/pull/228 once thats merged and in a rawhide lorax build we can retag or rebuild rdma-core

Longer term still, it would sure be nice if we didn't have to have perl on minimal images. I don't know how important rxe_cfg is or if it could be re-written to work with system-python or as a binary, but that would sure be nice 
to drop the dep on perl here.

Comment 34 Honggang LI 2017-08-01 06:37:52 UTC
(In reply to Jarod Wilson from comment #30)
> And now the build fails on ppc64le, while successful on all other arches:
> 
> bin/ib_acme: error while loading shared libraries:
> /builddir/build/BUILD/rdma-core-14/lib/libibverbs.so.1: expected
> localentry:0 `pthread_cond_init'
> error: Bad exit status from /var/tmp/rpm-tmp.X6YP93 (%install)
> RPM build errors:
>     Bad exit status from /var/tmp/rpm-tmp.X6YP93 (%install)
> 
> For the time being, I've thrown a quick hack into the package to make it at
> least build, and we can debug from there, with the caveat that the ppc64le
> package is at least partially broken at runtime.

https://bugzilla.redhat.com/show_bug.cgi?id=1474973#c3

Jarod, please revert this hack as issue had been fixed. Thanks

Comment 35 Honggang LI 2017-08-09 01:53:17 UTC
(In reply to Kevin Fenzi from comment #33)

> Slightly longer term, we have put in a PR to make lorax not prune perl: 
> https://github.com/rhinstaller/lorax/pull/228 once thats merged and in a
> rawhide lorax build we can retag or rebuild rdma-core

I checked https://kojipkgs.fedoraproject.org//packages/lorax/27.5/1.fc27/src/lorax-27.5-1.fc27.src.rpm , the patch had been merged.

Joard, we need rebuild rdma-core again to get the new rdma-core package into Fedora Rawhide. I had installed a fresh Rawhide (f27) virtual machine, f27 still using the old rdma package.

Please consider to apply this patch, it fixes to minor issue.
1) As #comment 31 suggest, it use %{?systemd_requires} macro
2) srp_daemon should own directory %{_libexecdir}/srp_daemon

srp_daemon only owns %{_libexecdir}/srp_daemon/start_on_all_ports . It should own the whole directory %{_libexecdir}/srp_daemon . Issue 2) exists in upstream rdma-core git repo too.

diff --git a/rdma-core.spec b/rdma-core.spec
index 540889b..ce244f3 100644
--- a/rdma-core.spec
+++ b/rdma-core.spec
@@ -175,9 +175,7 @@ displays information about RDMA devices.
 
 %package -n ibacm
 Summary: InfiniBand Communication Manager Assistant
-Requires(post): systemd-units
-Requires(preun): systemd-units
-Requires(postun): systemd-units
+%{?systemd_requires}
 Requires: %{name}%{?_isa} = %{version}-%{release}
 Requires: libibumad%{?_isa} = %{version}-%{release}
 Requires: libibverbs%{?_isa} = %{version}-%{release}
@@ -194,9 +192,7 @@ library knows how to talk directly to the ibacm daemon to retrieve data.
 
 %package -n iwpmd
 Summary: iWarp Port Mapper userspace daemon
-Requires(post): systemd-units
-Requires(preun): systemd-units
-Requires(postun): systemd-units
+%{?systemd_requires}
 Requires: %{name}%{?_isa} = %{version}-%{release}
 
 %description -n iwpmd
@@ -242,9 +238,7 @@ Summary: Tools for using the InfiniBand SRP protocol devices
 Obsoletes: srptools <= 1.0.3
 Provides: srptools = %{version}-%{release}
 Obsoletes: openib-srptools <= 0.0.6
-Requires(post): systemd-units
-Requires(preun): systemd-units
-Requires(postun): systemd-units
+%{?systemd_requires}
 Requires: %{name}%{?_isa} = %{version}-%{release}
 Requires: libibumad%{?_isa} = %{version}-%{release}
 Requires: libibverbs%{?_isa} = %{version}-%{release}
@@ -489,7 +483,7 @@ rm -rf %{buildroot}/%{_initrddir}/
 
 %files -n srp_daemon
 %config(noreplace) %{_sysconfdir}/srp_daemon.conf
-%{_libexecdir}/srp_daemon/start_on_all_ports
+%{_libexecdir}/srp_daemon
 %{_unitdir}/srp_daemon.service
 %{_unitdir}/srp_daemon_port@.service
 %{_sbindir}/ibsrpdm

Comment 36 Honggang LI 2017-08-09 01:55:01 UTC
Created attachment 1310973 [details]
Use %{?systemd_requires} macro

Comment 37 Honggang LI 2017-08-11 01:17:08 UTC
(In reply to Kevin Fenzi from comment #33)
> So, the problem is actually that the old libibverbs package had no
> dependency on perl, but this new one (subpackage of rdma-core) does. This
> results in the rawhide composes failing because lorax prunes out perl and
> then the /usr/bin/rxe_cfg script has no perl and errors out. 
> 
> So, very short term I have just untagged rdma-core again, so we can
> hopefully get a rawhide compose today or this weekend. 

Hi, Kevin
 Fedora-rawhide lorax addressed the perl package issue, and we had rebuilt rdma-core with all known issues got fixed. I checked my fedora-rawhide virtual machine, only old rdma package available.

 What we need to do to replace the old rdma package with the new rdma-core package?


> Slightly longer term, we have put in a PR to make lorax not prune perl: 
> https://github.com/rhinstaller/lorax/pull/228 once thats merged and in a
> rawhide lorax build we can retag or rebuild rdma-core
> 
> Longer term still, it would sure be nice if we didn't have to have perl on
> minimal images. I don't know how important rxe_cfg is or if it could be
> re-written to work with system-python or as a binary, but that would sure be
> nice 
> to drop the dep on perl here.

Comment 38 Kevin Fenzi 2017-08-12 16:38:19 UTC
We needed to have a successfull rawhide compose (which has been failing for one reason after another). Happily we did get one late yesterday/this morning, so it should be there in rawhide now.

Comment 39 Honggang LI 2017-08-14 07:45:26 UTC
Confirmed all sub-packages of rdma-core packages are available in rawhide repo. Closing this bug as 'RAWHIDE'.

Thanks!

Comment 40 Vít Ondruch 2017-08-14 08:23:24 UTC
Shouldn't the independent libibverbs [1] and librdmacm [2] packages be retired now?


[1] https://src.fedoraproject.org/rpms/libibverbs
[2] https://src.fedoraproject.org/rpms/librdmacm

Comment 41 Honggang LI 2017-08-14 08:50:56 UTC
(In reply to Vít Ondruch from comment #40)
> Shouldn't the independent libibverbs [1] and librdmacm [2] packages be
> retired now?
> 
> 
> [1] https://src.fedoraproject.org/rpms/libibverbs
> [2] https://src.fedoraproject.org/rpms/librdmacm


It is more complex than that.

1) Individual packages do not exist any more. They are RDMA hardware usr-space drivers which has been folded into new "libibverbs" packages. These packages should be retired.

    rpms/libusnic_verbs -- No-op libibverbs driver for the Cisco usNIC device ( master f26 f25 f24 )
    rpms/libcxgb3 -- Chelsio T3 iWARP HCA Userspace Driver ( master f26 f25 f24 )
    rpms/libcxgb4 -- Chelsio T4 iWARP HCA Userspace Driver ( master f26 f25 f24 )
    rpms/libmlx5 -- Mellanox Connect-IB and ConnectX-4 InfiniBand HCAs User Space Driver ( master f26 f25 )
    rpms/libocrdma -- User-space Library for Emulex ROCE Device ( master f26 f25 f24 )
    rpms/libipathverbs -- QLogic InfiniPath HCA Userspace Driver ( master f26 f25 f24 )
    rpms/libmlx4 -- Mellanox ConnectX InfiniBand HCA Userspace Driver ( master f26 f25 f24 )
    rpms/libmthca -- Mellanox InfiniBand HCA Userspace Driver ( master f26 f25 f24 )
    rpms/libnes -- NetEffect RNIC Userspace Driver ( master f26 f25 f24 )


2) Packages still exist with the *old* names.

    rpms/libibcm -- Userspace InfiniBand Connection Manager ( master f26 f25 f24 )
    rpms/libibumad -- OpenFabrics Alliance InfiniBand umad (user MAD) library ( master f26 f25 f24 )
    rpms/libibverbs -- A library for direct userspace use of RDMA (InfiniBand/iWARP) hardware ( master f26 f25 f24 )
    rpms/librdmacm -- Userspace RDMA Connection Manager ( master f26 f25 f24 )
    rpms/ibacm -- InfiniBand Communication Manager Assistant ( master f26 f25 f24 )


3) Packages had been renamed.
    rpms/libiwpm -- iWarp Port Mapper userspace daemon ( master f26 f25 f24 )
    rpms/rdma -- RDMA Kernel Stack Initializer ( master f26 f25 f24 )
    rpms/srptools -- Tools for using the InfiniBand SRP protocol devices ( master f26 f25 f24 )

libiwpm --> iwpmd
rdma ---> rdma-core
srptools --> srp_daemon

Comment 42 Honggang LI 2017-08-18 12:18:02 UTC
(In reply to Honggang LI from comment #41)

> It is more complex than that.
> 
> 1) Individual packages do not exist any more. They are RDMA hardware
> usr-space drivers which has been folded into new "libibverbs" packages.
> These packages should be retired.
> 
>     rpms/libusnic_verbs -- No-op libibverbs driver for the Cisco usNIC
> device ( master f26 f25 f24 )
>     rpms/libcxgb3 -- Chelsio T3 iWARP HCA Userspace Driver ( master f26 f25
> f24 )
>     rpms/libcxgb4 -- Chelsio T4 iWARP HCA Userspace Driver ( master f26 f25
> f24 )
>     rpms/libmlx5 -- Mellanox Connect-IB and ConnectX-4 InfiniBand HCAs User
> Space Driver ( master f26 f25 )
>     rpms/libocrdma -- User-space Library for Emulex ROCE Device ( master f26
> f25 f24 )

Except libmlx5 and libocrdma, I retired the "f27" and "master" git branches for rest of 15 packages. I will contact package owner of libmlx5 and libocrdma to retire them.

>     rpms/libipathverbs -- QLogic InfiniPath HCA Userspace Driver ( master
> f26 f25 f24 )
>     rpms/libmlx4 -- Mellanox ConnectX InfiniBand HCA Userspace Driver (
> master f26 f25 f24 )
>     rpms/libmthca -- Mellanox InfiniBand HCA Userspace Driver ( master f26
> f25 f24 )
>     rpms/libnes -- NetEffect RNIC Userspace Driver ( master f26 f25 f24 )
> 
> 
> 2) Packages still exist with the *old* names.
> 
>     rpms/libibcm -- Userspace InfiniBand Connection Manager ( master f26 f25
> f24 )
>     rpms/libibumad -- OpenFabrics Alliance InfiniBand umad (user MAD)
> library ( master f26 f25 f24 )
>     rpms/libibverbs -- A library for direct userspace use of RDMA
> (InfiniBand/iWARP) hardware ( master f26 f25 f24 )
>     rpms/librdmacm -- Userspace RDMA Connection Manager ( master f26 f25 f24
> )
>     rpms/ibacm -- InfiniBand Communication Manager Assistant ( master f26
> f25 f24 )
> 
> 
> 3) Packages had been renamed.
>     rpms/libiwpm -- iWarp Port Mapper userspace daemon ( master f26 f25 f24 )
>     rpms/rdma -- RDMA Kernel Stack Initializer ( master f26 f25 f24 )
>     rpms/srptools -- Tools for using the InfiniBand SRP protocol devices (
> master f26 f25 f24 )


Note You need to log in before you can comment on or make changes to this bug.