updating and compiling the BerkeleyDB plugin

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

updating and compiling the BerkeleyDB plugin

Paul DeBruicker

Hi -

I've posted Steven Pair's  BerkeleyDB plugin .sar file to dropbox here:


https://dl.dropboxusercontent.com/u/4460862/BerkeleyDB.sar



I'd like to get it to compile (on linux...), and also to modify it to work with the LMDB (http://symas.com/mdb/). According to the LMDB docs it should be pretty straightforward to port something from BerkeleyDB.  

From examining the .sar it looks like the plugin hasn't been edited/compiled since December 2002.  

Is there a guide for bringing old plugins up to date?  IF not what should I expect to have to change to get it working?  

Thanks

Paul
Reply | Threaded
Open this post in threaded view
|

Re: updating and compiling the BerkeleyDB plugin

Eliot Miranda-2

D'u have the smalltalk source or just the generated C code?  And I what VM build environment do you want to work?

Eliot (phone)

On Mar 29, 2015, at 7:46 AM, Paul DeBruicker <[hidden email]> wrote:

>
> Hi -
>
> I've posted Steven Pair's  BerkeleyDB plugin .sar file to dropbox here:
>
>
> https://dl.dropboxusercontent.com/u/4460862/BerkeleyDB.sar
>
>
>
> I'd like to get it to compile (on linux...), and also to modify it to work with the LMDB (http://symas.com/mdb/). According to the LMDB docs it should be pretty straightforward to port something from BerkeleyDB.  
>
> From examining the .sar it looks like the plugin hasn't been edited/compiled since December 2002.  
>
> Is there a guide for bringing old plugins up to date?  IF not what should I expect to have to change to get it working?  
>
> Thanks
>
> Paul
Reply | Threaded
Open this post in threaded view
|

Re: updating and compiling the BerkeleyDB plugin

David T. Lewis
 
I am assuming that this is "Berkeley DB Plugin" on SqueakMap, written by Stephen Pair
and licensed SqueakL, and therefore OK to include in the VM.

The SAR file contains the platforms sources and some hints as to handle it
in a makefile.

I expect that this plugin could be brought back to life with a bit of effort.
It also looks like something that might best be maintained outside of VMMaker
so that the interested parties can update it as they please.

How about if we put the Smalltalk part of the plugin into a new project on
squeaksource.com? Paul DeBruicker, Stephen Pair, Eliot and I all have accounts
on that server already, so it would be easy to put it there.

The Berkeley db library has a lot of history, and I don't know what the current
runtimes would be on a modern unix/linux/osx platform. The http://www.sleepycat.com
site redirects to Oracle now, which does not seem encouraging. Current licensing
seems to be explained at http://en.wikipedia.org/wiki/Berkeley_DB.

Dave

On Sun, Mar 29, 2015 at 08:50:51AM -0700, Eliot Miranda wrote:

>
> D'u have the smalltalk source or just the generated C code?  And I what VM build environment do you want to work?
>
> Eliot (phone)
>
> On Mar 29, 2015, at 7:46 AM, Paul DeBruicker <[hidden email]> wrote:
>
> >
> > Hi -
> >
> > I've posted Steven Pair's  BerkeleyDB plugin .sar file to dropbox here:
> >
> >
> > https://dl.dropboxusercontent.com/u/4460862/BerkeleyDB.sar
> >
> >
> >
> > I'd like to get it to compile (on linux...), and also to modify it to work with the LMDB (http://symas.com/mdb/). According to the LMDB docs it should be pretty straightforward to port something from BerkeleyDB.  
> >
> > From examining the .sar it looks like the plugin hasn't been edited/compiled since December 2002.  
> >
> > Is there a guide for bringing old plugins up to date?  IF not what should I expect to have to change to get it working?  
> >
> > Thanks
> >
> > Paul
Reply | Threaded
Open this post in threaded view
|

Re: updating and compiling the BerkeleyDB plugin

Paul DeBruicker
Hi David,

It is the same.  I did ask Stephen Pair and he said it would be fine to port it to LMDB , also to make the resulting port MIT.  LMDB is the database that backs the OpenLDAP project (https://en.wikipedia.org/wiki/OpenLDAP), and is under the OpenLDAP license: (https://gitorious.org/mdb/mdb/source/3368d1f5e243225cba4d730fba19ff600798ebe3:libraries/liblmdb/LICENSE)  which is considerably more permissive than what Oracle is offering with BerkeleyDB.  

My thought was to make it compile & work with BerkeleyDB as an intermediate step in an effort to limit the moving parts I was learning about.  Then after that port it to LMDB



Thanks for looking into it.


Paul


David T. Lewis wrote
I am assuming that this is "Berkeley DB Plugin" on SqueakMap, written by Stephen Pair
and licensed SqueakL, and therefore OK to include in the VM.

The SAR file contains the platforms sources and some hints as to handle it
in a makefile.

I expect that this plugin could be brought back to life with a bit of effort.
It also looks like something that might best be maintained outside of VMMaker
so that the interested parties can update it as they please.

How about if we put the Smalltalk part of the plugin into a new project on
squeaksource.com? Paul DeBruicker, Stephen Pair, Eliot and I all have accounts
on that server already, so it would be easy to put it there.

The Berkeley db library has a lot of history, and I don't know what the current
runtimes would be on a modern unix/linux/osx platform. The http://www.sleepycat.com
site redirects to Oracle now, which does not seem encouraging. Current licensing
seems to be explained at http://en.wikipedia.org/wiki/Berkeley_DB.

Dave

On Sun, Mar 29, 2015 at 08:50:51AM -0700, Eliot Miranda wrote:
>
> D'u have the smalltalk source or just the generated C code?  And I what VM build environment do you want to work?
>
> Eliot (phone)
>
> On Mar 29, 2015, at 7:46 AM, Paul DeBruicker <[hidden email]> wrote:
>
> >
> > Hi -
> >
> > I've posted Steven Pair's  BerkeleyDB plugin .sar file to dropbox here:
> >
> >
> > https://dl.dropboxusercontent.com/u/4460862/BerkeleyDB.sar
> >
> >
> >
> > I'd like to get it to compile (on linux...), and also to modify it to work with the LMDB (http://symas.com/mdb/). According to the LMDB docs it should be pretty straightforward to port something from BerkeleyDB.  
> >
> > From examining the .sar it looks like the plugin hasn't been edited/compiled since December 2002.  
> >
> > Is there a guide for bringing old plugins up to date?  IF not what should I expect to have to change to get it working?  
> >
> > Thanks
> >
> > Paul
Reply | Threaded
Open this post in threaded view
|

Re: updating and compiling the BerkeleyDB plugin

Paul DeBruicker
In reply to this post by Eliot Miranda-2
Hi Eliot,

The SAR has the smalltalk source.  I don't know which build environment.  I'm usually on a Mac but also have Linux available.  Utilmately I'd like it to run on both those platforms with a modern VM.  


Thanks


Paul


Eliot Miranda-2 wrote
D'u have the smalltalk source or just the generated C code?  And I what VM build environment do you want to work?

Eliot (phone)

On Mar 29, 2015, at 7:46 AM, Paul DeBruicker <[hidden email]> wrote:

>
> Hi -
>
> I've posted Steven Pair's  BerkeleyDB plugin .sar file to dropbox here:
>
>
> https://dl.dropboxusercontent.com/u/4460862/BerkeleyDB.sar
>
>
>
> I'd like to get it to compile (on linux...), and also to modify it to work with the LMDB (http://symas.com/mdb/). According to the LMDB docs it should be pretty straightforward to port something from BerkeleyDB.  
>
> From examining the .sar it looks like the plugin hasn't been edited/compiled since December 2002.  
>
> Is there a guide for bringing old plugins up to date?  IF not what should I expect to have to change to get it working?  
>
> Thanks
>
> Paul
Reply | Threaded
Open this post in threaded view
|

Re: updating and compiling the BerkeleyDB plugin

Paul DeBruicker
In reply to this post by David T. Lewis
Hi David,

I made the project on SqueakSource.   The repo is here:


MCHttpRepository
    location: 'http://www.squeaksource.com/BerkeleyDB'
    user: ''
    password: ''


When attempting to generate the plugin as an external plugin the error shown in the VMMaker window is:

warning, variable simulator doesn't exist or has already been removed
failed to inline getErrorMessage: as it contains unrenamable C declarations or C code
warning, signature of InterpreterProxy>>instantiateClass:indexableSize: does not match reference implementation.
external plugin BerkeleyDbPlugin generated as BerkeleyDbPlugin
5 April 2015 9:00:18 am


Are these warnings/errors serious?  Is the next step to get rid of them?  

Thanks

Paul



David T. Lewis wrote
I am assuming that this is "Berkeley DB Plugin" on SqueakMap, written by Stephen Pair
and licensed SqueakL, and therefore OK to include in the VM.

The SAR file contains the platforms sources and some hints as to handle it
in a makefile.

I expect that this plugin could be brought back to life with a bit of effort.
It also looks like something that might best be maintained outside of VMMaker
so that the interested parties can update it as they please.

How about if we put the Smalltalk part of the plugin into a new project on
squeaksource.com? Paul DeBruicker, Stephen Pair, Eliot and I all have accounts
on that server already, so it would be easy to put it there.

The Berkeley db library has a lot of history, and I don't know what the current
runtimes would be on a modern unix/linux/osx platform. The http://www.sleepycat.com
site redirects to Oracle now, which does not seem encouraging. Current licensing
seems to be explained at http://en.wikipedia.org/wiki/Berkeley_DB.

Dave

On Sun, Mar 29, 2015 at 08:50:51AM -0700, Eliot Miranda wrote:
>
> D'u have the smalltalk source or just the generated C code?  And I what VM build environment do you want to work?
>
> Eliot (phone)
>
> On Mar 29, 2015, at 7:46 AM, Paul DeBruicker <[hidden email]> wrote:
>
> >
> > Hi -
> >
> > I've posted Steven Pair's  BerkeleyDB plugin .sar file to dropbox here:
> >
> >
> > https://dl.dropboxusercontent.com/u/4460862/BerkeleyDB.sar
> >
> >
> >
> > I'd like to get it to compile (on linux...), and also to modify it to work with the LMDB (http://symas.com/mdb/). According to the LMDB docs it should be pretty straightforward to port something from BerkeleyDB.  
> >
> > From examining the .sar it looks like the plugin hasn't been edited/compiled since December 2002.  
> >
> > Is there a guide for bringing old plugins up to date?  IF not what should I expect to have to change to get it working?  
> >
> > Thanks
> >
> > Paul
Reply | Threaded
Open this post in threaded view
|

Re: updating and compiling the BerkeleyDB plugin

David T. Lewis
 
Hi Paul,

Thanks for doing this. I don't have time to really check it out right
now, but I did load your code from the new repository and I was able
to generate the C source with no problem (see attached).

I'll follow up on this in a few days, but at first glance it looks fine.

FYI, I'm using VMMaker trunk (load update-dtl.16.mcm), then "VMMakerTool forUnix"
to open the VMM tool, then drag the BerkeleyDbPlugin from "Plugins not built"
over to the "External Plugins" pane, then Generate Entire.

For platforms source, I used the sources from the original SAR and put
the header file in platforms/Cross/plugins/BerkeleyDbPlugin/ and the C
file in platforms/unix/plugins/BerkeleyDbPlugin/. I don't know if that's
right, but it works for generating the C code.

Dave


On Sun, Apr 05, 2015 at 08:50:36AM -0700, Paul DeBruicker wrote:

>  
> Hi David,
>
> I made the project on SqueakSource.   The repo is here:
>
>
> MCHttpRepository
>     location: 'http://www.squeaksource.com/BerkeleyDB'
>     user: ''
>     password: ''
>
>
> When attempting to generate the plugin as an external plugin the error shown
> in the VMMaker window is:
>
> warning, variable simulator doesn't exist or has already been removed
> failed to inline getErrorMessage: as it contains unrenamable C declarations
> or C code
> warning, signature of InterpreterProxy>>instantiateClass:indexableSize: does
> not match reference implementation.
> external plugin BerkeleyDbPlugin generated as BerkeleyDbPlugin
> 5 April 2015 9:00:18 am
>
>
> Are these warnings/errors serious?  Is the next step to get rid of them?  
>
> Thanks
>
> Paul
>
>
>
>
> David T. Lewis wrote
> > I am assuming that this is "Berkeley DB Plugin" on SqueakMap, written by
> > Stephen Pair
> > and licensed SqueakL, and therefore OK to include in the VM.
> >
> > The SAR file contains the platforms sources and some hints as to handle it
> > in a makefile.
> >
> > I expect that this plugin could be brought back to life with a bit of
> > effort.
> > It also looks like something that might best be maintained outside of
> > VMMaker
> > so that the interested parties can update it as they please.
> >
> > How about if we put the Smalltalk part of the plugin into a new project on
> > squeaksource.com? Paul DeBruicker, Stephen Pair, Eliot and I all have
> > accounts
> > on that server already, so it would be easy to put it there.
> >
> > The Berkeley db library has a lot of history, and I don't know what the
> > current
> > runtimes would be on a modern unix/linux/osx platform. The
> > http://www.sleepycat.com
> > site redirects to Oracle now, which does not seem encouraging. Current
> > licensing
> > seems to be explained at http://en.wikipedia.org/wiki/Berkeley_DB.
> >
> > Dave
> >
> > On Sun, Mar 29, 2015 at 08:50:51AM -0700, Eliot Miranda wrote:
> >>
> >> D'u have the smalltalk source or just the generated C code?  And I what
> >> VM build environment do you want to work?
> >>
> >> Eliot (phone)
> >>
> >> On Mar 29, 2015, at 7:46 AM, Paul DeBruicker &lt;
>
> > pdebruic@
>
> > &gt; wrote:
> >>
> >> >
> >> > Hi -
> >> >
> >> > I've posted Steven Pair's  BerkeleyDB plugin .sar file to dropbox here:
> >> >
> >> >
> >> > https://dl.dropboxusercontent.com/u/4460862/BerkeleyDB.sar
> >> >
> >> >
> >> >
> >> > I'd like to get it to compile (on linux...), and also to modify it to
> >> work with the LMDB (http://symas.com/mdb/). According to the LMDB docs it
> >> should be pretty straightforward to port something from BerkeleyDB.  
> >> >
> >> > From examining the .sar it looks like the plugin hasn't been
> >> edited/compiled since December 2002.  
> >> >
> >> > Is there a guide for bringing old plugins up to date?  IF not what
> >> should I expect to have to change to get it working?  
> >> >
> >> > Thanks
> >> >
> >> > Paul
>
>
>
>
>
> --
> View this message in context: http://forum.world.st/updating-and-compiling-the-BerkeleyDB-plugin-tp4815915p4817704.html
> Sent from the Squeak VM mailing list archive at Nabble.com.

BerkeleyDbPlugin.c (20K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: updating and compiling the BerkeleyDB plugin

Paul DeBruicker
Hi David,

I followed your instructions and made some headway in getting the plugin compiled. The changes are on SquaeakSource.  I think I have now hit some errors that will necessitate making changes to the sqBerkeleyDbPlugin.c  file in the .sar.  

Where should I save/share those changes?  

I'm ambivalent and will put it on github if you are too.

I'm using 32 bit ubuntu 14.04.  I think the current Big problem is that the plugin was written for BerkeleyDB version 4.???.  I've been trying to compile it against version 6.1, because its the current stable installed by apt-get.  Maybe the API has changed.  I'll download and try some of the 4.x libraries to see.  

The current set of errors are pasted below.

I've got about an hour a week I want to spend on this so there is no rush on my end for Progress.  


Thanks for taking a look


Paul





Scanning dependencies of target BerkeleyDbPlugin
[ 77%] Building C object BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c.o
/home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c: In function ‘initialiseModule’:
/home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c:141:2: warning: passing argument 1 of ‘sqDbInit’ from incompatible pointer type [enabled by default]
  return sqDbInit(sqDbMalloc);
  ^
In file included from /home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c:37:0:
/home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.h:13:5: note: expected ‘void * (*)(size_t)’ but argument is of type ‘void * (*)(sqInt)’
 int sqDbInit(void *(*sq_malloc)(size_t size) );
     ^
[ 80%] Building C object BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c.o
/home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c: In function ‘sqDbOpen’:
/home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3: warning: passing argument 2 of ‘dbp->open’ from incompatible pointer type [enabled by default]
   DBCALL(dbp->open(dbp,fname,NULL,DB_BTREE,flags,0664); free(fname));
   ^
/home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3: note: expected ‘struct DB_TXN *’ but argument is of type ‘char *’
/home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3: warning: passing argument 4 of ‘dbp->open’ makes pointer from integer without a cast [enabled by default]
/home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3: note: expected ‘const char *’ but argument is of type ‘int’
/home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3: error: too few arguments to function ‘dbp->open’
make[2]: *** [BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c.o] Error 1
make[1]: *** [BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/all] Error 2
make: *** [all] Error 2




David T. Lewis wrote
Hi Paul,

Thanks for doing this. I don't have time to really check it out right
now, but I did load your code from the new repository and I was able
to generate the C source with no problem (see attached).

I'll follow up on this in a few days, but at first glance it looks fine.

FYI, I'm using VMMaker trunk (load update-dtl.16.mcm), then "VMMakerTool forUnix"
to open the VMM tool, then drag the BerkeleyDbPlugin from "Plugins not built"
over to the "External Plugins" pane, then Generate Entire.

For platforms source, I used the sources from the original SAR and put
the header file in platforms/Cross/plugins/BerkeleyDbPlugin/ and the C
file in platforms/unix/plugins/BerkeleyDbPlugin/. I don't know if that's
right, but it works for generating the C code.

Dave


On Sun, Apr 05, 2015 at 08:50:36AM -0700, Paul DeBruicker wrote:
>  
> Hi David,
>
> I made the project on SqueakSource.   The repo is here:
>
>
> MCHttpRepository
>     location: 'http://www.squeaksource.com/BerkeleyDB'
>     user: ''
>     password: ''
>
>
> When attempting to generate the plugin as an external plugin the error shown
> in the VMMaker window is:
>
> warning, variable simulator doesn't exist or has already been removed
> failed to inline getErrorMessage: as it contains unrenamable C declarations
> or C code
> warning, signature of InterpreterProxy>>instantiateClass:indexableSize: does
> not match reference implementation.
> external plugin BerkeleyDbPlugin generated as BerkeleyDbPlugin
> 5 April 2015 9:00:18 am
>
>
> Are these warnings/errors serious?  Is the next step to get rid of them?  
>
> Thanks
>
> Paul
>
>
>
>
> David T. Lewis wrote
> > I am assuming that this is "Berkeley DB Plugin" on SqueakMap, written by
> > Stephen Pair
> > and licensed SqueakL, and therefore OK to include in the VM.
> >
> > The SAR file contains the platforms sources and some hints as to handle it
> > in a makefile.
> >
> > I expect that this plugin could be brought back to life with a bit of
> > effort.
> > It also looks like something that might best be maintained outside of
> > VMMaker
> > so that the interested parties can update it as they please.
> >
> > How about if we put the Smalltalk part of the plugin into a new project on
> > squeaksource.com? Paul DeBruicker, Stephen Pair, Eliot and I all have
> > accounts
> > on that server already, so it would be easy to put it there.
> >
> > The Berkeley db library has a lot of history, and I don't know what the
> > current
> > runtimes would be on a modern unix/linux/osx platform. The
> > http://www.sleepycat.com
> > site redirects to Oracle now, which does not seem encouraging. Current
> > licensing
> > seems to be explained at http://en.wikipedia.org/wiki/Berkeley_DB.
> >
> > Dave
> >
> > On Sun, Mar 29, 2015 at 08:50:51AM -0700, Eliot Miranda wrote:
> >>
> >> D'u have the smalltalk source or just the generated C code?  And I what
> >> VM build environment do you want to work?
> >>
> >> Eliot (phone)
> >>
> >> On Mar 29, 2015, at 7:46 AM, Paul DeBruicker <
>
> > pdebruic@
>
> > > wrote:
> >>
> >> >
> >> > Hi -
> >> >
> >> > I've posted Steven Pair's  BerkeleyDB plugin .sar file to dropbox here:
> >> >
> >> >
> >> > https://dl.dropboxusercontent.com/u/4460862/BerkeleyDB.sar
> >> >
> >> >
> >> >
> >> > I'd like to get it to compile (on linux...), and also to modify it to
> >> work with the LMDB (http://symas.com/mdb/). According to the LMDB docs it
> >> should be pretty straightforward to port something from BerkeleyDB.  
> >> >
> >> > From examining the .sar it looks like the plugin hasn't been
> >> edited/compiled since December 2002.  
> >> >
> >> > Is there a guide for bringing old plugins up to date?  IF not what
> >> should I expect to have to change to get it working?  
> >> >
> >> > Thanks
> >> >
> >> > Paul
>
>
>
>
>
> --
> View this message in context: http://forum.world.st/updating-and-compiling-the-BerkeleyDB-plugin-tp4815915p4817704.html
> Sent from the Squeak VM mailing list archive at Nabble.com.


BerkeleyDbPlugin.c (20K) <http://forum.world.st/attachment/4817710/0/BerkeleyDbPlugin.c>
Reply | Threaded
Open this post in threaded view
|

Re: updating and compiling the BerkeleyDB plugin

David T. Lewis
 
Hi Paul,

I'm sure we'll want to put the source in Subversion at some point, but
github might be a good way to get started. I am dtlewis290 on github.

I have not actually installed berkeley DB on my ubuntu PC yet. Should I
just apt-get it from ubuntu, or is there a particular version that I
should try to use?

Thanks!

Dave


>
> Hi David,
>
> I followed your instructions and made some headway in getting the plugin
> compiled. The changes are on SquaeakSource.  I think I have now hit some
> errors that will necessitate making changes to the sqBerkeleyDbPlugin.c
> file in the .sar.
>
> Where should I save/share those changes?
>
> I'm ambivalent and will put it on github if you are too.
>
> I'm using 32 bit ubuntu 14.04.  I think the current Big problem is that
> the
> plugin was written for BerkeleyDB version 4.???.  I've been trying to
> compile it against version 6.1, because its the current stable installed
> by
> apt-get.  Maybe the API has changed.  I'll download and try some of the
> 4.x
> libraries to see.
>
> The current set of errors are pasted below.
>
> I've got about an hour a week I want to spend on this so there is no rush
> on
> my end for Progress.
>
>
> Thanks for taking a look
>
>
> Paul
>
>
>
>
>
> Scanning dependencies of target BerkeleyDbPlugin
> [ 77%] Building C object
> BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c.o
> /home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c: In
> function ‘initialiseModule’:
> /home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c:141:2:
> warning: passing argument 1 of ‘sqDbInit’ from incompatible pointer
> type
> [enabled by default]
>   return sqDbInit(sqDbMalloc);
>   ^
> In file included from
> /home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c:37:0:
> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.h:13:5:
> note: expected ‘void * (*)(size_t)’ but argument is of type ‘void *
> (*)(sqInt)’
>  int sqDbInit(void *(*sq_malloc)(size_t size) );
>      ^
> [ 80%] Building C object
> BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c.o
> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:
> In function ‘sqDbOpen’:
> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
> warning: passing argument 2 of ‘dbp->open’ from incompatible pointer
> type
> [enabled by default]
>    DBCALL(dbp->open(dbp,fname,NULL,DB_BTREE,flags,0664); free(fname));
>    ^
> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
> note: expected ‘struct DB_TXN *’ but argument is of type ‘char *’
> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
> warning: passing argument 4 of ‘dbp->open’ makes pointer from integer
> without a cast [enabled by default]
> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
> note: expected ‘const char *’ but argument is of type ‘int’
> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
> error: too few arguments to function ‘dbp->open’
> make[2]: ***
> [BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c.o]
> Error 1
> make[1]: *** [BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/all] Error
> 2
> make: *** [all] Error 2
>
>
>
>
>
> David T. Lewis wrote
>> Hi Paul,
>>
>> Thanks for doing this. I don't have time to really check it out right
>> now, but I did load your code from the new repository and I was able
>> to generate the C source with no problem (see attached).
>>
>> I'll follow up on this in a few days, but at first glance it looks fine.
>>
>> FYI, I'm using VMMaker trunk (load update-dtl.16.mcm), then "VMMakerTool
>> forUnix"
>> to open the VMM tool, then drag the BerkeleyDbPlugin from "Plugins not
>> built"
>> over to the "External Plugins" pane, then Generate Entire.
>>
>> For platforms source, I used the sources from the original SAR and put
>> the header file in platforms/Cross/plugins/BerkeleyDbPlugin/ and the C
>> file in platforms/unix/plugins/BerkeleyDbPlugin/. I don't know if that's
>> right, but it works for generating the C code.
>>
>> Dave
>>
>>
>> On Sun, Apr 05, 2015 at 08:50:36AM -0700, Paul DeBruicker wrote:
>>>
>>> Hi David,
>>>
>>> I made the project on SqueakSource.   The repo is here:
>>>
>>>
>>> MCHttpRepository
>>>     location: 'http://www.squeaksource.com/BerkeleyDB'
>>>     user: ''
>>>     password: ''
>>>
>>>
>>> When attempting to generate the plugin as an external plugin the error
>>> shown
>>> in the VMMaker window is:
>>>
>>> warning, variable simulator doesn't exist or has already been removed
>>> failed to inline getErrorMessage: as it contains unrenamable C
>>> declarations
>>> or C code
>>> warning, signature of InterpreterProxy>>instantiateClass:indexableSize:
>>> does
>>> not match reference implementation.
>>> external plugin BerkeleyDbPlugin generated as BerkeleyDbPlugin
>>> 5 April 2015 9:00:18 am
>>>
>>>
>>> Are these warnings/errors serious?  Is the next step to get rid of
>>> them?
>>>
>>> Thanks
>>>
>>> Paul
>>>
>>>
>>>
>>>
>>> David T. Lewis wrote
>>> > I am assuming that this is "Berkeley DB Plugin" on SqueakMap, written
>>> by
>>> > Stephen Pair
>>> > and licensed SqueakL, and therefore OK to include in the VM.
>>> >
>>> > The SAR file contains the platforms sources and some hints as to
>>> handle
>>> it
>>> > in a makefile.
>>> >
>>> > I expect that this plugin could be brought back to life with a bit of
>>> > effort.
>>> > It also looks like something that might best be maintained outside of
>>> > VMMaker
>>> > so that the interested parties can update it as they please.
>>> >
>>> > How about if we put the Smalltalk part of the plugin into a new
>>> project
>>> on
>>> > squeaksource.com? Paul DeBruicker, Stephen Pair, Eliot and I all have
>>> > accounts
>>> > on that server already, so it would be easy to put it there.
>>> >
>>> > The Berkeley db library has a lot of history, and I don't know what
>>> the
>>> > current
>>> > runtimes would be on a modern unix/linux/osx platform. The
>>> > http://www.sleepycat.com
>>> > site redirects to Oracle now, which does not seem encouraging.
>>> Current
>>> > licensing
>>> > seems to be explained at http://en.wikipedia.org/wiki/Berkeley_DB.
>>> >
>>> > Dave
>>> >
>>> > On Sun, Mar 29, 2015 at 08:50:51AM -0700, Eliot Miranda wrote:
>>> >>
>>> >> D'u have the smalltalk source or just the generated C code?  And I
>>> what
>>> >> VM build environment do you want to work?
>>> >>
>>> >> Eliot (phone)
>>> >>
>>> >> On Mar 29, 2015, at 7:46 AM, Paul DeBruicker &lt;
>>>
>>> > pdebruic@
>>>
>>> > &gt; wrote:
>>> >>
>>> >> >
>>> >> > Hi -
>>> >> >
>>> >> > I've posted Steven Pair's  BerkeleyDB plugin .sar file to dropbox
>>> here:
>>> >> >
>>> >> >
>>> >> > https://dl.dropboxusercontent.com/u/4460862/BerkeleyDB.sar
>>> >> >
>>> >> >
>>> >> >
>>> >> > I'd like to get it to compile (on linux...), and also to modify it
>>> to
>>> >> work with the LMDB (http://symas.com/mdb/). According to the LMDB
>>> docs
>>> it
>>> >> should be pretty straightforward to port something from BerkeleyDB.
>>> >> >
>>> >> > From examining the .sar it looks like the plugin hasn't been
>>> >> edited/compiled since December 2002.
>>> >> >
>>> >> > Is there a guide for bringing old plugins up to date?  IF not what
>>> >> should I expect to have to change to get it working?
>>> >> >
>>> >> > Thanks
>>> >> >
>>> >> > Paul
>>>
>>>
>>>
>>>
>>>
>>> --
>>> View this message in context:
>>> http://forum.world.st/updating-and-compiling-the-BerkeleyDB-plugin-tp4815915p4817704.html
>>> Sent from the Squeak VM mailing list archive at Nabble.com.
>>
>>
>> BerkeleyDbPlugin.c (20K)
>> &lt;http://forum.world.st/attachment/4817710/0/BerkeleyDbPlugin.c&gt;
>
>
>
>
>
> --
> View this message in context:
> http://forum.world.st/updating-and-compiling-the-BerkeleyDB-plugin-tp4815915p4819198.html
> Sent from the Squeak VM mailing list archive at Nabble.com.
>


Reply | Threaded
Open this post in threaded view
|

Re: updating and compiling the BerkeleyDB plugin

Paul DeBruicker

Hi Dave,

I've made a repository here:  https://github.com/pdebruic/BerkeleyDBPlugin and added you as a collaborator.  I have not yet made any changes in the files from the .sar.


I did find that if I used version 4.1.25 then things compiled without the errors I posted yesterday and a VM was made. So I think we need to start with older versions of BerkeleyDB, which apt doesn't have.  I did not yet try the other 4.x versions and I'm not sure which would be best to use.  

The 4.x versions are available here: http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index-082944.html.

They include install directions and C API documentation accessible from the  docs/index.html file once you've extracted the download.  Once unzipped the install steps were:

cd build_unix
../dist/configure
make
sudo make install


Thanks for taking a look


Paul



On Apr 13, 2015, at 8:01 AM, David T. Lewis <[hidden email]> wrote:

> Hi Paul,
>
> I'm sure we'll want to put the source in Subversion at some point, but
> github might be a good way to get started. I am dtlewis290 on github.
>
> I have not actually installed berkeley DB on my ubuntu PC yet. Should I
> just apt-get it from ubuntu, or is there a particular version that I
> should try to use?
>
> Thanks!
>
> Dave
>
>
>>
>> Hi David,
>>
>> I followed your instructions and made some headway in getting the plugin
>> compiled. The changes are on SquaeakSource.  I think I have now hit some
>> errors that will necessitate making changes to the sqBerkeleyDbPlugin.c
>> file in the .sar.
>>
>> Where should I save/share those changes?
>>
>> I'm ambivalent and will put it on github if you are too.
>>
>> I'm using 32 bit ubuntu 14.04.  I think the current Big problem is that
>> the
>> plugin was written for BerkeleyDB version 4.???.  I've been trying to
>> compile it against version 6.1, because its the current stable installed
>> by
>> apt-get.  Maybe the API has changed.  I'll download and try some of the
>> 4.x
>> libraries to see.
>>
>> The current set of errors are pasted below.
>>
>> I've got about an hour a week I want to spend on this so there is no rush
>> on
>> my end for Progress.
>>
>>
>> Thanks for taking a look
>>
>>
>> Paul
>>
>>
>>
>>
>>
>> Scanning dependencies of target BerkeleyDbPlugin
>> [ 77%] Building C object
>> BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c.o
>> /home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c: In
>> function ‘initialiseModule’:
>> /home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c:141:2:
>> warning: passing argument 1 of ‘sqDbInit’ from incompatible pointer
>> type
>> [enabled by default]
>>  return sqDbInit(sqDbMalloc);
>>  ^
>> In file included from
>> /home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c:37:0:
>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.h:13:5:
>> note: expected ‘void * (*)(size_t)’ but argument is of type ‘void *
>> (*)(sqInt)’
>> int sqDbInit(void *(*sq_malloc)(size_t size) );
>>     ^
>> [ 80%] Building C object
>> BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c.o
>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:
>> In function ‘sqDbOpen’:
>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
>> warning: passing argument 2 of ‘dbp->open’ from incompatible pointer
>> type
>> [enabled by default]
>>   DBCALL(dbp->open(dbp,fname,NULL,DB_BTREE,flags,0664); free(fname));
>>   ^
>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
>> note: expected ‘struct DB_TXN *’ but argument is of type ‘char *’
>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
>> warning: passing argument 4 of ‘dbp->open’ makes pointer from integer
>> without a cast [enabled by default]
>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
>> note: expected ‘const char *’ but argument is of type ‘int’
>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
>> error: too few arguments to function ‘dbp->open’
>> make[2]: ***
>> [BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c.o]
>> Error 1
>> make[1]: *** [BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/all] Error
>> 2
>> make: *** [all] Error 2
>>
>>
>>
>>
>>
>> David T. Lewis wrote
>>> Hi Paul,
>>>
>>> Thanks for doing this. I don't have time to really check it out right
>>> now, but I did load your code from the new repository and I was able
>>> to generate the C source with no problem (see attached).
>>>
>>> I'll follow up on this in a few days, but at first glance it looks fine.
>>>
>>> FYI, I'm using VMMaker trunk (load update-dtl.16.mcm), then "VMMakerTool
>>> forUnix"
>>> to open the VMM tool, then drag the BerkeleyDbPlugin from "Plugins not
>>> built"
>>> over to the "External Plugins" pane, then Generate Entire.
>>>
>>> For platforms source, I used the sources from the original SAR and put
>>> the header file in platforms/Cross/plugins/BerkeleyDbPlugin/ and the C
>>> file in platforms/unix/plugins/BerkeleyDbPlugin/. I don't know if that's
>>> right, but it works for generating the C code.
>>>
>>> Dave
>>>
>>>
>>> On Sun, Apr 05, 2015 at 08:50:36AM -0700, Paul DeBruicker wrote:
>>>>
>>>> Hi David,
>>>>
>>>> I made the project on SqueakSource.   The repo is here:
>>>>
>>>>
>>>> MCHttpRepository
>>>>    location: 'http://www.squeaksource.com/BerkeleyDB'
>>>>    user: ''
>>>>    password: ''
>>>>
>>>>
>>>> When attempting to generate the plugin as an external plugin the error
>>>> shown
>>>> in the VMMaker window is:
>>>>
>>>> warning, variable simulator doesn't exist or has already been removed
>>>> failed to inline getErrorMessage: as it contains unrenamable C
>>>> declarations
>>>> or C code
>>>> warning, signature of InterpreterProxy>>instantiateClass:indexableSize:
>>>> does
>>>> not match reference implementation.
>>>> external plugin BerkeleyDbPlugin generated as BerkeleyDbPlugin
>>>> 5 April 2015 9:00:18 am
>>>>
>>>>
>>>> Are these warnings/errors serious?  Is the next step to get rid of
>>>> them?
>>>>
>>>> Thanks
>>>>
>>>> Paul
>>>>
>>>>
>>>>
>>>>
>>>> David T. Lewis wrote
>>>>> I am assuming that this is "Berkeley DB Plugin" on SqueakMap, written
>>>> by
>>>>> Stephen Pair
>>>>> and licensed SqueakL, and therefore OK to include in the VM.
>>>>>
>>>>> The SAR file contains the platforms sources and some hints as to
>>>> handle
>>>> it
>>>>> in a makefile.
>>>>>
>>>>> I expect that this plugin could be brought back to life with a bit of
>>>>> effort.
>>>>> It also looks like something that might best be maintained outside of
>>>>> VMMaker
>>>>> so that the interested parties can update it as they please.
>>>>>
>>>>> How about if we put the Smalltalk part of the plugin into a new
>>>> project
>>>> on
>>>>> squeaksource.com? Paul DeBruicker, Stephen Pair, Eliot and I all have
>>>>> accounts
>>>>> on that server already, so it would be easy to put it there.
>>>>>
>>>>> The Berkeley db library has a lot of history, and I don't know what
>>>> the
>>>>> current
>>>>> runtimes would be on a modern unix/linux/osx platform. The
>>>>> http://www.sleepycat.com
>>>>> site redirects to Oracle now, which does not seem encouraging.
>>>> Current
>>>>> licensing
>>>>> seems to be explained at http://en.wikipedia.org/wiki/Berkeley_DB.
>>>>>
>>>>> Dave
>>>>>
>>>>> On Sun, Mar 29, 2015 at 08:50:51AM -0700, Eliot Miranda wrote:
>>>>>>
>>>>>> D'u have the smalltalk source or just the generated C code?  And I
>>>> what
>>>>>> VM build environment do you want to work?
>>>>>>
>>>>>> Eliot (phone)
>>>>>>
>>>>>> On Mar 29, 2015, at 7:46 AM, Paul DeBruicker &lt;
>>>>
>>>>> pdebruic@
>>>>
>>>>> &gt; wrote:
>>>>>>
>>>>>>>
>>>>>>> Hi -
>>>>>>>
>>>>>>> I've posted Steven Pair's  BerkeleyDB plugin .sar file to dropbox
>>>> here:
>>>>>>>
>>>>>>>
>>>>>>> https://dl.dropboxusercontent.com/u/4460862/BerkeleyDB.sar
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I'd like to get it to compile (on linux...), and also to modify it
>>>> to
>>>>>> work with the LMDB (http://symas.com/mdb/). According to the LMDB
>>>> docs
>>>> it
>>>>>> should be pretty straightforward to port something from BerkeleyDB.
>>>>>>>
>>>>>>> From examining the .sar it looks like the plugin hasn't been
>>>>>> edited/compiled since December 2002.
>>>>>>>
>>>>>>> Is there a guide for bringing old plugins up to date?  IF not what
>>>>>> should I expect to have to change to get it working?
>>>>>>>
>>>>>>> Thanks
>>>>>>>
>>>>>>> Paul
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> View this message in context:
>>>> http://forum.world.st/updating-and-compiling-the-BerkeleyDB-plugin-tp4815915p4817704.html
>>>> Sent from the Squeak VM mailing list archive at Nabble.com.
>>>
>>>
>>> BerkeleyDbPlugin.c (20K)
>>> &lt;http://forum.world.st/attachment/4817710/0/BerkeleyDbPlugin.c&gt;
>>
>>
>>
>>
>>
>> --
>> View this message in context:
>> http://forum.world.st/updating-and-compiling-the-BerkeleyDB-plugin-tp4815915p4819198.html
>> Sent from the Squeak VM mailing list archive at Nabble.com.
>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: updating and compiling the BerkeleyDB plugin

David T. Lewis
 
Hi Paul,

Thanks for the clear instructions. I installed the 4.1.25 BerkeleyDB from the
Oracle site. That looks like the right place to start.

Are you working on a 32-bit Ubuntu system, or 64-bit? I'm working on a 64-bit
platform, and I think I'm seeing a few issues to be sorted out (nothing serious,
more or less what I'd expect on a plugin that has not be updated in a while):


[100%] Building C object BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/lewis/squeak/VM/src/plugins/BerkeleyDbPlugin/Berk
eleyDbPlugin.c.o
/home/lewis/squeak/VM/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c: In function \xe2\x80\x98dbValueOf\xe2\x80\x99:
/home/lewis/squeak/VM/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c:100:9: warning: cast to pointer from integer of different
size [-Wint-to-pointer-cast]
  return (Database *) (oop + 4);
         ^

I may not have time to really look at this for a few days, but I think if
we can get the plugin working on the older BerkeleyDB version, then the
updates should be straightforward from there.

Thanks also for setting up https://github.com/pdebruic/BerkeleyDBPlugin

Dave


On Mon, Apr 13, 2015 at 08:44:22AM -0700, Paul DeBruicker wrote:

> Hi Dave,
>
> I've made a repository here:  https://github.com/pdebruic/BerkeleyDBPlugin and added you as a collaborator.  I have not yet made any changes in the files from the .sar.
>
>
> I did find that if I used version 4.1.25 then things compiled without the errors I posted yesterday and a VM was made. So I think we need to start with older versions of BerkeleyDB, which apt doesn't have.  I did not yet try the other 4.x versions and I'm not sure which would be best to use.  
>
> The 4.x versions are available here: http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index-082944.html.
>
> They include install directions and C API documentation accessible from the  docs/index.html file once you've extracted the download.  Once unzipped the install steps were:
>
> cd build_unix
> ../dist/configure
> make
> sudo make install
>
>
> Thanks for taking a look
>
>
> Paul
>
>
>
> On Apr 13, 2015, at 8:01 AM, David T. Lewis <[hidden email]> wrote:
>
> > Hi Paul,
> >
> > I'm sure we'll want to put the source in Subversion at some point, but
> > github might be a good way to get started. I am dtlewis290 on github.
> >
> > I have not actually installed berkeley DB on my ubuntu PC yet. Should I
> > just apt-get it from ubuntu, or is there a particular version that I
> > should try to use?
> >
> > Thanks!
> >
> > Dave
> >
> >
> >>
> >> Hi David,
> >>
> >> I followed your instructions and made some headway in getting the plugin
> >> compiled. The changes are on SquaeakSource.  I think I have now hit some
> >> errors that will necessitate making changes to the sqBerkeleyDbPlugin.c
> >> file in the .sar.
> >>
> >> Where should I save/share those changes?
> >>
> >> I'm ambivalent and will put it on github if you are too.
> >>
> >> I'm using 32 bit ubuntu 14.04.  I think the current Big problem is that
> >> the
> >> plugin was written for BerkeleyDB version 4.???.  I've been trying to
> >> compile it against version 6.1, because its the current stable installed
> >> by
> >> apt-get.  Maybe the API has changed.  I'll download and try some of the
> >> 4.x
> >> libraries to see.
> >>
> >> The current set of errors are pasted below.
> >>
> >> I've got about an hour a week I want to spend on this so there is no rush
> >> on
> >> my end for Progress.
> >>
> >>
> >> Thanks for taking a look
> >>
> >>
> >> Paul
> >>
> >>
> >>
> >>
> >>
> >> Scanning dependencies of target BerkeleyDbPlugin
> >> [ 77%] Building C object
> >> BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c.o
> >> /home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c: In
> >> function ???initialiseModule???:
> >> /home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c:141:2:
> >> warning: passing argument 1 of ???sqDbInit??? from incompatible pointer
> >> type
> >> [enabled by default]
> >>  return sqDbInit(sqDbMalloc);
> >>  ^
> >> In file included from
> >> /home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c:37:0:
> >> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.h:13:5:
> >> note: expected ???void * (*)(size_t)??? but argument is of type ???void *
> >> (*)(sqInt)???
> >> int sqDbInit(void *(*sq_malloc)(size_t size) );
> >>     ^
> >> [ 80%] Building C object
> >> BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c.o
> >> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:
> >> In function ???sqDbOpen???:
> >> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
> >> warning: passing argument 2 of ???dbp->open??? from incompatible pointer
> >> type
> >> [enabled by default]
> >>   DBCALL(dbp->open(dbp,fname,NULL,DB_BTREE,flags,0664); free(fname));
> >>   ^
> >> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
> >> note: expected ???struct DB_TXN *??? but argument is of type ???char *???
> >> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
> >> warning: passing argument 4 of ???dbp->open??? makes pointer from integer
> >> without a cast [enabled by default]
> >> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
> >> note: expected ???const char *??? but argument is of type ???int???
> >> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
> >> error: too few arguments to function ???dbp->open???
> >> make[2]: ***
> >> [BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c.o]
> >> Error 1
> >> make[1]: *** [BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/all] Error
> >> 2
> >> make: *** [all] Error 2
> >>
> >>
> >>
> >>
> >>
> >> David T. Lewis wrote
> >>> Hi Paul,
> >>>
> >>> Thanks for doing this. I don't have time to really check it out right
> >>> now, but I did load your code from the new repository and I was able
> >>> to generate the C source with no problem (see attached).
> >>>
> >>> I'll follow up on this in a few days, but at first glance it looks fine.
> >>>
> >>> FYI, I'm using VMMaker trunk (load update-dtl.16.mcm), then "VMMakerTool
> >>> forUnix"
> >>> to open the VMM tool, then drag the BerkeleyDbPlugin from "Plugins not
> >>> built"
> >>> over to the "External Plugins" pane, then Generate Entire.
> >>>
> >>> For platforms source, I used the sources from the original SAR and put
> >>> the header file in platforms/Cross/plugins/BerkeleyDbPlugin/ and the C
> >>> file in platforms/unix/plugins/BerkeleyDbPlugin/. I don't know if that's
> >>> right, but it works for generating the C code.
> >>>
> >>> Dave
> >>>
> >>>
> >>> On Sun, Apr 05, 2015 at 08:50:36AM -0700, Paul DeBruicker wrote:
> >>>>
> >>>> Hi David,
> >>>>
> >>>> I made the project on SqueakSource.   The repo is here:
> >>>>
> >>>>
> >>>> MCHttpRepository
> >>>>    location: 'http://www.squeaksource.com/BerkeleyDB'
> >>>>    user: ''
> >>>>    password: ''
> >>>>
> >>>>
> >>>> When attempting to generate the plugin as an external plugin the error
> >>>> shown
> >>>> in the VMMaker window is:
> >>>>
> >>>> warning, variable simulator doesn't exist or has already been removed
> >>>> failed to inline getErrorMessage: as it contains unrenamable C
> >>>> declarations
> >>>> or C code
> >>>> warning, signature of InterpreterProxy>>instantiateClass:indexableSize:
> >>>> does
> >>>> not match reference implementation.
> >>>> external plugin BerkeleyDbPlugin generated as BerkeleyDbPlugin
> >>>> 5 April 2015 9:00:18 am
> >>>>
> >>>>
> >>>> Are these warnings/errors serious?  Is the next step to get rid of
> >>>> them?
> >>>>
> >>>> Thanks
> >>>>
> >>>> Paul
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> David T. Lewis wrote
> >>>>> I am assuming that this is "Berkeley DB Plugin" on SqueakMap, written
> >>>> by
> >>>>> Stephen Pair
> >>>>> and licensed SqueakL, and therefore OK to include in the VM.
> >>>>>
> >>>>> The SAR file contains the platforms sources and some hints as to
> >>>> handle
> >>>> it
> >>>>> in a makefile.
> >>>>>
> >>>>> I expect that this plugin could be brought back to life with a bit of
> >>>>> effort.
> >>>>> It also looks like something that might best be maintained outside of
> >>>>> VMMaker
> >>>>> so that the interested parties can update it as they please.
> >>>>>
> >>>>> How about if we put the Smalltalk part of the plugin into a new
> >>>> project
> >>>> on
> >>>>> squeaksource.com? Paul DeBruicker, Stephen Pair, Eliot and I all have
> >>>>> accounts
> >>>>> on that server already, so it would be easy to put it there.
> >>>>>
> >>>>> The Berkeley db library has a lot of history, and I don't know what
> >>>> the
> >>>>> current
> >>>>> runtimes would be on a modern unix/linux/osx platform. The
> >>>>> http://www.sleepycat.com
> >>>>> site redirects to Oracle now, which does not seem encouraging.
> >>>> Current
> >>>>> licensing
> >>>>> seems to be explained at http://en.wikipedia.org/wiki/Berkeley_DB.
> >>>>>
> >>>>> Dave
> >>>>>
> >>>>> On Sun, Mar 29, 2015 at 08:50:51AM -0700, Eliot Miranda wrote:
> >>>>>>
> >>>>>> D'u have the smalltalk source or just the generated C code?  And I
> >>>> what
> >>>>>> VM build environment do you want to work?
> >>>>>>
> >>>>>> Eliot (phone)
> >>>>>>
> >>>>>> On Mar 29, 2015, at 7:46 AM, Paul DeBruicker &lt;
> >>>>
> >>>>> pdebruic@
> >>>>
> >>>>> &gt; wrote:
> >>>>>>
> >>>>>>>
> >>>>>>> Hi -
> >>>>>>>
> >>>>>>> I've posted Steven Pair's  BerkeleyDB plugin .sar file to dropbox
> >>>> here:
> >>>>>>>
> >>>>>>>
> >>>>>>> https://dl.dropboxusercontent.com/u/4460862/BerkeleyDB.sar
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> I'd like to get it to compile (on linux...), and also to modify it
> >>>> to
> >>>>>> work with the LMDB (http://symas.com/mdb/). According to the LMDB
> >>>> docs
> >>>> it
> >>>>>> should be pretty straightforward to port something from BerkeleyDB.
> >>>>>>>
> >>>>>>> From examining the .sar it looks like the plugin hasn't been
> >>>>>> edited/compiled since December 2002.
> >>>>>>>
> >>>>>>> Is there a guide for bringing old plugins up to date?  IF not what
> >>>>>> should I expect to have to change to get it working?
> >>>>>>>
> >>>>>>> Thanks
> >>>>>>>
> >>>>>>> Paul
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> View this message in context:
> >>>> http://forum.world.st/updating-and-compiling-the-BerkeleyDB-plugin-tp4815915p4817704.html
> >>>> Sent from the Squeak VM mailing list archive at Nabble.com.
> >>>
> >>>
> >>> BerkeleyDbPlugin.c (20K)
> >>> &lt;http://forum.world.st/attachment/4817710/0/BerkeleyDbPlugin.c&gt;
> >>
> >>
> >>
> >>
> >>
> >> --
> >> View this message in context:
> >> http://forum.world.st/updating-and-compiling-the-BerkeleyDB-plugin-tp4815915p4819198.html
> >> Sent from the Squeak VM mailing list archive at Nabble.com.
> >>
> >
> >
Reply | Threaded
Open this post in threaded view
|

Re: updating and compiling the BerkeleyDB plugin

Paul DeBruicker

Hi Dave,

Its the 32 bit version of 14.04 but in a VM and I could set up a 64bit version if you think it would be good to be on the same one.  

Paul



On Apr 13, 2015, at 8:07 PM, David T. Lewis <[hidden email]> wrote:

> Hi Paul,
>
> Thanks for the clear instructions. I installed the 4.1.25 BerkeleyDB from the
> Oracle site. That looks like the right place to start.
>
> Are you working on a 32-bit Ubuntu system, or 64-bit? I'm working on a 64-bit
> platform, and I think I'm seeing a few issues to be sorted out (nothing serious,
> more or less what I'd expect on a plugin that has not be updated in a while):
>
>
> [100%] Building C object BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/lewis/squeak/VM/src/plugins/BerkeleyDbPlugin/Berk
> eleyDbPlugin.c.o
> /home/lewis/squeak/VM/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c: In function \xe2\x80\x98dbValueOf\xe2\x80\x99:
> /home/lewis/squeak/VM/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c:100:9: warning: cast to pointer from integer of different
> size [-Wint-to-pointer-cast]
>  return (Database *) (oop + 4);
>         ^
>
> I may not have time to really look at this for a few days, but I think if
> we can get the plugin working on the older BerkeleyDB version, then the
> updates should be straightforward from there.
>
> Thanks also for setting up https://github.com/pdebruic/BerkeleyDBPlugin
>
> Dave
>
>
> On Mon, Apr 13, 2015 at 08:44:22AM -0700, Paul DeBruicker wrote:
>> Hi Dave,
>>
>> I've made a repository here:  https://github.com/pdebruic/BerkeleyDBPlugin and added you as a collaborator.  I have not yet made any changes in the files from the .sar.
>>
>>
>> I did find that if I used version 4.1.25 then things compiled without the errors I posted yesterday and a VM was made. So I think we need to start with older versions of BerkeleyDB, which apt doesn't have.  I did not yet try the other 4.x versions and I'm not sure which would be best to use.  
>>
>> The 4.x versions are available here: http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index-082944.html.
>>
>> They include install directions and C API documentation accessible from the  docs/index.html file once you've extracted the download.  Once unzipped the install steps were:
>>
>> cd build_unix
>> ../dist/configure
>> make
>> sudo make install
>>
>>
>> Thanks for taking a look
>>
>>
>> Paul
>>
>>
>>
>> On Apr 13, 2015, at 8:01 AM, David T. Lewis <[hidden email]> wrote:
>>
>>> Hi Paul,
>>>
>>> I'm sure we'll want to put the source in Subversion at some point, but
>>> github might be a good way to get started. I am dtlewis290 on github.
>>>
>>> I have not actually installed berkeley DB on my ubuntu PC yet. Should I
>>> just apt-get it from ubuntu, or is there a particular version that I
>>> should try to use?
>>>
>>> Thanks!
>>>
>>> Dave
>>>
>>>
>>>>
>>>> Hi David,
>>>>
>>>> I followed your instructions and made some headway in getting the plugin
>>>> compiled. The changes are on SquaeakSource.  I think I have now hit some
>>>> errors that will necessitate making changes to the sqBerkeleyDbPlugin.c
>>>> file in the .sar.
>>>>
>>>> Where should I save/share those changes?
>>>>
>>>> I'm ambivalent and will put it on github if you are too.
>>>>
>>>> I'm using 32 bit ubuntu 14.04.  I think the current Big problem is that
>>>> the
>>>> plugin was written for BerkeleyDB version 4.???.  I've been trying to
>>>> compile it against version 6.1, because its the current stable installed
>>>> by
>>>> apt-get.  Maybe the API has changed.  I'll download and try some of the
>>>> 4.x
>>>> libraries to see.
>>>>
>>>> The current set of errors are pasted below.
>>>>
>>>> I've got about an hour a week I want to spend on this so there is no rush
>>>> on
>>>> my end for Progress.
>>>>
>>>>
>>>> Thanks for taking a look
>>>>
>>>>
>>>> Paul
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Scanning dependencies of target BerkeleyDbPlugin
>>>> [ 77%] Building C object
>>>> BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c.o
>>>> /home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c: In
>>>> function ???initialiseModule???:
>>>> /home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c:141:2:
>>>> warning: passing argument 1 of ???sqDbInit??? from incompatible pointer
>>>> type
>>>> [enabled by default]
>>>> return sqDbInit(sqDbMalloc);
>>>> ^
>>>> In file included from
>>>> /home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c:37:0:
>>>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.h:13:5:
>>>> note: expected ???void * (*)(size_t)??? but argument is of type ???void *
>>>> (*)(sqInt)???
>>>> int sqDbInit(void *(*sq_malloc)(size_t size) );
>>>>    ^
>>>> [ 80%] Building C object
>>>> BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c.o
>>>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:
>>>> In function ???sqDbOpen???:
>>>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
>>>> warning: passing argument 2 of ???dbp->open??? from incompatible pointer
>>>> type
>>>> [enabled by default]
>>>>  DBCALL(dbp->open(dbp,fname,NULL,DB_BTREE,flags,0664); free(fname));
>>>>  ^
>>>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
>>>> note: expected ???struct DB_TXN *??? but argument is of type ???char *???
>>>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
>>>> warning: passing argument 4 of ???dbp->open??? makes pointer from integer
>>>> without a cast [enabled by default]
>>>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
>>>> note: expected ???const char *??? but argument is of type ???int???
>>>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
>>>> error: too few arguments to function ???dbp->open???
>>>> make[2]: ***
>>>> [BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c.o]
>>>> Error 1
>>>> make[1]: *** [BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/all] Error
>>>> 2
>>>> make: *** [all] Error 2
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> David T. Lewis wrote
>>>>> Hi Paul,
>>>>>
>>>>> Thanks for doing this. I don't have time to really check it out right
>>>>> now, but I did load your code from the new repository and I was able
>>>>> to generate the C source with no problem (see attached).
>>>>>
>>>>> I'll follow up on this in a few days, but at first glance it looks fine.
>>>>>
>>>>> FYI, I'm using VMMaker trunk (load update-dtl.16.mcm), then "VMMakerTool
>>>>> forUnix"
>>>>> to open the VMM tool, then drag the BerkeleyDbPlugin from "Plugins not
>>>>> built"
>>>>> over to the "External Plugins" pane, then Generate Entire.
>>>>>
>>>>> For platforms source, I used the sources from the original SAR and put
>>>>> the header file in platforms/Cross/plugins/BerkeleyDbPlugin/ and the C
>>>>> file in platforms/unix/plugins/BerkeleyDbPlugin/. I don't know if that's
>>>>> right, but it works for generating the C code.
>>>>>
>>>>> Dave
>>>>>
>>>>>
>>>>> On Sun, Apr 05, 2015 at 08:50:36AM -0700, Paul DeBruicker wrote:
>>>>>>
>>>>>> Hi David,
>>>>>>
>>>>>> I made the project on SqueakSource.   The repo is here:
>>>>>>
>>>>>>
>>>>>> MCHttpRepository
>>>>>>   location: 'http://www.squeaksource.com/BerkeleyDB'
>>>>>>   user: ''
>>>>>>   password: ''
>>>>>>
>>>>>>
>>>>>> When attempting to generate the plugin as an external plugin the error
>>>>>> shown
>>>>>> in the VMMaker window is:
>>>>>>
>>>>>> warning, variable simulator doesn't exist or has already been removed
>>>>>> failed to inline getErrorMessage: as it contains unrenamable C
>>>>>> declarations
>>>>>> or C code
>>>>>> warning, signature of InterpreterProxy>>instantiateClass:indexableSize:
>>>>>> does
>>>>>> not match reference implementation.
>>>>>> external plugin BerkeleyDbPlugin generated as BerkeleyDbPlugin
>>>>>> 5 April 2015 9:00:18 am
>>>>>>
>>>>>>
>>>>>> Are these warnings/errors serious?  Is the next step to get rid of
>>>>>> them?
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>> Paul
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> David T. Lewis wrote
>>>>>>> I am assuming that this is "Berkeley DB Plugin" on SqueakMap, written
>>>>>> by
>>>>>>> Stephen Pair
>>>>>>> and licensed SqueakL, and therefore OK to include in the VM.
>>>>>>>
>>>>>>> The SAR file contains the platforms sources and some hints as to
>>>>>> handle
>>>>>> it
>>>>>>> in a makefile.
>>>>>>>
>>>>>>> I expect that this plugin could be brought back to life with a bit of
>>>>>>> effort.
>>>>>>> It also looks like something that might best be maintained outside of
>>>>>>> VMMaker
>>>>>>> so that the interested parties can update it as they please.
>>>>>>>
>>>>>>> How about if we put the Smalltalk part of the plugin into a new
>>>>>> project
>>>>>> on
>>>>>>> squeaksource.com? Paul DeBruicker, Stephen Pair, Eliot and I all have
>>>>>>> accounts
>>>>>>> on that server already, so it would be easy to put it there.
>>>>>>>
>>>>>>> The Berkeley db library has a lot of history, and I don't know what
>>>>>> the
>>>>>>> current
>>>>>>> runtimes would be on a modern unix/linux/osx platform. The
>>>>>>> http://www.sleepycat.com
>>>>>>> site redirects to Oracle now, which does not seem encouraging.
>>>>>> Current
>>>>>>> licensing
>>>>>>> seems to be explained at http://en.wikipedia.org/wiki/Berkeley_DB.
>>>>>>>
>>>>>>> Dave
>>>>>>>
>>>>>>> On Sun, Mar 29, 2015 at 08:50:51AM -0700, Eliot Miranda wrote:
>>>>>>>>
>>>>>>>> D'u have the smalltalk source or just the generated C code?  And I
>>>>>> what
>>>>>>>> VM build environment do you want to work?
>>>>>>>>
>>>>>>>> Eliot (phone)
>>>>>>>>
>>>>>>>> On Mar 29, 2015, at 7:46 AM, Paul DeBruicker &lt;
>>>>>>
>>>>>>> pdebruic@
>>>>>>
>>>>>>> &gt; wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Hi -
>>>>>>>>>
>>>>>>>>> I've posted Steven Pair's  BerkeleyDB plugin .sar file to dropbox
>>>>>> here:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> https://dl.dropboxusercontent.com/u/4460862/BerkeleyDB.sar
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> I'd like to get it to compile (on linux...), and also to modify it
>>>>>> to
>>>>>>>> work with the LMDB (http://symas.com/mdb/). According to the LMDB
>>>>>> docs
>>>>>> it
>>>>>>>> should be pretty straightforward to port something from BerkeleyDB.
>>>>>>>>>
>>>>>>>>> From examining the .sar it looks like the plugin hasn't been
>>>>>>>> edited/compiled since December 2002.
>>>>>>>>>
>>>>>>>>> Is there a guide for bringing old plugins up to date?  IF not what
>>>>>>>> should I expect to have to change to get it working?
>>>>>>>>>
>>>>>>>>> Thanks
>>>>>>>>>
>>>>>>>>> Paul
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> View this message in context:
>>>>>> http://forum.world.st/updating-and-compiling-the-BerkeleyDB-plugin-tp4815915p4817704.html
>>>>>> Sent from the Squeak VM mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>> BerkeleyDbPlugin.c (20K)
>>>>> &lt;http://forum.world.st/attachment/4817710/0/BerkeleyDbPlugin.c&gt;
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> View this message in context:
>>>> http://forum.world.st/updating-and-compiling-the-BerkeleyDB-plugin-tp4815915p4819198.html
>>>> Sent from the Squeak VM mailing list archive at Nabble.com.

Reply | Threaded
Open this post in threaded view
|

Re: updating and compiling the BerkeleyDB plugin

David T. Lewis
 
Good, I think for now it's best if you work with the 32-bit platform,
which can probably produce a working plugin. I'll carry on with my 64-bit
setup, which which will let me pick off the pointer size issues. We can
swap fixes as we go.  I think I also see some issues related to assuming
an image word size of 4 (it would be 8 for 64 bit images) but we can deal
with that later.

I just did a commit to the BerkeleyDB repository (BerkeleyDB-dtl.4) that
eliminates my remaining compile errors for the sqBerkeleyDatabase.c plugin
generated source, although I still get a number of compiler warnings that
will need to be sorted out. You probably will not notice a difference on
32-bits though.

Dave

On Tue, Apr 14, 2015 at 07:31:44PM -0700, Paul DeBruicker wrote:

> Hi Dave,
>
> Its the 32 bit version of 14.04 but in a VM and I could set up a 64bit version if you think it would be good to be on the same one.  
>
> Paul
>
>
>
> On Apr 13, 2015, at 8:07 PM, David T. Lewis <[hidden email]> wrote:
>
> > Hi Paul,
> >
> > Thanks for the clear instructions. I installed the 4.1.25 BerkeleyDB from the
> > Oracle site. That looks like the right place to start.
> >
> > Are you working on a 32-bit Ubuntu system, or 64-bit? I'm working on a 64-bit
> > platform, and I think I'm seeing a few issues to be sorted out (nothing serious,
> > more or less what I'd expect on a plugin that has not be updated in a while):
> >
> >
> > [100%] Building C object BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/lewis/squeak/VM/src/plugins/BerkeleyDbPlugin/Berk
> > eleyDbPlugin.c.o
> > /home/lewis/squeak/VM/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c: In function \xe2\x80\x98dbValueOf\xe2\x80\x99:
> > /home/lewis/squeak/VM/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c:100:9: warning: cast to pointer from integer of different
> > size [-Wint-to-pointer-cast]
> >  return (Database *) (oop + 4);
> >         ^
> >
> > I may not have time to really look at this for a few days, but I think if
> > we can get the plugin working on the older BerkeleyDB version, then the
> > updates should be straightforward from there.
> >
> > Thanks also for setting up https://github.com/pdebruic/BerkeleyDBPlugin
> >
> > Dave
> >
> >
> > On Mon, Apr 13, 2015 at 08:44:22AM -0700, Paul DeBruicker wrote:
> >> Hi Dave,
> >>
> >> I've made a repository here:  https://github.com/pdebruic/BerkeleyDBPlugin and added you as a collaborator.  I have not yet made any changes in the files from the .sar.
> >>
> >>
> >> I did find that if I used version 4.1.25 then things compiled without the errors I posted yesterday and a VM was made. So I think we need to start with older versions of BerkeleyDB, which apt doesn't have.  I did not yet try the other 4.x versions and I'm not sure which would be best to use.  
> >>
> >> The 4.x versions are available here: http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index-082944.html.
> >>
> >> They include install directions and C API documentation accessible from the  docs/index.html file once you've extracted the download.  Once unzipped the install steps were:
> >>
> >> cd build_unix
> >> ../dist/configure
> >> make
> >> sudo make install
> >>
> >>
> >> Thanks for taking a look
> >>
> >>
> >> Paul
> >>
> >>
> >>
> >> On Apr 13, 2015, at 8:01 AM, David T. Lewis <[hidden email]> wrote:
> >>
> >>> Hi Paul,
> >>>
> >>> I'm sure we'll want to put the source in Subversion at some point, but
> >>> github might be a good way to get started. I am dtlewis290 on github.
> >>>
> >>> I have not actually installed berkeley DB on my ubuntu PC yet. Should I
> >>> just apt-get it from ubuntu, or is there a particular version that I
> >>> should try to use?
> >>>
> >>> Thanks!
> >>>
> >>> Dave
> >>>
> >>>
> >>>>
> >>>> Hi David,
> >>>>
> >>>> I followed your instructions and made some headway in getting the plugin
> >>>> compiled. The changes are on SquaeakSource.  I think I have now hit some
> >>>> errors that will necessitate making changes to the sqBerkeleyDbPlugin.c
> >>>> file in the .sar.
> >>>>
> >>>> Where should I save/share those changes?
> >>>>
> >>>> I'm ambivalent and will put it on github if you are too.
> >>>>
> >>>> I'm using 32 bit ubuntu 14.04.  I think the current Big problem is that
> >>>> the
> >>>> plugin was written for BerkeleyDB version 4.???.  I've been trying to
> >>>> compile it against version 6.1, because its the current stable installed
> >>>> by
> >>>> apt-get.  Maybe the API has changed.  I'll download and try some of the
> >>>> 4.x
> >>>> libraries to see.
> >>>>
> >>>> The current set of errors are pasted below.
> >>>>
> >>>> I've got about an hour a week I want to spend on this so there is no rush
> >>>> on
> >>>> my end for Progress.
> >>>>
> >>>>
> >>>> Thanks for taking a look
> >>>>
> >>>>
> >>>> Paul
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> Scanning dependencies of target BerkeleyDbPlugin
> >>>> [ 77%] Building C object
> >>>> BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c.o
> >>>> /home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c: In
> >>>> function ???initialiseModule???:
> >>>> /home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c:141:2:
> >>>> warning: passing argument 1 of ???sqDbInit??? from incompatible pointer
> >>>> type
> >>>> [enabled by default]
> >>>> return sqDbInit(sqDbMalloc);
> >>>> ^
> >>>> In file included from
> >>>> /home/deploy/src/trunk/src/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.c:37:0:
> >>>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/BerkeleyDbPlugin.h:13:5:
> >>>> note: expected ???void * (*)(size_t)??? but argument is of type ???void *
> >>>> (*)(sqInt)???
> >>>> int sqDbInit(void *(*sq_malloc)(size_t size) );
> >>>>    ^
> >>>> [ 80%] Building C object
> >>>> BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c.o
> >>>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:
> >>>> In function ???sqDbOpen???:
> >>>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
> >>>> warning: passing argument 2 of ???dbp->open??? from incompatible pointer
> >>>> type
> >>>> [enabled by default]
> >>>>  DBCALL(dbp->open(dbp,fname,NULL,DB_BTREE,flags,0664); free(fname));
> >>>>  ^
> >>>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
> >>>> note: expected ???struct DB_TXN *??? but argument is of type ???char *???
> >>>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
> >>>> warning: passing argument 4 of ???dbp->open??? makes pointer from integer
> >>>> without a cast [enabled by default]
> >>>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
> >>>> note: expected ???const char *??? but argument is of type ???int???
> >>>> /home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c:134:3:
> >>>> error: too few arguments to function ???dbp->open???
> >>>> make[2]: ***
> >>>> [BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/home/deploy/src/trunk/platforms/Cross/plugins/BerkeleyDbPlugin/sqBerkeleyDatabase.c.o]
> >>>> Error 1
> >>>> make[1]: *** [BerkeleyDbPlugin/CMakeFiles/BerkeleyDbPlugin.dir/all] Error
> >>>> 2
> >>>> make: *** [all] Error 2
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> David T. Lewis wrote
> >>>>> Hi Paul,
> >>>>>
> >>>>> Thanks for doing this. I don't have time to really check it out right
> >>>>> now, but I did load your code from the new repository and I was able
> >>>>> to generate the C source with no problem (see attached).
> >>>>>
> >>>>> I'll follow up on this in a few days, but at first glance it looks fine.
> >>>>>
> >>>>> FYI, I'm using VMMaker trunk (load update-dtl.16.mcm), then "VMMakerTool
> >>>>> forUnix"
> >>>>> to open the VMM tool, then drag the BerkeleyDbPlugin from "Plugins not
> >>>>> built"
> >>>>> over to the "External Plugins" pane, then Generate Entire.
> >>>>>
> >>>>> For platforms source, I used the sources from the original SAR and put
> >>>>> the header file in platforms/Cross/plugins/BerkeleyDbPlugin/ and the C
> >>>>> file in platforms/unix/plugins/BerkeleyDbPlugin/. I don't know if that's
> >>>>> right, but it works for generating the C code.
> >>>>>
> >>>>> Dave
> >>>>>
> >>>>>
> >>>>> On Sun, Apr 05, 2015 at 08:50:36AM -0700, Paul DeBruicker wrote:
> >>>>>>
> >>>>>> Hi David,
> >>>>>>
> >>>>>> I made the project on SqueakSource.   The repo is here:
> >>>>>>
> >>>>>>
> >>>>>> MCHttpRepository
> >>>>>>   location: 'http://www.squeaksource.com/BerkeleyDB'
> >>>>>>   user: ''
> >>>>>>   password: ''
> >>>>>>
> >>>>>>
> >>>>>> When attempting to generate the plugin as an external plugin the error
> >>>>>> shown
> >>>>>> in the VMMaker window is:
> >>>>>>
> >>>>>> warning, variable simulator doesn't exist or has already been removed
> >>>>>> failed to inline getErrorMessage: as it contains unrenamable C
> >>>>>> declarations
> >>>>>> or C code
> >>>>>> warning, signature of InterpreterProxy>>instantiateClass:indexableSize:
> >>>>>> does
> >>>>>> not match reference implementation.
> >>>>>> external plugin BerkeleyDbPlugin generated as BerkeleyDbPlugin
> >>>>>> 5 April 2015 9:00:18 am
> >>>>>>
> >>>>>>
> >>>>>> Are these warnings/errors serious?  Is the next step to get rid of
> >>>>>> them?
> >>>>>>
> >>>>>> Thanks
> >>>>>>
> >>>>>> Paul
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> David T. Lewis wrote
> >>>>>>> I am assuming that this is "Berkeley DB Plugin" on SqueakMap, written
> >>>>>> by
> >>>>>>> Stephen Pair
> >>>>>>> and licensed SqueakL, and therefore OK to include in the VM.
> >>>>>>>
> >>>>>>> The SAR file contains the platforms sources and some hints as to
> >>>>>> handle
> >>>>>> it
> >>>>>>> in a makefile.
> >>>>>>>
> >>>>>>> I expect that this plugin could be brought back to life with a bit of
> >>>>>>> effort.
> >>>>>>> It also looks like something that might best be maintained outside of
> >>>>>>> VMMaker
> >>>>>>> so that the interested parties can update it as they please.
> >>>>>>>
> >>>>>>> How about if we put the Smalltalk part of the plugin into a new
> >>>>>> project
> >>>>>> on
> >>>>>>> squeaksource.com? Paul DeBruicker, Stephen Pair, Eliot and I all have
> >>>>>>> accounts
> >>>>>>> on that server already, so it would be easy to put it there.
> >>>>>>>
> >>>>>>> The Berkeley db library has a lot of history, and I don't know what
> >>>>>> the
> >>>>>>> current
> >>>>>>> runtimes would be on a modern unix/linux/osx platform. The
> >>>>>>> http://www.sleepycat.com
> >>>>>>> site redirects to Oracle now, which does not seem encouraging.
> >>>>>> Current
> >>>>>>> licensing
> >>>>>>> seems to be explained at http://en.wikipedia.org/wiki/Berkeley_DB.
> >>>>>>>
> >>>>>>> Dave
> >>>>>>>
> >>>>>>> On Sun, Mar 29, 2015 at 08:50:51AM -0700, Eliot Miranda wrote:
> >>>>>>>>
> >>>>>>>> D'u have the smalltalk source or just the generated C code?  And I
> >>>>>> what
> >>>>>>>> VM build environment do you want to work?
> >>>>>>>>
> >>>>>>>> Eliot (phone)
> >>>>>>>>
> >>>>>>>> On Mar 29, 2015, at 7:46 AM, Paul DeBruicker &lt;
> >>>>>>
> >>>>>>> pdebruic@
> >>>>>>
> >>>>>>> &gt; wrote:
> >>>>>>>>
> >>>>>>>>>
> >>>>>>>>> Hi -
> >>>>>>>>>
> >>>>>>>>> I've posted Steven Pair's  BerkeleyDB plugin .sar file to dropbox
> >>>>>> here:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> https://dl.dropboxusercontent.com/u/4460862/BerkeleyDB.sar
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> I'd like to get it to compile (on linux...), and also to modify it
> >>>>>> to
> >>>>>>>> work with the LMDB (http://symas.com/mdb/). According to the LMDB
> >>>>>> docs
> >>>>>> it
> >>>>>>>> should be pretty straightforward to port something from BerkeleyDB.
> >>>>>>>>>
> >>>>>>>>> From examining the .sar it looks like the plugin hasn't been
> >>>>>>>> edited/compiled since December 2002.
> >>>>>>>>>
> >>>>>>>>> Is there a guide for bringing old plugins up to date?  IF not what
> >>>>>>>> should I expect to have to change to get it working?
> >>>>>>>>>
> >>>>>>>>> Thanks
> >>>>>>>>>
> >>>>>>>>> Paul
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> View this message in context:
> >>>>>> http://forum.world.st/updating-and-compiling-the-BerkeleyDB-plugin-tp4815915p4817704.html
> >>>>>> Sent from the Squeak VM mailing list archive at Nabble.com.
> >>>>>
> >>>>>
> >>>>> BerkeleyDbPlugin.c (20K)
> >>>>> &lt;http://forum.world.st/attachment/4817710/0/BerkeleyDbPlugin.c&gt;
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> View this message in context:
> >>>> http://forum.world.st/updating-and-compiling-the-BerkeleyDB-plugin-tp4815915p4819198.html
> >>>> Sent from the Squeak VM mailing list archive at Nabble.com.