import ndctl-62-2.el8

This commit is contained in:
CentOS Sources 2019-05-07 09:57:20 -04:00 committed by Andrew Lukoshko
commit 7af6d2c89f
4 changed files with 734 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
SOURCES/ndctl-62.tar.gz

1
.ndctl.metadata Normal file
View File

@ -0,0 +1 @@
0f906e39f1af10fe60748b8862e761fe36abd985 SOURCES/ndctl-62.tar.gz

View File

@ -0,0 +1,499 @@
ndctl: Revert "ndctl: Create ndctl udev rules for dirty shutdown"
BZ: 1637624
commit 5c67ce4d0b6a678c52f35a6a1e2dd14983076a19
Author: Dan Williams <dan.j.williams@intel.com>
Date: Thu Sep 27 17:41:53 2018 -0700
ndctl: Revert "ndctl: Create ndctl udev rules for dirty shutdown"
Environments that choose to implement dirty-shutdown mitigation can use
'list --dimm --health nmemX' to retrieve the dirty-shutdown count, or
the new 'nmemX/nfit/dirty_shutdown' attribute in sysfs. The kernel
otherwise takes no default action on that counter rolling. If the
platform advertises support for "Memory Controller Flush to NVDIMM
Durability on Power Loss Capable" then the default Linux policy is to
trust that designation.
Otherwise this usage of libndctl enumeration apis in the udev path
causes the entire udev queue to backup behind libnvdimm sub-system
initialization:
INFO: task systemd-udevd:1554 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
systemd-udevd D 0 1554 1544 0x80000004
Call Trace:
? __schedule+0x25d/0x870
schedule+0x28/0x80
async_synchronize_cookie_domain+0x96/0x140
? finish_wait+0x80/0x80
nvdimm_bus_check_dimm_count+0x31/0xa0 [libnvdimm]
acpi_nfit_register_dimms+0x4b5/0x800 [nfit]
acpi_nfit_init+0xca6/0x1300 [nfit]
? acpi_nfit_add+0x197/0x210 [nfit]
acpi_nfit_add+0x197/0x210 [nfit]
acpi_device_probe+0x48/0x110
Cc: Keith Busch <keith.busch@intel.com>
Cc: Vishal Verma <vishal.l.verma@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
diff -uprN ndctl-62/.gitignore ndctl-62.new/.gitignore
--- ndctl-62/.gitignore 2018-08-13 20:06:33.000000000 -0400
+++ ndctl-62.new/.gitignore 2018-10-09 11:55:10.410374923 -0400
@@ -25,7 +25,6 @@ daxctl/lib/libdaxctl.pc
*.a
ndctl/lib/libndctl.pc
ndctl/ndctl
-ndctl/ndctl-udev
rhel/
sles/ndctl.spec
util/log.lo
diff -uprN ndctl-62/Makefile.am ndctl-62.new/Makefile.am
--- ndctl-62/Makefile.am 2018-08-13 20:06:33.000000000 -0400
+++ ndctl-62.new/Makefile.am 2018-10-09 11:55:10.410374923 -0400
@@ -42,9 +42,6 @@ bashcompletiondir = $(BASH_COMPLETION_DI
dist_bashcompletion_DATA = contrib/ndctl
endif
-udevrulesdir = $(UDEVDIR)/rules.d
-dist_udevrules_DATA = contrib/80-ndctl.rules
-
noinst_LIBRARIES = libccan.a
libccan_a_SOURCES = \
ccan/str/str.h \
diff -uprN ndctl-62/configure.ac ndctl-62.new/configure.ac
--- ndctl-62/configure.ac 2018-08-13 20:06:33.000000000 -0400
+++ ndctl-62.new/configure.ac 2018-10-09 11:58:18.412932195 -0400
@@ -169,9 +169,6 @@ AC_ARG_WITH([tmpfilesdir],
[tmpfilesdir=$withval],
[tmpfilesdir="/run"])
-UDEVDIR="$(pkg-config udev --variable=udevdir)"
-AC_SUBST([UDEVDIR])
-
my_CFLAGS="\
-D DEF_CONF_FILE='\"${sysconfdir}/ndctl/monitor.conf\"' \
-D DEF_TMPFS_DIR='\"${tmpfilesdir}/ndctl\"' \
diff -uprN ndctl-62/configure.ac.orig ndctl-62.new/configure.ac.orig
--- ndctl-62/configure.ac.orig 1969-12-31 19:00:00.000000000 -0500
+++ ndctl-62.new/configure.ac.orig 2018-10-09 11:54:00.000000000 -0400
@@ -0,0 +1,223 @@
+AC_PREREQ(2.60)
+m4_include([version.m4])
+AC_INIT([ndctl],
+ GIT_VERSION,
+ [linux-nvdimm@lists.01.org],
+ [ndctl],
+ [https://github.com/pmem/ndctl])
+AC_CONFIG_SRCDIR([ndctl/lib/libndctl.c])
+AC_CONFIG_AUX_DIR([build-aux])
+AM_INIT_AUTOMAKE([
+ check-news
+ foreign
+ 1.11
+ -Wall
+ -Wno-portability
+ silent-rules
+ tar-pax
+ no-dist-gzip
+ dist-xz
+ subdir-objects
+])
+AC_PROG_CC_STDC
+AC_USE_SYSTEM_EXTENSIONS
+AC_SYS_LARGEFILE
+AC_CONFIG_MACRO_DIR([m4])
+AM_SILENT_RULES([yes])
+LT_INIT([
+ disable-static
+ pic-only
+])
+AC_PREFIX_DEFAULT([/usr])
+
+AC_PROG_SED
+AC_PROG_MKDIR_P
+
+AC_ARG_ENABLE([docs],
+ AS_HELP_STRING([--disable-docs],
+ [disable documentation build @<:@default=enabled@:>@]),
+ [], enable_docs=yes)
+AS_IF([test "x$enable_docs" = "xyes"], [
+ AC_DEFINE(ENABLE_DOCS, [1], [Documentation / man pages.])
+])
+AM_CONDITIONAL([ENABLE_DOCS], [test "x$enable_docs" = "xyes"])
+
+AC_ARG_ENABLE([asciidoctor],
+ AS_HELP_STRING([--enable-asciidoctor],
+ [use asciidoctor for documentation build]),
+ [], enable_asciidoctor=no)
+AM_CONDITIONAL([USE_ASCIIDOCTOR], [test "x$enable_asciidoctor" = "xyes"])
+if test "x$enable_asciidoctor" = "xyes"; then
+ asciidoc="asciidoctor"
+else
+ asciidoc="asciidoc"
+fi
+AC_CHECK_PROG(ASCIIDOC, [$asciidoc], [$(which $asciidoc)], [missing])
+if test "x$ASCIIDOC" = xmissing -a "x$enable_docs" = "xyes"; then
+ AC_MSG_ERROR([$asciidoc needed to build documentation])
+fi
+AC_SUBST([ASCIIDOC])
+
+if test x"$asciidoc" = x"asciidoc"; then
+AC_CHECK_PROG(XMLTO, [xmlto], [$(which xmlto)], [missing])
+if test "x$XMLTO" = xmissing -a "x$enable_docs" = "xyes"; then
+ AC_MSG_ERROR([xmlto needed to build documentation])
+fi
+AC_SUBST([XMLTO])
+fi
+
+AC_C_TYPEOF
+AC_DEFINE([HAVE_STATEMENT_EXPR], 1, [Define to 1 if you have statement expressions.])
+
+AC_C_BIGENDIAN(
+ AC_DEFINE(HAVE_BIG_ENDIAN, 1, [Define to 1 if big-endian-arch]),
+ AC_DEFINE(HAVE_LITTLE_ENDIAN, 1, [Define to 1 if little-endian-arch]),
+ [], [])
+
+AC_ARG_ENABLE([logging],
+ AS_HELP_STRING([--disable-logging], [disable system logging @<:@default=enabled@:>@]),
+ [], enable_logging=yes)
+AS_IF([test "x$enable_logging" = "xyes"], [
+ AC_DEFINE(ENABLE_LOGGING, [1], [System logging.])
+])
+
+AC_ARG_ENABLE([debug],
+ AS_HELP_STRING([--enable-debug], [enable debug messages @<:@default=disabled@:>@]),
+ [], [enable_debug=no])
+AS_IF([test "x$enable_debug" = "xyes"], [
+ AC_DEFINE(ENABLE_DEBUG, [1], [Debug messages.])
+])
+
+AC_ARG_ENABLE([destructive],
+ AS_HELP_STRING([--enable-destructive], [enable destructive functional tests @<:@default=disabled@:>@]),
+ [], [enable_destructive=no])
+AS_IF([test "x$enable_destructive" = "xyes"],
+ [AC_DEFINE([ENABLE_DESTRUCTIVE], [1], [destructive functional tests support])])
+AM_CONDITIONAL([ENABLE_DESTRUCTIVE], [test "x$enable_destructive" = "xyes"])
+
+AC_ARG_ENABLE([test],
+ AS_HELP_STRING([--enable-test], [enable ndctl test command @<:@default=disabled@:>@]),
+ [], [enable_test=$enable_destructive])
+AS_IF([test "x$enable_test" = "xyes"],
+ [AC_DEFINE([ENABLE_TEST], [1], [ndctl test support])])
+AM_CONDITIONAL([ENABLE_TEST], [test "x$enable_test" = "xyes"])
+
+AC_CHECK_DECLS([BUS_MCEERR_AR], [enable_bus_mc_err=yes], [], [[#include <signal.h>]])
+AC_CHECK_DECLS([MAP_SYNC], [enable_map_sync=yes], [], [[#include <linux/mman.h>]])
+
+AS_IF([test "x$enable_bus_mc_err" = "xyes" -a "x$enable_map_sync" = "xyes"],
+ [AC_DEFINE([ENABLE_POISON], [1], [ndctl test poison support])])
+AM_CONDITIONAL([ENABLE_POISON],
+ [test "x$enable_bus_mc_err" = "xyes" -a "x$enable_map_sync" = "xyes"])
+
+PKG_CHECK_MODULES([KMOD], [libkmod])
+PKG_CHECK_MODULES([UUID], [uuid])
+PKG_CHECK_MODULES([JSON], [json-c])
+
+AC_ARG_WITH([bash-completion-dir],
+ AS_HELP_STRING([--with-bash-completion-dir[=PATH]],
+ [Install the bash auto-completion script in this directory. @<:@default=yes@:>@]),
+ [],
+ [with_bash_completion_dir=yes])
+
+if test "x$with_bash_completion_dir" = "xyes"; then
+ PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0],
+ [BASH_COMPLETION_DIR="`pkg-config --variable=completionsdir bash-completion`"],
+ [BASH_COMPLETION_DIR="$datadir/bash-completion/completions"])
+else
+ BASH_COMPLETION_DIR="$with_bash_completion_dir"
+fi
+
+AC_SUBST([BASH_COMPLETION_DIR])
+AM_CONDITIONAL([ENABLE_BASH_COMPLETION],[test "x$with_bash_completion_dir" != "xno"])
+
+AC_ARG_ENABLE([local],
+ AS_HELP_STRING([--disable-local], [build against kernel ndctl.h @<:@default=system@:>@]),
+ [], [enable_local=yes])
+
+AC_CHECK_HEADERS_ONCE([linux/version.h])
+
+AC_CHECK_FUNCS([ \
+ __secure_getenv \
+ secure_getenv\
+])
+
+PKG_PROG_PKG_CONFIG
+AC_ARG_WITH([systemd-unit-dir],
+ AS_HELP_STRING([--with-systemd-unit-dir[=DIR]],
+ [Directory for systemd service files]),
+ [],
+ [with_systemd_unit_dir=yes])
+
+if test "x$with_systemd_unit_dir" = "xyes"; then
+ def_systemd_unit_dir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)
+ if test "x$def_systemd_unit_dir" = "x"; then
+ AC_MSG_ERROR([systemd support requested but pkg-config unable to query systemd package])
+ with_systemd_unit_dir=no
+ else
+ with_systemd_unit_dir="$def_systemd_unit_dir"
+ fi
+fi
+
+AS_IF([test "x$with_systemd_unit_dir" != "xno"],
+ [AC_SUBST([systemd_unitdir], [$with_systemd_unit_dir])])
+AM_CONDITIONAL([ENABLE_SYSTEMD_UNIT_DIR], [test "x$with_systemd_unit_dir" != "xno"])
+
+AC_ARG_WITH([tmpfilesdir],
+ [AS_HELP_STRING([--with-tmpfilesdir=DIR], [Directory for temporary runtime files])],
+ [tmpfilesdir=$withval],
+ [tmpfilesdir="/run"])
+
+my_CFLAGS="\
+-D DEF_CONF_FILE='\"${sysconfdir}/ndctl/monitor.conf\"' \
+-D DEF_TMPFS_DIR='\"${tmpfilesdir}/ndctl\"' \
+-Wall \
+-Wchar-subscripts \
+-Wformat-security \
+-Wmissing-declarations \
+-Wmissing-prototypes \
+-Wnested-externs \
+-Wpointer-arith \
+-Wshadow \
+-Wsign-compare \
+-Wstrict-prototypes \
+-Wtype-limits \
+-Wmaybe-uninitialized \
+-Wdeclaration-after-statement \
+-Wunused-result \
+-D_FORTIFY_SOURCE=2 \
+-O2
+"
+AC_SUBST([my_CFLAGS])
+
+AC_CONFIG_HEADERS(config.h)
+AC_CONFIG_FILES([
+ Makefile
+ daxctl/lib/Makefile
+ ndctl/lib/Makefile
+ ndctl/Makefile
+ daxctl/Makefile
+ test/Makefile
+ Documentation/ndctl/Makefile
+ Documentation/daxctl/Makefile
+])
+
+AC_OUTPUT
+AC_MSG_RESULT([
+ $PACKAGE $VERSION
+ =====
+
+ prefix: ${prefix}
+ sysconfdir: ${sysconfdir}
+ libdir: ${libdir}
+ includedir: ${includedir}
+ systemd-unit-dir: ${systemd_unitdir}
+ tmpfilesdir: ${tmpfilesdir}
+
+ compiler: ${CC}
+ cflags: ${CFLAGS}
+ ldflags: ${LDFLAGS}
+
+ logging: ${enable_logging}
+ debug: ${enable_debug}
+])
diff -uprN ndctl-62/contrib/80-ndctl.rules ndctl-62.new/contrib/80-ndctl.rules
--- ndctl-62/contrib/80-ndctl.rules 2018-08-13 20:06:33.000000000 -0400
+++ ndctl-62.new/contrib/80-ndctl.rules 1969-12-31 19:00:00.000000000 -0500
@@ -1,3 +0,0 @@
-# do not edit this file, it will be overwritten on update
-
-ACTION=="add", KERNEL=="nmem*", RUN+="ndctl-udev $kernel"
diff -uprN ndctl-62/ndctl/Makefile.am ndctl-62.new/ndctl/Makefile.am
--- ndctl-62/ndctl/Makefile.am 2018-08-13 20:06:33.000000000 -0400
+++ ndctl-62.new/ndctl/Makefile.am 2018-10-09 11:55:10.411374926 -0400
@@ -51,8 +51,3 @@ EXTRA_DIST += $(monitor_config_file)
if ENABLE_SYSTEMD_UNIT_DIR
systemd_unit_DATA = ndctl-monitor.service
endif
-
-ndctl_udevdir = $(UDEVDIR)
-ndctl_udev_PROGRAMS = ndctl-udev
-ndctl_udev_SOURCES = ndctl-udev.c
-ndctl_udev_LDADD = lib/libndctl.la
diff -uprN ndctl-62/ndctl/ndctl-udev.c ndctl-62.new/ndctl/ndctl-udev.c
--- ndctl-62/ndctl/ndctl-udev.c 2018-08-13 20:06:33.000000000 -0400
+++ ndctl-62.new/ndctl/ndctl-udev.c 1969-12-31 19:00:00.000000000 -0500
@@ -1,150 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright(c) 2018 Intel Corporation. All rights reserved. */
-
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <ndctl/libndctl.h>
-
-/**
- * mkdir_p
- *
- * Copied from util-linux lib/fileutils.c
- */
-static int mkdir_p(const char *path, mode_t mode)
-{
- char *p, *dir;
- int rc = 0;
-
- if (!path || !*path)
- return -EINVAL;
-
- dir = p = strdup(path);
- if (!dir)
- return -ENOMEM;
-
- if (*p == '/')
- p++;
-
- while (p && *p) {
- char *e = strchr(p, '/');
- if (e)
- *e = '\0';
- if (*p) {
- rc = mkdir(dir, mode);
- if (rc && errno != EEXIST)
- break;
- rc = 0;
- }
- if (!e)
- break;
- *e = '/';
- p = e + 1;
- }
-
- free(dir);
- return rc;
-}
-
-static struct ndctl_dimm *find_dimm(struct ndctl_ctx *ctx, const char *devname)
-{
- struct ndctl_bus *bus;
- struct ndctl_dimm *dimm;
-
- ndctl_bus_foreach(ctx, bus) {
- ndctl_dimm_foreach(bus, dimm) {
- if (strcmp(ndctl_dimm_get_devname(dimm), devname) == 0)
- return dimm;
- }
- }
- return NULL;
-}
-
-static void ack_shutdown(struct ndctl_dimm *dimm)
-{
- struct ndctl_cmd *cmd;
-
- cmd = ndctl_dimm_cmd_new_ack_shutdown_count(dimm);
- if (!cmd)
- return;
- ndctl_cmd_submit(cmd);
- ndctl_cmd_unref(cmd);
-}
-
-static void save_unsafe_shutdown_count(struct ndctl_dimm *dimm,
- const char *devname)
-{
- char *path, *usc, count[16];
- unsigned int shutdown;
- struct ndctl_cmd *cmd;
- int fd;
-
- cmd = ndctl_dimm_cmd_new_smart(dimm);
- if (!cmd)
- return;
-
- if (ndctl_cmd_submit(cmd))
- goto unref_cmd;
-
- shutdown = ndctl_cmd_smart_get_shutdown_count(cmd);
- if (shutdown == UINT_MAX)
- goto unref_cmd;
-
- if (asprintf(&path, DEF_TMPFS_DIR "/%s", devname) < 0)
- goto unref_cmd;
-
- if (mkdir_p(path, 0755))
- goto free_path;
-
- if (asprintf(&usc, "%s/usc", path) < 0)
- goto free_path;
-
- fd = open(usc, O_WRONLY | O_CREAT, 0644);
- if (fd < 0)
- goto free_usc;
-
- if (snprintf(count, sizeof(count), "%u\n", shutdown) < 0)
- goto close_fd;
-
- if (write(fd, count, strlen(count)) < 0)
- goto close_fd;
-
- close_fd:
- close(fd);
- free_usc:
- free(usc);
- free_path:
- free(path);
- unref_cmd:
- ndctl_cmd_unref(cmd);
-}
-
-int main(int argc, char *argv[])
-{
- struct ndctl_ctx *ctx;
- struct ndctl_dimm *dimm = NULL;
- const char *devname;
-
- if (argc < 2)
- return EINVAL;
-
- devname = argv[1];
- if (ndctl_new(&ctx))
- return ENOMEM;
-
- dimm = find_dimm(ctx, devname);
- if (!dimm)
- return ENODEV;
-
- ack_shutdown(dimm);
- save_unsafe_shutdown_count(dimm, devname);
-
- ndctl_unref(ctx);
- return 0;
-}
diff -uprN ndctl-62/ndctl.spec.in ndctl-62.new/ndctl.spec.in
--- ndctl-62/ndctl.spec.in 2018-08-13 20:06:33.000000000 -0400
+++ ndctl-62.new/ndctl.spec.in 2018-10-09 11:55:10.411374926 -0400
@@ -110,7 +110,6 @@ make check
%postun -n DAX_LNAME -p /sbin/ldconfig
%define bashcompdir %(pkg-config --variable=completionsdir bash-completion)
-%define udevdir %(pkg-config --variable=udevdir udev)
%files
%defattr(-,root,root)
@@ -120,8 +119,6 @@ make check
%{bashcompdir}/
%{_sysconfdir}/ndctl/monitor.conf
%{_unitdir}/ndctl-monitor.service
-%{_udevrulesdir}/80-ndctl.rules
-%{udevdir}/ndctl-udev
%files -n daxctl
%defattr(-,root,root)

233
SPECS/ndctl.spec Normal file
View File

@ -0,0 +1,233 @@
Name: ndctl
Version: 62
Release: 2%{?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: 5c67ce4-ndctl-Revert-ndctl-Create-ndctl-udev-rules-for-dirty-shutdown.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
%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
%build
echo %{version} > version
./autogen.sh
%configure --disable-static --disable-silent-rules
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 util/COPYING licenses/BSD-MIT licenses/CC0
%{_bindir}/ndctl
%{_mandir}/man1/ndctl*
%{bashcompdir}/
%{_sysconfdir}/ndctl/monitor.conf
%{_unitdir}/ndctl-monitor.service
%files -n daxctl
%license util/COPYING licenses/BSD-MIT licenses/CC0
%{_bindir}/daxctl
%{_mandir}/man1/daxctl*
%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
* Tue Oct 09 2018 Jeff Moyer <jmoyer@redhat.com - 62-2.el8
- Remove faulty udev rule
- Resolves: bz#1637624
* Thu Aug 23 2018 Jeff Moyer <jmoyer@redhat.com> - 62-1
- rebase to v62
- Resolves: bz#1567756 bz#1497651 bz#1610650 bz#1511774 bz#1570548
* Mon Apr 23 2018 Dan Williams <dan.j.williams@intel.com> - 60.1-1
- release v60.1
* Thu Apr 19 2018 Dan Williams <dan.j.williams@intel.com> - 60-1
- release v60
* Tue Mar 27 2018 Dan Williams <dan.j.williams@intel.com> - 59.3-1
- release v59.3
* Tue Mar 06 2018 Björn Esser <besser82@fedoraproject.org> - 59.2-2
- Rebuilt for libjson-c.so.4 (json-c v0.13.1)
* Fri Feb 09 2018 Dan Williams <dan.j.williams@intel.com> - 59.2-1
- release v59.2
* Fri Feb 09 2018 Dan Williams <dan.j.williams@intel.com> - 59.1-1
- release v59.1
* Fri Feb 09 2018 Dan Williams <dan.j.williams@intel.com> - 59-1
- release v59
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 58.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Sun Dec 10 2017 Björn Esser <besser82@fedoraproject.org> - 58.4-2
- Rebuilt for libjson-c.so.3
* Thu Nov 16 2017 Dan Williams <dan.j.williams@intel.com> - 58.4-1
- release v58.4
* Thu Sep 21 2017 Dan Williams <dan.j.williams@intel.com> - 58.2-1
- release v58.2
* Fri Sep 08 2017 Dan Williams <dan.j.williams@intel.com> - 58.1-2
- gate libpmem dependency on x86_64
* Fri Sep 08 2017 Dan Williams <dan.j.williams@intel.com> - 58.1-1
- add libpmem dependency
- release v58.1
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 57.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 57.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri Jun 30 2017 Dan Williams <dan.j.williams@intel.com> - 57.1-1
- Release v57.1
* Sat May 27 2017 Dan Williams <dan.j.williams@intel.com> - 57-1
- Release v57
* Fri Feb 10 2017 Dan Williams <dan.j.williams@intel.com> - 56-1
- Release v56
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 55-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Fri Oct 21 2016 Dan Williams <dan.j.williams@intel.com> - 55-1
- release v55
* Fri Aug 05 2016 Dan Williams <dan.j.williams@intel.com> - 54-1
- add explicit lib version dependencies
* Sat May 28 2016 Dan Williams <dan.j.williams@intel.com> - 53.1-1
- Fix up tag format vs source url confusion
* Fri May 27 2016 Dan Williams <dan.j.williams@intel.com> - 53-1
- add daxctl-libs + daxctl-devel packages
- add bash completion
* Mon Apr 04 2016 Dan Williams <dan.j.williams@intel.com> - 52-1
- Initial rpm submission to Fedora