Copyright 2000, International Business Machines Corporation.
All Rights Reserved.

This software has been released under the terms of the IBM Public
License.  For details, see the LICENSE file in the top-level source
directory or online at http://www.openafs.org/dl/license10.html.

README file for libuafs and libjuafs, Version 1.2 06/04/2003.


### INTRODUCTION ###

This Makefile generates two libraries, the standard libuafs.a and
libjuafs.a, a libuafs.a variant that is designed for use with Java
enabled applications (as used with libjafsadm, see
src/JAVA/libjafsadm/JAFSADM_README). The libuafs.a library facilitates
user authentication at a process level and enables access and
manipulation of the files and access control lists (ACLs).  By way of
the libuafs.a klog function (uafs_klog), the authenticated user's
credentials are bound to the executing process and therefore is granted
permission to act on behalf of the authenticated user.


### LIBUAFS ###

As of 05/13/2002 the libuafs.a library remains unchanged with respect
to OpenAFS release 1.2.3.


### LIBJUAFS ###

The libjuafs.a is a new addition to the libuafs.a build as of 05/10/2002 and has
been added for the following reasons:

- To avoid function name collisions with other libraries
- To ensure that existing applications using libuafs.a will not be affected.
- Utilize libuafs.a functionality in Java-based applications.

The libjuafs.a library implements the AFS_WEB_ENHANCEMENTS and UKERNEL
(user space kernel) definitions, which are used to enable functions
such as:

- afs_setpag_val*
- uafs_klog_nopag
- uafs_getcellstatus
- uafs_getvolquota
- uafs_setvolquota
- uafs_statmountpoint
- uafs_getRights

*afs_setpag_val
A function like setpag but sets the current thread's pag id to a
caller-provided value instead of calling genpag().  This implements a
form of token caching since the caller can recall a particular pag value
for the thread to restore tokens, rather than reauthenticating.


### BUILD ###

A simple "make" will build both libuafs.a and libjuafs.a.  Optionally, you
can make each library independently by issuing:

  make UAFS/libuafs.a

  - and -

  make JUAFS/libjuafs.a


### DIRECTORIES ###

The libuafs/UAFS directory is generated by the Makefile and contains the
object files and local copy of libuafs.a resulting from the build process.
The libuafs/JUAFS directory is the same as libuafs/UAFS, however it
contains output files respective to libjuafs.a.


### CONSIDERATIONS ###

The libjuafs.a library has only been tested using RedHat Linux 7.3 and
OpenAFS 1.2.6, OpenAFS 1.2.7, OpenAFS 1.2.8, and OpenAFS 1.2.9.
