diff options
-rw-r--r-- | Makefile | 22 | ||||
-rw-r--r-- | libopeniscsiusr/Makefile | 4 | ||||
-rw-r--r-- | libopeniscsiusr/iface.c | 5 | ||||
-rw-r--r-- | utils/50-iscsi-firmware-login.rules | 2 | ||||
-rwxr-xr-x | utils/iscsi-gen-initiatorname | 10 | ||||
-rw-r--r-- | utils/iscsi_fw_login | 2 |
6 files changed, 31 insertions, 14 deletions
@@ -6,6 +6,8 @@ # that you want everything installed into. DESTDIR ?= +SED = /usr/bin/sed + prefix = /usr exec_prefix = / sbindir = $(exec_prefix)/sbin @@ -60,7 +62,7 @@ endif all: user user: iscsiuio/Makefile - $(MAKE) -C libopeniscsiusr + $(MAKE) -C libopeniscsiusr SBINDIR=$(sbindir) SBINDIR=$(sbindir) $(MAKE) -C utils/sysdeps $(MAKE) -C utils/fwparam_ibft $(MAKE) -C usr @@ -110,18 +112,26 @@ install_user: install_programs install_doc install_etc \ install_udev_rules: $(INSTALL) -d $(DESTDIR)$(rulesdir) $(INSTALL) -m 644 $(RULESFILES) $(DESTDIR)/$(rulesdir) + for f in $(RULESFILES); do \ + p=$(DESTDIR)/$(rulesdir)/$${f##*/}; \ + $(SED) -i -e 's:@SBINDIR@:$(sbindir):' $$p; \ + done install_systemd: - $(INSTALL) -d $(DESTDIR)$(systemddir) - $(INSTALL) -m 644 $(SYSTEMDFILES) $(DESTDIR)/$(systemddir) + $(INSTALL) -d $(DESTDIR)$(systemddir)/system + $(INSTALL) -m 644 $(SYSTEMDFILES) $(DESTDIR)/$(systemddir)/system for f in $(SYSTEMDFILES); do \ p=$(DESTDIR)/$(systemddir)/system/$${f##*/}; \ - sed -i -e 's:@SBINDIR@:$(sbindir):' $$p; \ + $(SED) -i -e 's:@SBINDIR@:$(sbindir):' $$p; \ done -install_programs: $(PROGRAMS) $(SCRIPTS) +install_programs: $(PROGRAMS) $(SCRIPTS) $(INSTALL) -d $(DESTDIR)$(sbindir) $(INSTALL) -m 755 $^ $(DESTDIR)$(sbindir) + for f in $(SCRIPTS); do \ + p=$(DESTDIR)/$(sbindir)/$${f##*/}; \ + $(SED) -i -e 's:@SBINDIR@:$(sbindir):' $$p; \ + done # ugh, auto-detection is evil # Gentoo maintains their own init.d stuff @@ -168,7 +178,7 @@ install_doc: $(MANPAGES) install_iname: if [ ! -f $(DESTDIR)/etc/iscsi/initiatorname.iscsi ]; then \ - echo "InitiatorName=`$(DESTDIR)/sbin/iscsi-iname`" > $(DESTDIR)/etc/iscsi/initiatorname.iscsi ; \ + echo "InitiatorName=`$(DESTDIR)$(sbindir)/iscsi-iname`" > $(DESTDIR)/etc/iscsi/initiatorname.iscsi ; \ echo "***************************************************" ; \ echo "Setting InitiatorName to `cat $(DESTDIR)/etc/iscsi/initiatorname.iscsi`" ; \ echo "To override edit $(DESTDIR)/etc/iscsi/initiatorname.iscsi" ; \ diff --git a/libopeniscsiusr/Makefile b/libopeniscsiusr/Makefile index 06b09f5..ae4c364 100644 --- a/libopeniscsiusr/Makefile +++ b/libopeniscsiusr/Makefile @@ -11,6 +11,8 @@ endif DESTDIR ?= prefix ?= /usr INSTALL ?= install +exec_prefix = / +sbindir = $(exec_prefix)/sbin ifndef LIB_DIR ifeq ($(shell test -d /lib64 && echo 1),1) @@ -24,6 +26,7 @@ INCLUDE_DIR ?= $(prefix)/include PKGCONF_DIR ?= $(LIB_DIR)/pkgconfig PKG_CONFIG = /usr/bin/pkg-config +SED = /usr/bin/sed LIBISCSI_USR_DIR=$(TOPDIR)/libopeniscsiusr @@ -47,6 +50,7 @@ OBJS = context.o misc.o session.o sysfs.o iface.o idbm.o node.o default.o CFLAGS ?= -O2 -g CFLAGS += -Wall -Werror -Wextra -fvisibility=hidden -fPIC CFLAGS += $(shell $(PKG_CONFIG) --cflags libkmod) +CFLAGS += -DSBINDIR=$(sbindir) LDFLAGS += $(shell $(PKG_CONFIG) --libs libkmod) diff --git a/libopeniscsiusr/iface.c b/libopeniscsiusr/iface.c index 63f9c61..a8c004c 100644 --- a/libopeniscsiusr/iface.c +++ b/libopeniscsiusr/iface.c @@ -44,7 +44,10 @@ #include "idbm.h" #include "default.h" -#define ISCSIUIO_PATH "/sbin/iscsiuio" +#ifndef SBINDIR +#define SBINDIR "/sbin" +#endif +#define ISCSIUIO_PATH SBINDIR "/iscsiuio" struct _iscsi_net_drv { const char *net_driver_name; // Ethernet driver. diff --git a/utils/50-iscsi-firmware-login.rules b/utils/50-iscsi-firmware-login.rules index 47b3cf9..9fa1e7d 100644 --- a/utils/50-iscsi-firmware-login.rules +++ b/utils/50-iscsi-firmware-login.rules @@ -12,4 +12,4 @@ # having it as one single line avoids those problems. # # DO NOT WRAP THIS LINE -SUBSYSTEM=="iscsi_boot*", ACTION=="add", DEVPATH=="*/target*", RUN+="/sbin/iscsi_fw_login" +SUBSYSTEM=="iscsi_boot*", ACTION=="add", DEVPATH=="*/target*", RUN+="@SBINDIR@/iscsi_fw_login" diff --git a/utils/iscsi-gen-initiatorname b/utils/iscsi-gen-initiatorname index 88bd43b..3e30465 100755 --- a/utils/iscsi-gen-initiatorname +++ b/utils/iscsi-gen-initiatorname @@ -1,10 +1,10 @@ #!/bin/bash # -# /sbin/iscsi-gen-initiatorname +# iscsi-gen-initiatorname # # Generate a default iSCSI Initiatorname for SUSE installations. # -# Copyright (c) 2011 Hannes Reinecke, SUSE Labs +# Copyright (c) 2021 Hannes Reinecke, SUSE Labs # This script is licensed under the GPL. # @@ -27,7 +27,7 @@ if [ -f /etc/iscsi/initiatorname.iscsi -a -z "$FORCE" ] ; then eval $(cat /etc/iscsi/initiatorname.iscsi | sed -e '/^#/d') if [ "$iSCSI_INITIATOR_NAME" != "$InitiatorName" ] ; then echo "iSCSI Initiatorname from iBFT is different from the current setting." - echo "Please call '/sbin/iscsi-gen-initiatorname -f' to update the iSCSI Initiatorname." + echo "Please call '@SBINDIR@/iscsi-gen-initiatorname -f' to update the iSCSI Initiatorname." exit 1 fi fi @@ -45,7 +45,7 @@ if [ "$iSCSI_INITIATOR_NAME" ] ; then ## Any change here will not be reflected to the iBFT BIOS tables. ## If a different initiatorname is required please change the ## initiatorname in the BIOS setup and call -## /sbin/iscsi-gen-initiatorname -f +## @SBINDIR@/iscsi-gen-initiatorname -f ## to recreate an updated version of this file. ## InitiatorName=$iSCSI_INITIATOR_NAME @@ -66,7 +66,7 @@ if [ ! -f /etc/iscsi/initiatorname.iscsi ] ; then ## for each iSCSI initiator. Do NOT duplicate iSCSI InitiatorNames. EOF ISSUEDATE="1996-04" - INAME=$(/sbin/iscsi-iname -p iqn.$ISSUEDATE.de.suse:01) + INAME=$(@SBINDIR@/iscsi-iname -p iqn.$ISSUEDATE.de.suse:01) printf "InitiatorName=$INAME\n" >>/etc/iscsi/initiatorname.iscsi chmod 0600 /etc/iscsi/initiatorname.iscsi fi diff --git a/utils/iscsi_fw_login b/utils/iscsi_fw_login index 1312ed3..aae9e4c 100644 --- a/utils/iscsi_fw_login +++ b/utils/iscsi_fw_login @@ -7,6 +7,6 @@ # ARGS="-m fw -l" -ISCSIADM="/sbin/iscsiadm" +ISCSIADM="@SBINDIR@/iscsiadm" $ISCSIADM $ARGS |