All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 1/3] Fix quoting in configure.ac
@ 2018-10-31 20:02 Chuck Lever
  2018-10-31 20:02 ` [PATCH v1 2/3] Harden configure.ac checks for libxml2 Chuck Lever
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Chuck Lever @ 2018-10-31 20:02 UTC (permalink / raw)
  To: steved; +Cc: linux-nfs

Replace an unmatched single quote to help syntax coloring editors.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 configure.ac |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index cf1c4b9..16eae06 100644
--- a/configure.ac
+++ b/configure.ac
@@ -165,7 +165,7 @@ AC_ARG_ENABLE(uuid,
 	choose_blkid=default)
 AC_ARG_ENABLE(mount,
 	[AC_HELP_STRING([--disable-mount],
-		[Don't build mount.nfs and do use the util-linux mount(8) functionality. @<:@default=no@:>@])],
+		[Do not build mount.nfs and do use the util-linux mount(8) functionality. @<:@default=no@:>@])],
 	enable_mount=$enableval,
 	enable_mount=yes)
 	AM_CONDITIONAL(CONFIG_MOUNT, [test "$enable_mount" = "yes"])


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v1 2/3] Harden configure.ac checks for libxml2
  2018-10-31 20:02 [PATCH v1 1/3] Fix quoting in configure.ac Chuck Lever
@ 2018-10-31 20:02 ` Chuck Lever
  2018-10-31 20:02 ` [PATCH v1 3/3] Finish port of junction support to nfs-utils Chuck Lever
  2018-11-29 18:46 ` [PATCH v1 1/3] Fix quoting in configure.ac Steve Dickson
  2 siblings, 0 replies; 9+ messages in thread
From: Chuck Lever @ 2018-10-31 20:02 UTC (permalink / raw)
  To: steved; +Cc: linux-nfs

Modernize the libxml2 script to use PKG_PROG_PKG_CONFIG instead of
an ad hoc macro. This automates the population of AM_CPPFLAGS with
"-I/usr/include/libxml2" when it is needed.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 aclocal/libxml2.m4           |   20 +++++++++++---------
 support/junction/Makefile.am |    2 --
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/aclocal/libxml2.m4 b/aclocal/libxml2.m4
index 5c399b2..8231553 100644
--- a/aclocal/libxml2.m4
+++ b/aclocal/libxml2.m4
@@ -1,15 +1,17 @@
 dnl Checks for libxml2.so
 AC_DEFUN([AC_LIBXML2], [
 
-  if test "$enable_junction" = yes; then
+  PKG_PROG_PKG_CONFIG([0.9.0])
+  AS_IF(
+    [test "$enable_junction" = "yes"],
+    [PKG_CHECK_MODULES([XML2], [libxml-2.0 >= 2.4],
+                       [LIBXML2="${XML2_LIBS}"
+                        AM_CPPFLAGS="${AM_CPPFLAGS} ${XML2_CFLAGS}"
+                        AC_DEFINE([HAVE_LIBXML2], [1],
+                                  [Define to 1 if you have and wish to use libxml2.])],
+                       [AC_MSG_ERROR([libxml2 not found.])])])
 
-    dnl look for the library; do not add to LIBS if found
-    AC_CHECK_LIB([xml2], [xmlParseFile], [LIBXML2=-lxml2],
-                 [AC_MSG_ERROR([libxml2 not found.])])
-    AC_SUBST(LIBXML2)
-
-    dnl XXX should also check for presence of xml headers
-
-  fi
+  AC_SUBST([AM_CPPFLAGS])
+  AC_SUBST(LIBXML2)
 
 ])dnl
diff --git a/support/junction/Makefile.am b/support/junction/Makefile.am
index 97e7426..be6958b 100644
--- a/support/junction/Makefile.am
+++ b/support/junction/Makefile.am
@@ -30,5 +30,3 @@ libjunction_la_SOURCES	= display.c export-cache.c junction.c \
 			  locations.c nfs.c path.c xml.c
 
 MAINTAINERCLEANFILES	= Makefile.in
-
-AM_CPPFLAGS		= -I. -I../include -I/usr/include/libxml2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v1 3/3] Finish port of junction support to nfs-utils
  2018-10-31 20:02 [PATCH v1 1/3] Fix quoting in configure.ac Chuck Lever
  2018-10-31 20:02 ` [PATCH v1 2/3] Harden configure.ac checks for libxml2 Chuck Lever
@ 2018-10-31 20:02 ` Chuck Lever
  2018-11-27 16:45   ` Chuck Lever
  2018-11-29 18:46 ` [PATCH v1 1/3] Fix quoting in configure.ac Steve Dickson
  2 siblings, 1 reply; 9+ messages in thread
From: Chuck Lever @ 2018-10-31 20:02 UTC (permalink / raw)
  To: steved; +Cc: linux-nfs

CONFIG_JUNCTION was defined for use in Makefiles, but that does not
provide a -DCONFIG_JUNCTION on the compiler command line. Add logic
to configure.ac to get the compiler flags right.

Now that mountd junction support is getting built, a few last minute
porting bugs popped out. Fix those up.

Reported-by: Yongcheng Yang <yoyang@redhat.com>
BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1543126
Fixes: 79978ed34973 ("mountd: Solder in support for NFS basic ... ")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 configure.ac         |    8 +++++++-
 utils/mountd/cache.c |   18 +++++++++---------
 2 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/configure.ac b/configure.ac
index 16eae06..b458891 100644
--- a/configure.ac
+++ b/configure.ac
@@ -185,7 +185,13 @@ AC_ARG_ENABLE(junction,
 			[enable support for NFS junctions @<:@default=no@:>@])],
 	enable_junction=$enableval,
 	enable_junction=no)
-AM_CONDITIONAL(CONFIG_JUNCTION, [test "$enable_junction" = "yes" ])
+	if test "$enable_junction" = yes; then
+		AC_DEFINE(HAVE_JUNCTION_SUPPORT, 1,
+                          [Define this if you want junction support compiled in])
+	else
+		enable_junction=
+	fi
+	AM_CONDITIONAL(CONFIG_JUNCTION, [test "$enable_junction" = "yes" ])
 
 AC_ARG_ENABLE(tirpc,
 	[AC_HELP_STRING([--disable-tirpc],
diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c
index 6f42512..7e8d403 100644
--- a/utils/mountd/cache.c
+++ b/utils/mountd/cache.c
@@ -976,8 +976,9 @@ lookup_export(char *dom, char *path, struct addrinfo *ai)
 	return found;
 }
 
-#ifdef CONFIG_JUNCTION
+#ifdef HAVE_JUNCTION_SUPPORT
 
+#include <libxml/parser.h>
 #include "junction.h"
 
 struct nfs_fsloc_set {
@@ -1084,8 +1085,7 @@ static bool locations_to_fslocdata(struct nfs_fsloc_set *locations,
 	*ttl = 0;
 
 	for (;;) {
-		enum jp_status status;
-		int len;
+		int len, status;
 
 		status = get_next_location(locations, &server,
 							&rootpath, ttl);
@@ -1219,7 +1219,7 @@ nfs_get_basic_junction(const char *junct_path, struct nfs_fsloc_set **locset)
 		return EINVAL;
 	}
 
-	locset->ns_current = locset->ns_list;
+	new->ns_current = new->ns_list;
 	new->ns_ttl = 300;
 	*locset = new;
 	return 0;
@@ -1242,7 +1242,7 @@ static struct exportent *lookup_junction(char *dom, const char *pathname,
 	status = nfs_get_basic_junction(pathname, &locations);
 	switch (status) {
 		xlog(L_WARNING, "Dangling junction %s: %s",
-			pathname, strerro(status));
+			pathname, strerror(status));
 		goto out;
 	}
 
@@ -1252,8 +1252,8 @@ static struct exportent *lookup_junction(char *dom, const char *pathname,
 
 	exp = locations_to_export(locations, pathname, parent);
 
-	nfs_free_locations(locset->ns_list);
-	free(locset);
+	nfs_free_locations(locations->ns_list);
+	free(locations);
 
 out:
 	xmlCleanupParser();
@@ -1273,7 +1273,7 @@ static void lookup_nonexport(int f, char *buf, int buflen, char *dom, char *path
 	free(eep);
 }
 
-#else	/* !CONFIG_JUNCTION */
+#else	/* !HAVE_JUNCTION_SUPPORT */
 
 static void lookup_nonexport(int f, char *buf, int buflen, char *dom, char *path,
 		struct addrinfo *UNUSED(ai))
@@ -1281,7 +1281,7 @@ static void lookup_nonexport(int f, char *buf, int buflen, char *dom, char *path
 	dump_to_cache(f, buf, buflen, dom, path, NULL, 0);
 }
 
-#endif	/* !CONFIG_JUNCTION */
+#endif	/* !HAVE_JUNCTION_SUPPORT */
 
 static void nfsd_export(int f)
 {


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 3/3] Finish port of junction support to nfs-utils
  2018-10-31 20:02 ` [PATCH v1 3/3] Finish port of junction support to nfs-utils Chuck Lever
@ 2018-11-27 16:45   ` Chuck Lever
  2018-11-28 21:00     ` Steve Dickson
  0 siblings, 1 reply; 9+ messages in thread
From: Chuck Lever @ 2018-11-27 16:45 UTC (permalink / raw)
  To: Steve Dickson; +Cc: Linux NFS Mailing List

Ping!


> On Oct 31, 2018, at 4:02 PM, Chuck Lever <chuck.lever@oracle.com> wrote:
> 
> CONFIG_JUNCTION was defined for use in Makefiles, but that does not
> provide a -DCONFIG_JUNCTION on the compiler command line. Add logic
> to configure.ac to get the compiler flags right.
> 
> Now that mountd junction support is getting built, a few last minute
> porting bugs popped out. Fix those up.
> 
> Reported-by: Yongcheng Yang <yoyang@redhat.com>
> BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1543126
> Fixes: 79978ed34973 ("mountd: Solder in support for NFS basic ... ")
> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
> ---
> configure.ac         |    8 +++++++-
> utils/mountd/cache.c |   18 +++++++++---------
> 2 files changed, 16 insertions(+), 10 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index 16eae06..b458891 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -185,7 +185,13 @@ AC_ARG_ENABLE(junction,
> 			[enable support for NFS junctions @<:@default=no@:>@])],
> 	enable_junction=$enableval,
> 	enable_junction=no)
> -AM_CONDITIONAL(CONFIG_JUNCTION, [test "$enable_junction" = "yes" ])
> +	if test "$enable_junction" = yes; then
> +		AC_DEFINE(HAVE_JUNCTION_SUPPORT, 1,
> +                          [Define this if you want junction support compiled in])
> +	else
> +		enable_junction=
> +	fi
> +	AM_CONDITIONAL(CONFIG_JUNCTION, [test "$enable_junction" = "yes" ])
> 
> AC_ARG_ENABLE(tirpc,
> 	[AC_HELP_STRING([--disable-tirpc],
> diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c
> index 6f42512..7e8d403 100644
> --- a/utils/mountd/cache.c
> +++ b/utils/mountd/cache.c
> @@ -976,8 +976,9 @@ lookup_export(char *dom, char *path, struct addrinfo *ai)
> 	return found;
> }
> 
> -#ifdef CONFIG_JUNCTION
> +#ifdef HAVE_JUNCTION_SUPPORT
> 
> +#include <libxml/parser.h>
> #include "junction.h"
> 
> struct nfs_fsloc_set {
> @@ -1084,8 +1085,7 @@ static bool locations_to_fslocdata(struct nfs_fsloc_set *locations,
> 	*ttl = 0;
> 
> 	for (;;) {
> -		enum jp_status status;
> -		int len;
> +		int len, status;
> 
> 		status = get_next_location(locations, &server,
> 							&rootpath, ttl);
> @@ -1219,7 +1219,7 @@ nfs_get_basic_junction(const char *junct_path, struct nfs_fsloc_set **locset)
> 		return EINVAL;
> 	}
> 
> -	locset->ns_current = locset->ns_list;
> +	new->ns_current = new->ns_list;
> 	new->ns_ttl = 300;
> 	*locset = new;
> 	return 0;
> @@ -1242,7 +1242,7 @@ static struct exportent *lookup_junction(char *dom, const char *pathname,
> 	status = nfs_get_basic_junction(pathname, &locations);
> 	switch (status) {
> 		xlog(L_WARNING, "Dangling junction %s: %s",
> -			pathname, strerro(status));
> +			pathname, strerror(status));
> 		goto out;
> 	}
> 
> @@ -1252,8 +1252,8 @@ static struct exportent *lookup_junction(char *dom, const char *pathname,
> 
> 	exp = locations_to_export(locations, pathname, parent);
> 
> -	nfs_free_locations(locset->ns_list);
> -	free(locset);
> +	nfs_free_locations(locations->ns_list);
> +	free(locations);
> 
> out:
> 	xmlCleanupParser();
> @@ -1273,7 +1273,7 @@ static void lookup_nonexport(int f, char *buf, int buflen, char *dom, char *path
> 	free(eep);
> }
> 
> -#else	/* !CONFIG_JUNCTION */
> +#else	/* !HAVE_JUNCTION_SUPPORT */
> 
> static void lookup_nonexport(int f, char *buf, int buflen, char *dom, char *path,
> 		struct addrinfo *UNUSED(ai))
> @@ -1281,7 +1281,7 @@ static void lookup_nonexport(int f, char *buf, int buflen, char *dom, char *path
> 	dump_to_cache(f, buf, buflen, dom, path, NULL, 0);
> }
> 
> -#endif	/* !CONFIG_JUNCTION */
> +#endif	/* !HAVE_JUNCTION_SUPPORT */
> 
> static void nfsd_export(int f)
> {
> 

--
Chuck Lever




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 3/3] Finish port of junction support to nfs-utils
  2018-11-27 16:45   ` Chuck Lever
@ 2018-11-28 21:00     ` Steve Dickson
  2018-11-28 21:05       ` Chuck Lever
  0 siblings, 1 reply; 9+ messages in thread
From: Steve Dickson @ 2018-11-28 21:00 UTC (permalink / raw)
  To: Chuck Lever; +Cc: Linux NFS Mailing List



On 11/27/18 11:45 AM, Chuck Lever wrote:
> Ping!
My apologies for taking so long to get to this... 
I took an extended Thanksgiving then completely 
for got about it... Thanks for the ping... but :-) 

When I enable junctions via  --enable-junction I get the
following compile error with or w/out these patches

gcc -DHAVE_CONFIG_H -I. -I../../support/include  -I. -I../../support/include -D_GNU_SOURCE -pipe  -Wall  -Wextra  -Werror=strict-prototypes  -Werror=missing-prototypes  -Werror=missing-declarations  -Werror=format=2  -Werror=undef  -Werror=missing-include-dirs  -Werror=strict-aliasing=2  -Werror=init-self  -Werror=implicit-function-declaration  -Werror=return-type  -Werror=switch  -Werror=overflow  -Werror=parentheses  -Werror=aggregate-return  -Werror=unused-result  -fno-strict-aliasing  -Werror=format-overflow=2 -Werror=int-conversion -Werror=incompatible-pointer-types -Werror=misleading-indentation -g -O2 -MT remove.o -MD -MP -MF .deps/remove.Tpo -c -o remove.o remove.c
In file included from lookup.c:31:
../../support/include/rpcsvc/nfs_prot.h:9:10: fatal error: rpc/rpc.h: No such file or directory
 #include <rpc/rpc.h>
          ^~~~~~~~~~~
I know how to fix it... Add the following to CFLAGS and LDFLAGS
`pkg-config --cflags libtirpc`
`pkg-config --libs libtirpc`

First I'm wonder how you got things to compile w/out making these changes
and secondly I'm wondering where we should make these changes... 

Maybe we should hardcode the -I/usr/include/tirpc and -ltirpc
flags in aclocal/libtirpc.m4? 

steved.

> 
> 
>> On Oct 31, 2018, at 4:02 PM, Chuck Lever <chuck.lever@oracle.com> wrote:
>>
>> CONFIG_JUNCTION was defined for use in Makefiles, but that does not
>> provide a -DCONFIG_JUNCTION on the compiler command line. Add logic
>> to configure.ac to get the compiler flags right.
>>
>> Now that mountd junction support is getting built, a few last minute
>> porting bugs popped out. Fix those up.
>>
>> Reported-by: Yongcheng Yang <yoyang@redhat.com>
>> BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1543126
>> Fixes: 79978ed34973 ("mountd: Solder in support for NFS basic ... ")
>> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
>> ---
>> configure.ac         |    8 +++++++-
>> utils/mountd/cache.c |   18 +++++++++---------
>> 2 files changed, 16 insertions(+), 10 deletions(-)
>>
>> diff --git a/configure.ac b/configure.ac
>> index 16eae06..b458891 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -185,7 +185,13 @@ AC_ARG_ENABLE(junction,
>> 			[enable support for NFS junctions @<:@default=no@:>@])],
>> 	enable_junction=$enableval,
>> 	enable_junction=no)
>> -AM_CONDITIONAL(CONFIG_JUNCTION, [test "$enable_junction" = "yes" ])
>> +	if test "$enable_junction" = yes; then
>> +		AC_DEFINE(HAVE_JUNCTION_SUPPORT, 1,
>> +                          [Define this if you want junction support compiled in])
>> +	else
>> +		enable_junction=
>> +	fi
>> +	AM_CONDITIONAL(CONFIG_JUNCTION, [test "$enable_junction" = "yes" ])
>>
>> AC_ARG_ENABLE(tirpc,
>> 	[AC_HELP_STRING([--disable-tirpc],
>> diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c
>> index 6f42512..7e8d403 100644
>> --- a/utils/mountd/cache.c
>> +++ b/utils/mountd/cache.c
>> @@ -976,8 +976,9 @@ lookup_export(char *dom, char *path, struct addrinfo *ai)
>> 	return found;
>> }
>>
>> -#ifdef CONFIG_JUNCTION
>> +#ifdef HAVE_JUNCTION_SUPPORT
>>
>> +#include <libxml/parser.h>
>> #include "junction.h"
>>
>> struct nfs_fsloc_set {
>> @@ -1084,8 +1085,7 @@ static bool locations_to_fslocdata(struct nfs_fsloc_set *locations,
>> 	*ttl = 0;
>>
>> 	for (;;) {
>> -		enum jp_status status;
>> -		int len;
>> +		int len, status;
>>
>> 		status = get_next_location(locations, &server,
>> 							&rootpath, ttl);
>> @@ -1219,7 +1219,7 @@ nfs_get_basic_junction(const char *junct_path, struct nfs_fsloc_set **locset)
>> 		return EINVAL;
>> 	}
>>
>> -	locset->ns_current = locset->ns_list;
>> +	new->ns_current = new->ns_list;
>> 	new->ns_ttl = 300;
>> 	*locset = new;
>> 	return 0;
>> @@ -1242,7 +1242,7 @@ static struct exportent *lookup_junction(char *dom, const char *pathname,
>> 	status = nfs_get_basic_junction(pathname, &locations);
>> 	switch (status) {
>> 		xlog(L_WARNING, "Dangling junction %s: %s",
>> -			pathname, strerro(status));
>> +			pathname, strerror(status));
>> 		goto out;
>> 	}
>>
>> @@ -1252,8 +1252,8 @@ static struct exportent *lookup_junction(char *dom, const char *pathname,
>>
>> 	exp = locations_to_export(locations, pathname, parent);
>>
>> -	nfs_free_locations(locset->ns_list);
>> -	free(locset);
>> +	nfs_free_locations(locations->ns_list);
>> +	free(locations);
>>
>> out:
>> 	xmlCleanupParser();
>> @@ -1273,7 +1273,7 @@ static void lookup_nonexport(int f, char *buf, int buflen, char *dom, char *path
>> 	free(eep);
>> }
>>
>> -#else	/* !CONFIG_JUNCTION */
>> +#else	/* !HAVE_JUNCTION_SUPPORT */
>>
>> static void lookup_nonexport(int f, char *buf, int buflen, char *dom, char *path,
>> 		struct addrinfo *UNUSED(ai))
>> @@ -1281,7 +1281,7 @@ static void lookup_nonexport(int f, char *buf, int buflen, char *dom, char *path
>> 	dump_to_cache(f, buf, buflen, dom, path, NULL, 0);
>> }
>>
>> -#endif	/* !CONFIG_JUNCTION */
>> +#endif	/* !HAVE_JUNCTION_SUPPORT */
>>
>> static void nfsd_export(int f)
>> {
>>
> 
> --
> Chuck Lever
> 
> 
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 3/3] Finish port of junction support to nfs-utils
  2018-11-28 21:00     ` Steve Dickson
@ 2018-11-28 21:05       ` Chuck Lever
  2018-11-29 18:37         ` Steve Dickson
  0 siblings, 1 reply; 9+ messages in thread
From: Chuck Lever @ 2018-11-28 21:05 UTC (permalink / raw)
  To: Steve Dickson; +Cc: Linux NFS Mailing List



> On Nov 28, 2018, at 4:00 PM, Steve Dickson <SteveD@RedHat.com> wrote:
> 
> 
> 
> On 11/27/18 11:45 AM, Chuck Lever wrote:
>> Ping!
> My apologies for taking so long to get to this... 
> I took an extended Thanksgiving then completely 
> for got about it... Thanks for the ping... but :-) 
> 
> When I enable junctions via  --enable-junction I get the
> following compile error with or w/out these patches
> 
> gcc -DHAVE_CONFIG_H -I. -I../../support/include  -I. -I../../support/include -D_GNU_SOURCE -pipe  -Wall  -Wextra  -Werror=strict-prototypes  -Werror=missing-prototypes  -Werror=missing-declarations  -Werror=format=2  -Werror=undef  -Werror=missing-include-dirs  -Werror=strict-aliasing=2  -Werror=init-self  -Werror=implicit-function-declaration  -Werror=return-type  -Werror=switch  -Werror=overflow  -Werror=parentheses  -Werror=aggregate-return  -Werror=unused-result  -fno-strict-aliasing  -Werror=format-overflow=2 -Werror=int-conversion -Werror=incompatible-pointer-types -Werror=misleading-indentation -g -O2 -MT remove.o -MD -MP -MF .deps/remove.Tpo -c -o remove.o remove.c
> In file included from lookup.c:31:
> ../../support/include/rpcsvc/nfs_prot.h:9:10: fatal error: rpc/rpc.h: No such file or directory
> #include <rpc/rpc.h>
>          ^~~~~~~~~~~
> I know how to fix it... Add the following to CFLAGS and LDFLAGS
> `pkg-config --cflags libtirpc`
> `pkg-config --libs libtirpc`
> 
> First I'm wonder how you got things to compile w/out making these changes

Well I built and tested this on RHEL 7. If you're testing on
late-model Fedora, you're probably getting a slightly different
build configuration. Just a guess.


> and secondly I'm wondering where we should make these changes... 
> 
> Maybe we should hardcode the -I/usr/include/tirpc and -ltirpc
> flags in aclocal/libtirpc.m4?

libtirpc.m4 seems like the right place, but hard-coding seems
like a sledgehammer. Maybe have a look at the changes I made
to libxml2.m4 and do something similar?


> steved.
> 
>> 
>> 
>>> On Oct 31, 2018, at 4:02 PM, Chuck Lever <chuck.lever@oracle.com> wrote:
>>> 
>>> CONFIG_JUNCTION was defined for use in Makefiles, but that does not
>>> provide a -DCONFIG_JUNCTION on the compiler command line. Add logic
>>> to configure.ac to get the compiler flags right.
>>> 
>>> Now that mountd junction support is getting built, a few last minute
>>> porting bugs popped out. Fix those up.
>>> 
>>> Reported-by: Yongcheng Yang <yoyang@redhat.com>
>>> BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1543126
>>> Fixes: 79978ed34973 ("mountd: Solder in support for NFS basic ... ")
>>> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
>>> ---
>>> configure.ac         |    8 +++++++-
>>> utils/mountd/cache.c |   18 +++++++++---------
>>> 2 files changed, 16 insertions(+), 10 deletions(-)
>>> 
>>> diff --git a/configure.ac b/configure.ac
>>> index 16eae06..b458891 100644
>>> --- a/configure.ac
>>> +++ b/configure.ac
>>> @@ -185,7 +185,13 @@ AC_ARG_ENABLE(junction,
>>> 			[enable support for NFS junctions @<:@default=no@:>@])],
>>> 	enable_junction=$enableval,
>>> 	enable_junction=no)
>>> -AM_CONDITIONAL(CONFIG_JUNCTION, [test "$enable_junction" = "yes" ])
>>> +	if test "$enable_junction" = yes; then
>>> +		AC_DEFINE(HAVE_JUNCTION_SUPPORT, 1,
>>> +                          [Define this if you want junction support compiled in])
>>> +	else
>>> +		enable_junction=
>>> +	fi
>>> +	AM_CONDITIONAL(CONFIG_JUNCTION, [test "$enable_junction" = "yes" ])
>>> 
>>> AC_ARG_ENABLE(tirpc,
>>> 	[AC_HELP_STRING([--disable-tirpc],
>>> diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c
>>> index 6f42512..7e8d403 100644
>>> --- a/utils/mountd/cache.c
>>> +++ b/utils/mountd/cache.c
>>> @@ -976,8 +976,9 @@ lookup_export(char *dom, char *path, struct addrinfo *ai)
>>> 	return found;
>>> }
>>> 
>>> -#ifdef CONFIG_JUNCTION
>>> +#ifdef HAVE_JUNCTION_SUPPORT
>>> 
>>> +#include <libxml/parser.h>
>>> #include "junction.h"
>>> 
>>> struct nfs_fsloc_set {
>>> @@ -1084,8 +1085,7 @@ static bool locations_to_fslocdata(struct nfs_fsloc_set *locations,
>>> 	*ttl = 0;
>>> 
>>> 	for (;;) {
>>> -		enum jp_status status;
>>> -		int len;
>>> +		int len, status;
>>> 
>>> 		status = get_next_location(locations, &server,
>>> 							&rootpath, ttl);
>>> @@ -1219,7 +1219,7 @@ nfs_get_basic_junction(const char *junct_path, struct nfs_fsloc_set **locset)
>>> 		return EINVAL;
>>> 	}
>>> 
>>> -	locset->ns_current = locset->ns_list;
>>> +	new->ns_current = new->ns_list;
>>> 	new->ns_ttl = 300;
>>> 	*locset = new;
>>> 	return 0;
>>> @@ -1242,7 +1242,7 @@ static struct exportent *lookup_junction(char *dom, const char *pathname,
>>> 	status = nfs_get_basic_junction(pathname, &locations);
>>> 	switch (status) {
>>> 		xlog(L_WARNING, "Dangling junction %s: %s",
>>> -			pathname, strerro(status));
>>> +			pathname, strerror(status));
>>> 		goto out;
>>> 	}
>>> 
>>> @@ -1252,8 +1252,8 @@ static struct exportent *lookup_junction(char *dom, const char *pathname,
>>> 
>>> 	exp = locations_to_export(locations, pathname, parent);
>>> 
>>> -	nfs_free_locations(locset->ns_list);
>>> -	free(locset);
>>> +	nfs_free_locations(locations->ns_list);
>>> +	free(locations);
>>> 
>>> out:
>>> 	xmlCleanupParser();
>>> @@ -1273,7 +1273,7 @@ static void lookup_nonexport(int f, char *buf, int buflen, char *dom, char *path
>>> 	free(eep);
>>> }
>>> 
>>> -#else	/* !CONFIG_JUNCTION */
>>> +#else	/* !HAVE_JUNCTION_SUPPORT */
>>> 
>>> static void lookup_nonexport(int f, char *buf, int buflen, char *dom, char *path,
>>> 		struct addrinfo *UNUSED(ai))
>>> @@ -1281,7 +1281,7 @@ static void lookup_nonexport(int f, char *buf, int buflen, char *dom, char *path
>>> 	dump_to_cache(f, buf, buflen, dom, path, NULL, 0);
>>> }
>>> 
>>> -#endif	/* !CONFIG_JUNCTION */
>>> +#endif	/* !HAVE_JUNCTION_SUPPORT */
>>> 
>>> static void nfsd_export(int f)
>>> {
>>> 
>> 
>> --
>> Chuck Lever
>> 
>> 
>> 

--
Chuck Lever




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 3/3] Finish port of junction support to nfs-utils
  2018-11-28 21:05       ` Chuck Lever
@ 2018-11-29 18:37         ` Steve Dickson
  0 siblings, 0 replies; 9+ messages in thread
From: Steve Dickson @ 2018-11-29 18:37 UTC (permalink / raw)
  To: Chuck Lever; +Cc: Linux NFS Mailing List



On 11/28/18 4:05 PM, Chuck Lever wrote:
> 
> 
>> On Nov 28, 2018, at 4:00 PM, Steve Dickson <SteveD@RedHat.com> wrote:
>>
>>
>>
>> On 11/27/18 11:45 AM, Chuck Lever wrote:
>>> Ping!
>> My apologies for taking so long to get to this... 
>> I took an extended Thanksgiving then completely 
>> for got about it... Thanks for the ping... but :-) 
>>
>> When I enable junctions via  --enable-junction I get the
>> following compile error with or w/out these patches
>>
>> gcc -DHAVE_CONFIG_H -I. -I../../support/include  -I. -I../../support/include -D_GNU_SOURCE -pipe  -Wall  -Wextra  -Werror=strict-prototypes  -Werror=missing-prototypes  -Werror=missing-declarations  -Werror=format=2  -Werror=undef  -Werror=missing-include-dirs  -Werror=strict-aliasing=2  -Werror=init-self  -Werror=implicit-function-declaration  -Werror=return-type  -Werror=switch  -Werror=overflow  -Werror=parentheses  -Werror=aggregate-return  -Werror=unused-result  -fno-strict-aliasing  -Werror=format-overflow=2 -Werror=int-conversion -Werror=incompatible-pointer-types -Werror=misleading-indentation -g -O2 -MT remove.o -MD -MP -MF .deps/remove.Tpo -c -o remove.o remove.c
>> In file included from lookup.c:31:
>> ../../support/include/rpcsvc/nfs_prot.h:9:10: fatal error: rpc/rpc.h: No such file or directory
>> #include <rpc/rpc.h>
>>          ^~~~~~~~~~~
>> I know how to fix it... Add the following to CFLAGS and LDFLAGS
>> `pkg-config --cflags libtirpc`
>> `pkg-config --libs libtirpc`
>>
>> First I'm wonder how you got things to compile w/out making these changes
> 
> Well I built and tested this on RHEL 7. If you're testing on
> late-model Fedora, you're probably getting a slightly different
> build configuration. Just a guess.
Fair enough.... 

> 
> 
>> and secondly I'm wondering where we should make these changes... 
>>
>> Maybe we should hardcode the -I/usr/include/tirpc and -ltirpc
>> flags in aclocal/libtirpc.m4?
> 
> libtirpc.m4 seems like the right place, but hard-coding seems
> like a sledgehammer. Maybe have a look at the changes I made
> to libxml2.m4 and do something similar?
It turns out that the AM_CPPFLAGS were being overwritten by
the nfsref/Makefile.am file... Removing that definition 
allowed the proper flags and libs to be set...

steved.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 1/3] Fix quoting in configure.ac
  2018-10-31 20:02 [PATCH v1 1/3] Fix quoting in configure.ac Chuck Lever
  2018-10-31 20:02 ` [PATCH v1 2/3] Harden configure.ac checks for libxml2 Chuck Lever
  2018-10-31 20:02 ` [PATCH v1 3/3] Finish port of junction support to nfs-utils Chuck Lever
@ 2018-11-29 18:46 ` Steve Dickson
  2018-11-29 18:47   ` Chuck Lever
  2 siblings, 1 reply; 9+ messages in thread
From: Steve Dickson @ 2018-11-29 18:46 UTC (permalink / raw)
  To: Chuck Lever; +Cc: linux-nfs



On 10/31/18 4:02 PM, Chuck Lever wrote:
> Replace an unmatched single quote to help syntax coloring editors.
> 
> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
> ---
>  configure.ac |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/configure.ac b/configure.ac
> index cf1c4b9..16eae06 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -165,7 +165,7 @@ AC_ARG_ENABLE(uuid,
>  	choose_blkid=default)
>  AC_ARG_ENABLE(mount,
>  	[AC_HELP_STRING([--disable-mount],
> -		[Don't build mount.nfs and do use the util-linux mount(8) functionality. @<:@default=no@:>@])],
> +		[Do not build mount.nfs and do use the util-linux mount(8) functionality. @<:@default=no@:>@])],
>  	enable_mount=$enableval,
>  	enable_mount=yes)
>  	AM_CONDITIONAL(CONFIG_MOUNT, [test "$enable_mount" = "yes"])
> 
All three patches committed.... 

steved.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 1/3] Fix quoting in configure.ac
  2018-11-29 18:46 ` [PATCH v1 1/3] Fix quoting in configure.ac Steve Dickson
@ 2018-11-29 18:47   ` Chuck Lever
  0 siblings, 0 replies; 9+ messages in thread
From: Chuck Lever @ 2018-11-29 18:47 UTC (permalink / raw)
  To: Steve Dickson; +Cc: Linux NFS Mailing List



> On Nov 29, 2018, at 1:46 PM, Steve Dickson <SteveD@RedHat.com> wrote:
> 
> 
> 
> On 10/31/18 4:02 PM, Chuck Lever wrote:
>> Replace an unmatched single quote to help syntax coloring editors.
>> 
>> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
>> ---
>> configure.ac |    2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/configure.ac b/configure.ac
>> index cf1c4b9..16eae06 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -165,7 +165,7 @@ AC_ARG_ENABLE(uuid,
>> 	choose_blkid=default)
>> AC_ARG_ENABLE(mount,
>> 	[AC_HELP_STRING([--disable-mount],
>> -		[Don't build mount.nfs and do use the util-linux mount(8) functionality. @<:@default=no@:>@])],
>> +		[Do not build mount.nfs and do use the util-linux mount(8) functionality. @<:@default=no@:>@])],
>> 	enable_mount=$enableval,
>> 	enable_mount=yes)
>> 	AM_CONDITIONAL(CONFIG_MOUNT, [test "$enable_mount" = "yes"])
>> 
> All three patches committed.... 

Excellent, thanks!


--
Chuck Lever




^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2018-11-29 18:47 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-31 20:02 [PATCH v1 1/3] Fix quoting in configure.ac Chuck Lever
2018-10-31 20:02 ` [PATCH v1 2/3] Harden configure.ac checks for libxml2 Chuck Lever
2018-10-31 20:02 ` [PATCH v1 3/3] Finish port of junction support to nfs-utils Chuck Lever
2018-11-27 16:45   ` Chuck Lever
2018-11-28 21:00     ` Steve Dickson
2018-11-28 21:05       ` Chuck Lever
2018-11-29 18:37         ` Steve Dickson
2018-11-29 18:46 ` [PATCH v1 1/3] Fix quoting in configure.ac Steve Dickson
2018-11-29 18:47   ` Chuck Lever

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.