OpenXcom Forum
Modding => Released Mods => XPiratez => Topic started by: liamdawe on April 13, 2016, 03:39:22 pm
-
Hey there, since OpenXcom works multi-platform, what are the chances of getting Linux builds of this mod too?
-
I don't believe anyone is compiling Linux builds of Meridian's OXCE+ right now, but if you are willing to compile them yourself, it should be possible. Meridian has the link to his build on Github in the first post of his thread.
https://openxcom.org/forum/index.php/topic,4187.0.html
-
I'd too would be very interested, maybe someone may wnat to make a generic binary executable file (.bin) that may be relased within the next xpiratez update?
-
I've actually tried the Linux exe included in the linked post, but it complaints about a missing libSDL1.2, which I do have installed :(
-
I see. Well, I would refer all questions to that thread, as Meridian is the author of the current executable.
-
I've actually tried the Linux exe included in the linked post, but it complaints about a missing libSDL1.2, which I do have installed :(
I have almost no experience with Linux, sorry :(
If there are any Linux gurus here, please help.
PS: That Linux executable I shared in the post was compiled by me on Kubuntu (using Makefile.simple) and it works fine for me.
-
I compile it (and tweak some of the code) for my personal use. I think if you are a Linux user, you should just DIY, since that's sort of the point of Linux too ;)
Step 1: Make sure you have the dependencies (https://www.ufopaedia.org/index.php?title=Compiling_%28OpenXcom%29#Dependencies)
It's super easy to "sudo apt-get Package name", as they are listed between parenthesis on the webpage. Get them all, obviously. You can also use the command here (https://www.ufopaedia.org/index.php?title=Compiling_%28OpenXcom%29#Installing_Dependencies), presumably.
Step 2: Get the code
Either download it from the github webpage or git clone it. There are link in the first post of Meridian's exe to the github page.
Step 3: Compile
As listed in the page linked above, there are a few options. I have had success with CMake option (https://www.ufopaedia.org/index.php/Compiling_with_CMake_%28OpenXcom%29), although the webpage is now a bit confusing with information overload. So here's my checklist:
0. make installation directory (called "srcdir" in these notes)
1. git clone git@github.com:MeridianOXC/OpenXcom.git srcdir (or just move the files you downloaded from github into your srcdir)
2. {copy patched XCOM assets into srcdir/bin/data}
3. mkdir srcdir/build
4. cd srcdir/build
5. cmake ..
6. ccmake .. (this opens a little "gui-lite" in the terminal. Things to do in the gui are in {}
7. {set CMAKE_BUILD_TYPE to Release (or Debug if you want useful stack traces, but that slows the game a lot)}
8. {set CMAKE_INSTALL_PREFIX to /path/to/where/you/want/the/game/to/be/
9. {set DATADIR to define folder in which OpenXCom will look for the data subfolder (ex.: you can do /path/to/where/you/want/the/game/to/be/data/}
10. {configure, then generate and exit}
11. make -j3
12. make install
This will give you a "openxcom" executable in /path/to/where/you/want/the/game/to/be/bin/.
Next to the bin folder you'll also get a user folder, in which to put the Piratez files from the user directory that is in the archive that Dioxine distributes (it annoys me that you have to download the whole thing with a Windows executable and dig out the mod, but Dioxine is convinced Windows users are clueless about how to set things up and need everything pre-set.. so Linux users have to do the extra work).
I actually do things slightly differently, where I have separate user and data directories, so I run OpenXCom with a little script:
#!/bin/bash
usrPath='/path/to/where/you/want/the/user/folder/to/be/user'
cfgPath='/path/to/where/you/want/the/config/to/be/config'
dataPath='/path/to/where/you/want/the/data/to/be/data'
/path/to/where/you/want/the/game/to/be/bin/openxcom -user $usrPath -cfg $cfgPath -data $dataPath 1>/path/to/where/you/want/the/Log/to/be/XPiratezLog.txt 2>&1
This allows me to define a specific user directory, config directory and data directory, and to get a log of the executable in case it crashes so I can maybe have a bit of info on what went wrong. The user and data directories are especially useful as you can make 1000% sure that the game is looking where you want it to instead of wherever it might think the things are.
-
If you're on a 64-bit installation, the game won't run even if you install all the dependencies because the system will install the 64-bit versions by default while the program is 32-bit and needs 32-bit versions of the libraries it's referencing. To install the 32-bit versions of the dependencies, you have to have multiarch installed, and then specify that you want to install the 32 bit versions like so:
apt-get install X:i386
Replace X with each library (libsdl1.2, etc) until you have them all.
-
If you're on a 64-bit installation, the game won't run even if you install all the dependencies because the system will install the 64-bit versions by default while the program is 32-bit and needs 32-bit versions of the libraries it's referencing. To install the 32-bit versions of the dependencies, you have to have multiarch installed, and then specify that you want to install the 32 bit versions like so:
apt-get install X:i386
Replace X with each library (libsdl1.2, etc) until you have them all.
Are you sure? Or do you specifically refer to extended. I can't remember ever needing to do that on multiple machines, and except for 1 those are all 64 bit.
-
It might only be required for extended, or possibly my own configuration required manually installing 32 bit libraries instead of them being installed automatically. I can imagine, though I'm not sure, that there may be some setting I don't know about.
I revise my advice: If you are on a 64 bit system and you installed the dependencies but it still doesn't run, try manually specifying you want to install the 32 bit versions of the dependencies and try again.
-
I set up a buildbot that builds binaries on the three current ubuntu releases. Results can be had here: https://lxnt.wtf/oxem/
The bot should pick up any changes in github repo in a day or so.
Libyaml is 0.5.3 statically linked. Libsdl1.2 is pretty much the same across the releases, so the main difference would be the compilers, and gcc 5.2/5.3 spits way more warnings (than 4.8 in trusty).
-
I use Wine on OSX -- takes about 8 minutes to load but works great :D
-
Unfortunately, OSX builds on my system are not possible. OSX doesn't run very well under virtualization, not to mention this doesn't fit with the licensing stuff. That's why there's a bunch of companies renting out measly mac minis for like 80 euro a month.
-
Is your OSX too old for homebrew? I run the latest builds of OpenXcom on both OSX and Linux by running make -f Makefile.simple (OSX requires a small tweak though, there is a conflict of the boost library version).
-
Unfortunately, OSX builds on my system are not possible. OSX doesn't run very well under virtualization, not to mention this doesn't fit with the licensing stuff. That's why there's a bunch of companies renting out measly mac minis for like 80 euro a month.
Can't you run wine on Linux?
-
Can't you run wine on Linux?
Of course I can, but what this has to do with the lack of cross-compilers targeting OSX?
-
I've compiled OXCE on linux, but I haven't found any instructions on how to install the mod and only play Xpiratez on my windows computer from the pre-installed binary. Can anybody instruct me here?
-
You can probably use the one Meridian links to in his thread: https://openxcom.org/forum/index.php/topic,4187.0.html
If that doesn't work (it didn't for me), try:
git clone https://github.com/MeridianOXC/OpenXcom.git -b oxce3.0-plus-proto
mkdir OpenXcom/build
cd OpenXcom/build
sed -i "/ModScript.cpp/d" ../src/CMakeLists.txt
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j3
sudo make install
Then from Dioxine's XPiratez rar, copy user/mod into ~/.local/share/openxcom/ and user/options.cfg to ~/.config/openxcom/. Oh, and the UFO/TFTD files can go in ~/.local/share/openxcom/{UFO,TFTD}.
If that doesn't work it might help if your distro has a openxcom in its repo to get working first.
-
Frankly, the attempts to use standard data/user dirs on linux ( ~/.local, etc) are a bit of a mess.
I just extract the mod somewhere, for example ~/games/oxp99,
put the UFO:EU data into ~/games/oxp99/share/openxcom/UFO,
put the latest binary somewhere like ~/games/oxp99/bin/openxcom
then use a run.sh script to launch the game:
#!/bin/sh
prefix=/home/stdrd/games/oxp99
usrPath=$prefix/user
cfgPath=$usrPath
dataPath=$prefix
bin=$prefix/bin/openxcom
$bin -user $usrPath -cfg $cfgPath -data $dataPath
setting paths explicitly saves much time and hair-pulling
also, linux binaries are available here (https://lxnt.wtf/oxem/)
-
No precompiled binaries exist for Ubuntu 16.04 (Xenial) sadly.
-
You can probably use the one Meridian links to in his thread: https://openxcom.org/forum/index.php/topic,4187.0.html
If that doesn't work (it didn't for me), try:
git clone https://github.com/MeridianOXC/OpenXcom.git -b oxce3.0-plus-proto
mkdir OpenXcom/build
cd OpenXcom/build
sed -i "/ModScript.cpp/d" ../src/CMakeLists.txt
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j3
sudo make install
Then from Dioxine's XPiratez rar, copy user/mod into ~/.local/share/openxcom/ and user/options.cfg to ~/.config/openxcom/. Oh, and the UFO/TFTD files can go in ~/.local/share/openxcom/{UFO,TFTD}.
If that doesn't work it might help if your distro has a openxcom in its repo to get working first.
Where does the bin end up when you compile this way? The way I was doing it earlier it showed up in OpenXcom/bin/ but I can't find it this time.
-
No precompiled binaries exist for Ubuntu 16.04 (Xenial) sadly.
Here you go https://lxnt.wtf/oxem/builds/oxce3.0-plus-proto-4009675-2016-07-14-j11-xenial-x86_64.7z (https://lxnt.wtf/oxem/builds/oxce3.0-plus-proto-4009675-2016-07-14-j11-xenial-x86_64.7z) while I fix the names and rest of builds.
EDIT:
Okay, fixed it all, plus fancy lister w/sort: https://lxnt.wtf/oxem/ (https://lxnt.wtf/oxem/)
-
Where does the bin end up when you compile this way?
Make will create it in OpenXcom/build/bin, and make install should put it in /usr/local/bin. The build directory is just a way to keep the compilation separated from everything else so it's easy to remove when you bugger it up.
-
Something must have gone wrong, neither folders have anything in them.
This is what I got when I tried again.
collect2: error: ld returned 1 exit status
src/CMakeFiles/openxcom.dir/build.make:8577: recipe for target 'bin/openxcom' failed
make[2]: *** [bin/openxcom] Error 1
CMakeFiles/Makefile2:103: recipe for target 'src/CMakeFiles/openxcom.dir/all' failed
make[1]: *** [src/CMakeFiles/openxcom.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2
-
Something must have gone wrong, neither folders have anything in them.
Very strange that OpenXcom/build is empty. The cmake -DCMAKE_BUILD_TYPE=Release .. command should have left at least something there. Was there any output?
Besides, my buildbots don't use Cmake, they essentially do:
cd OpenXcom/src
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
make -j 8 -f Makefile.simple
The PKG_CONFIG_PATH is needed since OpenXcom doesn't work with libyaml-cpp version 0.5.2, so you need to get version 0.5.3 from https://github.com/jbeder/yaml-cpp/releases/tag/release-0.5.3 (https://github.com/jbeder/yaml-cpp/releases/tag/release-0.5.3), install its build dependencies - libboost-dev package, build and install it under /usr/local prefix. (And preferably also uninstall libyaml-cpp-dev package).
Then you can run the above commands and it'll put the binary in OpenXcom/bin.
-
I used to be able to compile by using
make -f Makefile.simple
as instructed on https://www.ufopaedia.org/index.php/Compiling_with_Make_(OpenXcom)
-
I used to be able to compile by using make -f Makefile.simple
as instructed on https://www.ufopaedia.org/index.php/Compiling_with_Make_(OpenXcom)
Did it cease to work? Any error output (simple makefiles are that much simpler to debug than CMake) ?
Because I have no problems building it that way. In any case, it seems some dependency is missing. Could you post more output?
PS: CMake build indeed seems to be broken. Here's the fix: https://github.com/MeridianOXC/OpenXcom/pull/4 (https://github.com/MeridianOXC/OpenXcom/pull/4)
-
Oh yeah,
make -f Makefile.simple
worked. And I got the mod installed. But I do see how this method is messier and wonder why the other way wasn't working.
-
Oh yeah, make -f Makefile.simple
worked. And I got the mod installed. But I do see how this method is messier and wonder why the other way wasn't working.
Possible this: https://openxcom.org/forum/index.php/topic,4187.msg67028.html#msg67028
Couple of releases of OXCE and OXCE+ have bugged cmake script. It will be fix in next version (meanwhile you can cherry-pick this commit https://github.com/Yankes/OpenXcom/commit/19feeef6bd2a1d9868ff77ffccd03197926c6c1e to fix it).
-
Possible this: https://openxcom.org/forum/index.php/topic,4187.msg67028.html#msg67028
Couple of releases of OXCE and OXCE+ have bugged cmake script. It will be fix in next version (meanwhile you can cherry-pick this commit https://github.com/Yankes/OpenXcom/commit/19feeef6bd2a1d9868ff77ffccd03197926c6c1e to fix it).
I managed to make it work with https://github.com/MeridianOXC/OpenXcom/pull/4 (https://github.com/MeridianOXC/OpenXcom/pull/4)
Seemed faster to just patch than to search the forum. But whatever.
The archives with linux binaries now contain all data files so that there's one less step when installing from scratch (no need to download 2016-07-08-OpenXcomExPlus31-full.zip, just extract the linux archive on top of the mod).
https://lxnt.wtf/oxem/ (https://lxnt.wtf/oxem/)
Please ignore 'oxce3.0' in the file name, it does not mean the builds are not 3.2 or whatever latest version there is.
Instead pay attention to the date in the file name, and download the latest.
Builds commence within an hour of any updates appearing on the github.
-
Tryed in Ubuntu 16.04, but in terminal got error:
error while loading shared libraries: libSDL_gfx.so.15: cannot open shared object file: No such file or directory
because 16.04 uses a different version of libSDL. any ways to install other version of these libraries? Thanks :)
-
Tryed in Ubuntu 16.04, but in terminal got error:
error while loading shared libraries: libSDL_gfx.so.15: cannot open shared object file: No such file or directory
because 16.04 uses a different version of libSDL. any ways to install other version of these libraries? Thanks :)
Ubuntu 16.04 is called Xenial Xerus.
Did you download the archive with 'xenial' in its name?
-
Ubuntu 16.04 is called Xenial Xerus.
Did you download the archive with 'xenial' in its name?
Yes, thanks i know :) Downloaded the highlighted file found in this post (https://openxcom.org/forum/index.php/topic,4526.msg67283.html#msg67283) and executed it via terminal because in nautilus, once givwn the executable permission, double clicking on it had no effects at all. Of course, i'm on a x86_64 laptop.
-
Please make sure the package
libsdl-gfx1.2-5:amd64
is installed.
Please post the output of the following command:
dpkg-query -l | grep sdl
-
Thnaks, but for the toppic's sake, here's may be the continue (https://openxcom.org/forum/index.php/topic,4923.0.html) :)