From 3b09863a55c106e2fa7fa565072c300f66e6888d Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Fri, 9 Sep 2016 14:48:11 +0200 Subject: [PATCH] games-strategy/freeorion: initial import Change-Id: Ic50ae0f57dfadcb306eec0753d47a6e7ced0fe63 Reviewed-on: https://galileo.mailstation.de/gerrit/7065 Reviewed-by: Jenkins Reviewed-by: Julian Ospald --- ...d278225fb35836471eb0425b6675530d22d9.patch | 376 ++++++++++++++++++ ...309cd4025f207e3a77fe57021934e80de703.patch | 139 +++++++ ...9e312ae86919bd77b39d45fa35dc4b66d458.patch | 49 +++ .../freeorion/freeorion-0.4.5.exheres-0 | 87 ++++ 4 files changed, 651 insertions(+) create mode 100644 packages/games-strategy/freeorion/files/0001-Backport-of-d87fd278225fb35836471eb0425b6675530d22d9.patch create mode 100644 packages/games-strategy/freeorion/files/5a3c309cd4025f207e3a77fe57021934e80de703.patch create mode 100644 packages/games-strategy/freeorion/files/70c19e312ae86919bd77b39d45fa35dc4b66d458.patch create mode 100644 packages/games-strategy/freeorion/freeorion-0.4.5.exheres-0 diff --git a/packages/games-strategy/freeorion/files/0001-Backport-of-d87fd278225fb35836471eb0425b6675530d22d9.patch b/packages/games-strategy/freeorion/files/0001-Backport-of-d87fd278225fb35836471eb0425b6675530d22d9.patch new file mode 100644 index 00000000..79357d1c --- /dev/null +++ b/packages/games-strategy/freeorion/files/0001-Backport-of-d87fd278225fb35836471eb0425b6675530d22d9.patch @@ -0,0 +1,376 @@ +From 2325d4899015776745dff355999c99b384488e13 Mon Sep 17 00:00:00 2001 +From: Julian Ospald +Date: Fri, 9 Sep 2016 14:28:54 +0200 +Subject: [PATCH] Backport of d87fd278225fb35836471eb0425b6675530d22d9 to 0.4.5 + +--- + CMakeLists.txt | 43 +++++++++++++++++++++++++++---------------- + GG/CMakeLists.txt | 7 +++---- + GG/cmake/GiGi.pc.in | 4 ++-- + GG/cmake/GiGiSDL.pc.in | 4 ++-- + GG/src/CMakeLists.txt | 9 +++++---- + GG/src/SDL/CMakeLists.txt | 9 +++++---- + client/AI/CMakeLists.txt | 2 +- + client/human/CMakeLists.txt | 8 +------- + parse/CMakeLists.txt | 4 ++-- + parse/test/CMakeLists.txt | 12 ------------ + server/CMakeLists.txt | 2 +- + 11 files changed, 49 insertions(+), 55 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index decefe2..44779f9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,6 +1,8 @@ + cmake_minimum_required(VERSION 2.6) + cmake_policy(VERSION 2.6.4) + ++include(GNUInstallDirs) ++ + list(APPEND CMAKE_MODULE_PATH ${CMAKE_HOME_DIRECTORY}/cmake ${CMAKE_HOME_DIRECTORY}/GG/cmake) + set(CMAKE_CONFIGURATION_TYPES Debug Release) + IF(NOT CMAKE_BUILD_TYPE) +@@ -33,9 +35,18 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) + ++if(WIN32) ++ set(CMAKE_INSTALL_BINDIR "") ++ set(FreeOrion_INSTALL_LIBDIR "") ++ set(FreeOrion_INSTALL_FULL_LIBDIR "") ++else() ++ set(FreeOrion_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}/freeorion") ++ set(FreeOrion_INSTALL_FULL_LIBDIR "${CMAKE_INSTALL_FULL_LIBDIR}/freeorion") ++endif() ++ + set(CMAKE_SKIP_BUILD_RPATH FALSE) + set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) +-set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/freeorion") ++set(CMAKE_INSTALL_RPATH "${FreeOrion_INSTALL_FULL_LIBDIR}") + set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + + if (WIN32) +@@ -104,10 +115,11 @@ endif () + # Build common code library # + ######################################## + set(BUILD_DEVEL_PACKAGE OFF CACHE INTERNAL "Disables installation of GiGi development files." FORCE) +-set(OLD_LIB_SUFFIX ${LIB_SUFFIX}) +-set(LIB_SUFFIX "${LIB_SUFFIX}/freeorion") ++set(_ORIG_CMAKE_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR}) ++set(CMAKE_INSTALL_LIBDIR "${FreeOrion_INSTALL_LIBDIR}") + add_subdirectory(GG) +-set(LIB_SUFFIX ${OLD_LIB_SUFFIX}) ++set(CMAKE_INSTALL_LIBDIR ${_ORIG_CMAKE_INSTALL_LIBDIR}) ++unset(_ORIG_CMAKE_INSTALL_LIBDIR) + + ######################################## + # Dependencies # +@@ -377,31 +389,30 @@ if (BUILD_SDK) + else () + install( + DIRECTORY default/ +- DESTINATION share/freeorion/default ++ DESTINATION ${CMAKE_INSTALL_DATADIR}/freeorion/default + COMPONENT COMPONENT_FREEORION_DATA +- PATTERN ".svn" EXCLUDE + PATTERN "*~" EXCLUDE + PATTERN "*.pyc" EXCLUDE + ) + + install( + TARGETS freeorioncommon +- LIBRARY DESTINATION lib${LIB_SUFFIX}/freeorion +- RUNTIME DESTINATION . ++ LIBRARY DESTINATION ${FreeOrion_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + COMPONENT COMPONENT_FREEORION + ) + + install( + FILES + ${CMAKE_SOURCE_DIR}/freeorion.desktop +- DESTINATION share/applications ++ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications + COMPONENT COMPONENT_FREEORION + ) + + install( + FILES + ${CMAKE_SOURCE_DIR}/default/data/art/icons/FO_Icon_16x16.png +- DESTINATION share/icons/hicolor/16x16/apps/ ++ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/16x16/apps/ + RENAME freeorion.png + COMPONENT COMPONENT_FREEORION + ) +@@ -409,7 +420,7 @@ else () + install( + FILES + ${CMAKE_SOURCE_DIR}/default/data/art/icons/FO_Icon_24x24.png +- DESTINATION share/icons/hicolor/24x24/apps/ ++ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/24x24/apps/ + RENAME freeorion.png + COMPONENT COMPONENT_FREEORION + ) +@@ -417,7 +428,7 @@ else () + install( + FILES + ${CMAKE_SOURCE_DIR}/default/data/art/icons/FO_Icon_32x32.png +- DESTINATION share/icons/hicolor/32x32/apps/ ++ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/32x32/apps/ + RENAME freeorion.png + COMPONENT COMPONENT_FREEORION + ) +@@ -425,7 +436,7 @@ else () + install( + FILES + ${CMAKE_SOURCE_DIR}/default/data/art/icons/FO_Icon_64x64.png +- DESTINATION share/icons/hicolor/64x64/apps/ ++ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/64x64/apps/ + RENAME freeorion.png + COMPONENT COMPONENT_FREEORION + ) +@@ -433,7 +444,7 @@ else () + install( + FILES + ${CMAKE_SOURCE_DIR}/default/data/art/icons/FO_Icon_128x128.png +- DESTINATION share/icons/hicolor/128x128/apps/ ++ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/128x128/apps/ + RENAME freeorion.png + COMPONENT COMPONENT_FREEORION + ) +@@ -441,7 +452,7 @@ else () + install( + FILES + ${CMAKE_SOURCE_DIR}/default/data/art/icons/FO_Icon_256x256.png +- DESTINATION share/icons/hicolor/256x256/apps/ ++ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/256x256/apps/ + RENAME freeorion.png + COMPONENT COMPONENT_FREEORION + ) +@@ -470,7 +481,7 @@ else () + wrap_oal.dll + z.dll + zlib1.dll +- DESTINATION bin ++ DESTINATION ${CMAKE_INSTALL_BINDIR} + COMPONENT COMPONENT_FREEORION_WIN32_RUNTIME_DEPS + ) + endif () +diff --git a/GG/CMakeLists.txt b/GG/CMakeLists.txt +index 1078ec3..882116d 100644 +--- a/GG/CMakeLists.txt ++++ b/GG/CMakeLists.txt +@@ -3,6 +3,7 @@ cmake_policy(VERSION 2.6.4) + + enable_testing() + include(CMakeDependentOption) ++include(GNUInstallDirs) + + project(GiGi) + +@@ -131,10 +132,8 @@ configure_file( + if (BUILD_DEVEL_PACKAGE) + install( + DIRECTORY GG +- DESTINATION include ++ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + COMPONENT COMPONENT_GIGI_DEVEL +- PATTERN ".svn" EXCLUDE +- PATTERN "*~" EXCLUDE + ) + endif () + +@@ -172,7 +171,7 @@ if (DOXYGEN_FOUND) + if (BUILD_DEVEL_PACKAGE) + install( + DIRECTORY ${GG_DOC_STAMP_DIR} +- DESTINATION doc ++ DESTINATION ${CMAKE_INSTALL_DOCDIR} + ) + endif () + endif () +diff --git a/GG/cmake/GiGi.pc.in b/GG/cmake/GiGi.pc.in +index 3c0a874..ba7cbe6 100644 +--- a/GG/cmake/GiGi.pc.in ++++ b/GG/cmake/GiGi.pc.in +@@ -1,6 +1,6 @@ + prefix=@CMAKE_INSTALL_PREFIX@ +-libdir=${prefix}/lib@LIB_SUFFIX@ +-includedir=${prefix}/include ++libdir=@CMAKE_INSTALL_FULL_LIBDIR@ ++includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ + version=@GIGI_VERSION@ + + Name: GiGi +diff --git a/GG/cmake/GiGiSDL.pc.in b/GG/cmake/GiGiSDL.pc.in +index 933c5af..ed2c4e1 100644 +--- a/GG/cmake/GiGiSDL.pc.in ++++ b/GG/cmake/GiGiSDL.pc.in +@@ -1,6 +1,6 @@ + prefix=@CMAKE_INSTALL_PREFIX@ +-libdir=${prefix}/lib@LIB_SUFFIX@ +-includedir=${prefix}/include ++libdir=@CMAKE_INSTALL_FULL_LIBDIR@ ++includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ + version=@GIGI_VERSION@ + + Name: GiGiSDL +diff --git a/GG/src/CMakeLists.txt b/GG/src/CMakeLists.txt +index 1ef20d0..d9e90ed 100644 +--- a/GG/src/CMakeLists.txt ++++ b/GG/src/CMakeLists.txt +@@ -75,15 +75,16 @@ target_link_libraries(GiGi ${GiGi_LINK_LIBS}) + + install( + TARGETS GiGi +- LIBRARY DESTINATION lib${LIB_SUFFIX} +- RUNTIME DESTINATION . ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + COMPONENT COMPONENT_GIGI + ) + + if (BUILD_DEVEL_PACKAGE) + install( + TARGETS GiGi +- ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT COMPONENT_GIGI_DEVEL ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ COMPONENT COMPONENT_GIGI_DEVEL + ) + endif () + +@@ -98,7 +99,7 @@ if (UNIX AND BUILD_DEVEL_PACKAGE) + + install( + FILES ${CMAKE_BINARY_DIR}/GiGi.pc +- DESTINATION lib${LIB_SUFFIX}/pkgconfig ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig + COMPONENT COMPONENT_GIGI_DEVEL + OPTIONAL + ) +diff --git a/GG/src/SDL/CMakeLists.txt b/GG/src/SDL/CMakeLists.txt +index 868778d..3003034 100644 +--- a/GG/src/SDL/CMakeLists.txt ++++ b/GG/src/SDL/CMakeLists.txt +@@ -24,15 +24,16 @@ target_link_libraries(GiGiSDL ${GiGiSDL_LINK_LIBS}) + + install( + TARGETS GiGiSDL +- LIBRARY DESTINATION lib${LIB_SUFFIX} +- RUNTIME DESTINATION . ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + COMPONENT COMPONENT_GIGISDL + ) + + if (BUILD_DEVEL_PACKAGE) + install( + TARGETS GiGiSDL +- ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT COMPONENT_GIGISDL_DEVEL ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ COMPONENT COMPONENT_GIGISDL_DEVEL + ) + endif () + +@@ -47,7 +48,7 @@ if (UNIX AND BUILD_DEVEL_PACKAGE) + + install( + FILES ${CMAKE_BINARY_DIR}/GiGiSDL.pc +- DESTINATION lib${LIB_SUFFIX}/pkgconfig ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig + COMPONENT COMPONENT_GIGI_DEVEL + OPTIONAL + ) +diff --git a/client/AI/CMakeLists.txt b/client/AI/CMakeLists.txt +index fc559ed..082a9ab 100644 +--- a/client/AI/CMakeLists.txt ++++ b/client/AI/CMakeLists.txt +@@ -63,7 +63,7 @@ target_link_libraries(freeorionca + + install( + TARGETS freeorionca +- RUNTIME DESTINATION bin ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + COMPONENT COMPONENT_FREEORION + ) + +diff --git a/client/human/CMakeLists.txt b/client/human/CMakeLists.txt +index afd6294..4c1d308 100644 +--- a/client/human/CMakeLists.txt ++++ b/client/human/CMakeLists.txt +@@ -212,13 +212,7 @@ target_link_libraries(freeorion + + install( + TARGETS freeorion +- RUNTIME DESTINATION bin +- COMPONENT COMPONENT_FREEORION +-) +- +-install( +- FILES +- DESTINATION share/freeorion ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + COMPONENT COMPONENT_FREEORION + ) + +diff --git a/parse/CMakeLists.txt b/parse/CMakeLists.txt +index 3b1987e..ebf8632 100644 +--- a/parse/CMakeLists.txt ++++ b/parse/CMakeLists.txt +@@ -95,8 +95,8 @@ endif () + + install( + TARGETS freeorionparse +- LIBRARY DESTINATION lib${LIB_SUFFIX}/freeorion +- RUNTIME DESTINATION . ++ LIBRARY DESTINATION ${FreeOrion_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + COMPONENT COMPONENT_FREEORION + ) + +diff --git a/parse/test/CMakeLists.txt b/parse/test/CMakeLists.txt +index 6929827..be207b4 100644 +--- a/parse/test/CMakeLists.txt ++++ b/parse/test/CMakeLists.txt +@@ -26,12 +26,6 @@ target_link_libraries(test_parsers + ${CMAKE_THREAD_LIBS_INIT} + ) + +-install( +- TARGETS test_parsers +- RUNTIME DESTINATION . +- COMPONENT COMPONENT_FREEORION +-) +- + find_package (Boost REQUIRED COMPONENTS unit_test_framework) + + include_directories ( +@@ -55,12 +49,6 @@ target_link_libraries(test_parsers_boost + ${Boost_UNIT_TEST_FRAMEWORK_LIBRARIES} + ) + +-install( +- TARGETS test_parsers_boost +- RUNTIME DESTINATION . +- COMPONENT COMPONENT_FREEORION +-) +- + add_test(enum_parser ${CMAKE_BINARY_DIR}/test_parsers_boost --run_test EnumParser) + add_test(value_ref_double_parser ${CMAKE_BINARY_DIR}/test_parsers_boost --run_test ValueRefDoubleParser) + add_test(value_ref_int_parser ${CMAKE_BINARY_DIR}/test_parsers_boost --run_test ValueRefIntParser) +diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt +index 9a8d7a5..9ead9d0 100644 +--- a/server/CMakeLists.txt ++++ b/server/CMakeLists.txt +@@ -65,7 +65,7 @@ target_link_libraries(freeoriond + + install( + TARGETS freeoriond +- RUNTIME DESTINATION bin ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + COMPONENT COMPONENT_FREEORION + ) + +-- +2.10.0 + diff --git a/packages/games-strategy/freeorion/files/5a3c309cd4025f207e3a77fe57021934e80de703.patch b/packages/games-strategy/freeorion/files/5a3c309cd4025f207e3a77fe57021934e80de703.patch new file mode 100644 index 00000000..897688f6 --- /dev/null +++ b/packages/games-strategy/freeorion/files/5a3c309cd4025f207e3a77fe57021934e80de703.patch @@ -0,0 +1,139 @@ +From 5a3c309cd4025f207e3a77fe57021934e80de703 Mon Sep 17 00:00:00 2001 +From: Marcel Metz +Date: Mon, 22 Aug 2016 13:14:31 +0200 +Subject: [PATCH] Make universe object destructors public for boost version + 1.61 + +Fixes #887 + +The boost::serialization library changed the way objects are delete when +deserializing referenced objects [boost::serialization 69ecae6] which +was leading to a compile error. To work around this for the FreeOrion +release 0.4.6 we decided to make the UniverseObject derived class +destructors public. + +[boost::serialization]: +https://github.com/boostorg/serialization/commit/69ecae6919b417be2b2558aefffea97fbe50d4a8 +--- + universe/Building.h | 7 +++++++ + universe/Field.h | 7 +++++++ + universe/Fleet.h | 7 +++++++ + universe/Planet.h | 7 +++++++ + universe/Ship.h | 7 +++++++ + universe/System.h | 7 +++++++ + 6 files changed, 42 insertions(+) + +diff --git a/universe/Building.h b/universe/Building.h +index 5d21130..18d4810 100644 +--- a/universe/Building.h ++++ b/universe/Building.h +@@ -68,7 +68,14 @@ class FO_COMMON_API Building : public UniverseObject { + + template friend void boost::python::detail::value_destroyer::execute(T const volatile* p); + template friend void boost::checked_delete(T* x); ++ ++#if BOOST_VERSION == 106100 ++public: ++#endif + ~Building() {} ++#if BOOST_VERSION == 106100 ++protected: ++#endif + + virtual Building* Clone(int empire_id = ALL_EMPIRES) const; ///< returns new copy of this Building + //@} +diff --git a/universe/Field.h b/universe/Field.h +index 8cb5b9a..f1d454e 100644 +--- a/universe/Field.h ++++ b/universe/Field.h +@@ -47,7 +47,14 @@ class FO_COMMON_API Field : public UniverseObject { + + template friend void boost::python::detail::value_destroyer::execute(T const volatile* p); + template friend void boost::checked_delete(T* x); ++ ++#if BOOST_VERSION == 106100 ++public: ++#endif + ~Field() {} ++#if BOOST_VERSION == 106100 ++protected: ++#endif + + virtual Field* Clone(int empire_id = ALL_EMPIRES) const; ///< returns new copy of this Field + //@} +diff --git a/universe/Fleet.h b/universe/Fleet.h +index 923c2c7..a6a1fe0 100644 +--- a/universe/Fleet.h ++++ b/universe/Fleet.h +@@ -149,7 +149,14 @@ class FO_COMMON_API Fleet : public UniverseObject { + + template friend void boost::python::detail::value_destroyer::execute(T const volatile* p); + template friend void boost::checked_delete(T* x); ++ ++#if BOOST_VERSION == 106100 ++public: ++#endif + ~Fleet() {} ++#if BOOST_VERSION == 106100 ++protected: ++#endif + + virtual Fleet* Clone(int empire_id = ALL_EMPIRES) const; ///< returns new copy of this Fleet + //@} +diff --git a/universe/Planet.h b/universe/Planet.h +index ec4a6c3..44289ef 100644 +--- a/universe/Planet.h ++++ b/universe/Planet.h +@@ -183,7 +183,14 @@ class FO_COMMON_API Planet : + + template friend void boost::python::detail::value_destroyer::execute(T const volatile* p); + template friend void boost::checked_delete(T* x); ++ ++#if BOOST_VERSION == 106100 ++public: ++#endif + ~Planet() {} ++#if BOOST_VERSION == 106100 ++protected: ++#endif + + virtual Planet* Clone(int empire_id = ALL_EMPIRES) const; ///< returns new copy of this Planet + //@} +diff --git a/universe/Ship.h b/universe/Ship.h +index aa71038..4881086 100644 +--- a/universe/Ship.h ++++ b/universe/Ship.h +@@ -103,7 +103,14 @@ class FO_COMMON_API Ship : public UniverseObject { + + template friend void boost::python::detail::value_destroyer::execute(T const volatile* p); + template friend void boost::checked_delete(T* x); ++ ++#if BOOST_VERSION == 106100 ++public: ++#endif + ~Ship() {} ++#if BOOST_VERSION == 106100 ++protected: ++#endif + + virtual Ship* Clone(int empire_id = ALL_EMPIRES) const; ///< returns new copy of this Ship + //@} +diff --git a/universe/System.h b/universe/System.h +index 0740720..5ecb684 100644 +--- a/universe/System.h ++++ b/universe/System.h +@@ -132,7 +132,14 @@ class FO_COMMON_API System : public UniverseObject { + + template friend void boost::python::detail::value_destroyer::execute(T const volatile* p); + template friend void boost::checked_delete(T* x); ++ ++#if BOOST_VERSION == 106100 ++public: ++#endif + ~System() {} ++#if BOOST_VERSION == 106100 ++protected: ++#endif + + virtual System* Clone(int empire_id = ALL_EMPIRES) const; ///< returns new copy of this System + //@} diff --git a/packages/games-strategy/freeorion/files/70c19e312ae86919bd77b39d45fa35dc4b66d458.patch b/packages/games-strategy/freeorion/files/70c19e312ae86919bd77b39d45fa35dc4b66d458.patch new file mode 100644 index 00000000..616906be --- /dev/null +++ b/packages/games-strategy/freeorion/files/70c19e312ae86919bd77b39d45fa35dc4b66d458.patch @@ -0,0 +1,49 @@ +From 70c19e312ae86919bd77b39d45fa35dc4b66d458 Mon Sep 17 00:00:00 2001 +From: Marcel Metz +Date: Sun, 21 Aug 2016 20:23:48 +0200 +Subject: [PATCH] Use old boost::optional implementation for boost 1.61 + +Fixes #777 + +- boost::spirit v 1.61 relies on the fact that the `Variant` template + type of `boost::spirit::qi::detail::find_substitute` typedefs a + `types` subtype. +- For the failing instantiation of `find_substition` a + `boost::optional` is used as `Variant` template type. +- `boost::optional` removed its `types` subtype implementation with + commit [boost::optional b5b8414c0], which means that this type is + missing on every boost version 1.61 and onwards (until fixed of course). +- Using the BOOST_OPTIONAL_CONFIG_USE_OLD_IMPLEMENTATION_OF_OPTIONAL + reenables the old implementation of boost::optional, which provides a + `types` subtype. + +This commits enables said define for boost 1.61 only, because I consider +this an upstream bug. The upstream bug is tracked as [boost #12349]. + +[boost::optional b5b8414c0]: https://github.com/boostorg/optional/commit/b5b8414c069a2c5f16cc1f9813d069c8b36e2c35 +[boost #12349]: https://svn.boost.org/trac/boost/ticket/12349 +--- + CMakeLists.txt | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3e70e72..65f1537 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -143,6 +143,16 @@ find_package(Boost ${MINIMUM_BOOST_VERSION} COMPONENTS chrono date_time filesyst + find_package(ZLIB REQUIRED) + find_package(Freetype REQUIRED) + ++if(${Boost_VERSION} EQUAL "106100") ++ # with boost 1.61 some boost::optional internals were changed. However ++ # boost::spirit relies on some API the old implementation provided. This ++ # define enables the usage of the old boost::optional implementation. ++ # boost upstream tracks this bug as #12349 ++ add_definitions( ++ -DBOOST_OPTIONAL_CONFIG_USE_OLD_IMPLEMENTATION_OF_OPTIONAL ++ ) ++endif() ++ + include_directories( + ${Boost_INCLUDE_DIRS} + ${ZLIB_INCLUDE_DIR} diff --git a/packages/games-strategy/freeorion/freeorion-0.4.5.exheres-0 b/packages/games-strategy/freeorion/freeorion-0.4.5.exheres-0 new file mode 100644 index 00000000..37de26ed --- /dev/null +++ b/packages/games-strategy/freeorion/freeorion-0.4.5.exheres-0 @@ -0,0 +1,87 @@ +# Copyright 2016 Julian Ospald +# Distributed under the terms of the GNU General Public License v2 + +CMAKE_SOURCE=${WORKBASE}/src-tarball + +require github [ user=${PN} release=v${PV} pnv=FreeOrion_v${PV}_2015-09-01.f203162_Source suffix=tar.gz ] +require cmake [ api=2 ] +require gtk-icon-cache + +SUMMARY="A free turn-based space empire and galactic conquest game" +DESCRIPTION=" +FreeOrion is a free, open source, turn-based space empire and galactic conquest +(4X) computer game being designed and built by the FreeOrion project. FreeOrion +is inspired by the tradition of the Master of Orion games, but is not a clone or +remake of that series or any other game. +" +HOMEPAGE+=" http://www.freeorion.org" + +LICENCES="GPL-2 LGPL-2.1 CCPL-Attribution-ShareAlike-3.0" +SLOT="0" +PLATFORMS="~amd64" +MYOPTIONS=" + ( providers: ijg-jpeg jpeg-turbo ) [[ number-selected = exactly-one ]] +" + +DEPENDENCIES=" + build: + virtual/pkg-config + build+run: + dev-lang/python:2.7 + dev-libs/boost + media-libs/SDL:2[X] + media-libs/freetype:2 + media-libs/glew + media-libs/libogg + media-libs/libpng:= + media-libs/libvorbis + media-libs/openal + media-libs/tiff + sci-physics/bullet + sys-libs/zlib + x11-dri/glu + x11-dri/mesa + providers:ijg-jpeg? ( media-libs/jpeg:= ) + providers:jpeg-turbo? ( media-libs/libjpeg-turbo ) +" + +BUGS_TO="hasufell@posteo.de" + +DEFAULT_SRC_PREPARE_PATCHES=( + "${FILES}"/70c19e312ae86919bd77b39d45fa35dc4b66d458.patch + "${FILES}"/5a3c309cd4025f207e3a77fe57021934e80de703.patch + "${FILES}"/0001-Backport-of-d87fd278225fb35836471eb0425b6675530d22d9.patch +) + +CMAKE_SRC_CONFIGURE_PARAMS=( + -DRELEASE_COMPILE_FLAGS="" + -DCMAKE_SKIP_RPATH=ON +) + +src_prepare() { + cmake_src_prepare + + # parse subdir sets -O3 + edo sed -e "s:-O3::" -i "${CMAKE_SOURCE}"/parse/CMakeLists.txt +} + +src_install() { + cmake_src_install + + # we need a wrapper + edo mv "${IMAGE}"/usr/$(exhost --target)/bin/${PN} \ + "${IMAGE}"/usr/$(exhost --target)/bin/${PN}.bin + + herebin "${PN}" <