Re: How a package will determine the dependencies
On Thu, Nov 01, 2007 at 08:57:19AM -0700, varun_shrivastava wrote:
> i have a library and want to package it
> But it has a configuration option as --enable-debug=yes/no
>
> So i need to make 2 packages as
>
> 1) libinput0
> 2) libinput0-debug
>
> So now if an application uses libinput, how the $(shlibs:Depends) variable
> get substituted, during application package being built. Because dpkg will
> automatically determine and substitute the variable according to which one
> of the above two lib packages are installed, at the time of application
> package being built.
It won't be a problem, because the -dbg package (the standard suffix isn't
-debug) doesn't have full copies of the library, just the debugging symbols.
The only place where you could run into trouble would be if --enable-debug
for this package doesn't just enable -g -O0 and disable stripping, but
instead actually modifies the source to be compiled (such as adding
fprintf(stderr, "DEBUG: Got here\n") throughout the source, or something
else similarly irritating).
If that's the case, then you've got a real problem, as I can't think of a
really good solution to that. I suspect the best solution there is going to
be to have the regular library and the -dbg library *conflict* with each
other, and have the -dev package depend on only the non-dbg version, so
anyone who's building against the library is guaranteed to only have the
non-dbg version installed. That is, however, unbelievably ugly, and largely
defeats the purpose of having a -dbg version of the library, because the
people who are going to want the debugging-enabled library are the people
who are linking against the library...
I would suggest working out exactly what --enable-debug does to the library
build process, and changing anything that isn't symbol related to be
run-time rather than build-time configured (so enabling any fprintf(stderr,
"DEBUG: ") with an environment variable rather than #ifdef), and then the
problem reverts to the standard "strip symbols, stick symbols in -dbg
package" method.
- Matt
Reply to: