What is needed for a proper Mac support
Moderator: Moderators
What is needed for a proper Mac support
What is needed for proper Mac support
Ive heard rumors that a decent build bot is the missing article?
Is that the case, if so ill try and sort something out.
What we need is a true Mac App - one file, in Applications - done.
Ive heard rumors that a decent build bot is the missing article?
Is that the case, if so ill try and sort something out.
What we need is a true Mac App - one file, in Applications - done.
- Silentwings
- Posts: 3720
- Joined: 25 Oct 2008, 00:23
Re: What is needed for a proper Mac support
I would guess that what is needed is for someone who uses a mac to regularly self-compile and work out how to solve the compile errors it produces.
Re: What is needed for a proper Mac support
Is there such a person around?
- Silentwings
- Posts: 3720
- Joined: 25 Oct 2008, 00:23
Re: What is needed for a proper Mac support
Currently, afaik, no; there have been requests for a mac user to volunteer.
Re: What is needed for a proper Mac support
- basicly a osx buildslave: http://springrts.com/phpbb/viewtopic.ph ... 16#p563216What is needed for proper Mac support
(osx >=10.7, 2GB RAM/64bit/maybe 15GB of disk space)
- "housing" for the machine, should be 24/7 available, ideally with ssh root access to installed required libs, normal user access should work, too.
- as it mostly does upload stuff, upload speed should be to slow, imo >=1MBIT should be fast enough.
ideally the person who "supports" the housing should have some c++ and administrator knowledge.
thats a basic howto get it compile / setup the buildslave
http://springrts.com/wiki/Building_Spring_on_MacOSX
very likely it doesn't compile atm, but it should be a good start for how to set it up.
Re: What is needed for a proper Mac support
I'm looking at the build process, unfortunately, I made C++ 10 years ago, so I'm a little outdated on the subject.
Currently, I still have 4 differents build errors,
- 1 related to openGL
- 1 about boost linkage (libstdc++ difference with installed version)
- 1 about C++
- 1 about libunwind
I'm trying directly on 10.10, but I should be able to get an old mac to build on 10.9 too.
Currently, I still have 4 differents build errors,
- 1 related to openGL
- 1 about boost linkage (libstdc++ difference with installed version)
- 1 about C++
- 1 about libunwind
I'm trying directly on 10.10, but I should be able to get an old mac to build on 10.9 too.
Re: What is needed for a proper Mac support
Made an attempt to compile spring for 10.10
1) libc++ vs libstdc++
So far only boost as dependecy is restricted to libstdc++. Compile boost1.57 with gcc4.9 from macports. Solved so far.
Also clang/libc++ is the default one for OS X >= 10.9 so maybe it is better to teach spring clang.
2) couldn't find libunwind
There is system libunwind (in Cocoa framework?). With little modification to CMakeLists.txt it is solved.
3) several compile errors.
Patched few places in dirty manner (libunwind doesn't work properly). Solved but patch needs testing and refinement.
4) On spring loading - crashed at "OpenAL info: ... Available devices:"
Not solved. Will try no-audio or fix libunwind later.
Updated.
1) libc++ vs libstdc++
So far only boost as dependecy is restricted to libstdc++. Compile boost1.57 with gcc4.9 from macports. Solved so far.
Also clang/libc++ is the default one for OS X >= 10.9 so maybe it is better to teach spring clang.
2) couldn't find libunwind
There is system libunwind (in Cocoa framework?). With little modification to CMakeLists.txt it is solved.
3) several compile errors.
Patched few places in dirty manner (libunwind doesn't work properly). Solved but patch needs testing and refinement.
4) On spring loading - crashed at "OpenAL info: ... Available devices:"
Not solved. Will try no-audio or fix libunwind later.
Updated.
Re: What is needed for a proper Mac support
impossible, it won't sync! gcc must be used!lamer wrote:Also clang/libc++ is the default one for OS X >= 10.9 so maybe it is better to teach spring clang.
can you create a pull request when you solve errors please?
Re: What is needed for a proper Mac support
With no-sound spring loads.
Tested Kernel Panic and Balanced Annihilation (only singleplayer for few minutes).
KP4.6 and BA8.06 fails on load with error
(CrashHandler still broken, nothing interesting there)
With --safemode BA plays fine (some camera issues but thats could be due new engine features). Couldn't test latest ZK (it works on linux with 98.0.1-218 engine for sure) as they don't provide sdz packages anymore.
Tested Kernel Panic and Balanced Annihilation (only singleplayer for few minutes).
KP4.6 and BA8.06 fails on load with error
Code: Select all
[f=0000000] [LuaIntro] Loading widgets <>=vfs **=raw ()=unknown
[f=0000000] [LuaIntro] Loading widget: Circuit Growth <circuitgrowth.lua>
[f=0000000] [LuaIntro] Loading widget: LoadProgress <loadprogress.lua>
[f=0000000] [LuaIntro] LuaIntro v1.0 (Lua 5.1)
terminate called after throwing an instance of 'opengl_error'
what(): Could not activate worker rendering context
[f=0000000] [CrashHandler] Error: Abort trap: 6 (SIGABRT) in spring 98.0.1-218-g340f70e develop
[f=0000000] [CrashHandler] Error: Halted Stacktrace for Spring 98.0.1-218-g340f70e develop using libunwind:
With --safemode BA plays fine (some camera issues but thats could be due new engine features). Couldn't test latest ZK (it works on linux with 98.0.1-218 engine for sure) as they don't provide sdz packages anymore.
Yes. But public pr must wait as there is still issues (opengl, sound, crashhandler) and holidays are coming.can you create a pull request when you solve errors please?
Re: What is needed for a proper Mac support
For those who'd like to early test compilation and desyncs (OS X 10.10, engine 98.0.1-218).
#1 macports
#2 boost
Download src and compile with gcc49.
Unfortunately i forgot actual steps .
#3 download and install java (jdk) for less compile errors or JavaAI support.
#4 get spring with dirty fixes
#5 install
For testing purpose just copy games + maps into spring, place AI interface and skirmish AI into proper places.
Place "Fullscreen = 0" into springsettings.cfg
#6 run
You may try to compile without NO_SOUND flag, fails to run for me.
Camera is a bit broken: do not zoom too much or it will start act like scrolling.
#1 macports
Code: Select all
sudo port install gcc49 cmake libdevil p7zip libvorbis libsdl2 freetype glew xorg-libXcursor
sudo port select --set gcc mp-gcc49
Download src and compile with gcc49.
Unfortunately i forgot actual steps .
#3 download and install java (jdk) for less compile errors or JavaAI support.
#4 get spring with dirty fixes
Code: Select all
git clone https://github.com/rlcevg/spring.git
git checkout dirty_osx
cmake . -DCMAKE_CXX_COMPILER=/opt/local/bin/g++-mp-4.9 -DCMAKE_C_COMPILER=/opt/local/bin/gcc-mp-4.9 -DGLEW_INCLUDE_DIR=/opt/local/include/GL -DCMAKE_INCLUDE_PATH=/path/to/our/boost -DCMAKE_LIBRARY_PATH=/path/to/our/boost/stage/lib -DNO_SOUND=1
make spring -j8
For testing purpose just copy games + maps into spring, place AI interface and skirmish AI into proper places.
Place "Fullscreen = 0" into springsettings.cfg
#6 run
Code: Select all
DYLD_LIBRARY_PATH=/path/to/our/boost/stage/lib ./spring --safemode
Camera is a bit broken: do not zoom too much or it will start act like scrolling.
Re: What is needed for a proper Mac support
We have a working spring running on OS X (develop branch from git), without sound, no safemode needed, and no grave artefact. (only saw the color from jammer being red and green instead of red :)
http://manu.agat.net/screen00005.png
I'll have a try on the v98 to try some online gaming, and after that see how to package it correctly.
Next week, I'll get a mac at work to set up a buildbot.
Nice work for developers to have such a easy compilation possible on OS X :p
http://manu.agat.net/screen00005.png
I'll have a try on the v98 to try some online gaming, and after that see how to package it correctly.
Next week, I'll get a mac at work to set up a buildbot.
Nice work for developers to have such a easy compilation possible on OS X :p
Re: What is needed for a proper Mac support
Sound fix is coming (1 line fix :D ) and libunwind (just a matter of stacktrace symbolication) too.
But can't cope with opengl fix, doesn't work for me without --safemode yet
But can't cope with opengl fix, doesn't work for me without --safemode yet
Re: What is needed for a proper Mac support
I've made a online gaming, this was harder. springlobby from git use wx which I had compiled with libc++ :/
the 0.201 was already working, but when it detect a mod, it crash, ... Had to rename the mod, join a game, rename the mod, and so I can join a running game .
for those interested, my github is https://github.com/moobyfr/spring for my config
the 0.201 was already working, but when it detect a mod, it crash, ... Had to rename the mod, join a game, rename the mod, and so I can join a running game .
for those interested, my github is https://github.com/moobyfr/spring for my config
Re: What is needed for a proper Mac support
what about a pull request?
Re: What is needed for a proper Mac support
As soon we understand why my version works, and not 'lamer' 's version
Re: What is needed for a proper Mac support
what doesn't work for lamer?
if it crashes, try to set DebugGL=1 and see if some error before the crash appears in infolog.txt.
if this isn't not useful, try with gdb attached to spring, i.e.
if it crashes, try to set DebugGL=1 and see if some error before the crash appears in infolog.txt.
if this isn't not useful, try with gdb attached to spring, i.e.
if the stacktrace isn't useful, create a debug build.gdb ./spring
> run
.... wait till it crashes
> bt
Re: What is needed for a proper Mac support
I think i stuck with compatibility profile that describes only version 2.1
Here is description
Thread describes how to overcome the issue.
But now i ran into
Digging deeper
Here is description
Thread describes how to overcome the issue.
But now i ran into
Code: Select all
Needed OpenGL extension(s) not found:
GL_ARB_multitexture GL_ARB_texture_env_combine GL_ARB_texture_compression
Update your graphic-card driver!
Graphic card: NVIDIA GeForce GTX 670 OpenGL Engine
OpenGL version: 4.1 NVIDIA-10.0.43 310.41.05f01
Re: What is needed for a proper Mac support
Looks like spring is bound to OpenGL 2.1 + GLSL 1.2 on OS X. As when i try to run higher GL version with
it fails to get some old extensions and screen is black.
Also found last broken part of the puzzle. Now everything works.
Except compiling in debug mode - it has illegal instructions and failing asserts :)
PR
Code: Select all
SDL_GL_SetAttribute( SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE );
Also found last broken part of the puzzle. Now everything works.
Except compiling in debug mode - it has illegal instructions and failing asserts :)
PR
Re: What is needed for a proper Mac support
Spent some time with springlobby trying to compile it with libstdc++. Main issue is wxWidgets 3.0, it won't compile.
With gcc4.9 following error occurs on ./configure (10.6 >= MacOSX.sdk <= 10.8 ):
wxWidgets with clang, -std=gnu++98 -stdlib=libstdc++, sdk 10.6 and dependencies + app with gcc4.9: compiles, links but springlobby.app crashes with
With sdk >= 10.9 wxWidgets shouldn't compile for libstdc++, because it links with system libs and they are libc++.
Now why would we want libstdc++ wxWidgets when springlobby is running fine with libc++? Because it fails to load libunitsync (libstdc++) on request.
1) Is there an easy way to forbid springlobby from using libunitsync?
As alternative to springlobby maybe it is possible to modify flobby for OS X if it doesn't use libunitsync.
2) Any other suggestions? Weblobby?
With gcc4.9 following error occurs on ./configure (10.6 >= MacOSX.sdk <= 10.8 ):
Code: Select all
...
checking if __CF_USE_FRAMEWORK_INCLUDES__ is required... configure: error: in `/Users/bob/devel/spring/wxWidgets-3.0.2/builddir':
configure: error: no. CoreFoundation not available.
Code: Select all
springlobby(2620,0x7fff7e917300) malloc: *** error for object 0x7fff7e749a30: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6
Now why would we want libstdc++ wxWidgets when springlobby is running fine with libc++? Because it fails to load libunitsync (libstdc++) on request.
1) Is there an easy way to forbid springlobby from using libunitsync?
As alternative to springlobby maybe it is possible to modify flobby for OS X if it doesn't use libunitsync.
2) Any other suggestions? Weblobby?
Re: What is needed for a proper Mac support
I think weblobby is supposed to work on mac, but you might have to compile it and my info is not fresh.
!invok ikinz
!invok ikinz