commit: 4570caacaf658978676d0571efc4c6a877ec183d Author: Nicolas PARLANT <nicolas.parlant <AT> parhuet <DOT> fr> AuthorDate: Fri Oct 3 08:20:05 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sat Oct 4 00:56:04 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4570caac
games-arcade/blobby: add 1.1.1 update EAPI to 8 update SRC_URI (redirect) unbundle lua and tinyxml2 use media-libs/libglvnd instead of virtual/opengl builtin tar from cmake is used instead of app-arch/zip filter-lto (Werror=strict-aliasing) wakeup testsuite Closes: https://bugs.gentoo.org/868723 Closes: https://bugs.gentoo.org/938116 Closes: https://bugs.gentoo.org/957868 Closes: https://bugs.gentoo.org/957869 Signed-off-by: Nicolas PARLANT <nicolas.parlant <AT> parhuet.fr> Part-of: https://github.com/gentoo/gentoo/pull/44018 Signed-off-by: Sam James <sam <AT> gentoo.org> games-arcade/blobby/Manifest | 1 + games-arcade/blobby/blobby-1.1.1.ebuild | 59 ++++++++++ .../blobby/files/blobby-1.1.1-fix_deps.patch | 36 ++++++ .../blobby/files/blobby-1.1.1-fix_linkedlist.patch | 130 +++++++++++++++++++++ 4 files changed, 226 insertions(+) diff --git a/games-arcade/blobby/Manifest b/games-arcade/blobby/Manifest index c386ce1af196..abd759d52347 100644 --- a/games-arcade/blobby/Manifest +++ b/games-arcade/blobby/Manifest @@ -1 +1,2 @@ DIST blobby2-linux-1.0.tar.gz 1772918 BLAKE2B ee2231d5c2a287f812debf43a95b6ffe4abdcd87fec41eea5e528253d83190f20d4b2245b5e530f1b8b9df310ce2757b06377f7305f8cf60e6d51db9964ea239 SHA512 b9e36de4a44e482c9d0742b95034c2979d7a51512ac5e3fd8f4933655132028dfc9642c3580e5523b5b95d38acc169932d24808cee236710731c2571321337fa +DIST blobby2-linux-1.1.1.tar.gz 2549889 BLAKE2B 120906ac3a01cb0abf00f288c6955df1e8f9dc2e0ed74c6bc70fb7069a6c29d38f860c2b9fbfb42084e4693cafc1bf40f09cd3eba355fac148d9860376bb6486 SHA512 4061de21586ed8404c1cfb5284820e5e0835d10270de12d5e336c1fd9bb080f27a732d9d6cd3a98cbf1eb9d674791d028692f8031b56a9e0be09fcadb2e64c03 diff --git a/games-arcade/blobby/blobby-1.1.1.ebuild b/games-arcade/blobby/blobby-1.1.1.ebuild new file mode 100644 index 000000000000..717e0b8d523f --- /dev/null +++ b/games-arcade/blobby/blobby-1.1.1.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LUA_COMPAT=( lua5-{3,4} ) + +inherit cmake edo flag-o-matic lua-single xdg + +DESCRIPTION="Beach ball game with blobs of goo" +HOMEPAGE="https://sourceforge.net/projects/blobby/" +SRC_URI="https://downloads.sourceforge.net/project/blobby/Blobby%20Volley%202%20%28Linux%29/${PV}/${PN}2-linux-${PV}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="test" +REQUIRED_USE="${LUA_REQUIRED_USE}" +RESTRICT="!test? ( test )" + +RDEPEND=" + ${LUA_DEPS} + dev-games/physfs[zip] + dev-libs/tinyxml2:= + media-libs/libglvnd + media-libs/libsdl2[sound,joystick,opengl,video] +" +DEPEND=" + ${RDEPEND} + dev-libs/boost +" +BDEPEND="virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${PN}-1.1.1-fix_linkedlist.patch # from upstream + "${FILESDIR}"/${PN}-1.1.1-fix_deps.patch +) + +src_prepare() { + cmake_src_prepare + # lua and tinyxml2 unbundled by patch + cmake_comment_add_subdirectory deps +} + +src_configure() { + # https://github.com/danielknobe/blobbyvolley2/issues/163 + filter-lto + append-flags -fno-strict-aliasing + local mycmakeargs=( + -DBUILD_TESTS=$(usex test) + ) + cmake_src_configure +} + +src_test() { + pushd "${BUILD_DIR}"/test || die + edo ./blobbytest --report_level=short + popd || die +} diff --git a/games-arcade/blobby/files/blobby-1.1.1-fix_deps.patch b/games-arcade/blobby/files/blobby-1.1.1-fix_deps.patch new file mode 100644 index 000000000000..8aa84ec2d12d --- /dev/null +++ b/games-arcade/blobby/files/blobby-1.1.1-fix_deps.patch @@ -0,0 +1,36 @@ +use system-libs for lua and tinyxml2 +use pkgconfig for opengl to avoid X requirement due to findOpenGL.cmake +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -83,7 +83,10 @@ set (blobby-server_SRC ${common_SRC} + ) + + find_package(Boost REQUIRED) +-find_package(OpenGL) ++find_package(PkgConfig REQUIRED) ++pkg_check_modules(OPENGL REQUIRED opengl) ++pkg_check_modules(lua REQUIRED IMPORTED_TARGET lua) ++pkg_check_modules(tinyxml2 REQUIRED IMPORTED_TARGET tinyxml2) + add_subdirectory(raknet) + add_subdirectory(blobnet) + +@@ -100,7 +103,7 @@ if (UNIX AND (NOT ANDROID)) + add_definitions("-DBLOBBY_DATA_DIR=\"${CMAKE_INSTALL_PREFIX}/share/blobby\"") + endif() + +-set(BLOBBY_COMMON_LIBS lua::lua blobnet::blobnet tinyxml2::tinyxml2 PhysFS::PhysFS SDL2::SDL2main SDL2::SDL2 Boost::boost) ++set(BLOBBY_COMMON_LIBS PkgConfig::lua blobnet::blobnet PkgConfig::tinyxml2 PhysFS::PhysFS SDL2::SDL2main SDL2::SDL2 Boost::boost) + + # other additional dependencies + if (NOT WIN32) +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -35,6 +35,6 @@ endif ("${SDL2_LIBRARIES}" STREQUAL "") + + add_executable(blobbytest GenericIOTest.cpp FileTest.cpp Base64Test.cpp ${SRC}) + +-target_include_directories(blobbytest PRIVATE ${Boost_INCLUDE_DIR} ${PHYSFS_INCLUDE_DIR} ${SDL2_INCLUDE_DIRS} ../src) ++target_include_directories(blobbytest PRIVATE ${Boost_INCLUDE_DIR} ${PHYSFS_INCLUDE_DIR} ${SDL2_INCLUDE_DIRS} ${lua_INCLUDE_DIRS} ${tinyxml2_INCLUDE_DIRS} ../src) + target_compile_definitions(blobbytest PRIVATE "BOOST_TEST_DYN_LINK=1") +-target_link_libraries(blobbytest ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} ${PHYSFS_LIBRARY} ${SDL2_LIBRARIES} lua raknet tinyxml2) ++target_link_libraries(blobbytest ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} ${PHYSFS_LIBRARY} ${SDL2_LIBRARIES} ${lua_LIBRARIES} ${tinyxml2_LIBRARIES} raknet) diff --git a/games-arcade/blobby/files/blobby-1.1.1-fix_linkedlist.patch b/games-arcade/blobby/files/blobby-1.1.1-fix_linkedlist.patch new file mode 100644 index 000000000000..3f05c3ffc351 --- /dev/null +++ b/games-arcade/blobby/files/blobby-1.1.1-fix_linkedlist.patch @@ -0,0 +1,130 @@ +from upstream, fix compile with clang-19 +https://github.com/danielknobe/blobbyvolley2/pull/152/commits/f5111f93827bc7e1dc7423209986fe14a92823db.patch +--- a/src/raknet/LinkedList.h ++++ b/src/raknet/LinkedList.h +@@ -272,7 +272,9 @@ namespace BasicDataStructures + template <class LinkedListType> + bool LinkedList<LinkedListType>::operator= ( const LinkedList<LinkedListType>& original_copy ) + { +- typename LinkedList::node * original_copy_pointer, *save_position; ++ typename LinkedList::node* original_copy_pointer; ++ typename LinkedList::node* last; ++ typename LinkedList::node* save_position; + + if ( ( &original_copy ) != this ) + { +@@ -318,7 +320,7 @@ namespace BasicDataStructures + + + // Save the current element +- this->last = this->position; ++ last = this->position; + + // Point to the next node in the source list + original_copy_pointer = original_copy_pointer->next; +@@ -336,10 +338,10 @@ namespace BasicDataStructures + + + // Set the previous pointer for the new node +- ( this->position->previous ) = this->last; ++ ( this->position->previous ) = last; + + // Set the next pointer for the old node to the new node +- ( this->last->next ) = this->position; ++ ( last->next ) = this->position; + + } + +@@ -383,7 +385,9 @@ namespace BasicDataStructures + template <class LinkedListType> + LinkedList<LinkedListType>::LinkedList( const LinkedList& original_copy ) + { +- typename LinkedList::node * original_copy_pointer, *last, *save_position; ++ typename LinkedList::node * original_copy_pointer; ++ typename LinkedList::node * last; ++ typename LinkedList::node * save_position; + + if ( original_copy.list_size == 0 ) + { +@@ -422,7 +426,7 @@ namespace BasicDataStructures + do + { + // Save the current element +- this->last = this->position; ++ last = this->position; + + // Point to the next node in the source list + original_copy_pointer = original_copy_pointer->next; +@@ -442,7 +446,7 @@ namespace BasicDataStructures + ( this->position->previous ) = last; + + // Set the next pointer for the old node to the new node +- ( this->last->next ) = this->position; ++ ( last->next ) = this->position; + + } + +@@ -462,7 +466,8 @@ namespace BasicDataStructures + template <class CircularLinkedListType> + CircularLinkedList<CircularLinkedListType>::CircularLinkedList( const CircularLinkedList& original_copy ) + { +- node * original_copy_pointer; ++ node *original_copy_pointer; ++ node *last; + node *save_position; + + if ( original_copy.list_size == 0 ) +@@ -504,7 +509,7 @@ namespace BasicDataStructures + + + // Save the current element +- this->last = this->position; ++ last = this->position; + + // Point to the next node in the source list + original_copy_pointer = original_copy_pointer->next; +@@ -521,10 +526,10 @@ namespace BasicDataStructures + save_position = position; + + // Set the previous pointer for the new node +- ( this->position->previous ) = this->last; ++ ( this->position->previous ) = last; + + // Set the next pointer for the old node to the new node +- ( this->last->next ) = this->position; ++ ( last->next ) = this->position; + + } + +@@ -544,7 +549,8 @@ namespace BasicDataStructures + template <class CircularLinkedListType> + bool CircularLinkedList<CircularLinkedListType>::operator= ( const CircularLinkedList& original_copy ) + { +- node * original_copy_pointer; ++ node *original_copy_pointer; ++ node *last; + node *save_position; + + if ( ( &original_copy ) != this ) +@@ -589,7 +595,7 @@ namespace BasicDataStructures + do + { + // Save the current element +- this->last = this->position; ++ last = this->position; + + // Point to the next node in the source list + original_copy_pointer = original_copy_pointer->next; +@@ -606,10 +612,10 @@ namespace BasicDataStructures + save_position = this->position; + + // Set the previous pointer for the new node +- ( this->position->previous ) = this->last; ++ ( this->position->previous ) = last; + + // Set the next pointer for the old node to the new node +- ( this->last->next ) = this->position; ++ ( last->next ) = this->position; + + } +
