Browse Source

nvml version update & enable ppc64le

Signed-off-by: basebuilder_pel7ppc64lebuilder0 <basebuilder@powerel.org>
master
basebuilder_pel7ppc64lebuilder0 4 years ago
parent
commit
2db44910e4
  1. 589
      SPECS/nvml.spec

589
SPECS/nvml.spec

@ -1,55 +1,41 @@
### !!! ### %define _unpackaged_files_terminate_build 0
%global __provides_exclude_from ^%{_libdir}/pmdk_debug/.*\\.so.*$
%define min_libfabric_ver 1.4.2
%define min_ndctl_ver 63
%define upstreamversion 1.8

Name: nvml Name: nvml
Version: 1.4 Version: 1.8
Release: 3%{?dist} Release: 1%{?dist}
Summary: Non-Volatile Memory Library Summary: Persistent Memory Development Kit (formerly NVML)
License: BSD License: BSD
URL: http://pmem.io/pmdk URL: http://pmem.io/pmdk
Source0: https://github.com/pmem/pmdk/archive/%{version}.tar.gz#/pmdk-%{version}.tar.gz Source0: https://github.com/pmem/pmdk/releases/download/%{upstreamversion}/pmdk-%{upstreamversion}.tar.gz

BuildRequires: gcc
BuildRequires: make
BuildRequires: glibc-devel BuildRequires: glibc-devel
BuildRequires: autoconf BuildRequires: autoconf
BuildRequires: automake BuildRequires: automake
BuildRequires: man BuildRequires: man
BuildRequires: pkgconfig BuildRequires: pkgconfig
BuildRequires: doxygen BuildRequires: ndctl-devel >= %{min_ndctl_ver}
BuildRequires: gdb BuildRequires: daxctl-devel >= %{min_ndctl_ver}
BuildRequires: ndctl-devel >= 59.2-1
BuildRequires: daxctl-devel >= 59.2-1

%define min_libfabric_ver 1.4.2
BuildRequires: libfabric-devel >= %{min_libfabric_ver} BuildRequires: libfabric-devel >= %{min_libfabric_ver}
ExclusiveArch: x86_64 ppc64le


# Debug variants of the libraries should be filtered out of the provides.
%global __provides_exclude_from ^%{_libdir}/pmdk_debug/.*\\.so.*$

# By design, NVML does not support any 32-bit architecture.
# Due to dependency on xmmintrin.h and some inline assembly, it can be
# compiled only for x86_64 at the moment.
# 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.
# https://bugzilla.redhat.com/show_bug.cgi?id=1340634
# https://bugzilla.redhat.com/show_bug.cgi?id=1340635
# https://bugzilla.redhat.com/show_bug.cgi?id=1340636
# https://bugzilla.redhat.com/show_bug.cgi?id=1340637
ExclusiveArch: x86_64


%description %description
The NVM Library is a collection of libraries for using memory-mapped The Persistent Memory Development Kit is a collection of libraries for
persistence, optimized specifically for persistent memory. using memory-mapped persistence, optimized specifically for persistent memory.




%package -n libpmem %package -n libpmem
Summary: Low-level persistent memory support library Summary: Low-level persistent memory support library
Group: System Environment/Libraries
%description -n libpmem %description -n libpmem
The libpmem provides low level persistent memory support. In particular, The libpmem provides low level persistent memory support. In particular,
support for the persistent memory instructions for flushing changes support for the persistent memory instructions for flushing changes
to pmem is provided. to pmem is provided.

%files -n libpmem %files -n libpmem
%defattr(-,root,root,-)
%dir %{_datadir}/pmdk %dir %{_datadir}/pmdk
%{_libdir}/libpmem.so.* %{_libdir}/libpmem.so.*
%{_datadir}/pmdk/pmdk.magic %{_datadir}/pmdk/pmdk.magic
@ -59,20 +45,16 @@ to pmem is provided.


%package -n libpmem-devel %package -n libpmem-devel
Summary: Development files for the low-level persistent memory library Summary: Development files for the low-level persistent memory library
Group: Development/Libraries
Requires: libpmem = %{version}-%{release} Requires: libpmem = %{version}-%{release}
%description -n libpmem-devel %description -n libpmem-devel
The libpmem provides low level persistent memory support. In particular, The libpmem provides low level persistent memory support. In particular,
support for the persistent memory instructions for flushing changes support for the persistent memory instructions for flushing changes
to pmem is provided. to pmem is provided.

This library is provided for software which tracks every store to This library is provided for software which tracks every store to
pmem and needs to flush those changes to durability. Most developers pmem and needs to flush those changes to durability. Most developers
will find higher level libraries like libpmemobj to be much more will find higher level libraries like libpmemobj to be much more
convenient. convenient.

%files -n libpmem-devel %files -n libpmem-devel
%defattr(-,root,root,-)
%{_libdir}/libpmem.so %{_libdir}/libpmem.so
%{_libdir}/pkgconfig/libpmem.pc %{_libdir}/pkgconfig/libpmem.pc
%{_includedir}/libpmem.h %{_includedir}/libpmem.h
@ -84,20 +66,16 @@ convenient.


%package -n libpmem-debug %package -n libpmem-debug
Summary: Debug variant of the low-level persistent memory library Summary: Debug variant of the low-level persistent memory library
Group: Development/Libraries
Requires: libpmem = %{version}-%{release} Requires: libpmem = %{version}-%{release}
%description -n libpmem-debug %description -n libpmem-debug
The libpmem provides low level persistent memory support. In particular, The libpmem provides low level persistent memory support. In particular,
support for the persistent memory instructions for flushing changes support for the persistent memory instructions for flushing changes
to pmem is provided. to pmem is provided.

This sub-package contains debug variant of the library, providing This sub-package contains debug variant of the library, providing
run-time assertions and trace points. The typical way to access the run-time assertions and trace points. The typical way to access the
debug version is to set the environment variable LD_LIBRARY_PATH to debug version is to set the environment variable LD_LIBRARY_PATH to
/usr/lib64/pmdk_debug. /usr/lib64/pmdk_debug.

%files -n libpmem-debug %files -n libpmem-debug
%defattr(-,root,root,-)
%dir %{_libdir}/pmdk_debug %dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/libpmem.so %{_libdir}/pmdk_debug/libpmem.so
%{_libdir}/pmdk_debug/libpmem.so.* %{_libdir}/pmdk_debug/libpmem.so.*
@ -107,15 +85,12 @@ debug version is to set the environment variable LD_LIBRARY_PATH to


%package -n libpmemblk %package -n libpmemblk
Summary: Persistent Memory Resident Array of Blocks library Summary: Persistent Memory Resident Array of Blocks library
Group: System Environment/Libraries Requires: libpmem >= %{version}-%{release}
Requires: libpmem = %{version}-%{release}
%description -n libpmemblk %description -n libpmemblk
The libpmemblk implements a pmem-resident array of blocks, all the same The libpmemblk implements a pmem-resident array of blocks, all the same
size, where a block is updated atomically with respect to power size, where a block is updated atomically with respect to power
failure or program interruption (no torn blocks). failure or program interruption (no torn blocks).

%files -n libpmemblk %files -n libpmemblk
%defattr(-,root,root,-)
%{_libdir}/libpmemblk.so.* %{_libdir}/libpmemblk.so.*
%license LICENSE %license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md %doc ChangeLog CONTRIBUTING.md README.md
@ -123,22 +98,18 @@ failure or program interruption (no torn blocks).


%package -n libpmemblk-devel %package -n libpmemblk-devel
Summary: Development files for the Persistent Memory Resident Array of Blocks library Summary: Development files for the Persistent Memory Resident Array of Blocks library
Group: Development/Libraries
Requires: libpmemblk = %{version}-%{release} Requires: libpmemblk = %{version}-%{release}
Requires: libpmem-devel = %{version}-%{release} Requires: libpmem-devel = %{version}-%{release}
%description -n libpmemblk-devel %description -n libpmemblk-devel
The libpmemblk implements a pmem-resident array of blocks, all the same The libpmemblk implements a pmem-resident array of blocks, all the same
size, where a block is updated atomically with respect to power size, where a block is updated atomically with respect to power
failure or program interruption (no torn blocks). failure or program interruption (no torn blocks).

For example, a program keeping a cache of fixed-size objects in pmem For example, a program keeping a cache of fixed-size objects in pmem
might find this library useful. This library is provided for cases might find this library useful. This library is provided for cases
requiring large arrays of objects at least 512 bytes each. Most requiring large arrays of objects at least 512 bytes each. Most
developers will find higher level libraries like libpmemobj to be developers will find higher level libraries like libpmemobj to be
more generally useful. more generally useful.

%files -n libpmemblk-devel %files -n libpmemblk-devel
%defattr(-,root,root,-)
%{_libdir}/libpmemblk.so %{_libdir}/libpmemblk.so
%{_libdir}/pkgconfig/libpmemblk.pc %{_libdir}/pkgconfig/libpmemblk.pc
%{_includedir}/libpmemblk.h %{_includedir}/libpmemblk.h
@ -151,21 +122,16 @@ more generally useful.


%package -n libpmemblk-debug %package -n libpmemblk-debug
Summary: Debug variant of the Persistent Memory Resident Array of Blocks library Summary: Debug variant of the Persistent Memory Resident Array of Blocks library
Group: Development/Libraries
Requires: libpmemblk = %{version}-%{release} Requires: libpmemblk = %{version}-%{release}
Requires: libpmem = %{version}-%{release}
%description -n libpmemblk-debug %description -n libpmemblk-debug
The libpmemblk implements a pmem-resident array of blocks, all the same The libpmemblk implements a pmem-resident array of blocks, all the same
size, where a block is updated atomically with respect to power size, where a block is updated atomically with respect to power
failure or program interruption (no torn blocks). failure or program interruption (no torn blocks).

This sub-package contains debug variant of the library, providing This sub-package contains debug variant of the library, providing
run-time assertions and trace points. The typical way to access the run-time assertions and trace points. The typical way to access the
debug version is to set the environment variable LD_LIBRARY_PATH to debug version is to set the environment variable LD_LIBRARY_PATH to
/usr/lib64/pmdk_debug. /usr/lib64/pmdk_debug.

%files -n libpmemblk-debug %files -n libpmemblk-debug
%defattr(-,root,root,-)
%dir %{_libdir}/pmdk_debug %dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/libpmemblk.so %{_libdir}/pmdk_debug/libpmemblk.so
%{_libdir}/pmdk_debug/libpmemblk.so.* %{_libdir}/pmdk_debug/libpmemblk.so.*
@ -175,15 +141,13 @@ debug version is to set the environment variable LD_LIBRARY_PATH to


%package -n libpmemlog %package -n libpmemlog
Summary: Persistent Memory Resident Log File library Summary: Persistent Memory Resident Log File library
Group: System Environment/Libraries Requires: libpmem >= %{version}-%{release}
Requires: libpmem = %{version}-%{release}
%description -n libpmemlog %description -n libpmemlog
The libpmemlog library provides a pmem-resident log file. This is The libpmemlog library provides a pmem-resident log file. This is
useful for programs like databases that append frequently to a log useful for programs like databases that append frequently to a log
file. file.


%files -n libpmemlog %files -n libpmemlog
%defattr(-,root,root,-)
%{_libdir}/libpmemlog.so.* %{_libdir}/libpmemlog.so.*
%license LICENSE %license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md %doc ChangeLog CONTRIBUTING.md README.md
@ -191,7 +155,6 @@ file.


%package -n libpmemlog-devel %package -n libpmemlog-devel
Summary: Development files for the Persistent Memory Resident Log File library Summary: Development files for the Persistent Memory Resident Log File library
Group: Development/Libraries
Requires: libpmemlog = %{version}-%{release} Requires: libpmemlog = %{version}-%{release}
Requires: libpmem-devel = %{version}-%{release} Requires: libpmem-devel = %{version}-%{release}
%description -n libpmemlog-devel %description -n libpmemlog-devel
@ -201,7 +164,6 @@ record variable length entries. Most developers will find higher
level libraries like libpmemobj to be more generally useful. level libraries like libpmemobj to be more generally useful.


%files -n libpmemlog-devel %files -n libpmemlog-devel
%defattr(-,root,root,-)
%{_libdir}/libpmemlog.so %{_libdir}/libpmemlog.so
%{_libdir}/pkgconfig/libpmemlog.pc %{_libdir}/pkgconfig/libpmemlog.pc
%{_includedir}/libpmemlog.h %{_includedir}/libpmemlog.h
@ -214,9 +176,7 @@ level libraries like libpmemobj to be more generally useful.


%package -n libpmemlog-debug %package -n libpmemlog-debug
Summary: Debug variant of the Persistent Memory Resident Log File library Summary: Debug variant of the Persistent Memory Resident Log File library
Group: Development/Libraries
Requires: libpmemlog = %{version}-%{release} Requires: libpmemlog = %{version}-%{release}
Requires: libpmem = %{version}-%{release}
%description -n libpmemlog-debug %description -n libpmemlog-debug
The libpmemlog library provides a pmem-resident log file. This The libpmemlog library provides a pmem-resident log file. This
library is provided for cases requiring an append-mostly file to library is provided for cases requiring an append-mostly file to
@ -229,7 +189,6 @@ debug version is to set the environment variable LD_LIBRARY_PATH to
/usr/lib64/pmdk_debug. /usr/lib64/pmdk_debug.


%files -n libpmemlog-debug %files -n libpmemlog-debug
%defattr(-,root,root,-)
%dir %{_libdir}/pmdk_debug %dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/libpmemlog.so %{_libdir}/pmdk_debug/libpmemlog.so
%{_libdir}/pmdk_debug/libpmemlog.so.* %{_libdir}/pmdk_debug/libpmemlog.so.*
@ -239,15 +198,13 @@ debug version is to set the environment variable LD_LIBRARY_PATH to


%package -n libpmemobj %package -n libpmemobj
Summary: Persistent Memory Transactional Object Store library Summary: Persistent Memory Transactional Object Store library
Group: System Environment/Libraries Requires: libpmem >= %{version}-%{release}
Requires: libpmem = %{version}-%{release}
%description -n libpmemobj %description -n libpmemobj
The libpmemobj library provides a transactional object store, The libpmemobj library provides a transactional object store,
providing memory allocation, transactions, and general facilities for providing memory allocation, transactions, and general facilities for
persistent memory programming. persistent memory programming.


%files -n libpmemobj %files -n libpmemobj
%defattr(-,root,root,-)
%{_libdir}/libpmemobj.so.* %{_libdir}/libpmemobj.so.*
%license LICENSE %license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md %doc ChangeLog CONTRIBUTING.md README.md
@ -255,7 +212,6 @@ persistent memory programming.


%package -n libpmemobj-devel %package -n libpmemobj-devel
Summary: Development files for the Persistent Memory Transactional Object Store library Summary: Development files for the Persistent Memory Transactional Object Store library
Group: Development/Libraries
Requires: libpmemobj = %{version}-%{release} Requires: libpmemobj = %{version}-%{release}
Requires: libpmem-devel = %{version}-%{release} Requires: libpmem-devel = %{version}-%{release}
%description -n libpmemobj-devel %description -n libpmemobj-devel
@ -265,10 +221,10 @@ persistent memory programming. Developers new to persistent memory
probably want to start with this library. probably want to start with this library.


%files -n libpmemobj-devel %files -n libpmemobj-devel
%defattr(-,root,root,-)
%{_libdir}/libpmemobj.so %{_libdir}/libpmemobj.so
%{_libdir}/pkgconfig/libpmemobj.pc %{_libdir}/pkgconfig/libpmemobj.pc
%{_includedir}/libpmemobj.h %{_includedir}/libpmemobj.h
%dir %{_includedir}/libpmemobj
%{_includedir}/libpmemobj/*.h %{_includedir}/libpmemobj/*.h
%{_mandir}/man7/libpmemobj.7.gz %{_mandir}/man7/libpmemobj.7.gz
%{_mandir}/man5/poolset.5.gz %{_mandir}/man5/poolset.5.gz
@ -285,9 +241,7 @@ probably want to start with this library.


%package -n libpmemobj-debug %package -n libpmemobj-debug
Summary: Debug variant of the Persistent Memory Transactional Object Store library Summary: Debug variant of the Persistent Memory Transactional Object Store library
Group: Development/Libraries
Requires: libpmemobj = %{version}-%{release} Requires: libpmemobj = %{version}-%{release}
Requires: libpmem = %{version}-%{release}
%description -n libpmemobj-debug %description -n libpmemobj-debug
The libpmemobj library provides a transactional object store, The libpmemobj library provides a transactional object store,
providing memory allocation, transactions, and general facilities for providing memory allocation, transactions, and general facilities for
@ -300,7 +254,6 @@ debug version is to set the environment variable LD_LIBRARY_PATH to
/usr/lib64/pmdk_debug. /usr/lib64/pmdk_debug.


%files -n libpmemobj-debug %files -n libpmemobj-debug
%defattr(-,root,root,-)
%dir %{_libdir}/pmdk_debug %dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/libpmemobj.so %{_libdir}/pmdk_debug/libpmemobj.so
%{_libdir}/pmdk_debug/libpmemobj.so.* %{_libdir}/pmdk_debug/libpmemobj.so.*
@ -308,168 +261,15 @@ debug version is to set the environment variable LD_LIBRARY_PATH to
%doc ChangeLog CONTRIBUTING.md README.md %doc ChangeLog CONTRIBUTING.md README.md




%package -n libvmem
Summary: Volatile Memory allocation library
Group: System Environment/Libraries
%description -n libvmem
The libvmem library turns a pool of persistent memory into a volatile
memory pool, similar to the system heap but kept separate and with
its own malloc-style API.

%files -n libvmem
%defattr(-,root,root,-)
%{_libdir}/libvmem.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md


%package -n libvmem-devel
Summary: Development files for the Volatile Memory allocation library
Group: Development/Libraries
Requires: libvmem = %{version}-%{release}
%description -n libvmem-devel
The libvmem library turns a pool of persistent memory into a volatile
memory pool, similar to the system heap but kept separate and with
its own malloc-style API.

This sub-package contains libraries and header files for developing
applications that want to make use of libvmem.

%files -n libvmem-devel
%defattr(-,root,root,-)
%{_libdir}/libvmem.so
%{_libdir}/pkgconfig/libvmem.pc
%{_includedir}/libvmem.h
%{_mandir}/man7/libvmem.7.gz
%{_mandir}/man3/vmem_*.3.gz
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md


%package -n libvmem-debug
Summary: Debug variant of the Volatile Memory allocation library
Group: Development/Libraries
Requires: libvmem = %{version}-%{release}
%description -n libvmem-debug
The libvmem library turns a pool of persistent memory into a volatile
memory pool, similar to the system heap but kept separate and with
its own malloc-style API.

This sub-package contains debug variant of the library, providing
run-time assertions and trace points. The typical way to access the
debug version is to set the environment variable LD_LIBRARY_PATH to
/usr/lib64/pmdk_debug.

%files -n libvmem-debug
%defattr(-,root,root,-)
%dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/libvmem.so
%{_libdir}/pmdk_debug/libvmem.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md


%package -n libvmmalloc
Summary: Dynamic to Persistent Memory allocation translation library
Group: System Environment/Libraries
%description -n libvmmalloc
The libvmmalloc library transparently converts all the dynamic memory
allocations into persistent memory allocations. This allows the use
of persistent memory as volatile memory without modifying the target
application.

The typical usage of libvmmalloc is to load it via the LD_PRELOAD
environment variable.

%files -n libvmmalloc
%defattr(-,root,root,-)
%{_libdir}/libvmmalloc.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md


%package -n libvmmalloc-devel
Summary: Development files for the Dynamic-to-Persistent allocation library
Group: Development/Libraries
Requires: libvmmalloc = %{version}-%{release}
%description -n libvmmalloc-devel
The libvmmalloc library transparently converts all the dynamic memory
allocations into persistent memory allocations. This allows the use
of persistent memory as volatile memory without modifying the target
application.

This sub-package contains libraries and header files for developing
applications that want to specifically make use of libvmmalloc.

%files -n libvmmalloc-devel
%defattr(-,root,root,-)
%{_libdir}/libvmmalloc.so
%{_libdir}/pkgconfig/libvmmalloc.pc
%{_includedir}/libvmmalloc.h
%{_mandir}/man7/libvmmalloc.7.gz
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md


%package -n libvmmalloc-debug
Summary: Debug variant of the Dynamic-to-Persistent allocation library
Group: Development/Libraries
Requires: libvmmalloc = %{version}-%{release}
%description -n libvmmalloc-debug
The libvmmalloc library transparently converts all the dynamic memory
allocations into persistent memory allocations. This allows the use
of persistent memory as volatile memory without modifying the target
application.

This sub-package contains debug variant of the library, providing
run-time assertions and trace points. The typical way to access the
debug version is to set the environment variable LD_LIBRARY_PATH to
/usr/lib64/pmdk_debug.

%files -n libvmmalloc-debug
%defattr(-,root,root,-)
%dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/libvmmalloc.so
%{_libdir}/pmdk_debug/libvmmalloc.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md


# Specify a virtual Provide for libpmemobj++-static package, so the package
# usage can be tracked.
%package -n libpmemobj++-devel
Summary: C++ bindings for Persistent Memory Transactional Object Store library
Group: Development/Libraries
Provides: libpmemobj++-static = %{version}-%{release}
Requires: libpmemobj-devel = %{version}-%{release}
%description -n libpmemobj++-devel
The libpmemobj library provides a transactional object store,
providing memory allocation, transactions, and general facilities for
persistent memory programming.

This sub-package contains header files for libpmemobj C++ bindings.

%files -n libpmemobj++-devel
%defattr(-,root,root,-)
%{_libdir}/pkgconfig/libpmemobj++.pc
%{_includedir}/libpmemobj++/*.hpp
%{_includedir}/libpmemobj++/detail/*.hpp
%{_docdir}/libpmemobj++-devel/*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md


%package -n libpmempool %package -n libpmempool
Summary: Persistent Memory pool management library Summary: Persistent Memory pool management library
Group: System Environment/Libraries Requires: libpmem >= %{version}-%{release}
Requires: libpmem = %{version}-%{release}
%description -n libpmempool %description -n libpmempool
The libpmempool library provides a set of utilities for off-line The libpmempool library provides a set of utilities for off-line
administration, analysis, diagnostics and repair of persistent memory administration, analysis, diagnostics and repair of persistent memory
pools created by libpmemlog, libpemblk and libpmemobj libraries. pools created by libpmemlog, libpmemblk and libpmemobj libraries.


%files -n libpmempool %files -n libpmempool
%defattr(-,root,root,-)
%{_libdir}/libpmempool.so.* %{_libdir}/libpmempool.so.*
%license LICENSE %license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md %doc ChangeLog CONTRIBUTING.md README.md
@ -477,16 +277,14 @@ pools created by libpmemlog, libpemblk and libpmemobj libraries.


%package -n libpmempool-devel %package -n libpmempool-devel
Summary: Development files for Persistent Memory pool management library Summary: Development files for Persistent Memory pool management library
Group: Development/Libraries
Requires: libpmempool = %{version}-%{release} Requires: libpmempool = %{version}-%{release}
Requires: libpmem-devel = %{version}-%{release} Requires: libpmem-devel = %{version}-%{release}
%description -n libpmempool-devel %description -n libpmempool-devel
The libpmempool library provides a set of utilities for off-line The libpmempool library provides a set of utilities for off-line
administration, analysis, diagnostics and repair of persistent memory administration, analysis, diagnostics and repair of persistent memory
pools created by libpmemlog, libpemblk and libpmemobj libraries. pools created by libpmemlog, libpmemblk and libpmemobj libraries.


%files -n libpmempool-devel %files -n libpmempool-devel
%defattr(-,root,root,-)
%{_libdir}/libpmempool.so %{_libdir}/libpmempool.so
%{_libdir}/pkgconfig/libpmempool.pc %{_libdir}/pkgconfig/libpmempool.pc
%{_includedir}/libpmempool.h %{_includedir}/libpmempool.h
@ -499,13 +297,11 @@ pools created by libpmemlog, libpemblk and libpmemobj libraries.


%package -n libpmempool-debug %package -n libpmempool-debug
Summary: Debug variant of the Persistent Memory pool management library Summary: Debug variant of the Persistent Memory pool management library
Group: Development/Libraries
Requires: libpmempool = %{version}-%{release} Requires: libpmempool = %{version}-%{release}
Requires: libpmem = %{version}-%{release}
%description -n libpmempool-debug %description -n libpmempool-debug
The libpmempool library provides a set of utilities for off-line The libpmempool library provides a set of utilities for off-line
administration, analysis, diagnostics and repair of persistent memory administration, analysis, diagnostics and repair of persistent memory
pools created by libpmemlog, libpemblk and libpmemobj libraries. pools created by libpmemlog, libpmemblk and libpmemobj libraries.


This sub-package contains debug variant of the library, providing This sub-package contains debug variant of the library, providing
run-time assertions and trace points. The typical way to access the run-time assertions and trace points. The typical way to access the
@ -513,25 +309,25 @@ debug version is to set the environment variable LD_LIBRARY_PATH to
/usr/lib64/pmdk_debug. /usr/lib64/pmdk_debug.


%files -n libpmempool-debug %files -n libpmempool-debug
%defattr(-,root,root,-)
%dir %{_libdir}/pmdk_debug %dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/libpmempool.so %{_libdir}/pmdk_debug/libpmempool.so
%{_libdir}/pmdk_debug/libpmempool.so.* %{_libdir}/pmdk_debug/libpmempool.so.*
%license LICENSE %license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md %doc ChangeLog CONTRIBUTING.md README.md



%if %{with fabric}

%package -n librpmem %package -n librpmem
Summary: Remote Access to Persistent Memory library Summary: Remote Access to Persistent Memory library
Group: System Environment/Libraries
Requires: libfabric >= %{min_libfabric_ver} Requires: libfabric >= %{min_libfabric_ver}
Requires: openssh-clients Requires: openssh-clients
%description -n librpmem %description -n librpmem
The librpmem library provides low-level support for remote access The librpmem library provides low-level support for remote access
to persistent memory utilizing RDMA-capable NICs. It can be used to persistent memory utilizing RDMA-capable NICs. It can be used
to replicate peristent memory regions over RDMA protocol. to replicate persistent memory regions over RDMA protocol.


%files -n librpmem %files -n librpmem
%defattr(-,root,root,-)
%{_libdir}/librpmem.so.* %{_libdir}/librpmem.so.*
%license LICENSE %license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md %doc ChangeLog CONTRIBUTING.md README.md
@ -539,18 +335,16 @@ to replicate peristent memory regions over RDMA protocol.


%package -n librpmem-devel %package -n librpmem-devel
Summary: Development files for the Remote Access to Persistent Memory library Summary: Development files for the Remote Access to Persistent Memory library
Group: Development/Libraries
Requires: librpmem = %{version}-%{release} Requires: librpmem = %{version}-%{release}
%description -n librpmem-devel %description -n librpmem-devel
The librpmem library provides low-level support for remote access The librpmem library provides low-level support for remote access
to persistent memory utilizing RDMA-capable NICs. It can be used to persistent memory utilizing RDMA-capable NICs. It can be used
to replicate peristent memory regions over RDMA protocol. to replicate persistent memory regions over RDMA protocol.


This sub-package contains libraries and header files for developing This sub-package contains libraries and header files for developing
applications that want to specifically make use of librpmem. applications that want to specifically make use of librpmem.


%files -n librpmem-devel %files -n librpmem-devel
%defattr(-,root,root,-)
%{_libdir}/librpmem.so %{_libdir}/librpmem.so
%{_libdir}/pkgconfig/librpmem.pc %{_libdir}/pkgconfig/librpmem.pc
%{_includedir}/librpmem.h %{_includedir}/librpmem.h
@ -562,12 +356,11 @@ applications that want to specifically make use of librpmem.


%package -n librpmem-debug %package -n librpmem-debug
Summary: Debug variant of the Remote Access to Persistent Memory library Summary: Debug variant of the Remote Access to Persistent Memory library
Group: Development/Libraries
Requires: librpmem = %{version}-%{release} Requires: librpmem = %{version}-%{release}
%description -n librpmem-debug %description -n librpmem-debug
The librpmem library provides low-level support for remote access The librpmem library provides low-level support for remote access
to persistent memory utilizing RDMA-capable NICs. It can be used to persistent memory utilizing RDMA-capable NICs. It can be used
to replicate peristent memory regions over RDMA protocol. to replicate persistent memory regions over RDMA protocol.


This sub-package contains debug variant of the library, providing This sub-package contains debug variant of the library, providing
run-time assertions and trace points. The typical way to access the run-time assertions and trace points. The typical way to access the
@ -575,7 +368,6 @@ debug version is to set the environment variable LD_LIBRARY_PATH to
/usr/lib64/pmdk_debug. /usr/lib64/pmdk_debug.


%files -n librpmem-debug %files -n librpmem-debug
%defattr(-,root,root,-)
%dir %{_libdir}/pmdk_debug %dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/librpmem.so %{_libdir}/pmdk_debug/librpmem.so
%{_libdir}/pmdk_debug/librpmem.so.* %{_libdir}/pmdk_debug/librpmem.so.*
@ -584,9 +376,7 @@ debug version is to set the environment variable LD_LIBRARY_PATH to




%package -n rpmemd %package -n rpmemd
Group: System Environment/Base
Summary: Target node process executed by librpmem Summary: Target node process executed by librpmem
Requires: libpmem = %{version}-%{release}
Requires: libfabric >= %{min_libfabric_ver} Requires: libfabric >= %{min_libfabric_ver}
%description -n rpmemd %description -n rpmemd
The rpmemd process is executed on a target node by librpmem library The rpmemd process is executed on a target node by librpmem library
@ -596,73 +386,17 @@ and facilitates access to persistent memory over RDMA.
%{_bindir}/rpmemd %{_bindir}/rpmemd
%{_mandir}/man1/rpmemd.1.gz %{_mandir}/man1/rpmemd.1.gz



# _with_fabric
%package -n libpmemcto %endif
Summary: Close-to-Open Persistence library
Group: System Environment/Libraries
Requires: libpmem = %{version}-%{release}
%description -n libpmemcto
The libpmemcto library is a Persistent Memory allocator with no overhead
imposed by run-time flushing or transactional updates.

%files -n libpmemcto
%defattr(-,root,root,-)
%{_libdir}/libpmemcto.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md


%package -n libpmemcto-devel
Summary: Development files for Close-to-Open Persistence library
Group: Development/Libraries
Requires: libpmemcto = %{version}-%{release}
%description -n libpmemcto-devel
The libpmemcto library is a Persistent Memory allocator with no overhead
imposed by run-time flushing or transactional updates.

%files -n libpmemcto-devel
%defattr(-,root,root,-)
%{_libdir}/libpmemcto.so
%{_libdir}/pkgconfig/libpmemcto.pc
%{_includedir}/libpmemcto.h
%{_mandir}/man7/libpmemcto.7.gz
%{_mandir}/man5/poolset.5.gz
%{_mandir}/man3/pmemcto*.3.gz
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md


%package -n libpmemcto-debug
Summary: Debug variant of the Close-to-Open Persistence library
Group: Development/Libraries
Requires: libpmemcto = %{version}-%{release}
%description -n libpmemcto-debug
The libpmemcto library is a Persistent Memory allocator with no overhead
imposed by run-time flushing or transactional updates.

This sub-package contains debug variant of the library, providing
run-time assertions and trace points. The typical way to access the
debug version is to set the environment variable LD_LIBRARY_PATH to
/usr/lib64/pmdk_debug.

%files -n libpmemcto-debug
%defattr(-,root,root,-)
%dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/libpmemcto.so
%{_libdir}/pmdk_debug/libpmemcto.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md




%package -n pmempool %package -n pmempool
Summary: Utilities for Persistent Memory Summary: Utilities for Persistent Memory
Group: System Environment/Base Requires: libpmem >= %{version}-%{release}
Requires: libpmem = %{version}-%{release} Requires: libpmemlog >= %{version}-%{release}
Requires: libpmemlog = %{version}-%{release} Requires: libpmemblk >= %{version}-%{release}
Requires: libpmemblk = %{version}-%{release} Requires: libpmemobj >= %{version}-%{release}
Requires: libpmemobj = %{version}-%{release} Requires: libpmempool >= %{version}-%{release}
Requires: libpmempool = %{version}-%{release}
Requires: libpmemcto = %{version}-%{release}
Obsoletes: nvml-tools < %{version}-%{release} Obsoletes: nvml-tools < %{version}-%{release}
%description -n pmempool %description -n pmempool
The pmempool is a standalone utility for management and off-line analysis The pmempool is a standalone utility for management and off-line analysis
@ -675,15 +409,16 @@ and users of the applications based on PMDK libraries.
%{_bindir}/pmempool %{_bindir}/pmempool
%{_mandir}/man1/pmempool.1.gz %{_mandir}/man1/pmempool.1.gz
%{_mandir}/man1/pmempool-*.1.gz %{_mandir}/man1/pmempool-*.1.gz
%config(noreplace) %{_sysconfdir}/bash_completion.d/pmempool.sh %config(noreplace) %{_sysconfdir}/bash_completion.d/pmempool
%license LICENSE %license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md %doc ChangeLog CONTRIBUTING.md README.md




%if %{with ndctl}

%package -n daxio %package -n daxio
Summary: Perform I/O on Device DAX devices or zero a Device DAX device Summary: Perform I/O on Device DAX devices or zero a Device DAX device
Group: System Environment/Base Requires: libpmem >= %{version}-%{release}
Requires: libpmem = %{version}-%{release}
%description -n daxio %description -n daxio
The daxio utility performs I/O on Device DAX devices or zero The daxio utility performs I/O on Device DAX devices or zero
a Device DAX device. Since the standard I/O APIs (read/write) cannot be used a Device DAX device. Since the standard I/O APIs (read/write) cannot be used
@ -698,23 +433,45 @@ a device.
%license LICENSE %license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md %doc ChangeLog CONTRIBUTING.md README.md


# _with_ndctl
%endif

%if %{with pmemcheck}
%package -n pmreorder
Summary: Consistency Checker for Persistent Memory
Requires: python3
%description -n pmreorder
The pmreorder tool is a collection of python scripts designed to parse
and replay operations logged by pmemcheck - a persistent memory checking tool.
Pmreorder performs the store reordering between persistent memory barriers -
a sequence of flush-fence operations. It uses a consistency checking routine
provided in the command line options to check whether files are in a consistent state.

%files -n pmreorder
%{_bindir}/pmreorder
%{_datadir}/pmreorder/*.py
%{_mandir}/man1/pmreorder.1.gz
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md

# _with_pmemcheck
%endif


%prep %prep
%setup -q -n pmdk-%{version} %setup -q -n pmdk-%{upstreamversion}



%build %build
# Currently, NVML makefiles do not allow to easily override CFLAGS, # For debug build default flags may be overriden to disable compiler
# so the build flags are passed via EXTRA_CFLAGS. For debug build # optimizations.
# selected flags are overriden to disable compiler optimizations. CFLAGS="%{optflags}" \
EXTRA_CFLAGS_RELEASE="%{optflags}" \ LDFLAGS="%{?__global_ldflags}" \
EXTRA_CFLAGS_DEBUG="%{optflags} -Wp,-U_FORTIFY_SOURCE -O0" \ make %{?_smp_mflags} NORPATH=1
EXTRA_CXXFLAGS="%{optflags}" \
NDCTL_ENABLE=y make %{?_smp_mflags}




# Override LIB_AR with empty string to skip installation of static libraries # Override LIB_AR with empty string to skip installation of static libraries
%install %install
NDCTL_ENABLE=y make install DESTDIR=%{buildroot} \ make install DESTDIR=%{buildroot} \
LIB_AR= \ LIB_AR= \
prefix=%{_prefix} \ prefix=%{_prefix} \
libdir=%{_libdir} \ libdir=%{_libdir} \
@ -722,30 +479,35 @@ NDCTL_ENABLE=y make install DESTDIR=%{buildroot} \
mandir=%{_mandir} \ mandir=%{_mandir} \
bindir=%{_bindir} \ bindir=%{_bindir} \
sysconfdir=%{_sysconfdir} \ sysconfdir=%{_sysconfdir} \
docdir=%{_docdir} \ docdir=%{_docdir}
CPP_DOC_DIR=libpmemobj++-devel
mkdir -p %{buildroot}%{_datadir}/pmdk mkdir -p %{buildroot}%{_datadir}/pmdk
cp utils/pmdk.magic %{buildroot}%{_datadir}/pmdk/pmdk.magic cp utils/pmdk.magic %{buildroot}%{_datadir}/pmdk/




%post -n libpmem -p /sbin/ldconfig
%postun -n libpmem -p /sbin/ldconfig %check
%post -n libpmemblk -p /sbin/ldconfig %if 0%{?_skip_check} == 1
%postun -n libpmemblk -p /sbin/ldconfig echo "Check skipped"
%post -n libpmemlog -p /sbin/ldconfig %else
%postun -n libpmemlog -p /sbin/ldconfig %if %{defined _testconfig}
%post -n libpmemobj -p /sbin/ldconfig cp %{_testconfig} src/test/testconfig.sh
%postun -n libpmemobj -p /sbin/ldconfig %else
%post -n libvmem -p /sbin/ldconfig echo "PMEM_FS_DIR=/tmp" > src/test/testconfig.sh
%postun -n libvmem -p /sbin/ldconfig echo "PMEM_FS_DIR_FORCE_PMEM=1" >> src/test/testconfig.sh
%post -n libvmmalloc -p /sbin/ldconfig echo 'TEST_BUILD="debug nondebug"' >> src/test/testconfig.sh
%postun -n libvmmalloc -p /sbin/ldconfig %endif
%post -n libpmempool -p /sbin/ldconfig make check
%postun -n libpmempool -p /sbin/ldconfig %endif
%post -n libpmemcto -p /sbin/ldconfig
%postun -n libpmemcto -p /sbin/ldconfig %ldconfig_scriptlets -n libpmem
%post -n librpmem -p /sbin/ldconfig %ldconfig_scriptlets -n libpmemblk
%postun -n librpmem -p /sbin/ldconfig %ldconfig_scriptlets -n libpmemlog
%ldconfig_scriptlets -n libpmemobj
%ldconfig_scriptlets -n libpmempool

%if %{with fabric}
%ldconfig_scriptlets -n librpmem
%endif


%if 0%{?__debug_package} == 0 %if 0%{?__debug_package} == 0
%debug_package %debug_package
@ -753,56 +515,105 @@ cp utils/pmdk.magic %{buildroot}%{_datadir}/pmdk/pmdk.magic




%changelog %changelog
* Wed Jun 27 2018 Jeff Moyer <jmoyer@redhat.com> - 1.4-3.el7 * Wed Feb 12 2020 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.8-1
- Fix up rpmemd dependency on libfabric - Update to PMDK version 1.8. This release stops shipping
- Resolves: rhbz#1595671 libvmem & libvmmalloc. These libraries are now provided by vmem

package.
* Fri Jun 22 2018 Jeff Moyer <jmoyer@redhat.com> - 1.4-2.el7
- Make library version dependencies more strict (Jeff Moyer) * Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.7-2
- Related: rhbz#1487676 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild


* Fri Jun 08 2018 Jeff Moyer <jmoyer@redhat.com> - 1.4-1.el7 * Tue Oct 1 2019 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.7-1
- rebase to upstream 1.4 - Update to PMDK version 1.7
- disable make check
- Resolves: rhbz#1487676 * Fri Aug 30 2019 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.6.1-1

- Update to PMDK version 1.6.1
* Thu Oct 19 2017 Jeff Moyer <jmoyer@redhat.com> - 1.3-3.el7
- fix up issues found by the clang static checker * Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-2
- Related: rhbz#1455216 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild


* Wed Oct 18 2017 Jeff Moyer <jmoyer@redhat.com> - 1.3-2.el7 * Tue Mar 26 2019 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.6-1
- pull in spec changes from upstream - Update to PMDK version 1.6
- Related: rhbz#1455216

* Mon Mar 18 2019 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.6-0.1.rc2
* Mon Oct 16 2017 Jeff Moyer <jmoyer@redhat.com> - 1.3-1.el7 - Update to PMDK version 1.6-rc2
- rebase to version 1.3
- Resolves: rhbz#1455216 * Fri Mar 08 2019 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.5.1-1

- Update to PMDK version 1.5.1
* Wed Apr 05 2017 Jeff Moyer <jmoyer@redhat.com> - 1.2.1-4.el7
- Fix mapping type in pool params parse * Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.5-3
- Resolves: bz#1436820 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild


* Tue Mar 28 2017 Jeff Moyer <jmoyer@redhat.com> - 1.2.1-3.el7 * Fri Dec 14 2018 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.5-2
- Add 'Requires: libpmem' lines for debug packages. - Remove Group: tag and add ownership information for libpmemobj headers
- Related: bz#1383467 bz#1382407 directory.


* Tue Mar 28 2017 Jeff Moyer <jmoyer@redhat.com> - 1.2.1-2.el7 * Tue Nov 6 2018 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.5-1
- Actually apply stable update patches - Update to PMDK version 1.5
- Related: bz#1383467 bz#1382407 libpmemobj C++ bindings moved to separate package (RHBZ #1647145)

pmempool convert is now a thin wrapper around pmdk-convert (RHBZ #1647147)
* Tue Mar 28 2017 Jeff Moyer <jmoyer@redhat.com> - 1.2.1-1.el7
- Update to latest stable release * Fri Aug 17 2018 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.4.2-1
- Pull in pending stable patches for the test harness - Update to PMDK version 1.4.2 (RHBZ #1589406)
- disable % check temporarily until all test issues are resolved
- Resolves: bz#1383467 bz#1382407 * Tue Aug 14 2018 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.4.2-0.2.rc1

- Revert package name change
* Thu Jul 14 2016 Jeff Moyer <jmoyer@redhat.com> - 1.1-4.el7
- Add missing version dependencies between packages * Tue Aug 14 2018 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.4.2-0.1.rc1
- Resolves: bz#1274541 - Update to PMDK version 1.4.2-rc1 (RHBZ #1589406)


* Mon Jul 11 2016 Jeff Moyer <jmoyer@redhat.com> - 1.1-3.el7 * Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.4-4
- Initial import for RHEL 7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
- Resolves: bz#1274541
* Fri Mar 30 2018 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.4-3
- Revert package name change
- Re-enable check

* Thu Mar 29 2018 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.4-2
- Fix issues found by rpmlint

* Thu Mar 29 2018 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.4-1
- Rename NVML project to PMDK
- Update to PMDK version 1.4 (RHBZ #1480578, #1539562, #1539564)

* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Sat Jan 27 2018 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.3.1-1
- Update to NVML version 1.3.1 (RHBZ #1480578)

* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Mon Jul 17 2017 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.3-1
- Update to NVML version 1.3 (RHBZ #1451741, RHBZ #1455216)
- Add librpmem and rpmemd sub-packages
- Force file system to appear as PMEM for make check

* Fri Jun 16 2017 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.2.3-2
- Update to NVML version 1.2.3 (RHBZ #1451741)

* Sat Apr 15 2017 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.2.2-1
- Update to NVML version 1.2.2 (RHBZ #1436820, RHBZ #1425038)

* Thu Mar 16 2017 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.2.1-1
- Update to NVML version 1.2.1 (RHBZ #1425038)

* Tue Feb 21 2017 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.2-3
- Fix compilation under gcc 7.0.x (RHBZ #1424004)

* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Fri Dec 30 2016 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.2-1
- Update to NVML version 1.2 (RHBZ #1383467)
- Add libpmemobj C++ bindings

* Thu Jul 14 2016 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.1-3
- Add missing package version requirements


* Mon Jul 11 2016 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.1-2 * Mon Jul 11 2016 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.1-2
- Move debug variants of the libraries to -debug subpackages - Move debug variants of the libraries to -debug subpackages

Loading…
Cancel
Save