diff options
author | Lee Duncan <lduncan@suse.com> | 2022-04-05 11:00:26 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-05 11:00:26 -0700 |
commit | 1451108792c1187974b87399f71822b59d62948c (patch) | |
tree | f49bd21ed810f1fdd6f9833cd7b13cde3732fc46 | |
parent | 4f5c4af2047756f86400ac66491eb1b6c6f7d8bc (diff) | |
parent | 147c681385fbb694b87498a3ace64637f79f079d (diff) | |
download | open-iscsi-1451108792c1187974b87399f71822b59d62948c.tar.gz |
Merge pull request #335 from gonzoleeman/latest-build-cleanups-v2
Latest build cleanups and bug fixes
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | etc/Makefile | 33 | ||||
-rw-r--r-- | etc/systemd/ibft-rule-generator | 36 | ||||
-rw-r--r-- | libopeniscsiusr/Makefile | 24 | ||||
-rw-r--r-- | usr/Makefile | 1 | ||||
-rw-r--r-- | utils/Makefile | 3 |
6 files changed, 78 insertions, 25 deletions
@@ -14,11 +14,12 @@ etcdir = /etc SBINDIR = $(exec_prefix)/sbin HOMEDIR = $(etcdir)/iscsi DBROOT = $(etcdir)/iscsi +RULESDIR = $(etcdir)/udev/rules.d INSTALL = /usr/bin/install # pass these on to sub-Makefiles -export DESTDIR prefix INSTALL SBINDIR HOMEDIR DBROOT +export DESTDIR prefix INSTALL SBINDIR HOMEDIR DBROOT RULESDIR # Compatibility: parse old OPTFLAGS argument ifdef OPTFLAGS @@ -116,9 +117,6 @@ install_etc_all: install_doc: $(MAKE) $(MFLAGS) -C doc $@ -$(DESTDIR)$(HOMEDIR): - [ -d $@ ] || $(INSTALL) -d -m 755 $@ - install_libopeniscsiusr: $(MAKE) $(MFLAGS) -C libopeniscsiusr install diff --git a/etc/Makefile b/etc/Makefile index 84e0fa7..d065319 100644 --- a/etc/Makefile +++ b/etc/Makefile @@ -13,9 +13,9 @@ SBINDIR ?= /sbin ISCSI_INAME ?= $(TOPDIR)/utils/iscsi-iname -systemddir ?= $(DESTDIR)$(prefix)/lib/systemd +systemddir ?= $(prefix)/lib/systemd etcdir = /etc -initddir ?= $(DESTDIR)$(etcdir)/init.d +initddir ?= $(etcdir)/init.d HOMEDIR ?= $(etcdir)/iscsi @@ -29,9 +29,12 @@ SYSTEMD_TEMPLATE_FILES = iscsi-init.service.template \ iscsi.service.template \ iscsiuio.service.template SYSTEMD_TEMPLATES = $(addprefix systemd/,$(SYSTEMD_TEMPLATE_FILES)) +SYSTEMD_RULES_FILES = ibft-rule-generator +SYSTEMD_RULES_SOURCES = $(addprefix systemd/,$(SYSTEMD_RULES_FILES)) SYSTEMD_GENERATED_SERVICE_FILES = $(SYSTEMD_TEMPLATES:.template=) -SYSTEMD_DEST_FILES = $(addprefix $(systemddir)/system/,$(SYSTEMD_SOURCE_FILES)) \ - $(addprefix $(systemddir)/system/,$(notdir $(SYSTEMD_GENERATED_SERVICE_FILES))) +SYSTEMD_DEST_SVC_FILES = $(addprefix $(DESTDIR)$(systemddir)/system/,$(SYSTEMD_SOURCE_FILES)) \ + $(addprefix $(DESTDIR)$(systemddir)/system/,$(notdir $(SYSTEMD_GENERATED_SERVICE_FILES))) +SYSTEMD_DEST_GEN_FILES = $(addprefix $(DESTDIR)$(systemddir)/system-generators/,$(notdir $(SYSTEMD_RULES_SOURCES))) IFACE_FILES = iface.example IFACE_DEST_FILES = $(addprefix $(DESTDIR)$(DBROOT)/ifaces/,$(IFACE_FILES)) ETC_FILES = iscsid.conf @@ -56,24 +59,31 @@ install_etc: $(DESTDIR)$(HOMEDIR) $(ETC_DEST_FILES) $(ETC_DEST_FILES): $(DESTDIR)$(HOMEDIR)/%: % $(INSTALL) -m 644 $? $@ -install_initd_distro = $(INSTALL) -m 755 $(1) $(initddir)/open-iscsi/ +install_initd_distro = $(INSTALL) -m 755 $(1) $(DESTDIR)$(initddir)/open-iscsi/ -install_initd: $(initddir)/open-iscsi +install_initd: $(DESTDIR)$(initddir)/open-iscsi @if [ -f /etc/debian_version ]; then \ $(call install_initd_distro,initd/initd.redhat) ; \ elif [ -f /etc/redhat-release ]; then \ $(call install_initd_distro,initd/initd.debian) ; \ fi -install_initd_redhat: $(initddir)/open-iscsi +install_initd_redhat: $(DESTDIR)$(initddir)/open-iscsi $(call install_initd_distro,initd/initd.redhat) -install_initd_debian: $(initddir)/open-iscsi +install_initd_debian: $(DESTDIR)$(initddir)/open-iscsi $(call install_initd_distro,initd/initd.debian) -install_systemd: $(systemddir)/system $(SYSTEMD_DEST_FILES) +install_systemd: install_systemd_service_files install_systemd_generator_files -$(SYSTEMD_DEST_FILES): $(systemddir)/system/%: systemd/% +install_systemd_service_files: $(DESTDIR)$(systemddir)/system $(SYSTEMD_DEST_SVC_FILES) + +install_systemd_generator_files: $(DESTDIR)$(systemddir)/system-generators $(SYSTEMD_DEST_GEN_FILES) + +$(SYSTEMD_DEST_SVC_FILES): $(DESTDIR)$(systemddir)/system/%: systemd/% + $(INSTALL) $? $@ + +$(SYSTEMD_DEST_GEN_FILES): $(DESTDIR)$(systemddir)/system-generators/%: systemd/% $(INSTALL) $? $@ install_iname: $(DESTDIR)$(HOMEDIR) $(ISCSI_INAME) @@ -90,7 +100,8 @@ $(ISCSI_INAME): $(MAKE) $(MFLAGS) -c $(TOPDIR)/utils $(notdir $@) # make needed directories -$(systemddir)/system $(DESTDIR)$(HOMEDIR) $(DESTDIR)$(DBROOT)/ifaces $(initddir)/open-iscsi: +$(DESTDIR)$(systemddir)/system $(DESTDIR)$(systemddir)/system-generators $(DESTDIR)$(HOMEDIR) \ + $(DESTDIR)$(DBROOT)/ifaces $(DESTDIR)$(initddir)/open-iscsi: [ -d $@ ] || $(INSTALL) -d -m 775 $@ clean: diff --git a/etc/systemd/ibft-rule-generator b/etc/systemd/ibft-rule-generator new file mode 100644 index 0000000..038a4c2 --- /dev/null +++ b/etc/systemd/ibft-rule-generator @@ -0,0 +1,36 @@ +#!/bin/bash +# +# Systemd rule generator for ibft interfaces +# +# Copyright (c) 2022 Hannes Reinecke, SUSE Labs +# This script is licensed under the GPL. +# +# When booted with 'ip=ibft' dracut will rename the +# interface to 'ibft*'. After systemd has started +# it'll try to rename the interface yet again with +# a persistent name. +# But as the ibft interface is already renamed _and_ +# in use, the second renaming will fail and udev +# will complain. +# So add a dummy rule which signals udev the correct name +# +# Interface renaming happes at 80-net-setup-link.rules, +# so we need to hook in before that. +# +IBFT_RULE_DIR=/run/udev/rules.d +IBFT_RULES=$(IBFT_RULE_DIR)/79-ibft.rules + +# ensure we have a rules directory and no rules file +if [ -d ${IBFT_RULE_DIR} ] ; then + rm -f ${IBFT_RULES} 2> /dev/null +else + mkdir -p ${IBFT_RULE_DIR} +fi + +# create an iBFT udev rule for each iBFT NIC found +for d in /sys/firmware/ibft/ethernet* ; do + [ -d "$d" ] || break + num="${d##*/ethernet}" + read mac < $d/mac + printf 'SUBSYSTEM=="net", KERNEL=="ibft*", ACTION=="add", DRIVERS=="?*", ATTR{address}=="%s", ATTR{type}=="1", NAME="ibft%s"\n' "$mac" "$num" >> $IBFT_RULES +done diff --git a/libopeniscsiusr/Makefile b/libopeniscsiusr/Makefile index f6b5b5b..f96bf02 100644 --- a/libopeniscsiusr/Makefile +++ b/libopeniscsiusr/Makefile @@ -12,7 +12,7 @@ DESTDIR ?= prefix ?= /usr INSTALL ?= install exec_prefix = -etcdir = $(DESTDIR)/etc +etcdir = /etc SBINDIR ?= $(exec_prefix)/sbin DBROOT ?= $(etcdir)/iscsi @@ -26,6 +26,7 @@ endif INCLUDE_DIR ?= $(prefix)/include PKGCONF_DIR ?= $(LIB_DIR)/pkgconfig +MAN_DIR = $(prefix)/share/man PKG_CONFIG = /usr/bin/pkg-config SED = /usr/bin/sed @@ -62,7 +63,6 @@ LIBADD = all: $(LIBS) $(LIBS_MAJOR) $(TESTS) doc $(LIBS): $(OBJS) - @echo CFLAGS= $(CFLAGS) $(CC) $(CFLAGS) -shared -Wl,-soname=$@ -o $@ $(OBJS) $(LDFLAGS) $(LIBADD) ln -sf $@ $(DEVLIB) @@ -81,13 +81,21 @@ check: $(LIBS) $(TESTS) sudo env LD_LIBRARY_PATH=$(LIBISCSI_USR_DIR) TESTS="$(TESTS)" \ tests/runtest.sh || exit 1; -install: $(LIBS) $(LIBS_MAJOR) - $(INSTALL) -d $(DESTDIR)/$(LIB_DIR)/ - $(INSTALL) -d $(DESTDIR)/$(INCLUDE_DIR)/ +install: install_libs install_docs install_pkg_files + +install_libs: $(LIBS) $(LIBS_MAJOR) + $(INSTALL) -d $(DESTDIR)$(LIB_DIR)/ + $(INSTALL) -d $(DESTDIR)$(INCLUDE_DIR)/ $(INSTALL) $(LIBS) $(DESTDIR)$(LIB_DIR)/ - ln -sf $(LIBS) $(DESTDIR)/$(LIB_DIR)/$(DEVLIB) - ln -sf $(LIBS) $(DESTDIR)/$(LIB_DIR)/$(LIBS_MAJOR) - $(INSTALL) $(HEADERS) $(DESTDIR)$(INCLUDE_DIR)/ + ln -sf $(LIBS) $(DESTDIR)$(LIB_DIR)/$(DEVLIB) + ln -sf $(LIBS) $(DESTDIR)$(LIB_DIR)/$(LIBS_MAJOR) + $(INSTALL) -m 644 $(HEADERS) $(DESTDIR)$(INCLUDE_DIR)/ + +install_docs: doc + $(INSTALL) -d $(DESTDIR)$(MAN_DIR)/man3 + $(INSTALL) -m 644 docs/man/*.gz $(DESTDIR)$(MAN_DIR)/man3/ + +install_pkg_files: $(INSTALL) -m 644 -D $(PKGFILE).in $(DESTDIR)$(PKGCONF_DIR)/$(PKGFILE) perl -i -pe 's|__VERSION__|$(LIBNVME_VERSION)|g' \ $(DESTDIR)$(PKGCONF_DIR)/$(PKGFILE) diff --git a/usr/Makefile b/usr/Makefile index 41afa63..8f91ee1 100644 --- a/usr/Makefile +++ b/usr/Makefile @@ -48,6 +48,7 @@ WARNFLAGS ?= -Wall -Wextra -Werror -Wstrict-prototypes -fno-common CFLAGS += $(WARNFLAGS) -I../include -I. -D_GNU_SOURCE \ -I$(TOPDIR)/libopeniscsiusr CFLAGS += $(shell $(PKG_CONFIG) --cflags libkmod) +CFLAGS += $(shell $(PKG_CONFIG) --cflags libsystemd) ISCSI_LIB = -L$(TOPDIR)/libopeniscsiusr -lopeniscsiusr LDFLAGS += $(shell $(PKG_CONFIG) --libs libkmod) ifeq ($(NO_SYSTEMD),) diff --git a/utils/Makefile b/utils/Makefile index 01f7e0b..e32b4e6 100644 --- a/utils/Makefile +++ b/utils/Makefile @@ -16,8 +16,7 @@ SBINDIR ?= /sbin etcdir = /etc HOMEDIR ?= $(etcdir)/iscsi -ETCDIR = /etc -RULESDIR = $(ETCDIR)/udev/rules.d +RULESDIR ?= $(etcdir)/udev/rules.d CFLAGS ?= -O2 -fno-inline -g CFLAGS += -Wall -Wextra -Wstrict-prototypes |