[2055] in SIPB_Linux_Development
Re: thoughts about packaging AFS for new release
daemon@ATHENA.MIT.EDU (Aaron M. Ucko)
Sun Aug 2 12:57:15 1998
To: Derek Atkins <warlord@MIT.EDU>
Cc: linux-dev@MIT.EDU
From: amu@MIT.EDU (Aaron M. Ucko)
Date: 02 Aug 1998 12:56:52 -0400
In-Reply-To: Derek Atkins's message of "02 Aug 1998 12:30:33 -0400"
Derek Atkins <warlord@MIT.EDU> writes:
> amu@MIT.EDU (Aaron M. Ucko) writes:
>
> > ** Perhaps don't redirect so much to /dev/console.
>
> Unfortunately this isn't as easy as you would think... Much of the
> output of AFS (certainly during bootup) is output from the kernel
> module -- you can't redirect that easily.
Well, right, but I was thinking more of the userspace stuff. As it
stands, it's very difficult to get useful diagnostics when starting
AFS remotely with your scripts.
> > ** Perhaps split off Athenaisms (aklog, newpag, config_afs) (glibc only)
>
> Remember that the Linux-AFS distribution is not just for Athena -- it
> needs to be useful everywhere. I don't want to make an Athena
> distribtion and a world-wide distribution. I think these programs
> should stay with the AFS distribution -- they don't make any sense
> being anywhere else.
OK...but do Transarc's distributions for other platforms include any
of those? In particular, aklog is only really useful at sites using
"real" krb4, and config_afs is kind of Athena-centric.
> > ** Rename to /etc/rc.d/init.d/afs
>
> Well, I'd make it afs.init, but sounds good.
In Red Hat 5.1, nothing in /etc/rc.d/init.d has the .init extension.
> > ** Symlink into /etc/rc.d/rc?.d
>
> How do you make sure that the network is actually turned on?
The customary method is
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
but of course that screws people on normally-disconnected machines. Hrm.
> > ** Insist on being invoked with "start" or "stop"
>
> I thought this was already done (well, it assumes "start" if it
> doesn't get anything). I don't mind this changing.
Right, it currently treats anything other than "stop" as "start"
> > ** Obtain AFSSRV, AFSCLIENT, and AFSADJUST from /etc/athena/rc.conf if
> > present. (perhaps also for libc5 packages?)
>
> Hmm.. At one point I thought I did this; I guess I didn't. Oops.
> Yes, this should go in. There just needs to be a way to assume
> defaults, for example, if /etc/athena/rc.conf doesn't exist.
Yeah, I was thinking something like
if [ -r /etc/athena/rc.conf ]; then
. /etc/athena/rc.conf
else
AFSSRV=false
AFSCLIENT=true
AFSADJUST=false
fi
> > * Changes to /usr/vice/etc/rc.dkload.client:
> >
> > ** Use /var/tmp, not /usr/tmp.
>
> I've changed this in my source tree. I just need to remember to
> incorporate this into the new package. Also, should it perhaps use
> /var/vice insted of /usr/vice?
In principal, yes. In practice, that would cause problems for people
upgrading their systems, especially if they had dedicated cache
partitions.
> > ** Perhaps try to figure out which libafs module to load.
> > (Unfortunately, this is easier said than done, because a single
> > Linux-AFS release may work with multiple kernel releases, and I
> > don't see a reliable way to distinguish SMP from UP kernels on UP
> > systems. Sigh.)
>
> Actually, I already made this change. Basically, what it
> distinguishes is whether you are running an SMP-enabled kernel or not,
> regardless of the number of processors. It does this by looking at
> /proc/cpuinfo, since the output is different for SMP and non-SMP
> kernels, regardless of the number of processors (I believe).
Ah, it always has a "number of processors" line or something? Cool.
--
Aaron M. Ucko, KB1CJC <amu@mit.edu> (finger amu@monk.mit.edu)