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;