nvidia thoughts
Mike A. Harris
mharris at redhat.com
Fri Oct 24 13:20:14 UTC 2003
On Fri, 24 Oct 2003, [iso-8859-1] Duncan Morison wrote:
>At the end of the day ATi stuff breaks GLUT whilst
>Nvidia stuff doesn't.
You're very wrong there. GLUT itself is what is broken. GLUT is
not open source software with an OSI approved OSS compatible
license. The GLUT source code license does not permit
modification and redistribution, and as such, nobody can
"legally" modify GLUT even to fix bugs in it, and then ship the
resulting binaries. This causes a major problem, because the
GLUT source code contains a large number of problems including
security holes, and we are not able to fix them due to the
license.
The other problem this causes, is that GLUT configures some
things at compile time based on the features of the currently
installed libGL. So, the GLUT that we shipped, has features
built into it that are conditionaly enabled based on what OpenGL
features Mesa libGL supports. If you replace your libGL with
either ATI *or* Nvidia's libGL (or any other 3rd party libGL), if
that libGL does not contain 100% of the functionality of Mesa
libGL, then GLUT breaks. Nvidia's libGL does not implement some
of the SGI extensions since they're rather obsolete nowadays,
however Mesa libGL does. That causes GLUT to be unuseable. Most
likely ATI's libGL is in the same boat, however I've never
received bug reports about this problem from ATI users - only
tonnes of reports from rather upset Nvidia users. It's possible
that Nvidia's latest drivers may have added support for these
older SGI extensions, or put dummy stub functions or some other
workaround in place to get past the GLUT braindamage.
Taking the GLUT src.rpm and recompiling it after you install ATI
or Nvidia's libGL is reported to make this problem go away, as
the new GLUT reconfigures itself at compile time to the currently
installed libGL. Since we have no way of dealing with GLUT in
any sane fashion and can not legally modify it, we didn't have a
heck of a lot of choice with what to do with GLUT.
The author of GLUT (under a huge coincidence, he works at Nvidia
now) wont relicense GLUT under a sane OSS license, and he
specifically does not want people modifying and redistributing it
as he fears that people will add new features and other stuff to
the code and he considers GLUT to be officially feature complete.
As such, glut was removed from Fedora Core, and Red Hat
Enterprise Linux, and is no longer supported by Red Hat. I have
added freeglut to Fedora Core, however the freeglut present is
ancient and kindof klunky. A new version, freeglut-2.0.0 is out
now which is supposed to be 100% glut replacement and totally
true open source written from scratch, and licensed under the MIT
(XFree86) license. This is not in rawhide/Fedora yet, but it
will be in the future once I have time to properly package it and
test it with a lot of GLUT software and work the kinks out. I
might provide a freeglut 2.0.0 update for Fedora Core 1 later on,
but if not, it'll be in Fedora Core 2.
So just to summarize: Any GLUT problems you experience with
applications refusing to run or refusing to compile, are neither
Nvidia nor ATI bugs/problems - they are really broken bugs in
GLUT itself, and we are not able to legally fix them. This
problem will go away in the near future when we replace glut with
freeglut.
Hope this helps.
--
Mike A. Harris ftp://people.redhat.com/mharris
OS Systems Engineer - XFree86 maintainer - Red Hat
More information about the fedora-list
mailing list