From 6af0e5109484cc5a170c1c3c0b31a8cb0fb5ac04 Mon Sep 17 00:00:00 2001 From: Thorsten Kukuk Date: Sat, 11 Mar 2017 11:36:58 +0100 Subject: [PATCH] If sunrpc code is disabled, rpcsvc header files, rpcgen and librpcsvc.a should not be installed, too. * sunrpc/Makefile: don't build and install rpcsvc header files, rpcgen and librpcsvc.a by default. Signed-off-by: Thorsten Kukuk --- NEWS | 6 ++++++ sunrpc/Makefile | 15 +++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/NEWS b/NEWS index d87e9ce320..9efe1e5c0e 100644 --- a/NEWS +++ b/NEWS @@ -11,6 +11,12 @@ Version 2.26 transliteration tables are all updated to Unicode 9.0.0, using generator scripts contributed by Mike FABIAN (Red Hat). +* The rpcgen, librpcsvc and related headers will only be built and + installed when glibc is configured with --enable-obsolete-rpc. + This allows alternative RPC implementations, like TIRPC, to be used + by default. Applications needing features missing from TIRPC should + consider the rpcsvc-proto project developed by Thorsten Kukuk (SUSE). + Security related changes: [Add security related changes here] diff --git a/sunrpc/Makefile b/sunrpc/Makefile index 063a76161c..1cdaec714d 100644 --- a/sunrpc/Makefile +++ b/sunrpc/Makefile @@ -48,11 +48,10 @@ include ../Makeconfig rpcsvc = bootparam_prot.x nlm_prot.x rstat.x \ yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \ rusers.x spray.x nfs_prot.x rquota.x key_prot.x -headers-in-tirpc = $(addprefix rpc/,auth.h auth_unix.h clnt.h pmap_clnt.h \ - pmap_prot.h pmap_rmt.h rpc.h rpc_msg.h \ - svc.h svc_auth.h types.h xdr.h auth_des.h \ - des_crypt.h) -headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \ +headers-sunrpc = $(addprefix rpc/,auth.h auth_unix.h clnt.h pmap_clnt.h \ + pmap_prot.h pmap_rmt.h rpc.h rpc_msg.h \ + svc.h svc_auth.h types.h xdr.h auth_des.h \ + des_crypt.h key_prot.h rpc_des.h) \ $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h headers = rpc/netdb.h install-others = $(inst_sysconfdir)/rpc @@ -61,7 +60,7 @@ generated += $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \ generated-dirs += rpcsvc ifeq ($(link-obsolete-rpc),yes) -headers += $(headers-in-tirpc) $(headers-not-in-tirpc) +headers += $(headers-sunrpc) endif ifeq ($(build-shared),yes) @@ -86,12 +85,14 @@ shared-only-routines = $(routines) endif endif +ifeq ($(link-obsolete-rpc),yes) install-bin := rpcgen rpcgen-objs = rpc_main.o rpc_hout.o rpc_cout.o rpc_parse.o \ rpc_scan.o rpc_util.o rpc_svcout.o rpc_clntout.o \ rpc_tblout.o rpc_sample.o extra-objs = $(rpcgen-objs) $(addprefix cross-,$(rpcgen-objs)) others += rpcgen +endif tests = tst-xdrmem tst-xdrmem2 test-rpcent tst-udp-error tst-udp-timeout \ tst-udp-nonblocking @@ -107,12 +108,14 @@ rpcgen-tests := $(objpfx)bug20790.out tests-special += $(rpcgen-tests) endif +ifeq ($(link-obsolete-rpc),yes) headers += $(rpcsvc:%.x=rpcsvc/%.h) extra-libs := librpcsvc extra-libs-others := librpcsvc # Make it in `others' pass, not `lib' pass. librpcsvc-routines = $(rpcsvc:%.x=x%) librpcsvc-inhibit-o = .os # Build no shared rpcsvc library. omit-deps = $(librpcsvc-routines) +endif ifeq (yes,$(build-shared)) rpc-compat-routines = $(addprefix compat-,$(need-export-routines))