I suggest that "upgrade" do not touch bin/lib style dependencies. What problem does this fix cause? You said that this will cause problem for portfiles that use bin/lib style to refer to internal dependencies, but that's their authors' fault: they should not use bin/lib style this way (and I highly suspect any portfile author will do this).
All bin/lib dependencies include a port at the end that will fulfill the dependency.
I'm aware of the syntax.
If the user doesn't have the external bin/lib, the port gets installed by macports.
How about the user has the EXTERNAL bin/lib? Then the port should not get installed, right?
In the case of upgrade, macports should indeed manage this installed port.
Yes, macports should manage INSTALLED ports. But the port was not installed at the first place, when the user has the EXTERNAL bin/lib at "install" time. Why should "upgrade" install something that was decided to be unnecessary at "install" time?
There is not syntax for specifying an external dependency without including a port that will fulfill it.
The syntax is good.
Or is there any concrete example that a portfile has to use bin/lib style for internal dependencies?
all of them?
I mean, is there any concrete example that a portfile cannot use port style and HAS to use bin/lib style? Best Regards, Xin Liu