[OpenAFS] Re: AFS Perl module and threaded Perl

Russ Allbery rra@stanford.edu
Fri, 03 Dec 2004 18:05:33 -0800


Chaskiel M Grundman <cg2v@andrew.cmu.edu> writes:

> libafsrpc replaces libafsint, librxkad, librx, liblwp, libdes,
> libcom_err and some of util.a (aka libafsutil), so you should remove
> references to those libraries when using it.

> When using libafsrpc, you should probably also use libafsauthent

> libafsauthent replaces libkauth, libprot, libubik, libauth, libsys, and
> more of util.a

> libvolser is not thread safe.

I'm hoping that thread safety won't matter for what the Perl module is
doing with it, although I'm not quite sure what exactly it's doing.

Can you tell me what version of OpenAFS this library first became
available in?  The Perl module tries to be compatible with a variety of
different AFS implementations, so I'd like to make the library list
conditional on the version of AFS.

I've now tested the following patch and it also works and passes all of
its tests.  This obviously is not the conditionalized version; I'll do
that once I have an answer to the above question.  Note that I had to
include -lrx -llwp -lutil -lcom_err at the end of the link line solely to
pick up clock_haveCurrentTime; is this something that afsrpc should really
be providing?  Apparently one of those other libraries wants it.

Here's the current library list, which is hard to figure out from the
patch:

    -lbos
    -lvolser
    -lvldb
    -lafsrpc
    -lafsauthent
    -lcmd
    -lusd
    -laudit
    -lrx
    -llwp
    -lutil
    -lcom_err

diff -ru AFS-2.2.2.orig/Makefile.PL AFS-2.2.2/Makefile.PL
--- AFS-2.2.2.orig/Makefile.PL	2004-04-22 04:55:14.000000000 -0700
+++ AFS-2.2.2/Makefile.PL	2004-12-03 17:47:18.000000000 -0800
@@ -1,11 +1,6 @@
 use ExtUtils::MakeMaker;
 # See lib/ExtUtils/MakeMaker.pm for details of how to influence
 # the contents of the Makefile that is written.
-use Config;
-
-my $archname = $Config{'archname'};
-
-if ($archname =~ /thread/i) { die "Threaded Perl is not supported ...\n"; }
 
 require 'version';
 
diff -ru AFS-2.2.2.orig/src/Makefile.PL AFS-2.2.2/src/Makefile.PL
--- AFS-2.2.2.orig/src/Makefile.PL	2004-05-05 03:01:34.000000000 -0700
+++ AFS-2.2.2/src/Makefile.PL	2004-12-03 18:00:01.000000000 -0800
@@ -12,9 +12,6 @@
 use ExtUtils::MakeMaker;
 use Config;
 
-my $archname = $Config{'archname'};
-if ($archname =~ /thread/i) { die "Threaded Perl is not supported ...\n"; }
-
 my $VERSION;
 my $head_url = '$HeadURL: svn+ssh://Fuji/afs/mpa/home/nog/SVN-Repositories/afsperl/tags/release-2.2.2/src/Makefile.PL $';
 if ($head_url =~ /rc\d/) {
@@ -114,28 +111,18 @@
                        "-L$AFSPath/lib -L$AFSPath/lib/afs "
                        . join (
                                    " ", qw(
-                                           -lkauth
-                                           -lprot
 					   -lbos
-                                           -lrx
                                            -lvolser
                                            -lvldb
-
+                                           -lafsrpc
+                                           -lafsauthent
                                            -lcmd
-                                           -lubik
-                                           -lauth
-
-                                           -lrxkad
-                                           -lrxstat
+                                           -lusd
+                                           -laudit
                                            -lrx
-
-                                           -lsys
-                                           -ldes
                                            -llwp
-                                           -lcom_err
                                            -lutil
-                                           -lusd
-                                           -laudit
+                                           -lcom_err
                                           )
                               )
                       ],

-- 
Russ Allbery (rra@stanford.edu)             <http://www.eyrie.org/~eagle/>