News:

Simutrans Wiki Manual
The official on-line manual for Simutrans. Read and contribute.

Simutrans 120.4.1 download for Linux x64 doesn't seem to have an executable

Started by DThunder518, October 03, 2018, 04:30:46 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

DThunder518

Hello! I've been trying to get this latest version for my Linux machine, however when I download the ZIP:
file http://sourceforge.net/projects/simutrans/files/simutrans/120-4-1/simulinux-x64-120-4-1.zip/download

It has the usual files/file structure, but not the simutrans executable. I checked the 120-4-0 download and it seems to be the same way. Is there something I'm just not seeing/doing? So far I haven't had any problems with earlier versions. :-[
I apologize if this posting is in the wrong section, I wasn't sure where to do it.

Ters


An_dz

It definitely does not have the executable. I believe most users 'upgraded' without noticing the lack of the executable.

prissi

I just took it from the build server without looking inside (no linux at home any more). Will investigate.

Ters

I tried following the instructions in readme.txt (trying to build using the Ubuntu on Windows thingy), but the configure script mentioned does not exist after checking out. There appears to be a step missing: running autoconf.

userfriendly

Running the latest Ubuntu 18.04, using clang 6 / gcc 7.3, I'm able to build the latest version from GitHub's repository without any issues. Well, clang requires suppressing certain checks: -Wno-inconsistent-missing-override -Wno-c++11-narrowing I never used autotools for this project and manually copied and edited the config template (for both GCC and clang). You can regenerate the configure script with autoreconf -vfi but it will fail if you don't have svn. Anyway, I would suggest manually editing config.default file and giving it another go.
Just be good to each other.

Ters

I've been self-compiling Simutrans since way before autoconf, so I'm not used to using it for configuring Simutrans builds. I just thought I'd give the instructions in the readme a spin. After filling in the blanks, and figuring out the right things to install, I got an executable out of it. I could even run it using Xming. It wouldn't run on my actual Linux box, though, since Freetype would not statically link and the versions did not match.

userfriendly

Didn't realize you're a seasoned developer and correction - the configure script doesn't fail, just outputs an error message stating svn is not present. The config.default does get generated and make builds the executable. So it's probably something on the build server? I'm curious what the issue is, if that's the case.
Just be good to each other.

DanteLives

I'm on Ubuntu 18.04 and trying to get the latest version of Simutrans to work.

Guys, I seriously need the dummy version of the previous posts on what to do to compile 120.4.1. All I know to do in compiling is to install the needed libraries, run the configuration script, and run make. As noted above that isn't working. Linking libraries, manually editing configuration files, svn. . .  all that is beyond me without specific instruction.

user@host:~/simutrans source$ ./configure
bash: ./configure: No such file or directory

user@host:~/simutrans source$ make
Makefile:21: *** Unkown BACKEND "", must be one of "allegro gdi opengl sdl sdl2 mixer_sdl mixer_sdl2 posix".  Stop.

user@host:~/simutrans source$ -Wno-inconsistent-missing-override -Wno-c++11-narrowing
-Wno-inconsistent-missing-override: command not found

user@host:~/simutrans source$ autoreconf -vfi
autoreconf: 'configure.ac' or 'configure.in' is required


I have all the libraries listed in the readme file including lib2sdl-dev. I have clang 6 and gcc 7.

Ters

You need to run autoconf before ./configure. Alternatively, you can set up config.default manually.

DanteLives

Okay, prior to Ters' post about running autoconf I stumbled through and made some progress (it's compiling *crossed fingers). I copied config.default.in to config.default and changed these lines as follows:

BACKEND = sdl2
COLOUR_DEPTH = 16
OSTYPE = linux
# FLAGS = @flags@ @endian@

This caused make to run without exiting with an error. It's currently compiling. I'll come back and edit this post to report the result when it's done.

DanteLives

And. . .  *sigh* it exited with this error after much running:

===> LD  /home/user/simutrans
g++: error: source/sim: No such file or directory
common.mk:21: recipe for target '/home/user/simutrans' failed
make: *** [/home/user/simutrans] Error 1


I tried autoconf with this result:

user@host:~/simutrans source$ autoconf
autoconf: error: no input file

DanteLives

I am about to bang my head against a wall.  :( Here's what happened.

I compared config.default.in to default.template. From the comments towards the end of default.template I figured I needed to comment out these lines as so.

#MAKEOBJ_PROGDIR = $(shell pwd)
#NETTOOL_PROGDIR = $(shell pwd)
#PROGDIR  = $(shell pwd)

After that I ran make and it exited cleanly. And then. . . *drum roll* I found NO EXECUTABLE FILE. There's now a subdirectory titled "simutrans." When I go there the directory looks the same as the contents of simulinux-x64-12-4-1.zip. I compiled from simutrans-src-120-4-1.zip.

ARGH! (sorry, I had to get that out)

So, do I need to get different source files to compile from? What gives? How can a compiler work through a makefile and not produce an executable file? I thought that was the whole point of compiling.

BTW, I'm still not understanding autoconf. I've had it installed this whole time. The man file talks about needing a configure.in file for it. There is no configure.in file in the zip. Was I supposed to target config.default.in? Before or after editing that file? Either way it seems moot because I still have no executable after running make.

TurfIt


# Output directories:
#
# use this put objects file in same directory, where the sources are (not recommended):
# ... otherwise defaults to 'build/default')
#
# BUILDDIR = $(shell pwd)

DanteLives

The reply that I quote at the end of this post was not as helpful as it may have been intended to be. I'm uncertain what I was supposed to do with that information.

I found the build/default sub-directory. In it was a file called "sim." I try running that and it exited with an error that it couldn't find certain fonts. I can find the fonts myself in a sub-directory to simutrans, but the program said it was using the build/default directory as "work dir" and the simutrans directory is elsewhere.
user@host:~/simutrans source/build/default$ ./sim
Use work dir /home/user/simutrans source/build/default/
Reading low level config data ...
SDL Driver: x11
Error: Cannot open 'font/prop.fnt'
Error: Cannot open 'font/prop.fnt'
No fonts found!Error: No fonts found!


I'm seriously confused. I don't know if I need to change settings and recompile or if there are other settings I need to change.

Quote from: TurfIt on October 10, 2018, 10:17:01 PM

# Output directories:
#
# use this put objects file in same directory, where the sources are (not recommended):
# ... otherwise defaults to 'build/default')
#
# BUILDDIR = $(shell pwd)


userfriendly

Move the executable to the simutrans directory, within simutrans. Get the paks you desire and optionally get languages.

mv /home/user/simutrans/build/default/sim /home/user/simutrans/simutrans
cd /home/user/simutrans
./get_pak.h
# You may have to get the lang files as well, but I'm not sure.
# ./get_lang_files.sh
cd simutrans
./sim
Just be good to each other.

DanteLives

Just before I read userfriendly's reply I got it to work by doing the reverse: I moved everything in the simutrans directory into build/default. I then put a pak directory in there and it runs.

I feel like I just recreated Frankenstein's monster to get here. I've compiled programs before and I've never had to restructure directories or move files to get it to run. I did nothing like what the readme file says.

prissi

The readme has not even been touched when autoconf was added. I think it is seriously out of data. I was also never very keen on the build directory myself, so this is why the nightly fails to contain anything useful.

However, that you have to move other files to an executable is not very new, especially there are no pak sets with a default simutrans. Still it should be meantioned somewhere.

prissi

Ok, the new distribution scropt now takes folder location into account and also the readme has been updated.

Ters

Quote from: userfriendly on October 10, 2018, 11:26:31 PM
Move the executable to the simutrans directory, within simutrans. Get the paks you desire and optionally get languages.

mv /home/user/simutrans/build/default/sim /home/user/simutrans/simutrans
cd /home/user/simutrans
./get_pak.h
# You may have to get the lang files as well, but I'm not sure.
# ./get_lang_files.sh
cd simutrans
./sim


I think it's best to keep the build directories and the ones where you play Simutrans separate. After running make, copy the files from the simutrans subdirectory, and the executable from the sub-directory of the build directory, into where you want to have Simutrans installed. In my case, it is something like (cwd = ~/development/simutrans):

cp simutrans ~/simutrans
cp build/default/sim ~/simutrans/

(I don't bother renaming the executable from sim to simutrans.)
Then I manually download the english base text from the translator site, and copy in the pak set which I have also built myself.

Quote from: prissi on October 11, 2018, 03:39:16 AMThe readme has not even been touched when autoconf was added.
Then how can it even mention running configure?

prissi

There was a manual configure script almost ten years ago. Still, there was more obselete text.

Rossi

I just abolished all Windows Systems, and i would like to play the game not using steam on Linux, so is someone working on the executable issue?
It is very weird to download a game without any binary.... (120.4.1) for linux x64

Thanks!
Rossi

Ters

Binaries are not really the Unix way. In fact, I don't think there is any guarantee of binary compatibility between different Linux systems. While most Linux distributions ship binaries, that works because all the binaries are built by the Linux distro maker to work together. When upgrading from one version to another, it seems to often include replacing everything (although I do not have much sample size). Several Linux distros provide Simutrans, although some may lag behind due to lengthy verification phases, and Simutrans not being top priority.

Windows is the only platform I know that bends over backwards to ensure binary compatibility, and even they can't do it perfectly (mostly because application developers did not follow guidelines).

Rossi

I see the point that binaries are usually not the way to go. But you do provide nightly builds, and also binaries for steam. I just wanted to say that is very confusing for people that you offer downloads that are unusable, so i would suggest removing the download and giving a link to the repo and the compile instructions, and/or state that you have to use the packages provided for your OS or steam.

But as the nightly builds seem to work fine, why not also provide stable binaries with the notice that this may not run due to incompatibility issues?

prissi

I think a next release (with the new GUI) is anyway quite due. That will then have an executeable. Otherwise, the last stable is already so old, that most distributions should have then as the default package

Ters

Quote from: prissi on February 24, 2019, 01:00:48 PMOtherwise, the last stable is already so old, that most distributions should have then as the default package
Debian is due to stabilize 120.4.1 in March at the earliest. Ubuntu in April. Gentoo has only 120.2.2, and hasn't even stabilized that. OpenSUSE hasn't stabilized 120.4.1, but at least the package is made for the current stable release, so you don't have to mix and match. I can't find any official packages for the Fedora-family or the Slackware-family. (I don't know how much use the latter has. It may be dead.)


Ters


NNW

Annotation:
If you are using Linux Mint or Ubuntu: Get the 120.4 Zip File from Source Forge, the Binary from the Nightly and the LibPng12 Package from Ubuntu. This works for me with Linux Mint 19.1. As Mint is based on Ubuntu this should work on both Variants until the DEB Package Site is fixed, so you can use Synaptic to do it....