depends_lib, depends_build, depends_run, oh my

Ryan Schmidt ryandesign at macports.org
Sun Aug 5 01:41:06 PDT 2007


Have various dependency questions here. I couldn't find info on this  
in the new guide.

Why do we have depends_lib, depends_build and depends_run? Why not  
just a single "depends"? Why does it matter which phase requires the  
other software? Isn't it enough to know that the other software is  
required at some point, and so MacPorts should install that other  
software first?

What are these three keywords supposed to denote? I thought  
"depends_lib" was for libraries a program links with (e.g. gettext),  
"depends_build" was for things only the build system needs (e.g.  
pkgconfig) and "depends_run" was for binaries that need to be present  
at runtime (e.g. I have no idea).

To this end, I tried adding "depends_build pkgconfig" to a port that  
needs it (graphviz), and then I forcibly deactivated the installed  
pkgconfig to make sure that worked. Well, it didn't. "sudo port  
install graphviz" proceeded to build just graphviz, without  
attempting to activate the required pkgconfig first. If, on the other  
hand, I completely uninstalled pkgconfig first, it then correctly  
installed pkgconfig when I tried to install graphviz. Why does a  
deactivated port seem to satisfy the dependency? That should not be.

Hm... could it be that the point is that it should be fine to  
uninstall a build dependency later, but uninstalling a library or  
runtime dependency would cause installed ports to fail? Is that the  
reasoning?

MacPorts trunk (past 1.5.0), Xcode 2.4.1, Intel Core 2 Duo




More information about the macports-dev mailing list