explanations of the status of the various patches relative to upstream.
Add the new PAM patch.
+++ /dev/null
-Index: src/libafs/MakefileProto.LINUX.in
-===================================================================
-RCS file: /afs/sipb.mit.edu/project/openafs/debian/cvs/openafs/src/libafs/MakefileProto.LINUX.in,v
-retrieving revision 1.1.1.3
-diff -u -r1.1.1.3 MakefileProto.LINUX.in
---- src/libafs/MakefileProto.LINUX.in 14 Jul 2001 22:22:46 -0000 1.1.1.3
-+++ src/libafs/MakefileProto.LINUX.in 16 Jul 2001 09:40:24 -0000
-@@ -143,8 +143,8 @@
- LIBAFS = libafs-${CLIENT}.o
- LIBAFS_MP = libafs-${CLIENT}.mp.o
-
--DEST_LIBAFS = ${DESTDIR}/root.client/usr/vice/etc/modload/${LIBAFS}
--DEST_LIBAFS_MP = ${DESTDIR}/root.client/usr/vice/etc/modload/${LIBAFS_MP}
-+DEST_LIBAFS = ${DESTDIR}/root.client/usr/vice/etc/modload/openafs.o
-+DEST_LIBAFS_MP = ${DESTDIR}/root.client/usr/vice/etc/modload/openafs.mp.o
-
-
- libafs: $(DEST_LIBAFS)
+++ /dev/null
-Index: src/lwp//process.c
-===================================================================
-RCS file: /afs/sipb/project/openafs/debian/cvs/openafs/src/lwp/process.c,v
-retrieving revision 1.8
-diff -u -r1.8 process.c
---- src/lwp//process.c 11 Sep 2001 15:48:27 -0000 1.8
-+++ src/lwp//process.c 25 Feb 2002 19:42:17 -0000
-@@ -92,7 +92,9 @@
- #elif defined(AFS_HPUX_ENV)
- #define LWP_SP 1
- #elif defined(AFS_LINUX20_ENV)
--#if defined(AFS_PPC_LINUX20_ENV)
-+#if defined(AFS_PARISC_LINUX24_ENV )
-+#define LWP_SP 1
-+#elif defined(AFS_PPC_LINUX20_ENV)
- #define LWP_SP 0
- #elif defined(AFS_I386_LINUX20_ENV)
- #define LWP_SP 4
+++ /dev/null
-Index: src/bozo//bosoprocs.c
-===================================================================
-RCS file: /afs/sipb.mit.edu/project/openafs/debian/cvs/openafs/src/bozo/bosoprocs.c,v
-retrieving revision 1.1.1.8
-diff -u -r1.1.1.8 bosoprocs.c
---- bosoprocs.c 2001/10/14 18:04:05 1.1.1.8
-+++ bosoprocs.c 2001/11/25 22:57:19
-@@ -1160,7 +1160,7 @@
-
- struct bozo_bosEntryStats bozo_bosEntryStats[] = {
- {NULL, 1,1, 0755, 02}, /* AFSDIR_SERVER_AFS_DIRPATH */
-- {NULL, 1,1, 0755, 02}, /* AFSDIR_SERVER_ETC_DIRPATH */
-+ {NULL, 1,1, 0700, 02}, /* AFSDIR_SERVER_ETC_DIRPATH */
- {NULL, 1,1, 0755, 02}, /* AFSDIR_SERVER_BIN_DIRPATH */
- {NULL, 1,1, 0755, 02}, /* AFSDIR_SERVER_LOGS_DIRPATH */
- {NULL, 1,0, 0700, 07}, /* AFSDIR_SERVER_BACKUP_DIRPATH */
+++ /dev/null
-Index: src/bozo//bosoprocs.c
-===================================================================
-RCS file: /afs/sipb.mit.edu/project/openafs/debian/cvs/openafs/src/bozo/bosoprocs.c,v
-retrieving revision 1.2
-diff -u -r1.2 bosoprocs.c
---- bosoprocs.c 2001/11/25 23:06:38 1.2
-+++ bosoprocs.c 2001/11/25 23:19:53
-@@ -1165,7 +1165,7 @@
- {NULL, 1,1, 0755, 02}, /* AFSDIR_SERVER_LOGS_DIRPATH */
- {NULL, 1,0, 0700, 07}, /* AFSDIR_SERVER_BACKUP_DIRPATH */
- {NULL, 1,1, 0700, 07}, /* AFSDIR_SERVER_DB_DIRPATH */
-- {NULL, 1,1, 0700, 07}, /* AFSDIR_SERVER_LOCAL_DIRPATH */
-+ {NULL, 1,1, 0700, 02}, /* AFSDIR_SERVER_LOCAL_DIRPATH */
- {NULL, 0,1, 0600, 07}, /* AFSDIR_SERVER_KEY_FILEPATH */
- {NULL, 0,1, 0600, 03}};/* AFSDIR_SERVER_ULIST_FILEPATH */
- int bozo_nbosEntryStats =
+++ /dev/null
-Index: src/pam/Makefile.in
-===================================================================
-RCS file: /afs/sipb/project/openafs/debian/cvs/openafs/src/pam/Makefile.in,v
-retrieving revision 1.9
-diff -u -r1.9 Makefile.in
---- src/pam/Makefile.in 13 Apr 2003 21:16:40 -0000 1.9
-+++ src/pam/Makefile.in 13 Apr 2003 21:28:00 -0000
-@@ -92,6 +92,8 @@
- sun*_5*) \
- $(LD) $(LDFLAGS) -M mapfile -o $@ \
- afs_setcred_krb.o afs_auth_krb.o afs_util_krb.o $(SHOBJS) $(LDFLAGS) $(KLIBS) ;; \
- *linux*) \
- $(CC) $(LDFLAGS) -o $@ afs_setcred_krb.o afs_auth_krb.o afs_util_krb.o $(SHOBJS) $(KLIBS) ;;\
- *fbsd*) \
-@@ -121,7 +123,13 @@
- ${INSTALL} $? $@
-
- ${DEST}/lib/pam_afs.krb.so.1: pam_afs.krb.so.1
-- ${INSTALL} $? $@
-+ set -x; \
-+ case "$(SYS_NAME)" in \
-+ parisc*_linux*) \
-+ echo Skipping install of $@. ;; \
-+ *) \
-+ ${INSTALL} $? $@ ;; \
-+ esac
-
- afs_pam_msg.o: afs_pam_msg.c afs_pam_msg.h afs_message.h
- afs_message.o: afs_message.c afs_message.h
-@@ -141,10 +149,22 @@
- ${INSTALL} $? $@
-
- ${DESTDIR}${libdir}/pam_afs.krb.so.1: pam_afs.krb.so.1
-- ${INSTALL} $? $@
-+ set -x; \
-+ case "$(SYS_NAME)" in \
-+ parisc*_linux*) \
-+ echo Skipping install of $@. ;; \
-+ *) \
-+ ${INSTALL} $? $@ ;; \
-+ esac
-
- ${TOP_LIBDIR}/pam_afs.krb.so.1: pam_afs.krb.so.1
-- ${INSTALL} $? $@
-+ set -x; \
-+ case "$(SYS_NAME)" in \
-+ parisc*_linux*) \
-+ echo Skipping install of $@. ;; \
-+ *) \
-+ ${INSTALL} $? $@ ;; \
-+ esac
-
- dest: ${DEST}/lib/pam_afs.so.1 ${DEST}/lib/pam_afs.krb.so.1
-
--- /dev/null
+This directory contains patches relative to the upstream OpenAFS source.
+It is not used automatically as part of the build process and is not
+guaranteed to be completely up-to-date; it is intended as documentation of
+significant divergences, a place to store patches that should be sent
+upstream, and a place to document the current status of patches.
+
+Simple Debian-specific changes that aren't of interest to upstream will
+not be included here, such as updating config.{guess,sub} or changing
+paths to fit with the FHS.
--- /dev/null
+Allow a broader range of permissions on /etc/openafs/server and
+/etc/openafs/server-local because we use different permissions than
+upstream. The /etc/openafs/server-local change would probably be
+acceptable upstream. The /etc/openafs/server change isn't, since upstream
+supports having bos create /usr/vice/etc as links to the ETC_DIRPATH.
+
+--- openafs-1.3.87.orig/src/bozo/bosoprocs.c
++++ openafs-1.3.87/src/bozo/bosoprocs.c
+@@ -1324,12 +1324,12 @@
+
+ struct bozo_bosEntryStats bozo_bosEntryStats[] = {
+ {NULL, 1, 1, 0755, 02}, /* AFSDIR_SERVER_AFS_DIRPATH */
+- {NULL, 1, 1, 0755, 02}, /* AFSDIR_SERVER_ETC_DIRPATH */
++ {NULL, 1, 1, 0700, 02}, /* AFSDIR_SERVER_ETC_DIRPATH */
+ {NULL, 1, 1, 0755, 02}, /* AFSDIR_SERVER_BIN_DIRPATH */
+ {NULL, 1, 1, 0755, 02}, /* AFSDIR_SERVER_LOGS_DIRPATH */
+ {NULL, 1, 0, 0700, 07}, /* AFSDIR_SERVER_BACKUP_DIRPATH */
+ {NULL, 1, 1, 0700, 07}, /* AFSDIR_SERVER_DB_DIRPATH */
+- {NULL, 1, 1, 0700, 07}, /* AFSDIR_SERVER_LOCAL_DIRPATH */
++ {NULL, 1, 1, 0700, 02}, /* AFSDIR_SERVER_LOCAL_DIRPATH */
+ {NULL, 0, 1, 0600, 07}, /* AFSDIR_SERVER_KEY_FILEPATH */
+ {NULL, 0, 1, 0600, 03}
+ }; /* AFSDIR_SERVER_ULIST_FILEPATH */
--- /dev/null
+A hack for 2.4 HPPA. I don't completely understand what this does or why
+it helps (and whether it's still needed).
+
+--- openafs-1.3.87.orig/src/lwp/process.c
++++ openafs-1.3.87/src/lwp/process.c
+@@ -101,7 +101,9 @@
+ #elif defined(AFS_HPUX_ENV)
+ #define LWP_SP 1
+ #elif defined(AFS_LINUX20_ENV)
+-#if defined(AFS_PPC_LINUX20_ENV) || defined(AFS_PPC64_LINUX20_ENV)
++#if defined(AFS_PARISC_LINUX24_ENV )
++#define LWP_SP 1
++#elif defined(AFS_PPC_LINUX20_ENV)|| defined(AFS_PPC64_LINUX20_ENV)
+ #define LWP_SP 0
+ #elif defined(AFS_I386_LINUX20_ENV)
+ #define LWP_SP 4
--- /dev/null
+Upstream uses libafs as the module name, mostly for historic reasons. It
+also uses a different module name depending on whether the module is built
+for SMP systems, something that Debian deals with by creating separate
+packages. This patch changes the name of the module to openafs and
+removes the separate name for the SMP version.
+
+Probably not acceptable upstream.
+
+--- openafs-1.3.87.orig/src/libafs/MakefileProto.LINUX.in
++++ openafs-1.3.87/src/libafs/MakefileProto.LINUX.in
+@@ -216,8 +216,8 @@
+
+ # Below this line are targets when in the COMMON directory:
+ # For Linux there is no kernel NFS server.
+-LIBAFS = libafs-${CLIENT}.${LINUX_MODULE_EXT}
+-LIBAFS_MP = libafs-${CLIENT}.mp.${LINUX_MODULE_EXT}
++LIBAFS = openafs.${LINUX_MODULE_EXT}
++LIBAFS_MP = openafs.${LINUX_MODULE_EXT}
+ LIBAFS_EP = libafs-${CLIENT}.ep.${LINUX_MODULE_EXT}
+ LIBAFS_BM = libafs-${CLIENT}.bm.${LINUX_MODULE_EXT}
+
+@@ -226,10 +226,8 @@
+ INST_LIBAFS_EP = ${DESTDIR}${afskerneldir}/${LIBAFS_EP}
+ INST_LIBAFS_BM = ${DESTDIR}${afskerneldir}/${LIBAFS_BM}
+
+-DEST_LIBAFS = ${DEST}/root.client/usr/vice/etc/modload/${LIBAFS}
+-DEST_LIBAFS_MP = ${DEST}/root.client/usr/vice/etc/modload/${LIBAFS_MP}
+-DEST_LIBAFS_EP = ${DEST}/root.client/usr/vice/etc/modload/${LIBAFS_EP}
+-DEST_LIBAFS_BM = ${DEST}/root.client/usr/vice/etc/modload/${LIBAFS_BM}
++DEST_LIBAFS = ${DEST}/root.client/usr/vice/etc/modload/openafs.o
++DEST_LIBAFS_MP = ${DEST}/root.client/usr/vice/etc/modload/openafs.mp.o
+
+
+ libafs: $(LIBAFS)
+@@ -245,11 +243,11 @@
+ echo BM Build Complete
+
+ <linux26 linux_26 umlinux26>
+-${LIBAFS} ${LIBAFS_MP} ${LIBAFS_EP} ${LIBAFS_BM}: libafs.ko
+- cp libafs.ko $@
++${LIBAFS} ${LIBAFS_MP} ${LIBAFS_EP} ${LIBAFS_BM}: openafs.ko
++ cp openafs.ko $@
+
+ .FORCE:
+-libafs.ko: .FORCE
++openafs.ko: .FORCE
+ env EXTRA_CFLAGS="${EXTRA_CFLAGS}" @TOP_SRCDIR@/libafs/make_kbuild_makefile.pl ${KDIR} $@ @TOP_OBJDIR@/src/config/Makefile.config Makefile.afs Makefile.common
+ env EXTRA_CFLAGS="${EXTRA_CFLAGS}" $(MAKE) -C ${LINUX_KERNEL_PATH} M=@TOP_OBJDIR@/src/libafs/${KDIR} modules
+
--- /dev/null
+Various changes to fix OS configuration. Use PIC for shared library
+builds on all Linux platforms so that the shared library objects are
+useful for the PIC PAM modules, support 32-bit SPARC builds with the 2.4
+and 2.6 kernels (hopefully), and allow hppa as well as parisc (needed for
+the new config.guess).
+
+This should be okay upstream. The PIC part has been submitted.
+
+--- openafs-1.3.87.orig/src/cf/osconf.m4
++++ openafs-1.3.87/src/cf/osconf.m4
+@@ -241,6 +241,7 @@
+ MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
+ MT_LIBS="-lpthread"
+ PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC"
++ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LDFLAGS="-shared -Xlinker -x"
+ TXLIBS="-lncurses"
+ XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE -G0"
+@@ -268,6 +269,7 @@
+ MT_LIBS="-lpthread"
+ PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_LDFLAGS="-shared -Xlinker -x"
++ SHLIB_CFLAGS="-fPIC"
+ TXLIBS="/usr/lib64/libncurses.so"
+ XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE"
+ SHLIB_LINKER="${MT_CC} -shared"
+@@ -296,6 +298,7 @@
+ MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
+ MT_LIBS="-lpthread"
+ PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
++ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LDFLAGS="-shared -Xlinker -x"
+ TXLIBS="-lncurses"
+ XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
+@@ -317,6 +320,7 @@
+ LWP_OPTMZ=-O2
+ OPTMZ=-O2
+ PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC"
++ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LDFLAGS="-shared -Xlinker -x"
+ TXLIBS="-lncurses"
+ XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE"
+@@ -337,6 +341,7 @@
+ LWP_OPTMZ=-O2
+ OPTMZ=-O2
+ PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC"
++ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LDFLAGS="-shared -Xlinker -x"
+ TXLIBS="-lncurses"
+ XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE"
+@@ -357,6 +362,7 @@
+ LWP_OPTMZ=-O2
+ OPTMZ=-O2
+ PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC"
++ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LDFLAGS="-shared -Xlinker -x"
+ TXLIBS="-lncurses"
+ XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE"
+@@ -381,6 +387,7 @@
+ MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
+ MT_LIBS="-lpthread"
+ PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
++ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LDFLAGS="-shared -Xlinker -x"
+ TXLIBS="-lncurses"
+ XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
+@@ -452,6 +459,7 @@
+ MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
+ MT_LIBS="-lpthread"
+ PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
++ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LDFLAGS="-shared -Xlinker -x"
+ TXLIBS="-lncurses"
+ XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
+@@ -530,6 +538,7 @@
+ MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
+ MT_LIBS="-lpthread"
+ PAM_CFLAGS="-O -Dlinux -DLINUX_PAM -fPIC"
++ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LDFLAGS="-shared -Xlinker -x"
+ TXLIBS="-lncurses"
+ XCFLAGS="-O -g -D_LARGEFILE64_SOURCE"
+@@ -547,6 +556,7 @@
+ MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
+ MT_LIBS="-lpthread"
+ PAM_CFLAGS="-O -Dlinux -DLINUX_PAM -fPIC"
++ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LDFLAGS="-shared -Xlinker -x"
+ TXLIBS="-lncurses"
+ XCFLAGS="-O -g -D_LARGEFILE64_SOURCE"
+@@ -564,6 +574,7 @@
+ MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
+ MT_LIBS="-lpthread"
+ PAM_CFLAGS="-O -Dlinux -DLINUX_PAM -fPIC"
++ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LDFLAGS="-shared -Xlinker -x -Xlinker -Bsymbolic"
+ TXLIBS="-lncurses"
+ XCFLAGS="-O -g -D_LARGEFILE64_SOURCE -D__s390x__"
+@@ -633,38 +644,13 @@
+ SHLIB_LINKER="${CC} -shared"
+ ;;
+
+- sparc64_linux22)
+- KERN_OPTMZ=-O2
+- LEX="flex -l"
+- MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
+- MT_LIBS="-lpthread"
+- PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
+- SHLIB_LDFLAGS="-shared -Xlinker -x"
+- TXLIBS="-lncurses"
+- XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
+- YACC="bison -y"
+- SHLIB_LINKER="${MT_CC} -shared"
+- ;;
+-
+- sparc64_linux24)
+- KERN_OPTMZ=-O2
+- LEX="flex -l"
+- MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
+- MT_LIBS="-lpthread"
+- PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
+- SHLIB_LDFLAGS="-shared -Xlinker -x"
+- TXLIBS="-lncurses"
+- XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
+- YACC="bison -y"
+- SHLIB_LINKER="${MT_CC} -shared"
+- ;;
+-
+- sparc_linux22)
++ sparc*_linux*)
+ KERN_OPTMZ=-O2
+ LEX="flex -l"
+ MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
+ MT_LIBS="-lpthread"
+ PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
++ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LDFLAGS="-shared -Xlinker -x"
+ TXLIBS="-lncurses"
+ XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
+--- openafs-1.3.87.orig/acinclude.m4
++++ openafs-1.3.87/acinclude.m4
+@@ -491,7 +491,7 @@
+ i?86-*-linux*)
+ AFS_SYSNAME="i386_linuxXX"
+ ;;
+- parisc-*-linux-gnu)
++ parisc-*-linux-gnu|hppa-*-linux-gnu)
+ AFS_SYSNAME="parisc_linuxXX"
+ enable_pam="no"
+ ;;
--- /dev/null
+The standard upstream source builds the PAM modules against static
+libraries, which means they contain non-PIC code. This isn't allowed by
+Debian Policy and doesn't work on some supported platforms.
+
+Two approaches for fixing this have been tried. One is to rebuild the
+various object files that are part of the libraries PIC and then link with
+those object files. The other, which this implements, is to link with the
+object files used to create the libafsauthent and libafsrpc shared
+libraries (which can't be shipped since they don't have a stable API or
+correct SONAME). The latter means that the PAM modules must also be
+linked with libpthread, but that's a feature since that means they'll work
+with sshd built threaded.
+
+Not submitted upstream yet. The call to rx_Init should be submitted
+upstream and would probably be accepted. Upstream would probably rather
+link the PAM modules against the shared libraries rather than accepting
+this hack, which is unsuitable for Debian until the shared libraries are
+handled more consistently.
+
+--- openafs-1.3.87.orig/src/pam/Makefile.in
++++ openafs-1.3.87/src/pam/Makefile.in
+@@ -25,7 +25,7 @@
+ afs_pam_msg.o afs_message.o AFS_component_version_number.o
+ OBJS = $(SHOBJS) test_pam.o
+ INCLUDES=-I${TOP_OBJDIR}/src/config -I${TOP_INCDIR}
+-CFLAGS = ${DEBUG} ${INCLUDES} ${PAM_CFLAGS}
++CFLAGS = ${DEBUG} ${INCLUDES} ${PAM_CFLAGS} ${MT_CFLAGS}
+
+ all: test_pam ${TOP_LIBDIR}/pam_afs.so.1 ${TOP_LIBDIR}/pam_afs.krb.so.1
+
+@@ -39,14 +39,18 @@
+ ${CC} ${CFLAGS} -c ${srcdir}/afs_auth.c -o afs_auth.o
+
+ afs_auth_krb.o: afs_auth.c afs_pam_msg.h afs_message.h afs_util.h
+- ${CC} ${CFLAGS} -DAFS_KERBEROS_ENV -c ${srcdir}/afs_auth.c -o afs_auth_krb.o
++ ${CC} ${CFLAGS} -DAFS_KERBEROS_ENV -c ${srcdir}/afs_auth.c -o afs_auth_krb.o
+
+ afs_util.o: afs_util.c afs_pam_msg.h afs_message.h afs_util.h
+ ${CC} ${CFLAGS} -c ${srcdir}/afs_util.c -o afs_util.o
+
++
+ afs_util_krb.o: afs_util.c afs_pam_msg.h afs_message.h afs_util.h
+ ${CC} ${CFLAGS} -DAFS_KERBEROS_ENV -c ${srcdir}/afs_util.c -o afs_util_krb.o
+
++ktc.o: ${srcdir}/../auth/ktc.c
++ ${CC} ${CFLAGS} -DAFS_KERBEROS_ENV -c ${srcdir}/../auth/ktc.c
++
+ pam_afs.so.1: $(SHOBJS) afs_setcred.o afs_auth.o afs_util.o
+ set -x; \
+ case "$(SYS_NAME)" in \
+@@ -59,8 +63,10 @@
+ afs_setcred.o afs_auth.o afs_util.o \
+ $(SHOBJS) $(LIBS) ;; \
+ *linux*) \
+- $(CC) $(LDFLAGS) -o $@ afs_setcred.o \
+- afs_auth.o afs_util.o $(SHOBJS) $(LIBS) ;;\
++ $(CC) $(LDFLAGS) $(PAM_CFLAGS) -o $@ afs_setcred.o \
++ afs_auth.o afs_util.o $(SHOBJS) \
++ ../shlibafsauthent/[a-z]*.o ../shlibafsrpc/[a-z]*.o \
++ $(MT_LIBS) -lpam -lresolv;;\
+ *fbsd*| *nbsd*) \
+ $(CC) $(LDFLAGS) -o $@ afs_setcred.o \
+ afs_auth.o afs_util.o $(SHOBJS) $(LIBS) ;;\
+@@ -68,7 +74,7 @@
+ echo No link line for system $(SYS_NAME). ;; \
+ esac
+
+-pam_afs.krb.so.1: $(SHOBJS) afs_setcred_krb.o afs_auth_krb.o afs_util_krb.o
++pam_afs.krb.so.1: $(SHOBJS) afs_setcred_krb.o afs_auth_krb.o afs_util_krb.o ktc.o
+ set -x; \
+ case "$(SYS_NAME)" in \
+ hp_ux* | ia64_hpux*) \
+@@ -81,7 +87,10 @@
+ $(SHOBJS) $(LDFLAGS) $(KLIBS) ;; \
+ *linux*) \
+ $(CC) $(LDFLAGS) -o $@ afs_setcred_krb.o \
+- afs_auth_krb.o afs_util_krb.o $(SHOBJS) $(KLIBS) ;;\
++ afs_auth_krb.o afs_util_krb.o ktc.o $(SHOBJS) \
++ `ls ../shlibafsauthent/[a-z]*.o | grep -v ktc.o` \
++ ../shlibafsrpc/[a-z]*.o \
++ $(MT_LIBS) -lpam -lresolv;;\
+ *fbsd*| *nbsd*) \
+ $(CC) $(LDFLAGS) -o $@ afs_setcred_krb.o \
+ afs_auth_krb.o afs_util_krb.o $(SHOBJS) $(KLIBS) ;;\
+@@ -104,13 +113,19 @@
+ echo No link line for system $(SYS_NAME). ;; \
+ esac
+
+ install: ${DESTDIR}${libdir}/pam_afs.so.1 ${DESTDIR}${libdir}/pam_afs.krb.so.1
+
+ ${DEST}/lib/pam_afs.so.1: pam_afs.so.1
+ ${INSTALL} $? $@
+
+ ${DEST}/lib/pam_afs.krb.so.1: pam_afs.krb.so.1
+- ${INSTALL} $? $@
++ set -x; \
++ case "$(SYS_NAME)" in \
++ parisc*_linux*) \
++ echo Skipping install of $@. ;; \
++ *) \
++ ${INSTALL} $? $@ ;; \
++ esac
+
+ afs_pam_msg.o: afs_pam_msg.c afs_pam_msg.h afs_message.h
+ afs_message.o: afs_message.c afs_message.h
+@@ -130,10 +145,22 @@
+ ${INSTALL} $? $@
+
+ ${DESTDIR}${libdir}/pam_afs.krb.so.1: pam_afs.krb.so.1
+- ${INSTALL} $? $@
++ set -x; \
++ case "$(SYS_NAME)" in \
++ parisc*_linux*) \
++ echo Skipping install of $@. ;; \
++ *) \
++ ${INSTALL} $? $@ ;; \
++ esac
+
+ ${TOP_LIBDIR}/pam_afs.krb.so.1: pam_afs.krb.so.1
+- ${INSTALL} $? $@
++ set -x; \
++ case "$(SYS_NAME)" in \
++ parisc*_linux*) \
++ echo Skipping install of $@. ;; \
++ *) \
++ ${INSTALL} $? $@ ;; \
++ esac
+
+ dest: ${DEST}/lib/pam_afs.so.1 ${DEST}/lib/pam_afs.krb.so.1
+
+--- openafs-1.3.87.orig/src/pam/afs_setcred.c
++++ openafs-1.3.87/src/pam/afs_setcred.c
+@@ -52,7 +52,7 @@
+ int refresh_token = 0;
+ int set_expires = 0; /* the default is to not to set the env variable */
+ int use_klog = 0;
+- int i;
++ int i, code;
+ struct pam_conv *pam_convp = NULL;
+ char my_password_buf[256];
+ char *cell_ptr = NULL;
+@@ -281,6 +281,11 @@
+ #endif
+ }
+
++ if ((code = rx_Init(0)) != 0) {
++ pam_afs_syslog(LOG_ERR, PAMAFS_KAERROR, code);
++ RET(PAM_AUTH_ERR);
++ }
++
+ if (flags & PAM_REFRESH_CRED) {
+ if (use_klog) {
+ auth_ok = !do_klog(user, password, "00:00:01", cell_ptr);
+--- openafs-1.3.87.orig/src/pam/afs_auth.c
++++ openafs-1.3.87/src/pam/afs_auth.c
+@@ -314,6 +314,10 @@
+ if (cpid <= 0) { /* The child process */
+ if (logmask && LOG_MASK(LOG_DEBUG))
+ syslog(LOG_DEBUG, "in child");
++ if ((code = rx_Init(0)) != 0) {
++ pam_afs_syslog(LOG_ERR, PAMAFS_KAERROR, code);
++ exit(0);
++ }
+ if (refresh_token || set_token)
+ code = ka_UserAuthenticateGeneral(KA_USERAUTH_VERSION, user, /* kerberos name */
+ NULL, /* instance */
+@@ -363,6 +367,10 @@
+ pam_afs_syslog(LOG_ERR, PAMAFS_PAMERROR, errno);
+ }
+ } else { /* dont_fork, used by httpd */
++ if ((code = rx_Init(0)) != 0) {
++ pam_afs_syslog(LOG_ERR, PAMAFS_KAERROR, code);
++ RET(PAM_AUTH_ERR);
++ }
+ if (logmask && LOG_MASK(LOG_DEBUG))
+ syslog(LOG_DEBUG, "dont_fork");
+ if (refresh_token || set_token)
+--- openafs-1.3.87.orig/Makefile.in
++++ openafs-1.3.87/Makefile.in
+@@ -507,8 +507,6 @@
+ # pthread based user space RX library
+ shlibafsrpc: rx rxkad des
+ case ${SYS_NAME} in \
+- amd64_linux24) \
+- echo Skipping shlibafsrpc for amd64_linux24 ;; \
+ alpha_dux*|sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*) \
+ ${COMPILE_PART1} shlibafsrpc ${COMPILE_PART2} ;; \
+ *) \
+@@ -517,8 +515,6 @@
+
+ shlibafsauthent: ubik auth kauth shlibafsrpc
+ case ${SYS_NAME} in \
+- amd64_linux24) \
+- echo Skipping shlibafsauthent for amd64_linux24 ;; \
+ alpha_dux*|sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*) \
+ ${COMPILE_PART1} shlibafsauthent ${COMPILE_PART2} ;; \
+ *) \