1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-03-09 15:50:02 +00:00

linux.cf: add libtirpc support. Disabled by default.

Currently on Linux, you must run rpcbind in insecure mode (-i) in
order for ttsession to register with rpcbind (the portmapper).  This
is because, on most systems, libc contains an older sun-based rpc
library embedded within it.  The sun-rpc code does not know how to
authenticate with rpcbind when run as a non-privileged user.

Using libtirpc, ttsession can register with rpcbind without requiring
it to be run in insecure mode.  You must have the libtirpc-dev, or
equivalent package installed to use it.

If you want to try this:

- install libtirpc-dev or equivalent
- if your rpcbind process is already running in insecure mode (-i
  option), remove that option and restart it.
- edit config/host.def, (create if it doesn't exist) and add:

  #define HasTIRPCLib  YES

- rebuild CDE (make World).  It's probably a good idea to remove
  /usr/dt/* beforehand to avoid contamination.

Some linux systems seem to incorporate tirpc directly into libc (as
all of the BSD's do AFAIK) so this may not be needed.

I know that at least on Ubuntu systems defining HasTIRPCLib to YES is
required in order to run rpcbind without -i.
This commit is contained in:
Jon Trulson 2012-09-03 19:50:10 -06:00
parent a29fc20957
commit 591e58fe1a

View file

@ -23,7 +23,7 @@ XCOMM platform: $TOG: linux.cf /main/47 1998/04/17 11:32:51 mgreess $
/* /*
Add "#define LinuxDistribution Linux<mumble>" to your site.def or host.def. Add "#define LinuxDistribution Linux<mumble>" to your site.def or host.def.
Currently only LinuxSuSE will be figured out automatically. Currently only LinuxSuSE will be figured out automatically.
Valid values are (from the list at www.linux.org in Oct. '97): Valid values are (from the list at www.linux.org in Oct. 1997):
LinuxUnknown (0) LinuxUnknown (0)
LinuxSuSE (1) LinuxSuSE (1)
LinuxCaldera (2) LinuxCaldera (2)
@ -117,6 +117,22 @@ XCOMM binutils: (LinuxBinUtilsMajorVersion)
#define LinuxLocaleDefines /**/ #define LinuxLocaleDefines /**/
XCOMM If you have the tirpc library on your system, and you have the
XCOMM libtirpc-dev installed, then define HasTIRPCLib to YES in either
XCOMM your host.def or site.def file. Using the tirpc lib should
XCOMM allow running rpcbind in secure mode (ie: without the -i option).
XCOMM The default is NO.
#ifndef HasTIRPCLib
# define HasTIRPCLib NO
#endif
#if HasTIRPCLib
TIRPCLIB = -ltirpc
#else
TIRPCLIB =
#endif
#if LinuxCLibMajorVersion < 6 #if LinuxCLibMajorVersion < 6
# define LinuxSourceDefines -D_POSIX_SOURCE \ # define LinuxSourceDefines -D_POSIX_SOURCE \
-D_BSD_SOURCE -D_SVID_SOURCE LinuxLocaleDefines -D_BSD_SOURCE -D_SVID_SOURCE LinuxLocaleDefines
@ -128,8 +144,8 @@ XCOMM binutils: (LinuxBinUtilsMajorVersion)
# define LinuxSourceDefines -D_POSIX_C_SOURCE=199309L \ # define LinuxSourceDefines -D_POSIX_C_SOURCE=199309L \
-D_POSIX_SOURCE \ -D_POSIX_SOURCE \
-D_BSD_SOURCE -D_SVID_SOURCE -D_XOPEN_SOURCE \ -D_BSD_SOURCE -D_SVID_SOURCE -D_XOPEN_SOURCE \
-D__NO_STRING_INLINES -D__NO_MATH_INLINES \ -D__NO_STRING_INLINES -D__NO_MATH_INLINES \
LinuxLocaleDefines LinuxLocaleDefines
# define HasPosixThreads YES # define HasPosixThreads YES
# define ThreadedX YES # define ThreadedX YES
# define HasThreadSafeAPI YES # define HasThreadSafeAPI YES
@ -232,7 +248,7 @@ XCOMM This is needed for CDE currently
#define ArchitectureDefines -DLINUX_ARCHITECTURE #define ArchitectureDefines -DLINUX_ARCHITECTURE
#define TtClientLibs $(TTLIB) $(XTOOLLIB) $(XLIB) #define TtClientLibs $(TTLIB) $(TIRPCLIB) $(XTOOLLIB) $(XLIB)
#define TtClientDepLibs $(DEPTTLIB) $(DEPXTOOLLIB) $(DEPXLIB) #define TtClientDepLibs $(DEPTTLIB) $(DEPXTOOLLIB) $(DEPXLIB)
#include <lnxLib.rules> #include <lnxLib.rules>