SoQt linking error on Mavericks (10.9.3)

Ryan Schmidt ryandesign at macports.org
Sat Jun 28 01:23:53 PDT 2014


On Jun 27, 2014, at 8:49 PM, Mark Brethen <mark.brethen at gmail.com> wrote:

> 
> On Jun 27, 2014, at 9:22 AM, Joshua Root <jmr at macports.org> wrote:
> 
>> On 2014-6-27 23:30 , Mark Brethen wrote:
>>> 
>>> On Jun 27, 2014, at 12:45 AM, Ryan Schmidt <ryandesign at macports.org> wrote:
>>> 
>>>> 
>>>> On Jun 27, 2014, at 12:38 AM, Joshua Root wrote:
>>>> 
>>>>> On 2014-6-27 14:03 , Mark Brethen wrote:
>>>>>> After installing Coin, I get the following error with SoQt:
>>>>>> 
>>>>>> --->  Found 1 broken file(s), matching files to ports
>>>>>> 
>>>>>> 
>>>>>> Error: Port SoQt is still broken after rebuilding it more than 3 times.
>>>>>> Error: Please run port -d -y rev-upgrade and use the output to report a bug.
>>>>>> 
>>>>>> Running port -d -y rev-upgrade gives:
>>>>>> 
>>>>>> Could not open Inventor.framework/Versions/C/Inventor: Error opening or reading file (referenced from /opt/local/Library/Frameworks/SoQt.framework/Versions/A/Libraries/libSoQt.20.5.0.dylib)
>>>>>> DEBUG: Marking /opt/local/Library/Frameworks/SoQt.framework/Versions/A/Libraries/libSoQt.20.5.0.dylib as broken
>>>>>> --->  Found 1 broken file(s), matching files to ports
>>>>> 
>>>>> "Inventor.framework/Versions/C/Inventor" is a relative path and so not a
>>>>> suitable install_name.
>>>> 
>>>> Correct. And that's yet another bug in the Coin port's +aqua variant that needs to be fixed.
>>>> 
>>>> SoQt's frameworks' install_names are wrong too, but I'm not sure if that's because Coin's are wrong or if it's a separately-fixable instance of the same problem.
>>>> 
>>>> 
>>>> 
>>> 
>>> The Inventor install_name originates with Coin: 'Since Coin is an Open Inventor implementation, the framework is named "Inventor", not Coin.' (Coin/Readme.MacOS)
>>> 
>>> However, I did not experience any linking errors when I installed Coin as a framework. SoQt is just a bridge between Qt and Coin. 
>>> 
>>> So, to clarify, are you saying this is just a flag that is raised because there isn't a port named 'Inventor'?
>> 
>> No, we're saying the install_name needs to be an absolute path, not a
>> relative one.
>> 
>> - Josh
> 
> For SoQt: -install_name  /opt/local/Library/Frameworks/SoQt.framework/Versions/A/Libraries/libSoQt.20.dylib 
> 
> For Coin: -install_name  /opt/local/Library/Frameworks/Inventor.framework/Versions/C/Libraries/libCoin.60.dylib

Are you saying those are the install_names that are currently being used, or those are the flags that need to be used? If the latter, you'll need to figure out how to patch the build system to insert those.


> brethen-mbp:Frameworks marbre$ ls -alR Inventor.framework
> total 32
> drwxr-xr-x   7 root  wheel  238 Jun 24 19:52 .
> drwxr-xr-x  27 root  wheel  918 Jun 27 19:41 ..
> lrwxr-xr-x   1 root  wheel   24 Jun 24 19:52 Headers -> Versions/Current/Headers
> lrwxr-xr-x   1 root  wheel   25 Jun 24 19:52 Inventor -> Versions/Current/Inventor
> lrwxr-xr-x   1 root  wheel   26 Jun 24 19:52 Libraries -> Versions/Current/Libraries
> lrwxr-xr-x   1 root  wheel   26 Jun 24 19:52 Resources -> Versions/Current/Resources
> drwxr-xr-x   4 root  wheel  136 Jun 24 19:52 Versions
> 
> Inventor.framework/Versions:
> total 8
> drwxr-xr-x  4 root  wheel  136 Jun 24 19:52 .
> drwxr-xr-x  7 root  wheel  238 Jun 24 19:52 ..
> drwxr-xr-x  6 root  wheel  204 Jun 24 19:52 C
> lrwxr-xr-x  1 root  wheel    1 Jun 24 19:52 Current -> C
> 
> Inventor.framework/Versions/C:
> total 8
> drwxr-xr-x    6 root  wheel   204 Jun 24 19:52 .
> drwxr-xr-x    4 root  wheel   136 Jun 24 19:52 ..
> drwxr-xr-x  115 root  wheel  3910 Jun 24 19:52 Headers
> lrwxr-xr-x    1 root  wheel    23 Jun 24 19:52 Inventor -> Libraries/libCoin.dylib
> drwxr-xr-x    5 root  wheel   170 Jun 24 19:52 Libraries
> drwxr-xr-x    8 root  wheel   272 Jun 24 19:52 Resources
> 
> Inventor.framework/Versions/C/Libraries:
> total 14776
> drwxr-xr-x  5 root  wheel      170 Jun 24 19:52 .
> drwxr-xr-x  6 root  wheel      204 Jun 24 19:52 ..
> -rwxr-xr-x  1 root  wheel  7555684 Jun 24 19:52 libCoin.60.1.3.dylib
> lrwxr-xr-x  1 root  wheel       20 Jun 24 19:52 libCoin.60.dylib -> libCoin.60.1.3.dylib
> lrwxr-xr-x  1 root  wheel       20 Jun 24 19:52 libCoin.dylib -> libCoin.60.1.3.dylib
> 
> Why isn't SoQt linked directly to  libCoin.60.1.3.dylib?

What do you mean? What is it linked to instead?


> I found this error in the main.log for Coin:
> 
> :debug:build Executing proc-post-org.macports.build-build-0
> :info:build --->  Patching Coin.pc: s|-arch [a-z0-9_]+||g
> :debug:build Executing reinplace: /usr/bin/sed -E {s|-arch [a-z0-9_]+||g} < /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_Coin/Coin/work/Coin-3.1.3/Coin.pc >@ file10 2>@stderr

That doesn't look like an error; rather, it looks like a successful invocation of reinplace.




More information about the macports-dev mailing list