* [python] set rpath in setup.cfg
@ 2011-10-12 14:55 dtk
2011-10-12 15:30 ` Ali Polatel
0 siblings, 1 reply; 8+ messages in thread
From: dtk @ 2011-10-12 14:55 UTC (permalink / raw)
To: notmuch
Hey guys,
I installed notmuch locally (~/.local) and now the python bindings fail to
find the .so.
Anyone happens to know how to set the rpath in the setup.cfg? Putting it
in the [build] section doesn't work:
~~~snip~~~
$ python setup.py install --prefix=$STOW/notmuch_python
running install
error: error in setup.cfg: command 'build' has no such option 'rpath'
$
~~~snip~~~
Putting it in [build_ext] works but neither that nor building with
~~~snip~~~
$ python setup.py build_ext --rpath=/home/dtk/.local/lib
running build_ext
$ python setup.py install --prefix=$STOW/notmuch_python/
running install
running build
running build_py
copying notmuch/database.py -> build/lib.linux-x86_64-2.7/notmuch
copying notmuch/thread.py -> build/lib.linux-x86_64-2.7/notmuch
copying notmuch/tag.py -> build/lib.linux-x86_64-2.7/notmuch
copying notmuch/globals.py -> build/lib.linux-x86_64-2.7/notmuch
copying notmuch/version.py -> build/lib.linux-x86_64-2.7/notmuch
copying notmuch/message.py -> build/lib.linux-x86_64-2.7/notmuch
copying notmuch/filename.py -> build/lib.linux-x86_64-2.7/notmuch
copying notmuch/__init__.py -> build/lib.linux-x86_64-2.7/notmuch
running install_lib
running install_egg_info
Removing
/home/dtk/.local/stow/notmuch_python//lib/python2.7/site-packages/notmuch-0.9_rc2-py2.7.egg-info
Writing
/home/dtk/.local/stow/notmuch_python//lib/python2.7/site-packages/notmuch-0.9_rc2-py2.7.egg-info
$
~~~snip~~~
seems to have any effect.
Am I missing out on something? Would be great if someone happened to know
a solution.
/me dislikes LD_LIBRARY_PATH :/
tx in advance
dtk
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [python] set rpath in setup.cfg
2011-10-12 14:55 [python] set rpath in setup.cfg dtk
@ 2011-10-12 15:30 ` Ali Polatel
2011-10-13 6:12 ` dtk
0 siblings, 1 reply; 8+ messages in thread
From: Ali Polatel @ 2011-10-12 15:30 UTC (permalink / raw)
To: dtk; +Cc: notmuch
[-- Attachment #1: Type: text/plain, Size: 1726 bytes --]
On Wed, Oct 12, 2011 at 04:55:30PM +0200, dtk wrote:
>
>Hey guys,
>
>I installed notmuch locally (~/.local) and now the python bindings fail to
>find the .so.
>
>Anyone happens to know how to set the rpath in the setup.cfg? Putting it
>in the [build] section doesn't work:
>
>~~~snip~~~
>$ python setup.py install --prefix=$STOW/notmuch_python
>running install
>error: error in setup.cfg: command 'build' has no such option 'rpath'
>$
>~~~snip~~~
>
>Putting it in [build_ext] works but neither that nor building with
>
>~~~snip~~~
>$ python setup.py build_ext --rpath=/home/dtk/.local/lib
>running build_ext
>$ python setup.py install --prefix=$STOW/notmuch_python/
>running install
>running build
>running build_py
>copying notmuch/database.py -> build/lib.linux-x86_64-2.7/notmuch
>copying notmuch/thread.py -> build/lib.linux-x86_64-2.7/notmuch
>copying notmuch/tag.py -> build/lib.linux-x86_64-2.7/notmuch
>copying notmuch/globals.py -> build/lib.linux-x86_64-2.7/notmuch
>copying notmuch/version.py -> build/lib.linux-x86_64-2.7/notmuch
>copying notmuch/message.py -> build/lib.linux-x86_64-2.7/notmuch
>copying notmuch/filename.py -> build/lib.linux-x86_64-2.7/notmuch
>copying notmuch/__init__.py -> build/lib.linux-x86_64-2.7/notmuch
>running install_lib
>running install_egg_info
>Removing
>/home/dtk/.local/stow/notmuch_python//lib/python2.7/site-packages/notmuch-0.9_rc2-py2.7.egg-info
>Writing
>/home/dtk/.local/stow/notmuch_python//lib/python2.7/site-packages/notmuch-0.9_rc2-py2.7.egg-info
>$
>~~~snip~~~
>
>seems to have any effect.
>
>Am I missing out on something? Would be great if someone happened to know
>a solution.
>/me dislikes LD_LIBRARY_PATH :/
>
May I ask why you dislike LD_LIBRARY_PATH?
-alip
[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [python] set rpath in setup.cfg
2011-10-12 15:30 ` Ali Polatel
@ 2011-10-13 6:12 ` dtk
2011-10-13 6:34 ` Jameson Graef Rollins
0 siblings, 1 reply; 8+ messages in thread
From: dtk @ 2011-10-13 6:12 UTC (permalink / raw)
To: Ali Polatel; +Cc: notmuch
Hey alip,
On Wed, 12 Oct 2011 18:30:51 +0300, Ali Polatel <polatel@gmail.com> wrote:
> On Wed, Oct 12, 2011 at 04:55:30PM +0200, dtk wrote:
>>/me dislikes LD_LIBRARY_PATH :/
>
> May I ask why you dislike LD_LIBRARY_PATH?
in my experience, it tends to cause awkward side effects that are hard to
debug, the main problem being that it overrides all default paths and is
hard to target at a single problematic application.
google may tell you more[0].
Yours
dtk
-----
[0]here is what it told me:
* http://linuxmafia.com/faq/Admin/ld-lib-path.html
* http://blogs.oracle.com/ali/entry/avoiding_ld_library_path_the
* http://blogs.oracle.com/rie/date/20040710
* http://prefetch.net/articles/linkers.badldlibrary.html
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [python] set rpath in setup.cfg
2011-10-13 6:12 ` dtk
@ 2011-10-13 6:34 ` Jameson Graef Rollins
2011-10-13 7:09 ` Tomi Ollila
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Jameson Graef Rollins @ 2011-10-13 6:34 UTC (permalink / raw)
To: dtk, Ali Polatel; +Cc: notmuch
[-- Attachment #1: Type: text/plain, Size: 475 bytes --]
On Thu, 13 Oct 2011 08:12:03 +0200, dtk <dtk@gmx.de> wrote:
> in my experience, it tends to cause awkward side effects that are hard to
> debug, the main problem being that it overrides all default paths and is
> hard to target at a single problematic application.
I think it's fairly straightforward to prepend a library path to the ld
library path without overriding all defaults with something like this
(for bash):
LD_LIBRARY_PATH=/new/ld/path:$LD_LIBRARY_PATH
jamie.
[-- Attachment #2: Type: application/pgp-signature, Size: 835 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [python] set rpath in setup.cfg
2011-10-13 6:34 ` Jameson Graef Rollins
@ 2011-10-13 7:09 ` Tomi Ollila
2011-10-13 7:59 ` dtk
2011-10-13 7:42 ` dtk
2011-10-16 20:04 ` Thomas Schwinge
2 siblings, 1 reply; 8+ messages in thread
From: Tomi Ollila @ 2011-10-13 7:09 UTC (permalink / raw)
To: Jameson Graef Rollins; +Cc: notmuch
On Thu 13 Oct 2011 09:34, Jameson Graef Rollins <jrollins@finestructure.net> writes:
> On Thu, 13 Oct 2011 08:12:03 +0200, dtk <dtk@gmx.de> wrote:
>> in my experience, it tends to cause awkward side effects that are hard to
>> debug, the main problem being that it overrides all default paths and is
>> hard to target at a single problematic application.
>
> I think it's fairly straightforward to prepend a library path to the ld
> library path without overriding all defaults with something like this
> (for bash):
>
> LD_LIBRARY_PATH=/new/ld/path:$LD_LIBRARY_PATH
I also have local notmuch installations (3 of them); notmuch command
(among others) are wrapped in a shell script which setups environment
variables like:
PATH=/path/to/iroot/bin:$PATH
LD_LIBRARY_PATH=/path/to/iroot/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
export PATH LD_LIBRARY_PATH
and then
exec /path/to/iroot/bin/notmuch "$@"
I don't recall a situation when this have failed.
> jamie.
Tomi
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [python] set rpath in setup.cfg
2011-10-13 6:34 ` Jameson Graef Rollins
2011-10-13 7:09 ` Tomi Ollila
@ 2011-10-13 7:42 ` dtk
2011-10-16 20:04 ` Thomas Schwinge
2 siblings, 0 replies; 8+ messages in thread
From: dtk @ 2011-10-13 7:42 UTC (permalink / raw)
To: Jameson Graef Rollins; +Cc: notmuch
On Wed, 12 Oct 2011 23:34:28 -0700, Jameson Graef Rollins
<jrollins@finestructure.net> wrote:
> On Thu, 13 Oct 2011 08:12:03 +0200, dtk <dtk@gmx.de> wrote:
>> in my experience, it tends to cause awkward side effects that are hard
to
>> debug, the main problem being that it overrides all default paths and
is
>> hard to target at a single problematic application.
>
> I think it's fairly straightforward to prepend a library path to the ld
> library path without overriding all defaults with something like this
> (for bash):
>
> LD_LIBRARY_PATH=/new/ld/path:$LD_LIBRARY_PATH
In fact the problem is not not to override default LD_LIBRARY_PATH
settings (which /really/ should be empty!) but that LD_LIBRARY_PATH
overrides rpath and default system paths.
tx anyway
dtk
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [python] set rpath in setup.cfg
2011-10-13 7:09 ` Tomi Ollila
@ 2011-10-13 7:59 ` dtk
0 siblings, 0 replies; 8+ messages in thread
From: dtk @ 2011-10-13 7:59 UTC (permalink / raw)
To: Tomi Ollila; +Cc: notmuch
On Thu, 13 Oct 2011 10:09:47 +0300, Tomi Ollila <tomi.ollila@iki.fi>
wrote:
> On Thu 13 Oct 2011 09:34, Jameson Graef Rollins
> <jrollins@finestructure.net> writes:
>
>> On Thu, 13 Oct 2011 08:12:03 +0200, dtk <dtk@gmx.de> wrote:
>>> in my experience, it tends to cause awkward side effects that are hard
>>> to
>>> debug, the main problem being that it overrides all default paths and
is
>>> hard to target at a single problematic application.
>
> I also have local notmuch installations (3 of them); notmuch command
> (among others) are wrapped in a shell script which setups environment
> variables like:
>
> PATH=/path/to/iroot/bin:$PATH
> LD_LIBRARY_PATH=/path/to/iroot/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
> export PATH LD_LIBRARY_PATH
True. Actually, I have expanded PATH and PYTHONPATH to include the local
installations, so all that's missing is the path to the .so for the python
bindings, so
~~~snip~~~
$ LD_LIBRARY_PATH=/home/dtk/.local/lib/ alot
~~~snip~~~
works perfectly; still I find it rather unelegant to have to bother about
linker paths at runtime. I feel making the appropriate settings at build
time would be way nicer! Of course you can write a wrapper script for that,
but since there is RPATH (and I just don't know how to set it in Python's
setup.py), I really don't feel like wrapping each of my bins manually :/
tx
dtk
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [python] set rpath in setup.cfg
2011-10-13 6:34 ` Jameson Graef Rollins
2011-10-13 7:09 ` Tomi Ollila
2011-10-13 7:42 ` dtk
@ 2011-10-16 20:04 ` Thomas Schwinge
2 siblings, 0 replies; 8+ messages in thread
From: Thomas Schwinge @ 2011-10-16 20:04 UTC (permalink / raw)
To: Jameson Graef Rollins, dtk, Ali Polatel; +Cc: notmuch
[-- Attachment #1: Type: text/plain, Size: 1254 bytes --]
Hi!
On Wed, 12 Oct 2011 23:34:28 -0700, Jameson Graef Rollins <jrollins@finestructure.net> wrote:
> On Thu, 13 Oct 2011 08:12:03 +0200, dtk <dtk@gmx.de> wrote:
> > in my experience, it tends to cause awkward side effects that are hard to
> > debug, the main problem being that it overrides all default paths and is
> > hard to target at a single problematic application.
>
> I think it's fairly straightforward to prepend a library path to the ld
> library path without overriding all defaults with something like this
> (for bash):
>
> LD_LIBRARY_PATH=/new/ld/path:$LD_LIBRARY_PATH
This is in fact not safe, and may cause subtle issues: if LD_LIBRARY_PATH
is empty initally, it'll evaluate to:
LD_LIBRARY_PATH=/new/ld/path:
Of this one, the last element is empty, and ld.so will thus look into the
current directory for libc.so, for example. Now you cd /tmp/ and enter
ls... :-)
Or, as it once bit me, you're on a system with such an LD_LIBRARY_PATH
set (without me knowing about it). You do glibc development, and wonder
why some commands begin acting strangely when you're in the glibc build
directory...
Thus:
LD_LIBRARY_PATH=/new/ld/path${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
Grüße,
Thomas
[-- Attachment #2: Type: application/pgp-signature, Size: 489 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2011-10-16 20:05 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-10-12 14:55 [python] set rpath in setup.cfg dtk
2011-10-12 15:30 ` Ali Polatel
2011-10-13 6:12 ` dtk
2011-10-13 6:34 ` Jameson Graef Rollins
2011-10-13 7:09 ` Tomi Ollila
2011-10-13 7:59 ` dtk
2011-10-13 7:42 ` dtk
2011-10-16 20:04 ` Thomas Schwinge
Code repositories for project(s) associated with this public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).