Fink doesn’t put things in /usr/local to avoid having files overwritten by 
third-party installs.  

That wouldn’t help here, anyway, because the issue is that SIP prevents the use 
of DYLD_LIBRARY_PATH at all.  Even to point to even an *arbitrary* unprotected 
library directory like 
"/sw/src/fink.build/mypackage-1.2.3-1/mypackage-1.2.3/src/.libs” as might be 
expected for a test suite to allow linking to a library in a build directory 
rather than in its final installed location.  

You’d experience the same thing even if building a package by hand to install 
in /usr/local, since the test suite is run in the build directory.

—akh

> On Dec 10, 2015, at 12:59, Jacques Bloch <jacques.bl...@ur.de> wrote:
> 
> why can we not put libraries in /usr/local/lib which is not locked by SIP?
> 
> J.
> 
> ---
> Dr. Jacques C.R. Bloch
> Institute for Theoretical Physics
> University of Regensburg
> 93040 Regensburg, Germany
> tel: +49 941 943-2018
> fax: +49 941 943-3887
> email: jacques.bl...@ur.de <mailto:jacques.bl...@ur.de>
> web: http://homepages.uni-regensburg.de/~blj05290 
> <http://homepages.uni-regensburg.de/~blj05290>
> 
> 
>> On 10 Dec 2015, at 18:15, Alexander Hansen <alexanderk.han...@gmail.com 
>> <mailto:alexanderk.han...@gmail.com>> wrote:
>> 
>> 
>> 
>>> On Dec 10, 2015, at 08:51, Daniel Johnson <dan...@daniel-johnson.org 
>>> <mailto:dan...@daniel-johnson.org>> wrote:
>>> 
>>>> 
>>>> On Dec 10, 2015, at 6:52 AM, Hanspeter Niederstrasser 
>>>> <f...@snaggledworks.com <mailto:f...@snaggledworks.com>> wrote:
>>>> 
>>>> [370/396/3] test_platform
>>>> dyld: Library not loaded: /sw/lib/python3.5/config-3.5m/libpython3.5m.dylib
>>>> Referenced from: /sw/build.build/python35-3.5.0-1/Python-3.5.0/python.exe
>>>> Reason: image not found
>>>> test test_platform failed -- Traceback (most recent call last):
>>>> File 
>>>> "/sw/build.build/python35-3.5.0-1/Python-3.5.0/Lib/test/test_platform.py", 
>>>> line 287, in test_popen
>>>>   self.assertEqual(hello, "Hello")
>>>> AssertionError: '' != 'Hello'
>>>> + Hello
>>>> ...
>>>> [339/396/2] test_popen
>>>> dyld: Library not loaded: /sw/lib/python3.5/config-3.5m/libpython3.5m.dylib
>>>> Referenced from: /sw/build.build/python35-3.5.0-1/Python-3.5.0/python.exe
>>>> Reason: image not found
>>>> test test_popen failed -- Traceback (most recent call last):
>>>> File 
>>>> "/sw/build.build/python35-3.5.0-1/Python-3.5.0/Lib/test/test_popen.py", 
>>>> line 33, in test_popen
>>>>   ["foo", "bar"]
>>>> File 
>>>> "/sw/build.build/python35-3.5.0-1/Python-3.5.0/Lib/test/test_popen.py", 
>>>> line 26, in _do_test_commandline
>>>>   got = eval(data)[1:] # strip off argv[0]
>>>> File "<string>", line 0
>>>> 
>>>>   ^
>>>> SyntaxError: unexpected EOF while parsing
>>>> ...
>>>> [183/396/1] test_subprocess
>>>> dyld: Library not loaded: /sw/lib/python3.5/config-3.5m/libpython3.5m.dylib
>>>> Referenced from: /sw/build.build/python35-3.5.0-1/Python-3.5.0/python.exe
>>>> Reason: image not found
>>>> dyld: Library not loaded: /sw/lib/python3.5/config-3.5m/libpython3.5m.dylib
>>>> Referenced from: /sw/build.build/python35-3.5.0-1/Python-3.5.0/python.exe
>>>> Reason: image not found
>>>> dyld: Library not loaded: /sw/lib/python3.5/config-3.5m/libpython3.5m.dylib
>>>> Referenced from: /sw/build.build/python35-3.5.0-1/Python-3.5.0/python.exe
>>>> Reason: image not found
>>>> ...
>>>> FAILED (failures=1, skipped=1)
>>>> test test_platform failed
>>>> 3 tests failed again:
>>>>   test_platform test_popen test_subprocess
>>>> 
>>>> If I install python35 w/out tests and then retest, they all pass.  So 
>>>> 10.11's 'protection' seems to strike again.
>>>> 
>>>> Hanspeter
>>> 
>>> Yep, that’s exactly what’s going on. Python uses DYLD_LIBRARY_PATH to find 
>>> the just-built library and that doesn’t work anymore. In theory, I could 
>>> use install_name_tool to change the library path before tests and reset it 
>>> after, but that would require changing a LOT of files since all the C-based 
>>> modules point to libpython. Maybe just changing python.exe would suffice 
>>> but I’ll need to play with it a while. It isn’t going to be fixed right 
>>> away but I will work on it. Fortunately this only effects tests.
>>> 
>>> Daniel
>>> 
>> 
>> That seems pretty nasty, yeah.  I’m assuming that DYLD_FALLBACK_LIBRARY_PATH 
>> won’t do what you need, since it wouldn’t avoid a library from the 
>> previously installed version?
>> 
>> Maybe we need a new InfoTest field like “SipTestUnderSIP: true” which will 
>> skip the test suite for build bots and display a message for power users like
>> 
>> WARNING:  Skipping test suite because it is not compatible with SIP (thanks 
>> for that, Apple).  If you want to run the test suite, you will need to 
>> disable SIP by using <command invocation to disable it>.
>> 
>> -- 
>> Alexander Hansen, Ph.D.
>> Fink User Liaison
>> 

------------------------------------------------------------------------------
_______________________________________________
Fink-users mailing list
Fink-users@lists.sourceforge.net
List archive:
http://news.gmane.org/gmane.os.macosx.fink.user
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-users

Reply via email to