Tasks #700 » 0002-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)
|
||
|
* One needs to use configure option --enable-ack-legacy to build
|
||
|
with autotools. Use meson based system instead, if possible
|
||
|
* 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 | ||
|---|---|---|
|
#!/bin/sh
|
||
|
#
|
||
|
# Copyright (C) 2004-2024 Freeciv team
|
||
|
# Copyright (C) 2004-2025 Freeciv team
|
||
|
# Version definition for Freeciv.
|
||
|
MAJOR_VERSION="3"
|
||
|
MINOR_VERSION="2"
|
||
|
PATCH_VERSION="92"
|
||
|
EMERGENCY_VERSION="7"
|
||
|
MINOR_VERSION="3"
|
||
|
PATCH_VERSION="90"
|
||
|
EMERGENCY_VERSION=""
|
||
|
VERSION_LABEL="-dev"
|
||
|
# Type is either "development" or "stable"
|
||
|
# Date and NEWS URL are relevant only for "stable" releases
|
||
|
if test "$VERSION_LABEL" = "" ; then
|
||
|
RELEASE_TYPE="stable"
|
||
|
#RELEASE_DATE="2024-06-14"
|
||
|
#RELEASE_DATE="2025-01-17"
|
||
|
NEWS_URL="https://www.freeciv.org/wiki/NEWS-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}"
|
||
|
else
|
||
|
RELEASE_TYPE="development"
|
||
|
#RELEASE_DATE="2024-06-14"
|
||
|
#NEWS_URL="https://www.freeciv.org/wiki/NEWS-3.3.0"
|
||
|
#RELEASE_DATE="2025-01-17"
|
||
|
#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" --enable-ack-legacy $(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" --enable-ack-legacy $(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/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. */
|
||
|
};
|
||
| ... | ... | |
|
} player_slots_iterate_end;
|
||
|
}
|
||
|
/************************************************************************//**
|
||
|
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
|
||
- « Previous
- 1
- …
- 5
- 6
- 7
- Next »