From 3e46db5a7df18c918463a7549b01db39a372cc3c Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Tue, 15 Mar 2022 19:29:48 +0100 Subject: [PATCH] nvmf-autoconnect: Honor sysconfdir, sbindir and bindir The autoconnect files use hard coded paths for the config files and the binaries. Make these configurable. Not all files need to run through the configure_files step but for consistenty sake, let's treat all the same. Signed-off-by: Daniel Wagner --- meson.build | 74 +++++++++++++++---- ...ice => nvmefc-boot-connections.service.in} | 0 ...ct.service => nvmf-autoconnect.service.in} | 4 +- ...-connect.target => nvmf-connect.target.in} | 0 ...nect@.service => nvmf-connect@.service.in} | 2 +- ...ect.rules => 70-nvmf-autoconnect.rules.in} | 0 ...rules => 71-nvmf-iopolicy-netapp.rules.in} | 0 7 files changed, 61 insertions(+), 19 deletions(-) rename nvmf-autoconnect/systemd/{nvmefc-boot-connections.service => nvmefc-boot-connections.service.in} (100%) rename nvmf-autoconnect/systemd/{nvmf-autoconnect.service => nvmf-autoconnect.service.in} (71%) rename nvmf-autoconnect/systemd/{nvmf-connect.target => nvmf-connect.target.in} (100%) rename nvmf-autoconnect/systemd/{nvmf-connect@.service => nvmf-connect@.service.in} (74%) rename nvmf-autoconnect/udev-rules/{70-nvmf-autoconnect.rules => 70-nvmf-autoconnect.rules.in} (100%) rename nvmf-autoconnect/udev-rules/{71-nvmf-iopolicy-netapp.rules => 71-nvmf-iopolicy-netapp.rules.in} (100%) diff --git a/meson.build b/meson.build index b18eedb5..84b07c36 100644 --- a/meson.build +++ b/meson.build @@ -163,23 +163,62 @@ substs.set('LICENSE', meson.project_license()[0]) substs.set('UDEVRULESDIR', udevrulesdir) substs.set('DRACUTRILESDIR', dracutrulesdir) substs.set('REQUIRES', requires) +substs.set('BINDIR', bindir) +substs.set('SBINDIR', sbindir) +substs.set('SYSCONFDIR', sysconfdir) configure_file( input: 'nvme.spec.in', output: 'nvme.spec', configuration: substs, ) -configure_file( - input: 'nvmf-autoconnect/dracut-conf/70-nvmf-autoconnect.conf.in', - output: '70-nvmf-autoconnect.conf', - configuration: substs, -) + disc = configure_file( input: 'etc/discovery.conf.in', output: 'discovery.conf', configuration: substs, ) +dracut_files = [ + '70-nvmf-autoconnect.conf', +] + +foreach file : dracut_files + configure_file( + input: 'nvmf-autoconnect/dracut-conf/' + file + '.in', + output: file, + configuration: substs, + ) +endforeach + +systemd_files = [ + 'nvmefc-boot-connections.service', + 'nvmf-autoconnect.service', + 'nvmf-connect.target', + 'nvmf-connect@.service', +] + +foreach file : systemd_files + configure_file( + input: 'nvmf-autoconnect/systemd/' + file + '.in', + output: file, + configuration: substs, + ) +endforeach + +udev_files = [ + '70-nvmf-autoconnect.rules', + '71-nvmf-iopolicy-netapp.rules', +] + +foreach file : udev_files + configure_file( + input: 'nvmf-autoconnect/udev-rules/' + file + '.in', + output: file, + configuration: substs, + ) +endforeach + ################################################################################ add_project_arguments(['-fomit-frame-pointer', '-D_GNU_SOURCE', '-include', 'config.h'], language : 'c') @@ -212,22 +251,25 @@ executable( ) ################################################################################ -install_data(meson.current_build_dir() + '/70-nvmf-autoconnect.conf', - install_dir: dracutrulesdir) - install_data('completions/bash-nvme-completion.sh', install_dir: datadir + '/bash-completion/completions/nvme') install_data('completions/_nvme', install_dir: datadir + '/zsh/site-functions') -install_data(['nvmf-autoconnect/systemd/nvmefc-boot-connections.service', - 'nvmf-autoconnect/systemd/nvmf-autoconnect.service', - 'nvmf-autoconnect/systemd/nvmf-connect@.service', - 'nvmf-autoconnect/systemd/nvmf-connect.target'], - install_dir: systemddir) +foreach file : dracut_files + install_data(meson.current_build_dir() + '/' + file, + install_dir: dracutrulesdir) +endforeach + +foreach file : systemd_files + install_data(meson.current_build_dir() + '/' + file, + install_dir: systemddir) +endforeach + +foreach file : udev_files + install_data(meson.current_build_dir() + '/' + file, + install_dir: udevrulesdir) +endforeach -install_data(['nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules', - 'nvmf-autoconnect/udev-rules/71-nvmf-iopolicy-netapp.rules'], - install_dir: udevrulesdir) install_data(disc, install_dir: join_paths(sysconfdir, 'nvme')) diff --git a/nvmf-autoconnect/systemd/nvmefc-boot-connections.service b/nvmf-autoconnect/systemd/nvmefc-boot-connections.service.in similarity index 100% rename from nvmf-autoconnect/systemd/nvmefc-boot-connections.service rename to nvmf-autoconnect/systemd/nvmefc-boot-connections.service.in diff --git a/nvmf-autoconnect/systemd/nvmf-autoconnect.service b/nvmf-autoconnect/systemd/nvmf-autoconnect.service.in similarity index 71% rename from nvmf-autoconnect/systemd/nvmf-autoconnect.service rename to nvmf-autoconnect/systemd/nvmf-autoconnect.service.in index b1be272b..d83d9a1a 100644 --- a/nvmf-autoconnect/systemd/nvmf-autoconnect.service +++ b/nvmf-autoconnect/systemd/nvmf-autoconnect.service.in @@ -1,13 +1,13 @@ [Unit] Description=Connect NVMe-oF subsystems automatically during boot -ConditionPathExists=/etc/nvme/discovery.conf +ConditionPathExists=@SYSCONFDIR@/nvme/discovery.conf After=network-online.target Before=remote-fs-pre.target [Service] Type=oneshot ExecStartPre=/sbin/modprobe nvme-fabrics -ExecStart=/usr/sbin/nvme connect-all +ExecStart=@SBINDIR@/nvme connect-all [Install] WantedBy=default.target diff --git a/nvmf-autoconnect/systemd/nvmf-connect.target b/nvmf-autoconnect/systemd/nvmf-connect.target.in similarity index 100% rename from nvmf-autoconnect/systemd/nvmf-connect.target rename to nvmf-autoconnect/systemd/nvmf-connect.target.in diff --git a/nvmf-autoconnect/systemd/nvmf-connect@.service b/nvmf-autoconnect/systemd/nvmf-connect@.service.in similarity index 74% rename from nvmf-autoconnect/systemd/nvmf-connect@.service rename to nvmf-autoconnect/systemd/nvmf-connect@.service.in index c60f146e..90f774c5 100644 --- a/nvmf-autoconnect/systemd/nvmf-connect@.service +++ b/nvmf-autoconnect/systemd/nvmf-connect@.service.in @@ -11,4 +11,4 @@ Requires=nvmf-connect.target [Service] Type=simple Environment="CONNECT_ARGS=%i" -ExecStart=/bin/sh -c "nvme connect-all --quiet `/bin/echo -e '${CONNECT_ARGS}'`" +ExecStart=/bin/sh -c "@SBINDIR@/nvme connect-all --quiet `/bin/echo -e '${CONNECT_ARGS}'`" diff --git a/nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules b/nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules.in similarity index 100% rename from nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules rename to nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules.in diff --git a/nvmf-autoconnect/udev-rules/71-nvmf-iopolicy-netapp.rules b/nvmf-autoconnect/udev-rules/71-nvmf-iopolicy-netapp.rules.in similarity index 100% rename from nvmf-autoconnect/udev-rules/71-nvmf-iopolicy-netapp.rules rename to nvmf-autoconnect/udev-rules/71-nvmf-iopolicy-netapp.rules.in -- 2.50.1