]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
install: use BINDIR consistently to locate mdadm and mdmon
authorNeilBrown <neilb@suse.de>
Thu, 22 May 2014 07:13:02 +0000 (17:13 +1000)
committerNeilBrown <neilb@suse.de>
Thu, 22 May 2014 07:13:02 +0000 (17:13 +1000)
Every place where the paths for mdadm or mdmon is explicit,
it should use the BINDIR setting, not "/sbin/".

Reported-by: member graysky <graysky@archlinux.us> (https://bugs.archlinux.org/task/37330)
Signed-off-by: NeilBrown <neilb@suse.de>
Makefile
policy.c
systemd/mdadm-grow-continue@.service
systemd/mdadm-last-resort@.service
systemd/mdadm.shutdown
systemd/mdmon@.service
systemd/mdmonitor.service
udev-md-raid-arrays.rules
udev-md-raid-assembly.rules
util.c

index 3af030b56590e932abc50026b03ce1b836631c27..b52cffd23d6a4c0e30704054162bd17cd8d7f870 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -57,6 +57,7 @@ ifdef DEFAULT_OLD_METADATA
 else
  DEFAULT_METADATA=1.2
 endif
+CPPFLAGS += -DBINDIR=\"$(BINDIR)\"
 
 PKG_CONFIG ?= pkg-config
 
@@ -280,16 +281,27 @@ install-man: mdadm.8 md.4 mdadm.conf.5 mdmon.8
        $(INSTALL) -D -m 644 mdadm.conf.5 $(DESTDIR)$(MAN5DIR)/mdadm.conf.5
 
 install-udev: udev-md-raid-arrays.rules udev-md-raid-assembly.rules
-       $(INSTALL) -D -m 644 udev-md-raid-arrays.rules $(DESTDIR)$(UDEVDIR)/rules.d/63-md-raid-arrays.rules
-       $(INSTALL) -D -m 644 udev-md-raid-assembly.rules $(DESTDIR)$(UDEVDIR)/rules.d/64-md-raid-assembly.rules
+       @for file in 63-md-raid-arrays.rules 64-md-raid-assembly.rules ; \
+       do sed -e 's,BINDIR,$(BINDIR),g' udev-$${file#??-} > .install.tmp && \
+          echo $(INSTALL) -D -m 644 udev-$${file#??-} $(DESTDIR)$(UDEVDIR)/rules.d/$$file ; \
+          $(INSTALL) -D -m 644 .install.tmp $(DESTDIR)$(UDEVDIR)/rules.d/$$file ; \
+          rm -f .install.tmp; \
+       done
 
 install-systemd: systemd/mdmon@.service
-       $(INSTALL) -D -m 644 systemd/mdmon@.service $(DESTDIR)$(SYSTEMD_DIR)/mdmon@.service
-       $(INSTALL) -D -m 644 systemd/mdmonitor.service $(DESTDIR)$(SYSTEMD_DIR)/mdmonitor.service
-       $(INSTALL) -D -m 644 systemd/mdadm-last-resort@.timer $(DESTDIR)$(SYSTEMD_DIR)/mdadm-last-resort@.timer
-       $(INSTALL) -D -m 644 systemd/mdadm-last-resort@.service $(DESTDIR)$(SYSTEMD_DIR)/mdadm-last-resort@.service
-       $(INSTALL) -D -m 644 systemd/mdadm-grow-continue@.service $(DESTDIR)$(SYSTEMD_DIR)/mdadm-grow-continue@.service
-       $(INSTALL) -D -m 755 systemd/mdadm.shutdown $(DESTDIR)$(SYSTEMD_DIR)-shutdown/mdadm.shutdown
+       @for file in mdmon@.service mdmonitor.service mdadm-last-resort@.timer \
+               mdadm-last-resort@.service ; \
+       do sed -e 's,BINDIR,$(BINDIR),g' systemd/$$file > .install.tmp && \
+          echo $(INSTALL) -D -m 644 systemd/$$file $(DESTDIR)$(SYSTEMD_DIR)/$$file ; \
+          $(INSTALL) -D -m 644 .install.tmp $(DESTDIR)$(SYSTEMD_DIR)/$$file ; \
+          rm -f .install.tmp; \
+       done
+       @for file in mdadm.shutdown ; \
+       do sed -e 's,BINDIR,$(BINDIR),g' systemd/$$file > .install.tmp && \
+          echo $(INSTALL) -D -m 755  systemd/$$file $(DESTDIR)$(SYSTEMD_DIR)-shutdown/$$file ; \
+          $(INSTALL) -D -m 755  .install.tmp $(DESTDIR)$(SYSTEMD_DIR)-shutdown/$$file ; \
+          rm -f .install.tmp; \
+       done
        if [ -f /etc/SuSE-release -o -n "$(SUSE)" ] ;then $(INSTALL) -D -m 755 systemd/SUSE-mdadm_env.sh $(DESTDIR)$(SYSTEMD_DIR)/../scripts/mdadm_env.sh ;fi
 
 uninstall:
index 104695d3c473b829a70575a93ff7ef5d720d4c5f..ef83621a93889f8b03a25729aef4b84e13694c62 100644 (file)
--- a/policy.c
+++ b/policy.c
@@ -799,12 +799,12 @@ char *find_rule(struct rule *rule, char *rule_type)
 #define UDEV_RULE_FORMAT \
 "ACTION==\"add\", SUBSYSTEM==\"block\", " \
 "ENV{DEVTYPE}==\"%s\", ENV{ID_PATH}==\"%s\", " \
-"RUN+=\"/sbin/mdadm --incremental $env{DEVNAME}\"\n"
+"RUN+=\"" BINDIR "/mdadm --incremental $env{DEVNAME}\"\n"
 
 #define UDEV_RULE_FORMAT_NOTYPE \
 "ACTION==\"add\", SUBSYSTEM==\"block\", " \
 "ENV{ID_PATH}==\"%s\", " \
-"RUN+=\"/sbin/mdadm --incremental $env{DEVNAME}\"\n"
+"RUN+=\"" BINDIR "/mdadm --incremental $env{DEVNAME}\"\n"
 
 /* Write rule in the rule file. Use format from UDEV_RULE_FORMAT */
 int write_rule(struct rule *rule, int fd, int force_part)
index 314a4fa0ea5bdd274d777d395ca156c6dd7e5cd4..5c667d2a71f64bcfb8cac57cb43f7c7e15a91f0d 100644 (file)
@@ -10,7 +10,7 @@ Description=Manage MD Reshape on /dev/%I
 DefaultDependencies=no
 
 [Service]
-ExecStart=/sbin/mdadm --grow --continue /dev/%I
+ExecStart=BINDIR/mdadm --grow --continue /dev/%I
 StandardInput=null
 StandardOutput=null
 StandardError=null
index 45d3c2a1cfbed18139b9b7fc261026171a6a217d..5179f194b79a9f1c91b0d20a6d39b19d377878fd 100644 (file)
@@ -4,4 +4,4 @@ DefaultDependencies=no
 
 [Service]
 Type=oneshot
-ExecStart=/sbin/mdadm --run /dev/%i
+ExecStart=BINDIR/mdadm --run /dev/%i
index 1bbbb6f8561f645f0f13fb7ecd0536d5929743c6..33f277831b247056076b0bc07df29ba843cd1e17 100644 (file)
@@ -1,4 +1,4 @@
 #!/bin/sh
 # We need to ensure all md arrays with external metadata
 # (e.g. IMSM, DDF) are clean before completing the shutdown.
-/sbin/mdadm --wait-clean --scan
+BINDIR/mdadm --wait-clean --scan
index af0a2a33c80a0b00ddcd91c0918757d7697d4e6a..85a3a7c58b842f2268c5e0da6802209de46a6e1d 100644 (file)
@@ -19,7 +19,7 @@ Environment=IMSM_NO_PLATFORM=1
 # 'takeover'.  As the '--offroot --takeover' don't hurt when
 # not necessary, are are useful with root-on-md in dracut,
 # have them always present.
-ExecStart=/sbin/mdmon --offroot --takeover %I
+ExecStart=BINDIR/mdmon --offroot --takeover %I
 Type=forking
 # Don't set the PIDFile.  It isn't necessary (systemd can work
 # it out) and systemd will remove it when transitioning from
index 11aaeff2b5bd1b298b4f5f69049f2ba2e3637366..c7cff3e497ecf443ac28c4db714961e1dd008225 100644 (file)
@@ -13,4 +13,4 @@ DefaultDependencies=no
 Environment=  MDADM_MONITOR_ARGS=--scan
 EnvironmentFile=-/run/sysconfig/mdadm
 ExecStartPre=-/usr/lib/systemd/scripts/mdadm_env.sh
-ExecStart=/sbin/mdadm --monitor $MDADM_MONITOR_ARGS
+ExecStart=BINDIR/mdadm --monitor $MDADM_MONITOR_ARGS
index 92aec36e69d4b67789e74dab049882937230da3e..c95ec7b1e4a9c20869a3765de29394961ac0c8fb 100644 (file)
@@ -17,7 +17,7 @@ TEST!="md/array_state", ENV{SYSTEMD_READY}="0", GOTO="md_end"
 ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0", GOTO="md_end"
 LABEL="md_ignore_state"
 
-IMPORT{program}="/sbin/mdadm --detail --export $devnode"
+IMPORT{program}="BINDIR/mdadm --detail --export $devnode"
 ENV{DEVTYPE}=="disk", ENV{MD_NAME}=="?*", SYMLINK+="disk/by-id/md-name-$env{MD_NAME}", OPTIONS+="string_escape=replace"
 ENV{DEVTYPE}=="disk", ENV{MD_UUID}=="?*", SYMLINK+="disk/by-id/md-uuid-$env{MD_UUID}"
 ENV{DEVTYPE}=="disk", ENV{MD_DEVNAME}=="?*", SYMLINK+="md/$env{MD_DEVNAME}"
index 824e7a9b706adb08c94db65c3ebb69e7428b5ffd..d0d440a6394c4d90c4968de0344e28a802ce3556 100644 (file)
@@ -27,9 +27,9 @@ LABEL="md_inc"
 
 # remember you can limit what gets auto/incrementally assembled by
 # mdadm.conf(5)'s 'AUTO' and selectively whitelist using 'ARRAY'
-ACTION=="add|change", IMPORT{program}="/sbin/mdadm --incremental --export $devnode --offroot ${DEVLINKS}"
+ACTION=="add|change", IMPORT{program}="BINDIR/mdadm --incremental --export $devnode --offroot ${DEVLINKS}"
 ACTION=="add|change", ENV{MD_STARTED}=="*unsafe*", ENV{MD_FOREIGN}=="no", ENV{SYSTEMD_WANTS}+="mdadm-last-resort@$env{MD_DEVICE}.timer"
-ACTION=="remove", ENV{ID_PATH}=="?*", RUN+="/sbin/mdadm -If $name --path $env{ID_PATH}"
-ACTION=="remove", ENV{ID_PATH}!="?*", RUN+="/sbin/mdadm -If $name"
+ACTION=="remove", ENV{ID_PATH}=="?*", RUN+="BINDIR/mdadm -If $name --path $env{ID_PATH}"
+ACTION=="remove", ENV{ID_PATH}!="?*", RUN+="BINDIR/mdadm -If $name"
 
 LABEL="md_inc_end"
diff --git a/util.c b/util.c
index afb2bb110f24cf65c4cdd23bed3f23dc2db0c884..7937eb6efde2aae25bd1092f6d5d95422229c868 100644 (file)
--- a/util.c
+++ b/util.c
@@ -1688,7 +1688,7 @@ int start_mdmon(char *devnm)
        char pathbuf[1024];
        char *paths[4] = {
                pathbuf,
-               "/sbin/mdmon",
+               BINDIR "/mdmon",
                "./mdmon",
                NULL
        };