Bug#427166: jed: compiled against S-Lang 20007 but linked to 20006
John E. Davis
davis at space.mit.edu
Sun Jun 3 20:57:33 UTC 2007
On Sun, 3 Jun 2007 21:00:01 +0200, Rafael Laboissiere <rafael at debian.org> said:
>In order to circumvent this problem, we could force jed in Debian to depend
>on libslang2 (>= 2.0.7). For now, the jed package depends on libslang2 (>=
It seems to me that if jed was compiled against 2.0.7, then the depend
ought to be >= 2.0.7.
>$ cat /var/lib/dpkg/info/libslang2.shlibs
>libslang 2 libslang2 (>= 2.0.6-3)
>
>Should we ask the slang2 maintainer to bump the version number of the shlibs
>file?
You mean to >= 2.0.7?
[...]
>> As you can see, when compiled against 20007, the "bug-fixing" code
>> will not get included. However, since the user is actually using
>> 20006, the bug is present but the code to work-around it is not.
>
>This strategy is problematic due to the soname-based behavior of the linker
>as I described above. You could replace the conditional compilation above
>by some run-time test on the library version. That would be less efficient,
>though.
Also in addition to bug fixes, newer versions generally include new
intrinsics and new functionality. While I maintain backward
compatibility and make no claims about forward compatibility. For
example, slang-2.0.7 added several SLfile_*_method functions to the
API. Although in this case, jed did not make use of those functions,
I could imagine code in jed such as
#if SLANG_VERSION >= 20007
int some_function ()
{
.
SLfile_set_write_method (...);
.
}
#endif
This is something that I do not believe can be handled at run-time,
and if used with an older version would fail during link-time.
--John
More information about the Pkg-jed-devel
mailing list