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.