10 Commits

Author SHA256 Message Date
32b1d14878 Accepting request 1250268 from hardware:nvdimm
Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/1250268
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pmdk?expand=0&rev=17
2025-03-06 13:48:16 +00:00
0e93638d7a pmdk 2.1.1
OBS-URL: https://build.opensuse.org/package/show/hardware:nvdimm/pmdk?expand=0&rev=44
2025-02-25 20:43:03 +00:00
3fb78cdf3f Accepting request 1179000 from hardware:nvdimm
- Add patch to fix build on aarch64:
  * 6096.patch (forwarded request 1178980 from Guillaume_G)

OBS-URL: https://build.opensuse.org/request/show/1179000
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pmdk?expand=0&rev=16
2024-06-07 13:02:23 +00:00
4426f70212 Accepting request 1178980 from home:Guillaume_G:branches:openSUSE:Factory:ARM
- Add patch to fix build on aarch64:
  * 6096.patch

OBS-URL: https://build.opensuse.org/request/show/1178980
OBS-URL: https://build.opensuse.org/package/show/hardware:nvdimm/pmdk?expand=0&rev=42
2024-06-06 10:48:37 +00:00
3d6b7fd90f Accepting request 1176871 from hardware:nvdimm
- Update to release 2.1

OBS-URL: https://build.opensuse.org/request/show/1176871
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pmdk?expand=0&rev=15
2024-05-28 15:27:41 +00:00
2ba4fa987a rerun gen-doc.sh
OBS-URL: https://build.opensuse.org/package/show/hardware:nvdimm/pmdk?expand=0&rev=40
2024-05-25 13:19:16 +00:00
2f64e855a3 replace pandoc hacks with reuse of pregen-doc
OBS-URL: https://build.opensuse.org/package/show/hardware:nvdimm/pmdk?expand=0&rev=39
2024-05-25 13:16:05 +00:00
3d12408179 throw out pandoc
OBS-URL: https://build.opensuse.org/package/show/hardware:nvdimm/pmdk?expand=0&rev=38
2024-05-25 13:02:56 +00:00
aff010472e - Update to release 2.1
OBS-URL: https://build.opensuse.org/package/show/hardware:nvdimm/pmdk?expand=0&rev=37
2024-05-24 20:54:28 +00:00
388cbf2d87 - Update to release 2.0.1
OBS-URL: https://build.opensuse.org/package/show/hardware:nvdimm/pmdk?expand=0&rev=36
2024-04-12 07:46:59 +00:00
9 changed files with 98 additions and 210 deletions

BIN
1.11.1.tar.gz LFS

Binary file not shown.

View File

@@ -1,34 +0,0 @@
commit 96ef671e0653571e1c189ad58db9cdca72efb7a8
Author: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
Date: Wed Jul 22 10:13:36 2020 +0200
examples: rpmem: add missing -lfabric flag
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
diff --git src/examples/librpmem/Makefile src/examples/librpmem/Makefile
index fe88c819aa3c..c0302befcf7b 100644
--- src/examples/librpmem/Makefile
+++ src/examples/librpmem/Makefile
@@ -11,7 +11,7 @@ ifeq ($(BUILD_RPMEM), y)
PROGS = basic hello manpage
DIRS = fibonacci
-LIBS = -lrpmem -pthread
+LIBS = -lrpmem -pthread -lfabric
else
$(info NOTE: Skipping librpmem examples because $(BUILD_RPMEM_INFO))
endif
diff --git src/examples/librpmem/fibonacci/Makefile src/examples/librpmem/fibonacci/Makefile
index f320ce0ba753..73789a22d7ba 100644
--- src/examples/librpmem/fibonacci/Makefile
+++ src/examples/librpmem/fibonacci/Makefile
@@ -6,7 +6,7 @@
#
PROGS = fibonacci
-LIBS = -lrpmem -lpmem -pthread
+LIBS = -lrpmem -lpmem -pthread -lfabric
include ../../Makefile.inc

View File

@@ -1,14 +1,14 @@
#!/bin/bash
# Run this script after updating the source tarball and changing the version number in the spec file.
# If you get errors about missing files in ./doc/librpmem/ and ./doc/rpmemd you are probably missing
# libfabric
# Run this script after updating the source tarball and changing the version
# number in the spec file. If you get errors about missing files in
# ./doc/librpmem/ and ./doc/rpmemd, you are probably missing libfabric.
TARBALL=$(rpmspec --parse pmdk.spec| grep "Source:" | awk '{ print $NF'} | xargs basename)
DIR=$(tar tvf $TARBALL | head -n 1 | awk '{ print $NF}')
DIR=$(tar -tvf "$TARBALL" | head -n 1 | awk '{ print $NF}')
rm -Rf $DIR
tar xf $TARBALL
cd $DIR
rm -Rf "$DIR"
tar -xf "$TARBALL"
cd "$DIR"
make -C doc all
FILES=$(find . -name "*\.[1357].md" | sed -e 's/\.md$//')
tar czf ../pregen-doc.tgz $FILES
tar --use=xz -cf ../pregen-doc.tar.xz $FILES

3
pmdk-2.1.1.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1abc9a518e43920733809a809edd1555f7a48fa8abae242a958e1ab3436f7e3f
size 1545892

14
pmdk-2.1.1.tar.gz.asc Normal file
View File

@@ -0,0 +1,14 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCAAdFiEEZTcpJLRAQlU0ble9ggjtKK/+QoAFAme1vw8ACgkQggjtKK/+
QoALgQwAn5Lypm+ixMpe3YbSMlSyuSqks+XfAoxtkyThBL4yRhkFb4IyD1kYKSlZ
qJELXSKoTkm42N4d6KNzGCj/c43w/VNlVclPp8b9qOsWAK3u5a/8AHJyO9odr/MP
cq3qi9mkb6vnWX+aZsI36OuMr1xVrHAsziDy75zA4Hn2FpTheKw3aZ1hmiTmzf+E
9cZ8ynmysPChbom3d98u2hlVQKspPkoOo0ZwzPE/ppXqISjSJdtcxVfpczWcxbHn
eNjN9WS5/VjURkbwDRykdf4Sdd9gC37xSW01xGsPY17m3DBel7T59Vy1VtZgyMO/
dv75KCPmLpkdUv/4IVi3MXVjGEZEfJQdkrcc3/8aPfEO7TNlqhtbzPxuxXb7aI62
yoTsP5svjSu1iACj6D8q1hLazSzXgLTLCOMzpS/kyvctE9KRpQLuuV454t4RSWfF
UMbBN9Ya+nQ31sftXVPzIFwA39H7AZi2HSICdBJdo6ZF0xYcvtocxvyn/gpzeF2Q
AKLunt6X
=5KBg
-----END PGP SIGNATURE-----

View File

@@ -1,3 +1,53 @@
-------------------------------------------------------------------
Tue Feb 25 20:39:02 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2.1.1
* Mute error messages when transactions are intentionally
aborted.
* Mute error message "Cannot find any matching device, no bad
blocks found" when PMDK is used without PMem.
- Delete 6096.patch (merged)
-------------------------------------------------------------------
Thu Jun 6 09:22:13 UTC 2024 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- Add patch to fix build on aarch64:
* 6096.patch
-------------------------------------------------------------------
Fri May 24 10:37:10 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2.1
* New logging subsystem; Messages by default are printed to
syslog and stderr but might be redirected to a user-defined
function (cf. pmem(obj)_log_set_function,
pmem(obj)_log_set_treshold).
* Introduced fuses against ill-considered use of NDCTL_ENABLE=n.
* Does not allow create PMEMOBJ pool without unsafe shutdown
counter (USC).
-------------------------------------------------------------------
Fri Apr 12 07:13:15 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2.0.1
* Removes librpmem. Those interested in remote persistent memory
support should use the rpma library.
* Removes libpmemset - it was an experimental library.
* Removes libpmemlog, libpmemblk, btt, and their support in
(lib)pmempool
* Removes all pmem2_async operations (experimental)
* Introduces a new set of APIs in libpmem2 to perform
asynchronous data movement operations. To use this feature,
software needs to include an optional miniasync(7) dependency.
* Adds new API to machine safe read/write operations in the pmem2
library.
* Introduces support for movdir64b instruction for memory
operation functions in the libpmem2 library.
* Adds experimental support for RISC-V.
* Significantly reduces the libpmem's stack usage.
* Reduces libpmemobj's stack usage below the 11kB threshold.
- Delete examples-rpmem-add-missing-lfabric-flag.patch (obsolete)
-------------------------------------------------------------------
Wed Oct 6 08:54:51 UTC 2021 - Christian Vögl <christian.voegl@suse.com>

182
pmdk.spec
View File

@@ -1,7 +1,7 @@
#
# spec file for package pmdk
#
# Copyright (c) 2021 SUSE LLC
# Copyright (c) 2025 SUSE LLC
# Copyright 2016, Intel Corporation
#
# All modifications and additions to the file contributed by third parties
@@ -17,46 +17,31 @@
#
%if 0%{?suse_version} > 1315
%define with_fabric 1
%endif
%define min_libfabric_ver 1.4.2
%define min_ndctl_ver 63.0
Name: pmdk
Version: 1.11.1
Version: 2.1.1
Release: 0
Summary: Persistent Memory Development Kit
License: BSD-3-Clause
Group: Development/Libraries/C and C++
URL: http://pmem.io/pmdk/
Source: https://github.com/pmem/pmdk/archive/%version.tar.gz
Source1: pregen-doc.tgz
Source: https://github.com/pmem/pmdk/releases/download/%version/%name-%version.tar.gz
Source2: https://github.com/pmem/pmdk/releases/download/%version/%name-%version.tar.gz.asc
Source10: pregen-doc.tar.xz
Source99: gen-doc.sh
Patch0: examples-rpmem-add-missing-lfabric-flag.patch
BuildRequires: automake
BuildRequires: fdupes
BuildRequires: man
BuildRequires: pkg-config
%if 0%{?with_fabric}
BuildRequires: libfabric-devel >= %min_libfabric_ver
%endif
# NVML was renamed upstream to PMDK between 1.3 and 1.3.1
Obsoletes: nvml < %version-%release
Provides: nvml = %version-%release
BuildRequires: libndctl-devel >= %min_ndctl_ver
# 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.
ExclusiveArch: x86_64 aarch64 ppc64le
ExclusiveArch: x86_64 aarch64 ppc64le riscv64
# Debug variants of the libraries should be filtered out of the provides.
%global __provides_exclude_from ^%_libdir/pmdk_debug/.*\\.so.*$
@@ -137,51 +122,6 @@ will find higher level libraries like libpmemobj to be much more
convenient. libpmem2 has a new API that addresses many of the shortcommings
of libpmem1
%package -n libpmemblk1
Summary: Persistent Memory Resident Block library
Group: System/Libraries
%description -n libpmemblk1
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).
%package -n libpmemblk-devel
Summary: Development files for the Persistent Memory Resident Block library
Group: Development/Libraries/C and C++
Requires: libpmemblk1 = %version
%description -n libpmemblk-devel
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.
%package -n libpmemlog1
Summary: Persistent Memory Resident Log File library
Group: System/Libraries
%description -n libpmemlog1
The libpmemlog library provides a pmem-resident log file. This is
useful for programs like databases that append frequently to a log
file.
%package -n libpmemlog-devel
Summary: Development files for the Persistent Memory Resident Log File library
Group: Development/Libraries/C and C++
Requires: libpmemlog1 = %version
%description -n libpmemlog-devel
The libpmemlog library provides a pmem-resident log file. This
library is provided for cases requiring an append-mostly file to
record variable length entries. Most developers will find higher
level libraries like libpmemobj to be more generally useful.
%package -n libpmemobj1
Summary: Persistent Memory Transactional Object Store library
Group: System/Libraries
@@ -209,7 +149,7 @@ Group: System/Libraries
%description -n libpmempool1
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.
by libpmemobj libraries.
%package -n libpmempool-devel
Summary: Development files for Persistent Memory pool management library
@@ -219,57 +159,25 @@ Requires: libpmempool1 = %version
%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.
%package -n librpmem1
Summary: Remote Access to Persistent Memory library
#Manual dependency to make sure libfabric is at least in this version
Group: System/Libraries
Requires: libfabric >= %min_libfabric_ver
Requires: openssh
%description -n librpmem1
The librpmem library provides low-level support for remote access
to persistent memory utilizing RDMA-capable NICs. It can be used
to replicate persistent memory regions over RDMA protocol.
%package -n librpmem-devel
Summary: Development files for the Remote Access to Persistent Memory library
Group: Development/Libraries/C and C++
Requires: librpmem1 = %version
%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 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.
%package -n rpmemd
Summary: Target node process executed by librpmem
#Manual dependency to make sure libfabric is at least in this version
Group: System/Base
Requires: libfabric >= %min_libfabric_ver
%description -n rpmemd
The rpmemd process is executed on a target node by librpmem library
and facilitates access to persistent memory over RDMA.
by libpmemobj libraries.
%package devel-doc
Summary: Man pages for the libpmem C API
Group: Documentation/Man
BuildArch: noarch
%description devel-doc
Documentation for the pmem library interface.
%prep
%autosetup -p0 -a1
%autosetup -p1 -a10
# we have pregenerated pages
find doc -type f -name "*.[0-9].md" -delete
%build
%define _lto_cflags %nil
# Currently, NVML makefiles do not allow to easily override CFLAGS,
# so the build flags are passed via EXTRA_CFLAGS. For debug build
# so the build flags are passed via EXTRA_CFLAGS. For debug builds,
# selected flags are overriden to disable compiler optimizations.
#
# remaining issues:
@@ -277,15 +185,13 @@ Documentation for the pmem library interface.
EXTRA_CFLAGS_RELEASE="%optflags" \
EXTRA_CFLAGS_DEBUG="%optflags -Wp,-U_FORTIFY_SOURCE -O0" \
EXTRA_CXXFLAGS="%optflags" \
make %{?_smp_mflags} BINDIR="%_bindir" EXTRA_CFLAGS="-Wno-error" \
%if 0%{?with_fabric}
BUILD_RPMEM=y \
%endif
%make_build BINDIR="%_bindir" EXTRA_CFLAGS="-Wno-error" \
NORPATH=1
# Override LIB_AR with empty string to skip installation of static libraries
%install
b="%buildroot"
%make_install LIB_AR= \
prefix="%_prefix" \
libdir="%_libdir" \
@@ -307,20 +213,10 @@ mv %buildroot/%_sysconfdir/bash_completion.d/* %buildroot/%_datadir/bash-complet
cp src/test/testconfig.sh.example src/test/testconfig.sh
#make check
%post -n libpmem1 -p /sbin/ldconfig
%postun -n libpmem1 -p /sbin/ldconfig
%post -n libpmem2-1 -p /sbin/ldconfig
%postun -n libpmem2-1 -p /sbin/ldconfig
%post -n libpmemblk1 -p /sbin/ldconfig
%postun -n libpmemblk1 -p /sbin/ldconfig
%post -n libpmemlog1 -p /sbin/ldconfig
%postun -n libpmemlog1 -p /sbin/ldconfig
%post -n libpmemobj1 -p /sbin/ldconfig
%postun -n libpmemobj1 -p /sbin/ldconfig
%post -n libpmempool1 -p /sbin/ldconfig
%postun -n libpmempool1 -p /sbin/ldconfig
%post -n librpmem1 -p /sbin/ldconfig
%postun -n librpmem1 -p /sbin/ldconfig
%ldconfig_scriptlets -n libpmem1
%ldconfig_scriptlets -n libpmem2-1
%ldconfig_scriptlets -n libpmemobj1
%ldconfig_scriptlets -n libpmempool1
%files
%_datadir/pmdk/
@@ -358,26 +254,7 @@ cp src/test/testconfig.sh.example src/test/testconfig.sh
%dir %_libdir/pmdk_debug/
%_libdir/pmdk_debug/libpmem2.so*
%_includedir/libpmem2.h
%files -n libpmemblk1
%_libdir/libpmemblk.so.1*
%files -n libpmemblk-devel
%_libdir/libpmemblk.so
%_libdir/pkgconfig/libpmemblk.pc
%dir %_libdir/pmdk_debug/
%_libdir/pmdk_debug/libpmemblk.so*
%_includedir/libpmemblk.h
%files -n libpmemlog1
%_libdir/libpmemlog.so.1*
%files -n libpmemlog-devel
%_libdir/libpmemlog.so
%_libdir/pkgconfig/libpmemlog.pc
%dir %_libdir/pmdk_debug/
%_libdir/pmdk_debug/libpmemlog.so*
%_includedir/libpmemlog.h
%_includedir/libpmem2/
%files -n libpmemobj1
%_libdir/libpmemobj.so.1*
@@ -400,25 +277,6 @@ cp src/test/testconfig.sh.example src/test/testconfig.sh
%_libdir/pmdk_debug/libpmempool.so*
%_includedir/libpmempool.h
%if 0%{?with_fabric}
%files -n librpmem1
%_libdir/librpmem.so.*
%license LICENSE
%files -n librpmem-devel
%_libdir/librpmem.so
%_libdir/pkgconfig/librpmem.pc
%dir %_libdir/pmdk_debug
%_libdir/pmdk_debug/librpmem.so*
%_includedir/librpmem.h
%license LICENSE
%files -n rpmemd
%_bindir/rpmemd
%_mandir/man1/rpmemd.1*
#with_fabric
%endif
%files devel-doc
%_mandir/man3/*.3*
%_mandir/man7/*.7*

3
pregen-doc.tar.xz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6e474def55d8328ebfa7eae505b07b298dc1936a7479b88e80d3a93ce28722cb
size 72256

BIN
pregen-doc.tgz LFS

Binary file not shown.