diff options
| author | Thorsten Kukuk <kukuk@thkukuk.de> | 2017-03-21 15:14:27 +0100 |
|---|---|---|
| committer | Thorsten Kukuk <kukuk@thkukuk.de> | 2017-03-21 15:14:27 +0100 |
| commit | 1e4d83f6fe38613e6f209ff09dfad8e69a6e1629 (patch) | |
| tree | d057ece318f4dd2665e761933db8c552f25a1006 | |
| parent | 76b2c32a166f4812c0649162c9df99d707779304 (diff) | |
| download | glibc-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>
48 files changed, 300 insertions, 81 deletions
@@ -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] @@ -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@ @@ -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 |
