From 4fe795626ca4ce3d13aa145bc429a29a6f9b7a14 Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Sun, 14 Aug 2005 04:15:05 +0000 Subject: [PATCH] Redo all of the patch sets and move them into a subdirectory. Add explanations of the status of the various patches relative to upstream. Add the new PAM patch. --- debian/patch.001_libafs_destination_name | 18 --- debian/patch.002_sketchy_hpux_process_c | 18 --- debian/patch.004_bozo_permissions | 16 -- debian/patch.006_more_bozo_permissions | 16 -- debian/patch.hppa | 54 ------- debian/patches/README | 9 ++ debian/patches/bos-permissions | 23 +++ debian/patches/hpux-smp | 16 ++ debian/patches/module-name | 49 ++++++ debian/patches/os-config | 150 +++++++++++++++++ debian/patches/pam | 197 +++++++++++++++++++++++ 11 files changed, 444 insertions(+), 122 deletions(-) delete mode 100644 debian/patch.001_libafs_destination_name delete mode 100644 debian/patch.002_sketchy_hpux_process_c delete mode 100644 debian/patch.004_bozo_permissions delete mode 100644 debian/patch.006_more_bozo_permissions delete mode 100644 debian/patch.hppa create mode 100644 debian/patches/README create mode 100644 debian/patches/bos-permissions create mode 100644 debian/patches/hpux-smp create mode 100644 debian/patches/module-name create mode 100644 debian/patches/os-config create mode 100644 debian/patches/pam diff --git a/debian/patch.001_libafs_destination_name b/debian/patch.001_libafs_destination_name deleted file mode 100644 index 728f03a00..000000000 --- a/debian/patch.001_libafs_destination_name +++ /dev/null @@ -1,18 +0,0 @@ -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) diff --git a/debian/patch.002_sketchy_hpux_process_c b/debian/patch.002_sketchy_hpux_process_c deleted file mode 100644 index 2d247c617..000000000 --- a/debian/patch.002_sketchy_hpux_process_c +++ /dev/null @@ -1,18 +0,0 @@ -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 diff --git a/debian/patch.004_bozo_permissions b/debian/patch.004_bozo_permissions deleted file mode 100644 index 9ddcff544..000000000 --- a/debian/patch.004_bozo_permissions +++ /dev/null @@ -1,16 +0,0 @@ -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 */ diff --git a/debian/patch.006_more_bozo_permissions b/debian/patch.006_more_bozo_permissions deleted file mode 100644 index 5263b23b0..000000000 --- a/debian/patch.006_more_bozo_permissions +++ /dev/null @@ -1,16 +0,0 @@ -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 = diff --git a/debian/patch.hppa b/debian/patch.hppa deleted file mode 100644 index 7608c7896..000000000 --- a/debian/patch.hppa +++ /dev/null @@ -1,54 +0,0 @@ -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 - diff --git a/debian/patches/README b/debian/patches/README new file mode 100644 index 000000000..d337dfab9 --- /dev/null +++ b/debian/patches/README @@ -0,0 +1,9 @@ +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. diff --git a/debian/patches/bos-permissions b/debian/patches/bos-permissions new file mode 100644 index 000000000..d26193c59 --- /dev/null +++ b/debian/patches/bos-permissions @@ -0,0 +1,23 @@ +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 */ diff --git a/debian/patches/hpux-smp b/debian/patches/hpux-smp new file mode 100644 index 000000000..2565cd393 --- /dev/null +++ b/debian/patches/hpux-smp @@ -0,0 +1,16 @@ +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 diff --git a/debian/patches/module-name b/debian/patches/module-name new file mode 100644 index 000000000..148d2d837 --- /dev/null +++ b/debian/patches/module-name @@ -0,0 +1,49 @@ +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 + + +-${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 + diff --git a/debian/patches/os-config b/debian/patches/os-config new file mode 100644 index 000000000..77829c305 --- /dev/null +++ b/debian/patches/os-config @@ -0,0 +1,150 @@ +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" + ;; diff --git a/debian/patches/pam b/debian/patches/pam new file mode 100644 index 000000000..50425c35d --- /dev/null +++ b/debian/patches/pam @@ -0,0 +1,197 @@ +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} ;; \ + *) \ -- 2.39.5