Bug 1333933 - Review Request: ixpdimm_sw - API for development of IXPDIMM management utilities
Summary: Review Request: ixpdimm_sw - API for development of IXPDIMM management utilities
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Dan Williams
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 1478977
TreeView+ depends on / blocked
 
Reported: 2016-05-06 17:27 UTC by Namratha Kothapalli
Modified: 2020-04-24 13:55 UTC (History)
5 users (show)

Fixed In Version: ixpdimm_sw-01.00.00.2107-1.fc24
Clone Of:
Environment:
Last Closed: 2020-04-24 13:55:09 UTC
Type: ---
Embargoed:
dan.j.williams: fedora-review+


Attachments (Terms of Use)

Description Namratha Kothapalli 2016-05-06 17:27:39 UTC
Spec URL: https://github.com/01org/IXPDIMMSW/releases/download/v01.00.00.2049/ixpdimm_sw.spec

SRPM URL: https://github.com/01org/IXPDIMMSW/releases/libixpdimm-api-01.00.00.2055-1.fc23.src.rpm 

Description: An application program interface (API) for configuring and managing ixpdimm_sw. Including basic inventory, capacity provisioning, health monitoring, and troubleshooting. 

Fedora Account System Username:nkothapa

Comment 3 Dan Williams 2016-05-07 17:02:46 UTC
Tooling expects that the spec file name matches the package name, for example:

$ fedora-review --rpm-spec -n libixpdimm-api-01.00.00.2049-1.fc23.src.rpm 
INFO: Processing local files: libixpdimm-api-01.00.00.2049-1.fc23.src.rpm
INFO: Getting .spec and .srpm Urls from : Local files in ~
INFO:   --> SRPM url: file://~/libixpdimm-api-01.00.00.2049-1.fc23.src.rpm
INFO: Using review directory: ~/libixpdimm-api
ERROR: 'Cannot find spec file in srpm' (logs in ~/.cache/fedora-review.log)

...because:

$ rpm -qlp libixpdimm-api-01.00.00.2049-1.fc23.src.rpm 
ixpdimm_sw.spec
ixpdimm_sw.tar.bz2

Comment 4 Namratha Kothapalli 2016-05-10 06:28:50 UTC
Updated the spec per above comment. 

Spec URL: https://github.com/01org/IXPDIMMSW/releases/download/v01.00.00.2049/ixpdimm_sw.spec

SRPM URL: https://github.com/01org/IXPDIMMSW/releases/download/v01.00.00.2049/ixpdimm_sw-01.00.00.2049-1.fc23.src.rpm

rpmlint ixpdimm_sw-01.00.00.2049-1.fc23.src.rpm
ixpdimm_sw.src: W: no-version-in-last-changelog
ixpdimm_sw.src: W: invalid-url Source0: ixpdimm_sw.tar.bz2
1 packages and 0 specfiles checked; 0 errors, 3 warnings.

rpmlint ixpdimm_sw.spec
ixpdimm_sw.spec: W: invalid-url Source0: ixpdimm_sw.tar.bz2
0 packages and 1 specfiles checked; 0 errors, 1 warnings.

Comment 5 Dan Williams 2016-05-12 17:29:23 UTC
(In reply to Namratha Kothapalli from comment #4)
> Updated the spec per above comment. 
> 
> Spec URL:
> https://github.com/01org/IXPDIMMSW/releases/download/v01.00.00.2049/
> ixpdimm_sw.spec
> 
> SRPM URL:
> https://github.com/01org/IXPDIMMSW/releases/download/v01.00.00.2049/
> ixpdimm_sw-01.00.00.2049-1.fc23.src.rpm
> 
> rpmlint ixpdimm_sw-01.00.00.2049-1.fc23.src.rpm
> ixpdimm_sw.src: W: no-version-in-last-changelog

Fix this by using the right format for the changelog.  It's missing the version number on the entry line.  For example:

* Mon Apr 04 2016 Dan Williams <dan.j.williams> - 52-1
- Initial rpm submission to Fedora

> ixpdimm_sw.src: W: invalid-url Source0: ixpdimm_sw.tar.bz2

Fix this by referencing the url of the source archive on github:

   https://github.com/01org/IXPDIMMSW/archive/v01.00.00.2049.tar.gz

...actually you seem to have the same problem that ndctl had prior to Jeff's recent comment [1].  The source package should be in "package-version" format.  For ndctl I fixed it by changing tag names from "v52" to "ndctl-52".

[1]: https://lists.01.org/pipermail/linux-nvdimm/2016-May/005679.html

Comment 6 Dan Williams 2016-05-12 19:58:06 UTC
This package does not build:

Getting requirements for ixpdimm_sw-01.00.00.2049-1.fc24.src
 --> ctemplate-devel-2.3-6.fc24.x86_64
 --> kmod-devel-22-4.fc24.x86_64
 --> ndctl-devel-52-1.fc24.x86_64
 --> sqlite-devel-3.11.0-3.fc24.x86_64
Error: No Package found for libintelnvm-cim
Error: No Package found for libintelnvm-cim-devel
Error: No Package found for libintelnvm-cli
Error: No Package found for libintelnvm-cli-devel
Error: No Package found for libintelnvm-i18n
Error: No Package found for libintelnvm-i18n-devel

So, as far as I can see, we either need to complete the review of those packages as pre-requisites first, or roll them all into this single spec file so all dependencies are local.

Comment 7 Namratha Kothapalli 2016-07-13 22:28:24 UTC
Incorporated feedback received from prerequisite packages. 

Spec URL: https://github.com/01org/ixpdimm_sw/releases/download/v01.00.00.2095/ixpdimm_sw.spec

SRPM URL: https://github.com/01org/ixpdimm_sw/releases/download/v01.00.00.2095/ixpdimm_sw-01.00.00.2095-1.fc23.src.rpm

rpmlint output - 
ixpdimm_sw]# rpmlint output/rpmbuild/RPMS/x86_64/
ixpdimm_sw-devel.x86_64: W: only-non-binary-in-usr-lib
7 packages and 0 specfiles checked; 0 errors, 1 warnings.

[root@fedorabuild ixpdimm_sw]# rpmlint output/rpmbuild/SRPMS/
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
[root@fedorabuild ixpdimm_sw]# vi install/linux/rel-release/ixpdimm_sw.spec

Comment 9 Dan Williams 2016-07-26 23:14:32 UTC
I am unable to build this package due to missing ctemplate in Rawhide.

ctemplate package only exists in Fedora 23, but has been marked as retired/orphaned for all Fedora releases after 23 as well as EPEL.

See: https://admin.fedoraproject.org/pkgdb/package/rpms/ctemplate/

Comment 10 Namratha Kothapalli 2016-07-28 15:06:44 UTC
I asked for "unretirement" of ctemplate package, and it should be available now in Rawhide.

Comment 11 Dan Williams 2016-08-02 01:05:07 UTC
I grabbed the latest 2104 and hit some missing BuildRequires:

Index: SPECS/ixpdimm_sw.spec
===================================================================
--- SPECS.orig/ixpdimm_sw.spec
+++ SPECS/ixpdimm_sw.spec
@@ -17,6 +17,9 @@ Requires: libinvm-cim >= 1.0.0.1040
 BuildRequires: pkgconfig(libkmod)
 BuildRequires: pkgconfig(sqlite3)
 BuildRequires: pkgconfig(libndctl)
+BuildRequires: pkgconfig(openssl)
+BuildRequires: numactl-devel
+BuildRequires: sblim-cmpi-devel
 BuildRequires: libinvm-i18n-devel
 BuildRequires: libinvm-cim-devel
 BuildRequires: libinvm-cli-devel

I then hit this compilation error:

logic/PostLayoutRequestDeviationCheck.cpp: In member function 'double wbem::logic::PostLayoutRequestDeviationCheck::findPercentDeviation(NVM_UINT64, NVM_UINT64)':  
logic/PostLayoutRequestDeviationCheck.cpp:52:57: error: call of overloaded 'abs(NVM_UINT64)' is ambiguous
  return (double)100.0 * (abs(observedValue-expectedValue))/expectedValue;

Comment 12 Namratha Kothapalli 2016-08-03 23:03:38 UTC
Here's the result of a fedora-review run with the rest of the template filled out: 

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

C/C++:
[-]: Package does not contain kernel modules.
[-]: Package contains no static executables.
[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.
[x]: Development (unversioned) .so files in -devel subpackage, if present.

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]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "BSD (3 clause)", "Unknown or generated". 20 files have unknown
     license. Detailed output of licensecheck in
     /home/namu/1333933-ixpdimm_sw/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/lib64/cmpi
[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.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[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.
[ ]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[x]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: 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 40960 bytes in 4 files.
[x]: 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 does not own files or directories owned by other packages.
[x]: All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[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:
[x]: 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]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in
     libixpdimm-cim , ixpdimm-monitor , ixpdimm-cli , ixpdimm_sw-debuginfo
[x]: Package functions as described.
[x]: 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.
[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]: Spec use %global instead of %define unless justified.
     Note: %define requiring justification: %define build_version
     01.00.00.2104, %define _unpackaged_files_terminate_build 0
[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]: Uses parallel make %{?_smp_mflags} macro.
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.

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

Generic:
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[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: ixpdimm_sw-01.00.00.2104-1.fc26.x86_64.rpm
          ixpdimm_sw-devel-01.00.00.2104-1.fc26.x86_64.rpm
          libixpdimm-core-01.00.00.2104-1.fc26.x86_64.rpm
          libixpdimm-cim-01.00.00.2104-1.fc26.x86_64.rpm
          ixpdimm-monitor-01.00.00.2104-1.fc26.x86_64.rpm
          ixpdimm-cli-01.00.00.2104-1.fc26.x86_64.rpm
          ixpdimm_sw-debuginfo-01.00.00.2104-1.fc26.x86_64.rpm
          ixpdimm_sw-01.00.00.2104-1.fc26.src.rpm
ixpdimm_sw-devel.x86_64: W: only-non-binary-in-usr-lib
8 packages and 0 specfiles checked; 0 errors, 1 warnings.

Rpmlint (debuginfo)
-------------------
Checking: ixpdimm_sw-debuginfo-01.00.00.2104-1.fc26.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.

Rpmlint (installed packages)
----------------------------
libixpdimm-core.x86_64: W: spelling-error Summary(en_US) ixpdimm -> dimmed
libixpdimm-core.x86_64: W: spelling-error Summary(en_US) sw -> SW, aw, sq
ixpdimm_sw-debuginfo.x86_64: W: spelling-error Summary(en_US) ixpdimm -> dimmed
ixpdimm_sw-debuginfo.x86_64: W: spelling-error Summary(en_US) sw -> SW, aw, sq
ixpdimm_sw-debuginfo.x86_64: W: spelling-error %description -l en_US ixpdimm -> dimmed
ixpdimm_sw-debuginfo.x86_64: W: spelling-error %description -l en_US sw -> SW, aw, sq
ixpdimm_sw-devel.x86_64: W: spelling-error Summary(en_US) ixpdimm -> dimmed
ixpdimm_sw-devel.x86_64: W: spelling-error Summary(en_US) sw -> SW, aw, sq
ixpdimm_sw-devel.x86_64: W: spelling-error %description -l en_US ixpdimm -> dimmed
ixpdimm_sw-devel.x86_64: W: spelling-error %description -l en_US sw -> SW, aw, sq
ixpdimm_sw-devel.x86_64: W: only-non-binary-in-usr-lib
7 packages and 0 specfiles checked; 0 errors, 11 warnings.

Requires
--------
libixpdimm-core (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    ixpdimm_sw(x86-64)
    libc.so.6()(64bit)
    libcrypto.so.10()(64bit)
    libcrypto.so.10(libcrypto.so.10)(64bit)
    libdl.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libixpdimm.so.01()(64bit)
    libm.so.6()(64bit)
    libpthread.so.0()(64bit)
    libsqlite3.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    rtld(GNU_HASH)

ixpdimm-cli (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    libc.so.6()(64bit)
    libcrypto.so.10()(64bit)
    libcrypto.so.10(libcrypto.so.10)(64bit)
    libdl.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libinvm-cim.so.1()(64bit)
    libinvm-cli.so.1()(64bit)
    libinvm-i18n.so.1()(64bit)
    libixpdimm-cim(x86-64)
    libixpdimm-cim.so.01()(64bit)
    libixpdimm-core.so.01()(64bit)
    libixpdimm.so.01()(64bit)
    libkmod.so.2()(64bit)
    libm.so.6()(64bit)
    libndctl.so.6()(64bit)
    libpthread.so.0()(64bit)
    libsqlite3.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libz.so.1()(64bit)
    rtld(GNU_HASH)

ixpdimm-monitor (rpmlib, GLIBC filtered):
    /bin/sh
    libc.so.6()(64bit)
    libcrypto.so.10()(64bit)
    libcrypto.so.10(libcrypto.so.10)(64bit)
    libdl.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libinvm-i18n.so.1()(64bit)
    libixpdimm-cim(x86-64)
    libixpdimm.so.01()(64bit)
    libkmod.so.2()(64bit)
    libm.so.6()(64bit)
    libndctl.so.6()(64bit)
    libpthread.so.0()(64bit)
    libsqlite3.so.0()(64bit)
    libssl.so.10()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libz.so.1()(64bit)
    rtld(GNU_HASH)
    systemd-units

ixpdimm_sw-debuginfo (rpmlib, GLIBC filtered):

libixpdimm-cim (rpmlib, GLIBC filtered):
    /bin/sh
    /sbin/ldconfig
    config(libixpdimm-cim)
    libc.so.6()(64bit)
    libcrypto.so.10()(64bit)
    libcrypto.so.10(libcrypto.so.10)(64bit)
    libdl.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libinvm-cim.so.1()(64bit)
    libinvm-i18n.so.1()(64bit)
    libixpdimm-core(x86-64)
    libixpdimm-core.so.01()(64bit)
    libixpdimm.so.01()(64bit)
    libkmod.so.2()(64bit)
    libm.so.6()(64bit)
    libndctl.so.6()(64bit)
    libpthread.so.0()(64bit)
    libsqlite3.so.0()(64bit)
    libssl.so.10()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.1)(64bit)
    libstdc++.so.6(CXXABI_1.3.8)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    pywbem
    rtld(GNU_HASH)

ixpdimm_sw (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    config(ixpdimm_sw)
    libc.so.6()(64bit)
    libcrypto.so.10()(64bit)
    libcrypto.so.10(libcrypto.so.10)(64bit)
    libdl.so.2()(64bit)
    libinvm-cim
    libinvm-cli
    libinvm-i18n
    libinvm-i18n.so.1()(64bit)
    libm.so.6()(64bit)
    libndctl.so.6()(64bit)
    libndctl.so.6(LIBNDCTL_1)(64bit)
    libndctl.so.6(LIBNDCTL_3)(64bit)
    libnuma.so.1()(64bit)
    libnuma.so.1(libnuma_1.1)(64bit)
    libnuma.so.1(libnuma_1.2)(64bit)
    libpthread.so.0()(64bit)
    libsqlite3.so.0()(64bit)
    libz.so.1()(64bit)
    ndctl-libs
    rtld(GNU_HASH)

ixpdimm_sw-devel (rpmlib, GLIBC filtered):
    ixpdimm_sw(x86-64)
    libixpdimm-cim.so.01()(64bit)
    libixpdimm-cli.so.01()(64bit)
    libixpdimm-core.so.01()(64bit)
    libixpdimm.so.01()(64bit)

Provides
--------
libixpdimm-core:
    libixpdimm-core
    libixpdimm-core(x86-64)
    libixpdimm-core.so.01()(64bit)

ixpdimm-cli:
    ixpdimm-cli
    ixpdimm-cli(x86-64)
    libixpdimm-cli.so.01()(64bit)

ixpdimm-monitor:
    ixpdimm-monitor
    ixpdimm-monitor(x86-64)

ixpdimm_sw-debuginfo:
    ixpdimm_sw-debuginfo
    ixpdimm_sw-debuginfo(x86-64)

libixpdimm-cim:
    config(libixpdimm-cim)
    libixpdimm-cim
    libixpdimm-cim(x86-64)
    libixpdimm-cim.so.01()(64bit)

ixpdimm_sw:
    config(ixpdimm_sw)
    ixpdimm_sw
    ixpdimm_sw(x86-64)
    libixpdimm.so.01()(64bit)

ixpdimm_sw-devel:
    ixpdimm_sw-devel
    ixpdimm_sw-devel(x86-64)

Source checksums
----------------
https://github.com/01org/ixpdimm_sw/archive/v01.00.00.2104.tar.gz#/ixpdimm_sw-01.00.00.2104.tar.gz :
  CHECKSUM(SHA256) this package     : e54a8bbb67ef389ca11f0faa1d6375db35bc3aece4f852007ca0f95ed7f6ff8a
  CHECKSUM(SHA256) upstream package : e8f4478d4ae8d5b788122b64af54ae2802b36c6230ede953e03feb09683f72fe
However, diff -r shows no differences

Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
Command line :/usr/bin/fedora-review -b 1333933 -m fedora-rawhide-x86_64
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 13 Dan Williams 2016-08-04 15:11:58 UTC
Looks ok to me.  Longer term we might consider collapsing these packages into a smaller set, but I don't see that as a blocker.

Comment 14 Gwyn Ciesla 2016-08-04 15:37:53 UTC
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/rpms/ixpdimm_sw


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