Compile master branch

You can get help here if Freeciv doesn't start on your computer, or if you keep getting fatal errors while playing etc.
nutzer
Posts: 14
Joined: Sun Oct 15, 2017 10:01 am

Compile master branch

Postby nutzer » Fri Jan 25, 2019 11:48 am

Is the "master" branch in GitHub meant to be configurable and compileable? I can configure and compile release 2.6.0 but when I try configure in the master branch I receive "configure: error: cannot find install-sh, install.sh, or shtool in bootstrap "."/bootstrap". Any help?

Ignatus
Veteran
Posts: 133
Joined: Mon Nov 06, 2017 12:05 pm
Location: St.Petersburg, Russia
Contact:

Re: Compile master branch

Postby Ignatus » Fri Jan 25, 2019 2:36 pm

The master branch should once become 3.1 version and it's a far future. But usually it compiles. File a ticked on HRM.

cazfi
Elite
Posts: 1603
Joined: Tue Jan 29, 2013 6:54 pm

Re: Compile master branch

Postby cazfi » Sat Jan 26, 2019 9:25 am

When building directly from version control, and not from a tarball prepared from it, one needs to run ./autogen.sh.

nutzer
Posts: 14
Joined: Sun Oct 15, 2017 10:01 am

Re: Compile master branch

Postby nutzer » Mon Jan 28, 2019 9:12 am

Thanks, I realised it and run it. But I have a problem with the "sqlite3" library. Ubuntu Linux reports that a newer version is already installed (in fact I installed it). But that isn't what configure expects. Also, "libsqlite3" is an unknown package name for the system. Any help?

cazfi
Elite
Posts: 1603
Joined: Tue Jan 29, 2013 6:54 pm

Re: Compile master branch

Postby cazfi » Mon Jan 28, 2019 10:14 am

nutzer wrote:Thanks, I realised it and run it. But I have a problem with the "sqlite3" library. Ubuntu Linux reports that a newer version is already installed (in fact I installed it). But that isn't what configure expects. Also, "libsqlite3" is an unknown package name for the system. Any help?

Sqlite is a program that uses libsqlite. You need the library and it's development files, not the program. I assume you already have the library, but not the development package. That's called "libsqlite3-dev" at least in my Debian system
(Checking with 'apt-cache search libsqlite3', the library package itself seems to be named "libsqlite3-0")

nutzer
Posts: 14
Joined: Sun Oct 15, 2017 10:01 am

Re: Compile master branch

Postby nutzer » Tue Jan 29, 2019 11:53 am

Great, I can compile now following your advice! - I have a few problems in understanding. After I installed the libs for GTK3, configure does not offer the GTK2 frontend any more. Has this a technical background or is it a design decision? Actually, I'm not a great friend of the GTK3 client because of unfavorable design decisions. a) the font in help texts and city window is way too small on my screen, so it is very difficult to pick up information (very bad!), b) I am used to have the action panel on the left side, so I don't like to see it on the right. c) GTK3 is more difficult to handle widgetwise, e.g. its scroll-bars seem to be smaller or less reactive. - Is it possible to compile the GTK2 client when the 3 version is installed?

Second, for what is the server using a database, in a course nutshell?

cazfi
Elite
Posts: 1603
Joined: Tue Jan 29, 2013 6:54 pm

Re: Compile master branch

Postby cazfi » Tue Jan 29, 2019 3:32 pm

There's no gtk2-client in master any more (upstream support for gtk2 is only getting worse). In S2_6 and S3_0 branches gtk3-client is the default that configure selects by default if possible. You can select another client, or even multiple, with --enable-client (e.g. --enable-client=gtk2). I recommend checking "./configure --help' for full list of configure options that you may want to play with.

The database in server is used for user authentication, when enabled in a public server. Also the modpack installer uses database for storing data about installed modpacks.

nutzer
Posts: 14
Joined: Sun Oct 15, 2017 10:01 am

Re: Compile master branch

Postby nutzer » Fri Feb 01, 2019 10:49 am

My intuitive understanding of 'configure' was that all possible (compileable) client version would be marked in the result text, but this isn't so. Only the requested client type is reported with 'yes'/'no' all others with 'no'. I requested 'all' client types and QT wasn't in the results.

The problem with QT is the same as with GTK3: no idea what the library names are. I searched after the abstract names given in the INSTALL docu and I reached at: libqt5core5a, libqt5gui5, libqt5widgets5 libraries in Ubuntu/Debian. A call to install them rendered "already there" but obviously this isn't enough for configure to be happy.

I suggest to found a project to identify all required library names in some of the most important Linux environments. I'm willing to help if I can but some expert is required to name the right modules.

cazfi
Elite
Posts: 1603
Joined: Tue Jan 29, 2013 6:54 pm

Re: Compile master branch

Postby cazfi » Fri Feb 01, 2019 11:19 am

I don't know why Debian has used such an deviation from their usual package naming conventions, but one gets qt5 development files by installing 'qt5-default'.

louis94
Hardened
Posts: 209
Joined: Thu Apr 25, 2013 10:17 pm
Location: Belgium

Re: Compile master branch

Postby louis94 » Sat Feb 02, 2019 9:41 pm

cazfi wrote:I don't know why Debian has used such an deviation from their usual package naming conventions, but one gets qt5 development files by installing 'qt5-default'.

qt5-default doesn't install any header; the -dev package is qtbase5-dev. qt5-default makes Qt 5 the system-wide default (for qmake & friends) and there's a corresponding qt4-default.