On Fri, 2006-01-13 at 18:49 +0100, Robert Winder wrote:
> Jason and Gerrit Hannaert already looked into it. Both provided a patch on the
> userlist at 10/11 june 2005. Both patches didn't make it in python 2.4 bugfix
> release freevo 1.5.4 I did have a private correspondence with Geert Decorte 
> who
> experienced the following python 2.4 error

Assuming by "both patches" you mean the two patches you attached that
were posted here some time ago, both of those _did_ make it into the
Freevo 1.5.4 bugfix release.

It would definitely have been a major SNAFU if they didn't, because the
entire point of the 1.5.4 release was to include these fixes. :)  Just
to make sure I wasn't losing my sanity, I redownloaded the 1.5.4 tarball
from sf.net and indeed these patches were correctly included.

> r = fcntl.ioctl(self.device, long(QUERYCAP_NO), val)
> OverflowError: long int too large to convert to int

This line of code doesn't exist anywhere in Freevo 1.5.4.  It shouldn't
happen.

> and after applying the attached patches provided by Jason and Gerrit it worked
> again. Although i haven't looked if there are more instances which could 
> trigger
> this error within Freevo.

I did do a search for all instances of ioctl in the code in order to
determine of the request identifier needed to be wrapped in i32().  But
I might have missed some.

> >>>Here's a patch that I've done for this problem:
> >>>http://www.linuxowl.com/patches/freevo-1.5.4-v4l2.py.patch
> >>>Python was using 'L' for 64bit ints and the interface wanted 32bit ints.

dischi/rshortt -- how does this patch look to you?  It seems sensible to
me (in terms of logic), but there are many places in v4l2.py where 'L'
is used in the struct format, and many cases that Duncan didn't modify
that might require it.  Maybe Duncan could comment as well.  If
everything is good, I'll merge this patch with both the 1.5 and trunk
branches.

> >>>     def getfmt(self):
> >>>-        val = struct.pack( FMT_ST, 1L,0,0,0,0,0,0,0)
> >>>+        val = struct.pack( FMT_ST, 0,0,0,0,0,0,0,0)
> >>>         r = fcntl.ioctl(self.device,GET_FMT_NO,val)
> >>>         return struct.unpack( FMT_ST, r )

Given that this is the code now present in trunk, I've committed this
fix to the 1.5 branch as well.

Are there any other issues with Freevo 1.5.4 and Python 2.4?  How about
with AMD64? Considering Freevo 2.0 won't be out for many months, it
might be a good idea to fix some more of these bugs and release a
1.5.4.1.  dischi?

Cheers,
Jason.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to