Hi all,
I'm trying to host a game of 8050. I'm running the Windows build of 8050, d/l'd from Sourceforge. Players running the Mac build of 8050 can connect fine, but the chap who's built 8050 on Linux from the git repo can't connect (and in fact crashes the server when he tries). We are pretty confident that we're building the right 8050 version, as the repo tracks the old version numbers. So does anyone have any other ideas about what could be going wrong?
(The exact same problem occurs if he tries to host and we try to connect to him, so the incompatibility is commutative.)
CC
Multiplayer version compatibility (8050)
Moderator: Oberlus
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13587
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Multiplayer version compatibility (8050)
What versions of Boost did everyone build against?
Re: Multiplayer version compatibility (8050)
I can look that up for the Linux build, but how do I find out which version was used to build the Sourceforge builds?Geoff the Medio wrote:What versions of Boost did everyone build against?
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13587
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Multiplayer version compatibility (8050)
At least on Windows, and I'd guess for OSC, the Boost shared library / DLL files have their version numbers in the file name, eg. "boost_signals-vc100-mt-1_56.dll" is Boost 1.56. These files should be in the main FreeOrion install directory, where the .exe is, on Windows, and similar files are probably in the OSX install directory.
Re: Multiplayer version compatibility (8050)
That's most likely because you did not turn off binary serialization. Binary serialization works with Mac and Windows, but not with Linux on one side and Mac or Windows on the other side.Magnate wrote:I'm trying to host a game of 8050. I'm running the Windows build of 8050, d/l'd from Sourceforge. Players running the Mac build of 8050 can connect fine, but the chap who's built 8050 on Linux from the git repo can't connect
Go to the options dialog, ""Other" tab, disable "Use Binary serialization" and try again. If that still doesn't work, report back.
Re: Multiplayer version compatibility (8050)
On OSX the boost libraries are statically linked, so you won't find anything inside the app bundle. However, I can of course tell which boost version the recent test builds used: 1.56.Geoff the Medio wrote:At least on Windows, and I'd guess for OSC, the Boost shared library / DLL files have their version numbers in the file name, eg. "boost_signals-vc100-mt-1_56.dll" is Boost 1.56. These files should be in the main FreeOrion install directory, where the .exe is, on Windows, and similar files are probably in the OSX install directory.
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13587
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Multiplayer version compatibility (8050)
Presumably there are ways, in Boost and the various other dependencies, to get the version numbers as text at compile or run time. Might be good to include them somewhere in the UI for all dependencies.
Re: Multiplayer version compatibility (8050)
For boost there are apparently two main ways to get the version at compile time, with different type/format characteristics. A form like "1_56" is available from BOOST_LIB_VERSION; the boost workaround hacks we've had to do lately use BOOST_VERSION, which for 1.56 is 105600, and for 1.57, 105700. A full way to parse that version number is described here. For runtime, I didn't see anything clearly indicating it was possible, although the build_info available via the boost unit test framework might be able to give it, it sounds like, but I didn't read up enough to be sure it wasn't just compile time still.Geoff the Medio wrote:Presumably there are ways, in Boost and the various other dependencies, to get the version numbers as text at compile or run time. Might be good to include them somewhere in the UI for all dependencies.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0
Re: Multiplayer version compatibility (8050)
Works a charm - thanks a million!Vezzra wrote:That's most likely because you did not turn off binary serialization. Binary serialization works with Mac and Windows, but not with Linux on one side and Mac or Windows on the other side.Magnate wrote:I'm trying to host a game of 8050. I'm running the Windows build of 8050, d/l'd from Sourceforge. Players running the Mac build of 8050 can connect fine, but the chap who's built 8050 on Linux from the git repo can't connect
Go to the options dialog, ""Other" tab, disable "Use Binary serialization" and try again. If that still doesn't work, report back.