[OpenAFS] Perl AFS module with OpenAFS 1.4.7
Russ Allbery
rra@stanford.edu
Mon, 06 Oct 2008 15:52:04 -0700
I vaguely recall there was a mailing list message reporting problems with
the AFS Perl module with current versions of OpenAFS, but I can't find it
again now. I was refreshing my x86 Debian packages and had to make a few
minor fixes for the com_err renaming, but nothing seems horribly broken.
With the below patch applied (and the KAS test disabled, since we have no
kaserver), the module passes all of its tests. I haven't used it to do
anything beyond that, though.
For some reason, the XS version checking was failing miserably with Perl
5.10 (complaining about undefined variables), so I had to disable it. I'm
not sure what's up with that; I haven't investigated further.
A better fix than this one is probably to rename all of the com_err calls
to use the afs_* names, but this was expedient and I wasn't sure if any of
the other symbols were used.
diff -ru AFS-2.4.0/src/AFS.xs AFS-2.4.0-new/src/AFS.xs
--- AFS-2.4.0/src/AFS.xs 2006-02-16 05:13:16.000000000 -0800
+++ AFS-2.4.0-new/src/AFS.xs 2008-10-06 15:33:15.000000000 -0700
@@ -43,6 +43,8 @@
#include "ppport.h"
#include <afs/param.h>
+#define AFS_OLD_COM_ERR 1
+#include <afs/com_err.h>
/* tired of seeing messages about TRUE/FALSE being redefined in rx/xdr.h */
#undef TRUE
#undef FALSE
@@ -122,7 +124,9 @@
typedef struct ubik_client *AFS__VOS;
typedef struct rx_connection *AFS__BOS;
+#ifndef __AFS_COM_ERR_H
extern char *error_message();
+#endif
extern struct ubik_client *cstruct;
extern int UV_SetSecurity();
#ifdef OpenAFS
@@ -10998,6 +11002,8 @@
MODULE = AFS PACKAGE = AFS PREFIX = afs_
+VERSIONCHECK: DISABLE
+
BOOT:
initialize_bz_error_table();
initialize_vols_error_table();
--
Russ Allbery (rra@stanford.edu) <http://www.eyrie.org/~eagle/>