Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Sep 2010 21:40:10 +0200
From:      Jan Henrik Sylvester <me@janh.de>
To:        afs-list freebsd <freebsd-afs@freebsd.org>
Subject:   1.5.77 port of openafs
Message-ID:  <4C990A1A.7040407@janh.de>

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------070209040600040809000209
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

I wanted to give 1.5.77 a try after seeing some FreeBSD related 
improvements in the changelog.

Is http://web.mit.edu/freebsd/openafs/openafs.shar the working version 
of something that might end up in ports or do you have another one in 
progress? (I assume that the git version is not mend for ports.)

Since http://web.mit.edu/freebsd/openafs/openafs.shar is still at 
1.5.75, I started updating it.

To get it to compile, I removed two patches that do not apply to 1.5.77 
anymore, after updating the version and distinfo.

Verifying the pkg-plist, I realized that 'pkg_create -b' does not 
produce a clean package (giving the same files as the port that can 
cleanly be removed): Besides some files missing in pkg-plist, 
lib/openafs is eventually emtpy and missing from the package and 
ThisCell.sample contains the sample line twice when installed from the 
package. Moreover, whether afsd.fuse is installed or not depends on the 
presence of the fuse-libs port.

I have attached an updated version of the port that fixes issues I found 
related to packaging. I tried to make the diff to the old version 
minimalistic by not doing anything like sorting the pkg-plist.

Does it look ok?

I hope I verified all correctly:
- 'pkg_create -b' produces a package that installs the same files as the 
port.
- The port or package can be removed cleanly WITH_FUSE or without, with 
modified configuration files present or without.
- The binaries seem to link to the same files in a clean environment and 
in a polluted one (1155 packages installed, including fuse-libs).

All testing was on 8.1-RELEASE.

As for functionality: I did a little bit of copying from and to AFS and 
using basic fs and pts commands. I did not experience any problems. I 
have yet to test the issues that I had with 1.5.75 (copying files larger 
than the cache size, unmounting the AFS, stopping the afsd, ...).

Possible improvements before it goes to ports: Nicer error for emtpy 
/usr/src/ or /usr/obj/, creation of /afs, creation of a sample for 
/usr/local/etc/cacheinfo, sorting pkg-plist. Before I start anything in 
that direction:

Are you planing to bring something to ports anytime soon -- maybe as 
net/openafs-devel -- or is it still too early?

Cheers,
Jan Henrik

--------------070209040600040809000209
Content-Type: text/plain;
 name="openafs.shar"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="openafs.shar"

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	openafs
#	openafs/Makefile
#	openafs/README
#	openafs/distinfo
#	openafs/files
#	openafs/files/patch-src_comerr_et_lex.lex.l
#	openafs/pkg-descr
#	openafs/pkg-plist
#
echo c - openafs
mkdir -p openafs > /dev/null 2>&1
echo x - openafs/Makefile
sed 's/^X//' >openafs/Makefile << 'cac7ccf84cc7458cb89445ad3dc2caa6'
X# New ports collection makefile for:	openafs
X# Date created:				2008-12-06
X# Whom:					Boris Samorodov <bsam@FreeBSD.org>
X# Based on:				port by Alec Kloss <alec@setfilepointer.com>
X#
X# $FreeBSD$
X#
X
XPORTNAME=	openafs
XPORTVERSION=	1.5.77
XCATEGORIES=	net kld
XMASTER_SITES=	http://dl.central.org/dl/openafs/openafs/${PORTVERSION}/ \
X		http://dl.openafs.org/dl/openafs/${PORTVERSION}/
X#PKGNAMESUFFIX=	-server
X
XMAINTAINER=	kaduk@mit.edu
XCOMMENT=	AFS implementation from openafs.org
X
XOPTIONS=	FUSE "Build afsd.fuse (enable fuse support)" off
X
XUSE_LDCONFIG=	yes
XPATCH_STRIP=	-p1
X
XDISTVERSIONSUFFIX=	-src
XUSE_BZIP2=	yes
XHAS_CONFIGURE=	yes
X
XONLY_FOR_ARCHS=	i386 amd64
X
X.include <bsd.port.pre.mk>
X
X.if ${OSVERSION} < 800000
XIGNORE=	supports FreeBSD 8.0 and later
X.endif
X
XCONFIGURE_ARGS=	--prefix=${PREFIX} \
X	--localstatedir=/var \
X	--with-afs-sysname=${AFS_SYSNAME} \
X	--with-bsd-kernel-build=/usr/obj/usr/src/sys/GENERIC \
X	--enable-debug \
X	--enable-debug-kernel \
X	--enable-debug-lwp \
X	--includedir=${PREFIX}/include/openafs \
X	--enable-demand-attach-fs \
X	--with-krb5 KRB5CFLAGS=-I/usr/include \
X	KRB5LIBS='-lkrb5 -lcom_err -lcrypto -lcrypt -lasn1 -lhx509 -lroken' \
X			${CONFIGURE_TARGET}
X
X.if !defined(WITH_FUSE)
XCONFIGURE_ARGS+=	--disable-fuse-client
XPLIST_SUB+=	FUSE="@comment "
X.else
XLIB_DEPENDS+=	fuse.2:${PORTSDIR}/sysutils/fusefs-libs
XPLIST_SUB+=	FUSE=""
X.endif
X
XWRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION}
X
XPORTDIR=$(.CURDIR)
X
Xpost-install:
X	@${MKDIR} ${PREFIX}/etc/openafs
X	@${CP} ${WRKSRC}/src/afsd/CellServDB ${PREFIX}/etc/openafs/CellServDB.sample
X	@if [ ! -e ${PREFIX}/etc/CellServDB ] ; then \
X		${CP} -p ${PREFIX}/etc/openafs/CellServDB.sample ${PREFIX}/etc/CellServDB ; \
X	fi
X	@if [ ! -e ${PREFIX}/etc/openafs/CellServDB ] ; then \
X		${LN} -s ${PREFIX}/etc/CellServDB ${PREFIX}/etc/openafs/CellServDB ; \
X	fi
X	@${ECHO_CMD} openafs.org > ${PREFIX}/etc/openafs/ThisCell.sample
X	@if [ ! -e ${PREFIX}/etc/ThisCell ] ; then \
X		${CP} -p ${PREFIX}/etc/openafs/ThisCell.sample ${PREFIX}/etc/ThisCell ; \
X	fi
X	@if [ ! -e ${PREFIX}/etc/openafs/ThisCell ] ; then \
X		${LN} -s ${PREFIX}/etc/ThisCell ${PREFIX}/etc/openafs/ThisCell ; \
X	fi
X	${MV} ${PREFIX}/lib/openafs/libafs.ko /boot/modules/
X	@${RMDIR} ${PREFIX}/lib/openafs
X	kldxref /boot/modules
X
X
X.include <bsd.port.post.mk>
cac7ccf84cc7458cb89445ad3dc2caa6
echo x - openafs/README
sed 's/^X//' >openafs/README << '852e5444c6c8e72392557c14fd2aa398'
XThis is a development package; this software has not been
Xextensively tested.
XThe usual disclaimers apply.
X
XThe code does not appeare to be thread-safe, there are a couple
Xof deadlock conditions that are not yet resolved.
X
XThe filesystem-based cache code has lots of locking problems;
XWITNESS won't let afsd start with that code path.  (Instead,
Xuse the memory-based cache.)  I currently mount afs with:
X# kldload libafs
X# afsd -dynroot -fakestat-all -afsdb -memcache -daemons 4
XI expect that things will go fine at that stage; the problems tend
Xto show up later.
X
XI haven't noticed any issues with the auxilliary commands (fs, bos,
Xpts, vos, etc.), but nor have I done exhaustive testing.
X
XYou must have a kernel object tree available for the kernel
Xmodule to build; the location of GENERIC is hardcoded in the
XMakefile; change this as appropriate.
X
XAlso hardcoded is the use of heimdal from base (in fact, we
Xconflict with heimdal from ports).
X
XYou will want to tweak the AFS configuration files; in particular,
Xcreate a ${PREFIX}/etc/openafs/cacheinfo file (a single line,
Xcolon-separated, with the path on which to mount AFS (the directory
Xthat will be the mount point must already exist), the directory to
Xput cachefiles in (also must already exist), and the size of the
Xcache to use (in kB).  Putting your site in ThisCell, and checking
Xthat the installed CellServDB has up-to-date entries for your local
Xcell are also useful.
X
XHave fun, and don't crash your system too much ...
X
X-Ben Kaduk, 13 July 2010
852e5444c6c8e72392557c14fd2aa398
echo x - openafs/distinfo
sed 's/^X//' >openafs/distinfo << 'f553964b67bf34154813688046be2e9d'
XMD5 (openafs-1.5.77-src.tar.bz2) = d365caca068b6c2ee7768cc306d38f3f
XSHA256 (openafs-1.5.77-src.tar.bz2) = da4092b70039a526ed26f9272707cfc8c1cc99aee001e09f15cc29ba9b565f9e
XSIZE (openafs-1.5.77-src.tar.bz2) = 14225924
f553964b67bf34154813688046be2e9d
echo c - openafs/files
mkdir -p openafs/files > /dev/null 2>&1
echo x - openafs/files/patch-src_comerr_et_lex.lex.l
sed 's/^X//' >openafs/files/patch-src_comerr_et_lex.lex.l << '135c6c6aa00616426929e2238f1df45c'
Xdiff --git a/src/comerr/et_lex.lex.l b/src/comerr/et_lex.lex.l
Xindex 70b8848..0f58105 100644
X--- a/src/comerr/et_lex.lex.l
X+++ b/src/comerr/et_lex.lex.l
X@@ -1,3 +1,4 @@
X+%option yylineno
X PC     [^\"]
X AN     [A-Z_a-z0-9]
X %%
X
135c6c6aa00616426929e2238f1df45c
echo x - openafs/pkg-descr
sed 's/^X//' >openafs/pkg-descr << 'f0120929d49fe07442a3c71bea99f301'
XAFS is a distributed filesystem product, pioneered at Carnegie Mellon
XUniversity and supported and developed as a product by Transarc Corporation
X(now IBM Pittsburgh Labs). It offers a client-server architecture for
Xfederated file sharing and replicated read-only content distribution,
Xproviding location independence, scalability, security, and transparent
Xmigration capabilities. AFS is available for a broad range of heterogeneous
Xsystems including UNIX, Linux, MacOS X, and Microsoft Windows.
X
XIBM branched the source of the AFS product, and made a copy of the source
Xavailable for community development and maintenance. They called the
Xrelease OpenAFS.
X
XWWW: http://www.openafs.org/
X
X- bsam
f0120929d49fe07442a3c71bea99f301
echo x - openafs/pkg-plist
sed 's/^X//' >openafs/pkg-plist << '108b360c966dd2433d569db72bad4c16'
Xbin/rxgen
Xbin/sys
Xbin/pagsh.krb
Xbin/udebug
Xbin/pagsh
Xbin/klog.krb
Xbin/knfs
Xbin/pts
Xbin/klog
Xbin/tokens.krb
Xbin/scout
Xbin/xstat_cm_test
Xbin/kpasswd
Xbin/kpwvalid
Xbin/bos
Xbin/unlog
Xbin/tokens
Xbin/livesys
Xbin/up
Xbin/fs
Xbin/xstat_fs_test
Xbin/afsmonitor
Xbin/cmdebug
Xbin/translate_et
Xbin/afs_compile_et
Xbin/restorevol
Xbin/klog.krb5
Xbin/asetkey
Xbin/aklog
Xinclude/openafs/afs/param.h
Xinclude/openafs/afs/stds.h
Xinclude/openafs/afs/afs_sysnames.h
Xinclude/openafs/afs/afs_args.h
Xinclude/openafs/afs/icl.h
Xinclude/openafs/afs/venus.h
Xinclude/openafs/afs/debug.h
Xinclude/openafs/afs/pthread_nosigs.h
Xinclude/openafs/afs/assert.h
Xinclude/openafs/afs/procmgmt.h
Xinclude/openafs/afs/dirpath.h
Xinclude/openafs/afs/fileutil.h
Xinclude/openafs/afs/netutils.h
Xinclude/openafs/afs/errors.h
Xinclude/openafs/afs/vice.h
Xinclude/openafs/afs/remote.h
Xinclude/openafs/afs/ktime.h
Xinclude/openafs/afs/afsutil_prototypes.h
Xinclude/openafs/afs/packages.h
Xinclude/openafs/afs/afsutil.h
Xinclude/openafs/afs/pthread_glock.h
Xinclude/openafs/afs/cmd.h
Xinclude/openafs/afs/afs_atomlist.h
Xinclude/openafs/afs/afs_lhash.h
Xinclude/openafs/afs/softsig.h
Xinclude/openafs/afs/com_err.h
Xinclude/openafs/afs/error_table.h
Xinclude/openafs/afs/mit-sipb-cr.h
Xinclude/openafs/afs/afs.h
Xinclude/openafs/afs/osi_inode.h
Xinclude/openafs/afs/afs_stats.h
Xinclude/openafs/afs/exporter.h
Xinclude/openafs/afs/nfsclient.h
Xinclude/openafs/afs/unified_afs.h
Xinclude/openafs/afs/sysctl.h
Xinclude/openafs/afs/rxgen_consts.h
Xinclude/openafs/afs/afsint.h
Xinclude/openafs/afs/afscbint.h
Xinclude/openafs/afs/afssyscalls.h
Xinclude/openafs/afs/xfsattrs.h
Xinclude/openafs/afs/audit.h
Xinclude/openafs/afs/keys.h
Xinclude/openafs/afs/cellconfig.h
Xinclude/openafs/afs/auth.h
Xinclude/openafs/afs/ktc.h
Xinclude/openafs/afs/prclient.h
Xinclude/openafs/afs/prerror.h
Xinclude/openafs/afs/print.h
Xinclude/openafs/afs/prserver.h
Xinclude/openafs/afs/ptclient.h
Xinclude/openafs/afs/ptuser.h
Xinclude/openafs/afs/pterror.h
Xinclude/openafs/afs/ptint.h
Xinclude/openafs/afs/ptserver.h
Xinclude/openafs/afs/acl.h
Xinclude/openafs/afs/prs_fs.h
Xinclude/openafs/afs/kautils.h
Xinclude/openafs/afs/kauth.h
Xinclude/openafs/afs/kaport.h
Xinclude/openafs/afs/bumon.h
Xinclude/openafs/afs/butc.h
Xinclude/openafs/afs/bubasics.h
Xinclude/openafs/afs/tcdata.h
Xinclude/openafs/afs/butm.h
Xinclude/openafs/afs/butx.h
Xinclude/openafs/afs/usd.h
Xinclude/openafs/afs/dir.h
Xinclude/openafs/afs/nfs.h
Xinclude/openafs/afs/vnode.h
Xinclude/openafs/afs/viceinode.h
Xinclude/openafs/afs/volume.h
Xinclude/openafs/afs/voldefs.h
Xinclude/openafs/afs/partition.h
Xinclude/openafs/afs/fssync.h
Xinclude/openafs/afs/ihandle.h
Xinclude/openafs/afs/namei_ops.h
Xinclude/openafs/afs/vl_opcodes.h
Xinclude/openafs/afs/vlserver.h
Xinclude/openafs/afs/vldbint.h
Xinclude/openafs/afs/cnvldb.h
Xinclude/openafs/afs/fs_stats.h
Xinclude/openafs/afs/volser.h
Xinclude/openafs/afs/volint.h
Xinclude/openafs/afs/budb.h
Xinclude/openafs/afs/budb_errs.h
Xinclude/openafs/afs/budb_client.h
Xinclude/openafs/afs/bosint.h
Xinclude/openafs/afs/bnode.h
Xinclude/openafs/afs/gtxcurseswin.h
Xinclude/openafs/afs/gtxdumbwin.h
Xinclude/openafs/afs/gtxframe.h
Xinclude/openafs/afs/gtxinput.h
Xinclude/openafs/afs/gtxkeymap.h
Xinclude/openafs/afs/gtxlightobj.h
Xinclude/openafs/afs/gtxobjdict.h
Xinclude/openafs/afs/gtxobjects.h
Xinclude/openafs/afs/gtxtextcb.h
Xinclude/openafs/afs/gtxtextobj.h
Xinclude/openafs/afs/gtxwindows.h
Xinclude/openafs/afs/gtxX11win.h
Xinclude/openafs/afs/fsprobe.h
Xinclude/openafs/afs/xstat_fs.h
Xinclude/openafs/afs/xstat_cm.h
Xinclude/openafs/afs/vioc.h
Xinclude/openafs/afs/afs_consts.h
Xinclude/openafs/afs/pagcb.h
Xinclude/openafs/afs/vnode_inline.h
Xinclude/openafs/afs/volume_inline.h
Xinclude/openafs/afs/salvsync.h
Xinclude/openafs/afs/daemon_com.h
Xinclude/openafs/afs/vsutils_prototypes.h
Xinclude/openafs/des.h
Xinclude/openafs/des_conf.h
Xinclude/openafs/des_odd.h
Xinclude/openafs/des_prototypes.h
Xinclude/openafs/kopenafs.h
Xinclude/openafs/lock.h
Xinclude/openafs/lwp.h
Xinclude/openafs/potpourri.h
Xinclude/openafs/preempt.h
Xinclude/openafs/mit-cpyright.h
Xinclude/openafs/rx/rx_prototypes.h
Xinclude/openafs/rx/rx.h
Xinclude/openafs/rx/rx_packet.h
Xinclude/openafs/rx/xdr_prototypes.h
Xinclude/openafs/rx/rxstat.h
Xinclude/openafs/rx/rx_user.h
Xinclude/openafs/rx/rx_event.h
Xinclude/openafs/rx/rx_queue.h
Xinclude/openafs/rx/rx_globals.h
Xinclude/openafs/rx/rx_clock.h
Xinclude/openafs/rx/rx_multi.h
Xinclude/openafs/rx/rx_pthread.h
Xinclude/openafs/rx/rx_lwp.h
Xinclude/openafs/rx/rx_misc.h
Xinclude/openafs/rx/rx_null.h
Xinclude/openafs/rx/xdr.h
Xinclude/openafs/rx/rxkad_prototypes.h
Xinclude/openafs/rx/fcrypt.h
Xinclude/openafs/rx/rxkad.h
Xinclude/openafs/timer.h
Xinclude/openafs/ubik.h
Xinclude/openafs/ubik_int.h
Xlib/afs/libacl.a
Xlib/afs/libafsint.a
Xlib/afs/libafsutil.a
Xlib/afs/libaudit.a
Xlib/afs/libauth.a
Xlib/afs/libauth.krb.a
Xlib/afs/libbos.a
Xlib/afs/libbubasics.a
Xlib/afs/libbudb.a
Xlib/afs/libbutm.a
Xlib/afs/libbxdb.a
Xlib/afs/libcmd.a
Xlib/afs/libcom_err.a
Xlib/afs/libdir.a
Xlib/afs/libfsprobe.a
Xlib/afs/libgtx.a
Xlib/afs/libkauth.a
Xlib/afs/libkauth.krb.a
Xlib/afs/libprocmgmt.a
Xlib/afs/libprot.a
Xlib/afs/libsys.a
Xlib/afs/libusd.a
Xlib/afs/libvldb.a
Xlib/afs/libvlib.a
Xlib/afs/libvolser.a
Xlib/afs/libxstat_cm.a
Xlib/afs/libxstat_fs.a
Xlib/afs/util.a
Xlib/afs/vlib.a
Xlib/librxstat.a
Xlib/libdes.a
Xlib/liblwp.a
Xlib/librx.a
Xlib/librxkad.a
Xlib/libafsauthent.a
Xlib/libuafs.a
Xlib/libubik.a
Xlib/libafsrpc.a
Xlib/pam_afs.krb.so.1
Xlib/libjuafs.a
Xlib/pam_afs.so.1
Xlib/libafsrpc_pic.a
Xlib/libafsrpc.so.1.2
Xlib/libafsrpc.so.1
Xlib/libafsrpc.so
Xlib/libafsauthent_pic.a
Xlib/libafsauthent.so.1.1
Xlib/libafsauthent.so.1
Xlib/libafsauthent.so
Xlib/libkopenafs.so.1.1
Xlib/libkopenafs.so.1
Xlib/libkopenafs.so
Xlib/libkopenafs.a
Xlibexec/openafs/buserver
Xlibexec/openafs/dafileserver
Xlibexec/openafs/dasalvager
Xlibexec/openafs/fileserver
Xlibexec/openafs/kaserver
Xlibexec/openafs/ptserver
Xlibexec/openafs/salvager
Xlibexec/openafs/upclient
Xlibexec/openafs/upserver
Xlibexec/openafs/vlserver
Xlibexec/openafs/volserver
Xlibexec/openafs/salvageserver
Xshare/openafs/C/afszcm.cat
X%%FUSE%%sbin/afsd.fuse
Xsbin/dafssync-debug
Xsbin/prdb_check
Xsbin/kas
Xsbin/kdb
Xsbin/rmtsysd
Xsbin/pt_util
Xsbin/kadb_check
Xsbin/ka-forwarder
Xsbin/kpwvalid
Xsbin/volinfo
Xsbin/afsd
Xsbin/vsys
Xsbin/vldb_convert
Xsbin/vldb_check
Xsbin/read_tape
Xsbin/bosserver
Xsbin/voldump
Xsbin/vos
Xsbin/uss
Xsbin/backup
Xsbin/butc
Xsbin/kdump
Xsbin/rxdebug
Xsbin/bos_util
Xsbin/fms
Xsbin/fstrace
Xsbin/state_analyzer
Xsbin/salvsync-debug
Xsbin/fssync-debug
X@unexec if [ -L %D/etc/openafs/CellServDB ] ; then rm %D/etc/openafs/CellServDB ; fi
X@unexec if cmp -s %D/etc/openafs/CellServDB.sample %D/etc/openafs/CellServDB ; then rm %D/etc/openafs/CellServDB ; fi
X@unexec if cmp -s %D/etc/openafs/CellServDB.sample %D/etc/CellServDB ; then rm %D/etc/CellServDB ; fi
Xetc/openafs/CellServDB.sample
X@unexec if [ -L %D/etc/openafs/ThisCell ] ; then rm %D/etc/openafs/ThisCell ; fi
X@unexec if cmp -s %D/etc/openafs/ThisCell.sample %D/etc/openafs/ThisCell ; then rm %D/etc/openafs/ThisCell ; fi
X@unexec if cmp -s %D/etc/openafs/ThisCell.sample %D/etc/ThisCell ; then rm %D/etc/ThisCell ; fi
Xetc/openafs/ThisCell.sample
X@exec if [ ! -e %D/etc/CellServDB ] ; then cp %D/etc/openafs/CellServDB.sample %D/etc/CellServDB ; fi
X@exec if [ ! -e %D/etc/openafs/CellServDB ] ; then ln -s %D/etc/CellServDB %D/etc/openafs/CellServDB ; fi
X@exec if [ ! -e %D/etc/openafs/ThisCell.sample ] ; then echo openafs.org > %D/etc/openafs/ThisCell.sample ; fi
X@exec if [ ! -e %D/etc/ThisCell ] ; then cp -p %D/etc/openafs/ThisCell.sample %D/etc/ThisCell ; fi
X@exec if [ ! -e %D/etc/openafs/ThisCell ] ; then ln -s %D/etc/ThisCell %D/etc/openafs/ThisCell ; fi
X@dirrm include/openafs/rx
X@dirrm include/openafs/afs
X@dirrm include/openafs
X@dirrm lib/afs
X@dirrm libexec/openafs
X@dirrmtry etc/openafs
X@dirrm share/openafs/C
X@dirrm share/openafs
X@cwd /boot/modules
Xlibafs.ko
108b360c966dd2433d569db72bad4c16
exit


--------------070209040600040809000209--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4C990A1A.7040407>