# # Conditional build: %bcond_without apidocs # do not build and package API docs %bcond_without libfabric # RPMEM component %bcond_without ndctl # daxio component # Summary: Persistent Memory Development Kit Summary(pl.UTF-8): Persistent Memory Development Kit - oprogramowanie do obsługi pamięci nieulotnej Name: pmdk Version: 1.4 Release: 1 License: BSD Group: Applications/System #Source0Download: https://github.com/pmem/pmdk/releases Source0: https://github.com/pmem/pmdk/archive/%{version}/%{name}-%{version}.tar.gz # Source0-md5: 8813455d9518b8d7e0c296a706314940 URL: http://pmem.io/pmdk/ BuildRequires: autoconf >= 2.50 %{?with_ndctl:BuildRequires: daxctl-devel >= 59.2} %{?with_libfabric:BuildRequires: libfabric-devel >= 1.4.2} BuildRequires: libstdc++-devel >= 6:4.8 %{?with_ndctl:BuildRequires: ndctl-devel >= 59.2} BuildRequires: pkgconfig Requires: %{name}-libs = %{version}-%{release} ExclusiveArch: %{x8664} aarch64 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description PMDK is a collection of libraries and utilities for using Non-Volatile Memory. This package contains command-line utility pmempool - standalone tool for off-line pool management. %description -l pl.UTF-8 PMDK to zbiór bibliotek i narzędzi do wykorzystywania pamięci nieulotnej (Non-Volatile Memory). Ten pakiet zawiera narzędzie linii poleceń pmemtool - samodzielne narzędzie do zarządzania pamięcią off-line. %package -n bash-completion-pmdk Summary: Bash completion for PMDK utilities Summary(pl.UTF-8): Bashowe uzupełnianie parametrów poleceń PMDK Group: Applications/Shells Requires: %{name} = %{version}-%{release} %description -n bash-completion-pmdk Bash completion for PMDK pmempool utility. %description -n bash-completion-pmdk -l pl.UTF-8 Bashowe uzupełnianie parametrów polecenia PMDK pmempool. %package libs Summary: Persistent Memory Development Kit shared libraries Summary(pl.UTF-8): Biblioteki współdzielone Persistent Memory Development Kit Group: Libraries %description libs This package contains a collection of libraries for using Non-Volatile Memory (NVM): - libpmem - basic pmem operations like flushing - libpmemblk, libpmemlog, libpmemobj - pmem transactions - libvmem, libvmmalloc - volatile use of pmem - libpmempool - persistent memory pool management - libpmemcto - close-to-open persistence (EXPERIMENTAL) %description libs -l pl.UTF-8 Ten pakiet zawiera zestaw bibliotek do wykorzystywania pamięci nieulotnej (NVM - Non-Volatile Memory): - libpmem - podstawowe operacje pmem, takie jak flush - libpmemblk, libpmemlog, libpmemobj - transakcje pmem - libvmem, libvmmalloc - ulotne wykorzystanie pmem - libpmempool - zarządzanie pulą pamięci nieulotnej - libpmemcto - trwałość między close a open (EKSPERYMENTALNA) %package devel Summary: Header files for PMDK libraries Summary(pl.UTF-8): Pliki nagłówkowe bibliotek PMDK Group: Development/Libraries Requires: %{name}-libs = %{version}-%{release} %description devel Header files for PMDK libraries. %description devel -l pl.UTF-8 Pliki nagłówkowe bibliotek PMDK. %package static Summary: Static PMDK libraries Summary(pl.UTF-8): Statyczne biblioteki PMDK Group: Development/Libraries Requires: %{name}-devel = %{version}-%{release} %description static Static PMDK libraries. %description static -l pl.UTF-8 Statyczne biblioteki PMDK. %package c++-devel Summary: C++ bindings for PMDK libpmemobj library Summary(pl.UTF-8): Wiązania C++ do biblioteki PMDK libpmemobj Group: Development/Libraries Requires: %{name}-devel = %{version}-%{release} Requires: libstdc++-devel >= 6:4.8 %description c++-devel C++ bindings for PMDK libpmemobj library. %description c++-devel -l pl.UTF-8 Wiązania C++ do biblioteki PMDK libpmemobj. %package c++-apidocs Summary: API documentation for libpmemobj++ library Summary(pl.UTF-8): Dokumentacja API biblioteki libpmemobj++ Group: Documentation %if "%{_rpmversion}" >= "5" BuildArch: noarch %endif %description c++-apidocs API documentation for libpmemobj++ library. %description c++-apidocs -l pl.UTF-8 Dokumentacja API biblioteki libpmemobj++. %package dax Summary: PMDK utility for Device-DAX devices Summary(pl.UTF-8): Narzędzie PMDK do urządzeń Device-DAX Group: Applications/System Requires: %{name}-libs = %{version}-%{release} Requires: daxctl-libs >= 59.2 Requires: ndctl-libs >= 59.2 %description dax PMDK is a collection of libraries and utilities for using Non-Volatile Memory. This package contains command-line utility daxio - perform I/O on Device-DAX devices or zero a Device-DAX device. %description dax -l pl.UTF-8 PMDK to zbiór bibliotek i narzędzi do wykorzystywania pamięci nieulotnej (Non-Volatile Memory). Ten pakiet zawiera narzędzie linii poleceń daxio - wykonywanie operacji we/wy lub zerowanie urządzeń Device-DAX. %package rpmem Summary: PMDK process for remote persistent memory access Summary(pl.UTF-8): Proces PMDK do zdalnego dostępu do pamięci nieulotnej Group: Applications/System Requires: %{name}-rpmem-libs = %{version}-%{release} %description rpmem PMDK is a collection of libraries and utilities for using Non-Volatile Memory. This package contains rpmemd - librpmem target node process. %description rpmem -l pl.UTF-8 PMDK to zbiór bibliotek i narzędzi do wykorzystywania pamięci nieulotnej (Non-Volatile Memory). Ten pakiet zawiera rpmemd - proces librpmem uruchamiany na docelowych węzłach. %package rpmem-libs Summary: Library for remote access to persistent memory Summary(pl.UTF-8): Biblioteka do zdalnego dostępu do pamięci nieulotnej Group: Libraries Requires: %{name}-libs = %{version}-%{release} Requires: libfabric >= 1.4.2 %description rpmem-libs This package contains a collection of libraries for using Non-Volatile Memory (NVM): - librpmem - remote access to persistent memory (EXPERIMENTAL) %description rpmem-libs -l pl.UTF-8 Ten pakiet zawiera zestaw bibliotek do wykorzystywania pamięci nieulotnej (NVM - Non-Volatile Memory): - librpmem - zdalny dostęp do pamięci nieulotnej (EKSPERYMENTALNA) %package rpmem-devel Summary: Header file for rpmem library Summary(pl.UTF-8): Plik nagłówkowy biblioteki rpmem Group: Development/Libraries Requires: %{name}-devel = %{version}-%{release} Requires: %{name}-rpmem-libs = %{version}-%{release} Requires: libfabric-devel >= 1.4.2 %description rpmem-devel Header file for rpmem library. %description rpmem-devel -l pl.UTF-8 Plik nagłówkowy biblioteki rpmem. %package rpmem-static Summary: Static rpmem library Summary(pl.UTF-8): Statyczna biblioteka rpmem Group: Development/Libraries Requires: %{name}-rpmem-devel = %{version}-%{release} %description rpmem-static Static rpmem library. %description rpmem-static -l pl.UTF-8 Statyczna biblioteka rpmem. %prep %setup -q %build CFLAGS="%{rpmcflags} %{rpmcppflags}" \ %{__make} -j1 \ CC="%{__cc}" \ %{!?with_libfabric:BUILD_RPMEM=n} \ %{?with_ndctl:NDCTL_ENABLE=y} \ includedir=%{_includedir} \ libdir=%{_libdir} \ prefix=%{_prefix} \ sysconfdir=%{_sysconfdir} %install rm -rf $RPM_BUILD_ROOT %{__make} install \ DESTDIR=$RPM_BUILD_ROOT \ %{!?with_libfabric:BUILD_RPMEM=n} \ %{?with_ndctl:NDCTL_ENABLE=y} \ includedir=%{_includedir} \ libdir=%{_libdir} \ prefix=%{_prefix} \ sysconfdir=%{_sysconfdir} # debug libraries - needed for anything? %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/pmdk_debug # packaged as %doc in -apidocs %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/libpmemobj++-dev %clean rm -rf $RPM_BUILD_ROOT %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig %post rpmem-libs -p /sbin/ldconfig %postun rpmem-libs -p /sbin/ldconfig %files %defattr(644,root,root,755) %doc src/tools/pmempool/README %attr(755,root,root) %{_bindir}/pmempool %{_mandir}/man1/pmempool.1* %{_mandir}/man1/pmempool-check.1* %{_mandir}/man1/pmempool-convert.1* %{_mandir}/man1/pmempool-create.1* %{_mandir}/man1/pmempool-dump.1* %{_mandir}/man1/pmempool-info.1* %{_mandir}/man1/pmempool-rm.1* %{_mandir}/man1/pmempool-sync.1* %{_mandir}/man1/pmempool-transform.1* %{_mandir}/man5/poolset.5* %files -n bash-completion-pmdk %defattr(644,root,root,755) /etc/bash_completion.d/pmempool.sh %files libs %defattr(644,root,root,755) %doc ChangeLog LICENSE %attr(755,root,root) %{_libdir}/libpmem.so.*.*.* %attr(755,root,root) %ghost %{_libdir}/libpmem.so.1 %attr(755,root,root) %{_libdir}/libpmemblk.so.*.*.* %attr(755,root,root) %ghost %{_libdir}/libpmemblk.so.1 %attr(755,root,root) %{_libdir}/libpmemcto.so.*.*.* %attr(755,root,root) %ghost %{_libdir}/libpmemcto.so.1 %attr(755,root,root) %{_libdir}/libpmemlog.so.*.*.* %attr(755,root,root) %ghost %{_libdir}/libpmemlog.so.1 %attr(755,root,root) %{_libdir}/libpmemobj.so.*.*.* %attr(755,root,root) %ghost %{_libdir}/libpmemobj.so.1 %attr(755,root,root) %{_libdir}/libpmempool.so.*.*.* %attr(755,root,root) %ghost %{_libdir}/libpmempool.so.1 %attr(755,root,root) %{_libdir}/libvmem.so.*.*.* %attr(755,root,root) %ghost %{_libdir}/libvmem.so.1 %attr(755,root,root) %{_libdir}/libvmmalloc.so.*.*.* %attr(755,root,root) %ghost %{_libdir}/libvmmalloc.so.1 %files devel %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libpmem.so %attr(755,root,root) %{_libdir}/libpmemblk.so %attr(755,root,root) %{_libdir}/libpmemcto.so %attr(755,root,root) %{_libdir}/libpmemlog.so %attr(755,root,root) %{_libdir}/libpmemobj.so %attr(755,root,root) %{_libdir}/libpmempool.so %attr(755,root,root) %{_libdir}/libvmem.so %attr(755,root,root) %{_libdir}/libvmmalloc.so %{_includedir}/libpmemobj %{_includedir}/libpmem*.h %{_includedir}/libvmem.h %{_includedir}/libvmmalloc.h %{_pkgconfigdir}/libpmem.pc %{_pkgconfigdir}/libpmemblk.pc %{_pkgconfigdir}/libpmemcto.pc %{_pkgconfigdir}/libpmemlog.pc %{_pkgconfigdir}/libpmemobj.pc %{_pkgconfigdir}/libpmempool.pc %{_pkgconfigdir}/libvmem.pc %{_pkgconfigdir}/libvmmalloc.pc %{_mandir}/man3/d_ro.3* %{_mandir}/man3/d_rw.3* %{_mandir}/man3/direct_ro.3* %{_mandir}/man3/direct_rw.3* %{_mandir}/man3/oid_equals.3* %{_mandir}/man3/oid_instanceof.3* %{_mandir}/man3/oid_is_null.3* %{_mandir}/man3/pmem_*.3* %{_mandir}/man3/pmemblk_*.3* %{_mandir}/man3/pmemcto_*.3* %{_mandir}/man3/pmemlog_*.3* %{_mandir}/man3/pmemobj_*.3* %{_mandir}/man3/pmempool_*.3* %{_mandir}/man3/pobj_*.3* %{_mandir}/man3/toid.3* %{_mandir}/man3/toid_*.3* %{_mandir}/man3/tx_*.3* %{_mandir}/man3/vmem_*.3* %{_mandir}/man7/libpmem.7* %{_mandir}/man7/libpmemblk.7* %{_mandir}/man7/libpmemcto.7* %{_mandir}/man7/libpmemlog.7* %{_mandir}/man7/libpmemobj.7* %{_mandir}/man7/libpmempool.7* %{_mandir}/man7/libvmem.7* %{_mandir}/man7/libvmmalloc.7* %files static %defattr(644,root,root,755) %{_libdir}/libpmem.a %{_libdir}/libpmemblk.a %{_libdir}/libpmemcto.a %{_libdir}/libpmemlog.a %{_libdir}/libpmemobj.a %{_libdir}/libpmempool.a %{_libdir}/libvmem.a %{_libdir}/libvmmalloc.a %files c++-devel %defattr(644,root,root,755) %doc src/include/libpmemobj++/README.md %{_includedir}/libpmemobj++ %{_pkgconfigdir}/libpmemobj++.pc %if %{with apidocs} %files c++-apidocs %defattr(644,root,root,755) %doc doc/cpp_html/* %endif %if %{with ndctl} %files dax %defattr(644,root,root,755) %doc src/tools/daxio/README %attr(755,root,root) %{_bindir}/daxio %{_mandir}/man1/daxio.1* %endif %if %{with libfabric} %files rpmem %defattr(644,root,root,755) %doc src/tools/rpmemd/README %attr(755,root,root) %{_bindir}/rpmemd %{_mandir}/man1/rpmemd.1* %files rpmem-libs %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/librpmem.so.*.*.* %attr(755,root,root) %ghost %{_libdir}/librpmem.so.1 %files rpmem-devel %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/librpmem.so %{_includedir}/librpmem.h %{_pkgconfigdir}/librpmem.pc %{_mandir}/man3/rpmem_*.3* %{_mandir}/man7/librpmem.7* %files rpmem-static %defattr(644,root,root,755) %{_libdir}/librpmem.a %endif