head	1.3;
access;
symbols
	RELENG_8_4:1.3.0.2
	RELENG_9_1_0_RELEASE:1.2.42.1.4.2
	RELENG_9_1:1.2.42.1.0.4
	RELENG_9_1_BP:1.2.42.1
	RELENG_8_3_0_RELEASE:1.2.36.1.8.1
	RELENG_8_3:1.2.36.1.0.8
	RELENG_8_3_BP:1.2.36.1
	RELENG_9_0_0_RELEASE:1.2.42.1.2.1
	RELENG_9_0:1.2.42.1.0.2
	RELENG_9_0_BP:1.2.42.1
	RELENG_9:1.2.0.42
	RELENG_9_BP:1.2
	RELENG_7_4_0_RELEASE:1.2.40.1
	RELENG_8_2_0_RELEASE:1.2.36.1.6.1
	RELENG_7_4:1.2.0.40
	RELENG_7_4_BP:1.2
	RELENG_8_2:1.2.36.1.0.6
	RELENG_8_2_BP:1.2.36.1
	RELENG_8_1_0_RELEASE:1.2.36.1.4.1
	RELENG_8_1:1.2.36.1.0.4
	RELENG_8_1_BP:1.2.36.1
	RELENG_7_3_0_RELEASE:1.2.38.1
	RELENG_7_3:1.2.0.38
	RELENG_7_3_BP:1.2
	RELENG_8_0_0_RELEASE:1.2.36.1.2.1
	RELENG_8_0:1.2.36.1.0.2
	RELENG_8_0_BP:1.2.36.1
	RELENG_8:1.2.0.36
	RELENG_8_BP:1.2
	RELENG_7_2_0_RELEASE:1.2.34.1
	RELENG_7_2:1.2.0.34
	RELENG_7_2_BP:1.2
	RELENG_7_1_0_RELEASE:1.2.32.1
	RELENG_6_4_0_RELEASE:1.2.30.1
	RELENG_7_1:1.2.0.32
	RELENG_7_1_BP:1.2
	RELENG_6_4:1.2.0.30
	RELENG_6_4_BP:1.2
	RELENG_7_0_0_RELEASE:1.2
	RELENG_6_3_0_RELEASE:1.2
	RELENG_7_0:1.2.0.28
	RELENG_7_0_BP:1.2
	RELENG_6_3:1.2.0.26
	RELENG_6_3_BP:1.2
	RELENG_7:1.2.0.24
	RELENG_7_BP:1.2
	RELENG_6_2_0_RELEASE:1.2
	RELENG_6_2:1.2.0.22
	RELENG_6_2_BP:1.2
	RELENG_5_5_0_RELEASE:1.2
	RELENG_5_5:1.2.0.20
	RELENG_5_5_BP:1.2
	RELENG_6_1_0_RELEASE:1.2
	RELENG_6_1:1.2.0.18
	RELENG_6_1_BP:1.2
	RELENG_6_0_0_RELEASE:1.2
	RELENG_6_0:1.2.0.16
	RELENG_6_0_BP:1.2
	RELENG_6:1.2.0.14
	RELENG_6_BP:1.2
	RELENG_5_4_0_RELEASE:1.2
	RELENG_5_4:1.2.0.12
	RELENG_5_4_BP:1.2
	RELENG_4_11_0_RELEASE:1.1
	RELENG_4_11:1.1.0.32
	RELENG_4_11_BP:1.1
	RELENG_5_3_0_RELEASE:1.2
	RELENG_5_3:1.2.0.10
	RELENG_5_3_BP:1.2
	RELENG_5:1.2.0.8
	RELENG_5_BP:1.2
	RELENG_4_10_0_RELEASE:1.1
	RELENG_4_10:1.1.0.30
	RELENG_4_10_BP:1.1
	RELENG_5_2_1_RELEASE:1.2
	RELENG_5_2_0_RELEASE:1.2
	RELENG_5_2:1.2.0.6
	RELENG_5_2_BP:1.2
	RELENG_4_9_0_RELEASE:1.1
	RELENG_4_9:1.1.0.28
	RELENG_4_9_BP:1.1
	RELENG_5_1_0_RELEASE:1.2
	RELENG_5_1:1.2.0.4
	RELENG_5_1_BP:1.2
	RELENG_4_8_0_RELEASE:1.1
	RELENG_4_8:1.1.0.26
	RELENG_4_8_BP:1.1
	RELENG_5_0_0_RELEASE:1.2
	RELENG_5_0:1.2.0.2
	RELENG_5_0_BP:1.2
	RELENG_4_7_0_RELEASE:1.1
	RELENG_4_7:1.1.0.24
	RELENG_4_7_BP:1.1
	RELENG_4_6_2_RELEASE:1.1
	RELENG_4_6_1_RELEASE:1.1
	RELENG_4_6_0_RELEASE:1.1
	RELENG_4_6:1.1.0.22
	RELENG_4_6_BP:1.1
	RELENG_4_5_0_RELEASE:1.1
	RELENG_4_5:1.1.0.20
	RELENG_4_5_BP:1.1
	RELENG_4_4_0_RELEASE:1.1
	RELENG_4_4:1.1.0.18
	RELENG_4_4_BP:1.1
	RELENG_4_3_0_RELEASE:1.1
	RELENG_4_3:1.1.0.16
	RELENG_4_3_BP:1.1
	RELENG_4_2_0_RELEASE:1.1
	RELENG_4_1_1_RELEASE:1.1
	PRE_SMPNG:1.1
	RELENG_4_1_0_RELEASE:1.1
	RELENG_3_5_0_RELEASE:1.1
	RELENG_4_0_0_RELEASE:1.1
	RELENG_4:1.1.0.14
	RELENG_4_BP:1.1
	RELENG_3_4_0_RELEASE:1.1
	RELENG_3_3_0_RELEASE:1.1
	RELENG_3_2_PAO:1.1.0.12
	RELENG_3_2_PAO_BP:1.1
	RELENG_3_2_0_RELEASE:1.1
	RELENG_3_1_0_RELEASE:1.1
	RELENG_3:1.1.0.10
	RELENG_3_BP:1.1
	RELENG_2_2_8_RELEASE:1.1
	RELENG_3_0_0_RELEASE:1.1
	RELENG_2_2_7_RELEASE:1.1
	RELENG_2_2_6_RELEASE:1.1
	RELENG_2_2_5_RELEASE:1.1
	secure_rpc_1_0:1.1.1.1
	WPAUL:1.1.1
	RELENG_2_2_2_RELEASE:1.1
	RELENG_2_2_1_RELEASE:1.1
	RELENG_2_2_0_RELEASE:1.1
	RELENG_2_1_7_RELEASE:1.1
	RELENG_2_1_6_1_RELEASE:1.1
	RELENG_2_1_6_RELEASE:1.1
	RELENG_2_2:1.1.0.8
	RELENG_2_2_BP:1.1
	RELENG_2_1_5_RELEASE:1.1
	RELENG_2_1_0_RELEASE:1.1
	RELENG_2_1_0:1.1.0.6
	RELENG_2_1_0_BP:1.1
	RELENG_2_0_5_RELEASE:1.1
	RELENG_2_0_5:1.1.0.4
	RELENG_2_0_5_BP:1.1
	RELENG_2_0_5_ALPHA:1.1
	RELEASE_2_0:1.1
	BETA_2_0:1.1
	ALPHA_2_0:1.1.0.2;
locks; strict;
comment	@# @;


1.3
date	2012.11.17.01.49.36;	author svnexp;	state Exp;
branches
	1.3.2.1;
next	1.2;

1.2
date	2001.03.19.12.49.50;	author alfred;	state Exp;
branches
	1.2.14.1
	1.2.24.1
	1.2.30.1
	1.2.32.1
	1.2.34.1
	1.2.36.1
	1.2.38.1
	1.2.40.1
	1.2.42.1;
next	1.1;

1.1
date	94.08.07.18.35.37;	author wollman;	state Exp;
branches
	1.1.1.1;
next	;

1.3.2.1
date	2012.11.17.01.49.36;	author svnexp;	state dead;
branches;
next	1.3.2.2;

1.3.2.2
date	2013.03.28.13.03.05;	author svnexp;	state Exp;
branches;
next	;

1.2.14.1
date	2012.11.17.07.40.00;	author svnexp;	state Exp;
branches;
next	;

1.2.24.1
date	2012.11.17.08.02.15;	author svnexp;	state Exp;
branches;
next	;

1.2.30.1
date	2008.10.02.02.57.24;	author kensmith;	state Exp;
branches;
next	;

1.2.32.1
date	2008.11.25.02.59.29;	author kensmith;	state Exp;
branches;
next	;

1.2.34.1
date	2009.04.15.03.14.26;	author kensmith;	state Exp;
branches;
next	;

1.2.36.1
date	2009.08.03.08.13.06;	author kensmith;	state Exp;
branches
	1.2.36.1.2.1
	1.2.36.1.4.1
	1.2.36.1.6.1
	1.2.36.1.8.1;
next	1.2.36.2;

1.2.36.2
date	2012.11.17.10.36.04;	author svnexp;	state Exp;
branches;
next	;

1.2.36.1.2.1
date	2009.10.25.01.10.29;	author kensmith;	state Exp;
branches;
next	;

1.2.36.1.4.1
date	2010.06.14.02.09.06;	author kensmith;	state Exp;
branches;
next	;

1.2.36.1.6.1
date	2010.12.21.17.09.25;	author kensmith;	state Exp;
branches;
next	;

1.2.36.1.8.1
date	2012.03.03.06.15.13;	author kensmith;	state Exp;
branches;
next	1.2.36.1.8.2;

1.2.36.1.8.2
date	2012.11.17.08.24.45;	author svnexp;	state Exp;
branches;
next	;

1.2.38.1
date	2010.02.10.00.26.20;	author kensmith;	state Exp;
branches;
next	;

1.2.40.1
date	2010.12.21.17.10.29;	author kensmith;	state Exp;
branches;
next	1.2.40.2;

1.2.40.2
date	2012.11.17.08.16.44;	author svnexp;	state Exp;
branches;
next	;

1.2.42.1
date	2011.09.23.00.51.37;	author kensmith;	state Exp;
branches
	1.2.42.1.2.1
	1.2.42.1.4.1;
next	1.2.42.2;

1.2.42.2
date	2012.11.17.11.36.19;	author svnexp;	state Exp;
branches;
next	;

1.2.42.1.2.1
date	2011.11.11.04.20.22;	author kensmith;	state Exp;
branches;
next	1.2.42.1.2.2;

1.2.42.1.2.2
date	2012.11.17.08.36.20;	author svnexp;	state Exp;
branches;
next	;

1.2.42.1.4.1
date	2012.08.05.23.54.33;	author kensmith;	state Exp;
branches;
next	1.2.42.1.4.2;

1.2.42.1.4.2
date	2012.11.17.08.47.10;	author svnexp;	state Exp;
branches;
next	;

1.1.1.1
date	97.05.28.04.59.54;	author wpaul;	state Exp;
branches;
next	;


desc
@@


1.3
log
@Switching exporter and resync
@
text
@$FreeBSD: head/lib/libc/rpc/README 74462 2001-03-19 12:50:13Z alfred $

PLEASE READ THE DISCLAIMER FILE.  DO NOT CALL THE SUN MICROSYSTEMS SUPPORT
LINE WITH QUESTIONS ON THIS RELEASE.  THEY CANNOT ANSWER QUESTIONS ABOUT THIS
UNSUPPORTED SOURCE RELEASE.

TIRPCSRC 2.3 29 Aug 1994

This distribution contains SunSoft's implementation of transport-independent
RPC (TI-RPC), External Data Representation (XDR), and various utilities and
documentation.  These libraries and programs form the base of Open Network
Computing (ONC), and are derived directly from the Solaris 2.3 source.

Previous releases of RPC Source based on SunOS 4.x were ported to 4.2BSD and
used Sockets as the transport interface.  These versions were
transport-specific RPC (TS-RPC).

TI-RPC is an enhanced version of TS-RPC that requires the UNIX System V
Transport Layer Interface (TLI) or an equivalent X/Open Transport Interface
(XTI).  TI-RPC is on-the-wire compatible with the TS-RPC, which is supported
by almost 70 vendors on all major operating systems.  TS-RPC source code
(RPCSRC 4.0) remains available from several internet sites.

This release is a native source release, that is, it is compatible for
building on Solaris 2.3.  This release was built on Solaris 2.3 using SunPro
SPARCompiler 2.0.1.

Solaris 2.3 is based on System V, Release 4 (SVR4), and while this release
should be mostly compatible with other SVR4 systems, some Solaris facilities
that are assumed may not be available.  In particular, this release uses the
Makefile format supported by SparcCompiler 2.0.1.  Second, the Secure RPC
routines use the Solaris Name Service Switch to access public-key credential
databases.  This code will need to be ported if your system does not support
the Name Service Switch.  Finally, this release uses the synchronization
interfaces of UI Threads to make certain interfaces thread-safe.  These
interfaces are found in libthread in Solaris 2.3 and later.

Applications linked with this release's librpc must link with the United
States domestic version of libcrypt in order to resolve the cbc_crypt() and
ecb_crypt() functions.  These routines are used with Secure RPC however all
RPC programs that link with this release's librpc will need to link with the
domestic libcrypt.  Note that the Solaris 2.3 Encryption Kit is only available
within the United States.  (PLEASE NOTE: The RPC implementation found in
Solaris 2.3's libnsl does *not* have this requirement; linking with libcrypt
is only a requirement for the TIRPCSRC 2.3 version of librpc.)


DOCUMENTATION NOTE

The documentation found in the doc directory are derived from the Solaris 2.3
Network Interfaces Programming Guide.  A small number of compile examples are
given, and these use libnsl to link in the RPC library.  This release builds
the RPC library as librpc.  To use this release's librpc, use the link command
"-lrpc -lnsl -lcrypt".  This links the application with TIRPCSRC 2.3's librpc
for RPC routines, Solaris's libnsl for other networking functions, and
libcrypt for the cbc_crypt() and ecb_crypt functions.


WHY IS THIS RELEASE BEING DONE?

This release is being distributed to make the Sun implementation of the ONC
technologies available for reference and porting to non-Solaris platforms.
The current release is a native source distribution, and provides services
that are already available on Solaris 2.3 (such as the RPC headers, the RPC
library in libnsl, rpcbind, rpcinfo, etc.).  It is not our intention to
replace these services.  See the DISCLAIMER for further information about the
legal status of this release.


WHAT'S NEW IN THIS RELEASE: TIRPCSRC 2.3

The previous release was TIRPCSRC 2.0.

1.      This release is based on Solaris 2.3.  The previous release was
	based on Solaris 2.0.  This release contains a siginificant number of
	bug fixes and other enhancements over TIRPCSRC 2.0.

2.      The RPC library is thread safe for all client-side interfaces
	(clnt_create, clnt_call, etc.).  The server-side interfaces
	(svc_create, svc_run, etc.) are not thread safe in this release. The
	server-side interfaces will be made thread safe in the next release of
	TIRPCSRC.  Please see the manual pages for details about which
	interfaces are thread safe.

3.      As part of the work to make the RPC library thread-safe, rpcgen has
	been enhanced to generate thread-safe RPC stubs (the -M option).  Note
	that this modifies the call-signature for the stub functions; the
	procedure calling the RPC stub must now pass to the stub a pointer to
	an allocated structure where results will be placed by the stub.  See
	the rpcgen manual page and the rpcgen Programming Guide for details.

4.      The Remote Asynchronous Calls (RAC) library is now included.  RAC was
	first introduced in TIRPCSRC 1.0, and was bundled with librpc.  It is
	now a separate library.  The asynchronous call model that RAC provides
	can be achieved by using threads for making client-side RPC calls.
	The ONC Technology group recommends using threads (where possible) to
	achieve asynchrony rather than RAC.  See the rpc_rac(3n) manual page
	for details.


ROADMAP

The directory hierarchy is as follows:

    cmd/        Utilities
    cmd/rpcgen      The RPC Language compiler (for .x files)
    cmd/rpcbind     The RPC bindery and portmapper
    cmd/rpcinfo     RPC bindery query utility
    cmd/keyserv     The Secure RPC keyserver
    cmd/demo        Some simple ONC demo services

    doc/        Postscript versions of ONC documentation

    head/       Header files
    head/rpcsvc     RPCL (.x) specifications for various ONC services, and
                    header files.

    lib/        Libraries
    lib/librpc      The RPC and XDR library
    lib/librac      The Remote Asynchronous Calls (RAC) library

    man/        Manual pages for the RPC library and utilities.

    uts/common/rpc      RPC header files



BUILD INSTRUCTIONS

Prior to building the release, you must define the SRC environment variable
to be the path to the top-level Makefile.  For example, if /usr/src/tirpcsrc
is where to top-level Makefile is located, execute this command prior to
building the release:

        setenv SRC /usr/src/tirpcsrc        (csh)
or
        SRC=/usr/src/tirpcsrc; export SRC   (sh)

The sources in the lib directory depend on header files installed from head
and uts/common/rpc, and the programs in the cmd directory depend on libraries
from lib.  Therefore, you should do a "make install" to build the release.

The top-level Makefile builds the release.  The "ROOT" macro defines where the
headers and libraries are installed.  The default for ROOT is "/proto".  You
may change this by either modifiying Makefile.master, or issuing the build
command with a new definition for ROOT:

        make install ROOT=/opt/onc

You will of course need write privileges for the destination directory.
The headers, libraries and executables will be built and installed under the
ROOT.


The demonstration services in the demo directory are not built by the
top-level "make install" command.  To build these, cd to the cmd/demo
directory and enter "make".  The four services will be built.
RPCGEN MUST BE INSTALLED in a path that make can find.  To run the
services, rpcbind must be running, then invoke the service
(you probably will want to put it in the background).  rpcinfo can be
used to check that the service succeeded in getting registered with
rpcbind, and to ping the service (see rpcinfo's man page).  You can
then use the corresponding client program to exercise the service.


BUILDING ONC APPLICATIONS

See the Makefiles in the demonstration services for examples of building
ONC applications with this release.  The $(ROOT)/usr/include directory
must be included in the compiler header file search path (-I), and the
$(ROOT)/usr/lib directory must be included in the linker library file search
path (-L).  Also, to run executables built dynamically, the shared library
search path (LD_LIBRARY_PATH) must also include $(ROOT)/usr/lib.  In addition
to linking in this release's librpc (via -lrpc), you must also link with
Solaris's libnsl (-lnsl) and the US domestic version of libcrypt (-lcrypt).

@


1.3.2.1
log
@file README was added on branch RELENG_8_4 on 2013-03-28 13:03:05 +0000
@
text
@d1 176
@


1.3.2.2
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/248810
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@a0 176
$FreeBSD: releng/8.4/lib/libc/rpc/README 74462 2001-03-19 12:50:13Z alfred $

PLEASE READ THE DISCLAIMER FILE.  DO NOT CALL THE SUN MICROSYSTEMS SUPPORT
LINE WITH QUESTIONS ON THIS RELEASE.  THEY CANNOT ANSWER QUESTIONS ABOUT THIS
UNSUPPORTED SOURCE RELEASE.

TIRPCSRC 2.3 29 Aug 1994

This distribution contains SunSoft's implementation of transport-independent
RPC (TI-RPC), External Data Representation (XDR), and various utilities and
documentation.  These libraries and programs form the base of Open Network
Computing (ONC), and are derived directly from the Solaris 2.3 source.

Previous releases of RPC Source based on SunOS 4.x were ported to 4.2BSD and
used Sockets as the transport interface.  These versions were
transport-specific RPC (TS-RPC).

TI-RPC is an enhanced version of TS-RPC that requires the UNIX System V
Transport Layer Interface (TLI) or an equivalent X/Open Transport Interface
(XTI).  TI-RPC is on-the-wire compatible with the TS-RPC, which is supported
by almost 70 vendors on all major operating systems.  TS-RPC source code
(RPCSRC 4.0) remains available from several internet sites.

This release is a native source release, that is, it is compatible for
building on Solaris 2.3.  This release was built on Solaris 2.3 using SunPro
SPARCompiler 2.0.1.

Solaris 2.3 is based on System V, Release 4 (SVR4), and while this release
should be mostly compatible with other SVR4 systems, some Solaris facilities
that are assumed may not be available.  In particular, this release uses the
Makefile format supported by SparcCompiler 2.0.1.  Second, the Secure RPC
routines use the Solaris Name Service Switch to access public-key credential
databases.  This code will need to be ported if your system does not support
the Name Service Switch.  Finally, this release uses the synchronization
interfaces of UI Threads to make certain interfaces thread-safe.  These
interfaces are found in libthread in Solaris 2.3 and later.

Applications linked with this release's librpc must link with the United
States domestic version of libcrypt in order to resolve the cbc_crypt() and
ecb_crypt() functions.  These routines are used with Secure RPC however all
RPC programs that link with this release's librpc will need to link with the
domestic libcrypt.  Note that the Solaris 2.3 Encryption Kit is only available
within the United States.  (PLEASE NOTE: The RPC implementation found in
Solaris 2.3's libnsl does *not* have this requirement; linking with libcrypt
is only a requirement for the TIRPCSRC 2.3 version of librpc.)


DOCUMENTATION NOTE

The documentation found in the doc directory are derived from the Solaris 2.3
Network Interfaces Programming Guide.  A small number of compile examples are
given, and these use libnsl to link in the RPC library.  This release builds
the RPC library as librpc.  To use this release's librpc, use the link command
"-lrpc -lnsl -lcrypt".  This links the application with TIRPCSRC 2.3's librpc
for RPC routines, Solaris's libnsl for other networking functions, and
libcrypt for the cbc_crypt() and ecb_crypt functions.


WHY IS THIS RELEASE BEING DONE?

This release is being distributed to make the Sun implementation of the ONC
technologies available for reference and porting to non-Solaris platforms.
The current release is a native source distribution, and provides services
that are already available on Solaris 2.3 (such as the RPC headers, the RPC
library in libnsl, rpcbind, rpcinfo, etc.).  It is not our intention to
replace these services.  See the DISCLAIMER for further information about the
legal status of this release.


WHAT'S NEW IN THIS RELEASE: TIRPCSRC 2.3

The previous release was TIRPCSRC 2.0.

1.      This release is based on Solaris 2.3.  The previous release was
	based on Solaris 2.0.  This release contains a siginificant number of
	bug fixes and other enhancements over TIRPCSRC 2.0.

2.      The RPC library is thread safe for all client-side interfaces
	(clnt_create, clnt_call, etc.).  The server-side interfaces
	(svc_create, svc_run, etc.) are not thread safe in this release. The
	server-side interfaces will be made thread safe in the next release of
	TIRPCSRC.  Please see the manual pages for details about which
	interfaces are thread safe.

3.      As part of the work to make the RPC library thread-safe, rpcgen has
	been enhanced to generate thread-safe RPC stubs (the -M option).  Note
	that this modifies the call-signature for the stub functions; the
	procedure calling the RPC stub must now pass to the stub a pointer to
	an allocated structure where results will be placed by the stub.  See
	the rpcgen manual page and the rpcgen Programming Guide for details.

4.      The Remote Asynchronous Calls (RAC) library is now included.  RAC was
	first introduced in TIRPCSRC 1.0, and was bundled with librpc.  It is
	now a separate library.  The asynchronous call model that RAC provides
	can be achieved by using threads for making client-side RPC calls.
	The ONC Technology group recommends using threads (where possible) to
	achieve asynchrony rather than RAC.  See the rpc_rac(3n) manual page
	for details.


ROADMAP

The directory hierarchy is as follows:

    cmd/        Utilities
    cmd/rpcgen      The RPC Language compiler (for .x files)
    cmd/rpcbind     The RPC bindery and portmapper
    cmd/rpcinfo     RPC bindery query utility
    cmd/keyserv     The Secure RPC keyserver
    cmd/demo        Some simple ONC demo services

    doc/        Postscript versions of ONC documentation

    head/       Header files
    head/rpcsvc     RPCL (.x) specifications for various ONC services, and
                    header files.

    lib/        Libraries
    lib/librpc      The RPC and XDR library
    lib/librac      The Remote Asynchronous Calls (RAC) library

    man/        Manual pages for the RPC library and utilities.

    uts/common/rpc      RPC header files



BUILD INSTRUCTIONS

Prior to building the release, you must define the SRC environment variable
to be the path to the top-level Makefile.  For example, if /usr/src/tirpcsrc
is where to top-level Makefile is located, execute this command prior to
building the release:

        setenv SRC /usr/src/tirpcsrc        (csh)
or
        SRC=/usr/src/tirpcsrc; export SRC   (sh)

The sources in the lib directory depend on header files installed from head
and uts/common/rpc, and the programs in the cmd directory depend on libraries
from lib.  Therefore, you should do a "make install" to build the release.

The top-level Makefile builds the release.  The "ROOT" macro defines where the
headers and libraries are installed.  The default for ROOT is "/proto".  You
may change this by either modifiying Makefile.master, or issuing the build
command with a new definition for ROOT:

        make install ROOT=/opt/onc

You will of course need write privileges for the destination directory.
The headers, libraries and executables will be built and installed under the
ROOT.


The demonstration services in the demo directory are not built by the
top-level "make install" command.  To build these, cd to the cmd/demo
directory and enter "make".  The four services will be built.
RPCGEN MUST BE INSTALLED in a path that make can find.  To run the
services, rpcbind must be running, then invoke the service
(you probably will want to put it in the background).  rpcinfo can be
used to check that the service succeeded in getting registered with
rpcbind, and to ping the service (see rpcinfo's man page).  You can
then use the corresponding client program to exercise the service.


BUILDING ONC APPLICATIONS

See the Makefiles in the demonstration services for examples of building
ONC applications with this release.  The $(ROOT)/usr/include directory
must be included in the compiler header file search path (-I), and the
$(ROOT)/usr/lib directory must be included in the linker library file search
path (-L).  Also, to run executables built dynamically, the shared library
search path (LD_LIBRARY_PATH) must also include $(ROOT)/usr/lib.  In addition
to linking in this release's librpc (via -lrpc), you must also link with
Solaris's libnsl (-lnsl) and the US domestic version of libcrypt (-lcrypt).

@


1.2
log
@Bring in a hybrid of SunSoft's transport-independent RPC (TI-RPC) and
associated changes that had to happen to make this possible as well as
bugs fixed along the way.

  Bring in required TLI library routines to support this.

  Since we don't support TLI we've essentially copied what NetBSD
  has done, adding a thin layer to emulate direct the TLI calls
  into BSD socket calls.

  This is mostly from Sun's tirpc release that was made in 1994,
  however some fixes were backported from the 1999 release (supposedly
  only made available after this porting effort was underway).

  The submitter has agreed to continue on and bring us up to the
  1999 release.

  Several key features are introduced with this update:
    Client calls are thread safe. (1999 code has server side thread
    safe)
    Updated, a more modern interface.

  Many userland updates were done to bring the code up to par with
  the recent RPC API.

  There is an update to the pthreads library, a function
  pthread_main_np() was added to emulate a function of Sun's threads
  library.

  While we're at it, bring in NetBSD's lockd, it's been far too
  long of a wait.

  New rpcbind(8) replaces portmap(8) (supporting communication over
  an authenticated Unix-domain socket, and by default only allowing
  set and unset requests over that channel). It's much more secure
  than the old portmapper.

  Umount(8), mountd(8), mount_nfs(8), nfsd(8) have also been upgraded
  to support TI-RPC and to support IPV6.

  Umount(8) is also fixed to unmount pathnames longer than 80 chars,
  which are currently truncated by the Kernel statfs structure.

Submitted by: Martin Blapp <mb@@imp.ch>
Manpage review: ru
Secure RPC implemented by: wpaul
@
text
@d1 1
a1 1
$FreeBSD$
@


1.2.24.1
log
@Switch importer
@
text
@d1 1
a1 1
$FreeBSD: stable/7/lib/libc/rpc/README 74462 2001-03-19 12:50:13Z alfred $
@


1.2.14.1
log
@Switch importer
@
text
@d1 1
a1 1
$FreeBSD: stable/6/lib/libc/rpc/README 74462 2001-03-19 12:50:13Z alfred $
@


1.2.42.1
log
@SVN rev 225736 on 2011-09-23 00:51:37Z by kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.2.42.2
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242902
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242902 | dteske | 2012-11-11 23:29:45 +0000 (Sun, 11 Nov 2012) | 10 lines
## SVN ##
## SVN ## Fix a regression introduced by SVN r211417 that saw the breakage of a feature
## SVN ## documented in usr.sbin/sysinstall/help/shortcuts.hlp (reproduced below):
## SVN ##
## SVN ## If /usr/sbin/sysinstall is linked to another filename, say
## SVN ## `/usr/local/bin/configPackages', then the basename will be used
## SVN ## as an implicit command name.
## SVN ##
## SVN ## Reviewed by:	adrian (co-mentor)
## SVN ## Approved by:	adrian (co-mentor)
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d1 1
a1 1
$FreeBSD: stable/9/lib/libc/rpc/README 74462 2001-03-19 12:50:13Z alfred $
@


1.2.42.1.4.1
log
@SVN rev 239080 on 2012-08-05 23:54:33Z by kensmith

Copy stable/9 to releng/9.1 as part of the 9.1-RELEASE release process.

Approved by:	re (implicit)
@
text
@@


1.2.42.1.4.2
log
@Switch importer
@
text
@d1 1
a1 1
$FreeBSD: releng/9.1/lib/libc/rpc/README 74462 2001-03-19 12:50:13Z alfred $
@


1.2.42.1.2.1
log
@SVN rev 227445 on 2011-11-11 04:20:22Z by kensmith

Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
cycle.

Approved by:	re (implicit)
@
text
@@


1.2.42.1.2.2
log
@Switch importer
@
text
@d1 1
a1 1
$FreeBSD: releng/9.0/lib/libc/rpc/README 74462 2001-03-19 12:50:13Z alfred $
@


1.2.40.1
log
@SVN rev 216618 on 2010-12-21 17:10:29Z by kensmith

Copy stable/7 to releng/7.4 in preparation for FreeBSD-7.4 release.

Approved by:	re (implicit)
@
text
@@


1.2.40.2
log
@Switch importer
@
text
@d1 1
a1 1
$FreeBSD: releng/7.4/lib/libc/rpc/README 74462 2001-03-19 12:50:13Z alfred $
@


1.2.38.1
log
@SVN rev 203736 on 2010-02-10 00:26:20Z by kensmith

Copy stable/7 to releng/7.3 as part of the 7.3-RELEASE process.

Approved by:	re (implicit)
@
text
@@


1.2.36.1
log
@SVN rev 196045 on 2009-08-03 08:13:06Z by kensmith

Copy head to stable/8 as part of 8.0 Release cycle.

Approved by:	re (Implicit)
@
text
@@


1.2.36.2
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242909
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242909 | dim | 2012-11-12 07:47:19 +0000 (Mon, 12 Nov 2012) | 20 lines
## SVN ##
## SVN ## MFC r242625:
## SVN ##
## SVN ## Remove duplicate const specifiers in many drivers (I hope I got all of
## SVN ## them, please let me know if not).  Most of these are of the form:
## SVN ##
## SVN ## static const struct bzzt_type {
## SVN ##       [...list of members...]
## SVN ## } const bzzt_devs[] = {
## SVN ##       [...list of initializers...]
## SVN ## };
## SVN ##
## SVN ## The second const is unnecessary, as arrays cannot be modified anyway,
## SVN ## and if the elements are const, the whole thing is const automatically
## SVN ## (e.g. it is placed in .rodata).
## SVN ##
## SVN ## I have verified this does not change the binary output of a full kernel
## SVN ## build (except for build timestamps embedded in the object files).
## SVN ##
## SVN ## Reviewed by:	yongari, marius
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d1 1
a1 1
$FreeBSD: stable/8/lib/libc/rpc/README 74462 2001-03-19 12:50:13Z alfred $
@


1.2.36.1.8.1
log
@SVN rev 232438 on 2012-03-03 06:15:13Z by kensmith

Copy stable/8 to releng/8.3 as part of 8.3-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.2.36.1.8.2
log
@Switch importer
@
text
@d1 1
a1 1
$FreeBSD: releng/8.3/lib/libc/rpc/README 74462 2001-03-19 12:50:13Z alfred $
@


1.2.36.1.6.1
log
@SVN rev 216617 on 2010-12-21 17:09:25Z by kensmith

Copy stable/8 to releng/8.2 in preparation for FreeBSD-8.2 release.

Approved by:	re (implicit)
@
text
@@


1.2.36.1.4.1
log
@SVN rev 209145 on 2010-06-14 02:09:06Z by kensmith

Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.

Approved by:	re (implicit)
@
text
@@


1.2.36.1.2.1
log
@SVN rev 198460 on 2009-10-25 01:10:29Z by kensmith

Copy stable/8 to releng/8.0 as part of 8.0-RELEASE release procedure.

Approved by:	re (implicit)
@
text
@@


1.2.34.1
log
@SVN rev 191087 on 2009-04-15 03:14:26Z by kensmith

Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.

Approved by:	re (implicit)
@
text
@@


1.2.32.1
log
@SVN rev 185281 on 2008-11-25 02:59:29Z by kensmith

Create releng/7.1 in preparation for moving into RC phase of 7.1 release
cycle.

Approved by:	re (implicit)
@
text
@@


1.2.30.1
log
@SVN rev 183531 on 2008-10-02 02:57:24Z by kensmith

Create releng/6.4 from stable/6 in preparation for 6.4-RC1.

Approved by:	re (implicit)
@
text
@@


1.1
log
@Moving Sun RPC code into libc, part 1. Based on work done by a number of
people, including J.T. Conklin, Theo de Raadt, Paul Richards, and probably
someone else who's going to flame me as soon as they see this message.
@
text
@d1 1
a1 1
RPCSRC 4.0 7/11/89
d3 96
a98 26
This distribution contains Sun Microsystem's implementation of the
RPC and XDR protocols and is compatible with 4.2BSD and 4.3BSD.  Also
included is complete documentation, utilities, RPC service
specification files, and demonstration services in the format used by
the RPC protocol compiler (rpcgen).  See WHAT'S NEW below for
details.

NOTE ABOUT SECURE RPC:

This release of RPCSRC contains most of the code needed to implement
Secure RPC (see "DES Authentication" in the RPC Protocol Specification,
doc/rpc.rfc.ms).  Due to legal considerations, we are unable to
distribute an implementation of DES, the Data Encryption Standard, which
Secure RPC requires.  For this reason, all of the files, documentation, and
programs associated with Secure RPC have been placed into a separate
directory, secure_rpc.  The RPC library contained in the main body of this
release *DOES NOT* support Secure RPC.  See secure_rpc/README for more
details.  (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/NFS
Sun Microsystems, Inc
MS 12-33
2550 Garcia Avenue
Mountain View, CA  94043
a99 1
or send Email to nfsnet@@sun.com (the Internet) or sun!nfsnet (Usenet).
d105 16
a120 4
    demo/       Various demonstration services
    demo/dir        Remote directory lister
    demo/msg        Remote console message delivery service
    demo/sort       Remote sort service
d122 1
a122 1
    doc/        Documentation for RPC, XDR and NFS in "-ms" format.
d124 1
a124 3
    etc/        Utilities (rpcinfo and portmap).  portmap must be
                started by root before any other RPC network services are
                used.  SEE BELOW FOR BUGFIX TO 4.3BSD COMPILER.
a125 1
    man/        Manual pages for RPC library, rpcgen, and utilities.
a126 2
    rpc/        The RPC and XDR library.  SEE BELOW
                FOR BUGFIX TO 4.2BSD COMPILER.
d128 1
a128 4
    rpcgen/     The RPC Language compiler (for .x files)

    rpcsvc/     Service definition files for various services and the
                server and client code for the Remote Status service.
d130 23
a152 5
    secure_rpc/ The files in this directory are used to build a version of
                the RPC library with DES Authentication.  See the README
                file in that directory for more details.

BUILD INSTRUCTIONS
a153 73
Makefiles can be found in all directories except for man.  The
Makefile in the top directory will cause these others to be invoked
(except for in the doc, man and demo directories), in turn building the
entire release.

WARNING!  THE DEFAULT INSTALLATION PROCEDURES WILL INSTALL FILES
IN /usr/include, /usr/lib, /usr/bin and /etc.

The master RPC include file, rpc/rpc.h, is used by all programs and
routines that use RPC.  It includes other RPC and system include files
needed by the RPC system.  PLEASE NOTE: If your system has NFS, it
may have been based on Sun's NFS Source.  The include files installed
by this package may duplicate include files you will find on your NFS
system.  The RPCSRC 4.0 include files are upwardly compatible to all
NFS Source include files as of the date of this distribution (not
including any new definitions or declarations added by your system
vendor).  HOWEVER: Please read the comments towards the end of
rpc/rpc.h regarding rpc/netdb.h.  You may need to uncomment the
inclusion of that file if the structures it defines are already
defined by your system's include files.

After making any compiler fixes that are needed (see below), at
the top directory, type:

    make install

For all installations, the Makefile macro DESTDIR is prepended to the
installation path.  It is defined to be null in the Makefiles, so
installations are relative to root.  (You will probably need root
privileges for installing the files under the default path.)  To
install the files under some other tree (e.g., /usr/local), use the
command:

    make install DESTDIR=/usr/local

This will place the include files in /usr/local/usr/include, the RPC
library in /usr/local/usr/lib, rpcgen in /usr/local/usr/bin, and the
utilities in /usr/local/etc.  You'll have to edit the Makefiles or
install the files by hand if you want to do anything other than this
kind of relocation of the installation tree.

The RPC library will be built and installed first.  By default it is
installed in /usr/lib as "librpclib.a".  The directory
/usr/include/rpc will also be created, and several header files will
be installed there.  ALL RPC SERVICES INCLUDE THESE HEADER FILES.

The programs in etc/ link in routines from librpclib.a.  If you change
where it is installed, be sure to edit etc/'s Makefile to reflect this.
These programs are installed in /etc.  PORTMAP MUST BE RUNNING ON
YOUR SYSTEM BEFORE YOU START ANY OTHER RPC SERVICE.

rpcgen is installed in /usr/bin.  This program is required to build
the demonstration services in demo and the rstat client and server in
rpcsvc/.

The rpcsvc/ directory will install its files in the directory
/usr/include/rpcsvc.  The Remote Status service (rstat_svc) will be
compiled and installed in /etc.  If you wish to make this service
available, you should either start this service when needed or have
it started at boot time by invoking it in your /etc/rc.local script.
(Be sure that portmap is started first!)  Sun has modified its
version of inetd to automatically start RPC services.  (Use "make
LIB=" when building rstat on a Sun Workstation.)  The Remote Status
client (rstat) will be installed in /usr/bin.  This program queries
the rstat_svc on a remote host and prints a system status summary
similar 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 to
be formatted using nroff into a single file.  We have had a report
that certain "troff" equivalents have trouble processing the full
manual.  If you have trouble, try building the manuals individually
(see the Makefile).
d156 2
a157 2
top-level "make install" command.  To build these, cd to the demo
directory and enter "make".  The three services will be built.
d159 1
a159 1
services, start the portmap program as root and invoke the service
d162 1
a162 1
portmap, and to ping the service (see rpcinfo's man page).  You can
d164 13
a176 88
To build these services on a Sun workstation, you must prevent the
Makefile from trying to link the RPC library (as these routines are
already a part of Sun's libc).  Use: "make LIB=".

BUGFIX FOR 4.3BSD COMPILER

The use of a 'void *' declaration for one of the arguments in
the reply_proc() procedure in etc/rpcinfo.c will trigger a bug
in the 4.3BSD compiler.  The bug is fixed by the following change to
the 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 COMPILER

Unpatched 4.2BSD compilers complain about valid C.  You can make old
compilers happy by changing some voids to ints.  However, the fix to
the 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.0

The previous release was RPCSRC 3.9.  As with all previous releases,
this release is based directly on files from Sun Microsystem's
implementation.

Upgrade from RPCSRC 3.9

1)  RPCSRC 4.0 upgrades RPCSRC 3.9.  Improvements from SunOS 4.0 have
    been 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 RPC
    and Secure NFS.
4)  Skeleton routines and manual pages are provided which describe the
    DES encryption procedures required by Secure RPC.  HOWEVER, NO DES
    ROUTINE IS PROVIDED.

New Functionality

5)  rpcinfo can now be used to de-register services from the portmapper
    which may have terminated abnormally.
6)  A new client, rstat, is provided which queries the rstat_svc and
    prints a status line similar to the one displayed by "uptime".
@


1.1.1.1
log
@Now the biggest step: import the changes to the main RPC code.

Note: you'll need to rinstalkl all your includes before compiling libc
the next time you update your sources in order for all this to work.

Reviewed by:	Mark Murray
@
text
@@
