Bug 468298 - Review Request: python-pygle - A cross-platform windowing and multimedia library for Python
Summary: Review Request: python-pygle - A cross-platform windowing and multimedia libr...
Keywords:
Status: CLOSED CANTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Gwyn Ciesla
QA Contact: Fedora Extras Quality Assurance
URL: http://pyglet.org/
Whiteboard:
Depends On:
Blocks: FE-Legal
TreeView+ depends on / blocked
 
Reported: 2008-10-23 23:05 UTC by Paulo Roma Cavalcanti
Modified: 2008-10-31 11:56 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2008-10-31 11:56:29 UTC
Type: ---
Embargoed:
gwync: fedora-review-


Attachments (Terms of Use)

Description Paulo Roma Cavalcanti 2008-10-23 23:05:13 UTC
Description of problem:

Spec URL: http://people.atrpms.net/~pcavalcanti/specs/python-pyglet.spec
SRPM URL: http://people.atrpms.net/~pcavalcanti/srpms/python-pyglet-1.1.2-1.fc8.src.rpm


Pyglet provides an object-oriented programming interface for
developing games and other visually-rich applications for Windows, Mac
OS X and Linux.

Comment 1 Christopher D. Stover 2008-10-25 00:51:52 UTC
Your links for the Spec & SRPM aren't working for me.

Comment 2 Paulo Roma Cavalcanti 2008-10-25 01:59:51 UTC
Try these ones then:

Spec URL: http://dl.lcg.ufrj.br/RPMS/SPECS/python-pyglet.spec

SRPM URL: http://dl.lcg.ufrj.br/RPMS/src/python-pyglet-1.1.2-1.fc8.src.rpm

Comment 3 Gwyn Ciesla 2008-10-30 15:14:32 UTC
rpmlint clean on SRPM.

rpmlint on rpms:

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/programming_guide/hello_world.py
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/events.py
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/window_platform_event.py
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/programming_guide/image_viewer.py
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/fixed_resolution.py
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/html_label.py
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/noisy/noisy.py
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/astraea/assets/app.ico
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/programming_guide/events.py
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/image_convert.py
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/timer.py
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/opengl.py
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/programming_guide/animation.py
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/graphics.py
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/video.py
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/astraea/setup.py
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/image_display.py
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/multiple_windows.py
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/programming_guide/window_subclass.py
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/media_player.py
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: spurious-executable-perm /usr/share/doc/python-pyglet-doc-1.1.2/examples/astraea/astraea.py
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

python-pyglet-doc.noarch: W: doc-file-dependency /usr/share/doc/python-pyglet-doc-1.1.2/examples/astraea/astraea.py /usr/bin/env
An included file marked as %doc creates a possible additional dependency in
the package.  Usually, this is not wanted and may be caused by eg. example
scripts with executable bits set included in the package's documentation.

python-pyglet-doc.noarch: W: doc-file-dependency /usr/share/doc/python-pyglet-doc-1.1.2/examples/astraea/setup.py /usr/bin/env
An included file marked as %doc creates a possible additional dependency in
the package.  Usually, this is not wanted and may be caused by eg. example
scripts with executable bits set included in the package's documentation.

python-pyglet-doc.noarch: W: doc-file-dependency /usr/share/doc/python-pyglet-doc-1.1.2/examples/events.py /usr/bin/env
An included file marked as %doc creates a possible additional dependency in
the package.  Usually, this is not wanted and may be caused by eg. example
scripts with executable bits set included in the package's documentation.

python-pyglet-doc.noarch: W: doc-file-dependency /usr/share/doc/python-pyglet-doc-1.1.2/examples/fixed_resolution.py /usr/bin/env
An included file marked as %doc creates a possible additional dependency in
the package.  Usually, this is not wanted and may be caused by eg. example
scripts with executable bits set included in the package's documentation.

python-pyglet-doc.noarch: W: doc-file-dependency /usr/share/doc/python-pyglet-doc-1.1.2/examples/graphics.py /usr/bin/env
An included file marked as %doc creates a possible additional dependency in
the package.  Usually, this is not wanted and may be caused by eg. example
scripts with executable bits set included in the package's documentation.

python-pyglet-doc.noarch: W: doc-file-dependency /usr/share/doc/python-pyglet-doc-1.1.2/examples/html_label.py /usr/bin/env
An included file marked as %doc creates a possible additional dependency in
the package.  Usually, this is not wanted and may be caused by eg. example
scripts with executable bits set included in the package's documentation.

python-pyglet-doc.noarch: W: doc-file-dependency /usr/share/doc/python-pyglet-doc-1.1.2/examples/image_convert.py /usr/bin/env
An included file marked as %doc creates a possible additional dependency in
the package.  Usually, this is not wanted and may be caused by eg. example
scripts with executable bits set included in the package's documentation.

python-pyglet-doc.noarch: W: doc-file-dependency /usr/share/doc/python-pyglet-doc-1.1.2/examples/image_display.py /usr/bin/env
An included file marked as %doc creates a possible additional dependency in
the package.  Usually, this is not wanted and may be caused by eg. example
scripts with executable bits set included in the package's documentation.

python-pyglet-doc.noarch: W: doc-file-dependency /usr/share/doc/python-pyglet-doc-1.1.2/examples/media_player.py /usr/bin/env
An included file marked as %doc creates a possible additional dependency in
the package.  Usually, this is not wanted and may be caused by eg. example
scripts with executable bits set included in the package's documentation.

python-pyglet-doc.noarch: W: doc-file-dependency /usr/share/doc/python-pyglet-doc-1.1.2/examples/multiple_windows.py /usr/bin/env
An included file marked as %doc creates a possible additional dependency in
the package.  Usually, this is not wanted and may be caused by eg. example
scripts with executable bits set included in the package's documentation.

python-pyglet-doc.noarch: W: doc-file-dependency /usr/share/doc/python-pyglet-doc-1.1.2/examples/noisy/noisy.py /usr/bin/env
An included file marked as %doc creates a possible additional dependency in
the package.  Usually, this is not wanted and may be caused by eg. example
scripts with executable bits set included in the package's documentation.

python-pyglet-doc.noarch: W: doc-file-dependency /usr/share/doc/python-pyglet-doc-1.1.2/examples/opengl.py /usr/bin/env
An included file marked as %doc creates a possible additional dependency in
the package.  Usually, this is not wanted and may be caused by eg. example
scripts with executable bits set included in the package's documentation.

python-pyglet-doc.noarch: W: doc-file-dependency /usr/share/doc/python-pyglet-doc-1.1.2/examples/programming_guide/animation.py /usr/bin/env
An included file marked as %doc creates a possible additional dependency in
the package.  Usually, this is not wanted and may be caused by eg. example
scripts with executable bits set included in the package's documentation.

python-pyglet-doc.noarch: W: doc-file-dependency /usr/share/doc/python-pyglet-doc-1.1.2/examples/programming_guide/events.py /usr/bin/env
An included file marked as %doc creates a possible additional dependency in
the package.  Usually, this is not wanted and may be caused by eg. example
scripts with executable bits set included in the package's documentation.

python-pyglet-doc.noarch: W: doc-file-dependency /usr/share/doc/python-pyglet-doc-1.1.2/examples/programming_guide/hello_world.py /usr/bin/env
An included file marked as %doc creates a possible additional dependency in
the package.  Usually, this is not wanted and may be caused by eg. example
scripts with executable bits set included in the package's documentation.

python-pyglet-doc.noarch: W: doc-file-dependency /usr/share/doc/python-pyglet-doc-1.1.2/examples/programming_guide/image_viewer.py /usr/bin/env
An included file marked as %doc creates a possible additional dependency in
the package.  Usually, this is not wanted and may be caused by eg. example
scripts with executable bits set included in the package's documentation.

python-pyglet-doc.noarch: W: doc-file-dependency /usr/share/doc/python-pyglet-doc-1.1.2/examples/programming_guide/window_subclass.py /usr/bin/env
An included file marked as %doc creates a possible additional dependency in
the package.  Usually, this is not wanted and may be caused by eg. example
scripts with executable bits set included in the package's documentation.

python-pyglet-doc.noarch: W: doc-file-dependency /usr/share/doc/python-pyglet-doc-1.1.2/examples/timer.py /usr/bin/env
An included file marked as %doc creates a possible additional dependency in
the package.  Usually, this is not wanted and may be caused by eg. example
scripts with executable bits set included in the package's documentation.

python-pyglet-doc.noarch: W: doc-file-dependency /usr/share/doc/python-pyglet-doc-1.1.2/examples/video.py /usr/bin/env
An included file marked as %doc creates a possible additional dependency in
the package.  Usually, this is not wanted and may be caused by eg. example
scripts with executable bits set included in the package's documentation.

python-pyglet-doc.noarch: W: doc-file-dependency /usr/share/doc/python-pyglet-doc-1.1.2/examples/window_platform_event.py /usr/bin/env
An included file marked as %doc creates a possible additional dependency in
the package.  Usually, this is not wanted and may be caused by eg. example
scripts with executable bits set included in the package's documentation.


One other thing before we get too far, what steps have you taken to remove support for mp3, WMA, WMV, and any other patent-encumbered codecs?  Might be something you could split off into a -bad rpm and maintain that in rpmfusion.

https://fedoraproject.org/wiki/ForbiddenItems

Comment 4 Paulo Roma Cavalcanti 2008-10-30 16:04:53 UTC
Hi,


I knew about these warnings, and this is what I wanted to ask you.
Where do examples go? Suze has a python-pyglet and the examples are
in python-pyglet-doc:

http://rpm.pbone.net/index.php3/stat/4/idpl/8947453/com/python-pyglet-doc-1.1.1-1.1.i586.rpm.html

What should we do in Fedora?

Regarding your question about the formats, I think that
they are accessed via AVbin (http://pyglet.org/), which uses ffmpeg:

http://code.google.com/p/avbin

http://en.wikipedia.org/wiki/Pyglet


But this is optional. pyglet just has a script

/usr/lib/python2.5/site-packages/pyglet/media/avbin.py

for accessing AVbin if it is installed on the system.
This is nice, because it leaves the codecs out of the package.

But sure, in case we go on, we need to be certain that everything
problematic is really out.

Comment 5 Gwyn Ciesla 2008-10-30 17:10:53 UTC
Leave the examples in place.

Adding this to %setup silences rpmlint:

%{__chmod} -x examples/*.py
%{__chmod} -x examples/*/*.py
%{__chmod} -x examples/*.png
%{__chmod} -x examples/*/*/*.ico


AVbin sounds good.  But I don't see it in Fedora.

Comment 6 Gwyn Ciesla 2008-10-30 17:12:00 UTC
Oh, never mind, it's in pyglet. <facepalm>

Comment 7 Gwyn Ciesla 2008-10-30 17:13:18 UTC
I meant, I don't se ffmpeg in Fedora.

Comment 8 Gwyn Ciesla 2008-10-30 17:21:01 UTC
I do see it in rpmforge, though.  Can pyglet function without ffmpeg?

Comment 9 Paulo Roma Cavalcanti 2008-10-30 17:49:32 UTC
pyglet does a lot of things, including graphics, by using OpenGL.
It is similar to pygame.

ffmpeg is available at livna, rpmforge, ATrpms, freshrpms.

ffmpeg is also the base of mplayer and vlc. It decodes almost any audio/video format, and depends on packages Fedora cannot ship (lame, xvid, a52dec, etc.).

pyglet can optionally use AVbin (an external program, not included, of course) 
to access ffmpeg.

But AVbin/ffmepg is only necessary if one is interested in decoding mp3 or mpeg4, for instance. But most of the users do not need this functionality.

pyglet is available in debian, suze, ubuntu and I think there should not be legal issues with it. 

I will remove the doc package. I agree with you, it is unnecessary.

Comment 10 Gwyn Ciesla 2008-10-30 18:04:33 UTC
So if ffmpeg is not present, it will still work on other, allowable media types, and if you then install ffmpeg from outside Fedora, it will then do those types?

Comment 11 Paulo Roma Cavalcanti 2008-10-30 18:19:12 UTC
(In reply to comment #10)
> So if ffmpeg is not present, it will still work on other, allowable media
> types, and if you then install ffmpeg from outside Fedora, it will then do
> those types?

That is it. 

You can try some of the examples: 

python /usr/share/doc/python-pyglet-doc-1.1.2/examples/noisy/noisy.py

python /usr/share/doc/python-pyglet-doc-1.1.2/examples/graphics.py


python /usr/share/doc/python-pyglet-doc-1.1.2/examples/programming_guide/animation.py

I updated the spec and srpm links (same location) for making rpmlint happy.

The examples are still in the doc package for now.

Thanks.

Comment 12 Gwyn Ciesla 2008-10-30 18:29:16 UTC
[limb@fawkes examples]$ python graphics.py 
Traceback (most recent call last):
  File "graphics.py", line 50, in <module>
    from pyglet.gl import *
  File "/usr/lib/python2.5/site-packages/pyglet/gl/__init__.py", line 507, in <module>
    import pyglet.window
  File "/usr/lib/python2.5/site-packages/pyglet/window/__init__.py", line 1682, in <module>
    gl._create_shadow_window()
  File "/usr/lib/python2.5/site-packages/pyglet/gl/__init__.py", line 491, in _create_shadow_window
    _shadow_window = Window(width=1, height=1, visible=False)
  File "/usr/lib/python2.5/site-packages/pyglet/window/xlib/__init__.py", line 474, in __init__
    super(XlibWindow, self).__init__(*args, **kwargs)
  File "/usr/lib/python2.5/site-packages/pyglet/window/__init__.py", line 641, in __init__
    raise NoSuchConfigException('No standard config is available.')
pyglet.window.NoSuchConfigException: No standard config is available.

Comment 13 Paulo Roma Cavalcanti 2008-10-30 19:17:44 UTC
I changed the spec file. I added the
required packages:

Requires:       alsa-lib
Requires:       gdk-pixbuf
Requires:       mesa-libGL
Requires:       mesa-libGLU
Requires:       openal


Can you, please, try again?

I think everything needed is there now.

Comment 14 Gwyn Ciesla 2008-10-30 19:37:26 UTC
I already had all that installed.  I rebuilt anyway, same issue.

Comment 15 Paulo Roma Cavalcanti 2008-10-30 20:20:21 UTC
(In reply to comment #14)
> I already had all that installed.  I rebuilt anyway, same issue.

Weird, you should have seen a pink torus rotating on the screen.

This example is running even on an old FC6 with python 2.4.

These are the requirements:

* Linux, with the following libraries (most recent distributions will have
  these in a default installation):
    * OpenGL and GLX
    * GDK 2.0 or later (required for loading images)
    * OpenAL or ALSA (required for playing audio)
    
pyglet requires either:

* Python 2.4 with ctypes installed
* Python 2.5

It is like you did not have the GLX extension on your server.

Can you check if you have GLX available?

Comment 16 Gwyn Ciesla 2008-10-30 20:22:29 UTC
How do I check that?

Comment 17 Paulo Roma Cavalcanti 2008-10-30 20:34:32 UTC
Just run 

glxinfo

from glx-utils.

You should see among other things (a lot of stuff)
something like this:

------------------------------------

GLX version: 1.3
GLX extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig, 
    GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control, 
    GLX_EXT_texture_from_pixmap, GLX_ARB_multisample, GLX_NV_float_buffer, 
    GLX_ARB_fbconfig_float, GLX_ARB_get_proc_address


---------------------------------------

You can also run 

glxgears

(in fact, glx-utils only has these two programs):

[cascavel:~] listrpm glx-utils-7.0.2-3.fc8.x86_64
/usr/bin/glxgears
/usr/bin/glxinfo


I am using an nvidia 7600 card (with the proprietary driver).

I will only have access to a computer without the proprietary driver tomorrow.

Comment 18 Tom "spot" Callaway 2008-10-30 21:37:11 UTC
Worth noting that on x86_64 rawhide with intel video, these examples (noisy and
graphics) segfault pretty explosively.

Auditing the code, I noticed it has an S3TC implementation. This is patent
encumbered and needs to be removed. Given that the code seems to rely on this
pretty heavily, it looks like it might be a showstopper.

Sorry to be the bearer of bad news here. You might consider maintaining it in rpmfusion.

Comment 19 Paulo Roma Cavalcanti 2008-10-30 21:54:34 UTC
(In reply to comment #18)
> Worth noting that on x86_64 rawhide with intel video, these examples (noisy and
> graphics) segfault pretty explosively.
> 
> Auditing the code, I noticed it has an S3TC implementation. This is patent
> encumbered and needs to be removed. Given that the code seems to rely on this
> pretty heavily, it looks like it might be a showstopper.
> 
> Sorry to be the bearer of bad news here. You might consider maintaining it in
> rpmfusion.

C'est la vie ...

I did not notice it used S3 Texture Compression.

Anyway, it seems that it just run the graphics fine on nvidia cards.

Game over.

Thanks.

Comment 20 Gwyn Ciesla 2008-10-31 11:56:29 UTC
Indeed. And so it goes. . .


Note You need to log in before you can comment on or make changes to this bug.