[OpenAFS-devel] getting a token on login

Russ Allbery rra@stanford.edu
Tue, 05 Jul 2005 11:54:15 -0700


Josh Fiske <jfiske@clarkson.edu> writes:

> I would appreciate seeing the patches.  Though it should be noted that I
> am trying to make this work with RHEL4/FC4.  Perhaps your patches will
> lead me towards something useful.  If you'd prefer, you can send them to
> me off-list.

They're short enough to put on the list.  I've never managed to get RHEL4
working, but I'm not sure I tried everything that I could try.

Oh, right, that's what I did.  I built the .a libraries PIC and then
linked them in to the PAM modules to work around the PIC problem.  Note
that this is an ugly hack that builds some other portions of the code PIC
as well, and I've not tested using this patch in conjunction with a
regular client compile (I apply this patch and then build only the pieces
that we want that aren't in the Debian packages, mostly all the krb4
support components).

These are against 1.2.13; porting to 1.3 should be easy but is left as an
exercise to the reader.

--- openafs-extra-1.2.13.orig/Makefile.in
+++ openafs-extra-1.2.13/Makefile.in
@@ -321,7 +321,7 @@
 		${COMPILE_PART1} vfsck ${COMPILE_PART2} ;; \
 	esac
 
-login: project kauth rxkad
+login: project kauth rxkad libafsauthent libafsrpc
 	set -x; \
 	case ${SYS_NAME} in \
 	sgi_* ) \
--- openafs-extra-1.2.13.orig/src/auth/Makefile.in
+++ openafs-extra-1.2.13/src/auth/Makefile.in
@@ -57,7 +57,7 @@
 setkey.o: setkey.c ${INCLS} AFS_component_version_number.o
 
 ktc.krb.o: ktc.c ${INCLS} ${TOP_INCDIR}/afs/vice.h
-	${CC} ${CFLAGS} -DAFS_KERBEROS_ENV -c ktc.c -o ktc.krb.o
+	${CC} ${CFLAGS} -DAFS_KERBEROS_ENV -fPIC -c ktc.c -o ktc.krb.o
 
 libauth.a: $(OBJS) AFS_component_version_number.o
 	-$(RM) -f libauth.a
--- openafs-extra-1.2.13.orig/src/libafsauthent/Makefile.in
+++ openafs-extra-1.2.13/src/libafsauthent/Makefile.in
@@ -31,7 +31,7 @@
 include ../config/Makefile.${SYS_NAME}
 
 CC=${MT_CC}
-CFLAGS=${OPTMZ} ${DBG} -I${TOP_SRCDIR}/config -I${TOP_INCDIR} ${MT_CFLAGS}
+CFLAGS=${OPTMZ} ${DBG} -I${TOP_SRCDIR}/config -I${TOP_INCDIR} ${MT_CFLAGS} -fPIC
 CCRULE = ${CC} ${CFLAGS} -c $?
 
 AUDIT= ../audit
--- openafs-extra-1.2.13.orig/src/libafsrpc/Makefile.in
+++ openafs-extra-1.2.13/src/libafsrpc/Makefile.in
@@ -34,7 +34,7 @@
 
 CC=${MT_CC}
 INCLUDES=-I${TOP_INCDIR} -I.. -I../rx -I../rxkad
-CFLAGS = ${OPTMZ} ${DBG} ${INCLUDES} -DRXDEBUG ${MT_CFLAGS} -I${TOP_SRCDIR}/config
+CFLAGS = ${OPTMZ} ${DBG} ${INCLUDES} -DRXDEBUG ${MT_CFLAGS} -I${TOP_SRCDIR}/config -fPIC
 SFLAGS=-P -I${TOP_INCDIR}
 RX = ../rx
 CCRULE = ${CC} ${CFLAGS} -c $?
--- openafs-extra-1.2.13.orig/src/pam/Makefile.in
+++ openafs-extra-1.2.13/src/pam/Makefile.in
@@ -34,6 +34,9 @@
 	  ${TOP_LIBDIR}/liblwp.a ${TOP_LIBDIR}/libaudit.a \
           ${TOP_LIBDIR}/libcmd.a ${TOP_LIBDIR}/libcom_err.a \
 	  ${TOP_LIBDIR}/util.a
+THRDLIBS= ${TOP_LIBDIR}/libafsrpc.a ${TOP_LIBDIR}/libafsauthent.a \
+	  ${TOP_LIBDIR}/util.a ${TOP_LIBDIR}/libafsrpc.a \
+	  ${TOP_LIBDIR}/libafsauthent.a
 
 LDFLAGS = ${SHLIB_LDFLAGS}
    LIBS = ${TOP_LIBDIR}/libkauth.a ${LIBSA} ${TOP_LIBDIR}/libauth.a \
@@ -76,7 +79,9 @@
 		$(LD) $(LDFLAGS) -M mapfile -o $@ 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) -o $@ afs_setcred.o afs_auth.o afs_util.o \
+		    $(SHOBJS) $(LIBS) $(THRDLIBS) -lcrypt -lpam -lresolv \
+		    -lpthread ;;\
 	*fbsd*) \
 		$(CC) $(LDFLAGS) -o $@ afs_setcred.o afs_auth.o afs_util.o $(SHOBJS) $(LIBS) ;;\
 	* ) \
@@ -93,7 +98,9 @@
 		$(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) ;;\
+		$(CC) $(LDFLAGS) -o $@ afs_setcred_krb.o afs_auth_krb.o \
+		    afs_util_krb.o $(SHOBJS) ../auth/ktc.krb.o \
+		    $(THRDLIBS) -lcrypt -lpam -lresolv -lpthread ;;\
 	*fbsd*) \
 		$(CC) $(LDFLAGS) -o $@ afs_setcred_krb.o afs_auth_krb.o afs_util_krb.o $(SHOBJS) $(KLIBS) ;;\
 	* ) \
--- openafs-extra-1.2.13.orig/src/util/Makefile.in
+++ openafs-extra-1.2.13/src/util/Makefile.in
@@ -37,7 +37,7 @@
 
 include ../config/Makefile.${SYS_NAME}
 
-CFLAGS=${OPTMZ} -I${TOP_SRCDIR}/config -I. -I${TOP_INCDIR} ${XCFLAGS}
+CFLAGS=${OPTMZ} -I${TOP_SRCDIR}/config -I. -I${TOP_INCDIR} ${XCFLAGS} -fPIC
 LDFLAGS = ${OPTMZ} ${XLDFLAGS}
 
 objects = assert.o base64.o casestrcpy.o ktime.o volparse.o hostparse.o \

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