[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: LIBNIS in zmailer

On Mon, Aug 30, 1999 at 04:15:15PM +0200, Arkadiusz Miskiewicz wrote:
> Hi,
> I just tried to compile zmailer-2.99.52-pre1 (from CVS)
> and:
> [misiek@linstar zmailer-2.99.52-pre1]$ grep ROUTER_LIB router/Makefile
> ROUTER_LIB=       -lcrypt -ldb -lgdbm -Lyes/lib -lldap -llber yes -lresolv
>                                       ^^^^^^^^^               ^^^
>         $(CC) $(CFLAGS) -o $@.x $(OBJS) version.o $(LIB) $(ROUTER_LIB)
> When I compile without --with-yp and --with-yp-lib then everything
> is ok. (problems with $LIBNIS ?)

	A mistake at  configure.in  test writeup.  Both tests
	were in fact the same..  A fix is coming in.

> Also:
> cc -O2 -mpentium -w  -DHAVE_CONFIG_H -I./../../include -I../../include -I../..  -o mailbox mailbox.o version.o lock.o sieve.o -L../../libs -lta -lzm -lzc  -lcrypt  -lresolv
> mailbox.o: In function `deliver':
> mailbox.o(.text+0x19a2): undefined reference to `checkmbsize'
> collect2: ld returned 1 exit status
> make[2]: *** [mailbox] Error 1
> In what library is function checkmbsize() on Linux ?

	extern  int checkmbsize __((const char *uname,
				    const char *host, const char *user,
				    size_t cursize, struct passwd *pw));

	/* external procedure checkmbsize() accepts user name, "host"
	   name as on routing result, "user" part of routed data,
	   and current mailbox size.  It should return 0 if it is OK
	   to write to the mailbox, or non-zero if `mailbox full'
	   condition encountered.  The procedure itself is not included
	   in ZMailer distribution; you need to write it yourself and
	   modify the Makefile to pass -DCHECK_MB_SIZE to the compiler
	   and to link with the object containing your custom
	   checkmbsize() procedure. == <crosser@average.org> */

> ./configure \
>         --prefix=%{_libdir}/zmailer \
>         --with-postoffice=/var/spool/postoffice \
>         --with-rmailpath=%{_bindir}/rmail \
>         --with-nntpserver=news \
>         --with-system-malloc \

		this 'malloc' is the default

>         --with-mailshare=/etc/mail \
>         --with-zconfig=no \
>         --with-mailbin=%{_libdir}/zmailer \
>         --with-mailvar=/etc/mail \
>         --with-ta-mmap \

		I am not sure that Linux would do 'ta-mmap'
		quite so well -- or that it would make sense
		at a *generic* server.  It does make sense
		at major list hubs feeding actual fanout
		servers, but not at final fanouts, for example.

		The main problem is that  munmap()  seems
		to throw away all mapped pages from memory
		in several architectures, even when said
		pages have other mapping presenses in the
		system processes -- and at final munmap(),
		it throws away all pages of the file, thus
		doing a disfavour for file page cache, which
		might otherwise get them back soon...

		A final note:  I haven't benchmarked that
		possible performance degradation...

>         --includedir=%{_includedir} \
>         --with-whoson \

		That library has heavy autodetect code, and as such,
		the dirprefix parameter can be pretty much omitted.

>         --with-ldap-prefix \

		Whoops, '--help' gives misleading advice.
		This one must have a value -- the prefix,
		e.g. =/usr   (Otherwise you get:  -Lyes/lib  ... )

>         --with-openssl \

		Huh ??  Not   --with-openssl-prefix=/...  ??
		I bet the OpenSSL is autodetected in your environment
		without that one..

>         --with-ipv6 \
>         --with-mailbox=/var/mail \
>         --with-mboxquotacheck \

		For weird ISP users, not your average standard-issue
		UNIX system stuff.  (Tell me, how to pre-analyze
		approach of quota limit in your favourite platform,
		and I could cook up something...)

		Most UNIXes (none?) don't have syscall to find out
		how much quota space is free at a given filesystem
		with e.g. given euid.

>         --with-yp \
>         --with-yp-lib='-lyp'
> -- 
> Arkadiusz Mi¶kiewicz        http://www.misiek.eu.org/
> PLD/Linux [IPv6 enabled]       http://www.pld.org.pl/

/Matti Aarnio	<mea@nic.funet.fi>