From f2698d55f858cd33a9cf9a34bd6977a326360651 Mon Sep 17 00:00:00 2001 From: Schrijvers Luc Date: Wed, 14 Feb 2018 01:33:56 +0100 Subject: [PATCH] freeciv, bump version (#2161) --- games-strategy/freeciv/freeciv-2.5.10.recipe | 125 ++++++++++ .../freeciv/patches/freeciv-2.5.10.patchset | 231 ++++++++++++++++++ 2 files changed, 356 insertions(+) create mode 100644 games-strategy/freeciv/freeciv-2.5.10.recipe create mode 100644 games-strategy/freeciv/patches/freeciv-2.5.10.patchset diff --git a/games-strategy/freeciv/freeciv-2.5.10.recipe b/games-strategy/freeciv/freeciv-2.5.10.recipe new file mode 100644 index 000000000..2ca79e177 --- /dev/null +++ b/games-strategy/freeciv/freeciv-2.5.10.recipe @@ -0,0 +1,125 @@ +SUMMARY="A free Civilization-like game" +DESCRIPTION="Freeciv is a free Civilization-like game, primarily \ +for X under Unix. It has support for multiplayer games locally or \ +over a network, and an AI which gives most people a run for their money. +Freeciv aims to be mostly rule-compatible with Civilization II [tm], \ +published by Sid Meier and Microprose [tm]. A few rules are different \ +where we think it makes more sense, and we have lots and lots of \ +adjustable parameters to make customizing games possible. +Freeciv has been implemented completely independently of Civilization; \ +you do not need to own Civilization to play Freeciv." +HOMEPAGE="http://www.freeciv.org/" +COPYRIGHT="1996-2018 The Freeciv Team" +LICENSE="GNU GPL v2" +REVISION="1" +SOURCE_URI="https://downloads.sourceforge.net/freeciv/freeciv-$portVersion.tar.bz2" +CHECKSUM_SHA256="c8a14156562dce2f0a7b96390c2d5a35314f1124c448782a6a47b0c51cfcb302" +PATCHES="freeciv-$portVersion.patchset" +ADDITIONAL_FILES="freeciv.rdef.in" + +ARCHITECTURES="!x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86" + +commandSuffix=$secondaryArchSuffix +commandBinDir=$binDir +if [ -z "${ARCHITECTURES##*!$targetArchitecture*}" ]; then + commandSuffix= + commandBinDir=$prefix/bin +fi + +GLOBAL_WRITABLE_FILES=" + settings/freeciv/database.lua keep-old + " + +PROVIDES=" + freeciv$secondaryArchSuffix = $portVersion + app:FreeCiv = $portVersion + cmd:freeciv_manual$commandSuffix + cmd:freeciv_sdl$commandSuffix + cmd:freeciv_server$commandSuffix + lib:libfreeciv$secondaryArchSuffix + lib:libfreeciv_srv$secondaryArchSuffix + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libbz2$secondaryArchSuffix + lib:libcurl$secondaryArchSuffix + lib:libcrypto$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:liblua$secondaryArchSuffix + lib:liblzma$secondaryArchSuffix + lib:libreadline$secondaryArchSuffix + lib:libsdl_1.2$secondaryArchSuffix + lib:libsdl_gfx$secondaryArchSuffix + lib:libsdl_image_1.2$secondaryArchSuffix + lib:libsdl_mixer_1.2$secondaryArchSuffix + lib:libsdl_ttf_2.0$secondaryArchSuffix + lib:libssl$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libbz2$secondaryArchSuffix + devel:libcurl$secondaryArchSuffix + devel:libfreetype$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix + devel:libintl$secondaryArchSuffix + devel:liblua$secondaryArchSuffix >= 5.2 + devel:liblzma$secondaryArchSuffix + devel:libreadline$secondaryArchSuffix + devel:libsdl$secondaryArchSuffix + devel:libsdl_gfx$secondaryArchSuffix + devel:libsdl_image$secondaryArchSuffix + devel:libsdl_mixer$secondaryArchSuffix + devel:libsdl_ttf$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:find + cmd:gcc$secondaryArchSuffix + cmd:libtoolize$secondaryArchSuffix + cmd:make + cmd:pkg_config$secondaryArchSuffix + " + +BUILD() +{ + autoreconf -vfi + CFLAGS="-O2 -pipe" runConfigure --omit-dirs binDir ./configure \ + --bindir=$commandBinDir --enable-client=sdl --enable-fcmp=no \ + --enable-sys-lua --enable-shared --disable-static + make $jobArgs +} + +INSTALL() +{ + make install + + mkdir -p $appsDir + ln -s $commandBinDir/freeciv-sdl $appsDir/Freeciv + + local MAJOR="`echo "$portVersion" | cut -d. -f1`" + local MIDDLE="`echo "$portVersion" | cut -d. -f2`" + local MINOR="`echo "$portVersion" | cut -d. -f3`" + local INTERNAL="0" + sed \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@INTERNAL@|$INTERNAL|" \ + $portDir/additional-files/freeciv.rdef.in > freeciv.rdef + + addResourcesToBinaries freeciv.rdef \ + $appsDir/Freeciv + + addAppDeskbarSymlink $appsDir/Freeciv + mv $prefix/share/* $dataRootDir + rmdir $prefix/share + rm -f $libDir/*.a $libDir/*.la +} diff --git a/games-strategy/freeciv/patches/freeciv-2.5.10.patchset b/games-strategy/freeciv/patches/freeciv-2.5.10.patchset new file mode 100644 index 000000000..c40f7f401 --- /dev/null +++ b/games-strategy/freeciv/patches/freeciv-2.5.10.patchset @@ -0,0 +1,231 @@ +From f682f43e7f5c0e770033d1ef0b57bebf870349b1 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Sun, 5 Mar 2017 09:18:33 +0100 +Subject: move ~/.freeciv to ~/config/settings/freeciv on Haiku. + + +diff --git a/configure.ac b/configure.ac +index b65af70..294c4ca 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -154,6 +154,7 @@ AM_CONDITIONAL(SERVER, test x$server = xyes) + dnl Host type variable defaults + MINGW32=no + AMIGA=no ++HAIKU=no + + dnl Settings specific to host OS + case "$host_os" in +@@ -161,6 +162,9 @@ case "$host_os" in + *mingw32*) + dnl Windows-specific settings + MINGW32=yes ;; ++ *haiku*) ++ dnl Haiku-specific settings ++ HAIKU=yes ;; + esac + + dnl Networking headers +@@ -1252,9 +1256,15 @@ if test x"$MINGW32" = xyes; then + fi + else + FC_CONF_PATH="$sysconfdir/freeciv" +- DEFAULT_DATA_PATH=".:data:~/.freeciv/$DATASUBDIR:$datadir/freeciv" +- DEFAULT_SAVE_PATH=".:~/.freeciv/saves" +- DEFAULT_SCENARIO_PATH=".:data/scenarios:~/.freeciv/$DATASUBDIR/scenarios:~/.freeciv/scenarios:$datadir/freeciv/scenarios" ++ if test x"$HAIKU" = xyes; then ++ DEFAULT_DATA_PATH=".:data:~/config/settings/freeciv/$DATASUBDIR:$datadir/freeciv" ++ DEFAULT_SAVE_PATH=".:~/config/settings/freeciv/saves" ++ DEFAULT_SCENARIO_PATH=".:data/scenarios:~/config/settings/freeciv/$DATASUBDIR/scenarios:~/config/settings/freeciv/scenarios:$datadir/freeciv/scenarios" ++ else ++ DEFAULT_DATA_PATH=".:data:~/.freeciv/$DATASUBDIR:$datadir/freeciv" ++ DEFAULT_SAVE_PATH=".:~/.freeciv/saves" ++ DEFAULT_SCENARIO_PATH=".:data/scenarios:~/.freeciv/$DATASUBDIR/scenarios:~/.freeciv/scenarios:$datadir/freeciv/scenarios" ++ fi + fi + CPPFLAGS="$CPPFLAGS -DFC_CONF_PATH=\"\\\"$FC_CONF_PATH\\\"\"" + CPPFLAGS="$CPPFLAGS -DDEFAULT_DATA_PATH=\"\\\"$DEFAULT_DATA_PATH\\\"\"" +-- +2.16.1 + + +From a0fc0b5f2b7ae56cc7ad2e9d8e6ba337f72e16f4 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Sun, 5 Mar 2017 10:19:43 +0100 +Subject: .freeciv => config/settings/freeciv + + +diff --git a/client/connectdlg_common.c b/client/connectdlg_common.c +index 0cb630b..95c1152 100644 +--- a/client/connectdlg_common.c ++++ b/client/connectdlg_common.c +@@ -298,9 +298,17 @@ bool client_start_server(void) + argv[argc++] = "1"; + argv[argc++] = "-e"; + argv[argc++] = "--saves"; ++#ifdef __HAIKU__ ++ argv[argc++] = "~/config/settings/freeciv/saves"; ++#else + argv[argc++] = "~/.freeciv/saves"; ++#endif + argv[argc++] = "--scenarios"; ++#ifdef __HAIKU__ ++ argv[argc++] = "~/config/settings/freeciv/scenarios"; ++#else + argv[argc++] = "~/.freeciv/scenarios"; ++#endif + argv[argc++] = "-A"; + argv[argc++] = "none"; + if (logfile) { +@@ -435,10 +443,18 @@ bool client_start_server(void) + free(savefile_in_local_encoding); + } + ++#ifdef __HAIKU__ ++ interpret_tilde(savesdir, sizeof(savesdir), "~/config/settings/freeciv/saves"); ++#else + interpret_tilde(savesdir, sizeof(savesdir), "~/.freeciv/saves"); ++#endif + internal_to_local_string_buffer(savesdir, savescmdline, sizeof(savescmdline)); + ++#ifdef __HAIKU__ + interpret_tilde(scensdir, sizeof(scensdir), "~/.freeciv/scenarios"); ++#else ++ interpret_tilde(scensdir, sizeof(scensdir), "~/.freeciv/scenarios"); ++#endif + internal_to_local_string_buffer(scensdir, scenscmdline, sizeof(scenscmdline)); + + fc_snprintf(options, sizeof(options), +@@ -596,7 +612,11 @@ void send_client_wants_hack(const char *filename) + + /* get the full filename path */ + interpret_tilde(challenge_fullname, sizeof(challenge_fullname), ++#ifdef __HAIKU__ ++ "~/config/settings/freeciv/"); ++#else + "~/.freeciv/"); ++#endif + make_dir(challenge_fullname); + + sz_strlcat(challenge_fullname, filename); +diff --git a/client/options.c b/client/options.c +index 8f0a1d5..6ad8626 100644 +--- a/client/options.c ++++ b/client/options.c +@@ -19,6 +19,9 @@ + #include + #include + #include ++#ifdef __HAIKU__ ++ #include ++#endif + + /* utility */ + #include "fcintl.h" +@@ -4617,7 +4620,11 @@ static void save_cma_presets(struct section_file *file) + /* Old rc file name. */ + #define OLD_OPTION_FILE_NAME ".civclientrc" + /* New rc file name. */ +-#define NEW_OPTION_FILE_NAME ".freeciv-client-rc-%d.%d" ++#ifdef __HAIKU__ ++# define NEW_OPTION_FILE_NAME "config/settings/freeciv/freeciv-client-rc-%d.%d" ++#else ++# define NEW_OPTION_FILE_NAME ".freeciv-client-rc-%d.%d" ++#endif + #define MAJOR_NEW_OPTION_FILE_NAME MAJOR_VERSION + #if IS_DEVEL_VERSION && ! IS_FREEZE_VERSION + #define MINOR_NEW_OPTION_FILE_NAME (MINOR_VERSION + 1) +@@ -5337,6 +5344,13 @@ void options_save(option_save_log_callback log_cb) + /* insert global worklists */ + global_worklists_save(sf); + ++#ifdef __HAIKU__ ++{ ++ char path[PATH_MAX]; ++ strcpy(path, name); ++ make_dir(dirname(path)); ++} ++#endif + /* save to disk */ + if (!secfile_save(sf, name, 0, FZ_PLAIN)) { + log_cb(LOG_ERROR, _("Save failed, cannot write to file %s"), name); +diff --git a/server/gamehand.c b/server/gamehand.c +index 35dcca5..9671dc6 100644 +--- a/server/gamehand.c ++++ b/server/gamehand.c +@@ -1010,7 +1010,7 @@ static const char *get_challenge_fullname(struct connection *pc) + { + static char fullname[MAX_LEN_PATH]; + +- interpret_tilde(fullname, sizeof(fullname), "~/.freeciv/"); ++ interpret_tilde(fullname, sizeof(fullname), "~/config/settings/freeciv/"); + sz_strlcat(fullname, get_challenge_filename(pc)); + + return fullname; +diff --git a/server/sernet.c b/server/sernet.c +index 5bfbe3f..e17c8b4 100644 +--- a/server/sernet.c ++++ b/server/sernet.c +@@ -42,6 +42,9 @@ + #ifdef HAVE_LIBREADLINE + #include + #include ++#ifdef __HAIKU__ ++#include ++#endif + #endif + #ifdef HAVE_SYS_SELECT_H + #include +@@ -163,7 +166,11 @@ static void handle_stdin_close(void) + #ifdef HAVE_LIBREADLINE + /****************************************************************************/ + +-#define HISTORY_FILENAME ".freeciv-server_history" ++#ifdef __HAIKU__ ++# define HISTORY_FILENAME "config/settings/freeciv/server_history" ++#else ++# define HISTORY_FILENAME ".freeciv-server_history" ++#endif + #define HISTORY_LENGTH 100 + + static char *history_file = NULL; +@@ -517,6 +524,13 @@ enum server_events server_sniff_all_input(void) + strcpy(history_file, home_dir); + strcat(history_file, "/"); + strcat(history_file, HISTORY_FILENAME); ++#ifdef __HAIKU__ ++ { ++ char path[PATH_MAX]; ++ strcpy(path, history_file); ++ make_dir(dirname(path)); ++ } ++#endif + using_history(); + read_history(history_file); + } +-- +2.16.1 + + +From 6e6f7b0388b559a91b35ff126973822ff6825b36 Mon Sep 17 00:00:00 2001 +From: begasus +Date: Sat, 10 Feb 2018 20:01:43 +0100 +Subject: Fix header path to MagickWand.h + + +diff --git a/common/mapimg.c b/common/mapimg.c +index ad57fd0..9128e38 100644 +--- a/common/mapimg.c ++++ b/common/mapimg.c +@@ -18,7 +18,7 @@ + #include + + #ifdef HAVE_MAPIMG_MAGICKWAND +- #include ++ #include + #endif /* HAVE_MAPIMG_MAGICKWAND */ + + /* utility */ +-- +2.16.1 +