diff --git a/.gitignore b/.gitignore index e69de29..e50889e 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,33 @@ +/v52.tar.gz +/ndctl-53.tar.gz +/ndctl-53.1.tar.gz +/ndctl-54.tar.gz +/ndctl-55.tar.gz +/ndctl-56.tar.gz +/ndctl-57.tar.gz +/ndctl-57.1.tar.gz +/ndctl-58.1.tar.gz +/ndctl-58.2.tar.gz +/ndctl-58.4.tar.gz +/ndctl-59.tar.gz +/ndctl-59.1.tar.gz +/ndctl-59.2.tar.gz +/ndctl-59.3.tar.gz +/ndctl-60.tar.gz +/ndctl-60.1.tar.gz +/ndctl-60.3.tar.gz +/ndctl-61.tar.gz +/ndctl-61.1.tar.gz +/ndctl-61.2.tar.gz +/ndctl-62.tar.gz +/ndctl-63.tar.gz +/ndctl-64.tar.gz +/ndctl-64.1.tar.gz +/ndctl-65.tar.gz +/ndctl-66.tar.gz +/ndctl-67.tar.gz +/0001-ndctl-lib-fix-symbol-redefinitions-reported-by-GC.patch +/ndctl-68.tar.gz +/ndctl-69.tar.gz +/ndctl-70.tar.gz +/ndctl-70.1.tar.gz diff --git a/0001-ndctl-lib-fix-symbol-redefinitions-reported-by-GC.patch b/0001-ndctl-lib-fix-symbol-redefinitions-reported-by-GC.patch new file mode 100644 index 0000000..ccbc388 --- /dev/null +++ b/0001-ndctl-lib-fix-symbol-redefinitions-reported-by-GC.patch @@ -0,0 +1,76 @@ +From 0b35822caa1b8468e1a0349ccf971b600be3c03e Mon Sep 17 00:00:00 2001 +From: Vishal Verma +Date: Thu, 30 Jan 2020 11:51:14 -0700 +Subject: [ndctl PATCH v3] ndctl/lib: fix symbol redefinitions reported by + GCC10 + +A toolchain update in Fedora 32 caused new compile errors due to +multiple definitions of dimm_ops structures. The declarations in +'private.h' for the various NFIT families are present so that libndctl +can find all the per-family dimm-ops. However they need to be declared +as extern because the actual definitions are in .c. +Additionally, 'param' instances in list.c and monitor.c need to be +marked as static. + +Cc: Dan Williams +Cc: Eric Sandeen +Suggested-by: Dan Williams +Reviewed-by: Dan Williams +Signed-off-by: Vishal Verma +--- + +v3: Remove unrelated changes to Makefile.am from this patch (Eric). + + ndctl/lib/private.h | 8 ++++---- + ndctl/list.c | 2 +- + ndctl/monitor.c | 2 +- + 3 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/ndctl/lib/private.h b/ndctl/lib/private.h +index e445301..16bf8f9 100644 +--- a/ndctl/lib/private.h ++++ b/ndctl/lib/private.h +@@ -343,10 +343,10 @@ struct ndctl_dimm_ops { + int (*xlat_firmware_status)(struct ndctl_cmd *); + }; + +-struct ndctl_dimm_ops * const intel_dimm_ops; +-struct ndctl_dimm_ops * const hpe1_dimm_ops; +-struct ndctl_dimm_ops * const msft_dimm_ops; +-struct ndctl_dimm_ops * const hyperv_dimm_ops; ++extern struct ndctl_dimm_ops * const intel_dimm_ops; ++extern struct ndctl_dimm_ops * const hpe1_dimm_ops; ++extern struct ndctl_dimm_ops * const msft_dimm_ops; ++extern struct ndctl_dimm_ops * const hyperv_dimm_ops; + + static inline struct ndctl_bus *cmd_to_bus(struct ndctl_cmd *cmd) + { +diff --git a/ndctl/list.c b/ndctl/list.c +index 125a9fe..12d78d8 100644 +--- a/ndctl/list.c ++++ b/ndctl/list.c +@@ -59,7 +59,7 @@ static unsigned long listopts_to_flags(void) + return flags; + } + +-struct util_filter_params param; ++static struct util_filter_params param; + + static int did_fail; + +diff --git a/ndctl/monitor.c b/ndctl/monitor.c +index b8ee27f..1755b87 100644 +--- a/ndctl/monitor.c ++++ b/ndctl/monitor.c +@@ -45,7 +45,7 @@ struct monitor_dimm { + struct list_node list; + }; + +-struct util_filter_params param; ++static struct util_filter_params param; + + static int did_fail; + +-- +2.21.1 + diff --git a/ndctl.spec b/ndctl.spec new file mode 100644 index 0000000..1d3c6a6 --- /dev/null +++ b/ndctl.spec @@ -0,0 +1,291 @@ +Name: ndctl +Version: 70.1 +Release: 1%{?dist} +Summary: Manage "libnvdimm" subsystem devices (Non-volatile Memory) +License: GPLv2 +Url: https://github.com/pmem/ndctl +Source0: https://github.com/pmem/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz + +Requires: ndctl-libs%{?_isa} = %{version}-%{release} +Requires: daxctl-libs%{?_isa} = %{version}-%{release} +BuildRequires: autoconf +%if 0%{?rhel} < 9 +BuildRequires: asciidoc +%define asciidoc --disable-asciidoctor +%else +BuildRequires: rubygem-asciidoctor +%endif +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: pkgconfig(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 +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 +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 +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 +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 + +%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} + +%build +echo %{version} > version +./autogen.sh +%configure --disable-static --disable-silent-rules %{?asciidoc} +make %{?_smp_mflags} + +%install +%make_install +find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';' + +%check +make check + +%ldconfig_scriptlets -n ndctl-libs + +%ldconfig_scriptlets -n daxctl-libs + +%define bashcompdir %(pkg-config --variable=completionsdir bash-completion) + +%files +%license util/COPYING licenses/BSD-MIT licenses/CC0 +%{_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 util/COPYING licenses/BSD-MIT licenses/CC0 +%{_bindir}/daxctl +%{_mandir}/man1/daxctl* +%{_datadir}/daxctl/daxctl.conf + +%files -n ndctl-libs +%doc README.md +%license COPYING licenses/BSD-MIT licenses/CC0 +%{_libdir}/libndctl.so.* + +%files -n daxctl-libs +%doc README.md +%license COPYING licenses/BSD-MIT licenses/CC0 +%{_libdir}/libdaxctl.so.* + +%files -n ndctl-devel +%license COPYING +%{_includedir}/ndctl/ +%{_libdir}/libndctl.so +%{_libdir}/pkgconfig/libndctl.pc + +%files -n daxctl-devel +%license COPYING +%{_includedir}/daxctl/ +%{_libdir}/libdaxctl.so +%{_libdir}/pkgconfig/libdaxctl.pc + + +%changelog +* Sat Oct 10 2020 Vishal Verma - 70.1-1 +- release v70.1 + +* Tue Oct 06 2020 Vishal Verma - 70-1 +- release v70 + +* Tue Jul 28 2020 Fedora Release Engineering - 69-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jul 23 2020 Vishal Verma - 69-1 +- release v69 + +* Tue Apr 21 2020 Björn Esser - 68-2 +- Rebuild (json-c) + +* Tue Mar 24 2020 Vishal Verma - 68-1 +- release v68 + +* Fri Jan 31 2020 Vishal Verma - 67-3 +- Add fix for GCC10 builds + +* Wed Jan 29 2020 Fedora Release Engineering - 67-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Mon Oct 28 2019 Vishal Verma - 67-1 +- release v67 + +* Wed Aug 07 2019 Vishal Verma - 66-1 +- release v66 + +* Thu Jul 25 2019 Fedora Release Engineering - 65-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sat May 11 2019 Vishal Verma - 65-1 +- release v65 + +* Wed Feb 06 2019 Vishal Verma - 64.1-1 +- release v64.1 + +* Mon Feb 04 2019 Vishal Verma - 64-1 +- release v64 + +* Fri Feb 01 2019 Fedora Release Engineering - 63-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Oct 05 2018 Vishal Verma - 63-1 +- release v63 +- remove ndctl-udev and related files + +* Tue Aug 14 2018 Vishal Verma - 62-1 +- release v62 +- Add files for udev and ndctl-monitor + +* Fri Jul 13 2018 Fedora Release Engineering - 61.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Jul 11 2018 Vishal Verma - 61.2-1 +- release v61.2 + +* Tue Jun 26 2018 Vishal Verma - 61.1-1 +- release v61.1 + +* Tue Jun 26 2018 Vishal Verma - 61-1 +- new version + +* Thu May 17 2018 Dan Williams - 60.3-1 +- release v60.3 + +* 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..fe7cbbb --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (ndctl-70.1.tar.gz) = aa5a7fb357f5d3f0218d2e8ddcb20b5adcd17e651ff7a73841dc11e7bdefbf8335777154a73abdcfd890236a5321ca26c47e7ab54efe648c54711e437cf5c5cc