[Freeciv-Dev] RE : (PR#39629) Freeciv SDl/Client Win2000
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39629 Freeciv Windows SDL Client 2.1.0 beta 6. -Message d'origine- De : Daniel Markstedt [mailto:[EMAIL PROTECTED] Envoyé : mercredi 29 août 2007 23:21 À : Champsavoir Nicolas Objet : Re: [Freeciv-Dev] (PR#39629) Freeciv SDl/Client Win2000 URL: http://bugs.freeciv.org/Ticket/Display.html?id=39629 On 8/29/07, Champsavoir Nicolas [EMAIL PROTECTED] wrote: URL: http://bugs.freeciv.org/Ticket/Display.html?id=39629 I had the following bug while try to attack a city with a military unit : Assertion failed ! Program: civclient.exe File: goto.c Line: 862 Expression: unit_is_in_focus(punit) Nicolas CHAMPSAVOIR CNES - DCT/PS/SSC Tel: (05.61.2) 7.41.43 What version of Freeciv is this? ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39629) Freeciv SDl/Client Win2000
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39629 I think it's not linked with the SDL client. It's a usual client crash. It should be fixed since revisions 13382 (trunk) and 13384 (2.1) (just after beta 6 release...) in the patch for #18010. This bugs was already reported many times: #15854, #39339 and #39430. Maybe other tickets too but I didn't find them yet... ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39632) [Patch] Remove CVS references from docs
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39632 I still found some places where documentation referred Freeciv version control as CVS. Patch contains also some other minor corrections applicable for both S2_1 and TRUNK. - ML diff -Nurd -X.diff_ignore freeciv/debian/build.debian freeciv/debian/build.debian --- freeciv/debian/build.debian 2007-08-04 18:36:08.0 +0300 +++ freeciv/debian/build.debian 2007-08-30 12:55:19.0 +0300 @@ -43,12 +43,12 @@ MAJOR_VERSION=`awk -F= '$1 == MAJOR_VERSION {print $2}' configure.in` MINOR_VERSION=`awk -F= '$1 == MINOR_VERSION {print $2}' configure.in` PATCH_VERSION=`awk -F= '$1 == PATCH_VERSION {print $2}' configure.in` -snapversion=${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-cvs`date +%Y%m%d` +snapversion=${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-svn`date +%Y%m%d` cat debian/changelog EOF freeciv ($snapversion) experimental; urgency=low - * New upstream release (CVS snapshot) + * New upstream release (svn snapshot) -- $EMAIL `822-date` diff -Nurd -X.diff_ignore freeciv/debian/INSTALL.debian freeciv/debian/INSTALL.debian --- freeciv/debian/INSTALL.debian 2007-08-04 18:36:08.0 +0300 +++ freeciv/debian/INSTALL.debian 2007-08-30 12:58:27.0 +0300 @@ -14,10 +14,10 @@ Of course, maybe the source tree where you're reading this file is newer than any version available on your Debian CD or in the ftp mirrors - -probably a CVS grab - or you want to build it yourself for some other +probably a svn grab - or you want to build it yourself for some other reason (like applying unofficial patches). Ok, you can have your cake and eat it too; we made a script to easily build a .deb package directly out of -the source tree - and get a nice version number if it's a CVS snapshot, too. +the source tree - and get a nice version number if it's a svn snapshot, too. First you will need to check if you have the following packages installed: @@ -55,7 +55,7 @@ $ make distclean $ fakeroot build.debian $ su -# dpkg -i ../freeciv_1.11.5+cvs20010419_i386.deb +# dpkg -i ../freeciv_1.11.5+svn20010419_i386.deb # exit $ diff -Nurd -X.diff_ignore freeciv/doc/BUGS freeciv/doc/BUGS --- freeciv/doc/BUGS 2007-08-04 18:36:17.0 +0300 +++ freeciv/doc/BUGS 2007-08-30 12:55:51.0 +0300 @@ -88,7 +88,7 @@ assertion oject-ref_count 0' failed. ) please restart your client and append -- --g-fatal-warnings to - the command line. Unfortunately this only works with a current CVS + the command line. Unfortunately this only works with a current svn or with version 2.0.0 or better. You will get a core dump this way. Please include in your bug report the stack trace of this core dump. diff -Nurd -X.diff_ignore freeciv/doc/CodingStyle freeciv/doc/CodingStyle --- freeciv/doc/CodingStyle 2007-08-12 23:55:10.0 +0300 +++ freeciv/doc/CodingStyle 2007-08-30 12:46:01.0 +0300 @@ -228,7 +228,7 @@ - When doing a diff for a patch, be sure to exclude unnecessary files by using the -X argument to diff. E.g.: -% diff -ruN -Xdiff_ignore freeciv_cvs freeciv /tmp/fix-foo-bug-0.diff +% diff -ruN -Xdiff_ignore freeciv_svn freeciv /tmp/fix-foo-bug-0.diff A suggested diff_ignore file is included in the Freeciv distribution. diff -Nurd -X.diff_ignore freeciv/doc/HACKING freeciv/doc/HACKING --- freeciv/doc/HACKING 2007-08-04 18:36:17.0 +0300 +++ freeciv/doc/HACKING 2007-08-30 12:45:53.0 +0300 @@ -58,7 +58,7 @@ Server Autogame Testing === Code changes should always be tested before submission for inclusion -into the CVS source tree. It is useful to run the client and server as +into the svn source tree. It is useful to run the client and server as autogames to verify either a particular savegame no longer shows a fixed bug, or as a random sequence of games in a while loop overnight. @@ -1035,7 +1035,7 @@ - When doing a diff for a patch, be sure to exclude unnecessary files by using the -X argument to diff. E.g.: -% diff -ruN -Xdiff_ignore freeciv_cvs freeciv /tmp/fix-foo-bug-0.diff +% diff -ruN -Xdiff_ignore freeciv_svn freeciv /tmp/fix-foo-bug-0.diff A suggested diff_ignore file is included in the Freeciv distribution. diff -Nurd -X.diff_ignore freeciv/doc/README.sound freeciv/doc/README.sound --- freeciv/doc/README.sound 2007-08-04 18:36:17.0 +0300 +++ freeciv/doc/README.sound 2007-08-30 12:50:13.0 +0300 @@ -23,9 +23,8 @@ with eg tar -xzvf stdsoundsX.tar.gz or use WinZip (for Windows), and put the files in the data directory mentioned above. -Note that the CVS version neither includes any sound files nor any -sound spec file. You can get soundsets (sound files and a spec file) -from ftp://ftp.freeciv.org/freeciv/contrib/sounds/. At this address +You can get additional soundsets (sound files and a spec file) +from
Re: [Freeciv-Dev] (PR#39632) [Patch] Remove CVS references from docs
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39632 On 30/08/2007, Marko Lindqvist [EMAIL PROTECTED] wrote: I still found some places where documentation referred Freeciv version control as CVS. Patch contains also some other minor corrections applicable for both S2_1 and TRUNK. S2_0 needs a bit different version. - ML diff -Nurd -X.diff_ignore freeciv/debian/build.debian freeciv/debian/build.debian --- freeciv/debian/build.debian 2007-03-05 19:15:18.0 +0200 +++ freeciv/debian/build.debian 2007-08-30 13:09:39.0 +0300 @@ -43,12 +43,12 @@ MAJOR_VERSION=`awk -F= '$1 == MAJOR_VERSION {print $2}' configure.in` MINOR_VERSION=`awk -F= '$1 == MINOR_VERSION {print $2}' configure.in` PATCH_VERSION=`awk -F= '$1 == PATCH_VERSION {print $2}' configure.in` -snapversion=${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-cvs`date +%Y%m%d` +snapversion=${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-svn`date +%Y%m%d` cat debian/changelog EOF freeciv ($snapversion) experimental; urgency=low - * New upstream release (CVS snapshot) + * New upstream release (svn snapshot) -- $EMAIL `822-date` diff -Nurd -X.diff_ignore freeciv/debian/INSTALL.debian freeciv/debian/INSTALL.debian --- freeciv/debian/INSTALL.debian 2007-03-05 19:15:18.0 +0200 +++ freeciv/debian/INSTALL.debian 2007-08-30 13:09:39.0 +0300 @@ -14,10 +14,10 @@ Of course, maybe the source tree where you're reading this file is newer than any version available on your Debian CD or in the ftp mirrors - -probably a CVS grab - or you want to build it yourself for some other +probably a svn grab - or you want to build it yourself for some other reason (like applying unofficial patches). Ok, you can have your cake and eat it too; we made a script to easily build a .deb package directly out of -the source tree - and get a nice version number if it's a CVS snapshot, too. +the source tree - and get a nice version number if it's a svn snapshot, too. First you will need to check if you have the following packages installed: @@ -55,7 +55,7 @@ $ make distclean $ fakeroot build.debian $ su -# dpkg -i ../freeciv_1.11.5+cvs20010419_i386.deb +# dpkg -i ../freeciv_1.11.5+svn20010419_i386.deb # exit $ diff -Nurd -X.diff_ignore freeciv/doc/BUGS freeciv/doc/BUGS --- freeciv/doc/BUGS 2007-08-04 04:27:23.0 +0300 +++ freeciv/doc/BUGS 2007-08-30 13:10:08.0 +0300 @@ -122,7 +122,7 @@ assertion oject-ref_count 0' failed. ) please restart your client and append -- --g-fatal-warnings to - the command line. Unfortunately this only works with a current CVS + the command line. Unfortunately this only works with a current svn or with version 1.15 or better. You will get a core dump this way. Please include in your bug report the stack trace of this core dump. diff -Nurd -X.diff_ignore freeciv/doc/CodingStyle freeciv/doc/CodingStyle --- freeciv/doc/CodingStyle 2007-08-12 23:55:16.0 +0300 +++ freeciv/doc/CodingStyle 2007-08-30 13:09:39.0 +0300 @@ -223,7 +223,7 @@ - When doing a diff for a patch, be sure to exclude unnecessary files by using the -X argument to diff. E.g.: -% diff -ruN -Xdiff_ignore freeciv_cvs freeciv /tmp/fix-foo-bug-0.diff +% diff -ruN -Xdiff_ignore freeciv_svn freeciv /tmp/fix-foo-bug-0.diff A suggested diff_ignore file is included in the Freeciv distribution. diff -Nurd -X.diff_ignore freeciv/doc/HACKING freeciv/doc/HACKING --- freeciv/doc/HACKING 2007-03-05 19:15:21.0 +0200 +++ freeciv/doc/HACKING 2007-08-30 13:09:39.0 +0300 @@ -54,7 +54,7 @@ Server Autogame Testing === Code changes should always be tested before submission for inclusion -into the CVS source tree. It is useful to run the client and server as +into the svn source tree. It is useful to run the client and server as autogames to verify either a particular savegame no longer shows a fixed bug, or as a random sequence of games in a while loop overnight. @@ -1031,7 +1031,7 @@ - When doing a diff for a patch, be sure to exclude unnecessary files by using the -X argument to diff. E.g.: -% diff -ruN -Xdiff_ignore freeciv_cvs freeciv /tmp/fix-foo-bug-0.diff +% diff -ruN -Xdiff_ignore freeciv_svn freeciv /tmp/fix-foo-bug-0.diff A suggested diff_ignore file is included in the Freeciv distribution. diff -Nurd -X.diff_ignore freeciv/doc/README.sound freeciv/doc/README.sound --- freeciv/doc/README.sound 2007-03-05 19:15:21.0 +0200 +++ freeciv/doc/README.sound 2007-08-30 13:12:25.0 +0300 @@ -23,9 +23,9 @@ with eg tar -xzvf stdsoundsX.tar.gz or use WinZip (for Windows), and put the files in the data directory mentioned above. -Note that the CVS version neither includes any sound files nor any +Note that the svn version neither includes any sound files nor any sound spec file. You can get soundsets (sound files and a spec file)
Re: [Freeciv-Dev] (PR#4712) Version strings for svn versions
URL: http://bugs.freeciv.org/Ticket/Display.html?id=4712 On 14/08/2007, Marko Lindqvist [EMAIL PROTECTED] wrote: Attached patch adds target fc_svnrev_gen.h to common/Makefile. At this point this file is not used (included) anywhere, and it is not dependency for anything (it will be built only if explicitly requested) That header contains a couple of macros. - First there is either FC_SVNREV_ON or FC_SVNREV_OFF defined. FC_SVNREV_ON will be defined if source directory is unmodified svn checkout directory. - FC_SVNREV itself contains release string (r13171) if FC_SVNREV_ON defined, or some fallback string if FC_SVNREV_OFF is defined. I have tested this in my system using number of tricks, but in the end it cannot be fully tested before it is committed (since changing build system locally to support this will mean that local system is not unmodified). Plan is to commit this and then to test that it works. Then we can start using it. Mostly rewritten to make later integration easier - ML diff -Nurd -X.diff_ignore freeciv/bootstrap/fc_svnrev_gen.h.in freeciv/bootstrap/fc_svnrev_gen.h.in --- freeciv/bootstrap/fc_svnrev_gen.h.in 1970-01-01 02:00:00.0 +0200 +++ freeciv/bootstrap/fc_svnrev_gen.h.in 2007-08-30 14:38:47.0 +0300 @@ -0,0 +1,29 @@ +/** + Freeciv - Copyright (C) 2004 - The Freeciv Project + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. +***/ + +/* common/fc_svnrev_gen.h is automatically generated from + * bootstrap/fc_svnrev_gen.h.in. Do not edit fc_svnrev_ge.h, edit + * fc_svnrev_gen.h.in */ + +#ifndef FC__FC_SVNREV_H +#define FC__FC_SVNREV_H + +/* Either FC_SVNREV_OFF or FC_SVNREV_ON macro defined. + * If FC_SVNREV_ON is defined, FC_SVNREV contains valid svn revision number + * string (currently starting with 'r') + * If FC_SVNREV_OFF is defined, you should not use FC_SVNREV even though + * it does contain fallback string (currently dist) */ +#define FC_SVNREV_SVNREVSTATE +#define FC_SVNREV SVNREV + +#endif /* FC__FC_SVNREV_H */ diff -Nurd -X.diff_ignore freeciv/bootstrap/generate_svnrev.sh freeciv/bootstrap/generate_svnrev.sh --- freeciv/bootstrap/generate_svnrev.sh 1970-01-01 02:00:00.0 +0200 +++ freeciv/bootstrap/generate_svnrev.sh 2007-08-30 15:04:34.0 +0300 @@ -0,0 +1,41 @@ +#!/bin/sh + +# This script generates fc_svnrev_gen.h from fc_svnrev_gen.h.in. +# See fc_svnrev_gen.h.in for details. + +# Parameters - $1 - top srcdir +# $2 - top builddir +# + +# Absolete paths +INPUTDIR=$(cd $1/bootstrap ; pwd) +OUTPUTDIR=$(cd $2/common ; pwd) + +REVSTATE=OFF +REV=dist + +(cd $INPUTDIR + # Check that all commands required by this script are available + # If not, we will not claim to know which svn revision this is + # (REVSTATE will be OFF) + if which svn which tail which wc ; then + REVTMP=r$(svn info 2/dev/null | grep ^Revision: | sed 's/^Revision: //') + if test $REVTMP != r ; then + # This is svn checkout. Check for local modifications + if test $(cd $1 ; svn diff | wc -l) -eq 0 ; then + REVSTATE=ON + REV=$REVTMP + else + REV=modified $REVTMP + fi + fi + fi + + sed -e s,SVNREV,$REV, -e s,SVNREVSTATE,$REVSTATE, fc_svnrev_gen.h.in $OUTPUTDIR/fc_svnrev_gen.h.tmp + if ! test -f $OUTPUTDIR/fc_svnrev_gen.h || +! cmp $OUTPUTDIR/fc_svnrev_gen.h $OUTPUTDIR/fc_svnrev_gen.h.tmp + then + mv $OUTPUTDIR/fc_svnrev_gen.h.tmp $OUTPUTDIR/fc_svnrev_gen.h + fi + rm -f $OUTPUTDIR/fc_svnrev_gen.h.tmp +) /dev/null diff -Nurd -X.diff_ignore freeciv/common/Makefile.am freeciv/common/Makefile.am --- freeciv/common/Makefile.am 2007-08-30 14:38:04.0 +0300 +++ freeciv/common/Makefile.am 2007-08-30 14:55:42.0 +0300 @@ -91,6 +91,9 @@ cd $(srcdir) ./generate_packets.py touch packets_generate +.PHONY : fc_svnrev_gen.h +fc_svnrev_gen.h : + $(top_srcdir)/bootstrap/generate_svnrev.sh $(top_srcdir) $(top_builddir) + #libcivcommon_a_DEPENDENCIES = ../utility/libcivutility.a #libcivcommon_a_LIBADD = ../utility/libcivutility.a - ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39634) [Bug] Magic ruleset crash in maybe_make_contact() - unit_owner()
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39634 Server crash in S2_1 using magic ruleset. Cannot reproduce. Program received signal SIGSEGV, Segmentation fault. unit_owner (punit=0x0125a001) at ../../src.patched/common/unit.c:1100 1100{ (gdb) bt full #0 unit_owner (punit=0x0125a001) at ../../src.patched/common/unit.c:1100 No locals. #1 0x0043803b in maybe_make_contact (ptile=0xa14318, pplayer=0x86b368) at ../../src.patched/server/plrhand.c:1215 myiter = (struct genlist_link *) 0xacfaa0 pcity = value optimized out tile1 = value optimized out _y_itr = 20 _max_dist = value optimized out _x_itr = 18 dummy_y = value optimized out _index = 7 #2 0x0041a9cf in move_unit (punit=0xbb37e0, pdesttile=0xa14318, move_cost=3) at ../../src.patched/server/unittools.c:2890 tile1 = (struct tile *) 0xa17f18 _y_itr = 22 _max_dist = value optimized out _x_itr = 17 dummy_y = value optimized out _index = 9 pplayer = (struct player *) 0x86b368 psrctile = (struct tile *) 0xa160a0 pcity = value optimized out ptransporter = value optimized out old_vision = (struct vision *) 0xacfab0 #3 0x0045b5e3 in handle_unit_move_request (punit=0xbb37e0, pdesttile=0xa14318, igzoc=false, move_diplomat_city=value optimized out) at ../../src.patched/server/unithand.c:1162 move_cost = 0 pplayer = value optimized out pcity = value optimized out __PRETTY_FUNCTION__ = handle_unit_move_request #4 0x004cbab4 in ai_unit_attack (punit=0xbb37e0, ptile=0xa14318) at ../../src.patched/ai/aitools.c:957 bodyguard = (struct unit *) 0x0 sanity = 397 __PRETTY_FUNCTION__ = ai_unit_attack #5 0x004cbc7a in ai_unit_execute_path (punit=0xbb37e0, path=0x122a870) at ../../src.patched/ai/aitools.c:192 ptile = (struct tile *) 0xa14318 id = 397 is_ai = true i = 1 #6 0x004cc894 in ai_follow_path (punit=0xbb37e0, path=0x122a870, ptile=value optimized out) at ../../src.patched/ai/aitools.c:386 old_tile = (struct tile *) 0xa14318 activity = ACTIVITY_IDLE alive = value optimized out #7 0x004ccb7f in ai_unit_goto_constrained (punit=0xbb37e0, ptile=0xa14318, parameter=0x7fffb5cc0ca0) at ../../src.patched/ai/aitools.c:460 alive = value optimized out map = (struct pf_map *) 0x127c900 path = (struct pf_path *) 0x122a870 #8 0x004ccc87 in ai_unit_goto (punit=0xbb37e0, ptile=0xa14318) at ../../src.patched/ai/aitools.c:791 parameter = {start_tile = 0xa160a0, moves_left_initially = 9, fuel_left_initially = 1, move_rate = 9, fuel = 1, owner = 0x86b368, unit_flags = {vec = \000\000\004\000\000\000\000}, omniscience = true, turn_mode = TM_WORST_TIME, get_MC = 0x4d80f0 sea_overlap_move, unknown_MC = 6, get_TB = 0x4d84b0 no_fights, get_EC = 0x4cc610 prefer_short_stacks, get_zoc = 0, is_pos_dangerous = 0x4d89e0 trireme_is_pos_dangerous, get_costs = 0, data = 0x7fffb5cc0d10} risk_cost = {base_value = 40, fearfulness = 606.81481481481478, ocean_cost = 20, unsafe_terrain_cost = 6, enemy_zoc_cost = 1310720} #9 0x004c2079 in ai_manage_explorer (punit=0xbb37e0) at ../../src.patched/ai/aiexplorer.c:345 _y_itr = 21 _dx = 1 ptile1 = (struct tile *) 0x12 _x_itr = 18 _dy = 1 _index = 9 _sq_radius = 1 desirable = 14940 log_desirable = value optimized out pos = {tile = 0xa14318, turn = 0, moves_left = 6, fuel_left = 1, total_MC = 3, total_EC = 0, dir_to_next_pos = 4294967295, dir_to_here = DIR8_NORTHEAST} pplayer = (struct player *) 0x86b368 init_moves = 9 log_most_desirable = 9.6117974586868087 max_dist = 7 best_tile = (struct tile *) 0xa14318 best_MC = value optimized out map = (struct pf_map *) 0x127c900 parameter = {start_tile = 0xa160a0, moves_left_initially = 9, fuel_left_initially = 1, move_rate = 9, fuel = 1, owner = 0x86b368, unit_flags = {vec = \000\000\004\000\000\000\000}, omniscience = false, turn_mode = TM_WORST_TIME, get_MC = 0x4d8410 seamove, unknown_MC = 6, get_TB = 0x4d8500 no_fights_or_unknown, get_EC = 0, get_zoc = 0, is_pos_dangerous = 0x4d89e0 trireme_is_pos_dangerous, get_costs = 0, data = 0x2b8cf5a2f980} logDF = -0.51082562376599072 logBPS = 11.71015205448437 __PRETTY_FUNCTION__ = ai_manage_explorer #10 0x004c2a6c in ai_manage_ferryboat (pplayer=0x86b368, punit=0xbb37e0) at ../../src.patched/ai/aiferry.c:1010 cargo = value optimized out pcity = value optimized out sanity = 397 __PRETTY_FUNCTION__ = ai_manage_ferryboat #11 0x004d22a2 in ai_manage_unit (pplayer=0x86b368, punit=0xbb37e0) at
[Freeciv-Dev] (PR#39635) [Patch] Silence S2_1 bad unit type ... fstk -error messages
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39635 There are many legitimate reasons why fstk is called with unit type it cannot handle (with custom rulesets at least). In these cases it simply fails to find target, which is handled in a sane way. There is real problem in that AI is not using its units effectively (fstk cannot handle all units), but rewriting that will not happen in S2_1 (things have already improved in trunk). So there is no point in flooding console with error messages (magic ruleset causes a lot of these) in stable branch. Attached patch turns LOG_ERROR into LOG_DEBUG. For S2_1 only. - ML diff -Nurd -X.diff_ignore freeciv/ai/aiunit.c freeciv/ai/aiunit.c --- freeciv/ai/aiunit.c 2007-07-04 14:04:26.0 +0300 +++ freeciv/ai/aiunit.c 2007-08-30 16:15:53.0 +0300 @@ -1240,7 +1240,13 @@ if (!is_ground_unit(punit) !is_sailing_unit(punit)) { /* Don't know what to do with them! */ -UNIT_LOG(LOG_ERROR, punit, bad unit type passed to fstk); +/* This is not LOG_ERROR in stable branch, as calling + * fstk is in many cases right thing to do when custom + * rulesets are used - and callers correctly handle cases + * where fstk failed to find target. + * In trunk, handling of units different to those in default + * ruleset should be improved. */ +UNIT_LOG(LOG_DEBUG, punit, bad unit type passed to fstk); return 0; } ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39636) [Patch] Fix failing vision assert
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39636 Assert fails when updating unit causes it to have smaller vision range. Consistency between vision layers is being checked in wrong place - when we are in the middle of the process updating them one by one. Attached patch removes assert after update of single layer, and places it after all the layers have been iterated (similar iteration is in several places) Is there another bug in the fact that V_INVIS layer has been greater? Shouldn't it be constant to all units (revealing only adjacent tiles)? - ML diff -Nurd -X.diff_ignore freeciv/server/citytools.c freeciv/server/citytools.c --- freeciv/server/citytools.c 2007-08-13 22:23:44.0 +0300 +++ freeciv/server/citytools.c 2007-08-30 17:30:49.0 +0300 @@ -769,7 +769,7 @@ int old_trade_routes[NUM_TRADEROUTES]; bv_imprs had_small_wonders; char old_city_name[MAX_LEN_NAME]; - struct vision *old_vision; + struct vision *old_vision, *new_vision; assert(pgiver != ptaker); @@ -800,12 +800,15 @@ give_citymap_from_player_to_player(pcity, pgiver, ptaker); old_vision = pcity-server.vision; - pcity-server.vision = vision_new(ptaker, pcity-tile, FALSE); + new_vision = vision_new(ptaker, pcity-tile, FALSE); + pcity-server.vision = new_vision; vision_layer_iterate(v) { -vision_change_sight(pcity-server.vision, v, +vision_change_sight(new_vision, v, vision_get_sight(old_vision, v)); } vision_layer_iterate_end; + ASSERT_VISION(new_vision); + sz_strlcpy(old_city_name, pcity-name); if (game.info.allowed_city_names == 1 city_list_find_name(ptaker-cities, pcity-name)) { @@ -2165,4 +2168,6 @@ vision_change_sight(pcity-server.vision, V_MAIN, radius_sq); vision_change_sight(pcity-server.vision, V_INVIS, 2); + + ASSERT_VISION(pcity-server.vision); } diff -Nurd -X.diff_ignore freeciv/server/maphand.c freeciv/server/maphand.c --- freeciv/server/maphand.c 2007-07-04 14:04:17.0 +0300 +++ freeciv/server/maphand.c 2007-08-30 17:12:27.0 +0300 @@ -1700,15 +1700,7 @@ } /* Vision structure - see documentation in maphand.h */ -struct vision { - /* These values cannot be changed after initialization. */ - struct player *player; - struct tile *tile; - bool can_reveal_tiles; - /* The radius of the vision source. */ - int radius_sq[V_COUNT]; -}; / Create a new vision source. @@ -1753,8 +1745,6 @@ vision-radius_sq[vlayer], radius_sq, vision-can_reveal_tiles, vlayer); vision-radius_sq[vlayer] = radius_sq; - - assert(vision-radius_sq[V_MAIN] = vision-radius_sq[V_INVIS]); } / diff -Nurd -X.diff_ignore freeciv/server/maphand.h freeciv/server/maphand.h --- freeciv/server/maphand.h 2007-06-28 20:19:22.0 +0300 +++ freeciv/server/maphand.h 2007-08-30 17:12:26.0 +0300 @@ -149,7 +149,17 @@ vision sources are active. The same process applies when transferring a unit or city between players, etc. / -struct vision; + +struct vision { + /* These values cannot be changed after initialization. */ + struct player *player; + struct tile *tile; + bool can_reveal_tiles; + + /* The radius of the vision source. */ + int radius_sq[V_COUNT]; +}; + struct vision *vision_new(struct player *pplayer, struct tile *ptile, bool can_reveal_tiles); int vision_get_sight(const struct vision *vision, enum vision_layer vlayer); @@ -158,4 +168,9 @@ void vision_clear_sight(struct vision *vision); void vision_free(struct vision *vision); +#define ASSERT_VISION(v) \ + do { \ + assert((v)-radius_sq[V_MAIN] = (v)-radius_sq[V_INVIS]); \ + } while(FALSE); + #endif /* FC__MAPHAND_H */ diff -Nurd -X.diff_ignore freeciv/server/unittools.c freeciv/server/unittools.c --- freeciv/server/unittools.c 2007-08-06 16:42:12.0 +0300 +++ freeciv/server/unittools.c 2007-08-30 17:05:46.0 +0300 @@ -2723,6 +2723,7 @@ struct city *pcity; struct unit *ptransporter = NULL; struct vision *old_vision = punit-server.vision; + struct vision *new_vision; conn_list_do_buffer(pplayer-connections); @@ -2743,13 +2744,16 @@ /* Insert them again. */ unit_list_iterate(cargo_units, pcargo) { struct vision *old_vision = pcargo-server.vision; + struct vision *new_vision = vision_new(pcargo-owner, pdesttile, TRUE); - pcargo-server.vision = vision_new(pcargo-owner, pdesttile, TRUE); + pcargo-server.vision = new_vision; vision_layer_iterate(v) { - vision_change_sight(pcargo-server.vision, v, + vision_change_sight(new_vision, v, get_unit_vision_at(pcargo, pdesttile, v)); }
[Freeciv-Dev] (PR#39634) [Bug] Magic ruleset crash in maybe_make_contact() - unit_owner()
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39634 I think you you ran the server with autoauttack on? I already observed this crash on warserver 0.8.13d when I hosted them. I reported this crash to Yaro, but his forum is no available since he left from Freeciv. But I found the revision he fixed it: http://svn.gna.org/viewcvs/freeciv-warclient?view=revrev=193 The problem was the units which makes the move get killed, but the server continue to use this punit pointer. ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39634) [Bug] Magic ruleset crash in maybe_make_contact() - unit_owner()
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39634 [pepeto - Jeu. Aoû. 30 15:56:42 2007]: I think you you ran the server with autoauttack on? I already observed this crash on warserver 0.8.13d when I hosted them. I reported this crash to Yaro, but his forum is no available since he left from Freeciv. But I found the revision he fixed it: http://svn.gna.org/viewcvs/freeciv-warclient?view=revrev=193 The problem was the units which makes the move get killed, but the server continue to use this punit pointer. I looked at the code it seems it's not what I described. But I think it's something linked to this. BUT, I found a bad code line in this code which must be changed: wakeup_neighbor_sentries(punit); if (!unit_survive_autoattack(punit)) { return FALSE; } maybe_make_contact(pdesttile, unit_owner(punit)); conn_list_do_unbuffer(pplayer-connections); if the unit doesn't survive to the attack the connection list is not free, so this connection wouldn't receive any packet until they disconnect. There should be a conn_list_do_unbuffer(pplayer-connections); before return FALSE (line 2888). ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39634) [Bug] Magic ruleset crash in maybe_make_contact() - unit_owner()
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39634 Why this 'open' state is always by default when we post response, so annoying, sorry :( ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39638) Non i18n'd string in client/helpdata.c
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39638 In client/helpdata.c, line 1253 (revision 13433) (within helptext_government()) the output variable is assigned All, without the _( const char *output = All; As far as I've seen, in the default ruleset, this string only appears on the help text for both Anarchy and Despotism, where it says that each worked tile that gives more than %d %s will suffer a -1 penalty when not celebrating. It's most obvious in my language, because All means garlic, so the message becomes something like if a worked tile gives more than 2 garlic you will get a penalty. Kinda misleading. I'm not sure if it's just a matter of sticking the _( in front, or there are more implications in the logic of the program. Cheers, Joan In client/helpdata.c, line 1253 (revision 13433) (within helptext_government()) the output variable is assigned All, without the _( const char *output = All;As far as Ive seen, in the default ruleset, this string only appears on the help text for both Anarchy and Despotism, where it says that each worked tile that gives more than %d %s will suffer a -1 penalty when not celebrating. Its most obvious in my language, because All means garlic, so the message becomes something like if a worked tile gives more than 2 garlic you will get a penalty. Kinda misleading. Im not sure if its just a matter of sticking the _( in front, or there are more implications in the logic of the program.Cheers,Joan ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39637) Typo in server/cityturn.c
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39637 This transaction appears to have no content The variable name has sneaked into the string, I think. It says pimprove sold! when it should be improvement sold. See diff. Cheers, Joan The variable name has sneaked into the string, I think. It says pimprove sold! when it should be improvement sold. See diff.Cheers,Joan Index: cityturn.c === --- cityturn.c (revision 13420) +++ cityturn.c (working copy) @@ -1373,7 +1373,7 @@ if (pplayer-economic.gold - upkeep 0) { notify_player(pplayer, pcity-tile, E_IMP_AUCTIONED, _(Can't afford to maintain %s in %s, - pimprove sold!), + improvement sold!), improvement_name_translation(pimprove), pcity-name); do_sell_building(pplayer, pcity, pimprove); ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39627) [Bug] assert fail when taking player
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39627 [EMAIL PROTECTED] - Mar. Aoû. 28 22:55:36 2007]: On 29/08/07, Michael Kaufman [EMAIL PROTECTED] wrote: The last time I checked, not doing a client reset on player switch caused bad things to happen, but I can't be more specific than that. Then S2_1 solution would probably be to make even more complete reset, setting also player-nation to NULL for all players. Actually, player-nation reset should be added to handle_ruleset_control() in any case for player-nation-player consistency. - ML This would just make the problem in a other place... I think Michael Kaufman is right, there should be a game_free() game_init() when the player quits a server. Maybe a right place for it: set_client_state() when the new state will be CLIENT_PRE_GAME_STATE. The same if the old state is already CLIENT_PRE_GAME_STATE. ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
Re: [Freeciv-Dev] (PR#39627) [Bug] assert fail when taking player
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39627 On 29/08/2007, Marko Lindqvist [EMAIL PROTECTED] wrote: On 29/08/07, Michael Kaufman [EMAIL PROTECTED] wrote: The last time I checked, not doing a client reset on player switch caused bad things to happen, but I can't be more specific than that. Then S2_1 solution would probably be to make even more complete reset, setting also player-nation to NULL for all players. Actually, player-nation reset should be added to handle_ruleset_control() in any case for player-nation-player consistency. This patch adds player-nation reset after nation-player has been reseted in handle_ruleset_control(). This should fix several client end player-nation-player inconsistency crashes, and it helps against crash in this ticket too. - ML diff -Nurd -X.diff_ignore freeciv/client/packhand.c freeciv/client/packhand.c --- freeciv/client/packhand.c 2007-08-21 21:41:47.0 +0300 +++ freeciv/client/packhand.c 2007-08-30 22:39:28.0 +0300 @@ -2118,6 +2118,12 @@ nations_alloc(packet-nation_count); city_styles_alloc(packet-styles_count); + /* After nation ruleset free/alloc, nation-player pointers are NULL. + * We have to initialize player-nation too, to keep state consistent. */ + players_iterate(pplayer) { +pplayer-nation = NO_NATION_SELECTED; + } players_iterate_end; + if (packet-prefered_tileset[0] != '\0') { /* There is tileset suggestion */ if (strcmp(packet-prefered_tileset, tileset_get_name(tileset))) { ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
Re: [Freeciv-Dev] (PR#39627) [Bug] assert fail when taking player
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39627 On 30/08/2007, Pepeto _ [EMAIL PROTECTED] wrote: [EMAIL PROTECTED] - Mar. Aoû. 28 22:55:36 2007]: On 29/08/07, Michael Kaufman [EMAIL PROTECTED] wrote: The last time I checked, not doing a client reset on player switch caused bad things to happen, but I can't be more specific than that. Then S2_1 solution would probably be to make even more complete reset, setting also player-nation to NULL for all players. Actually, player-nation reset should be added to handle_ruleset_control() in any case for player-nation-player consistency. there should be a game_free() game_init() I don't think other pointers than player-nation are used between ruleset_data_free() and receiving relevant packet again. Problem with game_free() + game_init() are is-info packets. Delta code needs changes so that we can force sending those packets again. - ML ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39639) [Patch] Fix attribute chunk delta problems
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39639 Attribute chunk packet has constant size data block. If there is not that much usable data, delta code has been working with somewhat random data. This has caused extra traffic at least. Attached patch fills unused portion of data block with 0. - ML diff -Nurd -X.diff_ignore freeciv/common/packets.c freeciv/common/packets.c --- freeciv/common/packets.c 2007-08-11 12:17:15.0 +0300 +++ freeciv/common/packets.c 2007-08-30 23:09:42.0 +0300 @@ -646,6 +646,12 @@ packet.chunk_length); bytes_left -= packet.chunk_length; +if (packet.chunk_length ATTRIBUTE_CHUNK_SIZE) { + /* Last chunk is not full. Make sure that delta does + * not use random data. */ + memset(packet.data, 0, ATTRIBUTE_CHUNK_SIZE - packet.chunk_length); +} + send_packet_player_attribute_chunk(pconn, packet); } ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
Re: [Freeciv-Dev] (PR#39634) [Bug] Magic ruleset crash in maybe_make_contact() - unit_owner()
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39634 On 30/08/2007, Pepeto _ [EMAIL PROTECTED] wrote: I looked at the code it seems it's not what I described. But I think it's something linked to this. BUT, I found a bad code line in this code which must be changed: wakeup_neighbor_sentries(punit); if (!unit_survive_autoattack(punit)) { return FALSE; } maybe_make_contact(pdesttile, unit_owner(punit)); conn_list_do_unbuffer(pplayer-connections); if the unit doesn't survive to the attack the connection list is not free Fix for that one. - ML diff -Nurd -X.diff_ignore freeciv/server/unittools.c freeciv/server/unittools.c --- freeciv/server/unittools.c 2007-08-06 16:42:12.0 +0300 +++ freeciv/server/unittools.c 2007-08-31 00:59:37.0 +0300 @@ -2885,6 +2885,7 @@ API_TYPE_TILE, pdesttile); wakeup_neighbor_sentries(punit); if (!unit_survive_autoattack(punit)) { +conn_list_do_unbuffer(pplayer-connections); return FALSE; } maybe_make_contact(pdesttile, unit_owner(punit)); ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
Re: [Freeciv-Dev] (PR#39638) Non i18n'd string in client/helpdata.c
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39638 On 8/31/07, Joan Creus [EMAIL PROTECTED] wrote: URL: http://bugs.freeciv.org/Ticket/Display.html?id=39638 In client/helpdata.c, line 1253 (revision 13433) (within helptext_government()) the output variable is assigned All, without the _( const char *output = All; As far as I've seen, in the default ruleset, this string only appears on the help text for both Anarchy and Despotism, where it says that each worked tile that gives more than %d %s will suffer a -1 penalty when not celebrating. It's most obvious in my language, because All means garlic, so the message becomes something like if a worked tile gives more than 2 garlic you will get a penalty. Kinda misleading. I'm not sure if it's just a matter of sticking the _( in front, or there are more implications in the logic of the program. Cheers, Joan The sentence produced by this string is awful even in its raw English form: * Each worked tile that gives more than 2 All will suffer a -1 penalty when not celebrating. Wouldn't it make more sense to replace 'All' with something like 'of any output'? ~Daniel ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
Re: [Freeciv-Dev] (PR#39638) Non i18n'd string in client/helpdata.c
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39638 On 31/08/2007, Daniel Markstedt [EMAIL PROTECTED] wrote: The sentence produced by this string is awful even in its raw English form: * Each worked tile that gives more than 2 All will suffer a -1 penalty when not celebrating. Wouldn't it make more sense to replace 'All' with something like 'of any output'? ...with some code changes and additional strings. It is currently used in sentences: Each worked tile that gives more than %d All will suffer a -1 penalty when not celebrating. Each worked tile with at least 1 All will yield %d additional All when celebrating. Each worked tile with at least 1 All will yield %d additional All. All production will suffer massive waste. All production will suffer some waste. All production will suffer a small amount of waste. All waste will increase quickly with distance from capital. All waste will increase with distance from capital. All waste will increase slowly with distance from capital. Following sentences also use 'output', but they should only appear if there is some real output type (and not with All): You pay %d times normal All upkeep for your units. Each of your cities will avoid paying %d All towards unit upkeep. This help generation function is very broken considering alternative rulesets (not only that it lacks information, but it also produces misinformation in some cases) - ML ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
Re: [Freeciv-Dev] (PR#39630) Typos in several nation rulesets
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39630 On 8/30/07, Joan Creus [EMAIL PROTECTED] wrote: URL: http://bugs.freeciv.org/Ticket/Display.html?id=39630 This transaction appears to have no content Several typos I have found in the ottoman, colombian, westphalian, malian, byzantium, and romanian rulesets while translating. See file for the details. Cheers, Joan Updated version with two more typo fixes posted in another ticket. ~Daniel nationtypos.diff Description: Binary data ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39640) [rulesets] Norman nation
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39640 Norman nation, written by me, flag by Wikimedia Commons' User:Andersersej. See also http://forum.freeciv.org/viewtopic.php?t=2273start=90 ~Daniel inline: normandy.svg norman.ruleset Description: Binary data ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#12165) Tileset tag memory leak
URL: http://bugs.freeciv.org/Ticket/Display.html?id=12165 Subject: duplicate tileset tags cause a memory leak Date: Mon, 07 Feb 2005 20:50:17 -0500 To: The default queue From: Jason Dorje Short This is in 2.0 and 2.0.99. The code is in tilespec.c: for (k = 0; k num_tags; k++) { (void) hash_replace(sprite_hash, mystrdup(tags[k]), ss); } } this leads to lots of leaked memory from the mystrdup call, when civ3gfx (which has many duplicate tags) is used. --- Patch - ML diff -Nurd -X.diff_ignore freeciv/client/tilespec.c freeciv/client/tilespec.c --- freeciv/client/tilespec.c 2007-08-25 15:16:07.0 +0300 +++ freeciv/client/tilespec.c 2007-08-31 02:25:44.0 +0300 @@ -429,6 +429,13 @@ int focus_unit_state = 0; +/ + Hash callback for freeing key +/ +static void sprite_hash_free_key(void *key) +{ + free(key); +} / Return the name of the given tileset. @@ -1593,7 +1600,8 @@ } assert(t-sprite_hash == NULL); - t-sprite_hash = hash_new(hash_fval_string, hash_fcmp_string); + t-sprite_hash = hash_new_full(hash_fval_string, hash_fcmp_string, + sprite_hash_free_key, NULL); for (i = 0; i num_spec_files; i++) { struct specfile *sf = fc_malloc(sizeof(*sf)); char *dname; @@ -4430,7 +4438,6 @@ const char *key = hash_key_by_number(t-sprite_hash, 0); hash_delete_entry(t-sprite_hash, key); - free((void *) key); } hash_free(t-sprite_hash); ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
Re: [Freeciv-Dev] (PR#17982) units that obsolete each other
URL: http://bugs.freeciv.org/Ticket/Display.html?id=17982 On 23/06/2006, Billy Naylor [EMAIL PROTECTED] wrote: using revision 12030 of freeciv 2.1.0 a broken rndCIv ruleset had Ballista Catapult obsolete each other, which meant the client froze when the first city was created. this should have been caught by the server when it parsed rulesets. Attached patch catches upgrade loops when parsing rulesets. - ML diff -Nurd -X.diff_ignore freeciv/server/ruleset.c freeciv/server/ruleset.c --- freeciv/server/ruleset.c 2007-08-11 21:57:28.0 +0300 +++ freeciv/server/ruleset.c 2007-08-31 03:10:53.0 +0300 @@ -3273,6 +3273,8 @@ **/ static bool sanity_check_ruleset_data(void) { + int num_utypes; + /* Check that all players can have their initial techs */ nations_iterate(pnation) { int i; @@ -3321,5 +3323,22 @@ } } players_iterate_end; + /* Check against unit upgrade loops */ + num_utypes = game.control.num_unit_types; + unit_type_iterate(putype) { +int chain_length = 0; +struct unit_type *upgraded = putype; + +while(upgraded != NULL) { + upgraded = upgraded-obsoleted_by; + chain_length++; + if (chain_length num_utypes) { +freelog(LOG_FATAL, There seems to be obsoleted_by loop in update +chain that starts from %s, utype_rule_name(putype)); +exit(EXIT_FAILURE); + } +} + } unit_type_iterate_end; + return TRUE; } ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39641) [Patch] Use default metamessage from start
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39641 Automatic metamessage is set (and sent) to metaserver only after first player is actually connected server. Attached patch fixes this. For trunk, S2_1 and S2_0. - ML diff -Nurd -X.diff_ignore freeciv/server/srv_main.c freeciv/server/srv_main.c --- freeciv/server/srv_main.c 2007-08-30 12:36:18.0 +0300 +++ freeciv/server/srv_main.c 2007-08-31 03:25:26.0 +0300 @@ -1814,6 +1814,7 @@ server_open_meta(); /* open socket for meta server */ } + maybe_automatic_meta_message(default_meta_message_string()); (void) send_server_info_to_metaserver(META_INFO); /* accept new players, wait for serverop to start..*/ ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
Re: [Freeciv-Dev] (PR#39545) [Patch] Up to date freeciv.spec.in
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39545 On Wed, 29 Aug 2007 Marko Lindqvist wrote: On 29/08/2007, Egor Vyscrebentsov wrote: PS. It seems to me that we may move away from alternatives, assuming that civclient is always gui-gtk-2.0 client. However, I had some thoughts about making civclient a wrapper that will try to find and start clients in our order. (Well, it can be created for *nix systems, not for win*; but we don't have rpm for win* :), so that shouldn't be a problem if we'll have patch, applying in spec.) Maybe there is more general solution. For testing compilation of all the clients after source changes, I considered modifying --enable-client configure option to support something like '--enable-client=gtk,sdl,xaw' or '--enable-client=all'. This is one of my dreams. 'all' is too much, but having more than one client built by one 'make' is really what I like to have. Then civclient would just start some certain gui-binary (maybe just as symbolic link to that particular gui-binary) Seems to be too much work for small gain, though. Well, now I know only two guys (besides specs) who use build out of srcdir. So build out of srcdir might be considered as 'too much work for small gain' too ;) Seriously, I think, making more than one client feature is more than it seems to be now. -- Thanks, evyscr ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev