
				Authen::PAM 

				Version 0.05

				Mar 23 1999


	Copyright (c) 1998,1999 Nikolay Pelov. All rights reserved.
	This program is free software; you can redistribute it and/or
	modify it under the same terms as Perl itself.


DESCRIPTION
===========

This module provides a Perl interface to the PAM library.


PREREQUISITES
=============

Before you can build Authen::PAM you need to have the following
things installed on your system:

  * Perl, at least version 5.003_23
  * This module is known to work with the following implementations of 
    the PAM library:
    - Linux-PAM
    - Solaris 2.6
    - FreeBSD 3.1

  The Linux-PAM home page is http://www.kernel.org/pub/linux/libs/pam


BUILDING AND INSTALLING THE MODULE
==================================

Assuming you have met all the prerequisites, you can built the module 
using the following sequence of commands:

    ./configure
    make
    make test
    make install

If the name of your perl executable is different than `perl' and/or
it is not located in your $PATH then use the following:

    PERL=/path_tp_perl/perl_name ./configure

If you have any problems in building and installing the module then you
can write me a mail which includes all the output during the build process,
the versions of PAM, Perl (with -V flag), libc, Your-OS which you are using 
and eventualy all header files found in your /usr/include/security directory 
and I will try to fix it.


Here is a more detailed description of how the configuration process works.
I have used the GNU autoconf tool to create the `configure' script from the
files `configure.in' and aclocal.m4. This is very unusual in the world of 
perl but this is probably the only possible way to detect the different 
features of you OS an pam library and to customize the Authen::PAM module
to them during compile time.

And here is what the configure script does exactly:
  - if the PERL variable is not defined it searches for the perl executable
    in your path;
  - then it sets the variables CC and CPP (if they were not previously 
    defined) using the values `cc' and `cpprun' from the perl 
    module `Config';
  - next it runs the standard autoconf tests for the compiler and
    the preprocessor;
Now come the module specific tests:
  - does your PAM library supports the environment handling functions?
    (only versions of Linux-PAM before 0.54 does not support them)
  - does your dynamic linking loader supports the RTLD_GLOBAL flag?
    (currently only FreeBSD 3.1 does not support it)
Then it creates the files `Makefile.PL' and `PAM.pm' from the corresponding
`.in' files.
Finally it calls `perl Makefile.PL' to create the `Makefie'.


KNOWN PROBLEMS
==============

  Buggy glibc2
  ------------

  Some of the first versions of the glibc2 libraries have a bug in the
  dlopen function which will prevent this module from working. If you are 
  using an original RedHat 5.0 distribution then you probably have this 
  problem. 
  I know that the bug is fixed in at least version 2.0.7-6 of the glibc2 
  library. 


  Perl version 5.004_03
  ---------------------

  If you are using perl, version 5.004_03 then you will probably see the
  following error during the compilation of PAM.xs file to PAM.c:

     PAM.c:NNN: invalid format `#line' directive.

  This is caused by a bug in the xsubpp compiler.
  The simpliest way to solve this problem is to open the file PAM.c,
  delete the line with the error and run make again.

  The other solution is to patch your xsubpp compiler. Go to your perl
  directory (usually /usr/lib/perl5 or /usr/local/lib/perl5) and apply the
  patch xsubpp-1.9504.patch.


AUTHOR
======

  Nikolay Pelov <nikip@iname.com>

  The original distribution site of this module is 
  http://www.cs.kuleuven.ac.be/~pelov/pam/

