View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0004208 | Spring engine | Linux | public | 2013-12-13 16:29 | 2018-02-13 01:39 | ||||
Reporter | apoleon | ||||||||
Assigned To | Kloot | ||||||||
Priority | normal | Severity | minor | Reproducibility | always | ||||
Status | resolved | Resolution | fixed | ||||||
Product Version | 95.0 | ||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0004208: glshaderSource stub signature does not match that in <GL/glext.h>. | ||||||||
Description | While packaging the official Debian version of spring 95.0, I had to unbundle the libs under includes/GL and to use Debian's system libraries. However then spring fails to build from source because the glshaderSource stub in headlessStubs/glstub.c is outdated. I'm attaching a patch that resolved the issue. | ||||||||
Tags | No tags attached. | ||||||||
Checked infolog.txt for Errors | |||||||||
Attached Files |
|
![]() |
|
jK (developer) 2013-12-14 00:30 |
The files under include/* are fallbacks (esp. for headless build). Spring already uses your syslibs when available. |
apoleon (reporter) 2013-12-14 11:29 |
Hmm, interesting. Unfortunately I can't confirm this here for my local build. To reproduce the issue you can remove the complete include/* folder and try to build spring only with system libraries on Debian such as libsdl1.2-dev and libopenal-dev. Spring will FTBFS because of two distinct issues: 1. The buildsystem can't detect the correct include path for the SDL.h header files and errors out in rts/lib/headlessStubs/sdlstub.c for example. In Debian there is currently a patch in place to detect the correct SDL include path. I'm attaching this patch. (It could probably be improved). I'm using the default values of the buildsystem thus I get spring, spring-dedicated and spring-headless in the end. 2. The second one is the already reported glShaderSource bug. |
jK (developer) 2013-12-14 13:14 Last edited: 2013-12-14 13:16 |
> The files under include/* are fallbacks (>>esp. for headless build<<). The errors you get are from the headless build, which is a build without visual output (used for buildbot validation tests, AI testing, dedicated servers with AI support, ...). It uses `stubs` for SDL & GL, so we don't need heavy ifdef-flagging of all rendering code. It uses just uses the Headers of those libraries, it doesn't link SDL, GL nor OpenAL. |
apoleon (reporter) 2013-12-14 14:40 |
I think I understand the reasoning for the headless build. What I don't understand is why you include those header files at all. I have compared SDL.h in the include directory with the SDL.h version currently shipped with Debian. They are almost identical and the differences are just marginal. So the build fails because it requires the header files in include to be present but this seems redundant because almost the same header files are present as system libraries. I suggest that the headless build should not assume that the header files are in include/SDL or include/GL but in /usr/include/SDL/ and should be updated so that glShaderSource is up-to-date with current releases of SDL. I can confirm that both patch addresses this issue. |
jK (developer) 2013-12-14 14:44 Last edited: 2013-12-14 14:50 |
> I think I understand the reasoning for the headless build. What I don't understand is why you include those header files at all. I have compared SDL.h in the include directory with the SDL.h version currently shipped with Debian. They are almost identical and the differences are just marginal. The reasoning is that you want to be able to compile headless builds w/o having any of these libs installed (e.g. you compile headless often on pure servers with just ssh access and no gpu at all). -> it doesn't link any of these libs, so why should you install them to compile a binary that doesn't link those? esp. when those libs got a HUGE list of dependencies and always result in a full x11 install. |
apoleon (reporter) 2013-12-16 19:02 |
I still don't understand the reasoning. Debian builds spring always on headless servers without gpu, even without internet access. It's true that a lot of dependencies are pulled in but you can mitigate that by using a chroot-environment such as sbuild, pbuilder or cowbuilder for Debian. So in fact you just have to spend a little bit of disk space but you ensure that you are always compatible with the upstream header files of AL, GL and SDL. That's a huge benefit and you can avoid convenience copies and you still get a synced build. |
Kloot (developer) 2018-02-13 01:39 |
the headless GL headers were updated for 104, resolved afaict. |
![]() |
|||
Date Modified | Username | Field | Change |
---|---|---|---|
2013-12-13 16:29 | apoleon | New Issue | |
2013-12-13 16:29 | apoleon | File Added: glShaderSource.patch | |
2013-12-14 00:30 | jK | Note Added: 0012377 | |
2013-12-14 11:28 | apoleon | File Added: fix-sdl-build.patch | |
2013-12-14 11:29 | apoleon | Note Added: 0012383 | |
2013-12-14 13:14 | jK | Note Added: 0012385 | |
2013-12-14 13:15 | jK | Note Edited: 0012385 | View Revisions |
2013-12-14 13:16 | jK | Note Edited: 0012385 | View Revisions |
2013-12-14 14:40 | apoleon | Note Added: 0012386 | |
2013-12-14 14:44 | jK | Note Added: 0012387 | |
2013-12-14 14:44 | jK | Note Edited: 0012387 | View Revisions |
2013-12-14 14:45 | jK | Note Edited: 0012387 | View Revisions |
2013-12-14 14:46 | jK | Note Edited: 0012387 | View Revisions |
2013-12-14 14:50 | jK | Note Edited: 0012387 | View Revisions |
2013-12-16 19:02 | apoleon | Note Added: 0012412 | |
2016-01-13 14:33 | abma | Relationship added | related to 0005033 |
2018-02-13 01:39 | Kloot | Assigned To | => Kloot |
2018-02-13 01:39 | Kloot | Status | new => resolved |
2018-02-13 01:39 | Kloot | Resolution | open => fixed |
2018-02-13 01:39 | Kloot | Note Added: 0018804 |