Package: python-codespeak-lib
Version: 0.9.0-4
Severity: important

Running as me:
  $ python -c 'from py.magic import greenlet'
  $ [no problem]

Running as root:
  # python -c 'from py.magic import greenlet'
  Traceback (most recent call last):
    File "<string>", line 1, in ?
    File "/usr/lib/python2.4/site-packages/py/initpkg.py", line 182, in 
__getattr__
      result = self.__package__._resolve(extpy)
    File "/usr/lib/python2.4/site-packages/py/initpkg.py", line 68, in _resolve
      implmodule = self._loadimpl(fspath[:-3])
    File "/usr/lib/python2.4/site-packages/py/initpkg.py", line 98, in _loadimpl
      return __import__(modpath, None, None, ['__doc__'])
    File "/usr/lib/python2.4/site-packages/py/magic/greenlet.py", line 10, in ?
      greenlet = path._getpymodule().greenlet
    File "/usr/lib/python2.4/site-packages/py/path/local/local.py", line 441, 
in _getpymodule
      mod = make_module_from_c(self)
    File "/usr/lib/python2.4/site-packages/py/misc/buildcmodule.py", line 69, 
in make_module_from_c
      raise RuntimeError("cannot compile %s: %s\n%s" % (cfile, e,
  RuntimeError: cannot compile 
/usr/lib/python2.4/site-packages/py/c-extension/greenlet/greenlet.c: error: 
command 'gcc' failed with exit status 1
  gcc: /usr/lib/python2.4/site-packages/py/c-extension/greenlet/greenlet.c: No 
such file or directory
  gcc: no input files

Running as me again:
  $ python -c 'from py.magic import greenlet'
  Traceback (most recent call last):
    File "<string>", line 1, in ?
    File "/usr/lib/python2.4/site-packages/py/initpkg.py", line 182, in 
__getattr__
  [etc...]

What's happening is that the complicated machinery in
py/misc/buildcmodule.py is trying to auto-build the C-language
extension.  It decides decides to delete the perfectly fine

  /usr/lib/python2.4/site-packages/py/c-extension/greenlet/greenlet.so

provided in the package and recompile it from sources which aren't
there.  (Obviously it doesn't work when run as a normal user; it notices
the file is still there and just uses it as-is.) It leaves me without
greenlets.so, and in its place, an empty directory called (wait for it...):

  /usr/lib/python2.4/site-packages/py/c-extension//greenlet/build/
    temp.linux-i686-2.4/usr/lib/python2.4/site-packages/py/c-extension/greenlet/

Now greenlets can't be used by anyone at all.  I claim that this is
unsatisfactory.

I've hacked my version by commenting out the lines

    ##if lib.check():
    ##    try:
    ##        lib.remove()
    ##    except EnvironmentError:
    ##        pass # XXX we just use the existing version, bah

of buildcmodule.py and now it works; this seems OK because packages
probably shouldn't be capriciously messing with themselves inside /usr
anyway.

-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.23.15 (PREEMPT)
Locale: LANG=C, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages python-codespeak-lib depends on:
ii  libc6                         2.7-6      GNU C Library: Shared libraries
ii  python                        2.4.4-6    An interactive high-level object-o
ii  python-central                0.5.15-0.1 register and build utility for Pyt

Versions of packages python-codespeak-lib recommends:
ii  python-docutils               0.4-5      Utilities for the documentation of
pn  python-tkinter                <none>     (no description available)

-- no debconf information



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to