Re: [RFC PATCH v4 1/2] configure: Remove --enable-obsolete-nsl

2020-06-30 Thread Petr Vorel
Hi Florian,

thank you for your review. I'll have time to send next version in second
half of July.

> * Petr Vorel:

> > diff --git a/NEWS b/NEWS
> > index a660fc59a8..cfaf50c816 100644
> > --- a/NEWS
> > +++ b/NEWS
> > @@ -33,6 +33,14 @@ Major new features:

> >  Deprecated and removed features, and other changes affecting compatibility:

> > +* Remove configure option --enable-obsolete-nsl. libnsl is only built as 
> > shared
> > +  library for backward compatibility and the NSS modules libnss_compat,
> > +  libnss_nis and libnss_nisplus are not built at all, libnsl's headers 
> > aren't
> > +  installed. This compatibility is kept only for architectures and ABIs 
> > that
> > +  have been added in or before version 2.28. Replacement implementations 
> > based
> > +  on TI-RPC, which additionally support IPv6, are available from
> > +  <https://github.com/thkukuk/>.
> > +

> Please add two spaces after sentence-ending periods.  And wrap the lines
> a bit earlier (column 72 or so).
Sure, sorry (my setup is 80, but I'll set it 72 for glibc).

> > diff --git a/grp/initgroups.c b/grp/initgroups.c
> > index f4c4e986e9..0c17141117 100644
> > --- a/grp/initgroups.c
> > +++ b/grp/initgroups.c
> > @@ -31,12 +31,6 @@
> >  #include "../nscd/nscd-client.h"
> >  #include "../nscd/nscd_proto.h"

> > -#ifdef LINK_OBSOLETE_NSL
> > -# define DEFAULT_CONFIG "compat [NOTFOUND=return] files"
> > -#else
> > -# define DEFAULT_CONFIG "files"
> > -#endif
> > -

> That looks a bit like a pre-existing bug—we do have nss_compat even
> without libnsl.  But the change itself looks okay.
Hm, I'll have look into it after this patchset is finished, but not sure
if I'm able to fix this.

> > diff --git a/manual/nss.texi b/manual/nss.texi
> > index 821469a78a..7cb307246a 100644
> > --- a/manual/nss.texi
> > +++ b/manual/nss.texi
> > @@ -328,17 +328,11 @@ For the @code{hosts} and @code{networks} databases 
> > the default value is
> >  the DNS service not to be available but if it is available the answer it
> >  returns is definitive.

> > -The @code{passwd}, @code{group}, and @code{shadow} databases are
> > +The @code{passwd}, @code{group}, and @code{shadow} databases was
> >  traditionally handled in a special way.  The appropriate files in the
> > -@file{/etc} directory are read but if an entry with a name starting
> > -with a @code{+} character is found NIS is used.  This kind of lookup
> > -remains possible if @theglibc{} was configured with the
> > -@code{--enable-obsolete-nsl} option and the special lookup service
> > -@code{compat} is used.  If @theglibc{} was configured with the
> > -@code{--enable-obsolete-nsl} option the default value for the three
> > -databases above is @code{compat [NOTFOUND=return] files}.  If the
> > -@code{--enable-obsolete-nsl} option was not used the default value
> > -for the services is @code{files}.
> > +@file{/etc} directory were read but if an entry with a name starting
> > +with a @code{+} character was found NIS was used.  This kind of lookup
> > +was removed and now the default value for the services is @code{files}.

> I wonder if it makes sense to reference nss_compat here?
Hm, libnss_compat is not built (now libnsl is only built as shared library, for
platforms where it was supported), so what exactly would you put here?

> Thanks,
> Florian


Kind regards,
Petr



[RFC PATCH v5 1/2] Remove --enable-obsolete-nsl

2020-06-30 Thread Petr Vorel
this means that *always* libnsl is only built as shared library for
backward compatibility and the NSS modules libnss_nis and libnss_nisplus
are not built at all, libnsl's headers aren't installed.

This compatibility is kept only for architectures and ABIs that have
been added in or before version 2.28.

Replacement implementations based on TIRPC, which additionally support
IPv6, are available from <https://github.com/thkukuk/>.

This change does not affect libnss_compat which does not depended
on libnsl since 2.27 and thus can be used without NIS.

libnsl code depends on Sun RPC, e.g. on --enable-obsolete-rpc (installed
libnsl headers use installed Sun RPC headers), which will be removed in
the following commit.

Signed-off-by: Petr Vorel 
---
changes v4->v5:
* update manual/nsswitch.texi and nss/nsswitch.conf
* mention that libnss_compat does not depended on libnsl since 2.27 and
  thus can be used without NIS
* wrap NEWS with column 72
* update commit message

 INSTALL  |  9 ---
 NEWS | 11 
 config.h.in  |  4 ---
 config.make.in   |  1 -
 configure| 20 +-
 configure.ac | 11 
 grp/initgroups.c |  8 +-
 include/libc-symbols.h   |  9 +--
 manual/install.texi  | 10 ---
 manual/nss.texi  | 15 ---
 manual/nsswitch.texi | 16 +--
 nis/Makefile | 52 +---
 nscd/initgrcache.c   |  8 +-
 nss/grp-lookup.c |  6 +
 nss/nsswitch.c   | 14 +++---
 nss/nsswitch.conf|  2 --
 nss/pwd-lookup.c |  6 +
 nss/spwd-lookup.c|  6 +
 scripts/build-many-glibcs.py |  6 ++---
 19 files changed, 37 insertions(+), 177 deletions(-)

diff --git a/INSTALL b/INSTALL
index 62e78725f5..3f5575e23e 100644
--- a/INSTALL
+++ b/INSTALL
@@ -227,15 +227,6 @@ if 'CFLAGS' is specified it must enable optimization.  For 
example:
   colon-separated list in a single environment variable
   'GLIBC_TUNABLES'.
 
-'--enable-obsolete-nsl'
- By default, libnsl is only built as shared library for backward
- compatibility and the NSS modules libnss_compat, libnss_nis and
- libnss_nisplus are not built at all.  Use this option to enable
- libnsl with all depending NSS modules and header files.  For
- architectures and ABIs that have been added after version 2.28 of
- the GNU C Library this option is not available, and the libnsl
- compatibility library is not built.
-
 '--disable-crypt'
  Do not install the passphrase-hashing library 'libcrypt' or the
  header file 'crypt.h'.  'unistd.h' will still declare the function
diff --git a/NEWS b/NEWS
index a660fc59a8..70be063526 100644
--- a/NEWS
+++ b/NEWS
@@ -33,6 +33,17 @@ Major new features:
 
 Deprecated and removed features, and other changes affecting compatibility:
 
+* Remove configure option --enable-obsolete-nsl. libnsl is only built as
+  shared library for backward compatibility and the NSS modules
+  libnss_nis and libnss_nisplus are not built at all, libnsl's headers
+  aren't installed thus nsswitch.conf needs to be updated.  This
+  compatibility is kept only for architectures and ABIs that have been
+  added in or before version 2.28.  Replacement implementations based on
+  TI-RPC, which additionally support IPv6, are available from
+  <https://github.com/thkukuk/>.  This change does not affect
+  libnss_compat which does not depended on libnsl since 2.27 and thus
+  can be used without NIS.
+
 * The deprecated  header and the sysctl function have been
   removed.  To support old binaries, the sysctl function continues to
   exist as a compatibility symbol (on those architectures which had it),
diff --git a/config.h.in b/config.h.in
index 831eca2fe1..9eb71a81b7 100644
--- a/config.h.in
+++ b/config.h.in
@@ -161,10 +161,6 @@
to link against.  */
 #undef LINK_OBSOLETE_RPC
 
-/* Define if obsolete libnsl code should be made available for user-level
-   code to link against.  */
-#undef LINK_OBSOLETE_NSL
-
 /* Define if Systemtap  probes should be defined.  */
 #undef USE_STAP_PROBE
 
diff --git a/config.make.in b/config.make.in
index 2fed3da773..cefb6d4a90 100644
--- a/config.make.in
+++ b/config.make.in
@@ -97,7 +97,6 @@ build-static-nss = @static_nss@
 cross-compiling = @cross_compiling@
 force-install = @force_install@
 link-obsolete-rpc = @link_obsolete_rpc@
-build-obsolete-nsl = @build_obsolete_nsl@
 build-crypt = @build_crypt@
 build-nscd = @build_nscd@
 use-nscd = @use_nscd@
diff --git a/configure b/configure
index b8ef8c7a51..793c0068cc 100755
--- a/configure
+++ b/configure
@@ -673,7 +673,6 @@ base_machine
 have_tunables
 build_pt_chown
 build_nscd
-build_obsolete_nsl
 link_obsolete_rpc
 libc_cv_static_nss_crypt
 libc_cv_nss_crypt
@@ -786,7 +785,6 @@ enable_experimental_mallo

[RFC PATCH v5 0/2] Remove --enable-obsolete-nsl --enable-obsolete-rpc

2020-06-30 Thread Petr Vorel
Hi,

changes v4->v5:
* update manual/nsswitch.texi and nss/nsswitch.conf
* mention that libnss_compat does not depended on libnsl since 2.27 and
  thus can be used without NIS
* wrap NEWS with column 72

Kind regards,
Petr

Petr Vorel (2):
  Remove --enable-obsolete-nsl
  Remove --enable-obsolete-rpc flag

 INSTALL   |9 -
 Makefile  |4 +
 NEWS  |   19 +
 .../strcoll-inputs/filelist#en_US.UTF-8   |   29 -
 config.h.in   |8 -
 config.make.in|2 -
 configure |   38 +-
 configure.ac  |   22 -
 grp/initgroups.c  |8 +-
 include/libc-symbols.h|   16 +-
 include/shlib-compat.h|8 +-
 manual/install.texi   |   10 -
 manual/nss.texi   |   21 +-
 manual/nsswitch.texi  |   16 +-
 nis/Makefile  |   52 +-
 nscd/initgrcache.c|8 +-
 nss/grp-lookup.c  |6 +-
 nss/nsswitch.c|   14 +-
 nss/nsswitch.conf |2 -
 nss/pwd-lookup.c  |6 +-
 nss/spwd-lookup.c |6 +-
 scripts/build-many-glibcs.py  |8 -
 sunrpc/Makefile   |  135 +-
 sunrpc/bug20790.x |1 -
 sunrpc/proto.h|   65 -
 sunrpc/rpc_clntout.c  |  333 
 sunrpc/rpc_cout.c |  811 -
 sunrpc/rpc_hout.c |  607 ---
 sunrpc/rpc_main.c | 1451 -
 sunrpc/rpc_parse.c|  687 
 sunrpc/rpc_parse.h|  165 --
 sunrpc/rpc_sample.c   |  336 
 sunrpc/rpc_scan.c |  544 --
 sunrpc/rpc_scan.h |  104 --
 sunrpc/rpc_svcout.c   | 1093 -
 sunrpc/rpc_tblout.c   |  178 --
 sunrpc/rpc_util.c |  525 --
 sunrpc/rpc_util.h |  154 --
 sunrpc/rpcgen.c   |2 -
 sunrpc/rpcsvc/bootparam.h |   23 -
 sunrpc/rpcsvc/bootparam_prot.x|   97 --
 sunrpc/rpcsvc/key_prot.x  |  283 
 sunrpc/rpcsvc/klm_prot.x  |  130 --
 sunrpc/rpcsvc/mount.x |  161 --
 sunrpc/rpcsvc/nfs_prot.x  |  352 
 sunrpc/rpcsvc/nlm_prot.x  |  203 ---
 sunrpc/rpcsvc/rex.x   |  229 ---
 sunrpc/rpcsvc/rquota.x|   61 -
 sunrpc/rpcsvc/rstat.x |  145 --
 sunrpc/rpcsvc/rusers.x|  228 ---
 sunrpc/rpcsvc/sm_inter.x  |  110 --
 sunrpc/rpcsvc/spray.x |   84 -
 sunrpc/rpcsvc/yppasswd.x  |   61 -
 53 files changed, 56 insertions(+), 9614 deletions(-)
 delete mode 100644 sunrpc/bug20790.x
 delete mode 100644 sunrpc/proto.h
 delete mode 100644 sunrpc/rpc_clntout.c
 delete mode 100644 sunrpc/rpc_cout.c
 delete mode 100644 sunrpc/rpc_hout.c
 delete mode 100644 sunrpc/rpc_main.c
 delete mode 100644 sunrpc/rpc_parse.c
 delete mode 100644 sunrpc/rpc_parse.h
 delete mode 100644 sunrpc/rpc_sample.c
 delete mode 100644 sunrpc/rpc_scan.c
 delete mode 100644 sunrpc/rpc_scan.h
 delete mode 100644 sunrpc/rpc_svcout.c
 delete mode 100644 sunrpc/rpc_tblout.c
 delete mode 100644 sunrpc/rpc_util.c
 delete mode 100644 sunrpc/rpc_util.h
 delete mode 100644 sunrpc/rpcgen.c
 delete mode 100644 sunrpc/rpcsvc/bootparam.h
 delete mode 100644 sunrpc/rpcsvc/bootparam_prot.x
 delete mode 100644 sunrpc/rpcsvc/key_prot.x
 delete mode 100644 sunrpc/rpcsvc/klm_prot.x
 delete mode 100644 sunrpc/rpcsvc/mount.x
 delete mode 100644 sunrpc/rpcsvc/nfs_prot.x
 delete mode 100644 sunrpc/rpcsvc/nlm_prot.x
 delete mode 100644 sunrpc/rpcsvc/rex.x
 delete mode 100644 sunrpc/rpcsvc/rquota.x
 delete mode 100644 sunrpc/rpcsvc/rstat.x
 delete mode 100644 sunrpc/rpcsvc/rusers.x
 delete mode 100644 sunrpc/rpcsvc/sm_inter.x
 delete mode 100644 sunrpc/rpcsvc/spray.x
 delete mode 100644 sunrpc/rpcsvc/yppasswd.x

-- 
2.27.0.rc0



Re: [RFC PATCH v4 1/2] configure: Remove --enable-obsolete-nsl

2020-06-30 Thread Petr Vorel
Hi Florian,

> * Petr Vorel:

> > thank you for your review. I'll have time to send next version in second
> > half of July.

> If we merge new ports for glibc 2.32, it would be nice not include
> sunrpc in them.  We'll figure something out.
+1. I'll try to send v5 tonight or tomorrow.

> >> > diff --git a/grp/initgroups.c b/grp/initgroups.c
> >> > index f4c4e986e9..0c17141117 100644
> >> > --- a/grp/initgroups.c
> >> > +++ b/grp/initgroups.c
> >> > @@ -31,12 +31,6 @@
> >> >  #include "../nscd/nscd-client.h"
> >> >  #include "../nscd/nscd_proto.h"

> >> > -#ifdef LINK_OBSOLETE_NSL
> >> > -# define DEFAULT_CONFIG "compat [NOTFOUND=return] files"
> >> > -#else
> >> > -# define DEFAULT_CONFIG "files"
> >> > -#endif
> >> > -

> >> That looks a bit like a pre-existing bug—we do have nss_compat even
> >> without libnsl.  But the change itself looks okay.

> > Hm, I'll have look into it after this patchset is finished, but not sure
> > if I'm able to fix this.

> Sorry, no change to the patch is required.  Removing this is fine.  We
> shouldn't have had a default that depends on LINK_OBSOLETE_NSL.

> > Hm, libnss_compat is not built (now libnsl is only built as shared
> > library, for platforms where it was supported), so what exactly would
> > you put here?

> nss_compat no longer depends on libnsl in current glibc.  It can be used
> without NIS, and some users do that.  I don't think your patch changes
> this.
Interesting. I guess adding this would be worth then:
libnss_compat no longer depends on libnsl and can be used without NIS.

> Thanks,
> Florian

Kind regards,
Petr



Re: [RFC PATCH v4 1/2] configure: Remove --enable-obsolete-nsl

2020-06-30 Thread Petr Vorel
Hi Florian,

> * Petr Vorel:

> >> nss_compat no longer depends on libnsl in current glibc.  It can be used
> >> without NIS, and some users do that.  I don't think your patch changes
> >> this.

> > Interesting. I guess adding this would be worth then:
> > libnss_compat no longer depends on libnsl and can be used without NIS.

> We made this change a while back, in glibc 2.27, when the sources were
> moved to nss/nss_compat (from nis/nss_compat).  So this isn't something
> new.
Thanks for info. BTW sent v5, not sure, if this can be a final version.

> Thanks,
> Florian

Kind regards,
Petr



Re: [RFC PATCH v2 0/2] Remove --enable-obsolete-nsl --enable-obsolete-rpc

2020-06-05 Thread Petr Vorel
> Hi,

> I'm still having issues with elf/tst-ldconfig-ld_so_conf-update when
> running with both commits (it's ok when running only first commit).

OK, I noticed core dump (can be reproduced):
systemd-coredump[26018]: Process 26016 (ld-linux-x86-64) of user 1000 dumped 
core.

   PID: 26016 (ld-linux-x86-64)
   UID: 1000 (foo)
   GID: 100 (users)
Signal: 6 (ABRT)
 Timestamp: Fri 2020-06-05 18:41:54 CEST (16min ago)
  Command Line: 
/home/foo/build/glibc/remove-rpc.v2.second-commit.2/elf/ld-linux-x86-64.so.2 
--library-path 
/home/foo/build/glibc/remove-rpc.v2.second-commit.2:/home/foo/build/glibc/remove-rpc.v2.second-commit.2/math:/home/foo/build/glibc/remove-rpc.v2.second-commit.2/elf:/home/foo/build/glibc/remove-rpc.v2.second-commit.2/dlfcn:/home/foo/build/glibc/remove-rpc.v2.second-commit.2/nss:/home/foo/build/glibc/remove-rpc.v2.second-commit.2/nis:/home/foo/build/glibc/remove-rpc.v2.second-commit.2/rt:/home/foo/build/glibc/remove-rpc.v2.second-commit.2/resolv:/home/foo/build/glibc/remove-rpc.v2.second-commit.2/mathvec:/home/foo/build/glibc/remove-rpc.v2.second-commit.2/support:/home/foo/build/glibc/remove-rpc.v2.second-commit.2/crypt:/home/foo/build/glibc/remove-rpc.v2.second-commit.2/nptl
 /home/foo/build/glibc/remove-rpc.v2.second-commit.2/debug/tst-ssp-1
Executable: /home/foo/build/glibc/remove-rpc.v2.second-commit.2/elf/ld.so
 Control Group: /user.slice/user-1000.slice/session-1.scope
  Unit: session-1.scope
 Slice: user-1000.slice
   Session: 1
 Owner UID: 1000 (foo)
   Boot ID: bfef12e3ca2046009a97d35fb89674bc
Machine ID: 66e50c6d8dd0edc674b23b51586326ca
  Hostname: dell5510
   Storage: none
   Message: Process 26016 (ld-linux-x86-64) of user 1000 dumped core.
Coredump entry has no core attached (neither internally in the journal nor 
externally on disk).

Kind regards,
Petr



[RFC PATCH v2 1/2] configure: Remove --enable-obsolete-nsl

2020-06-05 Thread Petr Vorel
this means that *always* libnsl is only built as shared library for
backward compatibility and the NSS modules libnss_compat, libnss_nis and
libnss_nisplus are not built at all, libnsl's headers aren't installed.

This compatibility is kept only for architectures and ABIs that
have been added in or before version 2.28.

Replacement implementations based on TIRPC, which additionally support
IPv6, are available from <https://github.com/thkukuk/>.

Signed-off-by: Petr Vorel 
---
 INSTALL  |  9 ---
 NEWS |  8 ++
 config.h.in  |  4 ---
 config.make.in   |  1 -
 configure| 20 +-
 configure.ac | 11 
 grp/initgroups.c |  8 +-
 include/libc-symbols.h   |  9 +--
 manual/install.texi  | 10 ---
 manual/nss.texi  | 14 +++---
 nis/Makefile | 52 +---
 nscd/initgrcache.c   |  8 +-
 nss/grp-lookup.c |  6 +
 nss/nsswitch.c   | 14 +++---
 nss/pwd-lookup.c |  6 +
 nss/spwd-lookup.c|  6 +
 scripts/build-many-glibcs.py |  6 ++---
 17 files changed, 25 insertions(+), 167 deletions(-)

diff --git a/INSTALL b/INSTALL
index 62e78725f5..3f5575e23e 100644
--- a/INSTALL
+++ b/INSTALL
@@ -227,15 +227,6 @@ if 'CFLAGS' is specified it must enable optimization.  For 
example:
   colon-separated list in a single environment variable
   'GLIBC_TUNABLES'.
 
-'--enable-obsolete-nsl'
- By default, libnsl is only built as shared library for backward
- compatibility and the NSS modules libnss_compat, libnss_nis and
- libnss_nisplus are not built at all.  Use this option to enable
- libnsl with all depending NSS modules and header files.  For
- architectures and ABIs that have been added after version 2.28 of
- the GNU C Library this option is not available, and the libnsl
- compatibility library is not built.
-
 '--disable-crypt'
  Do not install the passphrase-hashing library 'libcrypt' or the
  header file 'crypt.h'.  'unistd.h' will still declare the function
diff --git a/NEWS b/NEWS
index a660fc59a8..cfaf50c816 100644
--- a/NEWS
+++ b/NEWS
@@ -33,6 +33,14 @@ Major new features:
 
 Deprecated and removed features, and other changes affecting compatibility:
 
+* Remove configure option --enable-obsolete-nsl. libnsl is only built as shared
+  library for backward compatibility and the NSS modules libnss_compat,
+  libnss_nis and libnss_nisplus are not built at all, libnsl's headers aren't
+  installed. This compatibility is kept only for architectures and ABIs that
+  have been added in or before version 2.28. Replacement implementations based
+  on TI-RPC, which additionally support IPv6, are available from
+  <https://github.com/thkukuk/>.
+
 * The deprecated  header and the sysctl function have been
   removed.  To support old binaries, the sysctl function continues to
   exist as a compatibility symbol (on those architectures which had it),
diff --git a/config.h.in b/config.h.in
index 831eca2fe1..9eb71a81b7 100644
--- a/config.h.in
+++ b/config.h.in
@@ -161,10 +161,6 @@
to link against.  */
 #undef LINK_OBSOLETE_RPC
 
-/* Define if obsolete libnsl code should be made available for user-level
-   code to link against.  */
-#undef LINK_OBSOLETE_NSL
-
 /* Define if Systemtap  probes should be defined.  */
 #undef USE_STAP_PROBE
 
diff --git a/config.make.in b/config.make.in
index 2fed3da773..cefb6d4a90 100644
--- a/config.make.in
+++ b/config.make.in
@@ -97,7 +97,6 @@ build-static-nss = @static_nss@
 cross-compiling = @cross_compiling@
 force-install = @force_install@
 link-obsolete-rpc = @link_obsolete_rpc@
-build-obsolete-nsl = @build_obsolete_nsl@
 build-crypt = @build_crypt@
 build-nscd = @build_nscd@
 use-nscd = @use_nscd@
diff --git a/configure b/configure
index b8ef8c7a51..793c0068cc 100755
--- a/configure
+++ b/configure
@@ -673,7 +673,6 @@ base_machine
 have_tunables
 build_pt_chown
 build_nscd
-build_obsolete_nsl
 link_obsolete_rpc
 libc_cv_static_nss_crypt
 libc_cv_nss_crypt
@@ -786,7 +785,6 @@ enable_experimental_malloc
 enable_crypt
 enable_nss_crypt
 enable_obsolete_rpc
-enable_obsolete_nsl
 enable_systemtap
 enable_build_nscd
 enable_nscd
@@ -1459,8 +1457,6 @@ Optional Features:
   --enable-nss-crypt  enable libcrypt to use nss
   --enable-obsolete-rpc   build and install the obsolete RPC code for
   link-time usage
-  --enable-obsolete-nsl   build and install the obsolete libnsl library and
-  depending NSS modules
   --enable-systemtap  enable systemtap static probe points [default=no]
   --disable-build-nscddisable building and installing the nscd daemon
   --disable-nscd  library functions will not contact the nscd daemon
@@ -3654,20 +3650,6 @@ if test "$link_obsolete_rpc&q

[RFC PATCH v2 0/2] Remove --enable-obsolete-nsl --enable-obsolete-rpc

2020-06-05 Thread Petr Vorel
Hi,

I'm still having issues with elf/tst-ldconfig-ld_so_conf-update when
running with both commits (it's ok when running only first commit).

$ ../glibc/configure --prefix=/usr
$ make -j`nproc`
$ make -j`nproc` check
  1 FAIL
   4165 PASS
 24 UNSUPPORTED
 12 XFAIL
  6 XPASS
FAIL: elf/tst-ldconfig-ld_so_conf-update

$ strace -o logfile -f -s 222 -tt make test t=elf/tst-ldconfig-ld_so_conf-update
original exit status 1
error: xfopen.c:29: could not open /etc/ld.so.conf (mode "a+"): No such file or 
directory
error: 1 test failures
running post-clean rsync

running under root (uh, that's ugly):
error: xmkdirp.c:63: mkdir_p 
("/home/foo/build/glibc/remove-rpc.v2.second-commit/testroot.root/dev", 0755): 
Permission denied

And indeed chroot
"/home/foo/build/glibc/remove-rpc.v2.second-commit/testroot.root/"
doesn't have etc directory. Simple creating etc directory and copying
ld.so.conf does not help (I'm not surprised).

Und yes, I have cross-compiling = no as Szabolcs noted.
What can be wrong? Do I run testing in a wrong way?
Or did I really introduced bug in second commit?

Kind regards,
Petr

Petr Vorel (2):
  configure: Remove --enable-obsolete-nsl
  Remove --enable-obsolete-rpc flag

 INSTALL   |9 -
 NEWS  |   15 +
 .../strcoll-inputs/filelist#en_US.UTF-8   |   29 -
 config.h.in   |8 -
 config.make.in|2 -
 configure |   38 +-
 configure.ac  |   22 -
 grp/initgroups.c  |8 +-
 include/libc-symbols.h|   16 +-
 include/shlib-compat.h|8 +-
 manual/install.texi   |   10 -
 manual/nss.texi   |   20 +-
 nis/Makefile  |   52 +-
 nscd/initgrcache.c|8 +-
 nss/grp-lookup.c  |6 +-
 nss/nsswitch.c|   14 +-
 nss/pwd-lookup.c  |6 +-
 nss/spwd-lookup.c |6 +-
 scripts/build-many-glibcs.py  |8 -
 sunrpc/Makefile   |  135 +-
 sunrpc/auth_des.c |4 +-
 sunrpc/auth_none.c|2 +-
 sunrpc/auth_unix.c|4 +-
 sunrpc/authdes_prot.c |4 +-
 sunrpc/authuxprot.c   |2 +-
 sunrpc/bug20790.x |1 -
 sunrpc/clnt_gen.c |2 +-
 sunrpc/clnt_perr.c|   10 +-
 sunrpc/clnt_raw.c |2 +-
 sunrpc/clnt_simp.c|2 +-
 sunrpc/clnt_tcp.c |2 +-
 sunrpc/clnt_udp.c |6 +-
 sunrpc/clnt_unix.c|2 +-
 sunrpc/get_myaddr.c   |2 +-
 sunrpc/key_call.c |   18 +-
 sunrpc/key_prot.c |   20 +-
 sunrpc/netname.c  |   10 +-
 sunrpc/pm_getmaps.c   |2 +-
 sunrpc/pm_getport.c   |4 +-
 sunrpc/pmap_clnt.c|4 +-
 sunrpc/pmap_prot.c|2 +-
 sunrpc/pmap_prot2.c   |2 +-
 sunrpc/pmap_rmt.c |8 +-
 sunrpc/proto.h|   65 -
 sunrpc/publickey.c|4 +-
 sunrpc/rpc_clntout.c  |  333 
 sunrpc/rpc_cmsg.c |2 +-
 sunrpc/rpc_common.c   |   10 +-
 sunrpc/rpc_cout.c |  811 -
 sunrpc/rpc_dtable.c   |2 +-
 sunrpc/rpc_hout.c |  607 ---
 sunrpc/rpc_main.c | 1451 -
 sunrpc/rpc_parse.c|  687 
 sunrpc/rpc_parse.h|  165 --
 sunrpc/rpc_prot.c |   14 +-
 sunrpc/rpc_sample.c   |  336 
 sunrpc/rpc_scan.c |  544 --
 sunrpc/rpc_scan.h |  104 --
 sunrpc/rpc_svcout.c   | 1093 -
 sunrpc/rpc_tblout.c   |  178 --
 sunrpc/rpc_thread.c   |8 +-
 sunrpc/rpc_util.c |  525 --
 sunrpc/rpc_util.h |  154 --
 sunrpc/rpcgen.c   |2 -
 sunrpc/rpcsvc/bootparam.h  

Re: [RFC PATCH v2 0/2] Remove --enable-obsolete-nsl --enable-obsolete-rpc

2020-06-06 Thread Petr Vorel
Hi Szabolcs, Joseph,

> On Fri, 5 Jun 2020, Szabolcs Nagy wrote:

> > i would try to see why /etc is not created in the testroot.

> Maybe it was only previously created as part of installing /etc/rpc there 
> and the patch is causing that file no longer to be installed?

Thanks for your tips! Indeed, there is testroot.{root,pristine}/etc/ with
both ld.so.cache and rpc when build master and with first commit only and none
of them (nor the directory) when building whole patchset.

I need to have a closer look into the make system.

Kind regards,
Petr



Re: [RFC PATCH v2 0/2] Remove --enable-obsolete-nsl --enable-obsolete-rpc

2020-06-06 Thread Petr Vorel
Hi,

> On Fri, 5 Jun 2020, Szabolcs Nagy wrote:

> > i would try to see why /etc is not created in the testroot.

> Maybe it was only previously created as part of installing /etc/rpc there 
> and the patch is causing that file no longer to be installed?

Found that. That was the missing piece.
install-others = $(inst_sysconfdir)/rpc

Kind regards,
Petr



[RFC PATCH v3 0/2] Remove --enable-obsolete-nsl --enable-obsolete-rpc

2020-06-06 Thread Petr Vorel
Hi,

changes v2->v3:
* Fix issue with missing etc directory.
It was caused by missing:
install-others = $(inst_sysconfdir)/rpc
But now is /etc/rpc only included on backward compatibility.
It leaded me to create /etc directory for tests in
testroot.pristine/install.stamp make target (I could add maybe_xmkdir
("/etc", 0777); to elf/tst-ldconfig-ld_so_conf-update.c, but this is
safer for future tests), but that wouldn't be needed if /etc/rpc is
always needed.

* Removed rpc/netdb.h for new archs.

* Fix typo in docs.

Few questions:
1) Is ifdef have-GLIBC_2.28 correct guard to get nsl/rpc only to archs which
supported it? Shouldn't it be actually have-GLIBC_2.31?

2) Should new archs also get /etc/rpc?

I've tested only default compilation on x86_64:
Summary of test results:
   4166 PASS
 24 UNSUPPORTED
 12 XFAIL
  6 XPASS

I'll try to test it on other archs, but testing from others (especially
cross-compilation would be great).

Kind regards,
Petr

diff v2->v3:
diff --git Makefile Makefile
index 6dcfe40c25..eb6ac71a97 100644
--- Makefile
+++ Makefile
@@ -585,6 +585,10 @@ $(tests-container) $(addsuffix /tests,$(subdirs)) : \
 $(objpfx)testroot.pristine/install.stamp :
test -d $(objpfx)testroot.pristine || \
  mkdir $(objpfx)testroot.pristine
+   # We need a writable /etc for some of the tests.
+   test -d $(objpfx)testroot.pristine/etc || \
+ mkdir $(objpfx)testroot.pristine/etc && \
+ chmod 777 $(objpfx)testroot.pristine/etc
# We need a working /bin/sh for some of the tests.
test -d $(objpfx)testroot.pristine/bin || \
  mkdir $(objpfx)testroot.pristine/bin
diff --git sunrpc/Makefile sunrpc/Makefile
index 6585706bbe..671d4ccc24 100644
--- sunrpc/Makefile
+++ sunrpc/Makefile
@@ -28,7 +28,7 @@ ifdef have-GLIBC_2.28
 # distribution with some additional changes from the TI-RPC package
 # which is also available from Sun.  The files are heavily changed to
 # compile cleanly and to fit in the GNU environment.  All the code
-# from Sun's rpc, and etc subdirectories is in this directory;
+# from Sun's rpc and etc subdirectories is in this directory;
 # the rpc subdirectory contains only the header files.  Other than
 # that, several files were renamed so as not to exceed 14-character
 # file name limits:
@@ -47,7 +47,7 @@ ifdef have-GLIBC_2.28
 #  svc_auth_unix.c -> svc_authux.c
 #  xdr_reference.c -> xdr_ref.c
 
-headers = rpc/netdb.h
+install-others = $(inst_sysconfdir)/rpc
 
 ifeq ($(build-shared),yes)
 need-export-routines := auth_des auth_unix clnt_gen clnt_perr clnt_tcp \



Petr Vorel (2):
  configure: Remove --enable-obsolete-nsl
  Remove --enable-obsolete-rpc flag

 INSTALL   |9 -
 Makefile  |4 +
 NEWS  |   15 +
 .../strcoll-inputs/filelist#en_US.UTF-8   |   29 -
 config.h.in   |8 -
 config.make.in|2 -
 configure |   38 +-
 configure.ac  |   22 -
 grp/initgroups.c  |8 +-
 include/libc-symbols.h|   16 +-
 include/shlib-compat.h|8 +-
 manual/install.texi   |   10 -
 manual/nss.texi   |   20 +-
 nis/Makefile  |   52 +-
 nscd/initgrcache.c|8 +-
 nss/grp-lookup.c  |6 +-
 nss/nsswitch.c|   14 +-
 nss/pwd-lookup.c  |6 +-
 nss/spwd-lookup.c |6 +-
 scripts/build-many-glibcs.py  |8 -
 sunrpc/Makefile   |  135 +-
 sunrpc/auth_des.c |4 +-
 sunrpc/auth_none.c|2 +-
 sunrpc/auth_unix.c|4 +-
 sunrpc/authdes_prot.c |4 +-
 sunrpc/authuxprot.c   |2 +-
 sunrpc/bug20790.x |1 -
 sunrpc/clnt_gen.c |2 +-
 sunrpc/clnt_perr.c|   10 +-
 sunrpc/clnt_raw.c |2 +-
 sunrpc/clnt_simp.c|2 +-
 sunrpc/clnt_tcp.c |2 +-
 sunrpc/clnt_udp.c |6 +-
 sunrpc/clnt_unix.c|2 +-
 sunrpc/get_myaddr.c   |2 +-
 sunrpc/key_call.c |   18 +-
 sunrpc/key_prot.c |   20 +-
 sunrpc/netname.c  |   10 +-
 sunrpc/pm_getmaps.c   |2 +-
 sunrpc/pm_getport.c  

[RFC PATCH v3 1/2] configure: Remove --enable-obsolete-nsl

2020-06-06 Thread Petr Vorel
this means that *always* libnsl is only built as shared library for
backward compatibility and the NSS modules libnss_compat, libnss_nis and
libnss_nisplus are not built at all, libnsl's headers aren't installed.

This compatibility is kept only for architectures and ABIs that
have been added in or before version 2.28.

Replacement implementations based on TIRPC, which additionally support
IPv6, are available from <https://github.com/thkukuk/>.

Signed-off-by: Petr Vorel 
---
 INSTALL  |  9 ---
 NEWS |  8 ++
 config.h.in  |  4 ---
 config.make.in   |  1 -
 configure| 20 +-
 configure.ac | 11 
 grp/initgroups.c |  8 +-
 include/libc-symbols.h   |  9 +--
 manual/install.texi  | 10 ---
 manual/nss.texi  | 14 +++---
 nis/Makefile | 52 +---
 nscd/initgrcache.c   |  8 +-
 nss/grp-lookup.c |  6 +
 nss/nsswitch.c   | 14 +++---
 nss/pwd-lookup.c |  6 +
 nss/spwd-lookup.c|  6 +
 scripts/build-many-glibcs.py |  6 ++---
 17 files changed, 25 insertions(+), 167 deletions(-)

diff --git a/INSTALL b/INSTALL
index 62e78725f5..3f5575e23e 100644
--- a/INSTALL
+++ b/INSTALL
@@ -227,15 +227,6 @@ if 'CFLAGS' is specified it must enable optimization.  For 
example:
   colon-separated list in a single environment variable
   'GLIBC_TUNABLES'.
 
-'--enable-obsolete-nsl'
- By default, libnsl is only built as shared library for backward
- compatibility and the NSS modules libnss_compat, libnss_nis and
- libnss_nisplus are not built at all.  Use this option to enable
- libnsl with all depending NSS modules and header files.  For
- architectures and ABIs that have been added after version 2.28 of
- the GNU C Library this option is not available, and the libnsl
- compatibility library is not built.
-
 '--disable-crypt'
  Do not install the passphrase-hashing library 'libcrypt' or the
  header file 'crypt.h'.  'unistd.h' will still declare the function
diff --git a/NEWS b/NEWS
index a660fc59a8..cfaf50c816 100644
--- a/NEWS
+++ b/NEWS
@@ -33,6 +33,14 @@ Major new features:
 
 Deprecated and removed features, and other changes affecting compatibility:
 
+* Remove configure option --enable-obsolete-nsl. libnsl is only built as shared
+  library for backward compatibility and the NSS modules libnss_compat,
+  libnss_nis and libnss_nisplus are not built at all, libnsl's headers aren't
+  installed. This compatibility is kept only for architectures and ABIs that
+  have been added in or before version 2.28. Replacement implementations based
+  on TI-RPC, which additionally support IPv6, are available from
+  <https://github.com/thkukuk/>.
+
 * The deprecated  header and the sysctl function have been
   removed.  To support old binaries, the sysctl function continues to
   exist as a compatibility symbol (on those architectures which had it),
diff --git a/config.h.in b/config.h.in
index 831eca2fe1..9eb71a81b7 100644
--- a/config.h.in
+++ b/config.h.in
@@ -161,10 +161,6 @@
to link against.  */
 #undef LINK_OBSOLETE_RPC
 
-/* Define if obsolete libnsl code should be made available for user-level
-   code to link against.  */
-#undef LINK_OBSOLETE_NSL
-
 /* Define if Systemtap  probes should be defined.  */
 #undef USE_STAP_PROBE
 
diff --git a/config.make.in b/config.make.in
index 2fed3da773..cefb6d4a90 100644
--- a/config.make.in
+++ b/config.make.in
@@ -97,7 +97,6 @@ build-static-nss = @static_nss@
 cross-compiling = @cross_compiling@
 force-install = @force_install@
 link-obsolete-rpc = @link_obsolete_rpc@
-build-obsolete-nsl = @build_obsolete_nsl@
 build-crypt = @build_crypt@
 build-nscd = @build_nscd@
 use-nscd = @use_nscd@
diff --git a/configure b/configure
index b8ef8c7a51..793c0068cc 100755
--- a/configure
+++ b/configure
@@ -673,7 +673,6 @@ base_machine
 have_tunables
 build_pt_chown
 build_nscd
-build_obsolete_nsl
 link_obsolete_rpc
 libc_cv_static_nss_crypt
 libc_cv_nss_crypt
@@ -786,7 +785,6 @@ enable_experimental_malloc
 enable_crypt
 enable_nss_crypt
 enable_obsolete_rpc
-enable_obsolete_nsl
 enable_systemtap
 enable_build_nscd
 enable_nscd
@@ -1459,8 +1457,6 @@ Optional Features:
   --enable-nss-crypt  enable libcrypt to use nss
   --enable-obsolete-rpc   build and install the obsolete RPC code for
   link-time usage
-  --enable-obsolete-nsl   build and install the obsolete libnsl library and
-  depending NSS modules
   --enable-systemtap  enable systemtap static probe points [default=no]
   --disable-build-nscddisable building and installing the nscd daemon
   --disable-nscd  library functions will not contact the nscd daemon
@@ -3654,20 +3650,6 @@ if test "$link_obsolete_rpc&q

[RFC PATCH v4 1/2] configure: Remove --enable-obsolete-nsl

2020-06-06 Thread Petr Vorel
this means that *always* libnsl is only built as shared library for
backward compatibility and the NSS modules libnss_compat, libnss_nis and
libnss_nisplus are not built at all, libnsl's headers aren't installed.

This compatibility is kept only for architectures and ABIs that
have been added in or before version 2.28.

Replacement implementations based on TIRPC, which additionally support
IPv6, are available from <https://github.com/thkukuk/>.

NOTE: libnsl code depends on Sun RPC, e.g. on --enable-obsolete-rpc
(installed libnsl headers use installed Sun RPC headers), which will be
removed in following commit.

Signed-off-by: Petr Vorel 
---
 INSTALL  |  9 ---
 NEWS |  8 ++
 config.h.in  |  4 ---
 config.make.in   |  1 -
 configure| 20 +-
 configure.ac | 11 
 grp/initgroups.c |  8 +-
 include/libc-symbols.h   |  9 +--
 manual/install.texi  | 10 ---
 manual/nss.texi  | 14 +++---
 nis/Makefile | 52 +---
 nscd/initgrcache.c   |  8 +-
 nss/grp-lookup.c |  6 +
 nss/nsswitch.c   | 14 +++---
 nss/pwd-lookup.c |  6 +
 nss/spwd-lookup.c|  6 +
 scripts/build-many-glibcs.py |  6 ++---
 17 files changed, 25 insertions(+), 167 deletions(-)

diff --git a/INSTALL b/INSTALL
index 62e78725f5..3f5575e23e 100644
--- a/INSTALL
+++ b/INSTALL
@@ -227,15 +227,6 @@ if 'CFLAGS' is specified it must enable optimization.  For 
example:
   colon-separated list in a single environment variable
   'GLIBC_TUNABLES'.
 
-'--enable-obsolete-nsl'
- By default, libnsl is only built as shared library for backward
- compatibility and the NSS modules libnss_compat, libnss_nis and
- libnss_nisplus are not built at all.  Use this option to enable
- libnsl with all depending NSS modules and header files.  For
- architectures and ABIs that have been added after version 2.28 of
- the GNU C Library this option is not available, and the libnsl
- compatibility library is not built.
-
 '--disable-crypt'
  Do not install the passphrase-hashing library 'libcrypt' or the
  header file 'crypt.h'.  'unistd.h' will still declare the function
diff --git a/NEWS b/NEWS
index a660fc59a8..cfaf50c816 100644
--- a/NEWS
+++ b/NEWS
@@ -33,6 +33,14 @@ Major new features:
 
 Deprecated and removed features, and other changes affecting compatibility:
 
+* Remove configure option --enable-obsolete-nsl. libnsl is only built as shared
+  library for backward compatibility and the NSS modules libnss_compat,
+  libnss_nis and libnss_nisplus are not built at all, libnsl's headers aren't
+  installed. This compatibility is kept only for architectures and ABIs that
+  have been added in or before version 2.28. Replacement implementations based
+  on TI-RPC, which additionally support IPv6, are available from
+  <https://github.com/thkukuk/>.
+
 * The deprecated  header and the sysctl function have been
   removed.  To support old binaries, the sysctl function continues to
   exist as a compatibility symbol (on those architectures which had it),
diff --git a/config.h.in b/config.h.in
index 831eca2fe1..9eb71a81b7 100644
--- a/config.h.in
+++ b/config.h.in
@@ -161,10 +161,6 @@
to link against.  */
 #undef LINK_OBSOLETE_RPC
 
-/* Define if obsolete libnsl code should be made available for user-level
-   code to link against.  */
-#undef LINK_OBSOLETE_NSL
-
 /* Define if Systemtap  probes should be defined.  */
 #undef USE_STAP_PROBE
 
diff --git a/config.make.in b/config.make.in
index 2fed3da773..cefb6d4a90 100644
--- a/config.make.in
+++ b/config.make.in
@@ -97,7 +97,6 @@ build-static-nss = @static_nss@
 cross-compiling = @cross_compiling@
 force-install = @force_install@
 link-obsolete-rpc = @link_obsolete_rpc@
-build-obsolete-nsl = @build_obsolete_nsl@
 build-crypt = @build_crypt@
 build-nscd = @build_nscd@
 use-nscd = @use_nscd@
diff --git a/configure b/configure
index b8ef8c7a51..793c0068cc 100755
--- a/configure
+++ b/configure
@@ -673,7 +673,6 @@ base_machine
 have_tunables
 build_pt_chown
 build_nscd
-build_obsolete_nsl
 link_obsolete_rpc
 libc_cv_static_nss_crypt
 libc_cv_nss_crypt
@@ -786,7 +785,6 @@ enable_experimental_malloc
 enable_crypt
 enable_nss_crypt
 enable_obsolete_rpc
-enable_obsolete_nsl
 enable_systemtap
 enable_build_nscd
 enable_nscd
@@ -1459,8 +1457,6 @@ Optional Features:
   --enable-nss-crypt  enable libcrypt to use nss
   --enable-obsolete-rpc   build and install the obsolete RPC code for
   link-time usage
-  --enable-obsolete-nsl   build and install the obsolete libnsl library and
-  depending NSS modules
   --enable-systemtap  enable systemtap static probe points [default=no]
   --disable-build-nscddisable building an

[RFC PATCH v4 0/2] Remove --enable-obsolete-nsl --enable-obsolete-rpc

2020-06-06 Thread Petr Vorel
Hi,

sorry for posting too many versions.

changes v3->v4:
* Rename libc_hidden_nolink back to libc_hidden_nolink_sunrpc
(more descriptive, fewer line changed).

changes v2->v3:
* Fix issue with missing etc directory.
It was caused by missing:
install-others = $(inst_sysconfdir)/rpc
But now is /etc/rpc only included on backward compatibility.
It leaded me to create /etc directory for tests in
testroot.pristine/install.stamp make target (I could add maybe_xmkdir
("/etc", 0777); to elf/tst-ldconfig-ld_so_conf-update.c, but this is
safer for future tests), but that wouldn't be needed if /etc/rpc is
always needed.

* Removed rpc/netdb.h for new archs.

* Fix typo in docs.

Few questions:
1) Is ifdef have-GLIBC_2.28 correct guard to get nsl/rpc only to archs which
supported it? Shouldn't it be actually have-GLIBC_2.31?

2) Should new archs also get /etc/rpc?

I've tested only default compilation on x86_64:
Summary of test results:
   4166 PASS
 24 UNSUPPORTED
 12 XFAIL
  6 XPASS

I'll try to test it on other archs, but testing from others (especially
cross-compilation would be great).

Kind regards,
Petr

Petr Vorel (2):
  configure: Remove --enable-obsolete-nsl
  Remove --enable-obsolete-rpc flag

 INSTALL   |9 -
 Makefile  |4 +
 NEWS  |   15 +
 .../strcoll-inputs/filelist#en_US.UTF-8   |   29 -
 config.h.in   |8 -
 config.make.in|2 -
 configure |   38 +-
 configure.ac  |   22 -
 grp/initgroups.c  |8 +-
 include/libc-symbols.h|   16 +-
 include/shlib-compat.h|8 +-
 manual/install.texi   |   10 -
 manual/nss.texi   |   20 +-
 nis/Makefile  |   52 +-
 nscd/initgrcache.c|8 +-
 nss/grp-lookup.c  |6 +-
 nss/nsswitch.c|   14 +-
 nss/pwd-lookup.c  |6 +-
 nss/spwd-lookup.c |6 +-
 scripts/build-many-glibcs.py  |8 -
 sunrpc/Makefile   |  135 +-
 sunrpc/bug20790.x |1 -
 sunrpc/proto.h|   65 -
 sunrpc/rpc_clntout.c  |  333 
 sunrpc/rpc_cout.c |  811 -
 sunrpc/rpc_hout.c |  607 ---
 sunrpc/rpc_main.c | 1451 -
 sunrpc/rpc_parse.c|  687 
 sunrpc/rpc_parse.h|  165 --
 sunrpc/rpc_sample.c   |  336 
 sunrpc/rpc_scan.c |  544 --
 sunrpc/rpc_scan.h |  104 --
 sunrpc/rpc_svcout.c   | 1093 -
 sunrpc/rpc_tblout.c   |  178 --
 sunrpc/rpc_util.c |  525 --
 sunrpc/rpc_util.h |  154 --
 sunrpc/rpcgen.c   |2 -
 sunrpc/rpcsvc/bootparam.h |   23 -
 sunrpc/rpcsvc/bootparam_prot.x|   97 --
 sunrpc/rpcsvc/key_prot.x  |  283 
 sunrpc/rpcsvc/klm_prot.x  |  130 --
 sunrpc/rpcsvc/mount.x |  161 --
 sunrpc/rpcsvc/nfs_prot.x  |  352 
 sunrpc/rpcsvc/nlm_prot.x  |  203 ---
 sunrpc/rpcsvc/rex.x   |  229 ---
 sunrpc/rpcsvc/rquota.x|   61 -
 sunrpc/rpcsvc/rstat.x |  145 --
 sunrpc/rpcsvc/rusers.x|  228 ---
 sunrpc/rpcsvc/sm_inter.x  |  110 --
 sunrpc/rpcsvc/spray.x |   84 -
 sunrpc/rpcsvc/yppasswd.x  |   61 -
 51 files changed, 43 insertions(+), 9604 deletions(-)
 delete mode 100644 sunrpc/bug20790.x
 delete mode 100644 sunrpc/proto.h
 delete mode 100644 sunrpc/rpc_clntout.c
 delete mode 100644 sunrpc/rpc_cout.c
 delete mode 100644 sunrpc/rpc_hout.c
 delete mode 100644 sunrpc/rpc_main.c
 delete mode 100644 sunrpc/rpc_parse.c
 delete mode 100644 sunrpc/rpc_parse.h
 delete mode 100644 sunrpc/rpc_sample.c
 delete mode 100644 sunrpc/rpc_scan.c
 delete mode 100644 sunrpc/rpc_scan.h
 delete mode 100644 sunrpc/rpc_svcout.c
 delete mode 100644 sunrpc/rpc_tblout.c
 delete mode 100644 sunrpc/rpc_util.c
 delete mode 100644 sunrpc/rpc_util.h
 delete mode 100644 sunrpc/rpcgen.c
 delete mode 100644 sunrpc/rpcsvc/bootparam.h
 delete mode 100644 sunrpc/rpcsvc/bootparam_prot.x
 delete mode 100644 sunrpc/rpcsvc/ke

Re: [RFC PATCH v3 0/2] Remove --enable-obsolete-nsl --enable-obsolete-rpc

2020-06-06 Thread Petr Vorel
Hi,

Maybe the naming isn't quite right:
I guess libc_hidden_nolink should be libc_hidden_nolink_sunrpc (thus files in
sunrpc/ will not have to be renamed) => v4.

I kept libnsl_hidden_nolink_def. I could rename it to libnsl_hidden_nolink if
desired.

Kind regards,
Petr



Re: [RFC PATCH v4 1/2] configure: Remove --enable-obsolete-nsl

2020-06-09 Thread Petr Vorel
Hi Szabolcs,

...
> > +* Remove configure option --enable-obsolete-nsl. libnsl is only built as 
> > shared
> > +  library for backward compatibility and the NSS modules libnss_compat,
> > +  libnss_nis and libnss_nisplus are not built at all, libnsl's headers 
> > aren't
> > +  installed. This compatibility is kept only for architectures and ABIs 
> > that
> > +  have been added in or before version 2.28. Replacement implementations 
> > based
> > +  on TI-RPC, which additionally support IPv6, are available from
> > +  .

> can it cause libc update problems on systems that
> have nsswitch.conf referencing those old nss libs?

> maybe mention that configs may need to be updated?
Good point, thanks! I only mentioned it in news, but at least these files needs
to be updated:
manual/install.texi
manual/nsswitch.texi
manual/nss.texi
nss/nsswitch.conf
shlib-versions

And, if it gets merged and released,
man5/nsswitch.conf.5.html from man-pages project needs to be updated as well.

Not sure what should be done with shlib-versions. Should be NIS related setup
(libnsl=1, libnss_nis=2, libnss_nisplus=2) simply deleted?  There is also NIS
mentioned in arch specific sysdeps/unix/sysv/linux/mips/shlib-versions.

Kind regards,
Petr



Re: [RFC PATCH] Remove --enable-obsolete-rpc flag

2020-06-04 Thread Petr Vorel
Hi,

[ Cc: Debian glibc maintainers and Buildroot maintainer (the only distros I'm
aware of they use it, although there will be others) ]

> The 06/04/2020 12:35, Petr Vorel wrote:
> > The Sun RPC headers are not built, rpcgen program, librpcsvc and
> > test for bug #20790 are completely removed.

> > libtirpc is mature enough, librpcsvc and rpcgen are provided in
> > rpcsvc-proto project.

> i don't have a strong opinion on this, but i know we
> have internal build scripts with --enable-obsolete-rpc
> so i guess we will have to update those build scripts.

> a bit more background detail may be useful in the
> commit message though to help those who will have to
> transition.

I'm maintaining TI-RPC tests in LTP [1] (ugly, buggy, not covering much from
TI-RPC and should be rewritten from scratch, but I just scratched a surface).
While debugging some of the problems with Steve [2] I found that there are
problems using certain functionality on netns. Not sure if anybody cares about
bug fixing of the glibc implementation, I'd personally prefer the development
moved to libtirpc and rpcsvc-proto. But agree all this might not be a good
reason.

[1] https://github.com/linux-test-project/ltp/tree/master/testcases/network/rpc
[2] https://sourceforge.net/p/libtirpc/mailman/message/37014992/

> > this is a naive approach to stop providing the Sun RPC headers and
> > related tools. It'd be great to move on and encourage using libtirpc and
> > rpcsvc-proto for the rest of the users which are still using glibc
> > implementation on never distros. Is it too early for it? If not,
> > dropping --enable-obsolete-nsl could also be considered.

> > make check failed on elf/tst-ldconfig-ld_so_conf-update and I was not
> > able to figure out what broke it:
> > FAIL: elf/tst-ldconfig-ld_so_conf-update
> > Any hint what's wrong?

> well first look at elf/tst-ldconfig-ld_so_conf-update.out
Thanks!

error: xfopen.c:29: could not open /etc/ld.so.conf (mode "a+"): No such file or 
directory
error: 1 test failures
running post-clean rsync

> i usually get this if etc/ld.so.cache is not installed
> (e.g. cross-compiling != no in config.make) or if it
> is not updated in the testroot container, but it can
> fail for various reasons, you can try to run
OK, I'll try to run ldconfig.
Sorry for missing obvious problems.

> strace -o logfile -f -s 222 -tt make test t=elf/tst-ldconfig-ld_so_conf-update
Thanks a lot! Previously I looked at 
https://sourceware.org/glibc/wiki/Testing/Testsuite

> and look for a failing test child process and work
> backwards to see what might have caused that failure.

> >  86 files changed, 160 insertions(+), 9587 deletions(-)

> nice.

Kind regards,
Petr