1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
|
# rpmbuild options:
# --with | --without fabric
# --with | --without ndctl
# --define _testconfig <path to custom testconfig.sh>
# --define _skip_check 1
# do not terminate build if files in the $RPM_BUILD_ROOT
# directory are not found in the %files (without rpmem case)
%define _unpackaged_files_terminate_build 0
# disable 'make check' on suse
%if %{defined suse_version}
%define _skip_check 1
%define dist .suse%{suse_version}
%endif
# libfabric v1.4.2 is available on:
# openSUSE Tumbleweed, Leap 15.0, Leap 42.3; SLE 12 SP3, 15
# Fedora >=27; RHEL >=7.5
%if (0%{?suse_version} > 1315) || (0%{?fedora} >= 27) || (0%{?rhel} >= 7)
%bcond_without fabric
%else
%bcond_with fabric
%endif
%bcond_without ndctl
%define min_libfabric_ver __LIBFABRIC_MIN_VER__
%define min_ndctl_ver __NDCTL_MIN_VER__
Name: pmdk
Version: __VERSION__
Release: 1%{?dist}
Summary: __PACKAGE_SUMMARY__
Packager: __PACKAGE_MAINTAINER__
Group: __GROUP_SYS_LIBS__
License: __LICENSE__
URL: https://pmem.io/pmdk
Source0: %{name}-%{version}.tar.gz
BuildRequires: gcc
BuildRequires: make
BuildRequires: glibc-devel
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: man
BuildRequires: pkgconfig
BuildRequires: gdb
# fdupes package is available only on 'openSUSE Tumbleweed' and 'openSUSE Leap 15.1'
%if (0%{?suse_version} > 1500) || (0%{?sles_version} >= 150100 && 0%{?is_opensuse})
BuildRequires: fdupes
%endif
%if %{with ndctl}
%if %{defined suse_version}
BuildRequires: libndctl-devel >= %{min_ndctl_ver}
%else
BuildRequires: ndctl-devel >= %{min_ndctl_ver}
BuildRequires: daxctl-devel >= %{min_ndctl_ver}
%endif
%endif
%if %{with fabric}
BuildRequires: libfabric-devel >= %{min_libfabric_ver}
%endif
# Debug variants of the libraries should be filtered out of the provides.
%global __provides_exclude_from ^%{_libdir}/pmdk_debug/.*\\.so.*$
# By design, PMDK 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 ppc64le
%description
The Persistent Memory Development Kit is a collection of libraries for
using memory-mapped persistence, optimized specifically for persistent memory.
%package -n libpmem2__PKG_NAME_SUFFIX__
Summary: Low-level persistent memory support library
Group: __GROUP_SYS_LIBS__
%description -n libpmem2__PKG_NAME_SUFFIX__
The libpmem2 provides low level persistent memory support. In particular,
support for the persistent memory instructions for flushing changes
to pmem is provided.
%files -n libpmem2__PKG_NAME_SUFFIX__
%defattr(-,root,root,-)
%dir %{_datadir}/pmdk
%{_libdir}/libpmem2.so.*
%{_datadir}/pmdk/pmdk.magic
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmem2-devel
Summary: Development files for the low-level persistent memory library
Group: __GROUP_DEV_LIBS__
Requires: libpmem2__PKG_NAME_SUFFIX__ = %{version}-%{release}
%description -n libpmem2-devel
The libpmem2 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 libpmem2-devel
%defattr(-,root,root,-)
%{_libdir}/libpmem2.so
%{_libdir}/pkgconfig/libpmem2.pc
%{_includedir}/libpmem2.h
%{_mandir}/man7/libpmem2.7.gz
%{_mandir}/man3/pmem2_*.3.gz
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmem2-debug
Summary: Debug variant of the low-level persistent memory library
Group: __GROUP_DEV_LIBS__
Requires: libpmem2__PKG_NAME_SUFFIX__ = %{version}-%{release}
%description -n libpmem2-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 libpmem2-debug
%defattr(-,root,root,-)
%dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/libpmem2.so
%{_libdir}/pmdk_debug/libpmem2.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmem__PKG_NAME_SUFFIX__
Summary: Low-level persistent memory support library
Group: __GROUP_SYS_LIBS__
%description -n libpmem__PKG_NAME_SUFFIX__
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__PKG_NAME_SUFFIX__
%defattr(-,root,root,-)
%dir %{_datadir}/pmdk
%{_libdir}/libpmem.so.*
%{_datadir}/pmdk/pmdk.magic
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmem-devel
Summary: Development files for the low-level persistent memory library
Group: __GROUP_DEV_LIBS__
Requires: libpmem__PKG_NAME_SUFFIX__ = %{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
%{_mandir}/man7/libpmem.7.gz
%{_mandir}/man3/pmem_*.3.gz
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmem-debug
Summary: Debug variant of the low-level persistent memory library
Group: __GROUP_DEV_LIBS__
Requires: libpmem__PKG_NAME_SUFFIX__ = %{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.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmemblk__PKG_NAME_SUFFIX__
Summary: Persistent Memory Resident Array of Blocks library
Group: __GROUP_SYS_LIBS__
Requires: libpmem__PKG_NAME_SUFFIX__ >= %{version}-%{release}
%description -n libpmemblk__PKG_NAME_SUFFIX__
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__PKG_NAME_SUFFIX__
%defattr(-,root,root,-)
%{_libdir}/libpmemblk.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmemblk-devel
Summary: Development files for the Persistent Memory Resident Array of Blocks library
Group: __GROUP_DEV_LIBS__
Requires: libpmemblk__PKG_NAME_SUFFIX__ = %{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
%{_mandir}/man7/libpmemblk.7.gz
%{_mandir}/man5/poolset.5.gz
%{_mandir}/man3/pmemblk_*.3.gz
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmemblk-debug
Summary: Debug variant of the Persistent Memory Resident Array of Blocks library
Group: __GROUP_DEV_LIBS__
Requires: libpmemblk__PKG_NAME_SUFFIX__ = %{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.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmemlog__PKG_NAME_SUFFIX__
Summary: Persistent Memory Resident Log File library
Group: __GROUP_SYS_LIBS__
Requires: libpmem__PKG_NAME_SUFFIX__ >= %{version}-%{release}
%description -n libpmemlog__PKG_NAME_SUFFIX__
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__PKG_NAME_SUFFIX__
%defattr(-,root,root,-)
%{_libdir}/libpmemlog.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmemlog-devel
Summary: Development files for the Persistent Memory Resident Log File library
Group: __GROUP_DEV_LIBS__
Requires: libpmemlog__PKG_NAME_SUFFIX__ = %{version}-%{release}
Requires: libpmem-devel = %{version}-%{release}
%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.
%files -n libpmemlog-devel
%defattr(-,root,root,-)
%{_libdir}/libpmemlog.so
%{_libdir}/pkgconfig/libpmemlog.pc
%{_includedir}/libpmemlog.h
%{_mandir}/man7/libpmemlog.7.gz
%{_mandir}/man5/poolset.5.gz
%{_mandir}/man3/pmemlog_*.3.gz
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmemlog-debug
Summary: Debug variant of the Persistent Memory Resident Log File library
Group: __GROUP_DEV_LIBS__
Requires: libpmemlog__PKG_NAME_SUFFIX__ = %{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
record variable length entries. Most developers will find higher
level libraries like libpmemobj to be more generally useful.
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 libpmemlog-debug
%defattr(-,root,root,-)
%dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/libpmemlog.so
%{_libdir}/pmdk_debug/libpmemlog.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmemobj__PKG_NAME_SUFFIX__
Summary: Persistent Memory Transactional Object Store library
Group: __GROUP_SYS_LIBS__
Requires: libpmem__PKG_NAME_SUFFIX__ >= %{version}-%{release}
%description -n libpmemobj__PKG_NAME_SUFFIX__
The libpmemobj library provides a transactional object store,
providing memory allocation, transactions, and general facilities for
persistent memory programming.
%files -n libpmemobj__PKG_NAME_SUFFIX__
%defattr(-,root,root,-)
%{_libdir}/libpmemobj.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmemobj-devel
Summary: Development files for the Persistent Memory Transactional Object Store library
Group: __GROUP_DEV_LIBS__
Requires: libpmemobj__PKG_NAME_SUFFIX__ = %{version}-%{release}
Requires: libpmem-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. 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
%{_includedir}/libpmemobj/*.h
%{_mandir}/man7/libpmemobj.7.gz
%{_mandir}/man5/poolset.5.gz
%{_mandir}/man3/pmemobj_*.3.gz
%{_mandir}/man3/pobj_*.3.gz
%{_mandir}/man3/oid_*.3.gz
%{_mandir}/man3/toid*.3.gz
%{_mandir}/man3/direct_*.3.gz
%{_mandir}/man3/d_r*.3.gz
%{_mandir}/man3/tx_*.3.gz
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmemobj-debug
Summary: Debug variant of the Persistent Memory Transactional Object Store library
Group: __GROUP_DEV_LIBS__
Requires: libpmemobj__PKG_NAME_SUFFIX__ = %{version}-%{release}
%description -n libpmemobj-debug
The libpmemobj library provides a transactional object store,
providing memory allocation, transactions, and general facilities for
persistent memory programming. Developers new to persistent memory
probably want to start with this library.
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 libpmemobj-debug
%defattr(-,root,root,-)
%dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/libpmemobj.so
%{_libdir}/pmdk_debug/libpmemobj.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmempool__PKG_NAME_SUFFIX__
Summary: Persistent Memory pool management library
Group: __GROUP_SYS_LIBS__
Requires: libpmem__PKG_NAME_SUFFIX__ >= %{version}-%{release}
%description -n libpmempool__PKG_NAME_SUFFIX__
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.
%files -n libpmempool__PKG_NAME_SUFFIX__
%defattr(-,root,root,-)
%{_libdir}/libpmempool.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmempool-devel
Summary: Development files for Persistent Memory pool management library
Group: __GROUP_DEV_LIBS__
Requires: libpmempool__PKG_NAME_SUFFIX__ = %{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.
%files -n libpmempool-devel
%defattr(-,root,root,-)
%{_libdir}/libpmempool.so
%{_libdir}/pkgconfig/libpmempool.pc
%{_includedir}/libpmempool.h
%{_mandir}/man7/libpmempool.7.gz
%{_mandir}/man5/poolset.5.gz
%{_mandir}/man3/pmempool_*.3.gz
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmempool-debug
Summary: Debug variant of the Persistent Memory pool management library
Group: __GROUP_DEV_LIBS__
Requires: libpmempool__PKG_NAME_SUFFIX__ = %{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.
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 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__PKG_NAME_SUFFIX__
Summary: Remote Access to Persistent Memory library
Group: __GROUP_SYS_LIBS__
Requires: libfabric >= %{min_libfabric_ver}
%if %{defined suse_version}
Requires: openssh
%else
Requires: openssh-clients
%endif
%description -n librpmem__PKG_NAME_SUFFIX__
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.
%files -n librpmem__PKG_NAME_SUFFIX__
%defattr(-,root,root,-)
%{_libdir}/librpmem.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n librpmem-devel
Summary: Development files for the Remote Access to Persistent Memory library
Group: __GROUP_DEV_LIBS__
Requires: librpmem__PKG_NAME_SUFFIX__ = %{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 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
%{_mandir}/man7/librpmem.7.gz
%{_mandir}/man3/rpmem_*.3.gz
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n librpmem-debug
Summary: Debug variant of the Remote Access to Persistent Memory library
Group: __GROUP_DEV_LIBS__
Requires: librpmem__PKG_NAME_SUFFIX__ = %{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 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
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.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n rpmemd
Group: __GROUP_SYS_BASE__
Summary: Target node process executed by librpmem
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.
%files -n rpmemd
%{_bindir}/rpmemd
%{_mandir}/man1/rpmemd.1.gz
# end of "if _with_fabric"
%endif
%package -n pmempool
Summary: Utilities for Persistent Memory
Group: __GROUP_SYS_BASE__
Requires: libpmem__PKG_NAME_SUFFIX__ >= %{version}-%{release}
Requires: libpmemlog__PKG_NAME_SUFFIX__ >= %{version}-%{release}
Requires: libpmemblk__PKG_NAME_SUFFIX__ >= %{version}-%{release}
Requires: libpmemobj__PKG_NAME_SUFFIX__ >= %{version}-%{release}
Requires: libpmempool__PKG_NAME_SUFFIX__ >= %{version}-%{release}
Obsoletes: nvml-tools < %{version}-%{release}
%description -n pmempool
The pmempool is a standalone utility for management and off-line analysis
of Persistent Memory pools created by PMDK libraries. It provides a set
of utilities for administration and diagnostics of Persistent Memory pools.
The pmempool may be useful for troubleshooting by system administrators
and users of the applications based on PMDK libraries.
%files -n pmempool
%{_bindir}/pmempool
%{_mandir}/man1/pmempool.1.gz
%{_mandir}/man1/pmempool-*.1.gz
%config(noreplace) %{_sysconfdir}/bash_completion.d/pmempool
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n pmreorder
Summary: Consistency Checker for Persistent Memory
Group: __GROUP_SYS_BASE__
%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
%if %{with ndctl}
%package -n daxio
Summary: Perform I/O on Device DAX devices or zero a Device DAX device
Group: __GROUP_SYS_BASE__
Requires: libpmem__PKG_NAME_SUFFIX__ >= %{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
with Device DAX, data transfer is performed on a memory-mapped device.
The daxio may be used to dump Device DAX data to a file, restore data from
a backup copy, move/copy data to another device or to erase data from
a device.
%files -n daxio
%{_bindir}/daxio
%{_mandir}/man1/daxio.1.gz
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
# end of "if _with_ndctl"
%endif
%prep
%setup -q -n %{name}-%{version}
%build
# For debug build default flags may be overridden to disable compiler
# optimizations.
CFLAGS="%{optflags}" \
LDFLAGS="%{?__global_ldflags}" \
make %{?_smp_mflags} \
%if %{without ndctl}
NDCTL_ENABLE=n \
%endif
__MAKE_FLAGS__
# Override LIB_AR with empty string to skip installation of static libraries
%install
make install DESTDIR=%{buildroot} \
%if %{without ndctl}
NDCTL_ENABLE=n \
%endif
LIB_AR= \
prefix=%{_prefix} \
libdir=%{_libdir} \
includedir=%{_includedir} \
mandir=%{_mandir} \
bindir=%{_bindir} \
sysconfdir=%{_sysconfdir} \
docdir=%{_docdir}
mkdir -p %{buildroot}%{_datadir}/pmdk
cp utils/pmdk.magic %{buildroot}%{_datadir}/pmdk/
__MAKE_INSTALL_FDUPES__
%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
echo 'TEST_FS="pmem any none"' >> src/test/testconfig.sh
%endif
make \
%if %{without ndctl}
NDCTL_ENABLE=n \
%endif
check
%endif
%post -n libpmem__PKG_NAME_SUFFIX__ -p /sbin/ldconfig
%postun -n libpmem__PKG_NAME_SUFFIX__ -p /sbin/ldconfig
%post -n libpmemblk__PKG_NAME_SUFFIX__ -p /sbin/ldconfig
%postun -n libpmemblk__PKG_NAME_SUFFIX__ -p /sbin/ldconfig
%post -n libpmemlog__PKG_NAME_SUFFIX__ -p /sbin/ldconfig
%postun -n libpmemlog__PKG_NAME_SUFFIX__ -p /sbin/ldconfig
%post -n libpmemobj__PKG_NAME_SUFFIX__ -p /sbin/ldconfig
%postun -n libpmemobj__PKG_NAME_SUFFIX__ -p /sbin/ldconfig
%post -n libpmempool__PKG_NAME_SUFFIX__ -p /sbin/ldconfig
%postun -n libpmempool__PKG_NAME_SUFFIX__ -p /sbin/ldconfig
%if %{with fabric}
%post -n librpmem__PKG_NAME_SUFFIX__ -p /sbin/ldconfig
%postun -n librpmem__PKG_NAME_SUFFIX__ -p /sbin/ldconfig
%endif
%if 0%{?__debug_package} == 0
%debug_package
%endif
%changelog
|