Package: kivy
Version: 1.8.0+dfsg-2
Severity: serious
Tags: patch upstream
Justification: fails to build from source (but built successfully in the past)

As originally reported while talking to cython folks... citing here in full and
will upload a 1 day delayed NMU shortly which would pick up that patch from
upstream to resolve this FTBFS.

Date: Sat, 11 Oct 2014 11:13:23 -0400
From: Yaroslav Halchenko <[email protected]>
To: [email protected]
Cc: [email protected]
Subject: [Cython] kivy patch for:  Cython 0.21 released


On Sat, 11 Oct 2014, Stefan Behnel wrote:

> Yaroslav Halchenko schrieb am 11.10.2014 um 16:18:
> > On Wed, 10 Sep 2014, Stefan Behnel wrote:
> >> on behalf of the Cython dev team, I'm pleased to announce the release of
> >> Cython 0.21, a major feature release. Thanks everyone who contributed code,
> >> documentation improvements, test feedback, bug reports and/or otherwise
> >> helpful insights for this release.

> > a little change detected while down-stream testing builds in Debian
> > (previous version was 0.20.2 and it built fine)

> >  ------------------------------------------------------------
> >  ...
> >              vertex_format.last_shader = self
> >              for i in xrange(vertex_format.vattr_count):
> >                  attr = &vertex_format.vattr[i]
> >                  if attr.per_vertex == 0:
> >                      continue
> >                  attr.index = glGetAttribLocation(self.program, <char 
> > *><bytes>attr.name)
> >                                                                ^
> >  ------------------------------------------------------------

> >  kivy/graphics/shader.pyx:448:63: Casting temporary Python object to 
> > non-numeric non-Python type

> Wow, interesting piece of code. What's that even supposed to do?

> Looking up their code, I find that "attr.name" is a char*:

> https://github.com/kivy/kivy/blob/master/kivy/graphics/vertex.pxd

> So the above code creates a temporary Python bytes object by copying data
> from a char*, then gets the char* to the internal object buffer and throws
> the object away, thus deleting its buffer. Then it passes that invalidated
> char* into a function. I can't see how this makes any sense. And I'm happy
> to see that Cython catches this kind of bug now.


> > I wondered if that is an intentional restriction now to restrict such 
> > casting
> > only to numeric (and exclude the simplest form -- bytes/chars) or a
> > regression?

> It seems they fixed their code already:
> https://github.com/kivy/kivy/commit/827bd6c7b7d04ec72cb3bdbf0ffcd90630d90008

Gotcha -- THANKS a bunch for a detailed response!

CCing kivy maintainers in Debian -- get ready for upcoming cython 0.21
upload - a little patch to pick up! ;)


-- System Information:
Debian Release: jessie/sid
  APT prefers testing
  APT policy: (900, 'testing'), (600, 'unstable'), (300, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.17-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash


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

Reply via email to