[Opensim-dev] New SQLiteNG database module for using SQLite with mono 2.6 and above

Kyle Hamilton aerowolf at gmail.com
Sat Apr 24 01:09:05 UTC 2010


OSX's ld has a problem that's discussed in the PROBLEMS file of the
OpenSSL distribution, and may be the root cause of OSX's problem noted
by Diva.  I don't know if this is appropriate to put into the Mono
bugzilla; if anyone feels it is, please feel free to put it there.

-Kyle H

==beginquote==
* System libcrypto.dylib and libssl.dylib are used by system ld on MacOS X.

    NOTE: The problem described here only applies when OpenSSL isn't built
    with shared library support (i.e. without the "shared" configuration
    option).  If you build with shared library support, you will have no
    problems as long as you set up DYLD_LIBRARY_PATH properly at all times.

This is really a misfeature in ld, which seems to look for .dylib libraries
along the whole library path before it bothers looking for .a libraries.  This
means that -L switches won't matter unless OpenSSL is built with shared
library support.

The workaround may be to change the following lines in apps/Makefile and
test/Makefile:

  LIBCRYPTO=-L.. -lcrypto
  LIBSSL=-L.. -lssl

to:

  LIBCRYPTO=../libcrypto.a
  LIBSSL=../libssl.a

It's possible that something similar is needed for shared library support
as well.  That hasn't been well tested yet.

Another solution that many seem to recommend is to move the libraries
/usr/lib/libcrypto.0.9.dylib, /usr/lib/libssl.0.9.dylib to a different
directory, build and install OpenSSL and anything that depends on your
build, then move libcrypto.0.9.dylib and libssl.0.9.dylib back to their
original places.  Note that the version numbers on those two libraries
may differ on your machine.

As long as Apple doesn't fix the problem with ld, this problem building
OpenSSL will remain as is.

==endquote==


On Fri, Apr 23, 2010 at 3:03 PM, Justin Clark-Casey
<jjustincc at googlemail.com> wrote:
> Hi folks,
>
> Today I put code into master that should allow OpenSim to be used with
> SQLite again if you're running mono 2.6 or later.
>
> Unfortunately, due to compatibility issues between mono 2.4 and 2.6 I had to
> create an entirely new module, called OpenSim.Data.SQLiteNG.dll.
>
> I would be very grateful if people running >mono 2.6 and the very latest
> OpenSim master could try it out.  To use it, you'll need to change your
> database settings in two places.  In OpenSim.ini you'll need to change
>
> storage_plugin = "OpenSim.Data.SQLite.dll" to storage_plugin =
> "OpenSim.Data.SQLiteNG.dll"
>
> and in config-include/storage you'll need to change
>
> Include-Storage = "config-include/storage/SQLiteStandalone.ini" to
>  Include-Storage = "config-include/storage/SQLiteNGStandalone.ini"
>
> This information is also in OpenSim.ini.example and
> StandaloneCommon.ini.example.
>
> As ever, I recommend backing up all your *.db database files first if
> there's any valuable information in them.
>
> Unfortunately, I've heard a report from Diva that this module doesn't work
> on the Mac because the version of sqlite3.so in Mac OS X doesn't export the
> sqlite3_column_origin_name symbol.  This is probably the issue shown at
> https://bugzilla.novell.com/show_bug.cgi?id=380252#c3.  Linux and Mac don't
> actually appear to use the .so library that comes with OpenSim which does
> export that symbol.
>
> However, I'd still be interested to know if this works on other Linux
> distributions - I've only tested with my own Ubuntu.  SQLiteNG.dll also
> appears to work fine on Windows.
>
> --
> Justin Clark-Casey (justincc)
> http://justincc.org
> http://twitter.com/justincc
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev
>



More information about the Opensim-dev mailing list