From 2ba0a77d1d779f7080607f267d32e6cd52768d8f Mon Sep 17 00:00:00 2001 From: Silvan Calarco Date: Tue, 7 May 2024 15:25:22 +0200 Subject: [PATCH] rebuilt with current libboost, patches added [release 0.7.6-3mamba;Tue May 07 2024] --- pingus-0.7.2-gcc44.patch | 23 -- pingus-0.7.6-boost-1.69.patch | 380 +++++++++++++++++++ pingus-0.7.6-gcc-13.2.0-missing-header.patch | 22 ++ pingus-0.7.6-gcc-13.2.0.patch | 12 + pingus-0.7.6-scons-4.7.0.patch | 19 + pingus.spec | 40 +- 6 files changed, 458 insertions(+), 38 deletions(-) delete mode 100644 pingus-0.7.2-gcc44.patch create mode 100644 pingus-0.7.6-boost-1.69.patch create mode 100644 pingus-0.7.6-gcc-13.2.0-missing-header.patch create mode 100644 pingus-0.7.6-gcc-13.2.0.patch create mode 100644 pingus-0.7.6-scons-4.7.0.patch diff --git a/pingus-0.7.2-gcc44.patch b/pingus-0.7.2-gcc44.patch deleted file mode 100644 index f4c26b7..0000000 --- a/pingus-0.7.2-gcc44.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -Nru pingus-0.7.2.orig/src/input/evdev_device.cpp pingus-0.7.2/src/input/evdev_device.cpp ---- pingus-0.7.2.orig/src/input/evdev_device.cpp 2007-10-01 19:24:54.000000000 +0200 -+++ pingus-0.7.2/src/input/evdev_device.cpp 2009-06-04 14:33:13.000000000 +0200 -@@ -25,6 +25,8 @@ - #include - #include - #include -+#include -+#include - - #include "evdev_device.hpp" - -diff -Nru pingus-0.7.2.orig/src/tinygettext/po_file_reader.cpp pingus-0.7.2/src/tinygettext/po_file_reader.cpp ---- pingus-0.7.2.orig/src/tinygettext/po_file_reader.cpp 2007-10-18 19:54:01.000000000 +0200 -+++ pingus-0.7.2/src/tinygettext/po_file_reader.cpp 2009-06-04 14:33:27.000000000 +0200 -@@ -18,6 +18,7 @@ - // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - #include -+#include - #include - #include - #include diff --git a/pingus-0.7.6-boost-1.69.patch b/pingus-0.7.6-boost-1.69.patch new file mode 100644 index 0000000..e412ffb --- /dev/null +++ b/pingus-0.7.6-boost-1.69.patch @@ -0,0 +1,380 @@ +From fef8cf6512fa4aa09e87643c22ef66de9ec7bb41 Mon Sep 17 00:00:00 2001 +From: Ingo Ruhnke +Date: Sat, 26 Jul 2014 20:49:11 +0200 +Subject: [PATCH] Switched to boost::signals2 + +--- + SConscript | 5 ++--- + src/editor/button.hpp | 4 ++-- + src/editor/checkbox.hpp | 4 ++-- + src/editor/combobox.hpp | 4 ++-- + src/editor/file_list.hpp | 4 ++-- + src/editor/inputbox.hpp | 6 +++--- + src/editor/message_box.hpp | 2 +- + src/editor/object_selector.cpp | 4 ++-- + src/editor/viewport.hpp | 4 ++-- + src/pingus/components/check_box.hpp | 4 ++-- + src/pingus/components/choice_box.hpp | 4 ++-- + src/pingus/components/slider_box.hpp | 4 ++-- + src/pingus/config_manager.hpp | 28 ++++++++++++++-------------- + src/pingus/screens/option_menu.hpp | 4 ++-- + 14 files changed, 40 insertions(+), 41 deletions(-) + +diff --git a/SConscript b/SConscript +index 758567f51..c4d25a8a9 100644 +--- SConscript ++++ SConscript +@@ -187,9 +187,8 @@ class Project: + 'src/engine/input/xinput/xinput_device.cpp']) + + def configure_boost(self): +- if not self.conf.CheckLibWithHeader('boost_signals', 'boost/signals.hpp', 'c++'): +- if not self.conf.CheckLibWithHeader('boost_signals-mt', 'boost/signals.hpp', 'c++'): +- self.fatal_error += " * library 'boost_signals' not found\n" ++ if not self.conf.CheckHeader('boost/signals2.hpp', '<>', 'c++'): ++ self.fatal_error += " * library 'boost_signals2' not found\n" + + def configure_png(self): + if self.conf.CheckMyProgram('pkg-config'): +diff --git a/src/editor/button.hpp b/src/editor/button.hpp +index c85d7da9e..d89dfe669 100644 +--- src/editor/button.hpp ++++ src/editor/button.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_EDITOR_BUTTON_HPP + #define HEADER_PINGUS_EDITOR_BUTTON_HPP + +-#include ++#include + + #include "engine/gui/rect_component.hpp" + +@@ -48,7 +48,7 @@ public: + void enable() { enabled = true; } + void disable() { enabled = false; } + +- boost::signal on_click; ++ boost::signals2::signal on_click; + + private: + Button (const Button&); +diff --git a/src/editor/checkbox.hpp b/src/editor/checkbox.hpp +index 7c3bc835f..66382d79b 100644 +--- src/editor/checkbox.hpp ++++ src/editor/checkbox.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_EDITOR_CHECKBOX_HPP + #define HEADER_PINGUS_EDITOR_CHECKBOX_HPP + +-#include ++#include + + #include "engine/gui/rect_component.hpp" + +@@ -40,7 +40,7 @@ public: + bool is_checked() const { return checked; } + void on_primary_button_press(int x, int y); + +- boost::signal on_change; ++ boost::signals2::signal on_change; + + private: + Checkbox (const Checkbox&); +diff --git a/src/editor/combobox.hpp b/src/editor/combobox.hpp +index 0ca742593..603556bd9 100644 +--- src/editor/combobox.hpp ++++ src/editor/combobox.hpp +@@ -18,7 +18,7 @@ + #ifndef HEADER_PINGUS_EDITOR_COMBOBOX_HPP + #define HEADER_PINGUS_EDITOR_COMBOBOX_HPP + +-#include ++#include + + #include "engine/display/sprite.hpp" + #include "engine/gui/rect_component.hpp" +@@ -88,7 +88,7 @@ public: + + void update_layout() {} + +- boost::signal on_select; ++ boost::signals2::signal on_select; + + private: + Combobox(); +diff --git a/src/editor/file_list.hpp b/src/editor/file_list.hpp +index cc4bba2de..85efe6aa0 100644 +--- src/editor/file_list.hpp ++++ src/editor/file_list.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_EDITOR_FILE_LIST_HPP + #define HEADER_PINGUS_EDITOR_FILE_LIST_HPP + +-#include ++#include + + #include "engine/display/sprite.hpp" + #include "engine/gui/rect_component.hpp" +@@ -61,7 +61,7 @@ public: + bool has_more_next_pages(); + bool has_more_prev_pages(); + +- boost::signal on_click; ++ boost::signals2::signal on_click; + + private: + int items_per_page(); +diff --git a/src/editor/inputbox.hpp b/src/editor/inputbox.hpp +index cad9663ec..87321dbba 100644 +--- src/editor/inputbox.hpp ++++ src/editor/inputbox.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_EDITOR_INPUTBOX_HPP + #define HEADER_PINGUS_EDITOR_INPUTBOX_HPP + +-#include ++#include + + #include "engine/gui/rect_component.hpp" + +@@ -40,8 +40,8 @@ public: + + void update_layout() {} + +- boost::signal on_change; +- boost::signal on_enter; ++ boost::signals2::signal on_change; ++ boost::signals2::signal on_enter; + + private: + Inputbox (const Inputbox&); +diff --git a/src/editor/message_box.hpp b/src/editor/message_box.hpp +index 385387a61..d885767cf 100644 +--- src/editor/message_box.hpp ++++ src/editor/message_box.hpp +@@ -45,7 +45,7 @@ public: + void on_cancel_button(); + + public: +- boost::signal on_ok; ++ boost::signals2::signal on_ok; + + private: + MessageBox(const MessageBox&); +diff --git a/src/editor/object_selector.cpp b/src/editor/object_selector.cpp +index 28e306826..f3a36b5e8 100644 +--- src/editor/object_selector.cpp ++++ src/editor/object_selector.cpp +@@ -16,7 +16,7 @@ + + #include "editor/object_selector.hpp" + +-#include ++#include + + #include "editor/generic_level_obj.hpp" + #include "editor/gui_style.hpp" +@@ -47,7 +47,7 @@ private: + std::string tooltip; + + public: +- boost::signal on_click; ++ boost::signals2::signal on_click; + + public: + ObjectSelectorButton(ObjectSelectorList* object_list_, +diff --git a/src/editor/viewport.hpp b/src/editor/viewport.hpp +index 1ae9eff7c..18868254d 100644 +--- src/editor/viewport.hpp ++++ src/editor/viewport.hpp +@@ -18,7 +18,7 @@ + #ifndef HEADER_PINGUS_EDITOR_VIEWPORT_HPP + #define HEADER_PINGUS_EDITOR_VIEWPORT_HPP + +-#include ++#include + #include + + #include "editor/selection.hpp" +@@ -148,7 +148,7 @@ public: + + void clear_selection(); + +- boost::signal selection_changed; ++ boost::signals2::signal selection_changed; + private: + Viewport(); + Viewport (const Viewport&); +diff --git a/src/pingus/components/check_box.hpp b/src/pingus/components/check_box.hpp +index 00e23b764..5bef50f6b 100644 +--- src/pingus/components/check_box.hpp ++++ src/pingus/components/check_box.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_PINGUS_COMPONENTS_CHECK_BOX_HPP + #define HEADER_PINGUS_PINGUS_COMPONENTS_CHECK_BOX_HPP + +-#include ++#include + + #include "engine/display/sprite.hpp" + #include "engine/gui/rect_component.hpp" +@@ -39,7 +39,7 @@ public: + + void set_state(bool v, bool send_signal); + +- boost::signal on_change; ++ boost::signals2::signal on_change; + + private: + CheckBox (const CheckBox&); +diff --git a/src/pingus/components/choice_box.hpp b/src/pingus/components/choice_box.hpp +index 49d6e1948..ef51b6dd2 100644 +--- src/pingus/components/choice_box.hpp ++++ src/pingus/components/choice_box.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_PINGUS_COMPONENTS_CHOICE_BOX_HPP + #define HEADER_PINGUS_PINGUS_COMPONENTS_CHOICE_BOX_HPP + +-#include ++#include + + #include "engine/gui/rect_component.hpp" + +@@ -36,7 +36,7 @@ public: + void add_choice(const std::string& str); + void set_current_choice(int choice); + +- boost::signal on_change; ++ boost::signals2::signal on_change; + + private: + ChoiceBox (const ChoiceBox&); +diff --git a/src/pingus/components/slider_box.hpp b/src/pingus/components/slider_box.hpp +index ae4d92406..75118eac2 100644 +--- src/pingus/components/slider_box.hpp ++++ src/pingus/components/slider_box.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_PINGUS_COMPONENTS_SLIDER_BOX_HPP + #define HEADER_PINGUS_PINGUS_COMPONENTS_SLIDER_BOX_HPP + +-#include ++#include + + #include "engine/gui/rect_component.hpp" + +@@ -39,7 +39,7 @@ public: + + void set_value(int v); + +- boost::signal on_change; ++ boost::signals2::signal on_change; + + private: + SliderBox (const SliderBox&); +diff --git a/src/pingus/config_manager.hpp b/src/pingus/config_manager.hpp +index b07b83e65..4cf08e046 100644 +--- src/pingus/config_manager.hpp ++++ src/pingus/config_manager.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_PINGUS_CONFIG_MANAGER_HPP + #define HEADER_PINGUS_PINGUS_CONFIG_MANAGER_HPP + +-#include ++#include + + #include "math/size.hpp" + #include "pingus/options.hpp" +@@ -39,55 +39,55 @@ public: + + void set_master_volume(int); + int get_master_volume() const; +- boost::signal on_master_volume_change; ++ boost::signals2::signal on_master_volume_change; + + void set_sound_volume(int); + int get_sound_volume() const; +- boost::signal on_sound_volume_change; ++ boost::signals2::signal on_sound_volume_change; + + void set_music_volume(int); + int get_music_volume() const; +- boost::signal on_music_volume_change; ++ boost::signals2::signal on_music_volume_change; + + void set_fullscreen_resolution(const Size& size); + Size get_fullscreen_resolution() const; +- boost::signal on_fullscreen_resolution_change; ++ boost::signals2::signal on_fullscreen_resolution_change; + + void set_fullscreen(bool); + bool get_fullscreen() const; +- boost::signal on_fullscreen_change; ++ boost::signals2::signal on_fullscreen_change; + + void set_renderer(FramebufferType type); + FramebufferType get_renderer() const; +- boost::signal on_renderer_change; ++ boost::signals2::signal on_renderer_change; + + void set_resizable(bool); + bool get_resizable() const; +- boost::signal on_resizable_change; ++ boost::signals2::signal on_resizable_change; + + void set_mouse_grab(bool); + bool get_mouse_grab() const; +- boost::signal on_mouse_grab_change; ++ boost::signals2::signal on_mouse_grab_change; + + void set_print_fps(bool); + bool get_print_fps() const; +- boost::signal on_print_fps_change; ++ boost::signals2::signal on_print_fps_change; + + void set_language(const tinygettext::Language&); + tinygettext::Language get_language() const; +- boost::signal on_language_change; ++ boost::signals2::signal on_language_change; + + void set_software_cursor(bool); + bool get_software_cursor() const; +- boost::signal on_software_cursor_change; ++ boost::signals2::signal on_software_cursor_change; + + void set_auto_scrolling(bool); + bool get_auto_scrolling() const; +- boost::signal on_auto_scrolling_change; ++ boost::signals2::signal on_auto_scrolling_change; + + void set_drag_drop_scrolling(bool); + bool get_drag_drop_scrolling() const; +- boost::signal on_drag_drop_scrolling_change; ++ boost::signals2::signal on_drag_drop_scrolling_change; + + private: + ConfigManager (const ConfigManager&); +diff --git a/src/pingus/screens/option_menu.hpp b/src/pingus/screens/option_menu.hpp +index 60b1578d2..154ef0f69 100644 +--- src/pingus/screens/option_menu.hpp ++++ src/pingus/screens/option_menu.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_PINGUS_SCREENS_OPTION_MENU_HPP + #define HEADER_PINGUS_PINGUS_SCREENS_OPTION_MENU_HPP + +-#include ++#include + #include + #include + +@@ -66,7 +66,7 @@ private: + //Label* defaults_label; + //CheckBox* defaults_box; + +- typedef std::vector Connections; ++ typedef std::vector Connections; + Connections connections; + + tinygettext::Language m_language; +-- +2.18.1 + diff --git a/pingus-0.7.6-gcc-13.2.0-missing-header.patch b/pingus-0.7.6-gcc-13.2.0-missing-header.patch new file mode 100644 index 0000000..cc1dcdb --- /dev/null +++ b/pingus-0.7.6-gcc-13.2.0-missing-header.patch @@ -0,0 +1,22 @@ +From df6e2f445d3e2925a94d22faeb17be9444513e92 Mon Sep 17 00:00:00 2001 +From: Jonathan Wakely +Date: Mon, 30 Jan 2017 15:41:53 +0000 +Subject: [PATCH] Add missing header for std::function and std::bind + +--- + src/pingus/screens/demo_session.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/pingus/screens/demo_session.cpp b/src/pingus/screens/demo_session.cpp +index e3ec49a2c..f887e50f0 100644 +--- a/src/pingus/screens/demo_session.cpp ++++ b/src/pingus/screens/demo_session.cpp +@@ -18,6 +18,7 @@ + + #include + #include ++#include + + #include "engine/gui/gui_manager.hpp" + #include "engine/gui/surface_button.hpp" + diff --git a/pingus-0.7.6-gcc-13.2.0.patch b/pingus-0.7.6-gcc-13.2.0.patch new file mode 100644 index 0000000..40f4377 --- /dev/null +++ b/pingus-0.7.6-gcc-13.2.0.patch @@ -0,0 +1,12 @@ +diff --git a/src/util/pathname.hpp b/src/util/pathname.hpp +index c30df0a83..c7d1c7ca0 100644 +--- a/src/util/pathname.hpp ++++ b/src/util/pathname.hpp +@@ -19,6 +19,7 @@ + + #include + #include ++#include + + /** Simple class to allow a distinction of paths that refer to the + * filesystem and paths that refer to the datadir, it also hides diff --git a/pingus-0.7.6-scons-4.7.0.patch b/pingus-0.7.6-scons-4.7.0.patch new file mode 100644 index 0000000..96c36e4 --- /dev/null +++ b/pingus-0.7.6-scons-4.7.0.patch @@ -0,0 +1,19 @@ +--- pingus-0.7.6/SConscript.orig 2019-07-27 08:28:23.143619494 +0000 ++++ pingus-0.7.6/SConscript 2019-07-27 08:29:35.844531921 +0000 +@@ -126,12 +126,12 @@ + def configure_end(self): + self.env = self.conf.Finish() + +- print "Reports:" +- print self.reports ++ print ("Reports:") ++ print (self.reports) + + if not self.fatal_error == "": +- print "Fatal Errors:" +- print self.fatal_error ++ print ("Fatal Errors:") ++ print (self.fatal_error) + Exit(1) + + def configure_gxx(self): diff --git a/pingus.spec b/pingus.spec index a646d51..90f6c5d 100644 --- a/pingus.spec +++ b/pingus.spec @@ -1,44 +1,51 @@ Name: pingus Version: 0.7.6 -Release: 2mamba +Release: 3mamba Summary: A free Lemmings clone for GNU/Linux Group: Graphical Desktop/Applications/Games Vendor: openmamba Distribution: openmamba -Packager: Tiziana Ferro -URL: http://pingus.seul.org/ +Packager: Silvan Calarco +URL: https://pingus.seul.org/ Source: http://pingus.googlecode.com/files/pingus-%{version}.tar.bz2 -Patch0: %{name}-0.7.2-gcc44.patch Patch1: pingus-0.7.6-gcc-4.7.patch +Patch2: pingus-0.7.6-scons-4.7.0.patch +Patch3: pingus-0.7.6-boost-1.69.patch +Patch4: pingus-0.7.6-gcc-13.2.0.patch +Patch5: pingus-0.7.6-gcc-13.2.0-missing-header.patch License: GPL ## AUTOBUILDREQ-BEGIN -#BuildRequires: file /usr/lib/libboost_signals-mt.so is not owned by any package BuildRequires: glibc-devel -BuildRequires: libgcc -BuildRequires: libpng-devel -BuildRequires: libSDL-devel BuildRequires: libSDL_image-devel BuildRequires: libSDL_mixer-devel +BuildRequires: libgcc +BuildRequires: libglvnd-devel +BuildRequires: libpng-devel +BuildRequires: libsdl12-compat-devel BuildRequires: libstdc++6-devel ## AUTOBUILDREQ-END BuildRequires: libboost-devel -BuildRequires: scons BuildRequires: libXi-devel -BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot +BuildRequires: scons %description Pingus is a free Lemmings clone for GNU/Linux. The player takes command in the game of a bunch of small animals and has to guide them around in levels. Since the animals walk on their own, the player can only influence them by giving them commands, like build a bridge, dig a hole or redirect all animals in the other direction. The goal of each level is to reach the exit, for fix multiple combination of commands are necessary. +%debug_package + %prep %setup -q -#%patch0 -p1 -%patch1 -p1 +%patch 1 -p1 +%patch 2 -p1 -b .scons-4.7.0 +%patch 3 -p0 -b .boost-1.69 +%patch 4 -p1 -b .gcc-13.2.0 +%patch 5 -p1 -b .gcc-13.2.0-missing-header + # note: it loads *.po files directly, no need to use msgfmt mv -f data/po/sr{,@latin}.po rm -f data/po/pingus.pot %build - scons %install @@ -57,10 +64,10 @@ GenericName=A Lemmings clone Comment[it]=Un clone di Lemmings GenericName[it]=Un clone di Lemmings Exec=pingus -Icon=tux +Icon=/usr/share/pingus/images/core/editor/actions.png Terminal=0 Type=Application -Categories=KDE;Game;ArcadeGame; +Categories=Application;Game;ArcadeGame; EOF mv %{buildroot}%{_mandir}/man1 %{buildroot}%{_mandir}/man6 @@ -84,6 +91,9 @@ mv %{buildroot}%{_mandir}/man1 %{buildroot}%{_mandir}/man6 # ChangeLog NEWS README TODO %changelog +* Tue May 07 2024 Silvan Calarco 0.7.6-3mamba +- rebuilt with current libboost, patches added + * Sat Dec 15 2012 Silvan Calarco 0.7.6-2mamba - libboost 1.52 mass rebuild