9ab03a
9ab03a
# rpmbuild options:
9ab03a
#   --with | --without fabric
9ab03a
#   --with | --without ndctl
9ab03a
#   --define _testconfig <path to custom testconfig.sh>
9ab03a
9ab03a
# do not terminate build if files in the $RPM_BUILD_ROOT
9ab03a
# directory are not found in %%files (without fabric case)
9ab03a
%define _unpackaged_files_terminate_build 0
9ab03a
9ab03a
%bcond_without fabric
9ab03a
9ab03a
# by default build w/ ndctl, unless explicitly disabled
9ab03a
%bcond_without ndctl
9ab03a
9ab03a
%define min_libfabric_ver 1.4.2
9ab03a
%define min_ndctl_ver 60.1
9ab03a
9ab03a
Name:		pmdk
9ab03a
Version:	1.6
9ab03a
Release:	2%{?dist}
9ab03a
Summary:	Persistent Memory Development Kit (former NVML)
9ab03a
License:	BSD
9ab03a
URL:		http://pmem.io/pmdk
9ab03a
9ab03a
Source0:	https://github.com/pmem/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
9ab03a
Patch0:		pmdk-use-platform-python.patch
9ab03a
Patch1:		pmdk-fix-dynamic-link.patch
9ab03a
9ab03a
BuildRequires:	gcc
9ab03a
BuildRequires:	make
9ab03a
BuildRequires:	glibc-devel
9ab03a
BuildRequires:	autoconf
9ab03a
BuildRequires:	automake
9ab03a
BuildRequires:	man
9ab03a
BuildRequires:	pkgconfig
9ab03a
9ab03a
%if %{with ndctl}
9ab03a
BuildRequires:	ndctl-devel >= %{min_ndctl_ver}
9ab03a
BuildRequires:	daxctl-devel >= %{min_ndctl_ver}
9ab03a
%endif
9ab03a
9ab03a
%if %{with fabric}
9ab03a
BuildRequires:	libfabric-devel >= %{min_libfabric_ver}
9ab03a
%endif
9ab03a
9ab03a
9ab03a
# Debug variants of the libraries should be filtered out of the provides.
9ab03a
%global __provides_exclude_from ^%{_libdir}/pmdk_debug/.*\\.so.*$
9ab03a
9ab03a
# By design, PMDK does not support any 32-bit architecture.
9ab03a
# Due to dependency on xmmintrin.h and some inline assembly, it can be
9ab03a
# compiled only for x86_64 at the moment.
9ab03a
# Other 64-bit architectures could also be supported, if only there is
9ab03a
# a request for that, and if somebody provides the arch-specific
9ab03a
# implementation of the low-level routines for flushing to persistent
9ab03a
# memory.
9ab03a
9ab03a
# https://bugzilla.redhat.com/show_bug.cgi?id=1340634
9ab03a
# https://bugzilla.redhat.com/show_bug.cgi?id=1340635
9ab03a
# https://bugzilla.redhat.com/show_bug.cgi?id=1340636
9ab03a
# https://bugzilla.redhat.com/show_bug.cgi?id=1340637
9ab03a
9ab03a
ExclusiveArch: x86_64
9ab03a
9ab03a
%description
9ab03a
The Persistent Memory Development Kit is a collection of libraries for
9ab03a
using memory-mapped persistence, optimized specifically for persistent memory.
9ab03a
9ab03a
9ab03a
%package -n libpmem
9ab03a
Summary: Low-level persistent memory support library
9ab03a
Group: System Environment/Libraries
9ab03a
%description -n libpmem
9ab03a
The libpmem provides low level persistent memory support. In particular,
9ab03a
support for the persistent memory instructions for flushing changes
9ab03a
to pmem is provided.
9ab03a
9ab03a
%files -n libpmem
9ab03a
%defattr(-,root,root,-)
9ab03a
%dir %{_datadir}/pmdk
9ab03a
%{_libdir}/libpmem.so.*
9ab03a
%{_datadir}/pmdk/pmdk.magic
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n libpmem-devel
9ab03a
Summary: Development files for the low-level persistent memory library
9ab03a
Group: Development/Libraries
9ab03a
Requires: libpmem = %{version}-%{release}
9ab03a
%description -n libpmem-devel
9ab03a
The libpmem provides low level persistent memory support. In particular,
9ab03a
support for the persistent memory instructions for flushing changes
9ab03a
to pmem is provided.
9ab03a
9ab03a
This library is provided for software which tracks every store to
9ab03a
pmem and needs to flush those changes to durability. Most developers
9ab03a
will find higher level libraries like libpmemobj to be much more
9ab03a
convenient.
9ab03a
9ab03a
%files -n libpmem-devel
9ab03a
%defattr(-,root,root,-)
9ab03a
%{_libdir}/libpmem.so
9ab03a
%{_libdir}/pkgconfig/libpmem.pc
9ab03a
%{_includedir}/libpmem.h
9ab03a
%{_mandir}/man7/libpmem.7.gz
9ab03a
%{_mandir}/man3/pmem_*.3.gz
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n libpmem-debug
9ab03a
Summary: Debug variant of the low-level persistent memory library
9ab03a
Group: Development/Libraries
9ab03a
Requires: libpmem = %{version}-%{release}
9ab03a
%description -n libpmem-debug
9ab03a
The libpmem provides low level persistent memory support. In particular,
9ab03a
support for the persistent memory instructions for flushing changes
9ab03a
to pmem is provided.
9ab03a
9ab03a
This sub-package contains debug variant of the library, providing
9ab03a
run-time assertions and trace points. The typical way to access the
9ab03a
debug version is to set the environment variable LD_LIBRARY_PATH to
9ab03a
/usr/lib64/pmdk_debug.
9ab03a
9ab03a
%files -n libpmem-debug
9ab03a
%defattr(-,root,root,-)
9ab03a
%dir %{_libdir}/pmdk_debug
9ab03a
%{_libdir}/pmdk_debug/libpmem.so
9ab03a
%{_libdir}/pmdk_debug/libpmem.so.*
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n libpmemblk
9ab03a
Summary: Persistent Memory Resident Array of Blocks library
9ab03a
Group: System Environment/Libraries
9ab03a
Requires: libpmem = %{version}-%{release}
9ab03a
%description -n libpmemblk
9ab03a
The libpmemblk implements a pmem-resident array of blocks, all the same
9ab03a
size, where a block is updated atomically with respect to power
9ab03a
failure or program interruption (no torn blocks).
9ab03a
9ab03a
%files -n libpmemblk
9ab03a
%defattr(-,root,root,-)
9ab03a
%{_libdir}/libpmemblk.so.*
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n libpmemblk-devel
9ab03a
Summary: Development files for the Persistent Memory Resident Array of Blocks library
9ab03a
Group: Development/Libraries
9ab03a
Requires: libpmemblk = %{version}-%{release}
9ab03a
Requires: libpmem-devel = %{version}-%{release}
9ab03a
%description -n libpmemblk-devel
9ab03a
The libpmemblk implements a pmem-resident array of blocks, all the same
9ab03a
size, where a block is updated atomically with respect to power
9ab03a
failure or program interruption (no torn blocks).
9ab03a
9ab03a
For example, a program keeping a cache of fixed-size objects in pmem
9ab03a
might find this library useful. This library is provided for cases
9ab03a
requiring large arrays of objects at least 512 bytes each. Most
9ab03a
developers will find higher level libraries like libpmemobj to be
9ab03a
more generally useful.
9ab03a
9ab03a
%files -n libpmemblk-devel
9ab03a
%defattr(-,root,root,-)
9ab03a
%{_libdir}/libpmemblk.so
9ab03a
%{_libdir}/pkgconfig/libpmemblk.pc
9ab03a
%{_includedir}/libpmemblk.h
9ab03a
%{_mandir}/man7/libpmemblk.7.gz
9ab03a
%{_mandir}/man5/poolset.5.gz
9ab03a
%{_mandir}/man3/pmemblk_*.3.gz
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n libpmemblk-debug
9ab03a
Summary: Debug variant of the Persistent Memory Resident Array of Blocks library
9ab03a
Group: Development/Libraries
9ab03a
Requires: libpmemblk = %{version}-%{release}
9ab03a
Requires: libpmem = %{version}-%{release}
9ab03a
%description -n libpmemblk-debug
9ab03a
The libpmemblk implements a pmem-resident array of blocks, all the same
9ab03a
size, where a block is updated atomically with respect to power
9ab03a
failure or program interruption (no torn blocks).
9ab03a
9ab03a
This sub-package contains debug variant of the library, providing
9ab03a
run-time assertions and trace points. The typical way to access the
9ab03a
debug version is to set the environment variable LD_LIBRARY_PATH to
9ab03a
/usr/lib64/pmdk_debug.
9ab03a
9ab03a
%files -n libpmemblk-debug
9ab03a
%defattr(-,root,root,-)
9ab03a
%dir %{_libdir}/pmdk_debug
9ab03a
%{_libdir}/pmdk_debug/libpmemblk.so
9ab03a
%{_libdir}/pmdk_debug/libpmemblk.so.*
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n libpmemlog
9ab03a
Summary: Persistent Memory Resident Log File library
9ab03a
Group: System Environment/Libraries
9ab03a
Requires: libpmem = %{version}-%{release}
9ab03a
%description -n libpmemlog
9ab03a
The libpmemlog library provides a pmem-resident log file. This is
9ab03a
useful for programs like databases that append frequently to a log
9ab03a
file.
9ab03a
9ab03a
%files -n libpmemlog
9ab03a
%defattr(-,root,root,-)
9ab03a
%{_libdir}/libpmemlog.so.*
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n libpmemlog-devel
9ab03a
Summary: Development files for the Persistent Memory Resident Log File library
9ab03a
Group: Development/Libraries
9ab03a
Requires: libpmemlog = %{version}-%{release}
9ab03a
Requires: libpmem-devel = %{version}-%{release}
9ab03a
%description -n libpmemlog-devel
9ab03a
The libpmemlog library provides a pmem-resident log file. This
9ab03a
library is provided for cases requiring an append-mostly file to
9ab03a
record variable length entries. Most developers will find higher
9ab03a
level libraries like libpmemobj to be more generally useful.
9ab03a
9ab03a
%files -n libpmemlog-devel
9ab03a
%defattr(-,root,root,-)
9ab03a
%{_libdir}/libpmemlog.so
9ab03a
%{_libdir}/pkgconfig/libpmemlog.pc
9ab03a
%{_includedir}/libpmemlog.h
9ab03a
%{_mandir}/man7/libpmemlog.7.gz
9ab03a
%{_mandir}/man5/poolset.5.gz
9ab03a
%{_mandir}/man3/pmemlog_*.3.gz
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n libpmemlog-debug
9ab03a
Summary: Debug variant of the Persistent Memory Resident Log File library
9ab03a
Group: Development/Libraries
9ab03a
Requires: libpmemlog = %{version}-%{release}
9ab03a
Requires: libpmem = %{version}-%{release}
9ab03a
%description -n libpmemlog-debug
9ab03a
The libpmemlog library provides a pmem-resident log file. This
9ab03a
library is provided for cases requiring an append-mostly file to
9ab03a
record variable length entries. Most developers will find higher
9ab03a
level libraries like libpmemobj to be more generally useful.
9ab03a
9ab03a
This sub-package contains debug variant of the library, providing
9ab03a
run-time assertions and trace points. The typical way to access the
9ab03a
debug version is to set the environment variable LD_LIBRARY_PATH to
9ab03a
/usr/lib64/pmdk_debug.
9ab03a
9ab03a
%files -n libpmemlog-debug
9ab03a
%defattr(-,root,root,-)
9ab03a
%dir %{_libdir}/pmdk_debug
9ab03a
%{_libdir}/pmdk_debug/libpmemlog.so
9ab03a
%{_libdir}/pmdk_debug/libpmemlog.so.*
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n libpmemobj
9ab03a
Summary: Persistent Memory Transactional Object Store library
9ab03a
Group: System Environment/Libraries
9ab03a
Requires: libpmem = %{version}-%{release}
9ab03a
%description -n libpmemobj
9ab03a
The libpmemobj library provides a transactional object store,
9ab03a
providing memory allocation, transactions, and general facilities for
9ab03a
persistent memory programming.
9ab03a
9ab03a
%files -n libpmemobj
9ab03a
%defattr(-,root,root,-)
9ab03a
%{_libdir}/libpmemobj.so.*
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n libpmemobj-devel
9ab03a
Summary: Development files for the Persistent Memory Transactional Object Store library
9ab03a
Group: Development/Libraries
9ab03a
Requires: libpmemobj = %{version}-%{release}
9ab03a
Requires: libpmem-devel = %{version}-%{release}
9ab03a
%description -n libpmemobj-devel
9ab03a
The libpmemobj library provides a transactional object store,
9ab03a
providing memory allocation, transactions, and general facilities for
9ab03a
persistent memory programming. Developers new to persistent memory
9ab03a
probably want to start with this library.
9ab03a
9ab03a
%files -n libpmemobj-devel
9ab03a
%defattr(-,root,root,-)
9ab03a
%{_libdir}/libpmemobj.so
9ab03a
%{_libdir}/pkgconfig/libpmemobj.pc
9ab03a
%{_includedir}/libpmemobj.h
9ab03a
%{_includedir}/libpmemobj/*.h
9ab03a
%{_mandir}/man7/libpmemobj.7.gz
9ab03a
%{_mandir}/man5/poolset.5.gz
9ab03a
%{_mandir}/man3/pmemobj_*.3.gz
9ab03a
%{_mandir}/man3/pobj_*.3.gz
9ab03a
%{_mandir}/man3/oid_*.3.gz
9ab03a
%{_mandir}/man3/toid*.3.gz
9ab03a
%{_mandir}/man3/direct_*.3.gz
9ab03a
%{_mandir}/man3/d_r*.3.gz
9ab03a
%{_mandir}/man3/tx_*.3.gz
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n libpmemobj-debug
9ab03a
Summary: Debug variant of the Persistent Memory Transactional Object Store library
9ab03a
Group: Development/Libraries
9ab03a
Requires: libpmemobj = %{version}-%{release}
9ab03a
Requires: libpmem = %{version}-%{release}
9ab03a
%description -n libpmemobj-debug
9ab03a
The libpmemobj library provides a transactional object store,
9ab03a
providing memory allocation, transactions, and general facilities for
9ab03a
persistent memory programming. Developers new to persistent memory
9ab03a
probably want to start with this library.
9ab03a
9ab03a
This sub-package contains debug variant of the library, providing
9ab03a
run-time assertions and trace points. The typical way to access the
9ab03a
debug version is to set the environment variable LD_LIBRARY_PATH to
9ab03a
/usr/lib64/pmdk_debug.
9ab03a
9ab03a
%files -n libpmemobj-debug
9ab03a
%defattr(-,root,root,-)
9ab03a
%dir %{_libdir}/pmdk_debug
9ab03a
%{_libdir}/pmdk_debug/libpmemobj.so
9ab03a
%{_libdir}/pmdk_debug/libpmemobj.so.*
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n libvmem
9ab03a
Summary: Volatile Memory allocation library
9ab03a
Group: System Environment/Libraries
9ab03a
%description -n libvmem
9ab03a
The libvmem library turns a pool of persistent memory into a volatile
9ab03a
memory pool, similar to the system heap but kept separate and with
9ab03a
its own malloc-style API.
9ab03a
9ab03a
%files -n libvmem
9ab03a
%defattr(-,root,root,-)
9ab03a
%{_libdir}/libvmem.so.*
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n libvmem-devel
9ab03a
Summary: Development files for the Volatile Memory allocation library
9ab03a
Group: Development/Libraries
9ab03a
Requires: libvmem = %{version}-%{release}
9ab03a
%description -n libvmem-devel
9ab03a
The libvmem library turns a pool of persistent memory into a volatile
9ab03a
memory pool, similar to the system heap but kept separate and with
9ab03a
its own malloc-style API.
9ab03a
9ab03a
This sub-package contains libraries and header files for developing
9ab03a
applications that want to make use of libvmem.
9ab03a
9ab03a
%files -n libvmem-devel
9ab03a
%defattr(-,root,root,-)
9ab03a
%{_libdir}/libvmem.so
9ab03a
%{_libdir}/pkgconfig/libvmem.pc
9ab03a
%{_includedir}/libvmem.h
9ab03a
%{_mandir}/man7/libvmem.7.gz
9ab03a
%{_mandir}/man3/vmem_*.3.gz
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n libvmem-debug
9ab03a
Summary: Debug variant of the Volatile Memory allocation library
9ab03a
Group: Development/Libraries
9ab03a
Requires: libvmem = %{version}-%{release}
9ab03a
%description -n libvmem-debug
9ab03a
The libvmem library turns a pool of persistent memory into a volatile
9ab03a
memory pool, similar to the system heap but kept separate and with
9ab03a
its own malloc-style API.
9ab03a
9ab03a
This sub-package contains debug variant of the library, providing
9ab03a
run-time assertions and trace points. The typical way to access the
9ab03a
debug version is to set the environment variable LD_LIBRARY_PATH to
9ab03a
/usr/lib64/pmdk_debug.
9ab03a
9ab03a
%files -n libvmem-debug
9ab03a
%defattr(-,root,root,-)
9ab03a
%dir %{_libdir}/pmdk_debug
9ab03a
%{_libdir}/pmdk_debug/libvmem.so
9ab03a
%{_libdir}/pmdk_debug/libvmem.so.*
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n libvmmalloc
9ab03a
Summary: Dynamic to Persistent Memory allocation translation library
9ab03a
Group: System Environment/Libraries
9ab03a
%description -n libvmmalloc
9ab03a
The libvmmalloc library transparently converts all the dynamic memory
9ab03a
allocations into persistent memory allocations. This allows the use
9ab03a
of persistent memory as volatile memory without modifying the target
9ab03a
application.
9ab03a
9ab03a
The typical usage of libvmmalloc is to load it via the LD_PRELOAD
9ab03a
environment variable.
9ab03a
9ab03a
%files -n libvmmalloc
9ab03a
%defattr(-,root,root,-)
9ab03a
%{_libdir}/libvmmalloc.so.*
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n libvmmalloc-devel
9ab03a
Summary: Development files for the Dynamic-to-Persistent allocation library
9ab03a
Group: Development/Libraries
9ab03a
Requires: libvmmalloc = %{version}-%{release}
9ab03a
%description -n libvmmalloc-devel
9ab03a
The libvmmalloc library transparently converts all the dynamic memory
9ab03a
allocations into persistent memory allocations. This allows the use
9ab03a
of persistent memory as volatile memory without modifying the target
9ab03a
application.
9ab03a
9ab03a
This sub-package contains libraries and header files for developing
9ab03a
applications that want to specifically make use of libvmmalloc.
9ab03a
9ab03a
%files -n libvmmalloc-devel
9ab03a
%defattr(-,root,root,-)
9ab03a
%{_libdir}/libvmmalloc.so
9ab03a
%{_libdir}/pkgconfig/libvmmalloc.pc
9ab03a
%{_includedir}/libvmmalloc.h
9ab03a
%{_mandir}/man7/libvmmalloc.7.gz
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n libvmmalloc-debug
9ab03a
Summary: Debug variant of the Dynamic-to-Persistent allocation library
9ab03a
Group: Development/Libraries
9ab03a
Requires: libvmmalloc = %{version}-%{release}
9ab03a
%description -n libvmmalloc-debug
9ab03a
The libvmmalloc library transparently converts all the dynamic memory
9ab03a
allocations into persistent memory allocations. This allows the use
9ab03a
of persistent memory as volatile memory without modifying the target
9ab03a
application.
9ab03a
9ab03a
This sub-package contains debug variant of the library, providing
9ab03a
run-time assertions and trace points. The typical way to access the
9ab03a
debug version is to set the environment variable LD_LIBRARY_PATH to
9ab03a
/usr/lib64/pmdk_debug.
9ab03a
9ab03a
%files -n libvmmalloc-debug
9ab03a
%defattr(-,root,root,-)
9ab03a
%dir %{_libdir}/pmdk_debug
9ab03a
%{_libdir}/pmdk_debug/libvmmalloc.so
9ab03a
%{_libdir}/pmdk_debug/libvmmalloc.so.*
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n libpmempool
9ab03a
Summary: Persistent Memory pool management library
9ab03a
Group: System Environment/Libraries
9ab03a
Requires: libpmem = %{version}-%{release}
9ab03a
%description -n libpmempool
9ab03a
The libpmempool library provides a set of utilities for off-line
9ab03a
administration, analysis, diagnostics and repair of persistent memory
9ab03a
pools created by libpmemlog, libpemblk and libpmemobj libraries.
9ab03a
9ab03a
%files -n libpmempool
9ab03a
%defattr(-,root,root,-)
9ab03a
%{_libdir}/libpmempool.so.*
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n libpmempool-devel
9ab03a
Summary: Development files for Persistent Memory pool management library
9ab03a
Group: Development/Libraries
9ab03a
Requires: libpmempool = %{version}-%{release}
9ab03a
Requires: libpmem-devel = %{version}-%{release}
9ab03a
%description -n libpmempool-devel
9ab03a
The libpmempool library provides a set of utilities for off-line
9ab03a
administration, analysis, diagnostics and repair of persistent memory
9ab03a
pools created by libpmemlog, libpemblk and libpmemobj libraries.
9ab03a
9ab03a
%files -n libpmempool-devel
9ab03a
%defattr(-,root,root,-)
9ab03a
%{_libdir}/libpmempool.so
9ab03a
%{_libdir}/pkgconfig/libpmempool.pc
9ab03a
%{_includedir}/libpmempool.h
9ab03a
%{_mandir}/man7/libpmempool.7.gz
9ab03a
%{_mandir}/man5/poolset.5.gz
9ab03a
%{_mandir}/man3/pmempool_*.3.gz
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n libpmempool-debug
9ab03a
Summary: Debug variant of the Persistent Memory pool management library
9ab03a
Group: Development/Libraries
9ab03a
Requires: libpmempool = %{version}-%{release}
9ab03a
Requires: libpmem = %{version}-%{release}
9ab03a
%description -n libpmempool-debug
9ab03a
The libpmempool library provides a set of utilities for off-line
9ab03a
administration, analysis, diagnostics and repair of persistent memory
9ab03a
pools created by libpmemlog, libpemblk and libpmemobj libraries.
9ab03a
9ab03a
This sub-package contains debug variant of the library, providing
9ab03a
run-time assertions and trace points. The typical way to access the
9ab03a
debug version is to set the environment variable LD_LIBRARY_PATH to
9ab03a
/usr/lib64/pmdk_debug.
9ab03a
9ab03a
%files -n libpmempool-debug
9ab03a
%defattr(-,root,root,-)
9ab03a
%dir %{_libdir}/pmdk_debug
9ab03a
%{_libdir}/pmdk_debug/libpmempool.so
9ab03a
%{_libdir}/pmdk_debug/libpmempool.so.*
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%if %{with fabric}
9ab03a
9ab03a
%package -n librpmem
9ab03a
Summary: Remote Access to Persistent Memory library
9ab03a
Group: System Environment/Libraries
9ab03a
Requires: libfabric >= %{min_libfabric_ver}
9ab03a
Requires: openssh-clients
9ab03a
%description -n librpmem
9ab03a
The librpmem library provides low-level support for remote access
9ab03a
to persistent memory utilizing RDMA-capable NICs. It can be used
9ab03a
to replicate persistent memory regions over RDMA protocol.
9ab03a
9ab03a
%files -n librpmem
9ab03a
%defattr(-,root,root,-)
9ab03a
%{_libdir}/librpmem.so.*
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n librpmem-devel
9ab03a
Summary: Development files for the Remote Access to Persistent Memory library
9ab03a
Group: Development/Libraries
9ab03a
Requires: librpmem = %{version}-%{release}
9ab03a
%description -n librpmem-devel
9ab03a
The librpmem library provides low-level support for remote access
9ab03a
to persistent memory utilizing RDMA-capable NICs. It can be used
9ab03a
to replicate persistent memory regions over RDMA protocol.
9ab03a
9ab03a
This sub-package contains libraries and header files for developing
9ab03a
applications that want to specifically make use of librpmem.
9ab03a
9ab03a
%files -n librpmem-devel
9ab03a
%defattr(-,root,root,-)
9ab03a
%{_libdir}/librpmem.so
9ab03a
%{_libdir}/pkgconfig/librpmem.pc
9ab03a
%{_includedir}/librpmem.h
9ab03a
%{_mandir}/man7/librpmem.7.gz
9ab03a
%{_mandir}/man3/rpmem_*.3.gz
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n librpmem-debug
9ab03a
Summary: Debug variant of the Remote Access to Persistent Memory library
9ab03a
Group: Development/Libraries
9ab03a
Requires: librpmem = %{version}-%{release}
9ab03a
%description -n librpmem-debug
9ab03a
The librpmem library provides low-level support for remote access
9ab03a
to persistent memory utilizing RDMA-capable NICs. It can be used
9ab03a
to replicate persistent memory regions over RDMA protocol.
9ab03a
9ab03a
This sub-package contains debug variant of the library, providing
9ab03a
run-time assertions and trace points. The typical way to access the
9ab03a
debug version is to set the environment variable LD_LIBRARY_PATH to
9ab03a
/usr/lib64/pmdk_debug.
9ab03a
9ab03a
%files -n librpmem-debug
9ab03a
%defattr(-,root,root,-)
9ab03a
%dir %{_libdir}/pmdk_debug
9ab03a
%{_libdir}/pmdk_debug/librpmem.so
9ab03a
%{_libdir}/pmdk_debug/librpmem.so.*
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n rpmemd
9ab03a
Group: System Environment/Base
9ab03a
Summary: Target node process executed by librpmem
9ab03a
Requires: libfabric >= %{min_libfabric_ver}
9ab03a
Requires: libpmem = %{version}-%{release}
9ab03a
%description -n rpmemd
9ab03a
The rpmemd process is executed on a target node by librpmem library
9ab03a
and facilitates access to persistent memory over RDMA.
9ab03a
9ab03a
%files -n rpmemd
9ab03a
%{_bindir}/rpmemd
9ab03a
%{_mandir}/man1/rpmemd.1.gz
9ab03a
9ab03a
%endif # _with_fabric
9ab03a
9ab03a
%package -n pmempool
9ab03a
Summary: Utilities for Persistent Memory
9ab03a
Group: System Environment/Base
9ab03a
Requires: libpmem = %{version}-%{release}
9ab03a
Requires: libpmemlog = %{version}-%{release}
9ab03a
Requires: libpmemblk = %{version}-%{release}
9ab03a
Requires: libpmemobj = %{version}-%{release}
9ab03a
Requires: libpmempool = %{version}-%{release}
9ab03a
Obsoletes: nvml-tools < %{version}-%{release}
9ab03a
%description -n pmempool
9ab03a
The pmempool is a standalone utility for management and off-line analysis
9ab03a
of Persistent Memory pools created by PMDK libraries. It provides a set
9ab03a
of utilities for administration and diagnostics of Persistent Memory pools.
9ab03a
The pmempool may be useful for troubleshooting by system administrators
9ab03a
and users of the applications based on PMDK libraries.
9ab03a
9ab03a
%files -n pmempool
9ab03a
%{_bindir}/pmempool
9ab03a
%{_mandir}/man1/pmempool.1.gz
9ab03a
%{_mandir}/man1/pmempool-*.1.gz
9ab03a
%config(noreplace) %{_sysconfdir}/bash_completion.d/pmempool
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%package -n pmreorder
9ab03a
Summary: Consistency Checker for Persistent Memory
9ab03a
Group: __GROUP_SYS_BASE__
9ab03a
Requires: /usr/libexec/platform-python
9ab03a
%description -n pmreorder
9ab03a
The pmreorder tool is a collection of python scripts designed to parse
9ab03a
and replay operations logged by pmemcheck - a persistent memory checking tool.
9ab03a
Pmreorder performs the store reordering between persistent memory barriers -
9ab03a
a sequence of flush-fence operations. It uses a consistency checking routine
9ab03a
provided in the command line options to check whether files are in a consistent state.
9ab03a
9ab03a
%files -n pmreorder
9ab03a
%{_bindir}/pmreorder
9ab03a
%{_datadir}/pmreorder/*.py
9ab03a
%{_mandir}/man1/pmreorder.1.gz
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
9ab03a
%if %{with ndctl}
9ab03a
9ab03a
%package -n daxio
9ab03a
Summary: Perform I/O on Device DAX devices or zero a Device DAX device
9ab03a
Group: System Environment/Base
9ab03a
Requires: libpmem = %{version}-%{release}
9ab03a
%description -n daxio
9ab03a
The daxio utility performs I/O on Device DAX devices or zero
9ab03a
a Device DAX device.  Since the standard I/O APIs (read/write) cannot be used
9ab03a
with Device DAX, data transfer is performed on a memory-mapped device.
9ab03a
The daxio may be used to dump Device DAX data to a file, restore data from
9ab03a
a backup copy, move/copy data to another device or to erase data from
9ab03a
a device.
9ab03a
9ab03a
%files -n daxio
9ab03a
%{_bindir}/daxio
9ab03a
%{_mandir}/man1/daxio.1.gz
9ab03a
%license LICENSE
9ab03a
%doc ChangeLog CONTRIBUTING.md README.md
9ab03a
9ab03a
%endif # _with_ndctl
9ab03a
9ab03a
9ab03a
%prep
9ab03a
%setup -q -n %{name}-%{version}
9ab03a
%patch0 -p1
9ab03a
%patch1 -p1
9ab03a
9ab03a
%build
9ab03a
# For debug build default flags may be overriden to disable compiler
9ab03a
# optimizations.
9ab03a
%set_build_flags
9ab03a
NDCTL_ENABLE=y make %{?_smp_mflags} NORPATH=1
9ab03a
9ab03a
9ab03a
# Override LIB_AR with empty string to skip installation of static libraries
9ab03a
%install
9ab03a
NDCTL_ENABLE=y make install DESTDIR=%{buildroot} \
9ab03a
	LIB_AR= \
9ab03a
	prefix=%{_prefix} \
9ab03a
	libdir=%{_libdir} \
9ab03a
	includedir=%{_includedir} \
9ab03a
	mandir=%{_mandir} \
9ab03a
	bindir=%{_bindir} \
9ab03a
	sysconfdir=%{_sysconfdir} \
9ab03a
	docdir=%{_docdir}
9ab03a
mkdir -p %{buildroot}%{_datadir}/pmdk
9ab03a
cp utils/pmdk.magic %{buildroot}%{_datadir}/pmdk/
9ab03a
9ab03a
9ab03a
%post   -n libpmem -p /sbin/ldconfig
9ab03a
%postun -n libpmem -p /sbin/ldconfig
9ab03a
%post   -n libpmemblk -p /sbin/ldconfig
9ab03a
%postun -n libpmemblk -p /sbin/ldconfig
9ab03a
%post   -n libpmemlog -p /sbin/ldconfig
9ab03a
%postun -n libpmemlog -p /sbin/ldconfig
9ab03a
%post   -n libpmemobj -p /sbin/ldconfig
9ab03a
%postun -n libpmemobj -p /sbin/ldconfig
9ab03a
%post   -n libvmem -p /sbin/ldconfig
9ab03a
%postun -n libvmem -p /sbin/ldconfig
9ab03a
%post   -n libvmmalloc -p /sbin/ldconfig
9ab03a
%postun -n libvmmalloc -p /sbin/ldconfig
9ab03a
%post   -n libpmempool -p /sbin/ldconfig
9ab03a
%postun -n libpmempool -p /sbin/ldconfig
9ab03a
9ab03a
%if %{with fabric}
9ab03a
%post   -n librpmem -p /sbin/ldconfig
9ab03a
%postun -n librpmem -p /sbin/ldconfig
9ab03a
%endif
9ab03a
9ab03a
%if 0%{?__debug_package} == 0
9ab03a
%debug_package
9ab03a
%endif
9ab03a
9ab03a
9ab03a
%changelog
9ab03a
* Mon Jun 24 2019 Jeff Moyer <jmoyer@redhat.com> - 1.6-2.el8
9ab03a
- Add explicit version dependencies
9ab03a
- Fix up broken link line in build system
9ab03a
- Related: rhbz#1598527
9ab03a
9ab03a
* Tue May 28 2019 Jeff Moyer <jmoyer@redhat.com> - 1.6-1.el8
9ab03a
- Add pmdk 1.6 to the distro.
9ab03a
- Resolves: rhbz#1598527
9ab03a
9ab03a
* Wed Oct 31 2018 Jeff Moyer <jmoyer@redhat.com> - 1.5-2.el8
9ab03a
- Fix up python3 uses to instead use platform-python (Jeff Moyer)
9ab03a
- related: rhbz#1488828
9ab03a
9ab03a
* Wed Oct 31 2018 Jeff Moyer <jmoyer@redhat.com> - 1.5-1.el8
9ab03a
- rebase to pmdk-1.5, and rename to nvml (Jeff Moyer)
9ab03a
- broken libpmemcto was removed
9ab03a
- c++ bindings were moved to a separate project/package
9ab03a
- Fix library requires to be =n-v-r instead of >= (Jeff Moyer)
9ab03a
- resolves: rhbz#1488828
9ab03a
9ab03a
* Mon Oct 08 2018 Jeff Moyer <jmoyer@redhat.com> - 1.4-6.el8
9ab03a
- default to building daxio (Jeff Moyer)
9ab03a
- Resolves: rhbz#1637168
9ab03a
9ab03a
* Wed Sep 26 2018 Jeff Moyer <jmoyer@redhat.com> - 1.4-5.el8
9ab03a
- use %set_build_flags instead of %{optflags}
9ab03a
- Resolves: rhbz#1630611
9ab03a
9ab03a
* Tue May 22 2018 Jeff Moyer <jmoyer@redhat.com> - 1.4-4
9ab03a
- Get rid of SuSe conditionals (Jeff Moyer)
9ab03a
- Remove the %check section. (Jeff Moyer)
9ab03a
- Resolves: rhbz#1580829
9ab03a
9ab03a
* Fri Mar 30 2018 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.4-3
9ab03a
- Revert package name change
9ab03a
- Re-enable check
9ab03a
9ab03a
* Thu Mar 29 2018 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.4-2
9ab03a
- Fix issues found by rpmlint
9ab03a
9ab03a
* Thu Mar 29 2018 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.4-1
9ab03a
- Rename NVML project to PMDK
9ab03a
- Update to PMDK version 1.4 (RHBZ #1480578, #1539562, #1539564)
9ab03a
9ab03a
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-2
9ab03a
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
9ab03a
9ab03a
* Sat Jan 27 2018 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.3.1-1
9ab03a
- Update to NVML version 1.3.1 (RHBZ #1480578)
9ab03a
9ab03a
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-3
9ab03a
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
9ab03a
9ab03a
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-2
9ab03a
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
9ab03a
9ab03a
* Mon Jul 17 2017 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.3-1
9ab03a
- Update to NVML version 1.3 (RHBZ #1451741, RHBZ #1455216)
9ab03a
- Add librpmem and rpmemd sub-packages
9ab03a
- Force file system to appear as PMEM for make check
9ab03a
9ab03a
* Fri Jun 16 2017 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.2.3-2
9ab03a
- Update to NVML version 1.2.3 (RHBZ #1451741)
9ab03a
9ab03a
* Sat Apr 15 2017 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.2.2-1
9ab03a
- Update to NVML version 1.2.2 (RHBZ #1436820, RHBZ #1425038)
9ab03a
9ab03a
* Thu Mar 16 2017 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.2.1-1
9ab03a
- Update to NVML version 1.2.1 (RHBZ #1425038)
9ab03a
9ab03a
* Tue Feb 21 2017 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.2-3
9ab03a
- Fix compilation under gcc 7.0.x (RHBZ #1424004)
9ab03a
9ab03a
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.2-2
9ab03a
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
9ab03a
9ab03a
* Fri Dec 30 2016 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.2-1
9ab03a
- Update to NVML version 1.2 (RHBZ #1383467)
9ab03a
- Add libpmemobj C++ bindings
9ab03a
9ab03a
* Thu Jul 14 2016 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.1-3
9ab03a
- Add missing package version requirements
9ab03a
9ab03a
* Mon Jul 11 2016 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.1-2
9ab03a
- Move debug variants of the libraries to -debug subpackages
9ab03a
9ab03a
* Sun Jun 26 2016 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.1-1
9ab03a
- NVML 1.1 release
9ab03a
- Update link to source tarball
9ab03a
- Add libpmempool subpackage
9ab03a
- Remove obsolete patches
9ab03a
9ab03a
* Wed Jun 01 2016 Dan HorĂ¡k <dan[at]danny.cz> - 1.0-3
9ab03a
- switch to ExclusiveArch
9ab03a
9ab03a
* Sun May 29 2016 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.0-2
9ab03a
- Exclude PPC architecture
9ab03a
- Add bug numbers for excluded architectures
9ab03a
9ab03a
* Tue May 24 2016 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.0-1
9ab03a
- Initial RPM release