Package: libcegui-mk2-dev
Version: 0.6.1-1
Severity: important
Hello,
The module loading system is a bit too ignorant about sonames and
shared library versioning and depends on the presence of the .so links
in the /usr/lib directory: it can't directly use the .so.number
libraries.
That is bad, as only -dev packages should provide those. Attached is
a completely untested patch that probably should be able to find the
.so.0 or .so.1... module files. Please build upon it to turn it into a
real fix.
I'm at your disposal if you need more information.
Cheers,
Vincent Fourmond
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1,
'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.26-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_GB, LC_CTYPE=en_GB (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/dash
Versions of packages libcegui-mk2-dev depends on:
pn libcegui-mk2-1 <none> (no description available)
pn libdevil-dev <none> (no description available)
ii libfreetype6-dev 2.3.9-4 FreeType 2 font engine, developmen
ii libjpeg62-dev [libjpeg 6b-14 Development files for the IJG JPEG
ii liblcms1-dev 1.18.dfsg-1 Color management library (Developm
pn liblualib50-dev <none> (no description available)
ii libmng-dev 1.0.9-1 M-N-G library (Development headers
ii libpng12-dev [libpng-d 1.2.35-1 PNG library - development
pn libtiff4-dev | libtiff <none> (no description available)
pn libxerces-c2-dev <none> (no description available)
ii zlib1g-dev [libz-dev] 1:1.2.3.3.dfsg-13 compression library - development
libcegui-mk2-dev recommends no packages.
Versions of packages libcegui-mk2-dev suggests:
pn libcegui-mk2-doc <none> (no description available)
--- CEGUIDynamicModule.cpp 2008-05-20 13:03:43.000000000 +0200
+++ CEGUIDynamicModule.cpp.new 2009-04-20 23:18:33.000000000 +0200
@@ -89,6 +89,16 @@
d_moduleName.insert(0, "lib");
d_handle = DYNLIB_LOAD(d_moduleName.c_str());
}
+ // We try looking for ".soversion" suffix
+ if(!d_handle) {
+ char buf[10];
+ for(int i = 0; i < 10; i++) { // The 10 is arbitrary and must be changed
+ snprintf(buf, sizeof(buf),".%d", i);
+ d_handle = DYNLIB_LOAD((d_moduleName + buf).c_str());
+ if(d_handle)
+ break;
+ }
+ }
}
#endif