Author Topic: Ubuntu 16.04 64 bit newbie  (Read 186 times)

0 Members and 1 Guest are viewing this topic.

Offline discoectoderm

  • 22
  • Posts: 5
Ubuntu 16.04 64 bit newbie
Hello everyone,

I've been wanting some of that sweet space combat goodness and decided to try and get Freespace 2 working again. I've managed to follow some of the guides online but they're quite outdated now (which is another idea) but I've run into some problems. I've done the following

1. Installed Freespace/Freespace 2 using Wine to extract the contents of the GOG setup file
2. Moved this Freespace2 directory to my media partition
3. Used the fso installer to download a bunch of mods to the Freespace2 directory
4. Downloaded and built the latest wxlauncher
5. Try and run wxlauncher and get the following error
../include/wx/strvararg.h(456): assert "(argtype & (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): format specifier doesn't match argument type
6. Can click through all these warnings and try and launch the executable and it fails.

I figured that this has something to do with the 32 bit executable, yet I'm pretty sure I have all the required libraries. Regardless I decided it would be better for me to build a 64bit version of the fs2open executable.

I then did the following:

1. git clone the fs2open repo
2. Use cmake to build the executable
3. Copy the executable to the Freespace2 directory
4. Set launcher to use this new executable
5. Executable fails with missing library

After building I noticed that there are many shared libraries in the build folder along with the executable.

Where should I place these libraries? Within the Freespace game directory? Some other shared location on the system? Modify the path? Change the build options for the executable/cmake?

Hopefully this is the correct place for the question. Also since now I have a working (presumably) build environment I could help build/test some for at least 64 bit Ubuntu. I have some software experience but am always willing to learn.

Thanks to all of you for the hard work.

 

Offline chief1983

  • Still lacks a custom title
  • Moderator
  • 212
  • Posts: 7,826
  • ⬇️⬆️⬅️⬅️À➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: Ubuntu 16.04 64 bit newbie
During cmake, it mentions that it is downloading and/or building several shared libraries.  If you don't plan on distributing your build I would just install those necessary libraries from apt, and re-configure cmake.  It will then link against those shared libraries instead.  Those would include ffmpeg (libavcodec), libsdl2, libjansson, libpng, libpjpeg, and I might be forgetting one or two.  You need the development versions of said libraries.  Basically, if it says it is compiling a library from source, you can probably install it via your package manager instead.  You'll get faster build times and less clutter in the build folder to boot.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 

Offline discoectoderm

  • 22
  • Posts: 5
Re: Ubuntu 16.04 64 bit newbie
During cmake, it mentions that it is downloading and/or building several shared libraries.  If you don't plan on distributing your build I would just install those necessary libraries from apt, and re-configure cmake.

Thanks for the great help. Do you have any suggestions on how to re-configure cmake for this build?


 

Offline chief1983

  • Still lacks a custom title
  • Moderator
  • 212
  • Posts: 7,826
  • ⬇️⬆️⬅️⬅️À➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: Ubuntu 16.04 64 bit newbie
I always just blow away the build directory and run cmake again to start it over.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 

Offline discoectoderm

  • 22
  • Posts: 5
Re: Ubuntu 16.04 64 bit newbie
Oh I see. If the libraries are already installed in the system, then cmake will notice that and build the executable against those system libraries.

If the libraries don't exist then cmake will go out and download them, then link against those local libraries?

 

Offline chief1983

  • Still lacks a custom title
  • Moderator
  • 212
  • Posts: 7,826
  • ⬇️⬆️⬅️⬅️À➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: Ubuntu 16.04 64 bit newbie
Some are downloaded (prebuilt libs like ffmpeg), some are already in our source tree (and built as necessary).  But if they are on the system already it will use them first, the other methods are used as fallbacks.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 

Offline discoectoderm

  • 22
  • Posts: 5
Re: Ubuntu 16.04 64 bit newbie
Thank you for all the help. I think I have the required libraries but now the issue seems to be with wxlauncher. I've built the latest released version from source and after launching it I get the following errors

One interesting thing is that the freespace open installer does not set the executable bit on the 3.7.4 executable, while the one I built which is 3.7.5 x64 is set as executable. In addition, I can simply launch the 3.7.5 and the game launches, but wxlauncher seems to be broken for me.

Any help would be much appreciated.

../include/wx/strvararg.h(456): assert "(argtype & (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): format specifier doesn't match argument type
../include/wx/strvararg.h(456): assert "(argtype & (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): format specifier doesn't match argument type
../include/wx/strvararg.h(456): assert "(argtype & (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): format specifier doesn't match argument type
../include/wx/strvararg.h(456): assert "(argtype & (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): format specifier doesn't match argument type
../include/wx/strvararg.h(456): assert "(argtype & (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): format specifier doesn't match argument type
../include/wx/strvararg.h(456): assert "(argtype & (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): format specifier doesn't match argument type
execvp(/media/shankar/data/Drive/backup/Software/Freespace/Freespace2/fs2_open_3.7.4, -get_flags) failed with error 13!
../src/common/ffile.cpp(143): assert "IsOpened()" failed in Write(): can't write to closed file

 

Offline discoectoderm

  • 22
  • Posts: 5
Re: Ubuntu 16.04 64 bit newbie
Also here's another error after immediately opening wxlauncher after a new build

ASSERT INFO:
../include/wx/strvararg.h(456): assert "(argtype & (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): format specifier doesn't match argument type

BACKTRACE:
[1] wxFileConfig::Parse(wxTextBuffer const&, bool)
[2] wxFileConfig::wxFileConfig(wxInputStream&, wxMBConv const&)
[3] ModList::ParseModIni(wxString const&, wxString const&, bool)
[4] ModList::ModList(wxWindow*, wxSize&, wxString)
[5] ModsPage::OnTCChanged(wxCommandEvent&)
[6] ModsPage::ModsPage(wxWindow*)
[7] MainWindow::MainWindow()
[8] wxLauncher::OnInit()
[9] wxAppConsoleBase::CallOnInit()
[10] wxEntry(int&, wchar_t**)
[11] main
[12] __libc_start_main
[13] _start



 

Offline niffiwan

  • 211
  • Posts: 3,659
  • Eluder Class
Re: Ubuntu 16.04 64 bit newbie
../include/wx/strvararg.h(456): assert "(argtype & (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): format specifier doesn't match argument type


This annoying (but non-fatal) error is usually caused by an error in a mod.ini file, somewhere. IIRC ASW1 & ASW2 from the installer ~might~ be the cause?

execvp(/media/shankar/data/Drive/backup/Software/Freespace/Freespace2/fs2_open_3.7.4, -get_flags) failed with error 13!


This I'm going to guess could be fixed by setting the execute bit on this file: /media/shankar/data/Drive/backup/Software/Freespace/Freespace2/fs2_open_3.7.4

Or is that doesn't work, try running it from the cmdline and checking the error.
Creating a fs2_open.log | Red Alert Bug = Hex Edit | MediaVPs 2014: Bigger HUD gauges | 32bit libs for 64bit Ubuntu
----
Linux OBS Packages: FSO 3.7.0 | FSO BP Build | wxLauncher (?) | PCS2 (?) | wxVPView (?)
Debian Packages (testing/unstable): Freespace2 | wxLauncher
----
m|m: I think I'm suffering from Stockholm syndrome. Bmpman is starting to make sense and it's actually written reasonably well...

 

Offline m!m

  • 210
  • Posts: 1,624
Re: Ubuntu 16.04 64 bit newbie
../include/wx/strvararg.h(456): assert "(argtype & (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): format specifier doesn't match argument type


This annoying (but non-fatal) error is usually caused by an error in a mod.ini file, somewhere. IIRC ASW1 & ASW2 from the installer ~might~ be the cause?
If it's the same error I am having then it's caused by a bug in wxWidgets 3.0 which was fixed in 3.1.

 

Offline niffiwan

  • 211
  • Posts: 3,659
  • Eluder Class
Re: Ubuntu 16.04 64 bit newbie
now I'm home I've checked; and my original ASW1/mod.ini file looked like this:

Code: [Select]
[launcher]
image255x112 = ASW.bmp;
modname      = ASW Act I;
infotext     = Relive the greatest war ever, 8000 years before the events of the Terran-Vasudan war. Join the Ancients during their time of glory, before becoming part of their struggle for survival in the face of a powerful, fearsome nemesis. Join the Ancient-Shivan War...
website      = http://www.sectorgame.com/ASW/;
forum        = http://www.sectorgame.com/forums/viewforum.php?f=54;

[multimod]
secondarylist = mediavps_3612;

[settings]
flags: -ship_choice_3d;

Remove or fix the last line and my instance of that assertion went away.
Creating a fs2_open.log | Red Alert Bug = Hex Edit | MediaVPs 2014: Bigger HUD gauges | 32bit libs for 64bit Ubuntu
----
Linux OBS Packages: FSO 3.7.0 | FSO BP Build | wxLauncher (?) | PCS2 (?) | wxVPView (?)
Debian Packages (testing/unstable): Freespace2 | wxLauncher
----
m|m: I think I'm suffering from Stockholm syndrome. Bmpman is starting to make sense and it's actually written reasonably well...