aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorsten Kukuk <kukuk@thkukuk.de>2017-03-21 15:14:27 +0100
committerThorsten Kukuk <kukuk@thkukuk.de>2017-03-21 15:14:27 +0100
commit1e4d83f6fe38613e6f209ff09dfad8e69a6e1629 (patch)
treed057ece318f4dd2665e761933db8c552f25a1006
parent76b2c32a166f4812c0649162c9df99d707779304 (diff)
downloadglibc-1e4d83f6fe38613e6f209ff09dfad8e69a6e1629.tar.xz
glibc-1e4d83f6fe38613e6f209ff09dfad8e69a6e1629.zip
Deprecate libnsl by default (only shared library will be
build for backward compatibility, no linking possible) and disable building of libnss_compat, libnss_nis and libnss_nisplus, except --enable-obsolete-nsl option is given to configure. * config.h.in: Add LINK_OBSOLETE_NSL. * config.make.in: Add build-obsolete-nsl. * configure.ac: Add obsolete-nsl option. * include/libc-symbols.h: Define libnsl_hidden_nolink_def. * include/rpcsvc/yp.h: Add missing functions as libnsl_hidden_proto. * include/rpcsvc/nislib.h: Likewise. * include/rpcsvc/ypclnt.h: Likewise. * manual/install.texi: Document --enable-obsolete-nsl. * nis/Makefile: Build only libnsl by default (add build-obsolete-nsl). * nis/nis_add.c: Replace libnsl_hidden_def with libnsl_hidden_nolink_def. * nis/nis_addmember.c: Likewise. * nis/nis_call.c: Likewise. * nis/nis_clone_obj.c: Likewise. * nis/nis_defaults.c: Likeise. * nis/nis_domain_of_r.c: Likewise. * nis/nis_error.c: Likewise. * nis/nis_file.c: Likewise. * nis/nis_free.c: Likewise. * nis_local_names.c: Likewise. * nis/nis_lookup.c: Likewise. * nis/nis_modify.c: Likewise. * nis/nis_print.c: Likewise. * nis/nis_remove.c: Likewise. * nis/nis_table.c: Likewise. * nis/nis_util.c: Likewise. * nis/nis_xdr.c: Likewise. * nis/yp_xdr.c: Likewise. * nis/ypclnt.c: Likewise. * nis/ypupdate_xdr.c: Likewise. * nis/nis_checkpoint.c: Add libnsl_hidden_nolink_def to all functions. * nis/nis_clone_dir.c: Likewise. * nis/nis_clone_res.c: Likewise. * nis/nis_creategroup.c: Likewise. * nis/nis_destroygroup.c: Likewise. * nis/nis_domain_of.c: Likewise. * nis/nis_getservlist.c: Likewise. * nis/nis_ismember.c: Likewise. * nis/nis_mkdir.c: Likewise. * nis/nis_ping.c: Likewise. * nis/nis_print_group_entry.c: Likewise. * nis/nis_removemember.c: Likewise. * nis/nis_rmdir.c: Likewise. * nis/nis_server.c: Likewise. * nis/nis_subr.c: Likewise. * nis/nis_verifygroup.c: Likewise. Signed-off-by: Thorsten Kukuk <kukuk@suse.com>
-rw-r--r--ChangeLog49
-rw-r--r--NEWS20
-rw-r--r--config.h.in4
-rw-r--r--config.make.in1
-rwxr-xr-xconfigure18
-rw-r--r--configure.ac11
-rw-r--r--include/libc-symbols.h6
-rw-r--r--include/rpcsvc/nislib.h33
-rw-r--r--include/rpcsvc/yp.h4
-rw-r--r--include/rpcsvc/ypclnt.h9
-rw-r--r--manual/install.texi7
-rw-r--r--nis/Makefile17
-rw-r--r--nis/nis_add.c2
-rw-r--r--nis/nis_addmember.c1
-rw-r--r--nis/nis_call.c12
-rw-r--r--nis/nis_checkpoint.c1
-rw-r--r--nis/nis_clone_dir.c1
-rw-r--r--nis/nis_clone_obj.c2
-rw-r--r--nis/nis_clone_res.c1
-rw-r--r--nis/nis_creategroup.c1
-rw-r--r--nis/nis_defaults.c6
-rw-r--r--nis/nis_destroygroup.c1
-rw-r--r--nis/nis_domain_of.c1
-rw-r--r--nis/nis_domain_of_r.c2
-rw-r--r--nis/nis_error.c7
-rw-r--r--nis/nis_file.c5
-rw-r--r--nis/nis_free.c10
-rw-r--r--nis/nis_getservlist.c2
-rw-r--r--nis/nis_ismember.c1
-rw-r--r--nis/nis_local_names.c8
-rw-r--r--nis/nis_lookup.c2
-rw-r--r--nis/nis_mkdir.c1
-rw-r--r--nis/nis_modify.c2
-rw-r--r--nis/nis_ping.c1
-rw-r--r--nis/nis_print.c15
-rw-r--r--nis/nis_print_group_entry.c1
-rw-r--r--nis/nis_remove.c2
-rw-r--r--nis/nis_removemember.c1
-rw-r--r--nis/nis_rmdir.c1
-rw-r--r--nis/nis_server.c3
-rw-r--r--nis/nis_subr.c14
-rw-r--r--nis/nis_table.c11
-rw-r--r--nis/nis_util.c2
-rw-r--r--nis/nis_verifygroup.c1
-rw-r--r--nis/nis_xdr.c8
-rw-r--r--nis/yp_xdr.c47
-rw-r--r--nis/ypclnt.c20
-rw-r--r--nis/ypupdate_xdr.c6
48 files changed, 300 insertions, 81 deletions
diff --git a/ChangeLog b/ChangeLog
index eb5b25ae02..f500b833de 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,52 @@
+2017-03-21 Thorsten Kukuk <kukuk@suse.com>
+
+ * config.h.in: Add LINK_OBSOLETE_NSL.
+ * config.make.in: Add build-obsolete-nsl.
+ * configure.ac: Add obsolete-nsl option.
+ * include/libc-symbols.h: Define libnsl_hidden_nolink_def.
+ * include/rpcsvc/yp.h: Add missing functions as libnsl_hidden_proto.
+ * include/rpcsvc/nislib.h: Likewise.
+ * include/rpcsvc/ypclnt.h: Likewise.
+ * manual/install.texi: Document --enable-obsolete-nsl.
+ * nis/Makefile: Build only libnsl by default (add build-obsolete-nsl).
+ * nis/nis_add.c: Replace libnsl_hidden_def with
+ libnsl_hidden_nolink_def.
+ * nis/nis_addmember.c: Likewise.
+ * nis/nis_call.c: Likewise.
+ * nis/nis_clone_obj.c: Likewise.
+ * nis/nis_defaults.c: Likeise.
+ * nis/nis_domain_of_r.c: Likewise.
+ * nis/nis_error.c: Likewise.
+ * nis/nis_file.c: Likewise.
+ * nis/nis_free.c: Likewise.
+ * nis_local_names.c: Likewise.
+ * nis/nis_lookup.c: Likewise.
+ * nis/nis_modify.c: Likewise.
+ * nis/nis_print.c: Likewise.
+ * nis/nis_remove.c: Likewise.
+ * nis/nis_table.c: Likewise.
+ * nis/nis_util.c: Likewise.
+ * nis/nis_xdr.c: Likewise.
+ * nis/yp_xdr.c: Likewise.
+ * nis/ypclnt.c: Likewise.
+ * nis/ypupdate_xdr.c: Likewise.
+ * nis/nis_checkpoint.c: Add libnsl_hidden_nolink_def to all functions.
+ * nis/nis_clone_dir.c: Likewise.
+ * nis/nis_clone_res.c: Likewise.
+ * nis/nis_creategroup.c: Likewise.
+ * nis/nis_destroygroup.c: Likewise.
+ * nis/nis_domain_of.c: Likewise.
+ * nis/nis_getservlist.c: Likewise.
+ * nis/nis_ismember.c: Likewise.
+ * nis/nis_mkdir.c: Likewise.
+ * nis/nis_ping.c: Likewise.
+ * nis/nis_print_group_entry.c: Likewise.
+ * nis/nis_removemember.c: Likewise.
+ * nis/nis_rmdir.c: Likewise.
+ * nis/nis_server.c: Likewise.
+ * nis/nis_subr.c: Likewise.
+ * nis/nis_verifygroup.c: Likewise.
+
2017-03-20 Joseph Myers <joseph@codesourcery.com>
[BZ #21279]
diff --git a/NEWS b/NEWS
index 9efe1e5c0e..5162534d2d 100644
--- a/NEWS
+++ b/NEWS
@@ -17,6 +17,26 @@ Version 2.26
by default. Applications needing features missing from TIRPC should
consider the rpcsvc-proto project developed by Thorsten Kukuk (SUSE).
+* The NIS(+) name service modules, libnss_nis, libnss_nisplus, and
+ libnss_compat, are deprecated, and will not be built or installed by
+ default. Replacement implementations based on TIRPC, which
+ additionally support IPv6, are available from
+ <https://github.com/thkukuk/libnss_{compat,nis,nisplus}>.
+
+* The NIS(+) support library, libnsl, is deprecated. By default, a
+ compatibility shared library will be built and installed, but not
+ headers or development libraries.
+
+ Only a few NIS-related programs require this library.
+ A replacement implementation based on TIRPC is available from
+ <https://github.com/thkukuk/libnsl>. Like the replacement NIS(+)
+ name service modules, the replacement supports IPv6, and it can be
+ coinstalled with the compatibility shared library from glibc.
+
+* New configure option --enable-obsolete-nsl will cause libnsl's
+ headers, and the NIS(+) name service modules, to be built and
+ installed. This option may be removed in a future release.
+
Security related changes:
[Add security related changes here]
diff --git a/config.h.in b/config.h.in
index fb2cc51c03..4ce845de51 100644
--- a/config.h.in
+++ b/config.h.in
@@ -172,6 +172,10 @@
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 <sys/sdt.h> probes should be defined. */
#undef USE_STAP_PROBE
diff --git a/config.make.in b/config.make.in
index 5836b32a72..d08a462d05 100644
--- a/config.make.in
+++ b/config.make.in
@@ -92,6 +92,7 @@ sysdeps-add-ons = @sysdeps_add_ons@
cross-compiling = @cross_compiling@
force-install = @force_install@
link-obsolete-rpc = @link_obsolete_rpc@
+build-obsolete-nsl = @build_obsolete_nsl@
build-nscd = @build_nscd@
use-nscd = @use_nscd@
build-hardcoded-path-in-tests= @hardcoded_path_in_tests@
diff --git a/configure b/configure
index 5be4ff611f..422482f355 100755
--- a/configure
+++ b/configure
@@ -669,6 +669,7 @@ add_ons
have_tunables
build_pt_chown
build_nscd
+build_obsolete_nsl
link_obsolete_rpc
libc_cv_static_nss_crypt
libc_cv_nss_crypt
@@ -779,6 +780,7 @@ enable_werror
enable_multi_arch
enable_nss_crypt
enable_obsolete_rpc
+enable_obsolete_nsl
enable_systemtap
enable_build_nscd
enable_nscd
@@ -1450,6 +1452,8 @@ 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-nscd disable building and installing the nscd daemon
--disable-nscd library functions will not contact the nscd daemon
@@ -3626,6 +3630,20 @@ if test "$link_obsolete_rpc" = yes; then
fi
+# Check whether --enable-obsolete-nsl was given.
+if test "${enable_obsolete_nsl+set}" = set; then :
+ enableval=$enable_obsolete_nsl; build_obsolete_nsl=$enableval
+else
+ build_obsolete_nsl=no
+fi
+
+
+
+if test "$build_obsolete_nsl" = yes; then
+ $as_echo "#define LINK_OBSOLETE_NSL 1" >>confdefs.h
+
+fi
+
# Check whether --enable-systemtap was given.
if test "${enable_systemtap+set}" = set; then :
enableval=$enable_systemtap; systemtap=$enableval
diff --git a/configure.ac b/configure.ac
index 4981bf9691..7f430425ae 100644
--- a/configure.ac
+++ b/configure.ac
@@ -374,6 +374,17 @@ if test "$link_obsolete_rpc" = yes; then
AC_DEFINE(LINK_OBSOLETE_RPC)
fi
+AC_ARG_ENABLE([obsolete-nsl],
+ AC_HELP_STRING([--enable-obsolete-nsl],
+ [build and install the obsolete libnsl library and depending NSS modules]),
+ [build_obsolete_nsl=$enableval],
+ [build_obsolete_nsl=no])
+AC_SUBST(build_obsolete_nsl)
+
+if test "$build_obsolete_nsl" = yes; then
+ AC_DEFINE(LINK_OBSOLETE_NSL)
+fi
+
AC_ARG_ENABLE([systemtap],
[AS_HELP_STRING([--enable-systemtap],
[enable systemtap static probe points @<:@default=no@:>@])],
diff --git a/include/libc-symbols.h b/include/libc-symbols.h
index 775d8af84e..0783ade0b3 100644
--- a/include/libc-symbols.h
+++ b/include/libc-symbols.h
@@ -663,6 +663,12 @@ for linking")
# define libnsl_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
# define libnsl_hidden_tls_proto(name, attrs...) \
hidden_tls_proto (name, ##attrs)
+# ifdef LINK_OBSOLETE_NSL
+ /* libnsl_hidden_nolink should only get used in libnsl code. */
+# define libnsl_hidden_nolink_def(name, version) libnsl_hidden_def (name)
+# else
+# define libnsl_hidden_nolink_def(name, version) hidden_nolink (name, libnsl, version)
+# endif
# define libnsl_hidden_def(name) hidden_def (name)
# define libnsl_hidden_weak(name) hidden_weak (name)
# define libnsl_hidden_ver(local, name) hidden_ver (local, name)
diff --git a/include/rpcsvc/nislib.h b/include/rpcsvc/nislib.h
index 05b19877e7..91dab1d171 100644
--- a/include/rpcsvc/nislib.h
+++ b/include/rpcsvc/nislib.h
@@ -19,6 +19,7 @@ libnsl_hidden_proto (nis_free_directory)
libnsl_hidden_proto (nis_free_object)
libnsl_hidden_proto (nis_freeresult)
libnsl_hidden_proto (readColdStartFile)
+libnsl_hidden_proto (writeColdStartFile)
libnsl_hidden_proto (nis_print_rights)
libnsl_hidden_proto (nis_print_directory)
libnsl_hidden_proto (nis_print_group)
@@ -43,6 +44,38 @@ libnsl_hidden_proto (__nis_default_owner)
libnsl_hidden_proto (__nis_default_group)
libnsl_hidden_proto (__nis_default_access)
libnsl_hidden_proto (nis_clone_object)
+libnsl_hidden_proto (nis_clone_result)
+libnsl_hidden_proto (nis_print_group_entry)
+libnsl_hidden_proto (nis_verifygroup)
+libnsl_hidden_proto (nis_leaf_of)
+libnsl_hidden_proto (nis_read_obj)
+libnsl_hidden_proto (nis_print_result)
+libnsl_hidden_proto (nis_sperror)
+libnsl_hidden_proto (nis_add_entry)
+libnsl_hidden_proto (nis_mkdir)
+libnsl_hidden_proto (nis_getservlist)
+libnsl_hidden_proto (nis_stats)
+libnsl_hidden_proto (nis_write_obj)
+libnsl_hidden_proto (nis_servstate)
+libnsl_hidden_proto (nis_freetags)
+libnsl_hidden_proto (nis_modify_entry)
+libnsl_hidden_proto (nis_remove_entry)
+libnsl_hidden_proto (nis_first_entry)
+libnsl_hidden_proto (nis_next_entry)
+libnsl_hidden_proto (nis_checkpoint)
+libnsl_hidden_proto (nis_perror)
+libnsl_hidden_proto (nis_lerror)
+libnsl_hidden_proto (nis_freeservlist)
+libnsl_hidden_proto (nis_ismember)
+libnsl_hidden_proto (nis_creategroup)
+libnsl_hidden_proto (nis_destroygroup)
+libnsl_hidden_proto (nis_name_of)
+libnsl_hidden_proto (nis_ping)
+libnsl_hidden_proto (nis_rmdir)
+libnsl_hidden_proto (nis_addmember)
+libnsl_hidden_proto (nis_removemember)
+libnsl_hidden_proto (nis_domain_of)
+libnsl_hidden_proto (nis_clone_directory)
extern const_nis_name __nis_domain_of (const_nis_name) __THROW;
diff --git a/include/rpcsvc/yp.h b/include/rpcsvc/yp.h
index b6d7c15f62..9078854d40 100644
--- a/include/rpcsvc/yp.h
+++ b/include/rpcsvc/yp.h
@@ -24,6 +24,10 @@ libnsl_hidden_proto (xdr_ypresp_maplist)
libnsl_hidden_proto (xdr_ypresp_order)
libnsl_hidden_proto (xdr_ypbind_resp)
libnsl_hidden_proto (xdr_ypresp_master)
+libnsl_hidden_proto (xdr_ypreq_xfr)
+libnsl_hidden_proto (xdr_ypresp_xfr)
+libnsl_hidden_proto (xdr_yppushresp_xfr)
+libnsl_hidden_proto (xdr_ypbind_setdom)
# endif /* !_ISOMAC */
#endif
diff --git a/include/rpcsvc/ypclnt.h b/include/rpcsvc/ypclnt.h
index 1b4e2f215c..df2a03d9c5 100644
--- a/include/rpcsvc/ypclnt.h
+++ b/include/rpcsvc/ypclnt.h
@@ -8,6 +8,15 @@ libnsl_hidden_proto (yp_bind)
libnsl_hidden_proto (yp_get_default_domain)
libnsl_hidden_proto (ypprot_err)
libnsl_hidden_proto (yp_master)
+libnsl_hidden_proto (yp_update)
+libnsl_hidden_proto (yperr_string)
+libnsl_hidden_proto (yp_unbind)
+libnsl_hidden_proto (yp_order)
+libnsl_hidden_proto (yp_first)
+libnsl_hidden_proto (yp_next)
+libnsl_hidden_proto (yp_match)
+libnsl_hidden_proto (yp_all)
+libnsl_hidden_proto (__yp_check)
# endif /* !_ISOMAC */
#endif
diff --git a/manual/install.texi b/manual/install.texi
index 3398cfab02..99397c2ee0 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -226,6 +226,13 @@ This frontend allows users to specify tunables as a colon-separated list in a
single environment variable @env{GLIBC_TUNABLES}.
@end table
+@item --enable-obsolete-nsl
+By default, libnsl is only