2011-09-02 19:16:55

by Mike Frysinger

[permalink] [raw]
Subject: [PATCH] nfsidmap: auto disable when keyutils is not found

Since we already auto-disable based on libnfsidmap capabilities, don't
make keyutils a hard failure.

Signed-off-by: Mike Frysinger <[email protected]>
---
aclocal/keyutils.m4 | 4 ++--
aclocal/libnfsidmap.m4 | 3 +--
configure.ac | 2 +-
3 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/aclocal/keyutils.m4 b/aclocal/keyutils.m4
index 84bc112..a392c0e 100644
--- a/aclocal/keyutils.m4
+++ b/aclocal/keyutils.m4
@@ -6,6 +6,6 @@ AC_DEFUN([AC_KEYUTILS], [
AC_CHECK_LIB([keyutils], [keyctl_instantiate], [LIBKEYUTILS=-lkeyutils], ,)
AC_SUBST(LIBKEYUTILS)

- AC_CHECK_HEADERS([keyutils.h], ,
- [AC_MSG_ERROR([keyutils.h header not found.])])
+ AC_CHECK_HEADERS([keyutils.h])
+
])dnl
diff --git a/aclocal/libnfsidmap.m4 b/aclocal/libnfsidmap.m4
index 4faa923..484b1ec 100644
--- a/aclocal/libnfsidmap.m4
+++ b/aclocal/libnfsidmap.m4
@@ -15,7 +15,6 @@ AC_DEFUN([AC_LIBNFSIDMAP], [
[Define to 1 if you have the `nfs4_set_debug' function.])])

dnl only enable nfsidmap when libnfsidmap supports it
- AC_CHECK_LIB([nfsidmap], [nfs4_owner_to_uid], [enable_nfsidmap=yes],
- [enable_nfsidmap=no])
+ AC_CHECK_LIB([nfsidmap], [nfs4_owner_to_uid])

])dnl
diff --git a/configure.ac b/configure.ac
index c9fb27b..1a28f8a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -266,7 +266,7 @@ if test "$enable_nfsv4" = yes; then
fi
fi
dnl enable nfsidmap when its support by libnfsidmap
-AM_CONDITIONAL(CONFIG_NFSIDMAP, [test "$enable_nfsidmap" = "yes"])
+AM_CONDITIONAL(CONFIG_NFSIDMAP, [test "$ac_cv_header_keyutils_h$ac_cv_lib_nfsidmap_nfs4_owner_to_uid" = "yesyes"])


if test "$knfsd_cv_glibc2" = no; then
--
1.7.6



2011-09-14 18:27:32

by Steve Dickson

[permalink] [raw]
Subject: Re: [PATCH] nfsidmap: auto disable when keyutils is not found



On 09/02/2011 03:16 PM, Mike Frysinger wrote:
> Since we already auto-disable based on libnfsidmap capabilities, don't
> make keyutils a hard failure.
>
> Signed-off-by: Mike Frysinger <[email protected]>
Committed...

steved.

> ---
> aclocal/keyutils.m4 | 4 ++--
> aclocal/libnfsidmap.m4 | 3 +--
> configure.ac | 2 +-
> 3 files changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/aclocal/keyutils.m4 b/aclocal/keyutils.m4
> index 84bc112..a392c0e 100644
> --- a/aclocal/keyutils.m4
> +++ b/aclocal/keyutils.m4
> @@ -6,6 +6,6 @@ AC_DEFUN([AC_KEYUTILS], [
> AC_CHECK_LIB([keyutils], [keyctl_instantiate], [LIBKEYUTILS=-lkeyutils], ,)
> AC_SUBST(LIBKEYUTILS)
>
> - AC_CHECK_HEADERS([keyutils.h], ,
> - [AC_MSG_ERROR([keyutils.h header not found.])])
> + AC_CHECK_HEADERS([keyutils.h])
> +
> ])dnl
> diff --git a/aclocal/libnfsidmap.m4 b/aclocal/libnfsidmap.m4
> index 4faa923..484b1ec 100644
> --- a/aclocal/libnfsidmap.m4
> +++ b/aclocal/libnfsidmap.m4
> @@ -15,7 +15,6 @@ AC_DEFUN([AC_LIBNFSIDMAP], [
> [Define to 1 if you have the `nfs4_set_debug' function.])])
>
> dnl only enable nfsidmap when libnfsidmap supports it
> - AC_CHECK_LIB([nfsidmap], [nfs4_owner_to_uid], [enable_nfsidmap=yes],
> - [enable_nfsidmap=no])
> + AC_CHECK_LIB([nfsidmap], [nfs4_owner_to_uid])
>
> ])dnl
> diff --git a/configure.ac b/configure.ac
> index c9fb27b..1a28f8a 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -266,7 +266,7 @@ if test "$enable_nfsv4" = yes; then
> fi
> fi
> dnl enable nfsidmap when its support by libnfsidmap
> -AM_CONDITIONAL(CONFIG_NFSIDMAP, [test "$enable_nfsidmap" = "yes"])
> +AM_CONDITIONAL(CONFIG_NFSIDMAP, [test "$ac_cv_header_keyutils_h$ac_cv_lib_nfsidmap_nfs4_owner_to_uid" = "yesyes"])
>
>
> if test "$knfsd_cv_glibc2" = no; then

2011-12-23 14:34:25

by Jeff Layton

[permalink] [raw]
Subject: Re: [PATCH] nfsidmap: auto disable when keyutils is not found

On Thu, 22 Dec 2011 11:20:11 -0500
Mike Frysinger <[email protected]> wrote:

> On Thursday 22 December 2011 09:38:55 Jeff Layton wrote:
> > On Fri, 2 Sep 2011 15:16:55 -0400 Mike Frysinger wrote:
> > > --- a/aclocal/libnfsidmap.m4
> > > +++ b/aclocal/libnfsidmap.m4
> > >
> > > - AC_CHECK_LIB([nfsidmap], [nfs4_owner_to_uid], [enable_nfsidmap=yes],
> > > - [enable_nfsidmap=no])
> > > + AC_CHECK_LIB([nfsidmap], [nfs4_owner_to_uid])
> >
> > The above delta in this patch has caused a build-time regression.
> >
> > When you eliminated the 3rd argument to AC_CHECK_LIB, this started
> > adding -lnfsidmap to $LIBS. That means that that library gets linked
> > into every binary that's being built.
> >
> > I haven't determined the right fix for this yet, but I think
> > libnfsidmap.m4 could use some cleanup.
>
> AC_CHECK_LIB([nfsidmap], [nfs4_owner_to_uid], [])
> -mike

Uhhh, no. That turns the result of this test into a noop. We might as
well remove it at that point.

Perhaps I should phrase this question differently: What is the above
test supposed to achieve? IOW, what should happen if it passes or fails?

--
Jeff Layton <[email protected]>


Attachments:
signature.asc (836.00 B)

2011-12-22 14:39:19

by Jeff Layton

[permalink] [raw]
Subject: Re: [PATCH] nfsidmap: auto disable when keyutils is not found

On Fri, 2 Sep 2011 15:16:55 -0400
Mike Frysinger <[email protected]> wrote:

> Since we already auto-disable based on libnfsidmap capabilities, don't
> make keyutils a hard failure.
>
> Signed-off-by: Mike Frysinger <[email protected]>
> ---
> aclocal/keyutils.m4 | 4 ++--
> aclocal/libnfsidmap.m4 | 3 +--
> configure.ac | 2 +-
> 3 files changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/aclocal/keyutils.m4 b/aclocal/keyutils.m4
> index 84bc112..a392c0e 100644
> --- a/aclocal/keyutils.m4
> +++ b/aclocal/keyutils.m4
> @@ -6,6 +6,6 @@ AC_DEFUN([AC_KEYUTILS], [
> AC_CHECK_LIB([keyutils], [keyctl_instantiate], [LIBKEYUTILS=-lkeyutils], ,)
> AC_SUBST(LIBKEYUTILS)
>
> - AC_CHECK_HEADERS([keyutils.h], ,
> - [AC_MSG_ERROR([keyutils.h header not found.])])
> + AC_CHECK_HEADERS([keyutils.h])
> +
> ])dnl
> diff --git a/aclocal/libnfsidmap.m4 b/aclocal/libnfsidmap.m4
> index 4faa923..484b1ec 100644
> --- a/aclocal/libnfsidmap.m4
> +++ b/aclocal/libnfsidmap.m4
> @@ -15,7 +15,6 @@ AC_DEFUN([AC_LIBNFSIDMAP], [
> [Define to 1 if you have the `nfs4_set_debug' function.])])
>
> dnl only enable nfsidmap when libnfsidmap supports it
> - AC_CHECK_LIB([nfsidmap], [nfs4_owner_to_uid], [enable_nfsidmap=yes],
> - [enable_nfsidmap=no])
> + AC_CHECK_LIB([nfsidmap], [nfs4_owner_to_uid])
>
> ])dnl

The above delta in this patch has caused a build-time regression.

When you eliminated the 3rd argument to AC_CHECK_LIB, this started
adding -lnfsidmap to $LIBS. That means that that library gets linked
into every binary that's being built.

I haven't determined the right fix for this yet, but I think
libnfsidmap.m4 could use some cleanup.

Any thoughts on the proper fix?

> diff --git a/configure.ac b/configure.ac
> index c9fb27b..1a28f8a 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -266,7 +266,7 @@ if test "$enable_nfsv4" = yes; then
> fi
> fi
> dnl enable nfsidmap when its support by libnfsidmap
> -AM_CONDITIONAL(CONFIG_NFSIDMAP, [test "$enable_nfsidmap" = "yes"])
> +AM_CONDITIONAL(CONFIG_NFSIDMAP, [test "$ac_cv_header_keyutils_h$ac_cv_lib_nfsidmap_nfs4_owner_to_uid" = "yesyes"])
>
>
> if test "$knfsd_cv_glibc2" = no; then

Cheers
--
Jeff Layton <[email protected]>

2011-12-22 16:20:09

by Mike Frysinger

[permalink] [raw]
Subject: Re: [PATCH] nfsidmap: auto disable when keyutils is not found

On Thursday 22 December 2011 09:38:55 Jeff Layton wrote:
> On Fri, 2 Sep 2011 15:16:55 -0400 Mike Frysinger wrote:
> > --- a/aclocal/libnfsidmap.m4
> > +++ b/aclocal/libnfsidmap.m4
> >
> > - AC_CHECK_LIB([nfsidmap], [nfs4_owner_to_uid], [enable_nfsidmap=yes],
> > - [enable_nfsidmap=no])
> > + AC_CHECK_LIB([nfsidmap], [nfs4_owner_to_uid])
>
> The above delta in this patch has caused a build-time regression.
>
> When you eliminated the 3rd argument to AC_CHECK_LIB, this started
> adding -lnfsidmap to $LIBS. That means that that library gets linked
> into every binary that's being built.
>
> I haven't determined the right fix for this yet, but I think
> libnfsidmap.m4 could use some cleanup.

AC_CHECK_LIB([nfsidmap], [nfs4_owner_to_uid], [])
-mike


Attachments:
signature.asc (836.00 B)
This is a digitally signed message part.

2011-12-23 17:04:44

by Jeff Layton

[permalink] [raw]
Subject: Re: [PATCH] nfsidmap: auto disable when keyutils is not found

On Fri, 23 Dec 2011 09:34:01 -0500
Jeff Layton <[email protected]> wrote:

> On Thu, 22 Dec 2011 11:20:11 -0500
> Mike Frysinger <[email protected]> wrote:
>
> > On Thursday 22 December 2011 09:38:55 Jeff Layton wrote:
> > > On Fri, 2 Sep 2011 15:16:55 -0400 Mike Frysinger wrote:
> > > > --- a/aclocal/libnfsidmap.m4
> > > > +++ b/aclocal/libnfsidmap.m4
> > > >
> > > > - AC_CHECK_LIB([nfsidmap], [nfs4_owner_to_uid], [enable_nfsidmap=yes],
> > > > - [enable_nfsidmap=no])
> > > > + AC_CHECK_LIB([nfsidmap], [nfs4_owner_to_uid])
> > >
> > > The above delta in this patch has caused a build-time regression.
> > >
> > > When you eliminated the 3rd argument to AC_CHECK_LIB, this started
> > > adding -lnfsidmap to $LIBS. That means that that library gets linked
> > > into every binary that's being built.
> > >
> > > I haven't determined the right fix for this yet, but I think
> > > libnfsidmap.m4 could use some cleanup.
> >
> > AC_CHECK_LIB([nfsidmap], [nfs4_owner_to_uid], [])
> > -mike
>
> Uhhh, no. That turns the result of this test into a noop. We might as
> well remove it at that point.
>
> Perhaps I should phrase this question differently: What is the above
> test supposed to achieve? IOW, what should happen if it passes or fails?
>

Ahh nm, I think I see now...

We just need to ensure that $ac_cv_lib_nfsidmap_nfs4_owner_to_uid gets
set properly. If that's the case, then we probably want something like
this:

AC_CHECK_LIB([nfsidmap], [nfs4_owner_to_uid], [:])

...autoconf treats bare brackets as if the argument weren't specified.
I have a patch that I'll pass along once I've done a bit of testing
with it.

--
Jeff Layton <[email protected]>