On 11.07.2016 10:38, Baptiste Jonglez wrote:
On Mon, Jul 11, 2016 at 10:18:32AM +0200, Lukas Böger wrote:
Dear AUR list,
simple question about dependencies in PKGBUILDs:
Package A provides some header files and build scripts. Package B provides additional headers, and their usage only work out if A's headers are in place. Additionaly, package B can only be compiled using A's build scripts.
1) Is it correct to have package A in B's depends AND makedepends arrays?
In general, no. If you need a dependency both at compile time and at runtime, you should put it in depends only.
2) Am I supposed to ignore namcap's warning 'Dependency included and not neede' because it doesn't take header dependencies into account?
It seems similar to this situation: https://bugs.archlinux.org/task/48277
Basically, your package B looks like a library. B should only makedepends on A, and any package depending on B should also makedepends on A.
The rationale is that header files and build scripts are not needed to run a program, so they should not be installed as dependencies. They should only be installed as makedepends, for every package that needs them (even indirectly).
One such example is boost:
https://www.archlinux.org/packages/extra/x86_64/boost/
Baptiste
Ok, thanks for the quick reply, that makes sense! And you're right, these packages are libraries. Next question: should compiler requirements be part of a PKGBUILD? In this case, when compiling with gcc, version >=4.9 is necessary. Adding it to makedepends seems like a reasonable check - on the other hand, someone who prefers clang won't have any interest in dealing with gcc versions enforced by the PKGBUILD. Lukas