Comments (8)
Thanks for filing this issue and proposing a patch. GLEW has a fairly long history, and I have not been onboard since the very beginning. So it's possible that GLEW needs to be updated for current convenions.
However, I don't think it's intended that a 1.10.0 built application will work with 1.12.0 shared library, and I think it's correct for a Linux distribution to package both versions of the shared library, than assume compatibility.
We like to think of OpenGL as a fixed, stable binary interface. But in practice there are corrections and modifications over time to both the OpenGL specifications (including extensions) and the GLEW interpretation and handling of those. For example, the specific list of functions expected to be non-NULL for a particular extension may change from 1.10.0 to 1.11.0 and again to 1.12.0.
So going down this road seems to imply that the major version number would need to be incremented for each release, whenever there is a break in binary compatibility. Which I think would put you back in the position of needing multiple GLEW libraries on Linux. Which perhaps defeats the purpose of this effort.
I have not made up my mind, I'll go and see what debian and Fedora are doing in terms of library version numbering schemes, and think about what's appropriate for GLEW going forward.
Thanks again for raising this.
from glew.
Thanks for explaining that in detail. What you stated does makes sense from the OpenGL point of view.
I'll wait for you to complete your research.
from glew.
https://www.debian.org/doc/debian-policy/ch-sharedlibs.html
What I see on Ubuntu 14.04 seems consistent with the Debian conventions and what is built by the gnu make build.
$ objdump -p /usr/bin/glewinfo | grep NEEDED
NEEDED libGLEW.so.1.10
NEEDED libGL.so.1
NEEDED libX11.so.6
NEEDED libc.so.6
$ objdump -p /usr/lib/x86_64-linux-gnu/libGLEW.so.1.10.0 | grep NEEDED
NEEDED libGL.so.1
NEEDED libc.so.6
from glew.
$ ls -la /usr/lib/x86_64-linux-gnu/libGLEW*
lrwxrwxrwx 1 root root 19 Apr 13 12:49 /usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.10 -> libGLEWmx.so.1.10.0
-rw-r--r-- 1 root root 497728 Jan 2 2014 /usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.10.0
lrwxrwxrwx 1 root root 17 Jan 2 2014 /usr/lib/x86_64-linux-gnu/libGLEW.so -> libGLEW.so.1.10.0
lrwxrwxrwx 1 root root 17 Apr 13 12:49 /usr/lib/x86_64-linux-gnu/libGLEW.so.1.10 -> libGLEW.so.1.10.0
-rw-r--r-- 1 root root 555080 Jan 2 2014 /usr/lib/x86_64-linux-gnu/libGLEW.so.1.10.0
from glew.
If you think that the current way is the correct one to move forward, then lets close the PR.
I hadn't taken into account that ARB (and other EXT) API will keep getting moved around as new versions come along.
I look at this page for version numbering mostly: https://apr.apache.org/versioning.html
Assuming that API wouldn't break in newer versions, we could have done the so.1. But assuming its breaking, I think it fine to keep it the way it currently is.
from glew.
I'd like to keep this issue open, if you don't mind too much. There is some work going on to properly support core contexts. Even though there is no intention to break compatibility in a systematic way, I'm wondering if it's time to bump GLEW from version 1 to version 2. In which case it might also be an opportunity to revisit the version numbering scheme. I tend to think of GLEW as being in maintenance mode, and the primary goal is to avoid widespread disruption. But I'd be happy to encourage more discussion.
from glew.
Sounds good. I'll keep a watch for updates.
from glew.
Revisit for GLEW 2.2.0
from glew.
Related Issues (20)
- Port python scripts to python3 HOT 4
- Files missings during build HOT 2
- Am I hallucinating or is there no include folder in the repo? HOT 2
- Is CMakeLists.txt maintained? HOT 4
- Isnβt `dllimport` obsolete? HOT 11
- How do I compile with make include 32 bit on Ubuntu 64 Bit?
- Change CMake min version HOT 4
- Undefined references when compiling source HOT 3
- Building library fails on cmake and Makefile HOT 3
- CMakeLists is illformed
- arm64 on mac HOT 18
- Suddenly can't build GLEW anymore HOT 5
- definition of GLsizeiptr is inconsistent with Khronos gl32.h on armel and armhf HOT 1
- cmake: Undefined reference to glx functions when build with non-standard prefix path
- Bug - Files not found
- Regression testing of GLEW HOT 5
- The problem encountered when compiling with CMake on Windows HOT 2
- Could not make glew in Mac intel. several unknown type name HOT 1
- Building with MinGW LLVM: "unknown argument: -nostdlib, -soname"
- OSMesa build error under Ubuntu 24.04 and OsMesa 24.0.5 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from glew.