Subject: Re: krb5 integration proposal
To: Aidan Cully <aidan@kublai.com>
From: Simon Burge <simonb@netbsd.org>
List: tech-userlevel
Date: 06/09/1999 13:41:29
Aidan Cully wrote:

> On Wed, Jun 09, 1999 at 12:07:36PM +1000, Simon Burge wrote:
> > Aidan Cully wrote:
> > > 4) Reorganize libtelnet, according to my local model.
> > > 	This means the following hierarchy:
> > > 	src/lib/libtelnet -- almost all libtelnet sources.
> > > 	src/lib/libtelnet/Nocrypt -- libtelnet source that might be overridden
> > > 	    by crypto-enabled files.
> > 
> > Can this be done with the right PATH magic so we don't need the Nocrypt
> > subdirectory?  It's a tad non-aesthetic, as well as making imports of
> > new versions of libtelnet a little more work (if that were to ever
> > happen again)...
> 
> I do it this way for .PATH reasons..  krb5 comes with a complete libtelnet
> distribution, and domestic/lib/libtelnet reaches over into it..  One of my
> goals was to use as much NetBSD source as possible, and only hook into
> MIT's for kerberos specific stuff, and I couldn't see a good way to let
> domestic/lib/libtelnet use MIT's encrypt.[ch], and NetBSD's ~everything
> else without creating the Nocrypt/ subdirectory.
> 
> What sort of thing would you suggest?

I'm not sure I see the problem.  As an example, I've got the
following directory structure:

	simonpc:/tmp/telstuff 183> ls -R
	domestic/ telnet/

	./domestic:
	dist/   telnet/

	./domestic/dist:
	telnet/

	./domestic/dist/telnet:
	encrypt.c  encrypt.h  kerb.c

	./domestic/telnet:
	.depend   Makefile

	./telnet:
	.depend    Makefile   encrypt.c  encrypt.h  misc.c

Where all .c and .h files are empty, except encrypt.c contains
just:
	
	#include "encrypt.h"

telnet/Makefile is:

	LIB=    telnet
	SRCS=   encrypt.c misc.c
	CPPFLAGS+=-I${.CURDIR}

	.include <bsd.lib.mk>

and domestic/telnet/Makefile is:

	.include "${.CURDIR}/../../telnet/Makefile"
	SRCS+=  kerb.c
	.PATH:  ${.CURDIR}/../dist/telnet
	.PATH:  ${.CURDIR}/../../telnet

	.include <bsd.lib.mk>

After a "make depend" in telnet, .depend contains:

	encrypt.o encrypt.po encrypt.so encrypt.ln: encrypt.c encrypt.h
	misc.o misc.po misc.so misc.ln: misc.c

and domestic/telnet/.depend contains:

	encrypt.o encrypt.po encrypt.so encrypt.ln: /tmp/telstuff/domestic/telnet/../dist/telnet/encrypt.c \
	 /tmp/telstuff/domestic/telnet/../dist/telnet/encrypt.h
	misc.o misc.po misc.so misc.ln: /tmp/telstuff/domestic/telnet/../../telnet/misc.c
	kerb.o kerb.po kerb.so kerb.ln: /tmp/telstuff/domestic/telnet/../dist/telnet/kerb.c

Is this more-or-less what we're after, or am I misunderstanding the
problem?

Simon.