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