[macports-mgr] Dependencies and variants

Paul Guyot pguyot at kallisys.net
Thu Nov 6 02:27:54 PST 2008


Le 6 nov. 08 à 10:44, Ryan Schmidt a écrit :

> I would still like this discussion to take place on macports-dev,  
> not macports-mgr.

True.

A quick summary for macports-dev: the discussion is about r41526 and  
r41527, i.e. allowing a new syntax for dependencies in the next  
release without actually implementing them. The idea is to allow work  
and testing for bug #126 (dependencies should take variants into  
consideration) on trunk, with ports in trunk using the new syntax but  
remaining compatible with released base/. Experience with livecheck  
showed that if we wait for the implementation to support the syntax,  
we will need several releases to get it right and get the new syntax  
adopted by maintainers. I asked portmgr to consider it for the next  
release, and portmgr asked what I had in mind for the syntax, since  
there is just no implementation or guideline in r41526 and r41527. To  
what I replied that I prefer not to force any syntax for many syntaxes  
came up in the past for #126, and my belief is that it's eventually up  
to whoever implements that. Therefore, the changes allow for :

depends_*	port:[whatever:]port_name

where we currently have

depends_*	port:port_name

as this is coherent with the current depends_* lines.

It also allow for a new syntax

depends		whatever

if whoever works on #126 wants to get rid of the old depends_* syntax  
for more freedom. While I would just be happy with whatever comes up  
that fixes #126, I argued that depends_* were somewhat ugly and  
confusing.

> I don't see why depends_* is ugly or should be abandoned.

:)

> depends_build is for things which are needed to build the software.  
> Note: this is not only the build phase, but (in MacPorts trunk) any  
> phase involved in building the software, including fetch, extract,  
> and configure. (I think I'm remembering that right.)

AFAIK, no dependency is processed for extract and fetch. In other  
words, all ports that use fetching using git on 10.5 and fetching  
using svn and git on 10.4 just don't fetch with trace mode enabled.

> Things declared as depends_build can be uninstalled after the port  
> is installed with no ill effects. The others cannot. Putting all  
> dependencies into a single "depends" negates this possibility.

Depends how the depends syntax is designed. It could be:

depends {
	build { awk }
	lib { glib2 }
	run { evince }
}

Paul



More information about the macports-dev mailing list