URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Subversion Repositories openrisc_2011-10-31
[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [librpc/] [src/] [rpc/] [README] - Rev 173
Compare with Previous | Blame | View Log
RPCSRC 4.0 7/11/89This distribution contains Sun Microsystem's implementation of theRPC and XDR protocols and is compatible with 4.2BSD and 4.3BSD. Alsoincluded is complete documentation, utilities, RPC servicespecification files, and demonstration services in the format used bythe RPC protocol compiler (rpcgen). See WHAT'S NEW below fordetails.NOTE ABOUT SECURE RPC:This release of RPCSRC contains most of the code needed to implementSecure RPC (see "DES Authentication" in the RPC Protocol Specification,doc/rpc.rfc.ms). Due to legal considerations, we are unable todistribute an implementation of DES, the Data Encryption Standard, whichSecure RPC requires. For this reason, all of the files, documentation, andprograms associated with Secure RPC have been placed into a separatedirectory, secure_rpc. The RPC library contained in the main body of thisrelease *DOES NOT* support Secure RPC. See secure_rpc/README for moredetails. (A DES library was posted in Volume 18 of comp.sources.unix.)If you wish to report bugs found in this release, send mail to:Portable ONC/NFSSun Microsystems, IncMS 12-332550 Garcia AvenueMountain View, CA 94043or send Email to nfsnet@sun.com (the Internet) or sun!nfsnet (Usenet).ROADMAPThe directory hierarchy is as follows:demo/ Various demonstration servicesdemo/dir Remote directory listerdemo/msg Remote console message delivery servicedemo/sort Remote sort servicedoc/ Documentation for RPC, XDR and NFS in "-ms" format.etc/ Utilities (rpcinfo and portmap). portmap must bestarted by root before any other RPC network services areused. SEE BELOW FOR BUGFIX TO 4.3BSD COMPILER.man/ Manual pages for RPC library, rpcgen, and utilities.rpc/ The RPC and XDR library. SEE BELOWFOR BUGFIX TO 4.2BSD COMPILER.rpcgen/ The RPC Language compiler (for .x files)rpcsvc/ Service definition files for various services and theserver and client code for the Remote Status service.secure_rpc/ The files in this directory are used to build a version ofthe RPC library with DES Authentication. See the READMEfile in that directory for more details.BUILD INSTRUCTIONSMakefiles can be found in all directories except for man. TheMakefile in the top directory will cause these others to be invoked(except for in the doc, man and demo directories), in turn building theentire release.WARNING! THE DEFAULT INSTALLATION PROCEDURES WILL INSTALL FILESIN /usr/include, /usr/lib, /usr/bin and /etc.The master RPC include file, rpc/rpc.h, is used by all programs androutines that use RPC. It includes other RPC and system include filesneeded by the RPC system. PLEASE NOTE: If your system has NFS, itmay have been based on Sun's NFS Source. The include files installedby this package may duplicate include files you will find on your NFSsystem. The RPCSRC 4.0 include files are upwardly compatible to allNFS Source include files as of the date of this distribution (notincluding any new definitions or declarations added by your systemvendor). HOWEVER: Please read the comments towards the end ofrpc/rpc.h regarding rpc/netdb.h. You may need to uncomment theinclusion of that file if the structures it defines are alreadydefined by your system's include files.After making any compiler fixes that are needed (see below), atthe top directory, type:make installFor all installations, the Makefile macro DESTDIR is prepended to theinstallation path. It is defined to be null in the Makefiles, soinstallations are relative to root. (You will probably need rootprivileges for installing the files under the default path.) Toinstall the files under some other tree (e.g., /usr/local), use thecommand:make install DESTDIR=/usr/localThis will place the include files in /usr/local/usr/include, the RPClibrary in /usr/local/usr/lib, rpcgen in /usr/local/usr/bin, and theutilities in /usr/local/etc. You'll have to edit the Makefiles orinstall the files by hand if you want to do anything other than thiskind of relocation of the installation tree.The RPC library will be built and installed first. By default it isinstalled in /usr/lib as "librpclib.a". The directory/usr/include/rpc will also be created, and several header files willbe installed there. ALL RPC SERVICES INCLUDE THESE HEADER FILES.The programs in etc/ link in routines from librpclib.a. If you changewhere it is installed, be sure to edit etc/'s Makefile to reflect this.These programs are installed in /etc. PORTMAP MUST BE RUNNING ONYOUR SYSTEM BEFORE YOU START ANY OTHER RPC SERVICE.rpcgen is installed in /usr/bin. This program is required to buildthe demonstration services in demo and the rstat client and server inrpcsvc/.The rpcsvc/ directory will install its files in the directory/usr/include/rpcsvc. The Remote Status service (rstat_svc) will becompiled and installed in /etc. If you wish to make this serviceavailable, you should either start this service when needed or haveit started at boot time by invoking it in your /etc/rc.local script.(Be sure that portmap is started first!) Sun has modified itsversion of inetd to automatically start RPC services. (Use "makeLIB=" when building rstat on a Sun Workstation.) The Remote Statusclient (rstat) will be installed in /usr/bin. This program queriesthe rstat_svc on a remote host and prints a system status summarysimilar to the one printed by "uptime".The documentation is not built during the "make install" command.Typing "make" in the doc directory will cause all of the manuals tobe formatted using nroff into a single file. We have had a reportthat certain "troff" equivalents have trouble processing the fullmanual. If you have trouble, try building the manuals individually(see the Makefile).The demonstration services in the demo directory are not built by thetop-level "make install" command. To build these, cd to the demodirectory and enter "make". The three services will be built.RPCGEN MUST BE INSTALLED in a path that make can find. To run theservices, start the portmap program as root and invoke the service(you probably will want to put it in the background). rpcinfo can beused to check that the service succeeded in getting registered withportmap, and to ping the service (see rpcinfo's man page). You canthen use the corresponding client program to exercise the service.To build these services on a Sun workstation, you must prevent theMakefile from trying to link the RPC library (as these routines arealready a part of Sun's libc). Use: "make LIB=".BUGFIX FOR 4.3BSD COMPILERThe use of a 'void *' declaration for one of the arguments inthe reply_proc() procedure in etc/rpcinfo.c will trigger a bugin the 4.3BSD compiler. The bug is fixed by the following change tothe compiler file mip/manifest.h:*** manifest.h.r1.1 Thu Apr 30 13:52:25 1987--- manifest.h.r1.2 Mon Nov 23 18:58:17 1987****************** 21,27 ****/** Bogus type values*/! #define TNULL PTR /* pointer to UNDEF */#define TVOID FTN /* function returning UNDEF (for void) *//*--- 21,27 ----/** Bogus type values*/! #define TNULL INCREF(MOETY) /* pointer to MOETY -- impossible type */#define TVOID FTN /* function returning UNDEF (for void) *//*If you cannot fix your compiler, change the declaration in reply_proc()from 'void *' to 'char *'.BUGFIX FOR 4.2BSD COMPILERUnpatched 4.2BSD compilers complain about valid C. You can make oldcompilers happy by changing some voids to ints. However, the fix tothe 4.2 VAX compiler is as follows (to mip/trees.c):*** trees.c.r1.1 Mon May 11 13:47:58 1987--- trees.c.r1.2 Wed Jul 2 18:28:52 1986****************** 1247,1253 ****if(o==CAST && mt1==0)return(TYPL+TYMATCH);if( mt12 & MDBI ) return( TYPL+LVAL+TYMATCH );else if( (mt1&MENU)||(mt2&MENU) ) return( LVAL+NCVT+TYPL+PTMATCH+PUN );! else if( mt12 == 0 ) break;else if( mt1 & MPTR ) return( LVAL+PTMATCH+PUN );else if( mt12 & MPTI ) return( TYPL+LVAL+TYMATCH+PUN );break;--- 1261,1269 ----if(o==CAST && mt1==0)return(TYPL+TYMATCH);if( mt12 & MDBI ) return( TYPL+LVAL+TYMATCH );else if( (mt1&MENU)||(mt2&MENU) ) return( LVAL+NCVT+TYPL+PTMATCH+PUN );! /* if right is TVOID and looks like a CALL, is not ok */! else if (mt2 == 0 && (p->in.right->in.op == CALL || p->in.right->in.op == UNARY CALL))! break;else if( mt1 & MPTR ) return( LVAL+PTMATCH+PUN );else if( mt12 & MPTI ) return( TYPL+LVAL+TYMATCH+PUN );break;WHAT'S NEW IN THIS RELEASE: RPCSRC 4.0The previous release was RPCSRC 3.9. As with all previous releases,this release is based directly on files from Sun Microsystem'simplementation.Upgrade from RPCSRC 3.91) RPCSRC 4.0 upgrades RPCSRC 3.9. Improvements from SunOS 4.0 havebeen integrated into this release.Secure RPC (in the secure_rpc/ directory)2) DES Authentication routines and programs are provided.3) A new manual, "Secure NFS" is provided, which describes Secure RPCand Secure NFS.4) Skeleton routines and manual pages are provided which describe theDES encryption procedures required by Secure RPC. HOWEVER, NO DESROUTINE IS PROVIDED.New Functionality5) rpcinfo can now be used to de-register services from the portmapperwhich may have terminated abnormally.6) A new client, rstat, is provided which queries the rstat_svc andprints a status line similar to the one displayed by "uptime".
