Hi Thomas, Thanks for the quick reply.
Thomas Schwinge <tho...@schwinge.name> 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”: <http://tools.ietf.org/html/rfc1831.html>. >> 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 <http://lists.debian.org/debian-hurd/2010/12/msg00007.html>. > > 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 + <http://lists.debian.org/debian-hurd/2010/12/msg00007.html>.) + 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 needed for the console-curses client. hurd_LIB_NCURSESW +# Check for Sun RPC headers and library. +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]) + if test -f ./$ac_unique_file; then # Configuring in source directory; don't create any Makefiles. makefiles=