Re: Deps of -dev packages with pkg-config .pc file: Policy Change?
The problem of "Requires.private", for C/C++ libraries, it (might)
contain two different things: Libraries used for static linking *and*
Cflags to preprocess the header files.
If the position of Debian is that each reference in "Requires.private"
translates into a required dependency in Debian/control for the -dev
package, then we get dependencies for static linking as well. That is OK
but a new policy, at least for me after going through the mailing list
of the last two decades. Furthermore, then I do not understand why:
a) pkg-config itself is *not* a dependency as well
b) Lintian was not upgraded in 15 years to check the content of the .pc
file and aid the maintainer in not missing any required dependency.
Simon McVittie wrote:
> converting Requires.private into Libs.private would require copying
> all the recursive dependencies of the required library
I know. You have to use something like
$ pkg-config --libs --static libcurrent
to convert "Requires.private" to "Libs.private". Furthermore, the
maintainer must double-check the header files and their includes to keep
such packages/libraries/headers in "Requires.private" = their Cflags.
Simon McVittie wrote:
> this doesn't scale well
Then, I do not understand static linking. I thought, please correct me
here, static linking is about the '.a' file in the package, the current
one. I have to suffice its links as it was built, not the links when I
build. With that understanding, "Libs.private" is even more accurate in
Debian because it does not diverge and break over time.
Russ Allbery wrote:
> The dependencies for -dev packages should reflect the requirements for
> dynamic linking.
That was my understanding, exactly.
Reply to: