porting klibido to FreeBSD

Conrad J. Sabatier conrads at cox.net
Mon Nov 29 04:01:13 PST 2004


On Sun, 28 Nov 2004 22:13:46 +0100, Matthias Andree
<matthias.andree at gmx.de> wrote:

> On Sun, 28 Nov 2004, Conrad J. Sabatier wrote:
> 
> > On Sun, 28 Nov 2004 17:23:28 +0100, Bauno <bauno at inwind.it> wrote:
> > 
> > > On Sunday 28 November 2004 02:47, you wrote:
> > > > A little more detail I should have provided before:
> > > >
> > > > The FreeBSD db4 call's arguments are defined as this:
> > > >
> > > > int
> > > > Db::open(const char *file,
> > > >     const char *database, DBTYPE type, u_int32_t flags, int
> > > >     mode);
> > > >
> > > 
> > > Tha'ts what I'm using: 
> > > 
> > > int
> > > Db::open(DbTxn *txnid, const char *file,
> > >     const char *database, DBTYPE type, u_int32_t flags, int mode);
> > > 
> > > 
> > > It's from Db 4.2, but I used it with db 4.1 as well, with no
> > > problems. The DbTxn *txnid is the transaction handler, it seems
> > > strange it's missing...that would mean the Bdb in freebsd can't be
> > > used as a transactional data store. 
> > > 
> > > What version of Berkeley Db is installed on Freebsd?
> 
> I didn't get where this started, and figured you got it solved,
> congratulations on that.

Yes, I now have it actually running.

Still some problems to work out, though.  For one thing, the program
crashes every time I try to subscribe to a group.  I expect, though,
that this problem will clear up once I get about the business of
converting it into a proper port and get the various make options and a
decent set of patches worked out.

> Berkeley DB has been offering the transactional datastore since
> version 3.0 if I recall correctly (but I never bothered for 2.x), and
> the developer version of bogofilter (in the bogofilter CVS) works with
> Berkeley DB 3.0 to 4.3 (port commit is pending, ports/73790). It's all
> a real mess because SleepyCat changed the interface between minor
> releases, as you've found out the hard way.  Add a txnid argument
> here, remove an option or flag there... every version is different.
> 
> The hoops we need to jump in bogofilter are documented in the
> DB_AT_LEAST, DB_EQUAL, DB_AT_MOST macros in our DB interface:
> http://cvs.sourceforge.net/viewcvs.py/bogofilter/bogofilter/src/datastore_db.c?view=markup

Cool, I'll definitely take a look.

> You'll find information in the Berkeley DB reference documentation in
> the chapter "Upgrading Berkeley DB Applications", if you're looking at
> 4.2's document, it has the documentation all the way back to 1.85.
> Look for ref/toc.html underneath $DOCSDIR.

Yes, I've looked at the docs a bit, but need to do a lot more.  This is
my first time dealing with a port that uses this stuff, so I'm sort of
"out of my element" here.

Still, this program (klibido) is definitely worth the effort, and will
make a fine addition to FreeBSD's ports collections, once I get all the
kinks worked out.

Thanks.

-- 
Conrad J. Sabatier <conrads at cox.net> -- "In Unix veritas"


More information about the freebsd-ports mailing list