Bug 1329188

Summary: Review Request: nvml - Non-Volatile Memory Library
Product: [Fedora] Fedora Reporter: Krzysztof Czurylo <krzysztof.czurylo>
Component: Package ReviewAssignee: Dan Williams <dan.j.williams>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: dan.j.williams, dwmw2, esandeen, jamorgan, krzysztof.czurylo, package-review
Target Milestone: ---Flags: dan.j.williams: fedora-review+
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-05-26 08:20:35 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 1274541    

Description Krzysztof Czurylo 2016-04-21 11:20:47 UTC
Spec URL:
https://github.com/pmem/nvml/releases/download/1.0/nvml.spec

SRPM URL:
https://github.com/pmem/nvml/releases/download/1.0/nvml-1.0-1.fc23.src.rpm

Description:
The NVM Library is a collection of libraries for using memory-mapped
persistence, optimized specifically for persistent memory.

Fedora Account System Username: krzycz

Comment 1 Krzysztof Czurylo 2016-04-21 12:11:56 UTC
This is the first package submission - need a sponsor.

Comment 2 Dan Williams 2016-04-23 15:31:49 UTC
What is the function of "%post -n libpmem" and "%preun -n libpmem" scripts to manipulate %{_sysconfdir}/magic?  Can this be moved internally to the build process?

Comment 3 Dan Williams 2016-04-23 18:37:59 UTC
ExlcudeArch must be used for each architecture that a package does not build / run on, and a bug must be filed for each [1].  However, what prevents nvml from being compiled on other architectures besides x86_64?  Seems this could be accomplished with some fall backs.

[1]: https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#Architecture_Support

Comment 4 Dan Williams 2016-04-23 18:46:20 UTC
The NVML Makefiles appear to defeat passing through the system CFLAGS, only local flags are specified.  For example, nvml.spec is missing a %configure line.

https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#Compiler_flags

Comment 5 Krzysztof Czurylo 2016-04-25 16:05:20 UTC
1) The scripts are part of library installation/de-installation process and they update the magic(5) files used by file(1) command, allowing to identify the type of pmem* pool files based on the signature stored in the pool header.
I don't know any better way to update /etc/magic file.

2) Currently, only x86_64 architecture is supported.  This is because in libpmem we use some Intel-specific CPU instructions (inline assembly + xmmintrin.h).

Comment 6 Dan Williams 2016-04-25 16:16:51 UTC
(In reply to Krzysztof Czurylo from comment #5)
> 1) The scripts are part of library installation/de-installation process and
> they update the magic(5) files used by file(1) command, allowing to identify
> the type of pmem* pool files based on the signature stored in the pool
> header.
> I don't know any better way to update /etc/magic file.

Send patches to update the upstream file(1).  Unless / until there is an /etc/magic.d directory where nvml could drop it's own configuration file, it is discouraged to live edit a system's local configuration file.

> 2) Currently, only x86_64 architecture is supported.  This is because in
> libpmem we use some Intel-specific CPU instructions (inline assembly +
> xmmintrin.h).

Can those optimized routines be swapped out for slower POSIX calls or omitted entirely on non-x86_64 builds?  That would save you from having to go file bugs to track unsupported archs per the guidelines.

Comment 7 Krzysztof Czurylo 2016-04-26 13:48:48 UTC
1) I'll remove the scripts modifying /etc/magic from the RPM spec file.

2) The optimized routines cannot be just omitted, as they are part of libpmem API.  Theoretically, to build it for non-x86_64 we could replace them with something that internally calls msync(), or... with empty routines (making sure pmem_is_pmem() would always return 0 in such case).  Based on the status returned by pmem_is_pmem(), the properly written program should switch to use pmem_msync().

However, I don't see a big value in doing that, as such library won't be really useful, except for some testing/experimental purposes.  So, I would rather opt for not supporting other architectures, unless someone will explicitly request it and provide the arch-specific implementation of the low-level routines.
Seems like this is acceptable:
https://fedoraproject.org/wiki/Architectures

The other question is - what to do with 32-bit platforms?  By design, NVML cannot be compiled for 32-bit platforms.  Shall we file bugs for those?

Comment 8 Dan Williams 2016-04-26 15:11:25 UTC
(In reply to Krzysztof Czurylo from comment #7)
> 1) I'll remove the scripts modifying /etc/magic from the RPM spec file.
> 
> 2) The optimized routines cannot be just omitted, as they are part of
> libpmem API.  Theoretically, to build it for non-x86_64 we could replace
> them with something that internally calls msync(), or... with empty routines
> (making sure pmem_is_pmem() would always return 0 in such case).  Based on
> the status returned by pmem_is_pmem(), the properly written program should
> switch to use pmem_msync().
> 
> However, I don't see a big value in doing that, as such library won't be
> really useful, except for some testing/experimental purposes.  So, I would
> rather opt for not supporting other architectures, unless someone will
> explicitly request it and provide the arch-specific implementation of the
> low-level routines.
> Seems like this is acceptable:
> https://fedoraproject.org/wiki/Architectures
> 
> The other question is - what to do with 32-bit platforms?  By design, NVML
> cannot be compiled for 32-bit platforms.  Shall we file bugs for those?

Yes, use multiple ExcludeArch lines instead of ExclusiveArch and file bugs for the primary architectures you don't plan to support:

https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#Architecture_Support

Comment 9 Krzysztof Czurylo 2016-04-28 09:34:09 UTC
Updated/fixed RPM spec:

- Always append EXTRA_CFLAGS to CFLAGS in NVML makefiles
- Use distro build flags macros when building packages
- Do not edit /etc/magic when installing NVM libraries

Spec URL:
https://github.com/pmem/nvml/releases/download/1.0/nvml.spec

SRPM URL:
https://github.com/pmem/nvml/releases/download/1.0/nvml-1.0-3.fc23.src.rpm

Comment 10 Krzysztof Czurylo 2016-05-09 20:58:11 UTC
Spec URL:
https://github.com/pmem/nvml/releases/download/1.0/nvml.spec

SRPM URL:
https://github.com/pmem/nvml/releases/download/1.0/nvml-1.0-1.fc23.src.rpm

Successful build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=13985526


Below is the output from fedora-review tool with items requiring manual review filled out.
Added notes on: license, bundled libraries, excluded architectures, large documentation, latest version, patches and rpmlint spelling-error warnings. (grep for **Note** tag).

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

C/C++:
[x]: Package does not contain kernel modules.
[x]: 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)", "BSD (2 clause)", "MIT/X11 (BSD like)",
     "Unknown or generated", "CDDL". 229 files have unknown license.
     Detailed output of licensecheck in
     /home/krzycz/rpmbuild/SRPMS/nvml/licensecheck.txt
     **Note**: NVML is released under BSD (3 clause) license.
     BSD (2 clause) applies to jemalloc library, which is statically linked to
     libvmem and libvmmalloc libraries.
     CDDL and MIT/X11 licenses apply to some utility scripts or unit test code,
     which are not a part of the binary packages.
     LICENSE file installed with each subpackage includes the above information.
[x]: License file installed when any subpackage combination is installed.
[x]: %build honors applicable compiler flags or justifies otherwise.
[?]: Package contains no bundled libraries without FPC exception.
     **Note**: libvmem and libvmmmaloc contain statically linked jemalloc
     library. This is a significantly modified version of jemalloc 3.6,
     including NVML-specific changes, not available upstream. 
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[x]: Each %files section contains %defattr if rpm < 4.4
     Note: %defattr present but not needed
[-]: 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.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[!]: Package is not known to require an ExcludeArch tag.
     **Note**: At the moment, the only supported arch is x86_64.  This is
     because of dependency on on xmmintrin.h and some inline assembly.
     Other 64-bit architectures could also be supported, if only there is
     a request for that, and if somebody provides the arch-specific
     implementation of the low-level routines for flushing to persistent memory.
     32-bit architectures are not supported by design.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 266240 bytes in 39 files.
     **Note**: Same 3 files installed with each subpackage.
[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 must own all directories that it creates.
[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:
[-]: 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 libpmem
     , libpmem-devel , libpmemblk , libpmemblk-devel , libpmemlog ,
     libpmemlog-devel , libpmemobj , libpmemobj-devel , libvmem , libvmem-
     devel , libvmmalloc , libvmmalloc-devel , nvml-tools , nvml-debuginfo
[x]: Package functions as described.
[!]: Latest version is packaged.
     **Note**: The packaged version is the latest stable NVML release -
     version 1.0. 
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
     **Note**: The patches were required to honor applicable compiler flags and
     to fix one of the unit tests that was sporadically timeouting in "%check".
     They do not affect the library code.
     Both patches has been already merged 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.
[x]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Uses parallel make %{?_smp_mflags} macro.
[x]: The placement of pkgconfig(.pc) files are correct.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

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

Generic:
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: No rpmlint messages.
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
[x]: Package should not use obsolete m4 macros


Rpmlint
-------
Checking: libpmem-1.0-1.fc23.x86_64.rpm
          libpmem-devel-1.0-1.fc23.x86_64.rpm
          libpmemblk-1.0-1.fc23.x86_64.rpm
          libpmemblk-devel-1.0-1.fc23.x86_64.rpm
          libpmemlog-1.0-1.fc23.x86_64.rpm
          libpmemlog-devel-1.0-1.fc23.x86_64.rpm
          libpmemobj-1.0-1.fc23.x86_64.rpm
          libpmemobj-devel-1.0-1.fc23.x86_64.rpm
          libvmem-1.0-1.fc23.x86_64.rpm
          libvmem-devel-1.0-1.fc23.x86_64.rpm
          libvmmalloc-1.0-1.fc23.x86_64.rpm
          libvmmalloc-devel-1.0-1.fc23.x86_64.rpm
          nvml-tools-1.0-1.fc23.x86_64.rpm
          nvml-debuginfo-1.0-1.fc23.x86_64.rpm
          nvml-1.0-1.fc23.src.rpm
libpmem.x86_64: W: spelling-error %description -l en_US pmem -> poem, pm em, pm-em
libpmem-devel.x86_64: W: spelling-error %description -l en_US pmem -> poem, pm em, pm-em
libpmem-devel.x86_64: W: spelling-error %description -l en_US libpmemobj -> memorabilia
libpmemblk.x86_64: W: spelling-error %description -l en_US pmem -> poem, pm em, pm-em
libpmemblk-devel.x86_64: W: spelling-error %description -l en_US pmem -> poem, pm em, pm-em
libpmemblk-devel.x86_64: W: spelling-error %description -l en_US libpmemobj -> memorabilia
libpmemlog.x86_64: W: spelling-error %description -l en_US pmem -> poem, pm em, pm-em
libpmemlog-devel.x86_64: W: spelling-error %description -l en_US pmem -> poem, pm em, pm-em
libpmemlog-devel.x86_64: W: spelling-error %description -l en_US libpmemobj -> memorabilia
libpmemobj.x86_64: W: spelling-error %description -l en_US transactional -> transaction, transnational, transitional
libpmemobj-devel.x86_64: W: spelling-error %description -l en_US transactional -> transaction, transnational, transitional
libvmem.x86_64: W: spelling-error %description -l en_US malloc -> mallow
libvmem-devel.x86_64: W: spelling-error %description -l en_US malloc -> mallow
15 packages and 0 specfiles checked; 0 errors, 13 warnings.

**Note**: False positives.


Rpmlint (debuginfo)
-------------------
Checking: nvml-debuginfo-1.0-1.fc23.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
sh: /usr/bin/python: No such file or directory
14 packages and 0 specfiles checked; 0 errors, 0 warnings.



Requires
--------
libvmem-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    ld-linux-x86-64.so.2()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libpthread.so.0()(64bit)
    libvmem
    libvmem.so.1()(64bit)
    rtld(GNU_HASH)

nvml-tools (rpmlib, GLIBC filtered):
    config(nvml-tools)
    libc.so.6()(64bit)
    libpmem.so.1()(64bit)
    libpmem.so.1(LIBPMEM_1.0)(64bit)
    libpmemblk.so.1()(64bit)
    libpmemblk.so.1(LIBPMEMBLK_1.0)(64bit)
    libpmemlog.so.1()(64bit)
    libpmemlog.so.1(LIBPMEMLOG_1.0)(64bit)
    libpmemobj.so.1()(64bit)
    libpmemobj.so.1(LIBPMEMOBJ_1.0)(64bit)
    libpthread.so.0()(64bit)
    rtld(GNU_HASH)

libpmemblk-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libpmem-devel
    libpmem.so.1()(64bit)
    libpmem.so.1(LIBPMEM_1.0)(64bit)
    libpmemblk
    libpmemblk.so.1()(64bit)
    libpthread.so.0()(64bit)
    rtld(GNU_HASH)

libpmem-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    ld-linux-x86-64.so.2()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libpmem
    libpmem.so.1()(64bit)
    rtld(GNU_HASH)

libvmmalloc (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    ld-linux-x86-64.so.2()(64bit)
    libc.so.6()(64bit)
    libpthread.so.0()(64bit)
    rtld(GNU_HASH)

libpmemlog (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    libc.so.6()(64bit)
    libpmem.so.1()(64bit)
    libpmem.so.1(LIBPMEM_1.0)(64bit)
    libpthread.so.0()(64bit)
    rtld(GNU_HASH)

libvmem (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    ld-linux-x86-64.so.2()(64bit)
    libc.so.6()(64bit)
    libpthread.so.0()(64bit)
    rtld(GNU_HASH)

libpmemobj-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    ld-linux-x86-64.so.2()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libpmem-devel
    libpmem.so.1()(64bit)
    libpmem.so.1(LIBPMEM_1.0)(64bit)
    libpmemobj
    libpmemobj.so.1()(64bit)
    libpthread.so.0()(64bit)
    rtld(GNU_HASH)

libpmemblk (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    libc.so.6()(64bit)
    libpmem.so.1()(64bit)
    libpmem.so.1(LIBPMEM_1.0)(64bit)
    libpthread.so.0()(64bit)
    rtld(GNU_HASH)

libvmmalloc-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    ld-linux-x86-64.so.2()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libpthread.so.0()(64bit)
    libvmmalloc
    libvmmalloc.so.1()(64bit)
    rtld(GNU_HASH)

libpmem (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    ld-linux-x86-64.so.2()(64bit)
    libc.so.6()(64bit)
    rtld(GNU_HASH)

nvml-debuginfo (rpmlib, GLIBC filtered):

libpmemlog-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libpmem-devel
    libpmem.so.1()(64bit)
    libpmem.so.1(LIBPMEM_1.0)(64bit)
    libpmemlog
    libpmemlog.so.1()(64bit)
    libpthread.so.0()(64bit)
    rtld(GNU_HASH)

libpmemobj (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    ld-linux-x86-64.so.2()(64bit)
    libc.so.6()(64bit)
    libpmem.so.1()(64bit)
    libpmem.so.1(LIBPMEM_1.0)(64bit)
    libpthread.so.0()(64bit)
    rtld(GNU_HASH)



Provides
--------
libvmem-devel:
    libvmem-devel
    libvmem-devel(x86-64)
    libvmem.so.1()(64bit)
    libvmem.so.1(LIBVMEM_1.0)(64bit)
    pkgconfig(libvmem)

nvml-tools:
    config(nvml-tools)
    nvml-tools
    nvml-tools(x86-64)

libpmemblk-devel:
    libpmemblk-devel
    libpmemblk-devel(x86-64)
    libpmemblk.so.1()(64bit)
    libpmemblk.so.1(LIBPMEMBLK_1.0)(64bit)
    pkgconfig(libpmemblk)

libpmem-devel:
    libpmem-devel
    libpmem-devel(x86-64)
    libpmem.so.1()(64bit)
    libpmem.so.1(LIBPMEM_1.0)(64bit)
    pkgconfig(libpmem)

libvmmalloc:
    libvmmalloc
    libvmmalloc(x86-64)
    libvmmalloc.so.1()(64bit)

libpmemlog:
    libpmemlog
    libpmemlog(x86-64)
    libpmemlog.so.1()(64bit)
    libpmemlog.so.1(LIBPMEMLOG_1.0)(64bit)

libvmem:
    libvmem
    libvmem(x86-64)
    libvmem.so.1()(64bit)
    libvmem.so.1(LIBVMEM_1.0)(64bit)

libpmemobj-devel:
    libpmemobj-devel
    libpmemobj-devel(x86-64)
    libpmemobj.so.1()(64bit)
    libpmemobj.so.1(LIBPMEMOBJ_1.0)(64bit)
    pkgconfig(libpmemobj)

libpmemblk:
    libpmemblk
    libpmemblk(x86-64)
    libpmemblk.so.1()(64bit)
    libpmemblk.so.1(LIBPMEMBLK_1.0)(64bit)

libvmmalloc-devel:
    libvmmalloc-devel
    libvmmalloc-devel(x86-64)
    libvmmalloc.so.1()(64bit)
    pkgconfig(libvmmalloc)

libpmem:
    libpmem
    libpmem(x86-64)
    libpmem.so.1()(64bit)
    libpmem.so.1(LIBPMEM_1.0)(64bit)

nvml-debuginfo:
    nvml-debuginfo
    nvml-debuginfo(x86-64)

libpmemlog-devel:
    libpmemlog-devel
    libpmemlog-devel(x86-64)
    libpmemlog.so.1()(64bit)
    libpmemlog.so.1(LIBPMEMLOG_1.0)(64bit)
    pkgconfig(libpmemlog)

libpmemobj:
    libpmemobj
    libpmemobj(x86-64)
    libpmemobj.so.1()(64bit)
    libpmemobj.so.1(LIBPMEMOBJ_1.0)(64bit)



Source checksums
----------------
https://github.com/pmem/nvml/archive/1.0.tar.gz :
  CHECKSUM(SHA256) this package     : 2caf7b7242665e05ff824ae81dfdbc40f17e3bde9bcfad69889b9bbb7f9c7f73
  CHECKSUM(SHA256) upstream package : 2caf7b7242665e05ff824ae81dfdbc40f17e3bde9bcfad69889b9bbb7f9c7f73


Generated by fedora-review 0.6.0 (3c5c9d7) last change: 2015-05-20
Command line :/usr/bin/fedora-review --rpm-spec -n nvml
Buildroot used: fedora-23-x86_64
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 11 Eric Sandeen 2016-05-19 17:03:59 UTC
I can help with sponsorship - krzysztof what is your username in FAS?

Comment 12 Dan Williams 2016-05-19 17:57:15 UTC
(In reply to Eric Sandeen from comment #11)
> I can help with sponsorship - krzysztof what is your username in FAS?

I'll answer since he's in the Central European time zone: krzycz

Comment 13 Eric Sandeen 2016-05-19 18:03:11 UTC
Thanks, done.

Comment 14 Gwyn Ciesla 2016-05-23 19:30:26 UTC
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/rpms/nvml