Re: [PATCH] Disable NFS translator & daemon when Sun RPC support is missing

2011-11-04 Thread Thomas Schwinge
Hi!

On Fri, 04 Nov 2011 21:40:32 +0100, l...@gnu.org (Ludovic 
=?iso-8859-1?Q?Court=E8s?=) wrote:
> Thomas Schwinge  skribis:
> > In the TI-RPC case, we will need to link against an additional library, I
> > assume?
> 
> Yes.
> 
> > If yes, are you able to make an educated guess and add support for
> > that already now, to have it added to nfs and nfsd's link command
> > lines?  (So that it'll just work once TI-RPC is built, and we don't
> > have to revisit this issue then.)
> 
> TI-RPC has a pkg-config file but I thought we’d rather add a
> PKG_CHECK_MODULES when we know TI-RPC is actually usable.  Until then,
> just bailing out like this seemed reasonable.  WDYT?

OK.  I'll put it into the long Open Issue list.


> Below is an updated patch.

Thanks, please commit.


Grüße,
 Thomas


pgpSG3BCYzKOR.pgp
Description: PGP signature


Re: [PATCH] Disable NFS translator & daemon when Sun RPC support is missing

2011-11-04 Thread Ludovic Courtès
Hi Thomas,

Thanks for the quick reply.

Thomas Schwinge  skribis:

> On Thu, 03 Nov 2011 23:12:52 +0100, l...@gnu.org (Ludovic 
> =?iso-8859-1?Q?Court=E8s?=) wrote:
>> The patch below disables building of the NFS translator and daemon when
>> Sun/ONC RPC support is missing, as is the case with GNU libc 2.14+, and
>> until TI-RPC actually is actually buildable on GNU.
>> 
>> OK to apply?
>
> Thanks, and generally OK; some minor comments though.
>
> (And I'm assuming you have tested this.)

I did.

>> +# Whether TI-RPC or GNU libc's RPC support is available.
>> +HAVE_SUN_RPC = @HAVE_SUN_RPC@
>
> Let's just say ``Sun RPC'', or what is the proper name?

The historical name is “Sun RPC”; the standard but less widely used name
is “ONC RPC”: .

>> diff --git a/configure.in b/configure.in
>> index 1cf4daa..283e52c 100644
>> --- a/configure.in
>> +++ b/configure.in
>
> Will also need to commit an updated configure file in the same patch
> (removing the automatically regeneratable files is worth a different
> patch).

In the same patch, OK (I’d have done it in a separate patch to improve
readability and cherry-pickability.)

>> +# Check for Sun RPC headers.  Sun RPC support is no longer available
>> +# starting from GNU libc 2.14 and will be provided by TI-RPC.
>> +# However TI-RPC has yet to be ported to GNU/Hurd:
>> +# see .
>
> I suggest to move the ``Sun RPC support is no longer [...]'' text into
> (the largely outdated) README.CVS file, where other build requirements
> are documented.  As in the config.make.in hunk, we don't need
> specifically glibc or TI-RPC RPC support, but just some Sun RPC
> implementation.

OK.

>> +AC_CHECK_HEADER([rpc/types.h], [HAVE_SUN_RPC=yes], [HAVE_SUN_RPC=no])
>> +AC_SEARCH_LIBS([clnt_create], [], [:], [HAVE_SUN_RPC=no])
>> +AC_SUBST([HAVE_SUN_RPC])
>
> In the TI-RPC case, we will need to link against an additional library, I
> assume?

Yes.

> If yes, are you able to make an educated guess and add support for
> that already now, to have it added to nfs and nfsd's link command
> lines?  (So that it'll just work once TI-RPC is built, and we don't
> have to revisit this issue then.)

TI-RPC has a pkg-config file but I thought we’d rather add a
PKG_CHECK_MODULES when we know TI-RPC is actually usable.  Until then,
just bailing out like this seemed reasonable.  WDYT?

> In that case also change the text above to ``Check for Sun RPC headers
> and libraries''.  Compare to PARTED_LIBS handling, but without the
> PARTED_FAIL stuff.  (Just no nfs and nfsd if no RPC implementation can
> be found.)

OK.

Below is an updated patch.

Thanks!

Ludo’.

diff --git a/Makefile b/Makefile
index ad187d0..e0ba052 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 #
 #   Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2004,
-#   2006, 2009 Free Software Foundation, Inc.
+#   2006, 2009, 2011 Free Software Foundation, Inc.
 #
 #   This program is free software; you can redistribute it and/or
 #   modify it under the terms of the GNU General Public License as
@@ -35,13 +35,17 @@ lib-subdirs = libshouldbeinlibc libihash libiohelp libports libthreads \
 
 # Hurd programs
 prog-subdirs = auth proc exec init term \
-	   ufs ext2fs isofs nfs tmpfs fatfs \
+	   ufs ext2fs isofs tmpfs fatfs \
 	   storeio pflocal pfinet defpager mach-defpager \
-	   login daemons nfsd boot console \
+	   login daemons boot console \
 	   hostmux usermux ftpfs trans \
 	   console-client utils sutils ufs-fsck ufs-utils \
 	   benchmarks fstests
 
+ifeq ($(HAVE_SUN_RPC),yes)
+prog-subdirs += nfs nfsd
+endif
+
 # Other directories
 other-subdirs = hurd doc config release include
 
diff --git a/README.CVS b/README.CVS
index 781acde..92a2392 100644
--- a/README.CVS
+++ b/README.CVS
@@ -17,6 +17,13 @@ GNU Mach	at least 1.3
 GNU C library	CVS from 2004-03-09 or later
 GNU C compiler	at least 3.3.2
 
+Optionally, a Sun RPC implementation is needed to build the NFS
+translator and daemon:
+
+GNU C library   at most 2.13
+TI-RPC  (currently fails to build on GNU, see
+ .)
+
 Obviously, you also need somewhat recent versions of binutils, make,
 bash and some other tools.  No hard requirements are currently known
 for these, though.
diff --git a/config.make.in b/config.make.in
index 986ea2a..beb89d1 100644
--- a/config.make.in
+++ b/config.make.in
@@ -66,6 +66,9 @@ PARTED_LIBS = @PARTED_LIBS@
 LIBNCURSESW = @LIBNCURSESW@
 NCURSESW_INCLUDE = @NCURSESW_INCLUDE@
 
+# Whether Sun RPC support is available.
+HAVE_SUN_RPC = @HAVE_SUN_RPC@
+
 # Installation tools.
 INSTALL = @INSTALL@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
diff --git a/configure.in b/configure.in
index 1cf4daa..635242d 100644
--- a/configure.in
+++ b/configure.in
@@ -230,6 +230,11 @@ AC_MSG_RESULT($boot_store_types)
 # Check for ncursesw, which is 

Re: [PATCH] Disable NFS translator & daemon when Sun RPC support is missing

2011-11-04 Thread Thomas Schwinge
Hi!

On Thu, 03 Nov 2011 23:12:52 +0100, l...@gnu.org (Ludovic 
=?iso-8859-1?Q?Court=E8s?=) wrote:
> The patch below disables building of the NFS translator and daemon when
> Sun/ONC RPC support is missing, as is the case with GNU libc 2.14+, and
> until TI-RPC actually is actually buildable on GNU.
> 
> OK to apply?

Thanks, and generally OK; some minor comments though.

(And I'm assuming you have tested this.)

> diff --git a/Makefile b/Makefile
> index ad187d0..e0ba052 100644
> --- a/Makefile
> +++ b/Makefile

OK.

> diff --git a/config.make.in b/config.make.in
> index 986ea2a..beb89d1 100644
> --- a/config.make.in
> +++ b/config.make.in
> @@ -66,6 +66,9 @@ PARTED_LIBS = @PARTED_LIBS@
>  LIBNCURSESW = @LIBNCURSESW@
>  NCURSESW_INCLUDE = @NCURSESW_INCLUDE@
>  
> +# Whether TI-RPC or GNU libc's RPC support is available.
> +HAVE_SUN_RPC = @HAVE_SUN_RPC@

Let's just say ``Sun RPC'', or what is the proper name?

> diff --git a/configure.in b/configure.in
> index 1cf4daa..283e52c 100644
> --- a/configure.in
> +++ b/configure.in

Will also need to commit an updated configure file in the same patch
(removing the automatically regeneratable files is worth a different
patch).

> +# Check for Sun RPC headers.  Sun RPC support is no longer available
> +# starting from GNU libc 2.14 and will be provided by TI-RPC.
> +# However TI-RPC has yet to be ported to GNU/Hurd:
> +# see .

I suggest to move the ``Sun RPC support is no longer [...]'' text into
(the largely outdated) README.CVS file, where other build requirements
are documented.  As in the config.make.in hunk, we don't need
specifically glibc or TI-RPC RPC support, but just some Sun RPC
implementation.

> +AC_CHECK_HEADER([rpc/types.h], [HAVE_SUN_RPC=yes], [HAVE_SUN_RPC=no])
> +AC_SEARCH_LIBS([clnt_create], [], [:], [HAVE_SUN_RPC=no])
> +AC_SUBST([HAVE_SUN_RPC])

In the TI-RPC case, we will need to link against an additional library, I
assume?  If yes, are you able to make an educated guess and add support
for that already now, to have it added to nfs and nfsd's link command
lines?  (So that it'll just work once TI-RPC is built, and we don't have
to revisit this issue then.)  In that case also change the text above to
``Check for Sun RPC headers and libraries''.  Compare to PARTED_LIBS
handling, but without the PARTED_FAIL stuff.  (Just no nfs and nfsd if no
RPC implementation can be found.)


Grüße,
 Thomas


pgpSEi711qMp3.pgp
Description: PGP signature