a61fd9f4ae
Upstream broke backwards compatibility for configuration files. In this update, I also fixed that up by continuing to install monitor.conf in /etc/ndctl and continuing to look in that location first for the configuration. Upstream also added a dependency on libiniparser. We do not ship that library in RHEL. The easiest course of action was to vendor the library, which is what this update does. Resolves: RHEL-8204 Resolves: RHEL-29151 Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
71 lines
2.4 KiB
Diff
71 lines
2.4 KiB
Diff
ndctl: check the old directory for monitor.conf
|
|
|
|
Scripts may still reference / install the monitor.conf file
|
|
in the old path. Check there first to avoid breaking backwards
|
|
compatibility.
|
|
|
|
Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
|
|
|
|
Related: RHEL-10382
|
|
diff --git a/config.h.meson b/config.h.meson
|
|
index 5441dff..32e7941 100644
|
|
--- a/config.h.meson
|
|
+++ b/config.h.meson
|
|
@@ -149,6 +149,7 @@
|
|
/* Locations to install configuration files, key config, man pages, etc.. */
|
|
#mesondefine NDCTL_CONF_FILE
|
|
#mesondefine NDCTL_CONF_DIR
|
|
+#mesondefine LEGACY_CONF_FILE
|
|
#mesondefine DAXCTL_CONF_DIR
|
|
#mesondefine NDCTL_KEYS_DIR
|
|
#mesondefine NDCTL_MAN_PATH
|
|
diff --git a/meson.build b/meson.build
|
|
index 2cb188f..96bc386 100644
|
|
--- a/meson.build
|
|
+++ b/meson.build
|
|
@@ -259,8 +259,11 @@ conf.set10('HAVE_JSON_U64',
|
|
|
|
ndctlconf_dir = sysconfdir / 'ndctl.conf.d'
|
|
ndctlconf = ndctlconf_dir / 'monitor.conf'
|
|
+legacyconf_dir = sysconfdir / 'ndctl'
|
|
+legacyconf = legacyconf_dir / 'monitor.conf'
|
|
conf.set_quoted('NDCTL_CONF_FILE', ndctlconf)
|
|
conf.set_quoted('NDCTL_CONF_DIR', ndctlconf_dir)
|
|
+conf.set_quoted('LEGACY_CONF_FILE', legacyconf)
|
|
|
|
ndctlkeys_dir = sysconfdir / 'ndctl' / 'keys'
|
|
conf.set_quoted('NDCTL_KEYS_DIR', ndctlkeys_dir)
|
|
diff --git a/ndctl/meson.build b/ndctl/meson.build
|
|
index 050d576..dd13a41 100644
|
|
--- a/ndctl/meson.build
|
|
+++ b/ndctl/meson.build
|
|
@@ -59,7 +59,7 @@ endif
|
|
if get_option('systemd').enabled()
|
|
install_data('ndctl-monitor.service', install_dir : systemdunitdir)
|
|
endif
|
|
-install_data('monitor.conf', install_dir : ndctlconf_dir)
|
|
+install_data('monitor.conf', install_dir : legacyconf_dir)
|
|
install_data('ndctl.conf', install_dir : ndctlconf_dir)
|
|
install_data('keys.readme', install_dir : ndctlkeys_dir)
|
|
|
|
diff --git a/ndctl/monitor.c b/ndctl/monitor.c
|
|
index bd8a748..07da7f5 100644
|
|
--- a/ndctl/monitor.c
|
|
+++ b/ndctl/monitor.c
|
|
@@ -591,6 +591,15 @@ int cmd_monitor(int argc, const char **argv, struct ndctl_ctx *ctx)
|
|
else
|
|
monitor.ctx.log_priority = LOG_INFO;
|
|
|
|
+ /*
|
|
+ * First, check the legacy path to see if a monitor.conf
|
|
+ * file exists there. If so, add a [monitor] header
|
|
+ * and use its contents.
|
|
+ */
|
|
+ if (!monitor.configs && (stat(LEGACY_CONF_FILE, &st) == 0) &&
|
|
+ S_ISREG(st.st_mode))
|
|
+ monitor.configs = LEGACY_CONF_FILE;
|
|
+
|
|
ndctl_configs = ndctl_get_config_path(ctx);
|
|
if (!monitor.configs && ndctl_configs) {
|
|
rc = asprintf(&path, "%s/monitor.conf", ndctl_configs);
|