SoQt linking error on Mavericks (10.9.3)

Mark Brethen mark.brethen at gmail.com
Fri Jun 27 18:49:29 PDT 2014


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

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?

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


Mark






More information about the macports-dev mailing list