]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
nvmf-autoconnect: Honor sysconfdir, sbindir and bindir
authorDaniel Wagner <dwagner@suse.de>
Tue, 15 Mar 2022 18:29:48 +0000 (19:29 +0100)
committerDaniel Wagner <dwagner@suse.de>
Wed, 16 Mar 2022 10:35:40 +0000 (11:35 +0100)
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 <dwagner@suse.de>
meson.build
nvmf-autoconnect/systemd/nvmefc-boot-connections.service.in [moved from nvmf-autoconnect/systemd/nvmefc-boot-connections.service with 100% similarity]
nvmf-autoconnect/systemd/nvmf-autoconnect.service.in [moved from nvmf-autoconnect/systemd/nvmf-autoconnect.service with 71% similarity]
nvmf-autoconnect/systemd/nvmf-connect.target.in [moved from nvmf-autoconnect/systemd/nvmf-connect.target with 100% similarity]
nvmf-autoconnect/systemd/nvmf-connect@.service.in [moved from nvmf-autoconnect/systemd/nvmf-connect@.service with 74% similarity]
nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules.in [moved from nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules with 100% similarity]
nvmf-autoconnect/udev-rules/71-nvmf-iopolicy-netapp.rules.in [moved from nvmf-autoconnect/udev-rules/71-nvmf-iopolicy-netapp.rules with 100% similarity]

index b18eedb58288d11078923ec9ff90814b3aed95c6..84b07c36dbfc5cba8e620d58dcc5ae64d2579c0f 100644 (file)
@@ -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'))
similarity index 71%
rename from nvmf-autoconnect/systemd/nvmf-autoconnect.service
rename to nvmf-autoconnect/systemd/nvmf-autoconnect.service.in
index b1be272b6a5cfdfdd7cc2ee1791bdee5ade551d1..d83d9a1ad018761f018282c8b4c6fe6330057ea7 100644 (file)
@@ -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
similarity index 74%
rename from nvmf-autoconnect/systemd/nvmf-connect@.service
rename to nvmf-autoconnect/systemd/nvmf-connect@.service.in
index c60f146e990c1046bcc31a95d294a0c7c257e83f..90f774c55aec96dc9a5febd8ffe0758a7193607b 100644 (file)
@@ -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}'`"