# -*-cperl-*-
#------------------------------------------------------------------------------
# RCS-Id: "@(#)$Id: afsperl.pod 569 2004-02-02 14:01:28Z nog $"
#
# Copyright © 2001-2004 Norbert E. Gruener <nog@MPA-Garching.MPG.de>
#
# This library is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
#------------------------------------------------------------------------------

=head1 NAME

B<AFS> - Perl interface to AFS programming APIs

=head1 VERSION

This document describes the AFS module bundle
(Version 2.2.0)


=head1 COMPATIBILITY

In version 2, all functions and special variables have been resorted
into separate submodules according to their affiliations to different
AFS command suites.  These resorted functions and variables are not
exported by default anymore but they are exported only on request.

All old features and interfaces from version 1 are still available for
compatibility, but are deprecated.  These cases have been marked in the
POD documentations.

You B<must not> intermix names or interfaces from version 1 with names
or interfaces from version 2. You either stick with version 1 or version
2.

=head1 DESCRIPTION

The AFS module bundle is a dynamically loadable (where available)
extension to Perl.  It gives the AFS user and administrator access to
most of the AFS programming APIs, allowing you to make these calls
directly from Perl, rather than processing the output of a command.

The AFS module bundle is a thin layer above the low-level AFS APIs. When
possible, function names are similar to the actual API names, or to the
AFS command suite names. The ordering of function parameters is not
always the same though.

The AFS module bundle includes the following features:

=over 4

=item * Access to Basic Overseer Server routines

Methods that deal with the Basic Overseer Server (i.e, the I<bos>
command suite).  See L<afsperlbos>.

=item * Access to Volume Server routines

Methods that deal with the Volume Server (i.e, part of the I<vos>
command suite).  See L<afsperlvos>.

=item * Access to Volume Location Server routines

Methods that deal with the Volume Location Server (i.e, part of the
I<vos> command suite).  See L<afsperlvos>.

=item * Access to File Server routines

Functions that deal with the File Server (i.e, part of the I<fs>
command suite).  See L<afsperlfs>.

=item * Access to Cache Manager routines

Functions that deal with the Cache Manager (i.e, part of the I<fs>
command suite).  See L<afsperlcm>.

=item * Managing Access Control Lists

Methods to control access to directories and all of their files. (i.e,
part of the I<fs> command suite). See L<afsperlacl>.

=item * Manipulations of the Cell Configuration

Functions that deal with Cell Configurations (i.e, part of the I<fs>
command suite).  See L<afsperlcell>.

=item * Access to Protection Server routines

Methods that deal with the Protection Server (i.e, the I<pts> command
suite).  See L<afsperlpts>.

=item * Access to the Authentication Server routines

Methods that deal with the Authentication Server (i.e, the I<kas>
command suite).  See L<afsperlkas>.

=item * Access to the AFS structure ktc_token

Methods that deal with token management in the I<Kernel Token Cache>
(KTC) (i.e, the tokens command).  See L<afsperlktct>.

=item * Access to the AFS structure ktc_principal

Methods that deal with principals related to tokens.  See
L<afsperlktcp>.

=item * Access to the AFS structure ktc_encryptionkey

Methods that deal with encryption keys related to tokens.  See
L<afsperlktck>.

=item * Access to shared utility routines

Utility functions for the AFS module bundle which are not part of any
AFS command suite (i.e, the setpag command).  See L<afsperlutils>.

=item * Access to basic AFS functions and to AFS error codes

Basic functions like raising a Perl exception when any AFS function call
fails (useful for debugging) or retrieving the status value of the last
AFS function call. See L<afsperlbase>.

=back

=head1 PREREQUISITES

=over 4

=item Perl 5.005_02 or better

=item AFS system libraries (either B<IBM/Transarc AFS V 3.6> or B<OpenAFS>)

=item AFS header files

=back

=head1 SEE ALSO

=over 4

=item OpenAFS documentations

=item OpenAFS source tree

=item AFS command suites (fs, pts, kas, bos, and vos)

=back

=head1 CAVEATS

These modules and their POD documentations have been written with the
help of the AFS source code, the AFS manuals, and the 'ancient' AFS
Programmer's Reference documentation.  Unfortunately nearly no
documentation was available for the interfaces to the AFS structures
ktc_token, ktc_principal, and ktc_encryptionkey.  Therefore these
modules are not very well documented.

=head1 AUTHORS

The current release was written by
Norbert E. Gruener S< E<lt>nog@MPA>S<-Garching.MPG.deE<gt>. >

The original module was written by
Roland Schemers S< E<lt>schemers@slapshot.stanford.eduE<gt>. >

=head1 CREDITS

Thank you to (in chronological order):

B<Lawrence Greenfield> - for his update in the AFS.xs file

B<Alf Wachsmann> - for his bug report on the function "setquota"

B<Gerhard Gonter> - for his configuration report for rs_aix32

B<Peter Scott> - for his improvement on ACL->keys and ACL->nkeys

B<Thomas M. Payerle> - for his configuration report for alpha_dux40

B<Wolfgang Friebel> - for his bug report on the functions "lsmount" and "rmmount"

B<Alf Wachsmann> - for his patches for the XS code and his excellent ideas about
the Makefile.PL

B<Wolfgang Friebel> - for his bug reports on version 2.0

B<James E. Flemer> - for his new method AFS::KTC_TOKEN->FromString

B<Phil Moore> - for his improvements of the Makefile.PL

B<Peter Scott> - for his bug report on the method "pts->id" and for
his "Sun" patches for the Makefile.PL

B<Nathan Neulinger> - for his improvements of the Makefile.PL

B<Bernard Antoine> - for his bug report about a memory leak in the method
"AFS::ACL->retrieve".

B<Peter Scott> - for his bug report about a memory leak in the function
"getvolstats"

B<Peter Scott> - for his bug report about the function AFS::constant

B<Venkata Phani Achanta> - for his improved test drivers for several modules

B<David R. Boldt> - for his bug report about an undefined "typemap" entry

B<Alf Wachsmann> and B<Venkata Phani Achanta> - for their implementation
of the BOS, VOS, and VLDB modules

B<Phil Moore> - for his bug report on Itanium ia64 platform

=head1 COPYRIGHT AND DISCLAIMER

 © 2001-2004 Norbert E. Gruener <nog@MPA-Garching.MPG.de>.
 All rights reserved.

 © 1994 Board of Trustees, Leland Stanford Jr. University.
 All rights reserved.

This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.

=over 6

=item The original module is covered by the following copyright:

Copyright (c) 1994 Board of Trustees, Leland Stanford Jr. University

Redistribution and use in source and binary forms are permitted
provided that the above copyright notice and this paragraph are
duplicated in all such forms and that any documentation,
advertising materials, and other materials related to such
distribution and use acknowledge that the software was developed
by Stanford University.  The name of the University may not be used
to endorse or promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

=back

=head1 DOCUMENT VERSION

Revision $Rev: 569 $
