Tasks #700 » 0001-Prepare-main-branch-for-3.4-development.patch
NEWS | ||
---|---|---|
the detailed changes should check the ChangeLog file.
|
||
MAJOR CHANGES FROM 3.3.x to 3.4.0
|
||
---------------------------------
|
||
[TODO]
|
||
MAJOR CHANGES FROM 3.2.x to 3.3.0
|
||
---------------------------------
|
||
data/civ2civ3/README.civ2civ3 | ||
---|---|---|
=================================
|
||
Civ2Civ3 Ruleset for Freeciv v3.3
|
||
Civ2Civ3 Ruleset for Freeciv v3.4
|
||
=================================
|
||
doc/BUGS | ||
---|---|---|
BUGS
|
||
====
|
||
Freeciv 3.3 certainly contains some bugs. Please report all
|
||
Freeciv 3.4 certainly contains some bugs. Please report all
|
||
you find to https://redmine.freeciv.org/projects/freeciv
|
||
doc/README.packaging | ||
---|---|---|
create Freeciv fork.
|
||
----------------------------------------------------------------------
|
||
Updating from 3.2 to 3.3
|
||
Updating from 3.3 to 3.4
|
||
------------------------
|
||
* Client uses ~/.freeciv/freeciv-client-rc-3.3 for storing its options.
|
||
* Client uses ~/.freeciv/freeciv-client-rc-3.4 for storing its options.
|
||
Options are always saved to that file.
|
||
Loading of options first tries to get options from
|
||
~/.freeciv/freeciv-client-rc-3.3. If that file does not exist it tries to
|
||
~/.freeciv/freeciv-client-rc-3.4. If that file does not exist it tries to
|
||
load options from old client files generated by former version of Freeciv
|
||
(e.g. ~/.freeciv/freeciv-client-rc-3.2 generated by Freeciv 3.2,
|
||
~/.freeciv-client-rc-3.1 generated by Freeciv 3.1).
|
||
* Minimum version of Qt is Qt-5.15, when building in Qt5-mode
|
||
* Configuring source directory is no longer allowed in autotools builds.
|
||
You have to use separate build dir(s)
|
||
* Minimum autoconf version, for autotools based builds, is now 2.69
|
||
* New 'qt6x' mode for building Qt based components linked against
|
||
relatively new Qt6 versions
|
||
* New gtk4x-client that is linked against relatively new gtk4 versions
|
||
* Build with meson supports building gtk4x modpack installer that is linked
|
||
against relatively new gtk4 versions
|
||
* va_copy support is now mandatory
|
||
* Building web version of the server with autotools is no longer supported.
|
||
Make such builds with meson instead.
|
||
* Minimum Python requirement for code generation scripts is 3.6.
|
||
(e.g. ~/.freeciv/freeciv-client-rc-3.3 generated by Freeciv 3.3,
|
||
~/.freeciv-client-rc-3.2 generated by Freeciv 3.2).
|
||
----------------------------------------------------------------------
|
||
Compatibility of modified versions
|
||
... | ... | |
This is list of files Freeciv might generate to filesystem when running.
|
||
You may want to remove some of these when Freeciv is uninstalled.
|
||
* Client saves its options to file "~/.freeciv/freeciv-client-rc-3.3"
|
||
* Client saves its options to file "~/.freeciv/freeciv-client-rc-3.4"
|
||
* Server saves its readline history to file "~/.freeciv/freeciv-server_history"
|
||
* When running local single player games, challenge files with name
|
||
like "~/.freeciv/challenge_*_*" are generated
|
||
... | ... | |
* When saving game in independently launched server, savegames go
|
||
to directory specified with "-s" command line option, defaulting
|
||
to working directory
|
||
* freeciv-modpack saves data under "~/.freeciv/3.3/" and
|
||
* freeciv-modpack saves data under "~/.freeciv/3.4/" and
|
||
"~/.freeciv/scenarios/"
|
||
* Server can write log to file specified with "-l" command line option
|
||
* When mapimage feature is used, it can save colortest images to
|
||
... | ... | |
compatible servers.
|
||
Any a.b.c release is network compatible with any a.b.d release. If you
|
||
provide 3.3.c client, it can be used to play on 3.3.d server.
|
||
provide 3.4.c client, it can be used to play on 3.4.d server.
|
doc/README.rulesets | ||
---|---|---|
The URLs below list the differences between the freeciv versions from 2.2.x
|
||
to the current version:
|
||
https://www.freeciv.org/wiki/How_to_update_a_ruleset_from_3.3_to_3.4
|
||
https://www.freeciv.org/wiki/How_to_update_a_ruleset_from_3.2_to_3.3
|
||
https://www.freeciv.org/wiki/How_to_update_a_ruleset_from_3.1_to_3.2
|
doc/README.tilesets | ||
---|---|---|
The URLs below list the differences between the freeciv versions from 1.14.x
|
||
to the current version:
|
||
https://www.freeciv.org/wiki/How_to_update_a_tileset_from_3.3_to_3.4
|
||
https://www.freeciv.org/wiki/How_to_update_a_tileset_from_3.2_to_3.3
|
||
https://www.freeciv.org/wiki/How_to_update_a_tileset_from_3.1_to_3.2
|
fc_version | ||
---|---|---|
# Version definition for Freeciv.
|
||
MAJOR_VERSION="3"
|
||
MINOR_VERSION="2"
|
||
PATCH_VERSION="92"
|
||
MINOR_VERSION="3"
|
||
PATCH_VERSION="90"
|
||
EMERGENCY_VERSION=""
|
||
VERSION_LABEL="-dev"
|
||
... | ... | |
# Date and NEWS URL are relevant only for "stable" releases
|
||
if test "$VERSION_LABEL" = "" ; then
|
||
RELEASE_TYPE="stable"
|
||
#RELEASE_DATE="2023-05-08"
|
||
#RELEASE_DATE="2025-01-01"
|
||
NEWS_URL="https://www.freeciv.org/wiki/NEWS-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}"
|
||
else
|
||
RELEASE_TYPE="development"
|
||
#NEWS_URL="https://www.freeciv.org/wiki/NEWS-3.3.0"
|
||
#NEWS_URL="https://www.freeciv.org/wiki/NEWS-3.4.0"
|
||
fi
|
||
#
|
||
... | ... | |
IS_FREEZE_VERSION=0
|
||
IS_BETA_VERSION=0
|
||
NEXT_STABLE_VERSION="3.3.0"
|
||
NEXT_STABLE_VERSION="3.4.0"
|
||
# 0 to disable display of release month until we can make better estimate
|
||
RELEASE_MONTH=0
|
||
MAIN_VERSION=3.3
|
||
MAIN_VERSION=3.4
|
||
DATASUBDIR=dev
|
||
DEFAULT_FOLLOW_TAG=S3_3
|
||
DEFAULT_FOLLOW_TAG=S3_4
|
||
# Freeciv network capstring: see documentation in common/capstr.c
|
||
#
|
meson.build | ||
---|---|---|
priv_conf_data.set('IS_FREEZE_VERSION', 0)
|
||
priv_conf_data.set('IS_BETA_VERSION', 0)
|
||
priv_conf_data.set('FREECIV_RELEASE_MONTH', 0)
|
||
priv_conf_data.set('NEXT_STABLE_VERSION', '"3.3.0"')
|
||
priv_conf_data.set('NEXT_STABLE_VERSION', '"3.4.0"')
|
||
if host_machine.endian() == 'big'
|
||
priv_conf_data.set('WORDS_BIGENDIAN', 1)
|
platforms/macos/homebrew-appbundle.sh | ||
---|---|---|
-Ddebug=false \
|
||
-Dclients=gtk4,qt \
|
||
-Dfcmp=qt \
|
||
-Dfollowtag=macos-S3_3 \
|
||
-Dfollowtag=macos-S3_4 \
|
||
-Ddefault_library=static \
|
||
-Dprefix="${CONTENTSDIR}" ||
|
||
! ninja ||
|
platforms/windows/installer_msys2/Makefile.autotools | ||
---|---|---|
# Create build directory
|
||
mkdir -p $(BUILD_DIR)/$(WINARCH)-$(GUI)
|
||
# Configure
|
||
cd $(BUILD_DIR)/$(WINARCH)-$(GUI); $(SRC_ROOT)/../../../configure FREECIV_LABEL_FORCE="<base>-msys2" CPPFLAGS="-D_WIN32_WINNT=$(MIN_WIN_VER)" --enable-client=$(CLIENT) --with-followtag="windows-S3_3" --with-tinycthread --without-readline --disable-sys-lua --enable-fcdb=sqlite3 --with-sqlite3-prefix=/$(ARCHDIR) --enable-fcmp=$(FCMP) --with-cacert-path="./ssl/certs/ca-bundle.crt" $(EXTRA_CONFIG)
|
||
cd $(BUILD_DIR)/$(WINARCH)-$(GUI); $(SRC_ROOT)/../../../configure FREECIV_LABEL_FORCE="<base>-msys2" CPPFLAGS="-D_WIN32_WINNT=$(MIN_WIN_VER)" --enable-client=$(CLIENT) --with-followtag="windows-S3_4" --with-tinycthread --without-readline --disable-sys-lua --enable-fcdb=sqlite3 --with-sqlite3-prefix=/$(ARCHDIR) --enable-fcmp=$(FCMP) --with-cacert-path="./ssl/certs/ca-bundle.crt" $(EXTRA_CONFIG)
|
||
configure-freeciv-ruledit-qt5:
|
||
# Create build directory
|
platforms/windows/installer_msys2/Makefile.meson | ||
---|---|---|
install-freeciv-common: clean-install-client-arch
|
||
# Create build directory
|
||
mkdir -p $(BUILD_DIR)/$(WINARCH)-client-$(GUI)
|
||
cd $(BUILD_DIR)/$(WINARCH)-client-$(GUI); meson setup $(IMSYS2_DIR)/../../.. -Dprefix=$(IMSYS2_DIR)/$(INST_DIR)/$(WINARCH)-client-$(GUI) -Dfollowtag='windows-S3_3' -Dclients=$(CLIENT) -Dfcmp=$(FCMP) -Dtools=manual,ruleup -Dreadline=false -Dcacert-path='./ssl/certs/ca-bundle.crt' -Dmin-win-ver=$(MIN_WIN_VER) -Dsyslua=false $(EXTRA_CONFIG)
|
||
cd $(BUILD_DIR)/$(WINARCH)-client-$(GUI); meson setup $(IMSYS2_DIR)/../../.. -Dprefix=$(IMSYS2_DIR)/$(INST_DIR)/$(WINARCH)-client-$(GUI) -Dfollowtag='windows-S3_4' -Dclients=$(CLIENT) -Dfcmp=$(FCMP) -Dtools=manual,ruleup -Dreadline=false -Dcacert-path='./ssl/certs/ca-bundle.crt' -Dmin-win-ver=$(MIN_WIN_VER) -Dsyslua=false $(EXTRA_CONFIG)
|
||
cd $(BUILD_DIR)/$(WINARCH)-client-$(GUI); ninja
|
||
cd $(BUILD_DIR)/$(WINARCH)-client-$(GUI); ninja install
|
||
cd $(BUILD_DIR)/$(WINARCH)-client-$(GUI); ninja langstat_core.txt
|
||
... | ... | |
install-ruledit-common: clean-ruledit-install-arch
|
||
# Create build directory
|
||
mkdir -p $(BUILD_DIR)/$(WINARCH)-ruledit-$(GUI)
|
||
cd $(BUILD_DIR)/$(WINARCH)-ruledit-$(GUI); meson setup $(IMSYS2_DIR)/../../.. -Dprefix=$(IMSYS2_DIR)/$(INST_DIR)/$(WINARCH)-ruledit-$(GUI) -Dfollowtag='windows-S3_3' -Dclients=[] -Dfcmp=[] -Dserver=disabled -Dtools=ruledit -Dreadline=false -Dcacert-path='./ssl/certs/ca-bundle.crt' -Dmin-win-ver=$(MIN_WIN_VER) -Dsyslua=false $(EXTRA_CONFIG)
|
||
cd $(BUILD_DIR)/$(WINARCH)-ruledit-$(GUI); meson setup $(IMSYS2_DIR)/../../.. -Dprefix=$(IMSYS2_DIR)/$(INST_DIR)/$(WINARCH)-ruledit-$(GUI) -Dfollowtag='windows-S3_4' -Dclients=[] -Dfcmp=[] -Dserver=disabled -Dtools=ruledit -Dreadline=false -Dcacert-path='./ssl/certs/ca-bundle.crt' -Dmin-win-ver=$(MIN_WIN_VER) -Dsyslua=false $(EXTRA_CONFIG)
|
||
cd $(BUILD_DIR)/$(WINARCH)-ruledit-$(GUI); ninja
|
||
cd $(BUILD_DIR)/$(WINARCH)-ruledit-$(GUI); ninja install
|
||
cd $(BUILD_DIR)/$(WINARCH)-ruledit-$(GUI); ninja langstat_core.txt langstat_ruledit.txt
|
server/ruleset/rscompat.h | ||
---|---|---|
#include "ruleload.h"
|
||
#include "settings.h"
|
||
#define RULESET_COMPAT_CAP "+Freeciv-ruleset-3.2-Devel-2022.Feb.02"
|
||
#define RULESET_COMPAT_CAP "+Freeciv-ruleset-3.3-Devel-2023.Feb.24"
|
||
struct rscompat_info
|
||
{
|
server/savegame/savecompat.c | ||
---|---|---|
3.0.0 | 3.0.0 release | 201./../.. | 40
|
||
3.1.0 | 3.1.0 release | 201./../.. | 50
|
||
3.2.0 | 3.2.0 release | 202./../.. | 60
|
||
3.3.0 | 3.3.0 release (development) | 202./../.. | 70
|
||
3.3.0 | 3.3.0 release | 202./../.. | 70
|
||
3.4.0 | 3.4.0 release (development) | 202./../.. | 80
|
||
| | |
|
||
*/
|
||
... | ... | |
static void compat_load_030100(struct loaddata *loading, enum sgf_version format_class);
|
||
static void compat_load_030200(struct loaddata *loading, enum sgf_version format_class);
|
||
static void compat_load_030300(struct loaddata *loading, enum sgf_version format_class);
|
||
static void compat_load_030400(struct loaddata *loading, enum sgf_version format_class);
|
||
static void compat_post_load_030100(struct loaddata *loading,
|
||
enum sgf_version format_class);
|
||
... | ... | |
* add the needed code to load the old version below. Thus, old
|
||
* savegames can still be loaded while the main definition
|
||
* represents the current state of the art. */
|
||
/* While developing freeciv 3.3.0, add the compatibility functions to
|
||
* - compat_load_030300 to load old savegame. */
|
||
/* While developing freeciv 3.4.0, add the compatibility functions to
|
||
* - compat_load_030400 to load old savegame. */
|
||
static struct compatibility compat[] = {
|
||
/* dummy; equal to the current version (last element) */
|
||
{ 0, NULL, NULL },
|
||
... | ... | |
{ 60, compat_load_030200, NULL },
|
||
/* version 61 to 69 are reserved for possible changes in 3.2.x */
|
||
{ 70, compat_load_030300, NULL },
|
||
/* version 71 to 79 are reserved for possible changes in 3.3.x */
|
||
{ 80, compat_load_030400, NULL },
|
||
/* Current savefile version is listed above this line; it corresponds to
|
||
the definitions in this file. */
|
||
};
|
||
... | ... | |
}
|
||
}
|
||
/************************************************************************//**
|
||
Translate savegame secfile data from 3.3.x to 3.4.0 format.
|
||
Note that even after 2.6 savegame has gone through all the compatibility
|
||
functions, it's still 2.6 savegame in the sense that savegame2.c, and not
|
||
savegame3.c, handles it.
|
||
****************************************************************************/
|
||
static void compat_load_030400(struct loaddata *loading,
|
||
enum sgf_version format_class)
|
||
{
|
||
/* Check status and return if not OK (sg_success != TRUE). */
|
||
sg_check_ret();
|
||
log_debug("Upgrading data from savegame to version 3.4.0");
|
||
}
|
||
/************************************************************************//**
|
||
Translate savegame secfile data from earlier development version format
|
||
to current one.
|
translations/Strings.txt | ||
---|---|---|
_("?vertag:stable")
|
||
_("?vertag:windows")
|
||
_("?vertag:macos")
|
||
_("?vertag:S3_1")
|
||
_("?vertag:S3_2")
|
||
_("?vertag:S3_3")
|
||
_("?vertag:S3_4")
|
||
_("?vertag:crosser")
|
||
_("?vertag:windows-S3_1")
|
||
_("?vertag:windows-S3_2")
|
||
_("?vertag:windows-S3_3")
|
||
_("?vertag:windows-S3_4")
|
||
_("?vertag:macos-S3_2")
|
||
_("?vertag:macos-S3_3")
|
||
_("?vertag:macos-S3_4")
|
||
Generated version header
|