Bug 97638
Summary: | Undefined References when compiling against libglut.so.3 | ||
---|---|---|---|
Product: | [Retired] Red Hat Raw Hide | Reporter: | Michael Shore <mshore> |
Component: | glut | Assignee: | Mike A. Harris <mharris> |
Status: | CLOSED RAWHIDE | QA Contact: | |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 1.0 | ||
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2003-07-03 17:56:59 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Michael Shore
2003-06-18 17:41:39 UTC
This GLUT flaw occurs when using Nvidia's libGL and some other OpenGL implementations which do not implement the above listed SGI extensions. The OpenGL implementation included with XFree86 (Mesa) does implement these extensions, however due to a flaw in the way glut is built as well as a flaw in it's implementation, it requires the installed libGL implementation to contain all of the functionality of the OpenGL implementation glut was compiled with. As such, when the libGL is replaced with a 3rd party libGL which does not implement these extensions, GLUT applications can not be compiled any longer. The author's license on the GLUT library however, does not permit modification and redistribution by third parties, which unfortunately means that Red Hat and others can't legally fix or modify the GLUT source code to get rid of this problem and then redistribute the modified library. This poses a problem for Red Hat customers and users whom rely upon the functionality of GLUT, but whom use 3rd party OpenGL implementations such as the Nvidia libGL, which doesn't implement the SGI extensions that cause this problem to arise. Also, since it is _not_ a bug in the 3rd party libGL, there is nothing that vendors such as Nvidia can do about this issue either. The GLUT license problem was not known of until recently, which is why glut has remained in Red Hat Linux for several releases, however the problem reported in this bug report did not surface until recently. Due to the GLUT licensing problem, we have a list of solutions which customers and users can use for the time being to work around this issue. - After installing your 3rd party libGL implementation, such as the one which comes with Nvidia's video drivers, download the glut src.rpm package from the Red Hat ftp site, or installation media, and rebuild it against the installed 3rd party libGL. After rebuilding, you can uninstall glut with "rpm -e --force glut glut-devel", and then install the newly built glut and glut-devel packages. User feedback provided this workaround, and it's been verified by various other individuals since then as well. glut and glut-devel should still work fine with Mesa as well should they ever replace the 3rd party libGL in the future, however the SGI extensions will then be disabled. This shouldn't be a problem for anyone generally. - Another option is to compile your software against the Red Hat supplied Mesa libGL and then run the applications on other systems which may have any libGL installed. This hasn't been tested, but is believed that it should work ok. After being alerted to this GLUT flaw, and discovering the license issue, we have investigated the GLUT issue deeper. It turns out that the author of GLUT no longer maintains GLUT as he considers it to be feature complete and a finished product. He does not wish for anyone else to modify GLUT, extend it, fix bugs, or add features to it. We respect the author's copyright and his wishes, however since this poses a real world problem to Red Hat Linux users and customers, we have decided that we will remove the glut package from future Red Hat Linux releases and seek a better solution. We've discovered an open source clone of GLUT named "freeglut", which can be found at http://freeglut.sourceforge.net which is MIT licensed and was designed and implemented from the ground up to clone GLUT. freeglut is a 100% glut replacement, and it will replace glut in all future Red Hat OS products. It also provides some extensions to the GLUT API, which are only available by linking to libfreeglut (instead of libglut). Linking to libglut provides a 100% compatible GLUT implementation barring any bugs that arise. We have included freeglut in rawhide experimentally for the time being alongside glut. The freeglut project will be making a major new release soon, and at that time I will be updating our freeglut package to the new official version and removing glut from the distribution. Once this has occured, GLUT users are encouraged to both test existing binary GLUT applications against our freeglut package for binary compatibility, and to compile test any GLUT applications they use as well to test build time compatibility. If any bugs are found in freeglut, they should be reported directly to the freeglut project on sourceforge so that the freeglut developers can investigate and fix any issues as soon as possible. Users can file freeglut bug reports upstream at: http://freeglut.sourceforge.net/fg/index.php?id=393 After reporting a freeglut bug upstream, if you would also like Red Hat to track the upstream bug report and backport any fixes that the freeglut developers make, you may also file a bug report in Red Hat bugzilla with a URL to the upstream freeglut bug report. Once the issue is fixed upstream, Red Hat can investigate the possibility of backporting the fix for future builds. We apologize for any inconveniences caused to users due to the non-free license that GLUT is licensed under, and we hope to see the open source freeglut meet everyone's needs in our future operating systems. Thanks. Closing bug as RAWHIDE, as the above mentioned workaround, while slightly inconvenient, should suffice in lieu of an better solution for existing supported OS releases that ship with GLUT, and our long term solution is to ship freeglut, which is currently in rawhide. |