On Feb 16, 2013, at 04:16, Rainer Müller wrote:
> On 2013-02-16 05:51, Ryan Schmidt wrote:
>> It would be great if MacPorts would automatically detect dependency problems 
>> when installing ports.
>> 
>> 
>> For example, if a port links with a library but does not declare a 
>> dependency on it, I'd love to see a warning:
>> 
>> Warning: /opt/local/bin/foo links with /opt/local/lib/libbar.dylib but port 
>> foo does not declare a library dependency on port bar
>> 
>> Conversely, how about a warning when a library dependency is declared but 
>> that port is not actually linked with:
>> 
>> Warning: none of the files installed by port foo link with any of the 
>> libraries installed by library dependency bar
>> 
>> This is more problematic to implement because some ports open libraries via 
>> dlopen (i.e. wine), and things like python modules don't link with the other 
>> modules they depend on either. But on the other hand it's also important to 
>> have this check, because I really want to be able to easily find all the 
>> ports to which we've added unnecessary library dependencies over the years 
>> due to the glibtool overlinking problem that we've now corrected in base.
> 
> This is exactly what the GSoC project in 2011 for post-destroot checks
> by Felipe Tanus (fotanus@) under supervision by Perry Lee (perry@) was
> about. More can be found in the original proposal and a mail from Felipe
> [1,2]. The code is in our repository in a branch in the path
> branches/gsoc11-post-destroot [3].

Cool. Did/does it work? Any reason it wasn't merged into trunk, other than lack 
of time and testing?


> There is also a set of tests in an additional ports tree [4], that is
> supposed to test mtree violations, mislinking and wrong/missing
> architectures.
> 
> Back in October, I did a merge from trunk into that branch. Remaining
> work that needs to be done for this would be another rebase onto the
> current base from trunk and at best, integrate the test ports into our
> test suite in the base code.
> 
> Furthermore, the use of pextlib1.0/macho.c should be replaced by using
> machista1.0 to avoid code duplication. Also the name "whitelist.conf"
> which contains libaries that are allowed to be linked without declaring
> a dependency should be renamed to something more descriptive. The list
> of system libraries needs ton be updated for Mountain Lion as well (due
> to the introduction of /usr/lib/system/).


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

Reply via email to