File 0009-Do-not-hardcode-paths-in-services-and-scripts.patch of Package drbd-utils

by heming.zhao@suse.com
remove the patch of scripts/.gitignore for following complain msg:
```
+ /usr/lib/rpm/rpmuncompress /usr/src/packages/SOURCES/0009-Do-not-hardcode-paths-in-services-and-scripts.patch
+ /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f
The text leading up to this was:
--------------------------
|diff --git a/scripts/.gitignore b/scripts/.gitignore
|index a307904047f8..ba121127c341 100644
|--- a/scripts/.gitignore
|+++ b/scripts/.gitignore
--------------------------
No file to patch.  Skipping patch.
1 out of 1 hunk ignored
```

From 080e93bd9bcf546cd3a9870ae1add2469a2a4e24 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Moritz=20Wanzenb=C3=B6ck?= <moritz.wanzenboeck@linbit.com>
Date: Fri, 20 Sep 2024 10:30:24 +0200
Subject: [PATCH 09/12] Do not hardcode paths in services and scripts

This fixes issues when drbd-utils get installed to non-standard locations.

Since the autoconf generated Makefile should still allow override on install,
we have to use a new target to do our own expansion. The implementation is
lifted from the autconf manual:

  info autoconf "Installation Directory Variables"

# Conflicts:
#	scripts/.gitignore
#	scripts/Makefile.in
---
 configure.ac                                  |  2 +-
 scripts/.gitignore                            |  8 +++++++
 scripts/Makefile.in                           | 23 +++++++++++++++----
 ...ce => drbd-demote-or-escalate@.service.in} |  2 +-
 ...vice => drbd-graceful-shutdown.service.in} |  2 +-
 scripts/drbd-promote@.service.in              |  4 ++--
 ...-reconfigure-suspend-or-error@.service.in} |  4 ++--
 ...ervice-shim.sh => drbd-service-shim.sh.in} | 18 +++++++--------
 ...rvice => drbd-wait-promotable@.service.in} |  2 +-
 scripts/{drbd.service => drbd.service.in}     |  6 ++---
 scripts/{drbd@.service => drbd@.service.in}   |  6 ++---
 .../{ocf.ra@.service => ocf.ra@.service.in}   |  4 ++--
 12 files changed, 51 insertions(+), 30 deletions(-)
 rename scripts/{drbd-demote-or-escalate@.service => drbd-demote-or-escalate@.service.in} (92%)
 rename scripts/{drbd-graceful-shutdown.service => drbd-graceful-shutdown.service.in} (88%)
 rename scripts/{drbd-reconfigure-suspend-or-error@.service => drbd-reconfigure-suspend-or-error@.service.in} (71%)
 rename scripts/{drbd-service-shim.sh => drbd-service-shim.sh.in} (81%)
 rename scripts/{drbd-wait-promotable@.service => drbd-wait-promotable@.service.in} (84%)
 rename scripts/{drbd.service => drbd.service.in} (80%)
 rename scripts/{drbd@.service => drbd@.service.in} (87%)
 rename scripts/{ocf.ra@.service => ocf.ra@.service.in} (85%)

diff --git a/configure.ac b/configure.ac
index cd166bbafbc0..630163cee103 100644
--- a/configure.ac
+++ b/configure.ac
@@ -525,7 +525,7 @@ fi
 
 dnl The configuration files we create (from their .in template)
 if test -z $SPECMODE; then
-   AC_CONFIG_FILES(Makefile user/shared/Makefile user/v9/Makefile user/v84/Makefile scripts/Makefile scripts/drbd.rules user/windrbd/Makefile user/drbdmon/Makefile documentation/common/Makefile_v84_com documentation/common/Makefile_v9_com)
+   AC_CONFIG_FILES(Makefile user/shared/Makefile user/v9/Makefile user/v84/Makefile scripts/Makefile user/windrbd/Makefile user/drbdmon/Makefile documentation/common/Makefile_v84_com documentation/common/Makefile_v9_com)
    AC_CONFIG_HEADERS(user/shared/config.h)
 else
    AC_CONFIG_FILES(drbd.spec)
diff --git a/scripts/Makefile.in b/scripts/Makefile.in
index 7652ee872500..001d08da54e4 100644
--- a/scripts/Makefile.in
+++ b/scripts/Makefile.in
@@ -67,9 +67,20 @@ SYSTEMD_TEMPLATES += drbd-wait-promotable@.service
 SYSTEMD_UNITS  = drbd.service
 SYSTEMD_UNITS += drbd-graceful-shutdown.service
 
-SERVICE_TEMPLATES  = drbd-promote@.service
+UDEV_TEMPLATES  = drbd.rules
 
-TEMPLATES := $(SERVICE_TEMPLATES)
+SERVICE_TEMPLATES  = drbd.service
+SERVICE_TEMPLATES += drbd@.service
+SERVICE_TEMPLATES += drbd-demote-or-escalate@.service
+SERVICE_TEMPLATES += drbd-graceful-shutdown.service
+SERVICE_TEMPLATES += drbd-promote@.service
+SERVICE_TEMPLATES += drbd-reconfigure-suspend-or-error@.service
+SERVICE_TEMPLATES += drbd-wait-promotable@.service
+SERVICE_TEMPLATES += ocf.ra@.service
+
+SCRIPT_TEMPLATES = drbd-service-shim.sh
+
+TEMPLATES := $(SCRIPT_TEMPLATES) $(SERVICE_TEMPLATES) $(UDEV_TEMPLATES)
 
 # variables meant to be overridden from the make command line
 ifeq ($(WITH_WINDRBD),yes)
@@ -82,7 +93,7 @@ all: $(TEMPLATES)
 
 install: install-utils install-udev install-xen install-heartbeat install-pacemaker install-rgmanager install-bashcompletion
 
-install-utils: $(SERVICE_TEMPLATES)
+install-utils: $(SERVICE_TEMPLATES) $(SCRIPT_TEMPLATES)
 	install -d $(DESTDIR)$(LIBDIR)
 # "sysv" or "both"
 ifeq ($(subst both,sysv,$(initscripttype)),sysv)
@@ -172,7 +183,7 @@ ifeq ($(WITH_XEN),yes)
 	install -m 755 block-drbd $(DESTDIR)$(sysconfdir)/xen/scripts
 endif
 
-install-udev:
+install-udev: $(UDEV_TEMPLATES)
 ifeq ($(WITH_UDEV),yes)
 	mkdir -p $(DESTDIR)$(udevrulesdir)
 	install -m 644 drbd.rules $(DESTDIR)$(udevrulesdir)/65-drbd.rules$(UDEV_RULE_SUFFIX)
@@ -214,7 +225,9 @@ Makefile.in: ;
 Makefile: Makefile.in ../config.status
 	cd .. && ./config.status scripts/Makefile
 
-edit = sed -e ''
+edit = sed -e '' \
+	-e 's|@sbindir[@]|$(sbindir)|g' \
+	-e 's|@libdir[@]|$(LIBDIR)|g' \
 
 ifeq ($(SYSTEMD_EXEC_CONDITION),no)
 	edit += -e 's|^ExecCondition=|ExecStart=|'
diff --git a/scripts/drbd-demote-or-escalate@.service b/scripts/drbd-demote-or-escalate@.service.in
similarity index 92%
rename from scripts/drbd-demote-or-escalate@.service
rename to scripts/drbd-demote-or-escalate@.service.in
index 2093223847b4..f5e123199323 100644
--- a/scripts/drbd-demote-or-escalate@.service
+++ b/scripts/drbd-demote-or-escalate@.service.in
@@ -28,5 +28,5 @@ TimeoutSec=60
 # "Type=forking" would be an option to have it retry a number of times,
 # and then only escalate to FailureAction if that did not help.
 Type=oneshot
-ExecStart=/lib/drbd/scripts/drbd-service-shim.sh secondary-or-escalate %I
+ExecStart=@libdir@/scripts/drbd-service-shim.sh secondary-or-escalate %I
 ExecStopPost=-/bin/journalctl --sync
diff --git a/scripts/drbd-graceful-shutdown.service b/scripts/drbd-graceful-shutdown.service.in
similarity index 88%
rename from scripts/drbd-graceful-shutdown.service
rename to scripts/drbd-graceful-shutdown.service.in
index b6e8a149d051..6118d880d8fb 100644
--- a/scripts/drbd-graceful-shutdown.service
+++ b/scripts/drbd-graceful-shutdown.service.in
@@ -13,4 +13,4 @@ Before=drbd.service drbd@.service
 Type=oneshot
 RemainAfterExit=yes
 
-ExecStop=/lib/drbd/scripts/drbd-service-shim.sh down all
+ExecStop=@libdir@/scripts/drbd-service-shim.sh down all
diff --git a/scripts/drbd-promote@.service.in b/scripts/drbd-promote@.service.in
index 71345d9b723d..23e74c282250 100644
--- a/scripts/drbd-promote@.service.in
+++ b/scripts/drbd-promote@.service.in
@@ -24,5 +24,5 @@ RemainAfterExit=yes
 # (ab)using systemd features
 # if we cannot configure and promote, that's a condition, not a failure
 # See the comment above wrt. FailureAction vs OnFailure
-ExecCondition=/lib/drbd/scripts/drbd-service-shim.sh primary %I
-ExecStop=/lib/drbd/scripts/drbd-service-shim.sh secondary %I
+ExecCondition=@libdir@/scripts/drbd-service-shim.sh primary %I
+ExecStop=@libdir@/scripts/drbd-service-shim.sh secondary %I
diff --git a/scripts/drbd-reconfigure-suspend-or-error@.service b/scripts/drbd-reconfigure-suspend-or-error@.service.in
similarity index 71%
rename from scripts/drbd-reconfigure-suspend-or-error@.service
rename to scripts/drbd-reconfigure-suspend-or-error@.service.in
index c0e59e5e72d3..6a0a2584e3a6 100644
--- a/scripts/drbd-reconfigure-suspend-or-error@.service
+++ b/scripts/drbd-reconfigure-suspend-or-error@.service.in
@@ -10,5 +10,5 @@ RefuseManualStop=yes
 SyslogIdentifier=drbd-%I
 Type=oneshot
 RemainAfterExit=yes
-ExecStop=-/usr/sbin/drbdsetup resource-options --on-no-quorum io-error --on-no-data io-error %I
-ExecStart=-/usr/sbin/drbdsetup resource-options --on-no-quorum suspend-io --on-no-data suspend-io %I
+ExecStop=-@sbindir@/drbdsetup resource-options --on-no-quorum io-error --on-no-data io-error %I
+ExecStart=-@sbindir@/drbdsetup resource-options --on-no-quorum suspend-io --on-no-data suspend-io %I
diff --git a/scripts/drbd-service-shim.sh b/scripts/drbd-service-shim.sh.in
similarity index 81%
rename from scripts/drbd-service-shim.sh
rename to scripts/drbd-service-shim.sh.in
index 786387463891..56029bdcebe2 100755
--- a/scripts/drbd-service-shim.sh
+++ b/scripts/drbd-service-shim.sh.in
@@ -14,7 +14,7 @@ secondary_check() {
 	local ex_secondary current_state opts
 	opts="$1"
 
-	/usr/sbin/drbdsetup secondary $opts "$res"
+	@sbindir@/drbdsetup secondary $opts "$res"
 	ex_secondary=$?
 	case $ex_secondary in
 	 0)
@@ -26,7 +26,7 @@ secondary_check() {
 	# any other special treatment for special exit codes?
 	*)
 		# double check for "resource does not exist"
-		current_state=$(/usr/sbin/drbdsetup events2 --now "$res")
+		current_state=$(@sbindir@/drbdsetup events2 --now "$res")
 		if [[ $current_state = "exists -" ]]; then
 			echo >&2 "<7>not even configured"
 			return 0
@@ -40,23 +40,23 @@ secondary_check() {
 
 case "$cmd" in
 adjust)
-  exec /usr/sbin/drbdadm adjust "$res"
+  exec @sbindir@/drbdadm adjust "$res"
   ;;
 down)
-  exec /usr/sbin/drbdsetup down "$res"
+  exec @sbindir@/drbdsetup down "$res"
   ;;
 primary)
-  exec /usr/sbin/drbdsetup primary "$res"
+  exec @sbindir@/drbdsetup primary "$res"
   ;;
 secondary)
-  exec /usr/sbin/drbdsetup secondary "$res"
+  exec @sbindir@/drbdsetup secondary "$res"
   ;;
 secondary-force)
-  exec /usr/sbin/drbdsetup secondary --force=yes "$res"
+  exec @sbindir@/drbdsetup secondary --force=yes "$res"
   ;;
 secondary-secondary-force)
-  /usr/sbin/drbdsetup secondary "$res" && exit 0
-  exec /usr/sbin/drbdsetup secondary --force=yes "$res"
+  @sbindir@/drbdsetup secondary "$res" && exit 0
+  exec @sbindir@/drbdsetup secondary --force=yes "$res"
   ;;
 secondary*-or-escalate)
 	# Log something and try to get journald to flush its logs
diff --git a/scripts/drbd-wait-promotable@.service b/scripts/drbd-wait-promotable@.service.in
similarity index 84%
rename from scripts/drbd-wait-promotable@.service
rename to scripts/drbd-wait-promotable@.service.in
index 81c3789f5a4c..f416274839e9 100644
--- a/scripts/drbd-wait-promotable@.service
+++ b/scripts/drbd-wait-promotable@.service.in
@@ -10,7 +10,7 @@ Type=oneshot
 
 # on first start, wait for access to "good data"
 # let systemd handle timeouts
-ExecStart=/lib/drbd/scripts/drbd-wait-promotable.sh %I
+ExecStart=@libdir@/scripts/drbd-wait-promotable.sh %I
 RemainAfterExit=yes
 
 [Install]
diff --git a/scripts/drbd.service b/scripts/drbd.service.in
similarity index 80%
rename from scripts/drbd.service
rename to scripts/drbd.service.in
index 96c599e75042..8bfeb17cb91d 100644
--- a/scripts/drbd.service
+++ b/scripts/drbd.service.in
@@ -12,11 +12,11 @@ RemainAfterExit=yes
 # A check for INIT_VERSION already exists, just set it to something.
 Environment=INIT_VERSION=systemd
 
-ExecStart=/lib/drbd/scripts/drbd start
-ExecStop=/lib/drbd/scripts/drbd stop
+ExecStart=@libdir@/scripts/drbd start
+ExecStop=@libdir@/scripts/drbd stop
 
 # Re-adjust everything on reload
-ExecReload=/lib/drbd/scripts/drbd reload
+ExecReload=@libdir@/scripts/drbd reload
 
 [Install]
 WantedBy=multi-user.target
diff --git a/scripts/drbd@.service b/scripts/drbd@.service.in
similarity index 87%
rename from scripts/drbd@.service
rename to scripts/drbd@.service.in
index 0fad10be237e..ab1c044cdeb1 100644
--- a/scripts/drbd@.service
+++ b/scripts/drbd@.service.in
@@ -35,8 +35,8 @@ RemainAfterExit=yes
 
 # depends... do we want this as ExecCondition or as ExecStart
 # failed start is "failed", failed condition is just "not startable yet"
-ExecStart=/lib/drbd/scripts/drbd-service-shim.sh adjust %I
-ExecReload=/lib/drbd/scripts/drbd-service-shim.sh adjust %I
+ExecStart=@libdir@/scripts/drbd-service-shim.sh adjust %I
+ExecReload=@libdir@/scripts/drbd-service-shim.sh adjust %I
 
 # can only succeed, if you first stop all depending services
-ExecStopPost=/lib/drbd/scripts/drbd-service-shim.sh down %I
+ExecStopPost=@libdir@/scripts/drbd-service-shim.sh down %I
diff --git a/scripts/ocf.ra@.service b/scripts/ocf.ra@.service.in
similarity index 85%
rename from scripts/ocf.ra@.service
rename to scripts/ocf.ra@.service.in
index 9c2268a615a7..4779706a8853 100644
--- a/scripts/ocf.ra@.service
+++ b/scripts/ocf.ra@.service.in
@@ -22,5 +22,5 @@ Environment=monitor_inverval=30
 # Only the first argument is used by the wrapper,
 # the %n is just to identify which is which in the process list.
 # All parameterization is done via Environment= in per instance override.conf
-ExecStart=/lib/drbd/scripts/ocf.ra.wrapper.sh start-and-monitor %n
-ExecStopPost=/lib/drbd/scripts/ocf.ra.wrapper.sh stop %n
+ExecStart=@libdir@/scripts/ocf.ra.wrapper.sh start-and-monitor %n
+ExecStopPost=@libdir@/scripts/ocf.ra.wrapper.sh stop %n
-- 
2.43.0

openSUSE Build Service is sponsored by