On 04/03/15 11:29, René J.V. Bertin wrote:
On Wednesday March 04 2015 10:51:06 Chris Jones wrote:

Personally, I think what it does is *always* correct.

Aren't you relying on the assumption that all ports register all the files they 
install?

yes. If they don't that should be regarded as a bug.

What happens to files installed because of some port C that are used by port A while it builds, how are you going to block them if port C is not on the dependency list?

If port C is not listed as a dependency of port A, and port A then uses files from port C, then that is a bug in port A.

There were discussions not that long ago that showed that there are classes of 
files that get installed by ports but not registered for a reason.

So no, I don't personally think there should be a way for ports to opt
in or out.

So to you it's OK if a port fails to build because it pulls in things from an 
earlier, installed version of itself that were not blocked because the feature 
was not enabled, and do so without as much as an explanation?

Thats not what I said.

All I am saying is a port build should be *completely* reproducible and predictable. What happens during the build of a port should not depend on either anything from an older currently installed version of that same port, or from any ports which the port in question finds at build time and uses, but has not declared a dependency on.

trace mode, which blocks access to files a port should not be using (because they have not declared a dependency) is a great tool at providing this reproducibility. I do not see any use case for an individual port being able to by itself opt in or out of this feature, it should be completely up to the user running port to decide, either via a command line switch, or via macports.conf. I would not be in favour of ports being able to forcibly opt out, as the only reason for doing so in my opinion is because they have bugs that should instead be fixed.

Chris

I'd be in favour of a more pragmatic approach, and allow opt-in (require it) 
when the feature is disabled globally (in macports.conf, possibly with a 
warning), which turns to an error when the feature was disabled on the 
commandline. That's not unlike how dependencies are handled: nothing is done 
when they're already installed, they're installed when needed unless the user 
takes action to prevent that - in which case an error is raised at some point.

R.

_______________________________________________
macports-dev mailing list
[email protected]
https://lists.macosforge.org/mailman/listinfo/macports-dev


_______________________________________________
macports-dev mailing list
[email protected]
https://lists.macosforge.org/mailman/listinfo/macports-dev

Reply via email to