From 2db44910e4b5def8a88786dc57891d8610ed7891 Mon Sep 17 00:00:00 2001 From: basebuilder_pel7ppc64lebuilder0 Date: Thu, 30 Apr 2020 11:04:38 +0200 Subject: [PATCH] nvml version update & enable ppc64le Signed-off-by: basebuilder_pel7ppc64lebuilder0 --- SPECS/nvml.spec | 589 ++++++++++++++++-------------------------------- 1 file changed, 200 insertions(+), 389 deletions(-) diff --git a/SPECS/nvml.spec b/SPECS/nvml.spec index a14497ab..1899d041 100644 --- a/SPECS/nvml.spec +++ b/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 -Version: 1.4 -Release: 3%{?dist} -Summary: Non-Volatile Memory Library +Version: 1.8 +Release: 1%{?dist} +Summary: Persistent Memory Development Kit (formerly NVML) License: BSD 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: autoconf BuildRequires: automake BuildRequires: man BuildRequires: pkgconfig -BuildRequires: doxygen -BuildRequires: gdb -BuildRequires: ndctl-devel >= 59.2-1 -BuildRequires: daxctl-devel >= 59.2-1 - -%define min_libfabric_ver 1.4.2 +BuildRequires: ndctl-devel >= %{min_ndctl_ver} +BuildRequires: daxctl-devel >= %{min_ndctl_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 -The NVM Library is a collection of libraries for using memory-mapped -persistence, optimized specifically for persistent memory. +The Persistent Memory Development Kit is a collection of libraries for +using memory-mapped persistence, optimized specifically for persistent memory. %package -n libpmem Summary: Low-level persistent memory support library -Group: System Environment/Libraries %description -n libpmem The libpmem provides low level persistent memory support. In particular, support for the persistent memory instructions for flushing changes to pmem is provided. - %files -n libpmem -%defattr(-,root,root,-) %dir %{_datadir}/pmdk %{_libdir}/libpmem.so.* %{_datadir}/pmdk/pmdk.magic @@ -59,20 +45,16 @@ to pmem is provided. %package -n libpmem-devel Summary: Development files for the low-level persistent memory library -Group: Development/Libraries Requires: libpmem = %{version}-%{release} %description -n libpmem-devel The libpmem provides low level persistent memory support. In particular, support for the persistent memory instructions for flushing changes to pmem is provided. - This library is provided for software which tracks every store to pmem and needs to flush those changes to durability. Most developers will find higher level libraries like libpmemobj to be much more convenient. - %files -n libpmem-devel -%defattr(-,root,root,-) %{_libdir}/libpmem.so %{_libdir}/pkgconfig/libpmem.pc %{_includedir}/libpmem.h @@ -84,20 +66,16 @@ convenient. %package -n libpmem-debug Summary: Debug variant of the low-level persistent memory library -Group: Development/Libraries Requires: libpmem = %{version}-%{release} %description -n libpmem-debug The libpmem provides low level persistent memory support. In particular, support for the persistent memory instructions for flushing changes to pmem is provided. - 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 libpmem-debug -%defattr(-,root,root,-) %dir %{_libdir}/pmdk_debug %{_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 Summary: Persistent Memory Resident Array of Blocks library -Group: System Environment/Libraries -Requires: libpmem = %{version}-%{release} +Requires: libpmem >= %{version}-%{release} %description -n libpmemblk The libpmemblk implements a pmem-resident array of blocks, all the same size, where a block is updated atomically with respect to power failure or program interruption (no torn blocks). - %files -n libpmemblk -%defattr(-,root,root,-) %{_libdir}/libpmemblk.so.* %license LICENSE %doc ChangeLog CONTRIBUTING.md README.md @@ -123,22 +98,18 @@ failure or program interruption (no torn blocks). %package -n libpmemblk-devel Summary: Development files for the Persistent Memory Resident Array of Blocks library -Group: Development/Libraries Requires: libpmemblk = %{version}-%{release} Requires: libpmem-devel = %{version}-%{release} %description -n libpmemblk-devel The libpmemblk implements a pmem-resident array of blocks, all the same size, where a block is updated atomically with respect to power failure or program interruption (no torn blocks). - For example, a program keeping a cache of fixed-size objects in pmem might find this library useful. This library is provided for cases requiring large arrays of objects at least 512 bytes each. Most developers will find higher level libraries like libpmemobj to be more generally useful. - %files -n libpmemblk-devel -%defattr(-,root,root,-) %{_libdir}/libpmemblk.so %{_libdir}/pkgconfig/libpmemblk.pc %{_includedir}/libpmemblk.h @@ -151,21 +122,16 @@ more generally useful. %package -n libpmemblk-debug Summary: Debug variant of the Persistent Memory Resident Array of Blocks library -Group: Development/Libraries Requires: libpmemblk = %{version}-%{release} -Requires: libpmem = %{version}-%{release} %description -n libpmemblk-debug The libpmemblk implements a pmem-resident array of blocks, all the same size, where a block is updated atomically with respect to power failure or program interruption (no torn blocks). - 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 libpmemblk-debug -%defattr(-,root,root,-) %dir %{_libdir}/pmdk_debug %{_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 Summary: Persistent Memory Resident Log File library -Group: System Environment/Libraries -Requires: libpmem = %{version}-%{release} +Requires: libpmem >= %{version}-%{release} %description -n libpmemlog The libpmemlog library provides a pmem-resident log file. This is useful for programs like databases that append frequently to a log file. %files -n libpmemlog -%defattr(-,root,root,-) %{_libdir}/libpmemlog.so.* %license LICENSE %doc ChangeLog CONTRIBUTING.md README.md @@ -191,7 +155,6 @@ file. %package -n libpmemlog-devel Summary: Development files for the Persistent Memory Resident Log File library -Group: Development/Libraries Requires: libpmemlog = %{version}-%{release} Requires: libpmem-devel = %{version}-%{release} %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. %files -n libpmemlog-devel -%defattr(-,root,root,-) %{_libdir}/libpmemlog.so %{_libdir}/pkgconfig/libpmemlog.pc %{_includedir}/libpmemlog.h @@ -214,9 +176,7 @@ level libraries like libpmemobj to be more generally useful. %package -n libpmemlog-debug Summary: Debug variant of the Persistent Memory Resident Log File library -Group: Development/Libraries Requires: libpmemlog = %{version}-%{release} -Requires: libpmem = %{version}-%{release} %description -n libpmemlog-debug The libpmemlog library provides a pmem-resident log file. This 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. %files -n libpmemlog-debug -%defattr(-,root,root,-) %dir %{_libdir}/pmdk_debug %{_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 Summary: Persistent Memory Transactional Object Store library -Group: System Environment/Libraries -Requires: libpmem = %{version}-%{release} +Requires: libpmem >= %{version}-%{release} %description -n libpmemobj The libpmemobj library provides a transactional object store, providing memory allocation, transactions, and general facilities for persistent memory programming. %files -n libpmemobj -%defattr(-,root,root,-) %{_libdir}/libpmemobj.so.* %license LICENSE %doc ChangeLog CONTRIBUTING.md README.md @@ -255,7 +212,6 @@ persistent memory programming. %package -n libpmemobj-devel Summary: Development files for the Persistent Memory Transactional Object Store library -Group: Development/Libraries Requires: libpmemobj = %{version}-%{release} Requires: libpmem-devel = %{version}-%{release} %description -n libpmemobj-devel @@ -265,10 +221,10 @@ persistent memory programming. Developers new to persistent memory probably want to start with this library. %files -n libpmemobj-devel -%defattr(-,root,root,-) %{_libdir}/libpmemobj.so %{_libdir}/pkgconfig/libpmemobj.pc %{_includedir}/libpmemobj.h +%dir %{_includedir}/libpmemobj %{_includedir}/libpmemobj/*.h %{_mandir}/man7/libpmemobj.7.gz %{_mandir}/man5/poolset.5.gz @@ -285,9 +241,7 @@ probably want to start with this library. %package -n libpmemobj-debug Summary: Debug variant of the Persistent Memory Transactional Object Store library -Group: Development/Libraries Requires: libpmemobj = %{version}-%{release} -Requires: libpmem = %{version}-%{release} %description -n libpmemobj-debug The libpmemobj library provides a transactional object store, 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. %files -n libpmemobj-debug -%defattr(-,root,root,-) %dir %{_libdir}/pmdk_debug %{_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 -%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 Summary: Persistent Memory pool management library -Group: System Environment/Libraries -Requires: libpmem = %{version}-%{release} +Requires: libpmem >= %{version}-%{release} %description -n libpmempool The libpmempool library provides a set of utilities for off-line 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 -%defattr(-,root,root,-) %{_libdir}/libpmempool.so.* %license LICENSE %doc ChangeLog CONTRIBUTING.md README.md @@ -477,16 +277,14 @@ pools created by libpmemlog, libpemblk and libpmemobj libraries. %package -n libpmempool-devel Summary: Development files for Persistent Memory pool management library -Group: Development/Libraries Requires: libpmempool = %{version}-%{release} Requires: libpmem-devel = %{version}-%{release} %description -n libpmempool-devel The libpmempool library provides a set of utilities for off-line 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 -%defattr(-,root,root,-) %{_libdir}/libpmempool.so %{_libdir}/pkgconfig/libpmempool.pc %{_includedir}/libpmempool.h @@ -499,13 +297,11 @@ pools created by libpmemlog, libpemblk and libpmemobj libraries. %package -n libpmempool-debug Summary: Debug variant of the Persistent Memory pool management library -Group: Development/Libraries Requires: libpmempool = %{version}-%{release} -Requires: libpmem = %{version}-%{release} %description -n libpmempool-debug The libpmempool library provides a set of utilities for off-line 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 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. %files -n libpmempool-debug -%defattr(-,root,root,-) %dir %{_libdir}/pmdk_debug %{_libdir}/pmdk_debug/libpmempool.so %{_libdir}/pmdk_debug/libpmempool.so.* %license LICENSE %doc ChangeLog CONTRIBUTING.md README.md + +%if %{with fabric} + %package -n librpmem Summary: Remote Access to Persistent Memory library -Group: System Environment/Libraries Requires: libfabric >= %{min_libfabric_ver} Requires: openssh-clients %description -n librpmem The librpmem library provides low-level support for remote access 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 -%defattr(-,root,root,-) %{_libdir}/librpmem.so.* %license LICENSE %doc ChangeLog CONTRIBUTING.md README.md @@ -539,18 +335,16 @@ to replicate peristent memory regions over RDMA protocol. %package -n librpmem-devel Summary: Development files for the Remote Access to Persistent Memory library -Group: Development/Libraries Requires: librpmem = %{version}-%{release} %description -n librpmem-devel The librpmem library provides low-level support for remote access 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 applications that want to specifically make use of librpmem. %files -n librpmem-devel -%defattr(-,root,root,-) %{_libdir}/librpmem.so %{_libdir}/pkgconfig/librpmem.pc %{_includedir}/librpmem.h @@ -562,12 +356,11 @@ applications that want to specifically make use of librpmem. %package -n librpmem-debug Summary: Debug variant of the Remote Access to Persistent Memory library -Group: Development/Libraries Requires: librpmem = %{version}-%{release} %description -n librpmem-debug The librpmem library provides low-level support for remote access 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 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. %files -n librpmem-debug -%defattr(-,root,root,-) %dir %{_libdir}/pmdk_debug %{_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 -Group: System Environment/Base Summary: Target node process executed by librpmem -Requires: libpmem = %{version}-%{release} Requires: libfabric >= %{min_libfabric_ver} %description -n rpmemd 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 %{_mandir}/man1/rpmemd.1.gz - -%package -n libpmemcto -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 +# _with_fabric +%endif %package -n pmempool Summary: Utilities for Persistent Memory -Group: System Environment/Base -Requires: libpmem = %{version}-%{release} -Requires: libpmemlog = %{version}-%{release} -Requires: libpmemblk = %{version}-%{release} -Requires: libpmemobj = %{version}-%{release} -Requires: libpmempool = %{version}-%{release} -Requires: libpmemcto = %{version}-%{release} +Requires: libpmem >= %{version}-%{release} +Requires: libpmemlog >= %{version}-%{release} +Requires: libpmemblk >= %{version}-%{release} +Requires: libpmemobj >= %{version}-%{release} +Requires: libpmempool >= %{version}-%{release} Obsoletes: nvml-tools < %{version}-%{release} %description -n pmempool 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 %{_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 %doc ChangeLog CONTRIBUTING.md README.md +%if %{with ndctl} + %package -n daxio 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 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 @@ -698,23 +433,45 @@ a device. %license LICENSE %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 -%setup -q -n pmdk-%{version} +%setup -q -n pmdk-%{upstreamversion} + %build -# Currently, NVML makefiles do not allow to easily override CFLAGS, -# so the build flags are passed via EXTRA_CFLAGS. For debug build -# selected flags are overriden to disable compiler optimizations. -EXTRA_CFLAGS_RELEASE="%{optflags}" \ -EXTRA_CFLAGS_DEBUG="%{optflags} -Wp,-U_FORTIFY_SOURCE -O0" \ -EXTRA_CXXFLAGS="%{optflags}" \ -NDCTL_ENABLE=y make %{?_smp_mflags} +# For debug build default flags may be overriden to disable compiler +# optimizations. +CFLAGS="%{optflags}" \ +LDFLAGS="%{?__global_ldflags}" \ +make %{?_smp_mflags} NORPATH=1 # Override LIB_AR with empty string to skip installation of static libraries %install -NDCTL_ENABLE=y make install DESTDIR=%{buildroot} \ +make install DESTDIR=%{buildroot} \ LIB_AR= \ prefix=%{_prefix} \ libdir=%{_libdir} \ @@ -722,30 +479,35 @@ NDCTL_ENABLE=y make install DESTDIR=%{buildroot} \ mandir=%{_mandir} \ bindir=%{_bindir} \ sysconfdir=%{_sysconfdir} \ - docdir=%{_docdir} \ - CPP_DOC_DIR=libpmemobj++-devel + docdir=%{_docdir} mkdir -p %{buildroot}%{_datadir}/pmdk -cp utils/pmdk.magic %{buildroot}%{_datadir}/pmdk/pmdk.magic - - -%post -n libpmem -p /sbin/ldconfig -%postun -n libpmem -p /sbin/ldconfig -%post -n libpmemblk -p /sbin/ldconfig -%postun -n libpmemblk -p /sbin/ldconfig -%post -n libpmemlog -p /sbin/ldconfig -%postun -n libpmemlog -p /sbin/ldconfig -%post -n libpmemobj -p /sbin/ldconfig -%postun -n libpmemobj -p /sbin/ldconfig -%post -n libvmem -p /sbin/ldconfig -%postun -n libvmem -p /sbin/ldconfig -%post -n libvmmalloc -p /sbin/ldconfig -%postun -n libvmmalloc -p /sbin/ldconfig -%post -n libpmempool -p /sbin/ldconfig -%postun -n libpmempool -p /sbin/ldconfig -%post -n libpmemcto -p /sbin/ldconfig -%postun -n libpmemcto -p /sbin/ldconfig -%post -n librpmem -p /sbin/ldconfig -%postun -n librpmem -p /sbin/ldconfig +cp utils/pmdk.magic %{buildroot}%{_datadir}/pmdk/ + + + +%check +%if 0%{?_skip_check} == 1 + echo "Check skipped" +%else + %if %{defined _testconfig} + cp %{_testconfig} src/test/testconfig.sh + %else + echo "PMEM_FS_DIR=/tmp" > src/test/testconfig.sh + echo "PMEM_FS_DIR_FORCE_PMEM=1" >> src/test/testconfig.sh + echo 'TEST_BUILD="debug nondebug"' >> src/test/testconfig.sh + %endif + make check +%endif + +%ldconfig_scriptlets -n libpmem +%ldconfig_scriptlets -n libpmemblk +%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 %debug_package @@ -753,56 +515,105 @@ cp utils/pmdk.magic %{buildroot}%{_datadir}/pmdk/pmdk.magic %changelog -* Wed Jun 27 2018 Jeff Moyer - 1.4-3.el7 -- Fix up rpmemd dependency on libfabric -- Resolves: rhbz#1595671 - -* Fri Jun 22 2018 Jeff Moyer - 1.4-2.el7 -- Make library version dependencies more strict (Jeff Moyer) -- Related: rhbz#1487676 - -* Fri Jun 08 2018 Jeff Moyer - 1.4-1.el7 -- rebase to upstream 1.4 -- disable make check -- Resolves: rhbz#1487676 - -* Thu Oct 19 2017 Jeff Moyer - 1.3-3.el7 -- fix up issues found by the clang static checker -- Related: rhbz#1455216 - -* Wed Oct 18 2017 Jeff Moyer - 1.3-2.el7 -- pull in spec changes from upstream -- Related: rhbz#1455216 - -* Mon Oct 16 2017 Jeff Moyer - 1.3-1.el7 -- rebase to version 1.3 -- Resolves: rhbz#1455216 - -* Wed Apr 05 2017 Jeff Moyer - 1.2.1-4.el7 -- Fix mapping type in pool params parse -- Resolves: bz#1436820 - -* Tue Mar 28 2017 Jeff Moyer - 1.2.1-3.el7 -- Add 'Requires: libpmem' lines for debug packages. -- Related: bz#1383467 bz#1382407 - -* Tue Mar 28 2017 Jeff Moyer - 1.2.1-2.el7 -- Actually apply stable update patches -- Related: bz#1383467 bz#1382407 - -* Tue Mar 28 2017 Jeff Moyer - 1.2.1-1.el7 -- Update to latest stable release -- Pull in pending stable patches for the test harness -- disable % check temporarily until all test issues are resolved -- Resolves: bz#1383467 bz#1382407 - -* Thu Jul 14 2016 Jeff Moyer - 1.1-4.el7 -- Add missing version dependencies between packages -- Resolves: bz#1274541 - -* Mon Jul 11 2016 Jeff Moyer - 1.1-3.el7 -- Initial import for RHEL 7 -- Resolves: bz#1274541 +* Wed Feb 12 2020 Marcin Ślusarz - 1.8-1 +- Update to PMDK version 1.8. This release stops shipping + libvmem & libvmmalloc. These libraries are now provided by vmem + package. + +* Wed Jan 29 2020 Fedora Release Engineering - 1.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Oct 1 2019 Marcin Ślusarz - 1.7-1 +- Update to PMDK version 1.7 + +* Fri Aug 30 2019 Marcin Ślusarz - 1.6.1-1 +- Update to PMDK version 1.6.1 + +* Thu Jul 25 2019 Fedora Release Engineering - 1.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue Mar 26 2019 Marcin Ślusarz - 1.6-1 +- Update to PMDK version 1.6 + +* Mon Mar 18 2019 Marcin Ślusarz - 1.6-0.1.rc2 +- Update to PMDK version 1.6-rc2 + +* Fri Mar 08 2019 Marcin Ślusarz - 1.5.1-1 +- Update to PMDK version 1.5.1 + +* Fri Feb 01 2019 Fedora Release Engineering - 1.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Dec 14 2018 Marcin Ślusarz - 1.5-2 +- Remove Group: tag and add ownership information for libpmemobj headers + directory. + +* Tue Nov 6 2018 Marcin Ślusarz - 1.5-1 +- Update to PMDK version 1.5 + libpmemobj C++ bindings moved to separate package (RHBZ #1647145) + pmempool convert is now a thin wrapper around pmdk-convert (RHBZ #1647147) + +* Fri Aug 17 2018 Marcin Ślusarz - 1.4.2-1 +- Update to PMDK version 1.4.2 (RHBZ #1589406) + +* Tue Aug 14 2018 Marcin Ślusarz - 1.4.2-0.2.rc1 +- Revert package name change + +* Tue Aug 14 2018 Marcin Ślusarz - 1.4.2-0.1.rc1 +- Update to PMDK version 1.4.2-rc1 (RHBZ #1589406) + +* Fri Jul 13 2018 Fedora Release Engineering - 1.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Mar 30 2018 Krzysztof Czurylo - 1.4-3 +- Revert package name change +- Re-enable check + +* Thu Mar 29 2018 Krzysztof Czurylo - 1.4-2 +- Fix issues found by rpmlint + +* Thu Mar 29 2018 Krzysztof Czurylo - 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 - 1.3.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Jan 27 2018 Krzysztof Czurylo - 1.3.1-1 +- Update to NVML version 1.3.1 (RHBZ #1480578) + +* Thu Aug 03 2017 Fedora Release Engineering - 1.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 1.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon Jul 17 2017 Krzysztof Czurylo - 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 - 1.2.3-2 +- Update to NVML version 1.2.3 (RHBZ #1451741) + +* Sat Apr 15 2017 Krzysztof Czurylo - 1.2.2-1 +- Update to NVML version 1.2.2 (RHBZ #1436820, RHBZ #1425038) + +* Thu Mar 16 2017 Krzysztof Czurylo - 1.2.1-1 +- Update to NVML version 1.2.1 (RHBZ #1425038) + +* Tue Feb 21 2017 Krzysztof Czurylo - 1.2-3 +- Fix compilation under gcc 7.0.x (RHBZ #1424004) + +* Sat Feb 11 2017 Fedora Release Engineering - 1.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Dec 30 2016 Krzysztof Czurylo - 1.2-1 +- Update to NVML version 1.2 (RHBZ #1383467) +- Add libpmemobj C++ bindings + +* Thu Jul 14 2016 Krzysztof Czurylo - 1.1-3 +- Add missing package version requirements * Mon Jul 11 2016 Krzysztof Czurylo - 1.1-2 - Move debug variants of the libraries to -debug subpackages