[solved]- Trying to build older release 1.10.7 on Debian 10.x

Get help with compiling or installing the game, and discuss announcements of new official releases.

Moderator: Forum Moderators

Post Reply
mzs_47
Posts: 5
Joined: August 2nd, 2018, 6:18 pm

[solved]- Trying to build older release 1.10.7 on Debian 10.x

Post by mzs_47 »

I am trying to build it on Debian 10.x, but it fails. I tried with 1.12.6 and it got built on the same machine. Below are the snippets for 1.10.7.

I generated the build files:

Code: Select all

$ cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/user/usr  -DENABLE_NLS=OFF
After that the make stage fails:

Code: Select all

$ make
CMake Deprecation Warning at CMakeLists.txt:15 (cmake_policy):
  The OLD behavior for policy CMP0005 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.


-- Boost version: 1.67.0
-- Found the following Boost libraries:
--   iostreams
--   program_options
--   regex
--   system
-- Could NOT find Gettext (missing: GETTEXT_MSGMERGE_EXECUTABLE GETTEXT_MSGFMT_EXECUTABLE) 
-- Using FriBiDi: /usr/lib/x86_64-linux-gnu/libfribidi.so
-- Checking for module 'dbus-1'
--   No package 'dbus-1' found
Could not find dbus-1, Disabling notification support.
-- Configuring done
-- Generating done
-- Build files have been written to: /home/user/Downloads/personal/wesnoth/wesnoth-1.10.7
[  0%] Building CXX object src/CMakeFiles/wesnoth-game.dir/arrow.cpp.o
[  1%] Building CXX object src/CMakeFiles/wesnoth-game.dir/builder.cpp.o
[  1%] Building CXX object src/CMakeFiles/wesnoth-game.dir/cavegen.cpp.o
[  1%] Building CXX object src/CMakeFiles/wesnoth-game.dir/clipboard.cpp.o
[  1%] Building CXX object src/CMakeFiles/wesnoth-game.dir/construct_dialog.cpp.o
[  2%] Building CXX object src/CMakeFiles/wesnoth-game.dir/cursor.cpp.o
[  2%] Building CXX object src/CMakeFiles/wesnoth-game.dir/display.cpp.o
[  2%] Building CXX object src/CMakeFiles/wesnoth-game.dir/events.cpp.o
[  2%] Building CXX object src/CMakeFiles/wesnoth-game.dir/font.cpp.o
/home/user/Downloads/personal/wesnoth/wesnoth-1.10.7/src/font.cpp: In function ‘bool add_font_to_fontlist(config&, std::vector<font::subset_descriptor>&, const string&)’:
/home/user/Downloads/personal/wesnoth/wesnoth-1.10.7/src/font.cpp:1215:2: error: this ‘if’ clause does not guard... [-Werror=misleading-indentation]
  if (!font)
  ^~
/home/user/Downloads/personal/wesnoth/wesnoth-1.10.7/src/font.cpp:1218:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
   fontlist.push_back(font::subset_descriptor());
   ^~~~~~~~
/home/user/Downloads/personal/wesnoth/wesnoth-1.10.7/src/font.cpp: In member function ‘void font::{anonymous}::text_surface::bidi_cvt()’:
/home/user/Downloads/personal/wesnoth/wesnoth-1.10.7/src/font.cpp:508:17: error: ignoring return value of ‘FriBidiLevel fribidi_log2vis(const FriBidiChar*, FriBidiStrIndex, FriBidiParType*, FriBidiChar*, FriBidiStrIndex*, FriBidiStrIndex*, FriBidiLevel*)’, declared with attribute warn_unused_result [-Werror=unused-result]
  fribidi_log2vis(bidi_logical, n, &base_dir, bidi_visual, NULL, NULL, NULL);
  ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [src/CMakeFiles/wesnoth-game.dir/build.make:167: src/CMakeFiles/wesnoth-game.dir/font.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:346: src/CMakeFiles/wesnoth-game.dir/all] Error 2
make: *** [Makefile:152: all] Error 
I tried using scons and it fails with a different error:

Code: Select all

$ scons
scons: Reading SConscript files ...
Saved options: default_targets = 'wesnoth,wesnothd'
Building Wesnoth version 1.10.7
AttributeError: 'module' object has no attribute 'config_checks':
  File "/home/user/Downloads/personal/wesnoth/wesnoth-1.10.7/SConstruct", line 269:
    configure_args = dict(custom_tests = init_metasconf(env, ["cplusplus", "python_devel", "sdl", "boost", "pango", "pkgconfig", "gettext", "lua"]), config_h = "config.h",
  File "./scons/metasconf.py", line 8:
    config_checks.update(module.config_checks)
Last edited by mzs_47 on October 10th, 2020, 8:00 pm, edited 1 time in total.
User avatar
Pentarctagon
Project Manager
Posts: 5526
Joined: March 22nd, 2009, 10:50 pm
Location: Earth (occasionally)

Re: Trying to build older release 1.10.7 on Debian 10.x

Post by Pentarctagon »

For cmake, you could try disabling ENABLE_STRICT_COMPILATION, since that's what's turning the warnings into errors. For scons it looks like some function was removed in the newer version in Debian 10 though, so that'd likely take additional effort to fix.
99 little bugs in the code, 99 little bugs
take one down, patch it around
-2,147,483,648 little bugs in the code
Shiki
Developer
Posts: 348
Joined: July 13th, 2015, 9:53 pm
Location: Germany

Re: Trying to build older release 1.10.7 on Debian 10.x

Post by Shiki »

Hi mzs_47.

The clue is to not take the last release, but the last commit from that branch — there were added additional patches over time, just to keep them buildable.

AFAIK every stable branch can be built. Some time ago I compiled all branches, I left explanations about it in the script for Arch, also with instructions for Debian. And adjusted launcher files and such, to keep them installable side by side. Some people write blog posts about how to install software … I commented the script :-p Have a look here: https://aur.archlinux.org/cgit/aur.git/ ... snoth-1.10
Try out the dark board theme.
mzs_47
Posts: 5
Joined: August 2nd, 2018, 6:18 pm

Re: Trying to build older release 1.10.7 on Debian 10.x

Post by mzs_47 »

Thank you !

Shiki, glad to know that community tries to build the old releases and keep them build ready, thank you!
It compiled even with the warnings(after disabling 'strict build', like Pentarctagon mentioned).

For any cmake newbie like me(who might stumble around this), I modified the cmake line, like below:

Code: Select all

cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/user/usr  -DENABLE_NLS=OFF -DENABLE_STRICT_COMPILATION=OFF

After the build, it complained about the data dir, I found out the config necessary by passing

Code: Select all

./wesnoth --help
Something like:

Code: Select all

./wesnoth --data-dir /path/to/the/untarred/source
The other interesting thing I found is, there are third party servers allowing multiplayer for 1.10 version! One of my cousin still plays 1.10, so all this exercise was to build and play some maps with him! And 1.12 build was required to play sxrpg(Thanks to duuuude for introducing this to me).
https://wiki.wesnoth.org/MultiplayerServers

The only remaining bummer is, add-ons.wesnoth.org does not work for 1.10:

Code: Select all

20201011 01:22:07 warning network: Failed to connect to 144.76.5.6: Connection refused
20201011 01:22:07 warning network: Failed to connect to 2a01:4f8:190:8005:1111::120: Network is unreachable
20201011 01:22:07 error network: Tried all IPs. Giving up
20201011 01:22:07 error network: network_asio::error thrown during transaction with add-on server; "Network is unreachable"
20201011 01:22:07 error general: Remote host disconnected.
20201011 01:22:55 warning network: Failed to connect to 144.76.5.6: Connection refused
20201011 01:22:55 warning network: Failed to connect to 2a01:4f8:190:8005:1111::120: Network is unreachable
20201011 01:22:55 error network: Tried all IPs. Giving up
20201011 01:22:55 error network: network_asio::error thrown during transaction with add-on server; "Network is unreachable"
20201011 01:22:55 error general: Remote host disconnected.
User avatar
Pentarctagon
Project Manager
Posts: 5526
Joined: March 22nd, 2009, 10:50 pm
Location: Earth (occasionally)

Re: [solved]- Trying to build older release 1.10.7 on Debian 10.x

Post by Pentarctagon »

Accessing the add-ons server from in-game is only supported for the current and previous stable releases (1.10 for a long time was an exception since the legacy iOS port was based on 1.10). So to get add-ons for 1.10 and older, you'll need to manually download and decompress them from here.
99 little bugs in the code, 99 little bugs
take one down, patch it around
-2,147,483,648 little bugs in the code
Post Reply