On Mar 5, 2014, at 21:12, Jean-François Caron wrote:

> On Mar 5, 2014, at 18:38 , Ryan Schmidt wrote:
> 
>> On Mar 5, 2014, at 20:33, Jean-François Caron wrote:
>> 
>>> On Mar 5, 2014, at 18:19 , Ryan Schmidt wrote:
>>> 
>>>> otool -L /opt/local/lib/lib{boost_regex-mt,source-highlight.4}.dylib
>>> 
>>> Here is the output of those commands:
>>> 
>> As you can see from the “otool -L” output, libsource-highlight.4.dylib links 
>> with libstdc++, not libc++ as it should for Mavericks or later. As you can 
>> see from the “port installed” output, the reason for this is that the port 
>> was built on Lion (darwin 11), not Mavericks (darwin 13). This suggests you 
>> did not follow the instructions in the Migration page for uninstalling and 
>> reinstalling all ports, which is necessary after upgrading the OS X version, 
>> so you should do that now.
>> 
>> https://trac.macports.org/wiki/Migration
> 
> You caught me.  I did look at those instructions and saw that they were not 
> very good, and “port upgrade outdated”  did re-install a large number of 
> ports (though I didn’t check carefully that /all/ were reinstalled) so I 
> assumed that those instructions were old and disused.  After all, wikis are 
> where documentation goes to die and all that…

You’re not wrong about that. We have many outdated wiki pages. The Migration 
page is current, however.


> Why do the Migration instructions ask the user to manually sift through their 
> entire list of ports, including lib dependencies?  Couldn’t it tell them just 
> to extract the list of requested ports with “port echo requested”, and 
> reinstall just the requested ports?  The current instructions will mess up 
> users’ list of requested ports because it’s sometimes difficult to figure out 
> if a port was installed /just because/ it’s a dependency, or because it was 
> also wanted on its own.  
> 
> While I am guilty of assuming that I was smart enough to ignore instructions, 
> instructions this tedious deserve to be ignored.
> 
> If there was a way to query the list of ports “as requested” i.e. with only 
> the user-requested variants (not including default variants), then this 
> migration would be trivial, and in the case of errors, it would likely be a 
> short (or at least shorter) list of ports to deal with:
> 
> port echo as_requested > myports.txt
> ..uninstall all ports…
> sudo port install `cat myports.txt`
> 
> 
> I know I sound like a jerk with these comments, but c’mon..manually sorting 
> through a list of possibly hundreds of ports to see which are dependencies?

I understand your frustration, and agree the instructions are tedious. 
Rebuilding all ports on a new major OS version is tedious but necessary to 
prevent problems such as the one you encountered. The instructions for how to 
rebuild all ports could perhaps yet be streamlined.

Recording and restoring only requested ports sounds perfectly reasonable. I’m 
not sure why the instructions don’t say to do that. Please give it a try if you 
can! If it fails, you can always start over with the full reinstall list.

I’d first examine the output of “port installed requested” and “port installed 
unrequested” and make sure the lists reflect your reality; you can use “sudo 
port setrequested” and “sudo port unsetrequested” to fix incorrect entries.

You can also use “port -v installed | grep -v 'darwin 13'” to find only those 
ports that were not built on Mavericks; since you already did reinstall many 
ports on Mavericks, this may reduce your list of ports to reinstall 
considerably.

In fact, ports that weren’t built on the current OS version should show up as 
outdated. For example, “port outdated” should currently show that 
source-highlight is outdated, and “sudo port upgrade source-highlight” should 
rebuild it, thus correcting this specific problem you wrote about.

_______________________________________________
macports-users mailing list
macports-users@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-users

Reply via email to