Running lintian on my package I get this message: ----------- W: felix: non-dev-pkg-with-shlib-symlink usr/lib/libflx_dynamic.so.1.1.0 usr/lib/libflx_dynamic.so N: N: Although this package is not a `-dev' package, it installs a N: `libsomething.so' symbolic link referencing the corresponding shared N: library. When the link doesn't include the version number, it is used N: by the linker when other programs are built against this shared N: library. N: N: Shared libraries are supposed to place such symbolic links in their N: respective `-dev' packages, so it is a bug to include it with the main N: library package. N: N: However, if this is a small package which includes the runtime and the N: development libraries, this is not a bug. In the latter case, please N: contact [EMAIL PROTECTED] about this so that this exception N: would be recognized in future versions of Lintian. N: N: Refer to Policy Manual, section 8.4 for details. N: ----------------
and am duly reporting the issue here as requested. Here is my understanding: 'Normally' a shared library is provided to allow one or more executables to run. The library is a separate package so several binary executables can share it. In order to compile code against the library, you'd need appropriate header files, and a link of the kind lintian is complaining about above. This would go in a separate -dev package, since people writing code using the library need that, whereas uses of their programs do not. However my package, Felix, is language translator, and it 'defines' programs in terms of source code, as does, say, Python or Perl. With Python, the translation to bytecode, followed by execution, is intentionally transparent: the client believes they're executing source code. With Felix, the same kind of transparent operation is supported, however behind the scenes something different happens: the source is translated to C++, and then g++ is used to compile it, then the resulting binary is executed. Because of this the 'run time library .so link' is required by the end user, not just 'developers'. In addition, the library contains implementation details and has no documented public C/C++ interface, so it does not belong in a separate package. This applies to C++ header files contained in the package too -- they're not for 'developers' but implementation details of the system end users require. I have no idea of a good way to tell lintian not to make naive assumptions about these kinds of things: those assumptions are probably generally right in the C world, not many people are developing scripting languages that generate binaries, indeed this is one of the novel features of Felix "works like a scripting languages: EASY!" "runs like a compiled one: FAST!!" BTW: this is NOT a 'small' package: 1273439 2005-06-09 19:52 felix_1.1.0.orig.tar.gz [about 4.7Mb source, 166K LOC] [I don't normally read this list so please CC any replies to me] -- John Skaller, skaller at users.sf.net PO Box 401 Glebe, NSW 2037, Australia Ph:61-2-96600850 Download Felix here: http://felix.sf.net -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

