Blame SPECS/nvml.spec

b0ef64
b0ef64
# rpmbuild options:
b0ef64
#   --with | --without ndctl
b0ef64
b0ef64
# do not terminate build if files in the $RPM_BUILD_ROOT
b0ef64
# directory are not found in %%files (without pmemcheck case)
b0ef64
%define _unpackaged_files_terminate_build 0
b0ef64
b0ef64
# disable 'make check'
b0ef64
%define _skip_check 1
b0ef64
b0ef64
# by default build with ndctl, unless explicitly disabled
b0ef64
%bcond_without ndctl
b0ef64
b0ef64
# by default build without pmemcheck, unless explicitly enabled
b0ef64
# pmemcheck is not packaged by Fedora
b0ef64
%bcond_with pmemcheck
b0ef64
b0ef64
%define min_ndctl_ver 60.1
c97d95
%define upstreamversion 1.12.1
b0ef64
b0ef64
Name:		nvml
c97d95
Version:	1.12.1
c97d95
Release:	1%{?dist}
b0ef64
Summary:	Persistent Memory Development Kit (formerly NVML)
b0ef64
License:	BSD
b0ef64
URL:		http://pmem.io/pmdk
b0ef64
b0ef64
Source0:	https://github.com/pmem/pmdk/releases/download/%{upstreamversion}/pmdk-%{upstreamversion}.tar.gz
b0ef64
# RHEL 9 does not ship pandoc, so the man pages have to be generated
b0ef64
# on another operating system (such as fedora or RHEL 8).  To do that,
b0ef64
# run the included makedocs.sh script on a system with pandoc.
b0ef64
Source1:	pmdk-%{version}-man.tar.gz
b0ef64
b0ef64
# do_open passes "attr" to util_pool_open which potentially reads that object
b0ef64
# but do_open never initializes "attr"
b0ef64
# may read that object
b0ef64
Patch0:         Makefile-bypass-check-doc-in-check.patch
c97d95
Patch1:         pmdk-1.12.1-use_ddebug_instead_of_debug_cflags.patch
b0ef64
b0ef64
b0ef64
BuildRequires:	gcc
b0ef64
BuildRequires:	make
c97d95
BuildRequires:	cmake
b0ef64
BuildRequires:	glibc-devel
b0ef64
BuildRequires:	autoconf
b0ef64
BuildRequires:	automake
b0ef64
BuildRequires:	man
b0ef64
BuildRequires:	pkgconfig
b0ef64
BuildRequires:	python3
b0ef64
BuildRequires:	groff
b0ef64
b0ef64
%if %{with ndctl}
b0ef64
BuildRequires:	ndctl-devel >= %{min_ndctl_ver}
b0ef64
BuildRequires:	daxctl-devel >= %{min_ndctl_ver}
b0ef64
%endif
b0ef64
b0ef64
# for tests
b0ef64
BuildRequires:	gdb
b0ef64
BuildRequires:	bc
b0ef64
#BuildRequires:	valgrind
b0ef64
b0ef64
# Debug variants of the libraries should be filtered out of the provides.
b0ef64
%global __provides_exclude_from ^%{_libdir}/pmdk_debug/.*\\.so.*$
b0ef64
b0ef64
# By design, PMDK does not support any 32-bit architecture.
b0ef64
# Due to dependency on some inline assembly, PMDK can be compiled only
b0ef64
# on these architectures:
b0ef64
# - x86_64
b0ef64
# - ppc64le (experimental)
b0ef64
# - aarch64 (unmaintained, supporting hardware doesn't exist?)
b0ef64
#
b0ef64
# Other 64-bit architectures could also be supported, if only there is
b0ef64
# a request for that, and if somebody provides the arch-specific
b0ef64
# implementation of the low-level routines for flushing to persistent
b0ef64
# memory.
b0ef64
b0ef64
# https://bugzilla.redhat.com/show_bug.cgi?id=1340634
b0ef64
# https://bugzilla.redhat.com/show_bug.cgi?id=1340635
b0ef64
# https://bugzilla.redhat.com/show_bug.cgi?id=1340637
b0ef64
b0ef64
ExclusiveArch: x86_64 ppc64le
b0ef64
b0ef64
%description
b0ef64
The Persistent Memory Development Kit is a collection of libraries for
b0ef64
using memory-mapped persistence, optimized specifically for persistent memory.
b0ef64
b0ef64
b0ef64
%package -n libpmem
b0ef64
Summary: Low-level persistent memory support library
b0ef64
%description -n libpmem
b0ef64
The libpmem provides low level persistent memory support. In particular,
b0ef64
support for the persistent memory instructions for flushing changes
b0ef64
to pmem is provided.  This package provides the v1 API.
b0ef64
b0ef64
%files -n libpmem
b0ef64
%dir %{_datadir}/pmdk
b0ef64
%{_libdir}/libpmem.so.*
b0ef64
%{_datadir}/pmdk/pmdk.magic
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
b0ef64
%package -n libpmem-devel
b0ef64
Summary: Development files for the low-level persistent memory library
b0ef64
Requires: libpmem = %{version}-%{release}
b0ef64
%description -n libpmem-devel
b0ef64
The libpmem provides low level persistent memory support. In particular,
b0ef64
support for the persistent memory instructions for flushing changes
b0ef64
to pmem is provided. This package provides the v1 API.
b0ef64
b0ef64
This library is provided for software which tracks every store to
b0ef64
pmem and needs to flush those changes to durability. Most developers
b0ef64
will find higher level libraries like libpmemobj to be much more
b0ef64
convenient.
b0ef64
b0ef64
%files -n libpmem-devel
b0ef64
%{_libdir}/libpmem.so
b0ef64
%{_libdir}/pkgconfig/libpmem.pc
b0ef64
%{_includedir}/libpmem.h
b0ef64
%{_mandir}/man7/libpmem.7.gz
b0ef64
%{_mandir}/man3/pmem_*.3.gz
b0ef64
%{_mandir}/man5/pmem_ctl.5.gz
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
b0ef64
%package -n libpmem-debug
b0ef64
Summary: Debug variant of the low-level persistent memory library
b0ef64
Requires: libpmem = %{version}-%{release}
b0ef64
%description -n libpmem-debug
b0ef64
The libpmem provides low level persistent memory support. In particular,
b0ef64
support for the persistent memory instructions for flushing changes
b0ef64
to pmem is provided. This package provides the v1 API.
b0ef64
b0ef64
This sub-package contains debug variant of the library, providing
b0ef64
run-time assertions and trace points. The typical way to access the
b0ef64
debug version is to set the environment variable LD_LIBRARY_PATH to
b0ef64
/usr/lib64/pmdk_debug.
b0ef64
b0ef64
%files -n libpmem-debug
b0ef64
%dir %{_libdir}/pmdk_debug
b0ef64
%{_libdir}/pmdk_debug/libpmem.so
b0ef64
%{_libdir}/pmdk_debug/libpmem.so.*
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
b0ef64
%package -n libpmem2
b0ef64
Summary: Low-level persistent memory support library
b0ef64
%description -n libpmem2
b0ef64
The libpmem provides low level persistent memory support. In particular,
b0ef64
support for the persistent memory instructions for flushing changes
b0ef64
to pmem is provided. This package provides the v2 API.
b0ef64
b0ef64
%files -n libpmem2
b0ef64
%dir %{_datadir}/pmdk
b0ef64
%{_libdir}/libpmem2.so.*
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
b0ef64
%package -n libpmem2-devel
b0ef64
Summary: Development files for the low-level persistent memory library
b0ef64
Requires: libpmem = %{version}-%{release}
b0ef64
%description -n libpmem2-devel
b0ef64
The libpmem provides low level persistent memory support. In particular,
b0ef64
support for the persistent memory instructions for flushing changes
b0ef64
to pmem is provided. This package provides the v2 API.
b0ef64
b0ef64
This library is provided for software which tracks every store to
b0ef64
pmem and needs to flush those changes to durability. Most developers
b0ef64
will find higher level libraries like libpmemobj to be much more
b0ef64
convenient.
b0ef64
b0ef64
%files -n libpmem2-devel
b0ef64
%{_libdir}/libpmem2.so
b0ef64
%{_libdir}/pkgconfig/libpmem2.pc
b0ef64
%{_includedir}/libpmem2.h
b0ef64
%{_mandir}/man7/libpmem2*7.gz
b0ef64
%{_mandir}/man3/pmem2_*.3.gz
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
b0ef64
%package -n libpmem2-debug
b0ef64
Summary: Debug variant of the low-level persistent memory library
b0ef64
Requires: libpmem = %{version}-%{release}
b0ef64
%description -n libpmem2-debug
b0ef64
The libpmem provides low level persistent memory support. In particular,
b0ef64
support for the persistent memory instructions for flushing changes
b0ef64
to pmem is provided. This package provides the v2 API.
b0ef64
b0ef64
This sub-package contains debug variant of the library, providing
b0ef64
run-time assertions and trace points. The typical way to access the
b0ef64
debug version is to set the environment variable LD_LIBRARY_PATH to
b0ef64
/usr/lib64/pmdk_debug.
b0ef64
b0ef64
%files -n libpmem2-debug
b0ef64
%dir %{_libdir}/pmdk_debug
b0ef64
%{_libdir}/pmdk_debug/libpmem2.so
b0ef64
%{_libdir}/pmdk_debug/libpmem2.so.*
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
b0ef64
%package -n libpmemblk
b0ef64
Summary: Persistent Memory Resident Array of Blocks library
b0ef64
Requires: libpmem >= %{version}-%{release}
b0ef64
%description -n libpmemblk
b0ef64
The libpmemblk implements a pmem-resident array of blocks, all the same
b0ef64
size, where a block is updated atomically with respect to power
b0ef64
failure or program interruption (no torn blocks).
b0ef64
b0ef64
%files -n libpmemblk
b0ef64
%{_libdir}/libpmemblk.so.*
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
b0ef64
%package -n libpmemblk-devel
b0ef64
Summary: Development files for the Persistent Memory Resident Array of Blocks library
b0ef64
Requires: libpmemblk = %{version}-%{release}
b0ef64
Requires: libpmem-devel = %{version}-%{release}
b0ef64
%description -n libpmemblk-devel
b0ef64
The libpmemblk implements a pmem-resident array of blocks, all the same
b0ef64
size, where a block is updated atomically with respect to power
b0ef64
failure or program interruption (no torn blocks).
b0ef64
b0ef64
For example, a program keeping a cache of fixed-size objects in pmem
b0ef64
might find this library useful. This library is provided for cases
b0ef64
requiring large arrays of objects at least 512 bytes each. Most
b0ef64
developers will find higher level libraries like libpmemobj to be
b0ef64
more generally useful.
b0ef64
b0ef64
%files -n libpmemblk-devel
b0ef64
%{_libdir}/libpmemblk.so
b0ef64
%{_libdir}/pkgconfig/libpmemblk.pc
b0ef64
%{_includedir}/libpmemblk.h
b0ef64
%{_mandir}/man7/libpmemblk.7.gz
b0ef64
%{_mandir}/man5/poolset.5.gz
b0ef64
%{_mandir}/man3/pmemblk_*.3.gz
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
b0ef64
%package -n libpmemblk-debug
b0ef64
Summary: Debug variant of the Persistent Memory Resident Array of Blocks library
b0ef64
Requires: libpmemblk = %{version}-%{release}
b0ef64
%description -n libpmemblk-debug
b0ef64
The libpmemblk implements a pmem-resident array of blocks, all the same
b0ef64
size, where a block is updated atomically with respect to power
b0ef64
failure or program interruption (no torn blocks).
b0ef64
b0ef64
This sub-package contains debug variant of the library, providing
b0ef64
run-time assertions and trace points. The typical way to access the
b0ef64
debug version is to set the environment variable LD_LIBRARY_PATH to
b0ef64
/usr/lib64/pmdk_debug.
b0ef64
b0ef64
%files -n libpmemblk-debug
b0ef64
%dir %{_libdir}/pmdk_debug
b0ef64
%{_libdir}/pmdk_debug/libpmemblk.so
b0ef64
%{_libdir}/pmdk_debug/libpmemblk.so.*
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
b0ef64
%package -n libpmemlog
b0ef64
Summary: Persistent Memory Resident Log File library
b0ef64
Requires: libpmem >= %{version}-%{release}
b0ef64
%description -n libpmemlog
b0ef64
The libpmemlog library provides a pmem-resident log file. This is
b0ef64
useful for programs like databases that append frequently to a log
b0ef64
file.
b0ef64
b0ef64
%files -n libpmemlog
b0ef64
%{_libdir}/libpmemlog.so.*
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
b0ef64
%package -n libpmemlog-devel
b0ef64
Summary: Development files for the Persistent Memory Resident Log File library
b0ef64
Requires: libpmemlog = %{version}-%{release}
b0ef64
Requires: libpmem-devel = %{version}-%{release}
b0ef64
%description -n libpmemlog-devel
b0ef64
The libpmemlog library provides a pmem-resident log file. This
b0ef64
library is provided for cases requiring an append-mostly file to
b0ef64
record variable length entries. Most developers will find higher
b0ef64
level libraries like libpmemobj to be more generally useful.
b0ef64
b0ef64
%files -n libpmemlog-devel
b0ef64
%{_libdir}/libpmemlog.so
b0ef64
%{_libdir}/pkgconfig/libpmemlog.pc
b0ef64
%{_includedir}/libpmemlog.h
b0ef64
%{_mandir}/man7/libpmemlog.7.gz
b0ef64
%{_mandir}/man5/poolset.5.gz
b0ef64
%{_mandir}/man3/pmemlog_*.3.gz
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
b0ef64
%package -n libpmemlog-debug
b0ef64
Summary: Debug variant of the Persistent Memory Resident Log File library
b0ef64
Requires: libpmemlog = %{version}-%{release}
b0ef64
%description -n libpmemlog-debug
b0ef64
The libpmemlog library provides a pmem-resident log file. This
b0ef64
library is provided for cases requiring an append-mostly file to
b0ef64
record variable length entries. Most developers will find higher
b0ef64
level libraries like libpmemobj to be more generally useful.
b0ef64
b0ef64
This sub-package contains debug variant of the library, providing
b0ef64
run-time assertions and trace points. The typical way to access the
b0ef64
debug version is to set the environment variable LD_LIBRARY_PATH to
b0ef64
/usr/lib64/pmdk_debug.
b0ef64
b0ef64
%files -n libpmemlog-debug
b0ef64
%dir %{_libdir}/pmdk_debug
b0ef64
%{_libdir}/pmdk_debug/libpmemlog.so
b0ef64
%{_libdir}/pmdk_debug/libpmemlog.so.*
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
b0ef64
%package -n libpmemobj
b0ef64
Summary: Persistent Memory Transactional Object Store library
b0ef64
Requires: libpmem >= %{version}-%{release}
b0ef64
%description -n libpmemobj
b0ef64
The libpmemobj library provides a transactional object store,
b0ef64
providing memory allocation, transactions, and general facilities for
b0ef64
persistent memory programming.
b0ef64
b0ef64
%files -n libpmemobj
b0ef64
%{_libdir}/libpmemobj.so.*
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
b0ef64
%package -n libpmemobj-devel
b0ef64
Summary: Development files for the Persistent Memory Transactional Object Store library
b0ef64
Requires: libpmemobj = %{version}-%{release}
b0ef64
Requires: libpmem-devel = %{version}-%{release}
b0ef64
%description -n libpmemobj-devel
b0ef64
The libpmemobj library provides a transactional object store,
b0ef64
providing memory allocation, transactions, and general facilities for
b0ef64
persistent memory programming. Developers new to persistent memory
b0ef64
probably want to start with this library.
b0ef64
b0ef64
%files -n libpmemobj-devel
b0ef64
%{_libdir}/libpmemobj.so
b0ef64
%{_libdir}/pkgconfig/libpmemobj.pc
b0ef64
%{_includedir}/libpmemobj.h
b0ef64
%dir %{_includedir}/libpmemobj
b0ef64
%{_includedir}/libpmemobj/*.h
b0ef64
%{_mandir}/man7/libpmemobj.7.gz
b0ef64
%{_mandir}/man5/poolset.5.gz
b0ef64
%{_mandir}/man3/pmemobj_*.3.gz
b0ef64
%{_mandir}/man3/pobj_*.3.gz
b0ef64
%{_mandir}/man3/oid_*.3.gz
b0ef64
%{_mandir}/man3/toid*.3.gz
b0ef64
%{_mandir}/man3/direct_*.3.gz
b0ef64
%{_mandir}/man3/d_r*.3.gz
b0ef64
%{_mandir}/man3/tx_*.3.gz
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
b0ef64
%package -n libpmemobj-debug
b0ef64
Summary: Debug variant of the Persistent Memory Transactional Object Store library
b0ef64
Requires: libpmemobj = %{version}-%{release}
b0ef64
%description -n libpmemobj-debug
b0ef64
The libpmemobj library provides a transactional object store,
b0ef64
providing memory allocation, transactions, and general facilities for
b0ef64
persistent memory programming. Developers new to persistent memory
b0ef64
probably want to start with this library.
b0ef64
b0ef64
This sub-package contains debug variant of the library, providing
b0ef64
run-time assertions and trace points. The typical way to access the
b0ef64
debug version is to set the environment variable LD_LIBRARY_PATH to
b0ef64
/usr/lib64/pmdk_debug.
b0ef64
b0ef64
%files -n libpmemobj-debug
b0ef64
%dir %{_libdir}/pmdk_debug
b0ef64
%{_libdir}/pmdk_debug/libpmemobj.so
b0ef64
%{_libdir}/pmdk_debug/libpmemobj.so.*
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
b0ef64
%package -n libpmempool
b0ef64
Summary: Persistent Memory pool management library
b0ef64
Requires: libpmem >= %{version}-%{release}
b0ef64
%description -n libpmempool
b0ef64
The libpmempool library provides a set of utilities for off-line
b0ef64
administration, analysis, diagnostics and repair of persistent memory
b0ef64
pools created by libpmemlog, libpmemblk and libpmemobj libraries.
b0ef64
b0ef64
%files -n libpmempool
b0ef64
%{_libdir}/libpmempool.so.*
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
b0ef64
%package -n libpmempool-devel
b0ef64
Summary: Development files for Persistent Memory pool management library
b0ef64
Requires: libpmempool = %{version}-%{release}
b0ef64
Requires: libpmem-devel = %{version}-%{release}
b0ef64
%description -n libpmempool-devel
b0ef64
The libpmempool library provides a set of utilities for off-line
b0ef64
administration, analysis, diagnostics and repair of persistent memory
b0ef64
pools created by libpmemlog, libpmemblk and libpmemobj libraries.
b0ef64
b0ef64
%files -n libpmempool-devel
b0ef64
%{_libdir}/libpmempool.so
b0ef64
%{_libdir}/pkgconfig/libpmempool.pc
b0ef64
%{_includedir}/libpmempool.h
b0ef64
%{_mandir}/man7/libpmempool.7.gz
b0ef64
%{_mandir}/man5/poolset.5.gz
b0ef64
%{_mandir}/man3/pmempool_*.3.gz
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
b0ef64
%package -n libpmempool-debug
b0ef64
Summary: Debug variant of the Persistent Memory pool management library
b0ef64
Requires: libpmempool = %{version}-%{release}
b0ef64
%description -n libpmempool-debug
b0ef64
The libpmempool library provides a set of utilities for off-line
b0ef64
administration, analysis, diagnostics and repair of persistent memory
b0ef64
pools created by libpmemlog, libpmemblk and libpmemobj libraries.
b0ef64
b0ef64
This sub-package contains debug variant of the library, providing
b0ef64
run-time assertions and trace points. The typical way to access the
b0ef64
debug version is to set the environment variable LD_LIBRARY_PATH to
b0ef64
/usr/lib64/pmdk_debug.
b0ef64
b0ef64
%files -n libpmempool-debug
b0ef64
%dir %{_libdir}/pmdk_debug
b0ef64
%{_libdir}/pmdk_debug/libpmempool.so
b0ef64
%{_libdir}/pmdk_debug/libpmempool.so.*
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
b0ef64
%package -n pmempool
b0ef64
Summary: Utilities for Persistent Memory
b0ef64
Requires: libpmem >= %{version}-%{release}
b0ef64
Requires: libpmemlog >= %{version}-%{release}
b0ef64
Requires: libpmemblk >= %{version}-%{release}
b0ef64
Requires: libpmemobj >= %{version}-%{release}
b0ef64
Requires: libpmempool >= %{version}-%{release}
b0ef64
Obsoletes: nvml-tools < %{version}-%{release}
b0ef64
%description -n pmempool
b0ef64
The pmempool is a standalone utility for management and off-line analysis
b0ef64
of Persistent Memory pools created by PMDK libraries. It provides a set
b0ef64
of utilities for administration and diagnostics of Persistent Memory pools.
b0ef64
The pmempool may be useful for troubleshooting by system administrators
b0ef64
and users of the applications based on PMDK libraries.
b0ef64
b0ef64
%files -n pmempool
b0ef64
%{_bindir}/pmempool
b0ef64
%{_mandir}/man1/pmempool.1.gz
b0ef64
%{_mandir}/man1/pmempool-*.1.gz
b0ef64
%config(noreplace) %{_sysconfdir}/bash_completion.d/pmempool
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
b0ef64
%if %{with ndctl}
b0ef64
b0ef64
%package -n daxio
b0ef64
Summary: Perform I/O on Device DAX devices or zero a Device DAX device
b0ef64
Requires: libpmem >= %{version}-%{release}
b0ef64
%description -n daxio
b0ef64
The daxio utility performs I/O on Device DAX devices or zero
b0ef64
a Device DAX device.  Since the standard I/O APIs (read/write) cannot be used
b0ef64
with Device DAX, data transfer is performed on a memory-mapped device.
b0ef64
The daxio may be used to dump Device DAX data to a file, restore data from
b0ef64
a backup copy, move/copy data to another device or to erase data from
b0ef64
a device.
b0ef64
b0ef64
%files -n daxio
b0ef64
%{_bindir}/daxio
b0ef64
%{_mandir}/man1/daxio.1.gz
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
# _with_ndctl
b0ef64
%endif
b0ef64
b0ef64
%if %{with pmemcheck}
b0ef64
%package -n pmreorder
b0ef64
Summary: Consistency Checker for Persistent Memory
b0ef64
Requires: python3
b0ef64
%description -n pmreorder
b0ef64
The pmreorder tool is a collection of python scripts designed to parse
b0ef64
and replay operations logged by pmemcheck - a persistent memory checking tool.
b0ef64
Pmreorder performs the store reordering between persistent memory barriers -
b0ef64
a sequence of flush-fence operations. It uses a consistency checking routine
b0ef64
provided in the command line options to check whether files are in a consistent state.
b0ef64
b0ef64
%files -n pmreorder
b0ef64
%{_bindir}/pmreorder
b0ef64
%{_datadir}/pmreorder/*.py
b0ef64
%{_mandir}/man1/pmreorder.1.gz
b0ef64
%license LICENSE
b0ef64
%doc ChangeLog CONTRIBUTING.md README.md
b0ef64
b0ef64
# _with_pmemcheck
b0ef64
%endif
b0ef64
b0ef64
%prep
b0ef64
%setup -q -n pmdk-%{upstreamversion}
b0ef64
%patch0 -p1
b0ef64
%patch1 -p1
b0ef64
b0ef64
b0ef64
%build
b0ef64
# This package calls binutils components directly and would need to pass
b0ef64
# in flags to enable the LTO plugins
b0ef64
# Disable LTO
b0ef64
%define _lto_cflags %{nil}
b0ef64
b0ef64
# For debug build default flags may be overriden to disable compiler
b0ef64
# optimizations.
b0ef64
CFLAGS="%{optflags}" \
b0ef64
LDFLAGS="%{?__global_ldflags}" \
b0ef64
make %{?_smp_mflags} NORPATH=1 DOC=n
b0ef64
b0ef64
b0ef64
# Override LIB_AR with empty string to skip installation of static libraries
b0ef64
%install
b0ef64
make install DESTDIR=%{buildroot} \
b0ef64
	DOC=n \
b0ef64
	LIB_AR= \
b0ef64
	prefix=%{_prefix} \
b0ef64
	libdir=%{_libdir} \
b0ef64
	includedir=%{_includedir} \
b0ef64
	mandir=%{_mandir} \
b0ef64
	bindir=%{_bindir} \
b0ef64
	sysconfdir=%{_sysconfdir} \
b0ef64
	docdir=%{_docdir}
b0ef64
mkdir -p %{buildroot}%{_datadir}/pmdk
b0ef64
cp utils/pmdk.magic %{buildroot}%{_datadir}/pmdk/
b0ef64
mkdir -p %{buildroot}%{_mandir}
b0ef64
(cd %{buildroot}%{_mandir}; tar xzvf %{SOURCE1})
b0ef64
b0ef64
b0ef64
%check
b0ef64
%if 0%{?_skip_check} == 1
b0ef64
	echo "Check skipped"
b0ef64
%else
b0ef64
	echo "PMEM_FS_DIR=/tmp"                  > src/test/testconfig.sh
b0ef64
	echo "PMEM_FS_DIR_FORCE_PMEM=1"         >> src/test/testconfig.sh
b0ef64
	echo 'TEST_BUILD="debug nondebug"'      >> src/test/testconfig.sh
b0ef64
	echo "TM=1"                             >> src/test/testconfig.sh
b0ef64
b0ef64
	echo "config = {"                        > src/test/testconfig.py
b0ef64
	echo "  'pmem_fs_dir': '/tmp',"         >> src/test/testconfig.py
b0ef64
	echo "  'fs_dir_force_pmem': 1,"        >> src/test/testconfig.py
b0ef64
	echo "  'build': ['debug', 'release']," >> src/test/testconfig.py
b0ef64
	echo "  'tm': 1,"                       >> src/test/testconfig.py
b0ef64
	echo "  'test_type': 'check',"          >> src/test/testconfig.py
b0ef64
	echo "  'fs': 'all',"                   >> src/test/testconfig.py
b0ef64
	echo "  'unittest_log_level': 1,"       >> src/test/testconfig.py
b0ef64
	echo "  'keep_going': False,"           >> src/test/testconfig.py
b0ef64
	echo "  'timeout': '30m',"              >> src/test/testconfig.py
b0ef64
	echo "  'dump_lines': 30,"              >> src/test/testconfig.py
b0ef64
	echo "  'force_enable': None,"          >> src/test/testconfig.py
b0ef64
	echo "  'device_dax_path': [],"         >> src/test/testconfig.py
b0ef64
	echo "  'granularity': 'cacheline',"    >> src/test/testconfig.py
b0ef64
	echo "  'enable_admin_tests': False,"   >> src/test/testconfig.py
b0ef64
	echo "  'fail_on_skip': False,"         >> src/test/testconfig.py
b0ef64
	echo "  'cacheline_fs_dir': '/tmp',"    >> src/test/testconfig.py
b0ef64
	echo "  'force_cacheline': True,"       >> src/test/testconfig.py
b0ef64
	echo "  'granularity': 'cacheline',"    >> src/test/testconfig.py
b0ef64
	echo "}"                                >> src/test/testconfig.py
b0ef64
b0ef64
	rm -f src/test/obj_sync/TEST7
b0ef64
b0ef64
	make pycheck
b0ef64
	make check
b0ef64
%endif
b0ef64
b0ef64
%ldconfig_scriptlets   -n libpmem
b0ef64
%ldconfig_scriptlets   -n libpmem2
b0ef64
%ldconfig_scriptlets   -n libpmemblk
b0ef64
%ldconfig_scriptlets   -n libpmemlog
b0ef64
%ldconfig_scriptlets   -n libpmemobj
b0ef64
%ldconfig_scriptlets   -n libpmempool
b0ef64
b0ef64
%if 0%{?__debug_package} == 0
b0ef64
%debug_package
b0ef64
%endif
b0ef64
b0ef64
b0ef64
%changelog
c97d95
* Tue Oct 18 2022 Bryan Gurney <bgurney@redhat.com > 1.12.1-1
c97d95
- Update to PMDK version 1.12.1
c97d95
- Related: rhbz#2111431
c97d95
b0ef64
* Mon Feb 07 2022 Bryan Gurney <bgurney@redhat.com> - 1.10.1-2
b0ef64
- Use DDEBUG in Makefile.inc instead of DEBUG_CFLAGS
b0ef64
- Related: rhbz#2044882
b0ef64
b0ef64
* Thu Oct 14 2021 Bryan Gurney <bgurney@redhat.com> - 1.10.1-1
b0ef64
- Update to PMDK version 1.10.1
b0ef64
- Related: rhbz#1874208
b0ef64
- Remove BuildRequires line for libfabric-devel
b0ef64
- Related: rhbz#2009502
b0ef64
b0ef64
* Mon Oct 04 2021 Bryan Gurney <bgurney@redhat.com> - 1.10-11
b0ef64
- Do not generate librpmem man pages
b0ef64
- Related: rhbz#2002998
b0ef64
b0ef64
* Thu Sep 16 2021 Bryan Gurney <bgurney@redhat.com> - 1.10-10
b0ef64
- Do not build librpmem packages
b0ef64
- Related: rhbz#2002998
b0ef64
b0ef64
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 1.10-9
b0ef64
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
b0ef64
  Related: rhbz#1991688
b0ef64
b0ef64
* Mon Aug 02 2021 Bryan Gurney <bgurney@redhat.com> - 1.10-8.el9
b0ef64
- Supersede uninitialized value patch with upstream version
b0ef64
- Add upstream patch: common: fix mismatch between prototype and body
b0ef64
- Makefile: bypass check-doc in check target
b0ef64
- Related: rhbz#1985096
b0ef64
b0ef64
* Fri Jul 30 2021 Bryan Gurney <bgurney@redhat.com> - 1.10.7-el9
b0ef64
- Remove BuildRequires line for libunwind.devel
b0ef64
- Resolves: rhbz#1984766
b0ef64
b0ef64
* Wed Jun 16 2021 Jeff Moyer <jmoyer@redhat.com> - 1.10-6.el9
b0ef64
- Build man pages outside of the rpm.
b0ef64
- Resolves: rhbz#1943530
b0ef64
b0ef64
* Mon Apr 26 2021 Jeff Moyer <jmoyer@redhat.com> - 1.10-5
b0ef64
- Don't run %check on the build infrastructure.
b0ef64
- Resolves: rhbz#1951273
b0ef64
b0ef64
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 1.10-4
b0ef64
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
b0ef64
b0ef64
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.10-3
b0ef64
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
b0ef64
b0ef64
* Fri Dec 04 2020 Jeff Law <law@redhat.com> - 1.10-2
b0ef64
- Fix uninitialized variable in tests caught by gcc-11 (again)
b0ef64
b0ef64
* Sat Oct 31 2020 Adam Borowski <kilobyte@angband.pl> - 1.10-1
b0ef64
- Update to PMDK version 1.10
b0ef64
- New set of binary libraries: libpmem2{,-devel,-debug}
b0ef64
- Drop obj_sync/7 test as it randomly fails on ppc64le (to investigate).
b0ef64
b0ef64
* Fri Oct 30 2020 Adam Borowski <kilobyte@angband.pl> - 1.9.2-2
b0ef64
- Second attempt -- retry a transient failure on ppc64le.
b0ef64
b0ef64
* Wed Oct 28 2020 Adam Borowski <kilobyte@angband.pl> - 1.9.2-1
b0ef64
- Update to PMDK version 1.9.2
b0ef64
- Install pmem_ctl(5).
b0ef64
b0ef64
* Fri Oct 2 2020 Adam Borowski <kilobyte@angband.pl> - 1.9.1-1
b0ef64
- Update to PMDK version 1.9.1
b0ef64
b0ef64
* Tue Sep 15 2020 Jeff Law <law@redhat.com> - 1.9-5
b0ef64
- Fix uninitialized variable in tests caught by gcc-11
b0ef64
b0ef64
* Tue Aug 18 2020 Adam Borowski <kilobyte@angband.pl> - 1.9-4
b0ef64
- Fix FTBFS with new binutils.
b0ef64
b0ef64
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.9-3
b0ef64
- Second attempt - Rebuilt for
b0ef64
  https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
b0ef64
b0ef64
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.9-2
b0ef64
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
b0ef64
b0ef64
* Tue Jul 7 2020 Adam Borowski <kilobyte@angband.pl> - 1.9-1
b0ef64
- Update to PMDK version 1.9
b0ef64
- Drop upstreamed patches.
b0ef64
- Add pandoc and groff to B-Reqs.
b0ef64
- Add required testconfig.py fields.
b0ef64
- Increase test timeout.
b0ef64
b0ef64
* Tue Jun 30 2020 Jeff Law <law@redhat.com> - 1.8-3
b0ef64
Disable LTO
b0ef64
b0ef64
* Wed Feb 26 2020 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.8-2
b0ef64
- Enable PPC64LE packages
b0ef64
b0ef64
* Wed Feb 12 2020 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.8-1
b0ef64
- Update to PMDK version 1.8. This release stops shipping
b0ef64
  libvmem & libvmmalloc. These libraries are now provided by vmem
b0ef64
  package.
b0ef64
b0ef64
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.7-2
b0ef64
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
b0ef64
b0ef64
* Tue Oct 1 2019 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.7-1
b0ef64
- Update to PMDK version 1.7
b0ef64
b0ef64
* Fri Aug 30 2019 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.6.1-1
b0ef64
- Update to PMDK version 1.6.1
b0ef64
b0ef64
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-2
b0ef64
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
b0ef64
b0ef64
* Tue Mar 26 2019 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.6-1
b0ef64
- Update to PMDK version 1.6
b0ef64
b0ef64
* Mon Mar 18 2019 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.6-0.1.rc2
b0ef64
- Update to PMDK version 1.6-rc2
b0ef64
b0ef64
* Fri Mar 08 2019 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.5.1-1
b0ef64
- Update to PMDK version 1.5.1
b0ef64
b0ef64
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.5-3
b0ef64
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
b0ef64
b0ef64
* Fri Dec 14 2018 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.5-2
b0ef64
- Remove Group: tag and add ownership information for libpmemobj headers
b0ef64
  directory.
b0ef64
b0ef64
* Tue Nov 6 2018 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.5-1
b0ef64
- Update to PMDK version 1.5
b0ef64
  libpmemobj C++ bindings moved to separate package (RHBZ #1647145)
b0ef64
  pmempool convert is now a thin wrapper around pmdk-convert (RHBZ #1647147)
b0ef64
b0ef64
* Fri Aug 17 2018 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.4.2-1
b0ef64
- Update to PMDK version 1.4.2 (RHBZ #1589406)
b0ef64
b0ef64
* Tue Aug 14 2018 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.4.2-0.2.rc1
b0ef64
- Revert package name change
b0ef64
b0ef64
* Tue Aug 14 2018 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.4.2-0.1.rc1
b0ef64
- Update to PMDK version 1.4.2-rc1 (RHBZ #1589406)
b0ef64
b0ef64
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.4-4
b0ef64
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
b0ef64
b0ef64
* Fri Mar 30 2018 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.4-3
b0ef64
- Revert package name change
b0ef64
- Re-enable check
b0ef64
b0ef64
* Thu Mar 29 2018 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.4-2
b0ef64
- Fix issues found by rpmlint
b0ef64
b0ef64
* Thu Mar 29 2018 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.4-1
b0ef64
- Rename NVML project to PMDK
b0ef64
- Update to PMDK version 1.4 (RHBZ #1480578, #1539562, #1539564)
b0ef64
b0ef64
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-2
b0ef64
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
b0ef64
b0ef64
* Sat Jan 27 2018 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.3.1-1
b0ef64
- Update to NVML version 1.3.1 (RHBZ #1480578)
b0ef64
b0ef64
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-3
b0ef64
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
b0ef64
b0ef64
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-2
b0ef64
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
b0ef64
b0ef64
* Mon Jul 17 2017 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.3-1
b0ef64
- Update to NVML version 1.3 (RHBZ #1451741, RHBZ #1455216)
b0ef64
- Add librpmem and rpmemd sub-packages
b0ef64
- Force file system to appear as PMEM for make check
b0ef64
b0ef64
* Fri Jun 16 2017 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.2.3-2
b0ef64
- Update to NVML version 1.2.3 (RHBZ #1451741)
b0ef64
b0ef64
* Sat Apr 15 2017 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.2.2-1
b0ef64
- Update to NVML version 1.2.2 (RHBZ #1436820, RHBZ #1425038)
b0ef64
b0ef64
* Thu Mar 16 2017 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.2.1-1
b0ef64
- Update to NVML version 1.2.1 (RHBZ #1425038)
b0ef64
b0ef64
* Tue Feb 21 2017 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.2-3
b0ef64
- Fix compilation under gcc 7.0.x (RHBZ #1424004)
b0ef64
b0ef64
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.2-2
b0ef64
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
b0ef64
b0ef64
* Fri Dec 30 2016 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.2-1
b0ef64
- Update to NVML version 1.2 (RHBZ #1383467)
b0ef64
- Add libpmemobj C++ bindings
b0ef64
b0ef64
* Thu Jul 14 2016 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.1-3
b0ef64
- Add missing package version requirements
b0ef64
b0ef64
* Mon Jul 11 2016 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.1-2
b0ef64
- Move debug variants of the libraries to -debug subpackages
b0ef64
b0ef64
* Sun Jun 26 2016 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.1-1
b0ef64
- NVML 1.1 release
b0ef64
- Update link to source tarball
b0ef64
- Add libpmempool subpackage
b0ef64
- Remove obsolete patches
b0ef64
b0ef64
* Wed Jun 01 2016 Dan Horák <dan[at]danny.cz> - 1.0-3
b0ef64
- switch to ExclusiveArch
b0ef64
b0ef64
* Sun May 29 2016 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.0-2
b0ef64
- Exclude PPC architecture
b0ef64
- Add bug numbers for excluded architectures
b0ef64
b0ef64
* Tue May 24 2016 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.0-1
b0ef64
- Initial RPM release