Re: Using Py_SetPythonHome

Jan Kratochvil
2012-10-11T08:42:51Z

On Thu, 04 Oct 2012 09:32:50 +0200, John Gilmore wrote:
> Package management is a sinkhole, unfortunately. The OLPC project has
> unfortunately discovered that despite the great support in the GNU
> tools for cross-compilation, the Fedora package management tools are
> completely incapable of cross-compilation. So now that they are
> making hardware with three architectures to build software for (i386,
> i686, and ARM), they need to dedicate three kinds of hardware to
> building their Fedora-based releases. They can't make an OS image on
> a fast x86 machine that will install or boot on an ARM.(*)
>
> (I think Debian/Ubuntu package managers suffer from the same problem;

They have:
http://wiki.debian.org/Multiarch

> I recommend NOT assuming that package managers are the cat's pajamas
> and that therefore we can all skip the ability to usefully build from
> source.

This was also my goal, to be able to build from source. Currently you
"cannot", as you will build something doing unexpected things (the
relocations).

> and yet I still don't understand why y'all care,

Because GDB introduces serious change in where its files are located without
it being relevant to its debugger subject. The same way every other package
on system could be self-relocated; it is not. Therefore GDB also should not.

If anybody needs it for GDB it should be introduced first as a general package
relocation feature.

> perhaps someone
> should try to write up a solid proposal that explains what the hell is
> going on, with pros and cons listed and generally agreed upon. That
> might help point a path to making a decision that sticks for a while.

$ set | grep /var/lib/mock/fedora-16-x86_64/root
$ echo foo >>/var/lib/mock/fedora-16-x86_64/root/usr/share/gdb/python/gdb/__init__.py
$ /var/lib/mock/fedora-16-x86_64/root/usr/bin/gdb
Traceback (most recent call last):
File "<string>", line 70, in <module>
File "<string>", line 67, in GdbSetPythonDirectory
File "/var/lib/mock/fedora-16-x86_64/root/usr/share/gdb/python/gdb/__init__.py", line 42, in <module>
foo

This is apparently broken, there is no reason why
/var/lib/mock/fedora-16-x86_64/root/usr/bin/gdb should touch anything under
/var/lib/mock/fedora-16-x86_64/root , no other package does so.

And this leads to the issues what everything should be self-relocated as no
other system package is self-relocated. So then GDB tries to self-relocate
also Python etc. and it can never work completely.

Regards,
Jan