Wireshark-dev: Re: [Wireshark-dev] .so and .la files

From: Eloy Paris <peloy@xxxxxxxxxx>
Date: Tue, 05 Oct 2010 13:57:18 -0400
Hi Brian,

On 10/05/2010 01:47 PM, Brian Oleksa wrote:

I noticed in the /usr/local/lib/wireshark/plugin/1.4.0 directory that
there is a protocol.so and a protocol.la file.

I know the .so file is needed....but is the .la file needed..??

The reason I asked this...is because if I want to give my dissector to
somebody to use on their machine..I need to know if they need just the
.so file or both (.so and .la)

Here's some in-depth information from the Debian Policy Manual (chapter 10 "Files", section 10.2 "Libraries") that may be useful:

"[...]

Packages that use libtool to create and install their shared libraries install a file containing additional metadata (ending in .la) alongside the library. For public libraries intended for use by other packages, these files normally should not be included in the Debian package, since the information they include is not necessary to link with the shared library on Debian and can add unnecessary additional dependencies to other programs or libraries.[71] If the .la file is required for that library (if, for instance, it's loaded via libltdl in a way that requires that meta-information), the dependency_libs setting in the .la file should normally be set to the empty string. If the shared library development package has historically included the .la, it must be retained in the development package (with dependency_libs emptied) until all libraries that depend on it have removed or emptied dependency_libs in their .la files to prevent linking with those other libraries using libtool from failing.

If the .la must be included, it should be included in the development (-dev) package, unless the library will be loaded by libtool's libltdl library. If it is intended for use with libltdl, the .la files must go in the run-time library package.

These requirements for handling of .la files do not apply to loadable modules or libraries not installed in directories searched by default by the dynamic linker. Packages installing loadable modules will frequently need to install the .la files alongside the modules so that they can be loaded by libltdl. dependency_libs does not need to be modified for libraries or modules that are not installed in directories searched by the dynamic linker by default and not intended for use by other packages."

Current Wireshark 1.4.x packages in the Debian experimental distribution do not ship the .la files, and I verified that I can build Network Expect, an external application that uses libwireshark services, just fine against the respective -dev packages.

So long story short, yes, the .so is the only thing someone would need, but if you find otherwise I'd love to hear about it.

Cheers,

Eloy Paris.-
netexpect.org