Summary: | app-editors/vim: load libpython2.7.dylib from /usr/lib instead of from $EPREFIX | ||
---|---|---|---|
Product: | Gentoo/Alt | Reporter: | yegle <cnyegle> |
Component: | Prefix Support | Assignee: | Gentoo Prefix <prefix> |
Status: | RESOLVED FIXED | ||
Severity: | normal | Keywords: | PATCH |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
yegle
2016-05-29 05:27:24 UTC
Managed to get a dtruss result: 11658/0x145b8e: 165475 40 28 stat64("libpython2.7.dylib\0", 0x7FFF5051ED48, 0x1) = -1 Err#2 11658/0x145b8e: 165490 17 12 stat64("/Users/ych/lib/libpython2.7.dylib\0", 0x7FFF5051F128, 0x1) = -1 Err#2 11658/0x145b8e: 165508 20 16 stat64("/usr/local/lib/libpython2.7.dylib\0", 0x7FFF5051F128, 0x1) = -1 Err#2 11658/0x145b8e: 165760 762 251 stat64("/usr/lib/libpython2.7.dylib\0", 0x7FFF5051F128, 0x1) = 0 0 11658/0x145b8e: 165874 847 106 open("/usr/lib/libpython2.7.dylib\0", 0x0, 0x0) = 3 0 If I link /Users/ych/lib/libpython2.7.dylib to the one in $EPREFIX, then it load the correct interpreter. I'm currently using this as a workaround. Okay, so vi_cv_dll_name_python in vim's configure eventually passed to dlopen(). Since we want to make sure it always load the libpython2.7.dylib in $EPREFIX, we should set it to an absolute path instead of just `libpython2.7.dylib`. A patch like this would work (obviously need some improvement to not hardcode ".dylib") --- app-editors/vim/vim-7.4.1821.ebuild.orig 2016-05-29 10:00:28.000000000 -0700 +++ app-editors/vim/vim-7.4.1821.ebuild 2016-05-29 10:01:15.000000000 -0700 @@ -213,6 +213,7 @@ myconf+=( --enable-python${v}interp vi_cv_path_python${v}="${PYTHON}" + vi_cv_dll_name_python${v}="${EPREFIX}/usr/lib/lib${EPYTHON}.dylib" ) } Still an issue? just verified, this works fine nowadays |