[Pkg-mono-devel] RFH: f-spot dllmap error

Tomasz Rybak bogomips@post.pl
Tue, 07 Sep 2004 16:03:53 +0200


W li¶cie z wto, 07-09-2004, godz. 11:21, Ondřej Surý pisze: 
> On Tue, 2004-09-07 at 10:19 +0200, Tomasz Rybak wrote:
> > So it works for me, without playing with *.config.
> 
> Now uninstall libsqlite0-dev and try to run it again and you have that
> error...  yada...
> 
> You cannot mix behaviour on development system with production.  To test
> package you have to keep only dependant packages on the system, ie. best
> way how to test it is to do clean chrooted system and test it there.
> 
> O.

tomus@barad-dur:~$ dpkg -L libsqlite0
/.
/usr
/usr/lib
/usr/lib/libsqlite.so.0.8.6
/usr/share
/usr/share/doc
/usr/share/doc/libsqlite0
/usr/share/doc/libsqlite0/README.Debian
/usr/share/doc/libsqlite0/README
/usr/share/doc/libsqlite0/copyright
/usr/share/doc/libsqlite0/changelog.Debian.gz
/usr/lib/libsqlite.so.0

tomus@barad-dur:~$ dpkg -L libsqlite0-dev
/.
/usr
/usr/include
/usr/include/sqlite.h
/usr/lib
/usr/lib/libsqlite.a
/usr/lib/libsqlite.la
/usr/lib/pkgconfig
/usr/lib/pkgconfig/sqlite.pc
/usr/share
/usr/share/doc
/usr/share/doc/libsqlite0-dev
/usr/share/doc/libsqlite0-dev/README
/usr/share/doc/libsqlite0-dev/copyright
/usr/share/doc/libsqlite0-dev/changelog.Debian.gz
/usr/lib/libsqlite.so

tomus@barad-dur:~$


/usr/lib/libsqlite.so is in libsqlite0-dev, and 
in libsqlite0 is /usr/lib/libsqlite.so.
This behaviour of f-spot is caused by missing 
libsqlite.so:

tomus@barad-dur:/tmp/F/bin$ ./f-spot

Unhandled Exception: System.DllNotFoundException: sqlite
in <0x00053> (wrapper managed-to-native)
Mono.Data.SqliteClient.SqliteConnection:sqlite_open (string,int,string&)
in [0x00031] (at
/home/inet/debian/dev/build-area/mcs-1.0.1/class/Mono.Data.SqliteClient/Mono.Data.SqliteClient/SqliteConnection.cs:157) Mono.Data.SqliteClient.SqliteConnection:Open ()
in [0x00054] (at /tmp/f-spot-0.0.2/src/Db.cs:142) Db:.ctor (string,bool)
in [0x00061] (at /tmp/f-spot-0.0.2/src/main.cs:26) Driver:Main
(string[])

barad-dur:/usr/lib# ln -s libsqlite.so.0.8.6 libsqlite.so
barad-dur:/usr/lib#

tomus@barad-dur:/tmp/F/bin$ ./f-spot
Query Start 15:55:08
Query Mid 2004-09-07 15:55:08
Query End 15:55:08
Start 2004-09-07 15:55:08
End 2004-09-07 15:55:08
Query Start 15:55:08
Query Mid 2004-09-07 15:55:08
Query End 15:55:08
Start 2004-09-07 15:55:08
End 2004-09-07 15:55:08
min 0 max 11
2004-01-01 00:00:00 2005-01-01 00:00:00
Query Start 15:55:08
Query Mid 2004-09-07 15:55:08
Query End 15:55:08
Start 2004-09-07 15:55:08
End 2004-09-07 15:55:08
min 0 max 11
2004-01-01 00:00:00 2005-01-01 00:00:00
Query Start 15:55:08
Query Mid 2004-09-07 15:55:08
Query End 15:55:08
Start 2004-09-07 15:55:08
End 2004-09-07 15:55:08
tomus@barad-dur:/tmp/F/bin$

So I think it's because Mono looks 
lib*.so for *.dll, and in non-dev packages 
is only lib*.so.N, and lib*.so is in *-dev package.

However I'm not sure if it's true - I haven't found 
such code in mono source code.

-- 
Tomasz Rybak <bogomips@post.pl>