2021-07-12 14:07:11

by James Hilliard

[permalink] [raw]
Subject: [PATCH 1/1] Fix non-default statedir paths.

Signed-off-by: James Hilliard <[email protected]>
---
configure.ac | 19 +++++++++++++++++++
systemd/Makefile.am | 5 ++++-
systemd/rpc-pipefs-generator.c | 2 +-
systemd/rpc_pipefs.target | 3 ---
systemd/rpc_pipefs.target.in | 3 +++
....mount => var-lib-nfs-rpc_pipefs.mount.in} | 2 +-
utils/blkmapd/device-discovery.c | 2 +-
utils/gssd/gssd.h | 2 +-
utils/idmapd/idmapd.c | 2 +-
9 files changed, 31 insertions(+), 9 deletions(-)
delete mode 100644 systemd/rpc_pipefs.target
create mode 100644 systemd/rpc_pipefs.target.in
rename systemd/{var-lib-nfs-rpc_pipefs.mount => var-lib-nfs-rpc_pipefs.mount.in} (84%)

diff --git a/configure.ac b/configure.ac
index 93520a80..bc2d0f02 100644
--- a/configure.ac
+++ b/configure.ac
@@ -688,9 +688,28 @@ AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"])
AC_SUBST([_sysconfdir])
AC_CONFIG_COMMANDS_PRE([eval eval _sysconfdir=$sysconfdir])

+# make _statedir available for substituion in config files
+# 2 "evals" needed late to expand variable names.
+AC_SUBST([_statedir])
+AC_CONFIG_COMMANDS_PRE([eval eval _statedir=$statedir])
+
+if test "$statedir" = "/var/lib/nfs"; then
+ rpc_pipefsmount="var-lib-nfs-rpc_pipefs.mount"
+else
+ rpc_pipefsmount="$(systemd-escape -p "$statedir/rpc_pipefs").mount"
+fi
+AC_SUBST(rpc_pipefsmount)
+
+# make _rpc_pipefsmount available for substituion in config files
+# 2 "evals" needed late to expand variable names.
+AC_SUBST([_rpc_pipefsmount])
+AC_CONFIG_COMMANDS_PRE([eval eval _rpc_pipefsmount=$rpc_pipefsmount])
+
AC_CONFIG_FILES([
Makefile
systemd/rpc-gssd.service
+ systemd/rpc_pipefs.target
+ systemd/var-lib-nfs-rpc_pipefs.mount
linux-nfs/Makefile
support/Makefile
support/export/Makefile
diff --git a/systemd/Makefile.am b/systemd/Makefile.am
index 650ad25c..8c7b676f 100644
--- a/systemd/Makefile.am
+++ b/systemd/Makefile.am
@@ -12,7 +12,9 @@ unit_files = \
rpc-statd-notify.service \
rpc-statd.service \
\
- proc-fs-nfsd.mount \
+ proc-fs-nfsd.mount
+
+rpc_pipefs_mount_file = \
var-lib-nfs-rpc_pipefs.mount

if CONFIG_NFSV4
@@ -75,4 +77,5 @@ genexec_PROGRAMS = nfs-server-generator rpc-pipefs-generator
install-data-hook: $(unit_files)
mkdir -p $(DESTDIR)/$(unitdir)
cp $(unit_files) $(DESTDIR)/$(unitdir)
+ cp $(rpc_pipefs_mount_file) $(DESTDIR)/$(unitdir)/$(rpc_pipefsmount)
endif
diff --git a/systemd/rpc-pipefs-generator.c b/systemd/rpc-pipefs-generator.c
index 8e218aa7..c24db567 100644
--- a/systemd/rpc-pipefs-generator.c
+++ b/systemd/rpc-pipefs-generator.c
@@ -21,7 +21,7 @@
#include "conffile.h"
#include "systemd.h"

-#define RPC_PIPEFS_DEFAULT "/var/lib/nfs/rpc_pipefs"
+#define RPC_PIPEFS_DEFAULT NFS_STATEDIR "/rpc_pipefs"

static int generate_mount_unit(const char *pipefs_path, const char *pipefs_unit,
const char *dirname)
diff --git a/systemd/rpc_pipefs.target b/systemd/rpc_pipefs.target
deleted file mode 100644
index 01d4d278..00000000
--- a/systemd/rpc_pipefs.target
+++ /dev/null
@@ -1,3 +0,0 @@
-[Unit]
-Requires=var-lib-nfs-rpc_pipefs.mount
-After=var-lib-nfs-rpc_pipefs.mount
diff --git a/systemd/rpc_pipefs.target.in b/systemd/rpc_pipefs.target.in
new file mode 100644
index 00000000..332f62b6
--- /dev/null
+++ b/systemd/rpc_pipefs.target.in
@@ -0,0 +1,3 @@
+[Unit]
+Requires=@_rpc_pipefsmount@
+After=@_rpc_pipefsmount@
diff --git a/systemd/var-lib-nfs-rpc_pipefs.mount b/systemd/var-lib-nfs-rpc_pipefs.mount.in
similarity index 84%
rename from systemd/var-lib-nfs-rpc_pipefs.mount
rename to systemd/var-lib-nfs-rpc_pipefs.mount.in
index 26d1c763..4c5d6ce4 100644
--- a/systemd/var-lib-nfs-rpc_pipefs.mount
+++ b/systemd/var-lib-nfs-rpc_pipefs.mount.in
@@ -6,5 +6,5 @@ Conflicts=umount.target

[Mount]
What=sunrpc
-Where=/var/lib/nfs/rpc_pipefs
+Where=@_statedir@/rpc_pipefs
Type=rpc_pipefs
diff --git a/utils/blkmapd/device-discovery.c b/utils/blkmapd/device-discovery.c
index 77ebe736..2736ac89 100644
--- a/utils/blkmapd/device-discovery.c
+++ b/utils/blkmapd/device-discovery.c
@@ -63,7 +63,7 @@
#define EVENT_SIZE (sizeof(struct inotify_event))
#define EVENT_BUFSIZE (1024 * EVENT_SIZE)

-#define RPCPIPE_DIR "/var/lib/nfs/rpc_pipefs"
+#define RPCPIPE_DIR NFS_STATEDIR "/rpc_pipefs"
#define PID_FILE "/run/blkmapd.pid"

#define CONF_SAVE(w, f) do { \
diff --git a/utils/gssd/gssd.h b/utils/gssd/gssd.h
index c52c5b48..519dc431 100644
--- a/utils/gssd/gssd.h
+++ b/utils/gssd/gssd.h
@@ -39,7 +39,7 @@
#include <pthread.h>

#ifndef GSSD_PIPEFS_DIR
-#define GSSD_PIPEFS_DIR "/var/lib/nfs/rpc_pipefs"
+#define GSSD_PIPEFS_DIR NFS_STATEDIR "/rpc_pipefs"
#endif
#define DNOTIFY_SIGNAL (SIGRTMIN + 3)

diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c
index 51c71fbb..e2c160e8 100644
--- a/utils/idmapd/idmapd.c
+++ b/utils/idmapd/idmapd.c
@@ -73,7 +73,7 @@
#include "nfslib.h"

#ifndef PIPEFS_DIR
-#define PIPEFS_DIR "/var/lib/nfs/rpc_pipefs/"
+#define PIPEFS_DIR NFS_STATEDIR "/rpc_pipefs/"
#endif

#ifndef NFSD_DIR
--
2.25.1


2021-07-25 16:12:14

by Steve Dickson

[permalink] [raw]
Subject: Re: [PATCH 1/1] Fix non-default statedir paths.

Hello,

My apologies for taking so long to look as this
patch...

What problem are you solving with this patch?
Your patch description is a bit light. ;-)

steved.
On 7/12/21 10:06 AM, James Hilliard wrote:
> Signed-off-by: James Hilliard <[email protected]>
> ---
> configure.ac | 19 +++++++++++++++++++
> systemd/Makefile.am | 5 ++++-
> systemd/rpc-pipefs-generator.c | 2 +-
> systemd/rpc_pipefs.target | 3 ---
> systemd/rpc_pipefs.target.in | 3 +++
> ....mount => var-lib-nfs-rpc_pipefs.mount.in} | 2 +-
> utils/blkmapd/device-discovery.c | 2 +-
> utils/gssd/gssd.h | 2 +-
> utils/idmapd/idmapd.c | 2 +-
> 9 files changed, 31 insertions(+), 9 deletions(-)
> delete mode 100644 systemd/rpc_pipefs.target
> create mode 100644 systemd/rpc_pipefs.target.in
> rename systemd/{var-lib-nfs-rpc_pipefs.mount => var-lib-nfs-rpc_pipefs.mount.in} (84%)
>
> diff --git a/configure.ac b/configure.ac
> index 93520a80..bc2d0f02 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -688,9 +688,28 @@ AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"])
> AC_SUBST([_sysconfdir])
> AC_CONFIG_COMMANDS_PRE([eval eval _sysconfdir=$sysconfdir])
>
> +# make _statedir available for substituion in config files
> +# 2 "evals" needed late to expand variable names.
> +AC_SUBST([_statedir])
> +AC_CONFIG_COMMANDS_PRE([eval eval _statedir=$statedir])
> +
> +if test "$statedir" = "/var/lib/nfs"; then
> + rpc_pipefsmount="var-lib-nfs-rpc_pipefs.mount"
> +else
> + rpc_pipefsmount="$(systemd-escape -p "$statedir/rpc_pipefs").mount"
> +fi
> +AC_SUBST(rpc_pipefsmount)
> +
> +# make _rpc_pipefsmount available for substituion in config files
> +# 2 "evals" needed late to expand variable names.
> +AC_SUBST([_rpc_pipefsmount])
> +AC_CONFIG_COMMANDS_PRE([eval eval _rpc_pipefsmount=$rpc_pipefsmount])
> +
> AC_CONFIG_FILES([
> Makefile
> systemd/rpc-gssd.service
> + systemd/rpc_pipefs.target
> + systemd/var-lib-nfs-rpc_pipefs.mount
> linux-nfs/Makefile
> support/Makefile
> support/export/Makefile
> diff --git a/systemd/Makefile.am b/systemd/Makefile.am
> index 650ad25c..8c7b676f 100644
> --- a/systemd/Makefile.am
> +++ b/systemd/Makefile.am
> @@ -12,7 +12,9 @@ unit_files = \
> rpc-statd-notify.service \
> rpc-statd.service \
> \
> - proc-fs-nfsd.mount \
> + proc-fs-nfsd.mount
> +
> +rpc_pipefs_mount_file = \
> var-lib-nfs-rpc_pipefs.mount
>
> if CONFIG_NFSV4
> @@ -75,4 +77,5 @@ genexec_PROGRAMS = nfs-server-generator rpc-pipefs-generator
> install-data-hook: $(unit_files)
> mkdir -p $(DESTDIR)/$(unitdir)
> cp $(unit_files) $(DESTDIR)/$(unitdir)
> + cp $(rpc_pipefs_mount_file) $(DESTDIR)/$(unitdir)/$(rpc_pipefsmount)
> endif
> diff --git a/systemd/rpc-pipefs-generator.c b/systemd/rpc-pipefs-generator.c
> index 8e218aa7..c24db567 100644
> --- a/systemd/rpc-pipefs-generator.c
> +++ b/systemd/rpc-pipefs-generator.c
> @@ -21,7 +21,7 @@
> #include "conffile.h"
> #include "systemd.h"
>
> -#define RPC_PIPEFS_DEFAULT "/var/lib/nfs/rpc_pipefs"
> +#define RPC_PIPEFS_DEFAULT NFS_STATEDIR "/rpc_pipefs"
>
> static int generate_mount_unit(const char *pipefs_path, const char *pipefs_unit,
> const char *dirname)
> diff --git a/systemd/rpc_pipefs.target b/systemd/rpc_pipefs.target
> deleted file mode 100644
> index 01d4d278..00000000
> --- a/systemd/rpc_pipefs.target
> +++ /dev/null
> @@ -1,3 +0,0 @@
> -[Unit]
> -Requires=var-lib-nfs-rpc_pipefs.mount
> -After=var-lib-nfs-rpc_pipefs.mount
> diff --git a/systemd/rpc_pipefs.target.in b/systemd/rpc_pipefs.target.in
> new file mode 100644
> index 00000000..332f62b6
> --- /dev/null
> +++ b/systemd/rpc_pipefs.target.in
> @@ -0,0 +1,3 @@
> +[Unit]
> +Requires=@_rpc_pipefsmount@
> +After=@_rpc_pipefsmount@
> diff --git a/systemd/var-lib-nfs-rpc_pipefs.mount b/systemd/var-lib-nfs-rpc_pipefs.mount.in
> similarity index 84%
> rename from systemd/var-lib-nfs-rpc_pipefs.mount
> rename to systemd/var-lib-nfs-rpc_pipefs.mount.in
> index 26d1c763..4c5d6ce4 100644
> --- a/systemd/var-lib-nfs-rpc_pipefs.mount
> +++ b/systemd/var-lib-nfs-rpc_pipefs.mount.in
> @@ -6,5 +6,5 @@ Conflicts=umount.target
>
> [Mount]
> What=sunrpc
> -Where=/var/lib/nfs/rpc_pipefs
> +Where=@_statedir@/rpc_pipefs
> Type=rpc_pipefs
> diff --git a/utils/blkmapd/device-discovery.c b/utils/blkmapd/device-discovery.c
> index 77ebe736..2736ac89 100644
> --- a/utils/blkmapd/device-discovery.c
> +++ b/utils/blkmapd/device-discovery.c
> @@ -63,7 +63,7 @@
> #define EVENT_SIZE (sizeof(struct inotify_event))
> #define EVENT_BUFSIZE (1024 * EVENT_SIZE)
>
> -#define RPCPIPE_DIR "/var/lib/nfs/rpc_pipefs"
> +#define RPCPIPE_DIR NFS_STATEDIR "/rpc_pipefs"
> #define PID_FILE "/run/blkmapd.pid"
>
> #define CONF_SAVE(w, f) do { \
> diff --git a/utils/gssd/gssd.h b/utils/gssd/gssd.h
> index c52c5b48..519dc431 100644
> --- a/utils/gssd/gssd.h
> +++ b/utils/gssd/gssd.h
> @@ -39,7 +39,7 @@
> #include <pthread.h>
>
> #ifndef GSSD_PIPEFS_DIR
> -#define GSSD_PIPEFS_DIR "/var/lib/nfs/rpc_pipefs"
> +#define GSSD_PIPEFS_DIR NFS_STATEDIR "/rpc_pipefs"
> #endif
> #define DNOTIFY_SIGNAL (SIGRTMIN + 3)
>
> diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c
> index 51c71fbb..e2c160e8 100644
> --- a/utils/idmapd/idmapd.c
> +++ b/utils/idmapd/idmapd.c
> @@ -73,7 +73,7 @@
> #include "nfslib.h"
>
> #ifndef PIPEFS_DIR
> -#define PIPEFS_DIR "/var/lib/nfs/rpc_pipefs/"
> +#define PIPEFS_DIR NFS_STATEDIR "/rpc_pipefs/"
> #endif
>
> #ifndef NFSD_DIR
>

2021-07-25 20:32:28

by James Hilliard

[permalink] [raw]
Subject: Re: [PATCH 1/1] Fix non-default statedir paths.

On Sun, Jul 25, 2021 at 10:10 AM Steve Dickson <[email protected]> wrote:
>
> Hello,
>
> My apologies for taking so long to look as this
> patch...
>
> What problem are you solving with this patch?

The statedir path not being set everywhere needed, see:
https://github.com/clearlinux/distribution/issues/2249
https://github.com/clearlinux-pkgs/nfs-utils/commit/6c97e55ef83c1420e7d791c857ad94f2e8c27528

> Your patch description is a bit light. ;-)
>
> steved.
> On 7/12/21 10:06 AM, James Hilliard wrote:
> > Signed-off-by: James Hilliard <[email protected]>
> > ---
> > configure.ac | 19 +++++++++++++++++++
> > systemd/Makefile.am | 5 ++++-
> > systemd/rpc-pipefs-generator.c | 2 +-
> > systemd/rpc_pipefs.target | 3 ---
> > systemd/rpc_pipefs.target.in | 3 +++
> > ....mount => var-lib-nfs-rpc_pipefs.mount.in} | 2 +-
> > utils/blkmapd/device-discovery.c | 2 +-
> > utils/gssd/gssd.h | 2 +-
> > utils/idmapd/idmapd.c | 2 +-
> > 9 files changed, 31 insertions(+), 9 deletions(-)
> > delete mode 100644 systemd/rpc_pipefs.target
> > create mode 100644 systemd/rpc_pipefs.target.in
> > rename systemd/{var-lib-nfs-rpc_pipefs.mount => var-lib-nfs-rpc_pipefs.mount.in} (84%)
> >
> > diff --git a/configure.ac b/configure.ac
> > index 93520a80..bc2d0f02 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -688,9 +688,28 @@ AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"])
> > AC_SUBST([_sysconfdir])
> > AC_CONFIG_COMMANDS_PRE([eval eval _sysconfdir=$sysconfdir])
> >
> > +# make _statedir available for substituion in config files
> > +# 2 "evals" needed late to expand variable names.
> > +AC_SUBST([_statedir])
> > +AC_CONFIG_COMMANDS_PRE([eval eval _statedir=$statedir])
> > +
> > +if test "$statedir" = "/var/lib/nfs"; then
> > + rpc_pipefsmount="var-lib-nfs-rpc_pipefs.mount"
> > +else
> > + rpc_pipefsmount="$(systemd-escape -p "$statedir/rpc_pipefs").mount"
> > +fi
> > +AC_SUBST(rpc_pipefsmount)
> > +
> > +# make _rpc_pipefsmount available for substituion in config files
> > +# 2 "evals" needed late to expand variable names.
> > +AC_SUBST([_rpc_pipefsmount])
> > +AC_CONFIG_COMMANDS_PRE([eval eval _rpc_pipefsmount=$rpc_pipefsmount])
> > +
> > AC_CONFIG_FILES([
> > Makefile
> > systemd/rpc-gssd.service
> > + systemd/rpc_pipefs.target
> > + systemd/var-lib-nfs-rpc_pipefs.mount
> > linux-nfs/Makefile
> > support/Makefile
> > support/export/Makefile
> > diff --git a/systemd/Makefile.am b/systemd/Makefile.am
> > index 650ad25c..8c7b676f 100644
> > --- a/systemd/Makefile.am
> > +++ b/systemd/Makefile.am
> > @@ -12,7 +12,9 @@ unit_files = \
> > rpc-statd-notify.service \
> > rpc-statd.service \
> > \
> > - proc-fs-nfsd.mount \
> > + proc-fs-nfsd.mount
> > +
> > +rpc_pipefs_mount_file = \
> > var-lib-nfs-rpc_pipefs.mount
> >
> > if CONFIG_NFSV4
> > @@ -75,4 +77,5 @@ genexec_PROGRAMS = nfs-server-generator rpc-pipefs-generator
> > install-data-hook: $(unit_files)
> > mkdir -p $(DESTDIR)/$(unitdir)
> > cp $(unit_files) $(DESTDIR)/$(unitdir)
> > + cp $(rpc_pipefs_mount_file) $(DESTDIR)/$(unitdir)/$(rpc_pipefsmount)
> > endif
> > diff --git a/systemd/rpc-pipefs-generator.c b/systemd/rpc-pipefs-generator.c
> > index 8e218aa7..c24db567 100644
> > --- a/systemd/rpc-pipefs-generator.c
> > +++ b/systemd/rpc-pipefs-generator.c
> > @@ -21,7 +21,7 @@
> > #include "conffile.h"
> > #include "systemd.h"
> >
> > -#define RPC_PIPEFS_DEFAULT "/var/lib/nfs/rpc_pipefs"
> > +#define RPC_PIPEFS_DEFAULT NFS_STATEDIR "/rpc_pipefs"
> >
> > static int generate_mount_unit(const char *pipefs_path, const char *pipefs_unit,
> > const char *dirname)
> > diff --git a/systemd/rpc_pipefs.target b/systemd/rpc_pipefs.target
> > deleted file mode 100644
> > index 01d4d278..00000000
> > --- a/systemd/rpc_pipefs.target
> > +++ /dev/null
> > @@ -1,3 +0,0 @@
> > -[Unit]
> > -Requires=var-lib-nfs-rpc_pipefs.mount
> > -After=var-lib-nfs-rpc_pipefs.mount
> > diff --git a/systemd/rpc_pipefs.target.in b/systemd/rpc_pipefs.target.in
> > new file mode 100644
> > index 00000000..332f62b6
> > --- /dev/null
> > +++ b/systemd/rpc_pipefs.target.in
> > @@ -0,0 +1,3 @@
> > +[Unit]
> > +Requires=@_rpc_pipefsmount@
> > +After=@_rpc_pipefsmount@
> > diff --git a/systemd/var-lib-nfs-rpc_pipefs.mount b/systemd/var-lib-nfs-rpc_pipefs.mount.in
> > similarity index 84%
> > rename from systemd/var-lib-nfs-rpc_pipefs.mount
> > rename to systemd/var-lib-nfs-rpc_pipefs.mount.in
> > index 26d1c763..4c5d6ce4 100644
> > --- a/systemd/var-lib-nfs-rpc_pipefs.mount
> > +++ b/systemd/var-lib-nfs-rpc_pipefs.mount.in
> > @@ -6,5 +6,5 @@ Conflicts=umount.target
> >
> > [Mount]
> > What=sunrpc
> > -Where=/var/lib/nfs/rpc_pipefs
> > +Where=@_statedir@/rpc_pipefs
> > Type=rpc_pipefs
> > diff --git a/utils/blkmapd/device-discovery.c b/utils/blkmapd/device-discovery.c
> > index 77ebe736..2736ac89 100644
> > --- a/utils/blkmapd/device-discovery.c
> > +++ b/utils/blkmapd/device-discovery.c
> > @@ -63,7 +63,7 @@
> > #define EVENT_SIZE (sizeof(struct inotify_event))
> > #define EVENT_BUFSIZE (1024 * EVENT_SIZE)
> >
> > -#define RPCPIPE_DIR "/var/lib/nfs/rpc_pipefs"
> > +#define RPCPIPE_DIR NFS_STATEDIR "/rpc_pipefs"
> > #define PID_FILE "/run/blkmapd.pid"
> >
> > #define CONF_SAVE(w, f) do { \
> > diff --git a/utils/gssd/gssd.h b/utils/gssd/gssd.h
> > index c52c5b48..519dc431 100644
> > --- a/utils/gssd/gssd.h
> > +++ b/utils/gssd/gssd.h
> > @@ -39,7 +39,7 @@
> > #include <pthread.h>
> >
> > #ifndef GSSD_PIPEFS_DIR
> > -#define GSSD_PIPEFS_DIR "/var/lib/nfs/rpc_pipefs"
> > +#define GSSD_PIPEFS_DIR NFS_STATEDIR "/rpc_pipefs"
> > #endif
> > #define DNOTIFY_SIGNAL (SIGRTMIN + 3)
> >
> > diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c
> > index 51c71fbb..e2c160e8 100644
> > --- a/utils/idmapd/idmapd.c
> > +++ b/utils/idmapd/idmapd.c
> > @@ -73,7 +73,7 @@
> > #include "nfslib.h"
> >
> > #ifndef PIPEFS_DIR
> > -#define PIPEFS_DIR "/var/lib/nfs/rpc_pipefs/"
> > +#define PIPEFS_DIR NFS_STATEDIR "/rpc_pipefs/"
> > #endif
> >
> > #ifndef NFSD_DIR
> >
>

2021-07-26 16:31:48

by Steve Dickson

[permalink] [raw]
Subject: Re: [PATCH 1/1] Fix non-default statedir paths.



On 7/12/21 10:06 AM, James Hilliard wrote:
> Signed-off-by: James Hilliard <[email protected]>
Committed... (tag: nfs-utils-2-5-5-rc1)

steved
> ---
> configure.ac | 19 +++++++++++++++++++
> systemd/Makefile.am | 5 ++++-
> systemd/rpc-pipefs-generator.c | 2 +-
> systemd/rpc_pipefs.target | 3 ---
> systemd/rpc_pipefs.target.in | 3 +++
> ....mount => var-lib-nfs-rpc_pipefs.mount.in} | 2 +-
> utils/blkmapd/device-discovery.c | 2 +-
> utils/gssd/gssd.h | 2 +-
> utils/idmapd/idmapd.c | 2 +-
> 9 files changed, 31 insertions(+), 9 deletions(-)
> delete mode 100644 systemd/rpc_pipefs.target
> create mode 100644 systemd/rpc_pipefs.target.in
> rename systemd/{var-lib-nfs-rpc_pipefs.mount => var-lib-nfs-rpc_pipefs.mount.in} (84%)
>
> diff --git a/configure.ac b/configure.ac
> index 93520a80..bc2d0f02 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -688,9 +688,28 @@ AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"])
> AC_SUBST([_sysconfdir])
> AC_CONFIG_COMMANDS_PRE([eval eval _sysconfdir=$sysconfdir])
>
> +# make _statedir available for substituion in config files
> +# 2 "evals" needed late to expand variable names.
> +AC_SUBST([_statedir])
> +AC_CONFIG_COMMANDS_PRE([eval eval _statedir=$statedir])
> +
> +if test "$statedir" = "/var/lib/nfs"; then
> + rpc_pipefsmount="var-lib-nfs-rpc_pipefs.mount"
> +else
> + rpc_pipefsmount="$(systemd-escape -p "$statedir/rpc_pipefs").mount"
> +fi
> +AC_SUBST(rpc_pipefsmount)
> +
> +# make _rpc_pipefsmount available for substituion in config files
> +# 2 "evals" needed late to expand variable names.
> +AC_SUBST([_rpc_pipefsmount])
> +AC_CONFIG_COMMANDS_PRE([eval eval _rpc_pipefsmount=$rpc_pipefsmount])
> +
> AC_CONFIG_FILES([
> Makefile
> systemd/rpc-gssd.service
> + systemd/rpc_pipefs.target
> + systemd/var-lib-nfs-rpc_pipefs.mount
> linux-nfs/Makefile
> support/Makefile
> support/export/Makefile
> diff --git a/systemd/Makefile.am b/systemd/Makefile.am
> index 650ad25c..8c7b676f 100644
> --- a/systemd/Makefile.am
> +++ b/systemd/Makefile.am
> @@ -12,7 +12,9 @@ unit_files = \
> rpc-statd-notify.service \
> rpc-statd.service \
> \
> - proc-fs-nfsd.mount \
> + proc-fs-nfsd.mount
> +
> +rpc_pipefs_mount_file = \
> var-lib-nfs-rpc_pipefs.mount
>
> if CONFIG_NFSV4
> @@ -75,4 +77,5 @@ genexec_PROGRAMS = nfs-server-generator rpc-pipefs-generator
> install-data-hook: $(unit_files)
> mkdir -p $(DESTDIR)/$(unitdir)
> cp $(unit_files) $(DESTDIR)/$(unitdir)
> + cp $(rpc_pipefs_mount_file) $(DESTDIR)/$(unitdir)/$(rpc_pipefsmount)
> endif
> diff --git a/systemd/rpc-pipefs-generator.c b/systemd/rpc-pipefs-generator.c
> index 8e218aa7..c24db567 100644
> --- a/systemd/rpc-pipefs-generator.c
> +++ b/systemd/rpc-pipefs-generator.c
> @@ -21,7 +21,7 @@
> #include "conffile.h"
> #include "systemd.h"
>
> -#define RPC_PIPEFS_DEFAULT "/var/lib/nfs/rpc_pipefs"
> +#define RPC_PIPEFS_DEFAULT NFS_STATEDIR "/rpc_pipefs"
>
> static int generate_mount_unit(const char *pipefs_path, const char *pipefs_unit,
> const char *dirname)
> diff --git a/systemd/rpc_pipefs.target b/systemd/rpc_pipefs.target
> deleted file mode 100644
> index 01d4d278..00000000
> --- a/systemd/rpc_pipefs.target
> +++ /dev/null
> @@ -1,3 +0,0 @@
> -[Unit]
> -Requires=var-lib-nfs-rpc_pipefs.mount
> -After=var-lib-nfs-rpc_pipefs.mount
> diff --git a/systemd/rpc_pipefs.target.in b/systemd/rpc_pipefs.target.in
> new file mode 100644
> index 00000000..332f62b6
> --- /dev/null
> +++ b/systemd/rpc_pipefs.target.in
> @@ -0,0 +1,3 @@
> +[Unit]
> +Requires=@_rpc_pipefsmount@
> +After=@_rpc_pipefsmount@
> diff --git a/systemd/var-lib-nfs-rpc_pipefs.mount b/systemd/var-lib-nfs-rpc_pipefs.mount.in
> similarity index 84%
> rename from systemd/var-lib-nfs-rpc_pipefs.mount
> rename to systemd/var-lib-nfs-rpc_pipefs.mount.in
> index 26d1c763..4c5d6ce4 100644
> --- a/systemd/var-lib-nfs-rpc_pipefs.mount
> +++ b/systemd/var-lib-nfs-rpc_pipefs.mount.in
> @@ -6,5 +6,5 @@ Conflicts=umount.target
>
> [Mount]
> What=sunrpc
> -Where=/var/lib/nfs/rpc_pipefs
> +Where=@_statedir@/rpc_pipefs
> Type=rpc_pipefs
> diff --git a/utils/blkmapd/device-discovery.c b/utils/blkmapd/device-discovery.c
> index 77ebe736..2736ac89 100644
> --- a/utils/blkmapd/device-discovery.c
> +++ b/utils/blkmapd/device-discovery.c
> @@ -63,7 +63,7 @@
> #define EVENT_SIZE (sizeof(struct inotify_event))
> #define EVENT_BUFSIZE (1024 * EVENT_SIZE)
>
> -#define RPCPIPE_DIR "/var/lib/nfs/rpc_pipefs"
> +#define RPCPIPE_DIR NFS_STATEDIR "/rpc_pipefs"
> #define PID_FILE "/run/blkmapd.pid"
>
> #define CONF_SAVE(w, f) do { \
> diff --git a/utils/gssd/gssd.h b/utils/gssd/gssd.h
> index c52c5b48..519dc431 100644
> --- a/utils/gssd/gssd.h
> +++ b/utils/gssd/gssd.h
> @@ -39,7 +39,7 @@
> #include <pthread.h>
>
> #ifndef GSSD_PIPEFS_DIR
> -#define GSSD_PIPEFS_DIR "/var/lib/nfs/rpc_pipefs"
> +#define GSSD_PIPEFS_DIR NFS_STATEDIR "/rpc_pipefs"
> #endif
> #define DNOTIFY_SIGNAL (SIGRTMIN + 3)
>
> diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c
> index 51c71fbb..e2c160e8 100644
> --- a/utils/idmapd/idmapd.c
> +++ b/utils/idmapd/idmapd.c
> @@ -73,7 +73,7 @@
> #include "nfslib.h"
>
> #ifndef PIPEFS_DIR
> -#define PIPEFS_DIR "/var/lib/nfs/rpc_pipefs/"
> +#define PIPEFS_DIR NFS_STATEDIR "/rpc_pipefs/"
> #endif
>
> #ifndef NFSD_DIR
>