diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..97f7004 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/ndctl-71.1.tar.gz diff --git a/EMPTY b/EMPTY deleted file mode 100644 index 0519ecb..0000000 --- a/EMPTY +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/modprobe-link-user-keyring-before-loadkeys.patch b/modprobe-link-user-keyring-before-loadkeys.patch new file mode 100644 index 0000000..9cd6fd9 --- /dev/null +++ b/modprobe-link-user-keyring-before-loadkeys.patch @@ -0,0 +1,6 @@ +diff -up ndctl-67/contrib/nvdimm-security.conf.orig ndctl-67/contrib/nvdimm-security.conf +--- ndctl-67/contrib/nvdimm-security.conf.orig 2019-11-01 13:21:04.669374133 -0400 ++++ ndctl-67/contrib/nvdimm-security.conf 2019-11-01 13:21:04.669374133 -0400 +@@ -1 +1 @@ +-install libnvdimm /usr/bin/ndctl load-keys ; /sbin/modprobe --ignore-install libnvdimm $CMDLINE_OPTS ++install libnvdimm keyctl link @u @s; /usr/bin/ndctl load-keys; /sbin/modprobe --ignore-install libnvdimm $CMDLINE_OPTS diff --git a/ndctl-skip-seed-devices-in-zero_info_block.patch b/ndctl-skip-seed-devices-in-zero_info_block.patch new file mode 100644 index 0000000..d349a7f --- /dev/null +++ b/ndctl-skip-seed-devices-in-zero_info_block.patch @@ -0,0 +1,14 @@ +diff --git a/ndctl/namespace.c b/ndctl/namespace.c +index 0c8df9f..de1e08f 100644 +--- a/ndctl/namespace.c ++++ b/ndctl/namespace.c +@@ -1052,6 +1052,9 @@ static int zero_info_block(struct ndctl_namespace *ndns) + void *buf = NULL, *read_buf = NULL; + char path[50]; + ++ if (ndctl_namespace_get_size(ndns) == 0) ++ return 1; ++ + ndctl_namespace_set_raw_mode(ndns, 1); + rc = ndctl_namespace_enable(ndns); + if (rc < 0) { diff --git a/ndctl.spec b/ndctl.spec new file mode 100644 index 0000000..edc16b1 --- /dev/null +++ b/ndctl.spec @@ -0,0 +1,268 @@ +Name: ndctl +Version: 71.1 +Release: 3%{?dist} +Summary: Manage "libnvdimm" subsystem devices (Non-volatile Memory) +License: GPLv2 +Group: System Environment/Base +Url: https://github.com/pmem/ndctl +Source0: https://github.com/pmem/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz +Patch0: modprobe-link-user-keyring-before-loadkeys.patch +Patch1: ndctl-skip-seed-devices-in-zero_info_block.patch + +Requires: ndctl-libs%{?_isa} = %{version}-%{release} +Requires: daxctl-libs%{?_isa} = %{version}-%{release} +BuildRequires: autoconf +BuildRequires: asciidoc +BuildRequires: xmlto +BuildRequires: automake +BuildRequires: libtool +BuildRequires: pkgconfig +BuildRequires: pkgconfig(libkmod) +BuildRequires: pkgconfig(libudev) +BuildRequires: pkgconfig(uuid) +BuildRequires: pkgconfig(json-c) +BuildRequires: pkgconfig(bash-completion) +BuildRequires: systemd +BuildRequires: keyutils-libs-devel + +%description +Utility library for managing the "libnvdimm" subsystem. The "libnvdimm" +subsystem defines a kernel device model and control message interface for +platform NVDIMM resources like those defined by the ACPI 6+ NFIT (NVDIMM +Firmware Interface Table). + + +%package -n ndctl-devel +Summary: Development files for libndctl +License: LGPLv2 +Group: Development/Libraries +Requires: ndctl-libs%{?_isa} = %{version}-%{release} + +%description -n ndctl-devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%package -n daxctl +Summary: Manage Device-DAX instances +License: GPLv2 +Group: System Environment/Base +Requires: daxctl-libs%{?_isa} = %{version}-%{release} + +%description -n daxctl +The daxctl utility provides enumeration and provisioning commands for +the Linux kernel Device-DAX facility. This facility enables DAX mappings +of performance / feature differentiated memory without need of a +filesystem. + +%package -n daxctl-devel +Summary: Development files for libdaxctl +License: LGPLv2 +Group: Development/Libraries +Requires: daxctl-libs%{?_isa} = %{version}-%{release} + +%description -n daxctl-devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}, a library for enumerating +"Device DAX" devices. Device DAX is a facility for establishing DAX +mappings of performance / feature-differentiated memory. + + +%package -n ndctl-libs +Summary: Management library for "libnvdimm" subsystem devices (Non-volatile Memory) +License: LGPLv2 +Group: System Environment/Libraries +Requires: daxctl-libs%{?_isa} = %{version}-%{release} + + +%description -n ndctl-libs +Libraries for %{name}. + +%package -n daxctl-libs +Summary: Management library for "Device DAX" devices +License: LGPLv2 +Group: System Environment/Libraries + +%description -n daxctl-libs +Device DAX is a facility for establishing DAX mappings of performance / +feature-differentiated memory. daxctl-libs provides an enumeration / +control API for these devices. + + +%prep +%setup -q ndctl-%{version} +%patch0 -p1 +%patch1 -p1 + +%build +echo %{version} > version +./autogen.sh +%configure --disable-static --disable-silent-rules --disable-asciidoctor +make %{?_smp_mflags} + +%install +%make_install +find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';' + +%check +make check + +%post -n ndctl-libs -p /sbin/ldconfig + +%postun -n ndctl-libs -p /sbin/ldconfig + +%post -n daxctl-libs -p /sbin/ldconfig + +%postun -n daxctl-libs -p /sbin/ldconfig + +%define bashcompdir %(pkg-config --variable=completionsdir bash-completion) + +%files +%license LICENSES/preferred/GPL-2.0 LICENSES/other/MIT LICENSES/other/CC0-1.0 +%{_bindir}/ndctl +%{_mandir}/man1/ndctl* +%{bashcompdir}/ +%{_unitdir}/ndctl-monitor.service +%{_sysconfdir}/ndctl/keys/keys.readme +%{_sysconfdir}/modprobe.d/nvdimm-security.conf + +%config(noreplace) %{_sysconfdir}/ndctl/monitor.conf + +%files -n daxctl +%license LICENSES/preferred/GPL-2.0 LICENSES/other/MIT LICENSES/other/CC0-1.0 +%{_bindir}/daxctl +%{_mandir}/man1/daxctl* +%{_datadir}/daxctl/daxctl.conf + +%files -n ndctl-libs +%doc README.md +%license LICENSES/preferred/LGPL-2.1 LICENSES/other/MIT LICENSES/other/CC0-1.0 +%{_libdir}/libndctl.so.* + +%files -n daxctl-libs +%doc README.md +%license LICENSES/preferred/LGPL-2.1 LICENSES/other/MIT LICENSES/other/CC0-1.0 +%{_libdir}/libdaxctl.so.* + +%files -n ndctl-devel +%license LICENSES/preferred/LGPL-2.1 +%{_includedir}/ndctl/ +%{_libdir}/libndctl.so +%{_libdir}/pkgconfig/libndctl.pc + +%files -n daxctl-devel +%license LICENSES/preferred/LGPL-2.1 +%{_includedir}/daxctl/ +%{_libdir}/libdaxctl.so +%{_libdir}/pkgconfig/libdaxctl.pc + + +%changelog +* Mon Nov 29 2021 Bryan Gurney - 71.1-3.el8 +- Rebuild with latest json-c version +- Related: bz#2021816 + +* Thu Feb 11 2021 Jeff Moyer - 71.1-2.el8 +- Get rid of confusing message when deleting all namespaces +- Related: bz#1782182 + +* Fri Feb 5 2021 Jeff Moyer - 71.1-1.el8 +- Update to v71.1 to pull in ppc support. +- Related: bz#1782182 + +* Fri Nov 1 2019 Jeff Moyer - 67-2.el8 +- Fix up botched change to nvdimm-security.conf (Jeff Moyer) +- Related: bz#1724531 + +* Mon Oct 28 2019 Jeff Moyer - 67-1.el8 +- Rebase to v67. This brings in the following features: + - support for the 'security frozen' sysfs attribute + - support for using pmem as system ram + - various cleanup and bug fixes +- Fix load-keys failure in initramfs (Jeff Moyer) +- Resolves: bz#1724531 bz#1730673 bz#1741164 bz#1741165 bz#1749888 bz#1749889 + +* Mon Jun 3 2019 Jeff Moyer - 65-1.el8 +- Rebase to v65. +- Resolves: bz#1665407 bz#1634349 + +* Tue Oct 09 2018 Jeff Moyer - 62-1 +- rebase to v62 +- Resolves: bz#1567756 bz#1497651 bz#1610650 bz#1511774 bz#1570548 + +* Mon Apr 23 2018 Dan Williams - 60.1-1 +- release v60.1 + +* Thu Apr 19 2018 Dan Williams - 60-1 +- release v60 + +* Tue Mar 27 2018 Dan Williams - 59.3-1 +- release v59.3 + +* Tue Mar 06 2018 Björn Esser - 59.2-2 +- Rebuilt for libjson-c.so.4 (json-c v0.13.1) + +* Fri Feb 09 2018 Dan Williams - 59.2-1 +- release v59.2 + +* Fri Feb 09 2018 Dan Williams - 59.1-1 +- release v59.1 + +* Fri Feb 09 2018 Dan Williams - 59-1 +- release v59 + +* Thu Feb 08 2018 Fedora Release Engineering - 58.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sun Dec 10 2017 Björn Esser - 58.4-2 +- Rebuilt for libjson-c.so.3 + +* Thu Nov 16 2017 Dan Williams - 58.4-1 +- release v58.4 + +* Thu Sep 21 2017 Dan Williams - 58.2-1 +- release v58.2 + +* Fri Sep 08 2017 Dan Williams - 58.1-2 +- gate libpmem dependency on x86_64 + +* Fri Sep 08 2017 Dan Williams - 58.1-1 +- add libpmem dependency +- release v58.1 + +* Thu Aug 03 2017 Fedora Release Engineering - 57.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 57.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Jun 30 2017 Dan Williams - 57.1-1 +- Release v57.1 + +* Sat May 27 2017 Dan Williams - 57-1 +- Release v57 + +* Fri Feb 10 2017 Dan Williams - 56-1 +- Release v56 + +* Fri Feb 10 2017 Fedora Release Engineering - 55-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Oct 21 2016 Dan Williams - 55-1 +- release v55 + +* Fri Aug 05 2016 Dan Williams - 54-1 +- add explicit lib version dependencies + +* Sat May 28 2016 Dan Williams - 53.1-1 +- Fix up tag format vs source url confusion + +* Fri May 27 2016 Dan Williams - 53-1 +- add daxctl-libs + daxctl-devel packages +- add bash completion + +* Mon Apr 04 2016 Dan Williams - 52-1 +- Initial rpm submission to Fedora diff --git a/sources b/sources new file mode 100644 index 0000000..88ab7f9 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (ndctl-71.1.tar.gz) = 92fb06ca64455775ce0b89ba0846f70235e02fe3502e2a8a55a858f76f87cb90ae98f5bf01620e5884f667ea78ee2bee2cd9e7a85ffa8f8d9c456e9282ca9ebc