File usr_etc.patch of Package fcoe-utils

From 16f7669b54022477ee0c3bba3390230290440921 Mon Sep 17 00:00:00 2001
From: Stefan Schubert <schubi@suse.de>
Date: Tue, 12 Dec 2023 17:48:17 +0100
Subject: [PATCH] using vendor directory (e.g. /usr/etc) as fallback for /etc

---
 Makefile.am  | 24 ++++++++++++++++++++++++
 configure.ac | 29 +++++++++++++++++++++++++++++
 fcoemon.c    |  1 +
 3 files changed, 54 insertions(+)

diff --git a/Makefile.am b/Makefile.am
index 2f323e40d88..56fbe0c3636 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -43,6 +43,9 @@ noinst_HEADERS = fcoeadm_display.h fcoe_clif.h fcoemon.h \
 
 ## install configuration file in $(prefix)/etc/fcoe
 fcoe_configdir = ${sysconfdir}/fcoe
+if USE_VENDORDIR
+fcoe_vendorconfigdir = ${vendordir}/fcoe
+endif
 dist_fcoe_config_DATA = etc/cfg-ethx
 
 ## install systemd service files
@@ -77,11 +80,32 @@ bashcompletiondir = $(datadir)/bash-completion/completions
 dist_bashcompletion_DATA = contrib/bash_completion/fcoeadm contrib/bash_completion/fcoemon
 
 install-data-hook:
+if USE_VENDORDIR
+	if [ ! -f ${DESTDIR}${fcoe_vendorconfigdir}/config ] ; then \
+		mkdir -p ${DESTDIR}${fcoe_vendorconfigdir}; \
+		cp ${srcdir}/etc/config ${DESTDIR}${fcoe_vendorconfigdir}/config; \
+	fi;
+	mv ${DESTDIR}${fcoe_configdir}/cfg-ethx ${DESTDIR}${fcoe_vendorconfigdir}/cfg-ethx
+if HAVE_SYSTEMD
+		sed -z "s|EnvironmentFile=/etc/fcoe/config|EnvironmentFile=${fcoe_vendorconfigdir}/config\nEnvironmentFile=-${fcoe_configdir}/config|" \
+			${srcdir}/etc/systemd/fcoe.service >${DESTDIR}${systemdsystemunitdir}/fcoe.service
+endif
+	sed -z "s|CONFIG_DIR=/etc/fcoe|CONFIG_DIR=${fcoe_vendorconfigdir}|" \
+		${srcdir}/etc/initd/fcoe >${DESTDIR}${init_ddir}/fcoe
+	sed -z "s|/etc/fcoe/config|/etc/fcoe/config or ${fcoe_vendorconfigdir}/config if it is not available|" \
+		${srcdir}/doc/fcoemon.8 >${DESTDIR}${man8dir}/fcoemon.8
+else
 	if [ ! -f ${DESTDIR}${fcoe_configdir}/config ] ; then \
 		cp ${srcdir}/etc/config ${DESTDIR}${fcoe_configdir}/config; \
 	fi;
+endif
 
 uninstall-hook:
+if USE_VENDORDIR
+	rm ${DESTDIR}${fcoe_vendorconfigdir}/config
+	rm ${DESTDIR}${fcoe_vendorconfigdir}/cfg-ethx
+else
 	rm ${DESTDIR}${fcoe_configdir}/config
+endif
 
 AM_DISTCHECK_CONFIGURE_FLAGS = --with-systemdsystemunitdir='$${prefix}/lib/systemd/system'
diff --git a/configure.ac b/configure.ac
index 7992007e115..2e1ab5a8075 100644
--- a/configure.ac
+++ b/configure.ac
@@ -21,6 +21,35 @@ AC_ARG_WITH([systemdsystemunitdir],
 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
 AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir"])
 
+AC_ARG_WITH([vendordir],
+  AS_HELP_STRING([--with-vendordir=DIR], [Directory for distribution provided configuration files]),
+  [], []
+)
+
+AC_SUBST([vendordir], [$with_vendordir])
+AM_CONDITIONAL([USE_VENDORDIR], [test "x$with_vendordir" != x])
+AS_IF([test "x$with_vendordir" != x], [
+  AC_DEFINE([USE_VENDORDIR], [1], [Define to 1 to use vendordir])
+])
+
 AC_CONFIG_FILES([Makefile fcoe-utils.spec include/fcoe_utils_version.h])
 AC_OUTPUT
 
+AC_MSG_RESULT([
+
+        prefix:                    ${prefix}
+        exec prefix:               ${exec_prefix}
+        bindir:                    ${bindir}
+        sbindir:                   ${sbindir}
+        libdir:                    ${libdir}
+        includedir:                ${includedir}
+        sysconfdir:                ${sysconfdir}
+        systemdsystemunitdir:      ${with_systemdsystemunitdir}
+        vendordir:                 ${with_vendordir}
+	compiler:                  ${CC}
+        ldflags:                   ${LDFLAGS}
+        cflags:                    ${CFLAGS}
+        warnings:                  ${WARN_CFLAGS}
+
+ Type 'make' to compile.
+])
diff --git a/fcoemon.c b/fcoemon.c
index b85f276c7df..a0eb1f93baa 100644
--- a/fcoemon.c
+++ b/fcoemon.c
@@ -505,6 +505,7 @@ static int fcm_read_config_files(void)
 		if (rc)
 			continue;
 
+		/* do not read template file*/
 		if (!strncmp(dp->d_name, DEF_CFG_FILE,
 			     strlen(DEF_CFG_FILE)))
 			continue;
openSUSE Build Service is sponsored by