On 27.01.19 19:42, Ryan Schmidt wrote: > > > On Jan 27, 2019, at 12:26, Rainer Müller wrote: > >> The main problem here would be that information about build dependencies >> is not stored in the registry. Only if we this information was kept on >> installation as a first step, we could then respect it during reclaim. > > Hmm, why is that a prerequisite? "port_cutleaves" manages to implement > approximately this feature without that information in the registry. I assume > it's getting the build dependencies from the current portfile. Can't "port > reclaim" do the same?
I have not checked in detail, but I think port_cutleaves gets everything from the ports tree. > And isn't that actually what we want? Who cares if an outdated installed port had a particular build dependency. What we care about is whether the current version has that build dependency. The goal is to prevent the uninstallation of build dependencies that are likely to be needed in the future; we don't care about build dependencies that were once required in the past. Mixing the information from the registry with the information from the ports tree seems like a bad idea. Once you start with that, it just gets more and more complicated. You could still end up in a situation where you would keep the build dependencies based on the ports tree, but still uninstall a possibly new library dependency based on the registry information, because it was not in use by any other installed port. I doubt this will ever become a perfect solution with MacPorts being this hybrid between source and binary installation methods. Rainer
