I have finally gotten PyOpenGL to compile under a fairly clean
Mandrake Linux 8.1 install. I am posting my notes here in the hopes that
the appropriate package maintainers will fix their build processes.
I now have a PyOpenGL-2.0.0.44-1.i686.rpm which looks like it will
work (I haven't written any test scripts yet). If you'd like to post this
on the website email me and I will send you the file.
Here are the issues I had:
1. The RPM for 'numeric' was installed on my system (by default), but the
build failed because it couldn't find some file or header or something.
The problem was that the install script detected the presence of numeric,
but not everything needed to compile PyOpenGL was there. Uninstalling
numeric fixed the problem... My guess is that installing 'numeric-devel'
(if such a beast exists) would have fixed it too and provided me with
numeric support, but I was after the quick fix. It would be nice if the
install script was able to *specifically* look for what it needs, instead
of just the generic presence of numeric.
2. The build looks in /usr/X11 but not /usr/X11R6. Making a symlink
called /usr/X11 that points to /usr/X11R6 fixed this problem for me. I'm
sure that the following diff to config/linux.cfg would also fix the
problem:
[root@dereks PyOpenGL-2.0.0.44]# diff config/linux.cfg-dist config/linux.cfg
15c15
< library_dirs=/usr/lib:/usr/local/lib:/usr/X11/lib
---
> library_dirs=/usr/lib:/usr/local/lib:/usr/X11/lib:/usr/X11R6/lib
3. The glu.h file that comes with Mesa-common-devel-3.4.2-2mdk does not
work, and causes the PyOpenGL build to fail. If I recall correctly the
stuct GLUquadratic (or some such) was not defined or declared, resulting
in syntax errors in the C code. Installing SGI's package
oss-opengl-glu-20000925-1.i386.rpm instead of Mesa-common-devel fixed that
for me.
4. Unfortunately, oss-opengl-glu-20000925-1.i386.rpm does not include
GLUT, it only includes GLU. Mesa-common-devel DOES include GLUT. So here
is what I did to get around this problem:
# First, make sure we have a "clean" start:
rpm -e Mesa-common-devel
rpm -e oss-opengl-glu-20000925-1
# Now, install Mesa-common-devel. This is where I actually started from.
rpm -ivh Mesa-common-devel-3.4.2-2mdk.i586.rpm
# Next, ALSO install the SGI package. Note that I must use the '--force'
# option to RPM because it installs a conflicting (yet correct) glu.h
# file.
rpm -ivh --force oss-opengl-glu-20000925-1.i386.rpm
The SGI package overwrites the broken glu.h that comes with
Mesa-common-devel (because of the --force option), but Mesa-common-devel
gives me GLUT. If anybody has an "in" with the Mesa-common-devel
maintainer, ask him to fix this problem :).
NOTE: I am NOT using Mesa for my OpenGL, I am using GLX with my
proprietary NVidia drivers. However, I use Mesa-common for GLU and GLUT.
This is on a Dell Inspiron 8100, the coolest fscking laptop ever :).
I am a strong believer in using your O.S.'s package management
system and not leaving un-registered turds of files all over your hard
drive. It would be nice if these little problems could be fixed, or at
least the resulting binary RPM made available for download.
Thanks,
Derek Simkowiak
|