OpenAFS Gurus, I spent a few hours today playing with Phoebe (the new beta from Redhat), trying to get OpenAFS 1.2.8 to work. I started with the RedHat 8.0 source RPMS from www.openafs.org. I’ve run into a few problems that I was able to solve, but could use a quick hand with a subject everyone on this list is rapidly becoming experts at – Linux syscalls. First, the problems I’ve been able to solve.
#1 – The first problem was the well documented issue of src/pam/Makefile.in and the extra –I/usr/include line. This is already fixed in CVS, so I just deleted the line on my local copy and re-ran configure. #2 – The second problem was the also documented problem with errno.h. The two files that need errno.h included are src/sys/rmtsyss.c and src/ptserver/pt_util.c. #3 – Third, it seems some of the external functions OpenAFS use changed names. To start with, recalc_sigpending() no longer takes any arguments; it is assumed you want to act on the current task. If you want to act on something other than the current task, you need to use recalc_sigpending_tsk(task); Second, for_each_task() (a #define from sched.h) changed names to for_each_process(). #4 – The names of some of the members of struct task changed. The changes that affect OpenAFS are (I think I got this right – I had to do some searching to find out): sigmask_lock became sig->siglock p_pptr became parent p_opptr became real_parent
With those four items fixed, I was able to build and install OpenAFS. And then I tried to load it, and wouldn’t you know it….
libafs-2.4.20-2.2-i686.o: unresolved symbol sys_open libafs-2.4.20-2.2-i686.o: unresolved symbol sys_exit libafs-2.4.20-2.2-i686.o: unresolved symbol recalc_sigpending_tsk libafs-2.4.20-2.2-i686.o: Hint: You are trying to load a module without a GPL compatible license and it has unresolved symbols. Contact the module supplier for assistance, only they can help you.
I know these needs to be fixed in osi_module.c, but I got lost in that file. I’m giving up and going home.
To help anyone else out who wants to work on this over the weekend, I’m attaching my patches that apply cleanly to a fresh OpenAFS 1.2.8 Redhat 8.0 .src.rpm. The two patches are:
Openafs-errno.patch – Includes the fixes for problems #1 and #2 listed above. You can cleanly and safely apply this patch to any install. Openafs-kern-struct-change.patch – Includes the fixes for problems #3 and #4 above. This patch is very specific to kernel 2.4.20 (and maybe 2.4.19). I haven’t wrapped any of the functions with an #ifdef NEW_LINUX_NAMES or anything like that, so once you install this patch on your source tree you will be unable to compile OpenAFS for any other kernels.
Hopefully, someone on this list will find the info useful, and they will be able to get OpenAFS working on Phoebe.
|
openafs-errno.patch
Description: openafs-errno.patch
openafs-kern-struct-change.patch
Description: openafs-kern-struct-change.patch