[news.software.b] yes, there *are* copylefted dbm-like routines with the right stuff

eric@snark.UUCP (Eric S. Raymond) (06/17/88)

News 3.0 uses a copylefted descendant of ndbm() for history handling. To
quote the header:

LEGAL NOTE
   Use of this code does *not* require an AT&T or BSD source license.
   This code is a distant descendant of V7's dbm(3) routines, by way of
James Gosling's modification of BSD ndbm() as found in ancient gosmacs
versions and in the X window system distribution.
   AT&T has permitted use of the gosmacs ndbm code in commercial product
without fee or legal hindrance since 1982 and sponsored the ndbm code to be
distributed as part of the public-domain X distribution, thus implicitly
releasing it for unrestricted use.
   In any case, this version no longer uses the hash constants of V7 ndbm,
nor does it depend on any AT&T or BSD proprietary code. Though the algorithms
remain similar to those of ndbm, the interface and implementation logic differ
from it in significant ways. This code must therefore be legally considered an
independent work of the author.

AUTHOR
   Eric S. Raymond
   This software is copyright (C) 1988 by Eric S. Raymond for the sole purpose
of protecting free redistribution; see the LICENSE file for details.

Furthermore, this code includes a LOCKF option that compiles proper multiuser
interlocking for concurrent access using POSIX/SVID lockf(3) or XENIX-style
locking(2). A test exerciser is provided to verify these functions.

And, I'm working on a version that writes and reads an NFS-sharable big-endian
format for all the numeric data in the .pag file.

Is this what everyone wanted?

If you are desperately in need of this code *now*, email me for a copy. But
I'd prefer you to hold off till I can get the byte-order fiddling for the
sharability option verified.

-- 
      Eric S. Raymond                     (the mad mastermind of TMN-Netnews)
      UUCP: {{uunet,rutgers,ihnp4}!cbmvax,rutgers!vu-vlsi,att}!snark!eric
      Post: 22 South Warren Avenue, Malvern, PA 19355   Phone: (215)-296-5718

ahby@bungia.Bungia.MN.ORG (Shane P. McCarron) (06/19/88)

In article <dQ5F6#3ueZKg=eric@snark.UUCP> eric@snark.UUCP (Eric S. Raymond) writes:
>Furthermore, this code includes a LOCKF option that compiles proper multiuser
>interlocking for concurrent access using POSIX/SVID lockf(3) or XENIX-style
>locking(2). A test exerciser is provided to verify these functions.

Just a side note.  The latest version of the POSIX 1003.1 Standard
does not include the lockf() function.  Instead, the working group
went in favor of the fcntl() mechanism that is in the SVID.  The group
felt that the lockf() mechanism was lacking some obscure functionality
that could be obtained through fcntl().  Sorry.
-- 
Shane P. McCarron			UUCP: ahby@bungia.mn.org
Systems Analyst				ATT: +1 612 224-9239