[Python-modules-team] Bug#597848: (cython: fresh upstream is available (0.13)) -- evas, ecore, djvu FTBFS

Yaroslav Halchenko yoh at debian.org
Mon Sep 27 14:21:56 UTC 2010


unfortunately 0.13 leads to FTBFS (on my system, not a clean environment) for 3
dependent packages in the archive.  So, I will postpone upload of 0.13 (current
HG tip causes the same problems) and consulting [1] cython upstream regarding
__getsegcount__ (listed deeper below), but as for segfault in djvu -- Jakub?

python-djvulibre  -- segfault during unittesting

	*$>  PYTHONPATH=/home/yoh/deb/debs/build-area/cython-test-bdepeds/python-djvulibre-0.1.18/build/lib.linux-x86_64-2.6 python -c 'from djvu.const import *'
	Traceback (most recent call last):
	  File "<string>", line 1, in <module>
	  File "/home/yoh/deb/debs/build-area/cython-test-bdepeds/python-djvulibre-0.1.18/build/lib.linux-x86_64-2.6/djvu/const.py", line 15, in <module>
		import djvu.sexpr
	  File "sexpr.pyx", line 1, in init djvu.sexpr (djvu/sexpr.c:10615)
	AttributeError: 'module' object has no attribute 'Symbol__new__'

	*$>  PYTHONPATH=/home/yoh/deb/debs/build-area/cython-test-bdepeds/python-djvulibre-0.1.18/build/lib.linux-x86_64-2.6 python2.6 /usr/bin/nosetests --with-doctest --verbose const.py sexpr.py
	Failure: AttributeError ('module' object has no attribute 'Symbol__new__') ... ERROR
	sexpr.test_symbols ... ok
	Doctest: sexpr.ExpressionParser ... Segmentation fault

from valgrind:  
==3294== Process terminating with default action of signal 11 (SIGSEGV)
==3294==  Access not within mapped region at address 0x8
==3294==    at 0x4491D6: PyObject_GetAttr (object.c:1110)
==3294==    by 0xC39674C: __Pyx_GetName (sexpr.c:10718)
==3294==    by 0xC3A21B2: __pyx_pf_4djvu_5sexpr_Expression__new__ (sexpr.c:3385)
==3294==    by 0x418492: PyObject_Call (abstract.c:1861)
==3294==    by 0x45D79C: slot_tp_new (typeobject.c:5019)
==3294==    by 0x46B672: type_call (typeobject.c:422)
==3294==    by 0x418492: PyObject_Call (abstract.c:1861)
==3294==    by 0x48F62D: PyEval_EvalFrameEx (ceval.c:3823)
==3294==    by 0x4915F8: PyEval_EvalCodeEx (ceval.c:2875)
==3294==    by 0x491721: PyEval_EvalCode (ceval.c:514)
==3294==    by 0x4A4CED: PyImport_ExecCodeModuleEx (import.c:675)
==3294==    by 0x4A6736: load_source_module (import.c:959)

and pyx code is somewhat puzzling to me since unbound Symbol__new__ gets
explicitly deleted and I do not know Cython well enough to comprehend this
pattern:

	def Symbol__new__(cls, name):
		'''
		Symbol(name) -> a symbol
		'''
		self = None
		if is_unicode(name):
			name = encode_utf8(name)
		try:
			if cls is _Symbol_:
				self = symbol_dict[name]
		except KeyError:
			pass
		if self is None:
			name = str(name)
			self = BaseSymbol.__new__(cls, name)
			if cls is _Symbol_:
				symbol_dict[name] = self
		return self

	class Symbol(BaseSymbol):
		__new__ = staticmethod(Symbol__new__)

	cdef object _Symbol_
	_Symbol_ = Symbol

	del Symbol__new__


python-evas and -ecore -- seems to be cython's problem since 
  __getsegcount__(self, int *)
  still part of Cython's API described in Doc/special_methods.html

	Error converting Pyrex file to C:
	------------------------------------------------------------
	...
			if ptrptr != NULL:
				buf = <void*>ecore_evas_buffer_pixels_get(self.obj);
				ptrptr[0] = buf
			return self._get_buf_size()

		def __getsegcount__(self, int *lenp):
								 ^
	------------------------------------------------------------

	Error converting Pyrex file to C:
	------------------------------------------------------------
	...
				f = flags
			else:
				f = NULL
			evas_object_image_save(self.obj, filename, k, f)

		def __getsegcount__(self, int *p_len):
                             ^

[1] http://groups.google.com/group/cython-users/browse_thread/thread/49e694288b79d17c

On Fri, 24 Sep 2010, Sandro Tosi wrote:
> On Fri, Sep 24, 2010 at 23:01, Yaroslav Halchenko <debian at onerussian.com> wrote:
> > FWIW -- 0.13 uupdates and seems to build and function just fine
> > (didn't check in clean pbuilder though)

> I know Ondrej is quite busy with his RL, and given you're interested
> in cython, you might want to co-maintain it with Ondrej under the PAPT
> umbrella: Ondrej, what do you think?

> Regards,
-- 
                                  .-.
=------------------------------   /v\  ----------------------------=
Keep in touch                    // \\     (yoh@|www.)onerussian.com
Yaroslav Halchenko              /(   )\               ICQ#: 60653192
                   Linux User    ^^-^^    [175555]





More information about the Python-modules-team mailing list