From 71eba5c5cb253f15a64e271028fa5ec91adc1e6a Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Fri, 24 Mar 2023 00:04:33 +0100 Subject: [PATCH 01/20] Fix missing includes --- src/editor/editor_screen.cpp | 1 + src/editor/file_dialog.cpp | 2 ++ src/editor/level_properties.cpp | 2 ++ src/editor/message_box.cpp | 2 ++ src/editor/object_properties.cpp | 2 ++ src/editor/object_selector.cpp | 2 ++ src/editor/viewport.cpp | 2 ++ src/pingus/screens/level_menu.cpp | 4 ++-- src/pingus/screens/option_menu.cpp | 1 + 9 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/editor/editor_screen.cpp b/src/editor/editor_screen.cpp index 206e985a3..b2526c4e3 100644 --- a/src/editor/editor_screen.cpp +++ b/src/editor/editor_screen.cpp @@ -17,6 +17,7 @@ #include "editor/editor_screen.hpp" +#include #include #include diff --git a/src/editor/file_dialog.cpp b/src/editor/file_dialog.cpp index ed3c56d0f..39838ca3b 100644 --- a/src/editor/file_dialog.cpp +++ b/src/editor/file_dialog.cpp @@ -16,6 +16,8 @@ #include "editor/file_dialog.hpp" +#include + #include #include "editor/button.hpp" diff --git a/src/editor/level_properties.cpp b/src/editor/level_properties.cpp index 11999a0d6..14f9c14e4 100644 --- a/src/editor/level_properties.cpp +++ b/src/editor/level_properties.cpp @@ -16,6 +16,8 @@ #include "editor/level_properties.hpp" +#include + #include #include #include diff --git a/src/editor/message_box.cpp b/src/editor/message_box.cpp index 5a8c6351f..a4fcb31e0 100644 --- a/src/editor/message_box.cpp +++ b/src/editor/message_box.cpp @@ -16,6 +16,8 @@ #include "editor/message_box.hpp" +#include + #include "editor/gui_style.hpp" #include "pingus/gettext.h" #include "pingus/fonts.hpp" diff --git a/src/editor/object_properties.cpp b/src/editor/object_properties.cpp index 49737d528..23fbe1999 100644 --- a/src/editor/object_properties.cpp +++ b/src/editor/object_properties.cpp @@ -16,6 +16,8 @@ #include "editor/object_properties.hpp" +#include + #include #include #include diff --git a/src/editor/object_selector.cpp b/src/editor/object_selector.cpp index 306ddf5c6..812e9ea92 100644 --- a/src/editor/object_selector.cpp +++ b/src/editor/object_selector.cpp @@ -16,6 +16,8 @@ #include "editor/object_selector.hpp" +#include + #include #include "editor/generic_level_obj.hpp" diff --git a/src/editor/viewport.cpp b/src/editor/viewport.cpp index 90bcf9b31..d31ac3a31 100644 --- a/src/editor/viewport.cpp +++ b/src/editor/viewport.cpp @@ -17,6 +17,8 @@ #include "editor/viewport.hpp" +#include + #include #include "editor/editor_level.hpp" diff --git a/src/pingus/screens/level_menu.cpp b/src/pingus/screens/level_menu.cpp index defd91567..a88861325 100644 --- a/src/pingus/screens/level_menu.cpp +++ b/src/pingus/screens/level_menu.cpp @@ -16,10 +16,10 @@ #include "pingus/screens/level_menu.hpp" -#include - +#include #include +#include #include #include "engine/display/display.hpp" diff --git a/src/pingus/screens/option_menu.cpp b/src/pingus/screens/option_menu.cpp index 8db507e4b..072b14729 100644 --- a/src/pingus/screens/option_menu.cpp +++ b/src/pingus/screens/option_menu.cpp @@ -16,6 +16,7 @@ #include "pingus/screens/option_menu.hpp" +#include #include #include From c675418ff51f87b014a0baf970dfb12e9457eb80 Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Fri, 24 Mar 2023 00:04:42 +0100 Subject: [PATCH 02/20] Update flake.nix to nixos-22.11 --- flake.lock | 68 +++++++++++++++++++++++++----------------------------- flake.nix | 8 +++---- 2 files changed, 34 insertions(+), 42 deletions(-) diff --git a/flake.lock b/flake.lock index 037b958cb..301d131e9 100644 --- a/flake.lock +++ b/flake.lock @@ -35,11 +35,11 @@ ] }, "locked": { - "lastModified": 1660924118, - "narHash": "sha256-ApDMg66R0fd0GL+CRfxCirIe1igilBRODcC3I6sdqfQ=", + "lastModified": 1661193406, + "narHash": "sha256-x1iqSyMexVTzEXS4XWkoBRq6OUR4vqnHhmtLQNDOx6U=", "owner": "grumnix", "repo": "SDL2_image-win32", - "rev": "3bf368bd9c3932cdaebc7886af641bc8566ede03", + "rev": "0e9be7312eed117812fe07d3045a4f174cde79c0", "type": "github" }, "original": { @@ -101,11 +101,11 @@ }, "flake-utils": { "locked": { - "lastModified": 1659877975, - "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "lastModified": 1678901627, + "narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=", "owner": "numtide", "repo": "flake-utils", - "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6", "type": "github" }, "original": { @@ -116,9 +116,6 @@ }, "geomcpp": { "inputs": { - "flake-utils": [ - "flake-utils" - ], "nixpkgs": [ "nixpkgs" ], @@ -127,11 +124,11 @@ ] }, "locked": { - "lastModified": 1660561995, - "narHash": "sha256-z2d2nz8BKyPjudk619U0D8aiPrXTtasMoBOewYPRkCo=", + "lastModified": 1661006109, + "narHash": "sha256-fa7JEZr1Z+tChetnien/TNpuKKL/UEyRaJEPFAG3tOc=", "owner": "grumbel", "repo": "geomcpp", - "rev": "e166eb4514efb46b7f0b6eb6524c1b6cb1457a92", + "rev": "c2ffae5984f9eecf11f7f1e8a5611f988ade1552", "type": "github" }, "original": { @@ -260,9 +257,6 @@ }, "logmich": { "inputs": { - "flake-utils": [ - "flake-utils" - ], "nixpkgs": [ "nixpkgs" ], @@ -271,11 +265,11 @@ ] }, "locked": { - "lastModified": 1660503729, - "narHash": "sha256-NKVJPa8JMRWy5YPCdA/OrAdUDQHGPFPHpcz8arQ0oYg=", + "lastModified": 1678581275, + "narHash": "sha256-McJ9A0vNJu8kC6zNuYs1V/NcnG73xoIQJcqvu6CpksI=", "owner": "logmich", "repo": "logmich", - "rev": "22186da9b4a2fe7318cabcdf327f1b7693a50378", + "rev": "1455401334513df2800453b24b7138702e096767", "type": "github" }, "original": { @@ -324,16 +318,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1660749083, - "narHash": "sha256-GHLFMGH+r3OmI4tV0x/RtxN7DkHcH2ZOhK8uzQeSLiY=", + "lastModified": 1679472241, + "narHash": "sha256-VK2YDic2NjPvfsuneJCLIrWS38qUfoW8rLLimx0rWXA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a55a7db823959cf509d55325201f1864af4574b9", + "rev": "9ef6e7727f4c31507627815d4f8679c5841efb00", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-22.05", + "ref": "nixos-22.11", "repo": "nixpkgs", "type": "github" } @@ -484,11 +478,11 @@ ] }, "locked": { - "lastModified": 1660504736, - "narHash": "sha256-t0BXpjsPjCXlh/XNXUVcMzvYgnROwYjwVsBTwT+Yhlc=", + "lastModified": 1678659196, + "narHash": "sha256-DoHZ+mxuIeb/OPxfX4xdLM+J264wywSYmUo8albqMpE=", "owner": "grumbel", "repo": "priocpp", - "rev": "5dfa953ff0b099903c905a76ae9055aa9831ca97", + "rev": "e99db7a1e41557abedf5e6e280c06b85b94dd4ec", "type": "github" }, "original": { @@ -529,11 +523,11 @@ ] }, "locked": { - "lastModified": 1660503231, - "narHash": "sha256-Bm+FIzO3iyK0NtZOeRVyhuFdPHon3VQUyrOjy3EHpCI=", + "lastModified": 1678658797, + "narHash": "sha256-dg8re1QpkhHJLf/W54qZg7Y9ElNi7XJLneKokHKghxQ=", "owner": "lispparser", "repo": "sexp-cpp", - "rev": "ade5eb3193500031dab0c2b180e4fd4fcb7bda26", + "rev": "812da1e3533e5afe609370c02cd4918fb77efc89", "type": "github" }, "original": { @@ -552,11 +546,11 @@ ] }, "locked": { - "lastModified": 1660505409, - "narHash": "sha256-4juFaDnOhUKhIo8bNLeKEFeXQ+bw+iDQ0G22Qr9w7K0=", + "lastModified": 1678657187, + "narHash": "sha256-klUlu2sPhF3kXzd/C8+EQai5mEeNCPafWRPEsgIKGWo=", "owner": "grumbel", "repo": "strutcpp", - "rev": "4b00d49250db4e42e46068d5b4e42a2f8c5ccf51", + "rev": "ceac97daf54aea25779efb1f8d1d2b8dbf453528", "type": "github" }, "original": { @@ -660,11 +654,11 @@ ] }, "locked": { - "lastModified": 1660924180, - "narHash": "sha256-9oElStrKrBZ8xalxoG/BsoGBIOgdKMOkgm8j2M3drQE=", + "lastModified": 1678658502, + "narHash": "sha256-XwAv+rVeu337wx7802LZRFPZDkvXGTEXDdw8SsL+0z8=", "owner": "WindstilleTeam", "repo": "wstsound", - "rev": "f1d641a80528240d5d7e60a2af1899d70fe2490e", + "rev": "86f2226349d0ddda445156cdb0e7a82b6c6bfb93", "type": "github" }, "original": { @@ -683,11 +677,11 @@ ] }, "locked": { - "lastModified": 1658512131, - "narHash": "sha256-F4D3HyaJ5djL8YzLl1tzIuum6HYirxERIsNYchBcxdU=", + "lastModified": 1678658196, + "narHash": "sha256-yQMiT2TGJyqinOgxPmHR1kI2VGuhpPisr6sbstG6jfU=", "owner": "grumbel", "repo": "xdgcpp", - "rev": "569bf5b6df6092e92ce60bebb125b75b301185e4", + "rev": "7218bdab7d353f4850d74f34b96b48246adad3e9", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 7517ddf13..522547bfd 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,7 @@ description = "A free Lemmings clone with penguins"; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.05"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11"; flake-utils.url = "github:numtide/flake-utils"; tinycmmc.url = "github:grumbel/tinycmmc"; @@ -21,12 +21,10 @@ geomcpp.url = "github:grumbel/geomcpp"; geomcpp.inputs.nixpkgs.follows = "nixpkgs"; - geomcpp.inputs.flake-utils.follows = "flake-utils"; geomcpp.inputs.tinycmmc.follows = "tinycmmc"; logmich.url = "github:logmich/logmich"; logmich.inputs.nixpkgs.follows = "nixpkgs"; - logmich.inputs.flake-utils.follows = "flake-utils"; logmich.inputs.tinycmmc.follows = "tinycmmc"; priocpp.url = "github:grumbel/priocpp"; @@ -43,7 +41,6 @@ strutcpp.url = "github:grumbel/strutcpp"; strutcpp.inputs.nixpkgs.follows = "nixpkgs"; - strutcpp.inputs.flake-utils.follows = "flake-utils"; strutcpp.inputs.tinycmmc.follows = "tinycmmc"; tinygettext.url = "github:tinygettext/tinygettext"; @@ -54,7 +51,6 @@ xdgcpp.url = "github:grumbel/xdgcpp"; xdgcpp.inputs.nixpkgs.follows = "nixpkgs"; xdgcpp.inputs.flake-utils.follows = "flake-utils"; - xdgcpp.inputs.tinycmmc.follows = "tinycmmc"; wstsound.url = "github:WindstilleTeam/wstsound"; wstsound.inputs.nixpkgs.follows = "nixpkgs"; @@ -81,6 +77,8 @@ pingus = pkgs.callPackage ./pingus.nix { inherit self; + stdenv = pkgs.gcc12Stdenv; + argpp = argpp.packages.${pkgs.system}.default; geomcpp = geomcpp.packages.${pkgs.system}.default; logmich = logmich.packages.${pkgs.system}.default; From d49fda46529f75ca1159e41e86e1dad1b8e8ab47 Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Fri, 24 Mar 2023 00:13:20 +0100 Subject: [PATCH 03/20] Fix struct/class mixup in forward declaration --- src/fwd.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fwd.hpp b/src/fwd.hpp index 8c627d7d3..49910790b 100644 --- a/src/fwd.hpp +++ b/src/fwd.hpp @@ -25,7 +25,6 @@ class ArmageddonButton; class BButton; class ButtonPanel; class CollisionMap; -class CommandLineOptions; class DemoPlayer; class DrawingContext; class FPSCounter; @@ -52,6 +51,7 @@ class SmallMap; class StoryScreenComponent; class WorldObj; class WorldObjAbstractFactory; +struct CommandLineOptions; } // namespace pingus namespace pingus::gui { From 1379bb0454b7827fc95f63d3e14803868bf86522 Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Wed, 24 May 2023 23:04:18 +0200 Subject: [PATCH 04/20] Update flake.nix to nixos-23.05 --- flake.lock | 56 ++++++++++++++++++++++++++++++++++++------------------ flake.nix | 2 +- 2 files changed, 38 insertions(+), 20 deletions(-) diff --git a/flake.lock b/flake.lock index 301d131e9..b3da1d8d6 100644 --- a/flake.lock +++ b/flake.lock @@ -100,12 +100,15 @@ } }, "flake-utils": { + "inputs": { + "systems": "systems" + }, "locked": { - "lastModified": 1678901627, - "narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=", + "lastModified": 1681202837, + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", "owner": "numtide", "repo": "flake-utils", - "rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6", + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", "type": "github" }, "original": { @@ -265,11 +268,11 @@ ] }, "locked": { - "lastModified": 1678581275, - "narHash": "sha256-McJ9A0vNJu8kC6zNuYs1V/NcnG73xoIQJcqvu6CpksI=", + "lastModified": 1684870196, + "narHash": "sha256-5Y5FfBXM53OBSJzO6q+7M3Fj1KsusJcFg3cAfnFAWcA=", "owner": "logmich", "repo": "logmich", - "rev": "1455401334513df2800453b24b7138702e096767", + "rev": "5924b2beabd2169a077ae57401bdd3cd8ebfba7d", "type": "github" }, "original": { @@ -318,16 +321,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1679472241, - "narHash": "sha256-VK2YDic2NjPvfsuneJCLIrWS38qUfoW8rLLimx0rWXA=", + "lastModified": 1684922889, + "narHash": "sha256-l0WZAmln8959O7RdYUJ3gnAIM9OPKFLKHKGX4q+Blrk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9ef6e7727f4c31507627815d4f8679c5841efb00", + "rev": "04aaf8511678a0d0f347fdf1e8072fe01e4a509e", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-22.11", + "ref": "nixos-23.05", "repo": "nixpkgs", "type": "github" } @@ -559,6 +562,21 @@ "type": "github" } }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "tinycmmc": { "inputs": { "flake-utils": [ @@ -569,11 +587,11 @@ ] }, "locked": { - "lastModified": 1660915337, - "narHash": "sha256-RUvBcVlsF0jleNeDGP2TtTYVozsx+7lJeOlQJ9vuYrk=", + "lastModified": 1684952066, + "narHash": "sha256-yS8/+TOL2OA7f/RQs1Zr20mmlPFIVvFOgWShLAQvH8w=", "owner": "grumbel", "repo": "tinycmmc", - "rev": "25af158259bc772a5393c6200c4ebfd0ec4e28d0", + "rev": "01fe277570a290837726de6eb3c16d617bfda28c", "type": "github" }, "original": { @@ -595,11 +613,11 @@ ] }, "locked": { - "lastModified": 1660505802, - "narHash": "sha256-rCneT/lpadOKDytVgY+6R1XwD8OrMTg7an4hBLhRl24=", + "lastModified": 1684962355, + "narHash": "sha256-O5qj9N5XmzjaBs83gfGmFQe+lvWms3HBrlVz7S8U1rw=", "owner": "tinygettext", "repo": "tinygettext", - "rev": "2fcecb76900fac852fd4006e4d49b0744b1031e1", + "rev": "eb077671ef7849e3d7884cbb1544ce195ab269d9", "type": "github" }, "original": { @@ -654,11 +672,11 @@ ] }, "locked": { - "lastModified": 1678658502, - "narHash": "sha256-XwAv+rVeu337wx7802LZRFPZDkvXGTEXDdw8SsL+0z8=", + "lastModified": 1684951755, + "narHash": "sha256-j7+CF3IkffPTz07Vkyw4lZ2622BDq3W1ZLxjWNr2fQU=", "owner": "WindstilleTeam", "repo": "wstsound", - "rev": "86f2226349d0ddda445156cdb0e7a82b6c6bfb93", + "rev": "02175efb729fd95a8e8fa4432e186c37171b5c75", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 522547bfd..bb99909ce 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,7 @@ description = "A free Lemmings clone with penguins"; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.05"; flake-utils.url = "github:numtide/flake-utils"; tinycmmc.url = "github:grumbel/tinycmmc"; From 28514dff548dbf328701a82a472063a5091dfea8 Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Wed, 14 Jun 2023 17:28:59 +0200 Subject: [PATCH 05/20] Update priocpp to remove jsoncpp dependency --- CMakeLists.txt | 2 -- flake.lock | 50 +++++++++++++++++++++++++------------------------- flake.nix | 11 ++--------- pingus.nix | 2 -- 4 files changed, 27 insertions(+), 38 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b580b9eab..18a2e853b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,7 +28,6 @@ find_package(OpenGL REQUIRED) pkg_search_module(SDL2 REQUIRED sdl2 IMPORTED_TARGET) pkg_search_module(SDL2IMAGE REQUIRED SDL2_image>=2.0.0 IMPORTED_TARGET) pkg_search_module(PNG REQUIRED libpng IMPORTED_TARGET) -pkg_search_module(JSONCPP REQUIRED jsoncpp IMPORTED_TARGET) pkg_search_module(SIGCXX REQUIRED sigc++-2.0 IMPORTED_TARGET) find_package(fmt REQUIRED) find_package(glm REQUIRED) @@ -104,7 +103,6 @@ target_link_libraries(libpingus PUBLIC PkgConfig::SDL2 PkgConfig::SDL2IMAGE PkgConfig::PNG - PkgConfig::JSONCPP PkgConfig::SIGCXX OpenGL::GL) diff --git a/flake.lock b/flake.lock index b3da1d8d6..ac8c28f1f 100644 --- a/flake.lock +++ b/flake.lock @@ -104,11 +104,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1681202837, - "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", "owner": "numtide", "repo": "flake-utils", - "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", "type": "github" }, "original": { @@ -127,11 +127,11 @@ ] }, "locked": { - "lastModified": 1661006109, - "narHash": "sha256-fa7JEZr1Z+tChetnien/TNpuKKL/UEyRaJEPFAG3tOc=", + "lastModified": 1685394246, + "narHash": "sha256-PRm9LTpN2eKVcl1jMSBOPL/KAHtNOWEbt32JSxNHJDQ=", "owner": "grumbel", "repo": "geomcpp", - "rev": "c2ffae5984f9eecf11f7f1e8a5611f988ade1552", + "rev": "6fd6402a02275e8f2ac250a84900843e56aaf04e", "type": "github" }, "original": { @@ -321,11 +321,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1684922889, - "narHash": "sha256-l0WZAmln8959O7RdYUJ3gnAIM9OPKFLKHKGX4q+Blrk=", + "lastModified": 1686513595, + "narHash": "sha256-H3JNqj7TEiMx5rd8lRiONvgFZvmf3kmwHI2umDdqgFY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "04aaf8511678a0d0f347fdf1e8072fe01e4a509e", + "rev": "bb8b5735d6f7e06b9ddd27de115b0600c1ffbdb4", "type": "github" }, "original": { @@ -473,19 +473,17 @@ "nixpkgs": [ "nixpkgs" ], - "sexpcpp": [ - "sexpcpp" - ], + "sexpcpp": "sexpcpp", "tinycmmc": [ "tinycmmc" ] }, "locked": { - "lastModified": 1678659196, - "narHash": "sha256-DoHZ+mxuIeb/OPxfX4xdLM+J264wywSYmUo8albqMpE=", + "lastModified": 1686756002, + "narHash": "sha256-WNolGIJRNtvOWIbQ5W7ivyNsy9JSOXOl5GyNNIQe7D4=", "owner": "grumbel", "repo": "priocpp", - "rev": "e99db7a1e41557abedf5e6e280c06b85b94dd4ec", + "rev": "701a4c7ae9a100c4752ddf6ef8cbebf2ae39156b", "type": "github" }, "original": { @@ -504,7 +502,6 @@ "logmich": "logmich", "nixpkgs": "nixpkgs", "priocpp": "priocpp", - "sexpcpp": "sexpcpp", "strutcpp": "strutcpp", "tinycmmc": "tinycmmc", "tinygettext": "tinygettext", @@ -516,21 +513,24 @@ "sexpcpp": { "inputs": { "flake-utils": [ + "priocpp", "flake-utils" ], "nixpkgs": [ + "priocpp", "nixpkgs" ], "tinycmmc": [ + "priocpp", "tinycmmc" ] }, "locked": { - "lastModified": 1678658797, - "narHash": "sha256-dg8re1QpkhHJLf/W54qZg7Y9ElNi7XJLneKokHKghxQ=", + "lastModified": 1685364855, + "narHash": "sha256-VVqrWhgTGmknJPc6GCr9spbot1H2ZNxAlzJaegN/SHc=", "owner": "lispparser", "repo": "sexp-cpp", - "rev": "812da1e3533e5afe609370c02cd4918fb77efc89", + "rev": "c10e5d948bd1cd087deecfe400c3b64fddb493ee", "type": "github" }, "original": { @@ -549,11 +549,11 @@ ] }, "locked": { - "lastModified": 1678657187, - "narHash": "sha256-klUlu2sPhF3kXzd/C8+EQai5mEeNCPafWRPEsgIKGWo=", + "lastModified": 1685394354, + "narHash": "sha256-MWrcllCoMyvb/kXoYInDYW6GGqTcgUHjQ4IU0yiHdoc=", "owner": "grumbel", "repo": "strutcpp", - "rev": "ceac97daf54aea25779efb1f8d1d2b8dbf453528", + "rev": "7bf070c08e4234cd51426b6f319fa474692f9ef4", "type": "github" }, "original": { @@ -695,11 +695,11 @@ ] }, "locked": { - "lastModified": 1678658196, - "narHash": "sha256-yQMiT2TGJyqinOgxPmHR1kI2VGuhpPisr6sbstG6jfU=", + "lastModified": 1685020673, + "narHash": "sha256-bH8Xu2KZxASEJKLysuoYu77xVWXVRVWFAIA0KNEwjjE=", "owner": "grumbel", "repo": "xdgcpp", - "rev": "7218bdab7d353f4850d74f34b96b48246adad3e9", + "rev": "7776bc77ad59a8e9b3ea7a30e87bcc7fa7efc31e", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index bb99909ce..e7b84ea51 100644 --- a/flake.nix +++ b/flake.nix @@ -32,12 +32,6 @@ priocpp.inputs.flake-utils.follows = "flake-utils"; priocpp.inputs.tinycmmc.follows = "tinycmmc"; priocpp.inputs.logmich.follows = "logmich"; - priocpp.inputs.sexpcpp.follows = "sexpcpp"; - - sexpcpp.url = "github:lispparser/sexp-cpp"; - sexpcpp.inputs.nixpkgs.follows = "nixpkgs"; - sexpcpp.inputs.flake-utils.follows = "flake-utils"; - sexpcpp.inputs.tinycmmc.follows = "tinycmmc"; strutcpp.url = "github:grumbel/strutcpp"; strutcpp.inputs.nixpkgs.follows = "nixpkgs"; @@ -67,7 +61,7 @@ }; outputs = { self, nixpkgs, flake-utils, - tinycmmc, uitest, argpp, geomcpp, logmich, priocpp, sexpcpp, strutcpp, + tinycmmc, uitest, argpp, geomcpp, logmich, priocpp, strutcpp, tinygettext, xdgcpp, wstsound, SDL2-win32, SDL2_image-win32 }: tinycmmc.lib.eachSystemWithPkgs (pkgs: @@ -82,8 +76,7 @@ argpp = argpp.packages.${pkgs.system}.default; geomcpp = geomcpp.packages.${pkgs.system}.default; logmich = logmich.packages.${pkgs.system}.default; - priocpp = priocpp.packages.${pkgs.system}.default; - sexpcpp = sexpcpp.packages.${pkgs.system}.default; + priocpp = priocpp.packages.${pkgs.system}.priocpp-sexp; strutcpp = strutcpp.packages.${pkgs.system}.default; tinycmmc = tinycmmc.packages.${pkgs.system}.default; tinygettext = tinygettext.packages.${pkgs.system}.default; diff --git a/pingus.nix b/pingus.nix index 5a76d48b0..e6075a005 100644 --- a/pingus.nix +++ b/pingus.nix @@ -18,7 +18,6 @@ , geomcpp , logmich , priocpp -, sexpcpp , strutcpp , tinycmmc , tinygettext @@ -87,7 +86,6 @@ stdenv.mkDerivation { geomcpp logmich priocpp - sexpcpp strutcpp tinycmmc tinygettext From 1d7f1422665fc9b4020d604b8028514ed072686d Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Wed, 14 Jun 2023 17:45:18 +0200 Subject: [PATCH 06/20] Remove .gitlab-ci.yml --- .gitlab-ci.yml | 131 ------------------------------------------------- 1 file changed, 131 deletions(-) delete mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 01c5b32fa..000000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,131 +0,0 @@ ---- -# Pingus - A free Lemmings clone -# Copyright (C) 2018 Ingo Ruhnke -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -image: ubuntu:latest - -variables: - GIT_SUBMODULE_STRATEGY: recursive - -before_script: - - export DEBIAN_FRONTEND=noninteractive - - apt-get -qq update - - apt-get -qq -y install lsb-release - - lsb_release -a - - apt-get -qq -y install - clang-10 - clang-tidy-10 - g++-10 - cmake - build-essential - desktop-file-utils - appstream-util - libfmt-dev - libsigc++-2.0-dev - libc++-dev - libsdl2-dev - libsdl2-image-dev - libjsoncpp-dev - libpng-dev - libgtest-dev - libglm-dev - libopenal-dev - libmodplug-dev - libmpg123-dev - libvorbis-dev - libogg-dev - libopusfile-dev - libopus-dev - software-properties-common - flatpak - flatpak-builder - -.build_pingus_template: &build_pingus - stage: build - script: - - mkdir build - - cd build - - cmake .. - -DCMAKE_BUILD_TYPE=$BUILD_TYPE - -DWARNINGS=ON - -DWERROR=ON - -DBUILD_TESTS=ON - -DBUILD_EXTRA=ON - -DCLANG_TIDY=$CLANG_TIDY - -DCLANG_TIDY_EXE=/usr/bin/clang-tidy-10 - - make VERBOSE=1 - - make test VERBOSE=1 ARGS="-V" - -build:gcc:release: - <<: *build_pingus - variables: - CXX: "g++-10" - BUILD_TYPE: "Release" - CLANG_TIDY: "OFF" - -build:clang:release: - <<: *build_pingus - variables: - CXX: "clang++-10" - BUILD_TYPE: "Release" - CLANG_TIDY: "OFF" - -build:gcc:debug: - <<: *build_pingus - variables: - CXX: "g++-10" - BUILD_TYPE: "Debug" - CLANG_TIDY: "OFF" - -build:clang:debug: - <<: *build_pingus - variables: - CXX: "clang++-10" - BUILD_TYPE: "Debug" - CLANG_TIDY: "OFF" - -build:clang-tidy: - <<: *build_pingus - variables: - CXX: "clang++-10" - BUILD_TYPE: "Debug" - CLANG_TIDY: "ON" - -build:flatpak: - stage: build - script: - - flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo - - flatpak install -y flathub org.freedesktop.Platform//20.08 org.freedesktop.Sdk//20.08 - - flatpak-builder --repo=build-flatpak-repo/ build-flatpak/ org.seul.pingus.Pingus.json - - flatpak build-bundle build-flatpak-repo/ pingus.flatpak org.seul.pingus.Pingus - artifacts: - paths: - - pingus.flatpak - - build-flatpak-repo - -# pages: -# stage: deploy -# dependencies: -# - build:flatpak -# script: -# - mkdir public.tmp/ -# - mv -v build-flatpak-repo public.tmp/flatpakrepo -# - mv -v public.tmp public -# artifacts: -# paths: -# - public - -# EOF # From 68ea534f3506a0e4f26e468d7f42b822ea3dc510 Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Sun, 13 Aug 2023 22:08:37 +0200 Subject: [PATCH 07/20] Rename COPYING to LICENSE.txt and update it (http -> https) --- COPYING => LICENSE.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename COPYING => LICENSE.txt (99%) diff --git a/COPYING b/LICENSE.txt similarity index 99% rename from COPYING rename to LICENSE.txt index 94a9ed024..f288702d2 100644 --- a/COPYING +++ b/LICENSE.txt @@ -1,7 +1,7 @@ GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found. GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. @@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see -. +. The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read -. +. From fb56c3654a7876f1e151b1491a6664f3db347e81 Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Sun, 13 Aug 2023 22:07:20 +0200 Subject: [PATCH 08/20] Remove outdated MacOSX build files --- INSTALL.macosx.md | 69 ----------------------- Info.plist | 17 ------ Makefile.macosx | 79 -------------------------- README.md | 2 +- SLA-dmg.sh | 73 ------------------------ bundle_mac.sh | 38 ------------- licenseDMG.py | 141 ---------------------------------------------- 7 files changed, 1 insertion(+), 418 deletions(-) delete mode 100644 INSTALL.macosx.md delete mode 100644 Info.plist delete mode 100644 Makefile.macosx delete mode 100755 SLA-dmg.sh delete mode 100755 bundle_mac.sh delete mode 100755 licenseDMG.py diff --git a/INSTALL.macosx.md b/INSTALL.macosx.md deleted file mode 100644 index a12b43b8d..000000000 --- a/INSTALL.macosx.md +++ /dev/null @@ -1,69 +0,0 @@ -Pingus Installation Guide for Mac OS X -====================================== - -Disclaimer ----------- - -The following guide assumes that you use macports to install the requirements. -You can also do this the hard way by finding/compiling the stuff yourself, -but if you're capable of doing so you won't need this guide anyway. - -See http://code.google.com/p/pingus/wiki/MacOS_X_Compiling if you are adventurous or do not want to us macports. - -This guide was written on OS X 10.5 "Leopard", where XCode brings gcc-4.0. -Since that's too old gcc-4.4 is installed using macports and also referenced -in the Makefile.macosx. If you have a recent compiler, just skip these parts -and adapt the makefile. - - -Requirements ------------- - -First get and install macports from http://www.macports.org/ -Next use macports to install pingus' requirements by typing: - - sudo port install libsdl libsdl_image libsdl_mixer boost scons - sudo port install gcc44 - - -Compilation ------------ - -Once all libraries are in place, you can compile Pingus with just: - - make -f Makefile.macosx - - -Running -------- - -Once the compilation is successful you can run Pingus directly from -the top level directory of the source tree via: - - ./pingus - -For details about the command line options etc. see INSTALL.unix - - -Creating an application bundle ------------------------------- - -To make pingus feel at home on OS X you may want to create an application bundle. -The follwogin steps will create a Pingus.app that can be used and distributed like -any other Mac OS X application. - -First we need some little helper utilities - - sudo port install dylibbundler makeicns - -Now the application bundle can be build - - make -f Makefile.macosx bundle - - -Distribute ----------- - -To create a compressed package for distribution frun the following command: - - make -f Makefile.macosx package diff --git a/Info.plist b/Info.plist deleted file mode 100644 index 330a04c26..000000000 --- a/Info.plist +++ /dev/null @@ -1,17 +0,0 @@ - - - - - CFBundleDevelopmentRegion English - CFBundleInfoDictionaryVersion 6.0 - CFBundlePackageType APPL - CSResourcesFileMapped - - CFBundleName Pingus - CFBundleIconFile pingus.icns - CFBundleExecutable pingus - CFBundleVersion 0.7.6 - CFBundleShortVersionString 0.7.6 - - - \ No newline at end of file diff --git a/Makefile.macosx b/Makefile.macosx deleted file mode 100644 index e573476f2..000000000 --- a/Makefile.macosx +++ /dev/null @@ -1,79 +0,0 @@ -# this Makefile assumes that you have used macports to install all the depemdencies. - -# that is were macports is installed by default -PORTSDIR = /opt/local -CPPPATH = $(PORTSDIR)/include -LIBPATH = $(PORTSDIR)/lib -# note that the default compoler on OS X 10.5 is gcc-4.0.1, which can't handle -std=c++0x -# you can set this simply to "gcc" and "g++" if your default compiler is gcc-4.4 of higher. -CC = $(PORTSDIR)/bin/gcc-mp-4.4 -CXX = $(PORTSDIR)/bin/g++-mp-4.4 -# the default (BSD) "install" does not support the -D flag, so we're using macports GNU variant -INSTALL = ginstall - -# the portable application bundle -BUNDLE = Pingus.app - -# the volume name for the package (the filename ,*.dmg, will include the VERSION) -# NOTE: currently an initial size of 100M is used. This has to be increased as needed! -PACKAGE = Pingus -# these files are, beside the bundle, added to the package -PACKAGEDOCS = README NEWS COPYING AUTHORS - -build/pingus: - mkdir -p build - scons CPPPATH=$(CPPPATH) LIBPATH=$(LIBPATH) CXX=$(CXX) CC=$(CC) - ln -fs build/pingus - -build/pingus.icns: data/images/icons/pingus-icon.png - mkdir -p build - makeicns -in $< -out $@ - -bundle: install-exec install-data install-icon - -create-app-bundle: build/pingus.icns - mkdir -p $(BUNDLE)/Contents/MacOS - mkdir -p $(BUNDLE)/Contents/Resources - mkdir -p $(BUNDLE)/Contents/libs - echo "APPL" > $(BUNDLE)/Contents/PkgInfo - -install-icon: create-app-bundle build/pingus - install build/pingus.icns $(BUNDLE)/Contents/Resources - echo "CFBundleIconFilepingus.icns" > $(BUNDLE)/Contents/Info.plist - -install-exec: create-app-bundle build/pingus - install build/pingus $(BUNDLE)/Contents/MacOS - dylibbundler -b -x $(BUNDLE)/Contents/MacOS/pingus -od -d $(BUNDLE)/Contents/libs/ - -install-data: - for file in `( cd data ; find . \ - -type f -a \( \ - -name "*.png" -o \ - -name "*.jpg" -o \ - -name "*.wav" -o \ - -name "*.scm" -o \ - -name "*.font" -o \ - -name "*.story" -o \ - -name "*.credits" -o \ - -name "*.prefab" -o \ - -name "*.it" -o \ - -name "*.ogg" -o \ - -name "*.s3m" -o \ - -name "*.po" -o \ - -name "*.worldmap" -o \ - -name "*.res" -o \ - -name "*.pingus" -o \ - -name "*.levelset" -o \ - -name "*.sprite" \ - \) )`; do $(INSTALL) -D data/$$file $(BUNDLE)/Contents/Resources/$$file; done - -package: bundle - hdiutil create -size 100M -fs HFS+J -volname $(PACKAGE) $(PACKAGE)-tmp.dmg - hdiutil attach $(PACKAGE)-tmp.dmg -readwrite -mount required - cp -R -p $(BUNDLE) /Volumes/$(PACKAGE)/ - cp $(PACKAGEDOCS) /Volumes/$(PACKAGE) - hdiutil detach /Volumes/$(PACKAGE) -force - ./SLA-dmg.sh COPYING Pingus-tmp.dmg - hdiutil convert $(PACKAGE)-tmp.dmg -format UDZO -imagekey zlib-level=9 -o $(PACKAGE)-`cat VERSION`.dmg - rm $(PACKAGE)-tmp.dmg - diff --git a/README.md b/README.md index af04d34ee..b97187f79 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ operating systems supported by SDL2. It is covered under the GPL, check the file COPYING, for more information. See `INSTALL.linux.md` for instructions on how to compile and run Pingus -from source on GNU/Linux and `INSTALL.macosx.md` for MacOSX. +from source on GNU/Linux. Information about the game, new versions and additional documentation can be found at the Pingus webpage: diff --git a/SLA-dmg.sh b/SLA-dmg.sh deleted file mode 100755 index af268f322..000000000 --- a/SLA-dmg.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/bash -# -# This script appends the text from Q3A_EULA.txt to a .dmg as a SLA resource -# -# usage is './SLA-dmg.sh /path/to/Q3A_EULA.txt /path/to/ioquake3.dmg' -# - -if [ "x$1" = "x" ] || [ "x$2" = "x" ]; then - echo "usage: ./SLA-dmg.sh /path/to/Q3A_EULA.txt /path/to/ioquake3.dmg" - exit 1; -fi - -if [ ! -r $1 ]; then - echo "$1 is not a readable Q3A_EULA.txt file" - exit 1; -fi -if [ ! -w $2 ]; then - echo "$2 is not writable .dmg file" - exit 1; -fi -touch tmp.r -if [ ! -w tmp.r ]; then - echo "Could not create temporary file tmp.r for writing" - exit 1; -fi - -echo " -data 'LPic' (5000) { - \$\"0002 0011 0003 0001 0000 0000 0002 0000\" - \$\"0008 0003 0000 0001 0004 0000 0004 0005\" - \$\"0000 000E 0006 0001 0005 0007 0000 0007\" - \$\"0008 0000 0047 0009 0000 0034 000A 0001\" - \$\"0035 000B 0001 0020 000C 0000 0011 000D\" - \$\"0000 005B 0004 0000 0033 000F 0001 000C\" - \$\"0010 0000 000B 000E 0000\" -}; - -data 'TEXT' (5002, \"English\") { -" > tmp.r - -sed -e 's/"/\\"/g' -e 's/\(.*\)$/"\1\\n"/g' $1 >> tmp.r - -echo " -}; - -resource 'STR#' (5002, \"English\") { - { - \"English\", - \"Agree\", - \"Disagree\", - \"Print\", - \"Save...\", - \"IMPORTANT - Read this License Agreement carefully before clicking on \" - \"the \\\"Agree\\\" button. By clicking on the \\\"Agree\\\" button, you agree \" - \"to be bound by the terms of the License Agreement.\", - \"Software License Agreement\", - \"This text cannot be saved. This disk may be full or locked, or the \" - \"file may be locked.\", - \"Unable to print. Make sure you have selected a printer.\" - } -}; -" >> tmp.r - -hdiutil convert -format UDCO -o tmp.dmg $2 || exit 1 -hdiutil unflatten tmp.dmg || exit 1 -/Developer/Tools/Rez /Developer/Headers/FlatCarbon/*.r tmp.r -a -o tmp.dmg \ - || exit 1 -hdiutil flatten tmp.dmg || exit 1 -hdiutil internet-enable -yes tmp.dmg || exit 1 -mv tmp.dmg $2 || (echo "Could not copy tmp.dmg to $2" && exit 1) -rm tmp.dmg -rm tmp.r -echo "SLA $1 successfully added to $2" diff --git a/bundle_mac.sh b/bundle_mac.sh deleted file mode 100755 index c0c1b265d..000000000 --- a/bundle_mac.sh +++ /dev/null @@ -1,38 +0,0 @@ -echo "* Removing any existing installation" -rm -rf ./Pingus.app -rm -rf ./Pingus-`cat VERSION`.dmg - -echo "* Creating skeleton" -mkdir -p ./Pingus.app/Contents/Resources -mkdir ./Pingus.app/Contents/MacOS -cp Info.plist ./Pingus.app/Contents/Info.plist -cp ./data/images/icons/pingus-icon.icns ./Pingus.app/Contents/Resources/pingus.icns - -echo "* Copying executable" -cp ./build/pingus ./Pingus.app/Contents/MacOS/pingus - -echo "* Copying data files" -cp -r ./data/* ./Pingus.app/Contents/Resources/ - -echo "* Bunling dependencies" -dylibbundler -od -b -x ./Pingus.app/Contents/MacOS/pingus -d ./Pingus.app/Contents/libs/ - -echo "* Creating DMG" - hdiutil create -size 100M -fs HFS+J -volname Pingus Pingus-tmp.dmg - hdiutil attach Pingus-tmp.dmg -readwrite -mount required - cp -R Pingus.app /Volumes/Pingus/ - cp README /Volumes/Pingus - cp AUTHORS /Volumes/Pingus - cp COPYING /Volumes/Pingus - cp NEWS /Volumes/Pingus - hdiutil detach /Volumes/Pingus -force -read -p "Do you run OSX 10.6 or earlier? (y/n)" RESPONSE - if [ "$RESPONSE" = y ] ; then - ./SLA-dmg.sh COPYING Pingus-tmp.dmg - elif [ "$RESPONSE" = n ] ; then - ./licenseDMG.py Pingus-tmp.dmg COPYING - else - echo "You did not make a valid selection!" - fi - hdiutil convert Pingus-tmp.dmg -format UDBZ -o Pingus-`cat VERSION`.dmg - rm Pingus-tmp.dmg diff --git a/licenseDMG.py b/licenseDMG.py deleted file mode 100755 index c2f6fbf91..000000000 --- a/licenseDMG.py +++ /dev/null @@ -1,141 +0,0 @@ -#! /usr/bin/env python -""" -This script adds a license file to a DMG. Requires Xcode and a plain ascii text -license file. -Obviously only runs on a Mac. - -Copyright (C) 2011 Jared Hobbs - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -""" -import os -import sys -import tempfile -import optparse - - -class Path(str): - def __enter__(self): - return self - - def __exit__(self, type, value, traceback): - os.unlink(self) - - -def mktemp(dir=None, suffix=''): - (fd, filename) = tempfile.mkstemp(dir=dir, suffix=suffix) - os.close(fd) - return Path(filename) - - -def main(options, args): - dmgFile, license = args - with mktemp('.') as tmpFile: - with open(tmpFile, 'w') as f: - f.write("""data 'LPic' (5000) { - $"0002 0011 0003 0001 0000 0000 0002 0000" - $"0000 000E 0006 0001 0005 0007 0000 0007" - $"0008 0000 0047 0009 0000 0034 000A 0001" - $"0035 000B 0001 0020 000C 0000 0011 000D" - $"0000 005B 0004 0000 0033 000F 0001 000C" - $"0010 0000 000B 000E 0000" -};\n\n""") - with open(license, 'r') as l: - f.write('data \'TEXT\' (5002, "English") {\n') - for line in l: - if len(line) < 1000: - f.write(' "' + line.strip().replace('"', '\\"') + - '\\n"\n') - else: - for liner in line.split('.'): - f.write(' "' + - liner.strip().replace('"', '\\"') + - '. \\n"\n') - f.write('};\n\n') - f.write("""resource 'STR#' (5002, "English") { - { - "English", - "Agree", - "Disagree", - "Print", - "Save...", - "IMPORTANT - By clicking on the \\"Agree\\" button, you agree " - "to be bound by the terms of the License Agreement.", - "Software License Agreement", - "This text cannot be saved. This disk may be full or locked, or the " - "file may be locked.", - "Unable to print. Make sure you have selected a printer." - } -};""") - os.system('/usr/bin/hdiutil unflatten -quiet "%s"' % dmgFile) - os.system('%s "%s/"*.r %s -a -o "%s"' % - (options.rez, options.flat_carbon, tmpFile, dmgFile)) - - os.system('/usr/bin/hdiutil flatten -quiet "%s"' % dmgFile) - if options.compression is not None: - os.system('cp %s %s.temp.dmg' % (dmgFile, dmgFile)) - os.remove(dmgFile) - if options.compression == "bz2": - os.system('hdiutil convert %s.temp.dmg -format UDBZ -o %s' % - (dmgFile, dmgFile)) - elif options.compression == "gz": - os.system('hdiutil convert %s.temp.dmg -format ' % dmgFile + - 'UDZO -imagekey zlib-devel=9 -o %s' % dmgFile) - os.remove('%s.temp.dmg' % dmgFile) - print "Successfully added license to '%s'" % dmgFile - -if __name__ == '__main__': - parser = optparse.OptionParser() - parser.set_usage("""%prog [OPTIONS] - This program adds a software license agreement to a DMG file. - It requires Xcode and a plain ascii text . - - See --help for more details.""") - parser.add_option( - '--rez', - '-r', - action='store', - default='/Applications/Xcode.app/Contents/Developer/Tools/Rez', - help='The path to the Rez tool. Defaults to %default' - ) - parser.add_option( - '--flat-carbon', - '-f', - action='store', - default='/Applications/Xcode.app/Contents/Developer/Platforms' - '/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk' - '/Developer/Headers/FlatCarbon', - help='The path to the FlatCarbon headers. Defaults to %default' - ) - parser.add_option( - '--compression', - '-c', - action='store', - choices=['bz2', 'gz'], - default=None, - help='Optionally compress dmg using specified compression type. ' - 'Choices are bz2 and gz.' - ) - options, args = parser.parse_args() - cond = len(args) != 2 or not os.path.exists(options.rez) \ - or not os.path.exists(options.flat_carbon) - if cond: - parser.print_usage() - sys.exit(1) - main(options, args) From 286412f9c74a39b00ed8519a8edd577ade8849af Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Sun, 13 Aug 2023 22:11:17 +0200 Subject: [PATCH 09/20] Remove outdated .travis.yml --- .travis.yml | 100 ---------------------------------------------------- 1 file changed, 100 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index eafe3db0d..000000000 --- a/.travis.yml +++ /dev/null @@ -1,100 +0,0 @@ -# Pingus - A free Lemmings clone -# Copyright (C) 2015 Ingo Ruhnke -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# Build file for https://travis-ci.org/ -# -# Configuration manual: -# http://docs.travis-ci.com/user/build-configuration/ -# -# Based on: -# https://github.com/supertuxkart/stk-code/blob/master/.travis.yml -# https://github.com/SuperTux/supertux/blob/master/.travis.yml - -language: cpp -dist: trusty -sudo: required - -compiler: - - gcc - - clang - -matrix: - fast_finish: true - exclude: - - compiler: gcc - os: osx - -os: - - linux - # - osx - -env: - global: - # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created - # via the "travis encrypt" command using the project repo's public key - - secure: "CPJBu4r8RDmeP7G78ODyk+A/J3vxEFr4xpQE0zIDtdCHcQmv2NqjM88YVH5pRWK4vtpAFuDEzyw4ZGKwfmwK5zhg2nUubsf47WpQmQa0z9HLasjXATzWwXGggx7mzlKODpkkccBzXHDAqvLKTkKBeXdxwMKFCtSgEM+3MwEwW6g=" - matrix: - - BUILD_TYPE="Debug" - - BUILD_TYPE="Release" - -before_install: - - if [ "$CXX" = "g++" ]; then export CXX="g++-4.9" CC="gcc-4.9"; fi - - if [ "$CXX" == "clang++" ]; then export CXX="clang++-5.0"; fi - -script: - # Clean from previous Travis build - - git clean -f - # Then build: - - mkdir "build-$BUILD_TYPE" - - cd "build-$BUILD_TYPE" - - cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DWARNINGS=ON -DWERROR=ON -DBUILD_TESTS=ON -DBUILD_EXTRA=ON - - make VERBOSE=1 - - make VERBOSE=1 install DESTDIR=/tmp/pingus-${BUILD_TYPE} - - (cd .. && build-${BUILD_TYPE}/test_pingus) - -# The branch coverity_scan is used to trigger the start of a coverity -# scan, merge the latest development version into and push it to start -# the scan. -addons: - apt: - sources: - - ubuntu-toolchain-r-test - - llvm-toolchain-precise - packages: - - clang-5.0 - - g++-4.9 - - cmake - - build-essential - - libc++-dev - - libogg-dev - - libvorbis-dev - - libglew-dev - - libopenal-dev - - libboost-all-dev - - libsdl2-dev - - libsdl2-image-dev - - libsdl2-mixer-dev - - libjsoncpp-dev - coverity_scan: - project: - name: "Pingus/pingus" - description: "Build submitted via Travis CI" - notification_email: grumbel@gmail.com - build_command_prepend: "cmake . && make clean" - build_command: "make" - branch_pattern: coverity_scan - -# EOF # From cc82ba678c579cc4ab7a87d73244fb4f610cd7de Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Sun, 13 Aug 2023 22:15:34 +0200 Subject: [PATCH 10/20] Remove outdated flatpak information --- README.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/README.md b/README.md index b97187f79..eaec15c34 100644 --- a/README.md +++ b/README.md @@ -51,11 +51,3 @@ issue tracker at: * https://gitlab.com/pingus/pingus/issues - -Nightly Builds --------------- - -Experimental nightly builds for Linux are available via [FlatPak](https://flatpak.org/): - - sudo flatpak remote-add --no-gpg-verify pingus "https://gitlab.com/pingus/pingus/-/jobs/artifacts/master/raw/build-flatpak-repo?job=build:flatpak" - sudo flatpak install pingus org.pingus.Pingus From 2131a2b18325a15eafc0ddd811447a1741e07ac4 Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Sun, 13 Aug 2023 22:16:28 +0200 Subject: [PATCH 11/20] Change URLs from gitlab to github --- README.md | 30 ++++++++++-------------------- pingus.appdata.xml.in | 14 +++++++------- 2 files changed, 17 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index eaec15c34..8be4285e1 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,8 @@ Pingus Introduction ------------ -Pingus is a free Lemmings(tm) clone for GNU/Linux, Win32 and other -operating systems supported by SDL2. It is covered under the GPL, check -the file COPYING, for more information. +Pingus is a free Lemmings™ clone for GNU/Linux, Win32 and other +operating systems supported by SDL2. It is licensed under the GPLv3+. See `INSTALL.linux.md` for instructions on how to compile and run Pingus from source on GNU/Linux. @@ -14,33 +13,24 @@ from source on GNU/Linux. Information about the game, new versions and additional documentation can be found at the Pingus webpage: -* http://pingus.gitlab.io/ +* https://pingus.github.io/ Mailing Lists ------------- -There are currently two mailing lists available: - -* pingus-devel - A list for discussing development issues, like level +* pingus-devel - https://lists.nongnu.org/mailman/listinfo/pingus-devel + A list for discussing development issues, like level creation or code changes, but might as well be used for user issues like how to solve levels and such -* pingus-cvs - Read-only list to which all CVS commits get submitted, - only intersting for developers in general - -For information on how to subscribe to any of these lists have a look -at: - -* http://pingus.gitlab.io/contact.html +Chat +---- -IRC ---- +* IRC: irc://irc.libera.chat:6667/#pingus -For a quick help you can try the IRC server irc.freenode.net:6667 and -the channel #pingus, you can sometimes find the project maintainer -(nick: grumbel) there. +* Matrix: https://matrix.to/#/#pingus:matrix.org Bug Reports @@ -49,5 +39,5 @@ Bug Reports Bug reports, new levels and feature requests can be submitted to the issue tracker at: -* https://gitlab.com/pingus/pingus/issues +* https://github.com/pingus/pingus/issues diff --git a/pingus.appdata.xml.in b/pingus.appdata.xml.in index 21183bfc5..296b6bb0f 100644 --- a/pingus.appdata.xml.in +++ b/pingus.appdata.xml.in @@ -28,18 +28,18 @@ Ingo Ruhnke grumbel@gmail.com - https://pingus.gitlab.io - https://gitlab.com/pingus/pingus/issues + https://pingus.github.io + https://github.com/pingus/pingus/issues Game LogicGame - http://pingus.gitlab.io/images/screen_0.7.0-1.jpg - http://pingus.gitlab.io/images/screen_0.7.0-2.jpg - http://pingus.gitlab.io/images/screen_0.7.0-3.jpg - http://pingus.gitlab.io/images/screen_0.7.0-4.jpg - http://pingus.gitlab.io/images/screen_0.7.0-5.jpg + http://pingus.github.io/images/screen_0.7.0-1.jpg + http://pingus.github.io/images/screen_0.7.0-2.jpg + http://pingus.github.io/images/screen_0.7.0-3.jpg + http://pingus.github.io/images/screen_0.7.0-4.jpg + http://pingus.github.io/images/screen_0.7.0-5.jpg From 9b05d35694956714b9483ab3f974696d3810b2eb Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Wed, 13 Sep 2023 10:33:39 +0200 Subject: [PATCH 12/20] Remove pingus.appdata.xml --- CMakeLists.txt | 13 ------------ pingus.appdata.xml.in | 47 ------------------------------------------- 2 files changed, 60 deletions(-) delete mode 100644 pingus.appdata.xml.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 18a2e853b..bab4b5feb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,9 +19,6 @@ project(pingus VERSION 0.8.0) include(mk/cmake/TinyCMMC.cmake) -# FIXME: Move this into GetProjectVersion, get date from git -string(TIMESTAMP PROJECT_DATE "%Y-%m-%d" UTC) - find_package(PkgConfig REQUIRED) set(OpenGL_GL_PREFERENCE "LEGACY") find_package(OpenGL REQUIRED) @@ -208,14 +205,4 @@ install(FILES install(DIRECTORY data/icons/ DESTINATION ${CMAKE_INSTALL_DATADIR}/icons) -configure_file(pingus.appdata.xml.in ${CMAKE_CURRENT_BINARY_DIR}/pingus.appdata.xml) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pingus.appdata.xml - DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo) - -if (BUILD_TESTS) - add_test(NAME pingus.appdata.xml - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND appstream-util validate-relax ${CMAKE_CURRENT_BINARY_DIR}/pingus.appdata.xml) -endif(BUILD_TESTS) - # EOF # diff --git a/pingus.appdata.xml.in b/pingus.appdata.xml.in deleted file mode 100644 index 296b6bb0f..000000000 --- a/pingus.appdata.xml.in +++ /dev/null @@ -1,47 +0,0 @@ - - - - org.seul.pingus.Pingus - CC0-1.0 - GPL-3.0+ - - mild - mild - mild - mild - - Pingus - Guide groups of penguins through various obstacles - -

- A 2d side scrolling puzzle game where you guide large groups of - little penguins through various obstacles and dangers using - their numerous talents. -

-

- A level editor is included to allow building your own levels and - numerous user contributed levels are included as well. -

-

- The game is heavily inspired by the classic Lemmings. -

-
- Ingo Ruhnke - grumbel@gmail.com - https://pingus.github.io - https://github.com/pingus/pingus/issues - - Game - LogicGame - - - http://pingus.github.io/images/screen_0.7.0-1.jpg - http://pingus.github.io/images/screen_0.7.0-2.jpg - http://pingus.github.io/images/screen_0.7.0-3.jpg - http://pingus.github.io/images/screen_0.7.0-4.jpg - http://pingus.github.io/images/screen_0.7.0-5.jpg - - - - -
From 0af3c96a7faddd3cd2d652005d669037da9e2ee4 Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Mon, 25 Sep 2023 16:46:15 +0200 Subject: [PATCH 13/20] gitlab -> github --- INSTALL.linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/INSTALL.linux.md b/INSTALL.linux.md index ff72313c9..3f799653d 100644 --- a/INSTALL.linux.md +++ b/INSTALL.linux.md @@ -42,7 +42,7 @@ Compilation Pingus uses git submodules for some parts of the code. To initialize those you can either run (when cloning the repository): - git clone --recursive https://gitlab.com/pingus/pingus.git + git clone --recursive https://github.com/pingus/pingus.git Or run the following on an existing clone: From d0aac93aac5b2c4d91d2de6d048229c29293a838 Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Mon, 4 Dec 2023 15:27:52 +0100 Subject: [PATCH 14/20] Update to NixOS 23.11 --- flake.lock | 50 +++++++++++++++++++++++++------------------------- flake.nix | 2 +- pingus.nix | 4 ++-- 3 files changed, 28 insertions(+), 28 deletions(-) diff --git a/flake.lock b/flake.lock index ac8c28f1f..e1126d009 100644 --- a/flake.lock +++ b/flake.lock @@ -11,11 +11,11 @@ ] }, "locked": { - "lastModified": 1660923972, - "narHash": "sha256-xkVYQOjJyHkhxCKVz5S8Xhy30WzzolG538JCVeu4kQw=", + "lastModified": 1687870306, + "narHash": "sha256-IRbYRi6XhoHJMxEObuiqWxSwY+DaPXEHkdn9BuOvV6E=", "owner": "grumnix", "repo": "SDL2-win32", - "rev": "34f0919fec05bcdba1c97ec6425bf18b5ebe2b4d", + "rev": "31c1fc30c3e316c94b17e5090b4e6c21cab08830", "type": "github" }, "original": { @@ -35,11 +35,11 @@ ] }, "locked": { - "lastModified": 1661193406, - "narHash": "sha256-x1iqSyMexVTzEXS4XWkoBRq6OUR4vqnHhmtLQNDOx6U=", + "lastModified": 1687870067, + "narHash": "sha256-aUK8BZkwXa7RCRwk/XGw7Rn0Gfr+1egHWRz1Fgn5ouM=", "owner": "grumnix", "repo": "SDL2_image-win32", - "rev": "0e9be7312eed117812fe07d3045a4f174cde79c0", + "rev": "17d77150985a63944c7bbb1133c5f8ab529077da", "type": "github" }, "original": { @@ -104,11 +104,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1685518550, - "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", "owner": "numtide", "repo": "flake-utils", - "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", "type": "github" }, "original": { @@ -268,11 +268,11 @@ ] }, "locked": { - "lastModified": 1684870196, - "narHash": "sha256-5Y5FfBXM53OBSJzO6q+7M3Fj1KsusJcFg3cAfnFAWcA=", + "lastModified": 1701699800, + "narHash": "sha256-Vju/twhkSbuRbwtHq5sdH6P/JIMZesqpZCRwpOv0Ey8=", "owner": "logmich", "repo": "logmich", - "rev": "5924b2beabd2169a077ae57401bdd3cd8ebfba7d", + "rev": "8a20ecdefe3bd0d7d1733acf5ec7c9c4a7a48484", "type": "github" }, "original": { @@ -321,16 +321,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1686513595, - "narHash": "sha256-H3JNqj7TEiMx5rd8lRiONvgFZvmf3kmwHI2umDdqgFY=", + "lastModified": 1701539137, + "narHash": "sha256-nVO/5QYpf1GwjvtpXhyxx5M3U/WN0MwBro4Lsk+9mL0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "bb8b5735d6f7e06b9ddd27de115b0600c1ffbdb4", + "rev": "933d7dc155096e7575d207be6fb7792bc9f34f6d", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-23.05", + "ref": "nixos-23.11", "repo": "nixpkgs", "type": "github" } @@ -479,11 +479,11 @@ ] }, "locked": { - "lastModified": 1686756002, - "narHash": "sha256-WNolGIJRNtvOWIbQ5W7ivyNsy9JSOXOl5GyNNIQe7D4=", + "lastModified": 1701699950, + "narHash": "sha256-m7JA+J0zKm0C7V/iUK4m9YgG7qWJhYzgWo6+laZhnk0=", "owner": "grumbel", "repo": "priocpp", - "rev": "701a4c7ae9a100c4752ddf6ef8cbebf2ae39156b", + "rev": "90944b1ed6c2f941adbba5e2e604ba06949b3854", "type": "github" }, "original": { @@ -526,11 +526,11 @@ ] }, "locked": { - "lastModified": 1685364855, - "narHash": "sha256-VVqrWhgTGmknJPc6GCr9spbot1H2ZNxAlzJaegN/SHc=", + "lastModified": 1701699901, + "narHash": "sha256-hN84QetcLLOFuU+hnaTZwGeAQ0lBRdLIJkNAH0ulZZA=", "owner": "lispparser", "repo": "sexp-cpp", - "rev": "c10e5d948bd1cd087deecfe400c3b64fddb493ee", + "rev": "8be22d81cdb18cc3c14d29231978abe13a539792", "type": "github" }, "original": { @@ -587,11 +587,11 @@ ] }, "locked": { - "lastModified": 1684952066, - "narHash": "sha256-yS8/+TOL2OA7f/RQs1Zr20mmlPFIVvFOgWShLAQvH8w=", + "lastModified": 1701699760, + "narHash": "sha256-L0vwqcTQFOiFfRY90nBgDuUsVOYS0+S8BfVxFvaFBNM=", "owner": "grumbel", "repo": "tinycmmc", - "rev": "01fe277570a290837726de6eb3c16d617bfda28c", + "rev": "9a51e13802d930feb7261ba8876940659b258cb7", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index e7b84ea51..7f6669727 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,7 @@ description = "A free Lemmings clone with penguins"; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.05"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; flake-utils.url = "github:numtide/flake-utils"; tinycmmc.url = "github:grumbel/tinycmmc"; diff --git a/pingus.nix b/pingus.nix index e6075a005..8652a30b0 100644 --- a/pingus.nix +++ b/pingus.nix @@ -11,7 +11,7 @@ , libsigcxx , makeWrapper , mesa -, pkgconfig +, pkg-config , mcfgthreads , argpp @@ -49,7 +49,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake - pkgconfig + pkg-config ] ++ (lib.optional (!stdenv.targetPlatform.isWindows) makeWrapper); postFixup = '' From fc25d2b965afe291d9997324e3b69f706a20251e Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Tue, 2 Apr 2024 23:54:04 +0200 Subject: [PATCH 15/20] Update README/INSTALL to point to Nix --- INSTALL.linux.md | 116 ----------------------------------------------- README.md | 18 ++++++-- 2 files changed, 14 insertions(+), 120 deletions(-) delete mode 100644 INSTALL.linux.md diff --git a/INSTALL.linux.md b/INSTALL.linux.md deleted file mode 100644 index 3f799653d..000000000 --- a/INSTALL.linux.md +++ /dev/null @@ -1,116 +0,0 @@ -Pingus Installation Guide for GNU/Linux -======================================= - -Requirements ------------- - -To compile Pingus you need: - -* [g++](http://gcc.gnu.org/) -* [SDL2](http://libsdl.org/) -* [SDL2_mixer](https://www.libsdl.org/projects/SDL_image/) -* [SDL2_image](https://www.libsdl.org/projects/SDL_mixer/) -* [libpng](http://libpng.org/) -* [cmake](http://cmake.org/) - -In most cases you will find all of these in your distribution and -there shouln't be a need to compile anything manually. - -In Ubuntu 20.04, 22.04 and Debian 10, 11 you can install everything by typing: - - sudo apt-get install \ - g++ \ - libsdl2-dev \ - libsdl2-mixer-dev \ - libsdl2-image-dev \ - libpng12-dev \ - libjsoncpp-dev \ - libsigc++-2.0-dev \ - libfmt-dev \ - libglm-dev \ - libopenal-dev \ - libopusfile-dev \ - libvorbis-dev \ - libmpg123-dev \ - libmodplug-dev \ - cmake - - -Compilation ------------ - -Pingus uses git submodules for some parts of the code. To initialize -those you can either run (when cloning the repository): - - git clone --recursive https://github.com/pingus/pingus.git - -Or run the following on an existing clone: - - git submodule update --init --recursive - -To compile the code: - - mkdir -p build - cd build - cmake .. - make - -If you need to change the compiler or other build variables you can do -so with in the `cmake` step, e.g.: - - cmake .. -DCMAKE_BUILD_TYPE=Debug - -The following variables are available: - -* `-DCMAKE_BUILD_TYPE=Release` -* `-DCMAKE_BUILD_TYPE=Debug` -* `-DBUILD_TESTS=ON` -* `-DCMAKE_INSTALL_PREFIX:PATH=/usr` - - -Running -------- - -Once the compilation is successful you can run Pingus directly from -the top level directory of the source tree via: - - build/pingus - -There is no need to install Pingus. - -If you have a slow machine, starting Pingus with: - - build/pingus -g 640x480 --frame-skip 3 - -Might lead to a better playable game. If you want to run Pingus in a -larger resolution, you can do so with: - - build//pingus -g 1024x768 - -Fullscreen support is available via: - - build/pingus --fullscreen - -Available languages can be listed with: - - build/pingus --list-languages - -And used with: - - build/pingus --language de - - -Installation ------------- - -As mentioned above, you don't need to install Pingus to run it, if you -still want to do it, you can do so with: - - make install - -The `DESTDIR` and `PREFIX` can be configured as follows: - - make install DESTDIR=/tmp/pingus - - cmake .. -DCMAKE_INSTALL_PREFIX:PATH=/usr - diff --git a/README.md b/README.md index 8be4285e1..a1c141329 100644 --- a/README.md +++ b/README.md @@ -7,19 +7,29 @@ Introduction Pingus is a free Lemmings™ clone for GNU/Linux, Win32 and other operating systems supported by SDL2. It is licensed under the GPLv3+. -See `INSTALL.linux.md` for instructions on how to compile and run Pingus -from source on GNU/Linux. - Information about the game, new versions and additional documentation can be found at the Pingus webpage: * https://pingus.github.io/ +Building +-------- + +Pingus uses [Nix package manager](https://nixos.org/download/), to +automatically download, compile and run it in Linux: + + nix run github:pingus/pingus + +The Windows version can be compiled in Linux with: + + nix build github:pingus/pingus#packages.i686-windows.pingus-win32 + + Mailing Lists ------------- -* pingus-devel - https://lists.nongnu.org/mailman/listinfo/pingus-devel +* pingus-devel - https://lists.nongnu.org/mailman/listinfo/pingus-devel A list for discussing development issues, like level creation or code changes, but might as well be used for user issues like how to solve levels and such From 7c268df2187ae4bb1c85412928118e7c61e4e92f Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Wed, 3 Apr 2024 00:44:00 +0200 Subject: [PATCH 16/20] Remove git submodules, use Nix instead --- .gitmodules | 33 --------------------------------- external/argpp | 1 - external/geomcpp | 1 - external/logmich | 1 - external/priocpp | 1 - external/sexpcpp | 1 - external/strutcpp | 1 - external/tinycmmc | 1 - external/tinygettext | 1 - external/uitest | 1 - external/wstsound | 1 - external/xdgcpp | 1 - 12 files changed, 44 deletions(-) delete mode 100644 .gitmodules delete mode 160000 external/argpp delete mode 160000 external/geomcpp delete mode 160000 external/logmich delete mode 160000 external/priocpp delete mode 160000 external/sexpcpp delete mode 160000 external/strutcpp delete mode 160000 external/tinycmmc delete mode 160000 external/tinygettext delete mode 160000 external/uitest delete mode 160000 external/wstsound delete mode 160000 external/xdgcpp diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 3a6ecfd43..000000000 --- a/.gitmodules +++ /dev/null @@ -1,33 +0,0 @@ -[submodule "external/argpp"] - path = external/argpp - url = https://github.com/grumbel/argpp.git -[submodule "external/geomcpp"] - path = external/geomcpp - url = https://github.com/grumbel/geomcpp.git -[submodule "external/logmich"] - path = external/logmich - url = https://github.com/logmich/logmich.git -[submodule "external/priocpp"] - path = external/priocpp - url = https://github.com/grumbel/priocpp.git -[submodule "external/sexpcpp"] - path = external/sexpcpp - url = https://github.com/lispparser/sexp-cpp.git -[submodule "external/strutcpp"] - path = external/strutcpp - url = https://github.com/grumbel/strutcpp.git -[submodule "external/tinycmmc"] - path = external/tinycmmc - url = https://github.com/grumbel/tinycmmc.git -[submodule "external/tinygettext"] - path = external/tinygettext - url = https://github.com/tinygettext/tinygettext.git -[submodule "external/wstsound"] - path = external/wstsound - url = https://github.com/WindstilleTeam/wstsound.git -[submodule "external/xdgcpp"] - path = external/xdgcpp - url = https://github.com/grumbel/xdgcpp.git -[submodule "external/uitest"] - path = external/uitest - url = https://github.com/grumbel/uitest.git diff --git a/external/argpp b/external/argpp deleted file mode 160000 index cbbf41f22..000000000 --- a/external/argpp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit cbbf41f228b986df9bdd898e7203e7988876404e diff --git a/external/geomcpp b/external/geomcpp deleted file mode 160000 index 290cda394..000000000 --- a/external/geomcpp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 290cda394df7efe25094887327faf3e1d28c333d diff --git a/external/logmich b/external/logmich deleted file mode 160000 index c963f735d..000000000 --- a/external/logmich +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c963f735df02f1944cd8db4c86a4c45f6f923d2a diff --git a/external/priocpp b/external/priocpp deleted file mode 160000 index 58fc2c180..000000000 --- a/external/priocpp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 58fc2c18003e738d274f7fb76f1177151ff2f3cb diff --git a/external/sexpcpp b/external/sexpcpp deleted file mode 160000 index c7137f1e0..000000000 --- a/external/sexpcpp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c7137f1e0351b8e193ae9d48fb381157a1f8377e diff --git a/external/strutcpp b/external/strutcpp deleted file mode 160000 index 06e63e8fb..000000000 --- a/external/strutcpp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 06e63e8fbfe103e51bebe82299b2dc83969fa794 diff --git a/external/tinycmmc b/external/tinycmmc deleted file mode 160000 index 43c75c534..000000000 --- a/external/tinycmmc +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 43c75c5344979c5ad4c65233aa407e3ec6d92c03 diff --git a/external/tinygettext b/external/tinygettext deleted file mode 160000 index a23e9ef74..000000000 --- a/external/tinygettext +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a23e9ef7406b3c430ec088214a2a063b2e64c6fe diff --git a/external/uitest b/external/uitest deleted file mode 160000 index 6be34dc37..000000000 --- a/external/uitest +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6be34dc37b1877b366fb26a7f0fc461b102eaa34 diff --git a/external/wstsound b/external/wstsound deleted file mode 160000 index 9e692e7a4..000000000 --- a/external/wstsound +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9e692e7a40e6d6d0409007085e8f6fd22438f447 diff --git a/external/xdgcpp b/external/xdgcpp deleted file mode 160000 index 569bf5b6d..000000000 --- a/external/xdgcpp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 569bf5b6df6092e92ce60bebb125b75b301185e4 From af522038002a29ce9ae4e8545a387c3367355296 Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Wed, 3 Apr 2024 00:44:28 +0200 Subject: [PATCH 17/20] Update flake.lock to fix Win32 build issue --- flake.lock | 86 +++++++++++++++++++++++++++++------------------------- 1 file changed, 47 insertions(+), 39 deletions(-) diff --git a/flake.lock b/flake.lock index e1126d009..611bee285 100644 --- a/flake.lock +++ b/flake.lock @@ -11,11 +11,11 @@ ] }, "locked": { - "lastModified": 1687870306, - "narHash": "sha256-IRbYRi6XhoHJMxEObuiqWxSwY+DaPXEHkdn9BuOvV6E=", + "lastModified": 1712097214, + "narHash": "sha256-lXu+tuvZw8WnbNHMHzCMeSE93fLQEhSz+xLWkaJ1cCA=", "owner": "grumnix", "repo": "SDL2-win32", - "rev": "31c1fc30c3e316c94b17e5090b4e6c21cab08830", + "rev": "123c65858c5259437469a06f20cec5944ea4bb4b", "type": "github" }, "original": { @@ -35,11 +35,11 @@ ] }, "locked": { - "lastModified": 1687870067, - "narHash": "sha256-aUK8BZkwXa7RCRwk/XGw7Rn0Gfr+1egHWRz1Fgn5ouM=", + "lastModified": 1712097214, + "narHash": "sha256-XOPvwQkey5ud2rz4f9WIuAya9uUk0oweBPfs/KmX3cA=", "owner": "grumnix", "repo": "SDL2_image-win32", - "rev": "17d77150985a63944c7bbb1133c5f8ab529077da", + "rev": "621836b1854237666d7f3ca9e1b55f000a1f3c8a", "type": "github" }, "original": { @@ -51,6 +51,7 @@ "SDL2_image_src": { "flake": false, "locked": { + "lastModified": 1561870399, "narHash": "sha256-GNKF/bhxZ9WxpNVqRQ3yFf/8yiQntLXOYnhn22Sy9k0=", "type": "tarball", "url": "https://www.libsdl.org/projects/SDL_image/release/SDL2_image-devel-2.0.5-mingw.tar.gz" @@ -63,6 +64,7 @@ "SDL2_src": { "flake": false, "locked": { + "lastModified": 1650910413, "narHash": "sha256-7F8KGZaY6R7tzv/+0gNNm1FvDyrY4Z4PPuzYu+3pvNM=", "type": "tarball", "url": "https://libsdl.org/release/SDL2-devel-2.0.22-mingw.tar.gz" @@ -104,11 +106,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1701680307, - "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -153,11 +155,11 @@ ] }, "locked": { - "lastModified": 1660923767, - "narHash": "sha256-diDVUqzXbGDS2OxNmkVQxKYeDlQAOcF3nNaMzaeCMAE=", + "lastModified": 1712097214, + "narHash": "sha256-4L8wi+A5eKevKcjxLMhXvvHpolUMAyaejjohJmPOSBE=", "owner": "grumnix", "repo": "libmodplug-win32", - "rev": "1f1e3c13c85ac605b58fddc556ff73b2b9e4eab3", + "rev": "34cd19009c09b43e1d9b7dea7e95142ff5a6d15e", "type": "github" }, "original": { @@ -169,6 +171,7 @@ "libmodplug_src": { "flake": false, "locked": { + "lastModified": 1493040202, "narHash": "sha256-jNHspgIcrv5AUEgq2MB4TSqbj//tTCXiOoSqYjShGkw=", "type": "tarball", "url": "https://downloads.sourceforge.net/project/modplug-xmms/libmodplug/0.8.9.0/libmodplug-0.8.9.0.tar.gz" @@ -191,11 +194,11 @@ ] }, "locked": { - "lastModified": 1660923789, - "narHash": "sha256-+DPxwLvI7MtJEeUUEn5xOHmZjttCuiJjZ+0bgxy3by0=", + "lastModified": 1712097214, + "narHash": "sha256-HulmNbgQfUNZ2t9O4cOFoV6F2+32/yu1bVUTOGnS8KI=", "owner": "grumnix", "repo": "libogg-win32", - "rev": "6cafd6a3608db0b47b8bcd3e8b0f1bda4c1f46f0", + "rev": "e70c934408e1ab5807319d7c4b01c53cd125cc52", "type": "github" }, "original": { @@ -207,6 +210,7 @@ "libogg_src": { "flake": false, "locked": { + "lastModified": 1622776889, "narHash": "sha256-L8hFWoCh2VTdlsOq+cbP1eYAnciH70xlk1eSwr8YP5c=", "type": "tarball", "url": "https://downloads.xiph.org/releases/ogg/libogg-1.3.5.tar.gz" @@ -233,11 +237,11 @@ ] }, "locked": { - "lastModified": 1660923805, - "narHash": "sha256-oI59MRrNeI7ueYG04VfHvBEXm1UeVudjyUfNWLNxdt8=", + "lastModified": 1712097405, + "narHash": "sha256-TZdtYh2HUHaczKRkbfq4EOaGLTG7fOk7JOy7K1vZqMo=", "owner": "grumnix", "repo": "libvorbis-win32", - "rev": "1aabf677f7ec7ec5f29be2651f05e7163c0b1f2e", + "rev": "44265a9a7cf3dd811b826eede62653ed211b69de", "type": "github" }, "original": { @@ -249,6 +253,7 @@ "libvorbis_src": { "flake": false, "locked": { + "lastModified": 1593843770, "narHash": "sha256-xXty8sK0hmJX7jQu5+CDBslNVQ0+dZaUrbp/12xVmy0=", "type": "tarball", "url": "https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.7.tar.xz" @@ -294,11 +299,11 @@ ] }, "locked": { - "lastModified": 1660923818, - "narHash": "sha256-BoxEFDJt0VbA1rZoYTjv1J+HF/aMZP4GcKa+5bhC3u4=", + "lastModified": 1712097214, + "narHash": "sha256-ek27HM5IArBSSkir/77SqPbn+RO6dbanfDNgS+4VA+s=", "owner": "grumnix", "repo": "mpg123-win32", - "rev": "81f61824b806555d2d7f4c2229b987a3b2238c26", + "rev": "af19bdda50f2397657b2f6f2cf486117bdd270fd", "type": "github" }, "original": { @@ -310,22 +315,23 @@ "mpg123_src": { "flake": false, "locked": { - "narHash": "sha256-df+AH4sCwVj89IRKBCseDR+93LY8RPuGo/F0KtULEys=", + "lastModified": 1679225440, + "narHash": "sha256-OGSGPiIZbcBhovnX+rMquDECVT0myZDpJFxMYQMK4TM=", "type": "tarball", - "url": "https://downloads.sourceforge.net/project/mpg123/mpg123/1.30.2/mpg123-1.30.2.tar.bz2" + "url": "https://downloads.sourceforge.net/project/mpg123/mpg123/1.31.3/mpg123-1.31.3.tar.bz2" }, "original": { "type": "tarball", - "url": "https://downloads.sourceforge.net/project/mpg123/mpg123/1.30.2/mpg123-1.30.2.tar.bz2" + "url": "https://downloads.sourceforge.net/project/mpg123/mpg123/1.31.3/mpg123-1.31.3.tar.bz2" } }, "nixpkgs": { "locked": { - "lastModified": 1701539137, - "narHash": "sha256-nVO/5QYpf1GwjvtpXhyxx5M3U/WN0MwBro4Lsk+9mL0=", + "lastModified": 1711668574, + "narHash": "sha256-u1dfs0ASQIEr1icTVrsKwg2xToIpn7ZXxW3RHfHxshg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "933d7dc155096e7575d207be6fb7792bc9f34f6d", + "rev": "219951b495fc2eac67b1456824cc1ec1fd2ee659", "type": "github" }, "original": { @@ -348,11 +354,11 @@ ] }, "locked": { - "lastModified": 1660923864, - "narHash": "sha256-aDhqX8rBQQ5vQG/8xFx0yQYYcpWoPuylnCdWrrsuwLA=", + "lastModified": 1712097214, + "narHash": "sha256-cuiOE7lCr25PVRgrRZ0nlT9e07oXDh20e/Tc4XoUNcs=", "owner": "grumnix", "repo": "openal-soft-win32", - "rev": "0bf5853f9484fb7352a906d895fc34c809687626", + "rev": "cf2d13dc31a9cbeafcd871287ed82d8c634f0348", "type": "github" }, "original": { @@ -391,11 +397,11 @@ ] }, "locked": { - "lastModified": 1660923895, - "narHash": "sha256-6y5gWCTzoSb0BGsK+If79hoxV/4TFKmQ39aRsz1QL0E=", + "lastModified": 1712096980, + "narHash": "sha256-v6i0z0A+PFAWbfoFTGcqbJ4d4HJ+ZxYeTxY5xOeQtKU=", "owner": "grumnix", "repo": "opus-win32", - "rev": "c2ee58f8908bcc677ed854c548d3f662293e1cac", + "rev": "ac173fe169c8d70083732493c4ca46dd9f591bba", "type": "github" }, "original": { @@ -407,6 +413,7 @@ "opus_src": { "flake": false, "locked": { + "lastModified": 1555106623, "narHash": "sha256-VyHmKoRXCJ0shVfUn6cX13b0fAXIQk0Z5NLZIfy8Gh4=", "type": "tarball", "url": "https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz" @@ -437,11 +444,11 @@ ] }, "locked": { - "lastModified": 1660923918, - "narHash": "sha256-WU3SUyEwufVFygaUEL2u4gfkovW1vc2ueHhhji1jRtQ=", + "lastModified": 1712097405, + "narHash": "sha256-TpxsAQGJsfNjCJwU3W9HoORXwjlGt5uhlv+YT68mgUU=", "owner": "grumnix", "repo": "opusfile-win32", - "rev": "7422707b6478d31e73450afa6e972fb106d346e1", + "rev": "1d2c63169e0799f8d17ce22cfbe3ee3dd43a513f", "type": "github" }, "original": { @@ -453,6 +460,7 @@ "opusfile_src": { "flake": false, "locked": { + "lastModified": 1593226173, "narHash": "sha256-UEoOyY9DM5lINTAHIfSRK5+o622pIK2ObQ00swIcM40=", "type": "tarball", "url": "https://downloads.xiph.org/releases/opus/opusfile-0.12.tar.gz" @@ -672,11 +680,11 @@ ] }, "locked": { - "lastModified": 1684951755, - "narHash": "sha256-j7+CF3IkffPTz07Vkyw4lZ2622BDq3W1ZLxjWNr2fQU=", + "lastModified": 1712097579, + "narHash": "sha256-/eWmYCltmYeXHtO460modOIM6d352TNfXU7fR/Srwog=", "owner": "WindstilleTeam", "repo": "wstsound", - "rev": "02175efb729fd95a8e8fa4432e186c37171b5c75", + "rev": "e07830cb623a7f241dfb1265fb2b0e0c4d982211", "type": "github" }, "original": { From c0a141ff47e858dd130ad365e88a239ebb89006e Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Sun, 26 May 2024 16:00:41 +0200 Subject: [PATCH 18/20] Fix missing include --- src/util/pathname.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/util/pathname.hpp b/src/util/pathname.hpp index 544e1bfce..496cb0a28 100644 --- a/src/util/pathname.hpp +++ b/src/util/pathname.hpp @@ -17,6 +17,7 @@ #ifndef HEADER_PINGUS_UTIL_PATHNAME_HPP #define HEADER_PINGUS_UTIL_PATHNAME_HPP +#include #include #include #include From 8c68e08b0b9530b0078a6e2972786f7accf0d0e6 Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Sun, 26 May 2024 16:01:49 +0200 Subject: [PATCH 19/20] Update to nixos-24.05 --- flake.lock | 92 +++++++++++++++++++++++++++--------------------------- flake.nix | 4 +-- 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/flake.lock b/flake.lock index 611bee285..fc88bebaf 100644 --- a/flake.lock +++ b/flake.lock @@ -129,11 +129,11 @@ ] }, "locked": { - "lastModified": 1685394246, - "narHash": "sha256-PRm9LTpN2eKVcl1jMSBOPL/KAHtNOWEbt32JSxNHJDQ=", + "lastModified": 1716729078, + "narHash": "sha256-c5CIQTRS8qmlTdZ2D1hNnht3gD9snuQaqOWDiLAkE2g=", "owner": "grumbel", "repo": "geomcpp", - "rev": "6fd6402a02275e8f2ac250a84900843e56aaf04e", + "rev": "730b3d35bc4fcd5f68764239682d936bae192811", "type": "github" }, "original": { @@ -194,11 +194,11 @@ ] }, "locked": { - "lastModified": 1712097214, - "narHash": "sha256-HulmNbgQfUNZ2t9O4cOFoV6F2+32/yu1bVUTOGnS8KI=", + "lastModified": 1716728441, + "narHash": "sha256-HjPNH3gJisG7+keqmWh2SsRRKn/+0yeLloaow78RpFU=", "owner": "grumnix", "repo": "libogg-win32", - "rev": "e70c934408e1ab5807319d7c4b01c53cd125cc52", + "rev": "7ac1ded6d96c3924a0a7905b75af2af3ea0dfaa3", "type": "github" }, "original": { @@ -237,11 +237,11 @@ ] }, "locked": { - "lastModified": 1712097405, - "narHash": "sha256-TZdtYh2HUHaczKRkbfq4EOaGLTG7fOk7JOy7K1vZqMo=", + "lastModified": 1716728493, + "narHash": "sha256-Ooh0dv6uRegUdvbVovgmctj0oxhp9tQh56ZyCYVouNE=", "owner": "grumnix", "repo": "libvorbis-win32", - "rev": "44265a9a7cf3dd811b826eede62653ed211b69de", + "rev": "c7fc737798ad8eec2e8d0899d603fbe0cb2e9455", "type": "github" }, "original": { @@ -273,11 +273,11 @@ ] }, "locked": { - "lastModified": 1701699800, - "narHash": "sha256-Vju/twhkSbuRbwtHq5sdH6P/JIMZesqpZCRwpOv0Ey8=", + "lastModified": 1716728859, + "narHash": "sha256-RgyLWkRBOCvuCmyvfG0WSDH6PzTEuE36RKcIrgef7eA=", "owner": "logmich", "repo": "logmich", - "rev": "8a20ecdefe3bd0d7d1733acf5ec7c9c4a7a48484", + "rev": "0cc475efc10c6786d1d805c997fab1d7da60252a", "type": "github" }, "original": { @@ -299,11 +299,11 @@ ] }, "locked": { - "lastModified": 1712097214, - "narHash": "sha256-ek27HM5IArBSSkir/77SqPbn+RO6dbanfDNgS+4VA+s=", + "lastModified": 1716728685, + "narHash": "sha256-+oyZIT88pcIuWUW1jw69KpxEjvqU1QDtF3VV6hiTVAo=", "owner": "grumnix", "repo": "mpg123-win32", - "rev": "af19bdda50f2397657b2f6f2cf486117bdd270fd", + "rev": "aead750a3614f02601f7e81f67751b9f64eeab07", "type": "github" }, "original": { @@ -327,16 +327,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1711668574, - "narHash": "sha256-u1dfs0ASQIEr1icTVrsKwg2xToIpn7ZXxW3RHfHxshg=", + "lastModified": 1716542732, + "narHash": "sha256-0Y9fRr0CUqWT4KgBITmaGwlnNIGMYuydu2L8iLTfHU4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "219951b495fc2eac67b1456824cc1ec1fd2ee659", + "rev": "d12251ef6e8e6a46e05689eeccd595bdbd3c9e60", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-23.11", + "ref": "nixos-24.05", "repo": "nixpkgs", "type": "github" } @@ -397,11 +397,11 @@ ] }, "locked": { - "lastModified": 1712096980, - "narHash": "sha256-v6i0z0A+PFAWbfoFTGcqbJ4d4HJ+ZxYeTxY5xOeQtKU=", + "lastModified": 1716728603, + "narHash": "sha256-3+GUby3dHbQPdsBiGQlQ9XgNyZe1hORqbQpGUCzFm1E=", "owner": "grumnix", "repo": "opus-win32", - "rev": "ac173fe169c8d70083732493c4ca46dd9f591bba", + "rev": "4530cd6280b2c239d8df717943fa0f63b1a3a650", "type": "github" }, "original": { @@ -444,11 +444,11 @@ ] }, "locked": { - "lastModified": 1712097405, - "narHash": "sha256-TpxsAQGJsfNjCJwU3W9HoORXwjlGt5uhlv+YT68mgUU=", + "lastModified": 1716728646, + "narHash": "sha256-pCL8yrYE3EppKKrv8ORuCaWepm6eYmsYj3I1WoIxWDQ=", "owner": "grumnix", "repo": "opusfile-win32", - "rev": "1d2c63169e0799f8d17ce22cfbe3ee3dd43a513f", + "rev": "c19b24efe82fd596016d7805e9206466c0b5744e", "type": "github" }, "original": { @@ -487,11 +487,11 @@ ] }, "locked": { - "lastModified": 1701699950, - "narHash": "sha256-m7JA+J0zKm0C7V/iUK4m9YgG7qWJhYzgWo6+laZhnk0=", + "lastModified": 1716729881, + "narHash": "sha256-49nt9ehd6YJPKjQaqfJoiiriLge6ui0RuJI+YXt/j5A=", "owner": "grumbel", "repo": "priocpp", - "rev": "90944b1ed6c2f941adbba5e2e604ba06949b3854", + "rev": "214a0ff789d5c58e76d870fe2e75f98857991855", "type": "github" }, "original": { @@ -534,11 +534,11 @@ ] }, "locked": { - "lastModified": 1701699901, - "narHash": "sha256-hN84QetcLLOFuU+hnaTZwGeAQ0lBRdLIJkNAH0ulZZA=", + "lastModified": 1716729616, + "narHash": "sha256-P9NQI/H7zR2SGBghL7XsV4WM5e+yI1XNojLOuM7g5Fc=", "owner": "lispparser", "repo": "sexp-cpp", - "rev": "8be22d81cdb18cc3c14d29231978abe13a539792", + "rev": "4d8096c223d2f469ca6e407e793d20980f6aba76", "type": "github" }, "original": { @@ -557,11 +557,11 @@ ] }, "locked": { - "lastModified": 1685394354, - "narHash": "sha256-MWrcllCoMyvb/kXoYInDYW6GGqTcgUHjQ4IU0yiHdoc=", + "lastModified": 1716730715, + "narHash": "sha256-RwTHHC1S2rFnvkeF5SzvQtqCUpfOCLY/VeuUNjAmZFQ=", "owner": "grumbel", "repo": "strutcpp", - "rev": "7bf070c08e4234cd51426b6f319fa474692f9ef4", + "rev": "108ac9bb4993d661187ac7add0863abc7ff2531f", "type": "github" }, "original": { @@ -621,11 +621,11 @@ ] }, "locked": { - "lastModified": 1684962355, - "narHash": "sha256-O5qj9N5XmzjaBs83gfGmFQe+lvWms3HBrlVz7S8U1rw=", + "lastModified": 1716730780, + "narHash": "sha256-sUm+Eet95i1JIRaUote7vvf8eS+QY7Vo9rSjNZnS4mM=", "owner": "tinygettext", "repo": "tinygettext", - "rev": "eb077671ef7849e3d7884cbb1544ce195ab269d9", + "rev": "2e25c91ddb6c180928a6a29d7091f0bdfe5a81bd", "type": "github" }, "original": { @@ -647,11 +647,11 @@ ] }, "locked": { - "lastModified": 1660505521, - "narHash": "sha256-ySgrHgwQO5itI1JgLtFMULPhYNipOYrGd/ECtxFbWO8=", + "lastModified": 1716730030, + "narHash": "sha256-xD2Ecs9hW3lcQW6RNcjVhGX/eor2RbCHHXohTafC9y0=", "owner": "grumbel", "repo": "uitest", - "rev": "c436b1b990a94d2d989966013e602fd8a621e43d", + "rev": "d845427140cbcbce99bb6c72919199ac5f033784", "type": "github" }, "original": { @@ -680,11 +680,11 @@ ] }, "locked": { - "lastModified": 1712097579, - "narHash": "sha256-/eWmYCltmYeXHtO460modOIM6d352TNfXU7fR/Srwog=", + "lastModified": 1716728751, + "narHash": "sha256-YUEYUNb8eiQI1KeI0x7NigxZJ0eM7teienylpE19Zw0=", "owner": "WindstilleTeam", "repo": "wstsound", - "rev": "e07830cb623a7f241dfb1265fb2b0e0c4d982211", + "rev": "289cae8dd2b1e75c447b063a6a4299bf139d4249", "type": "github" }, "original": { @@ -703,11 +703,11 @@ ] }, "locked": { - "lastModified": 1685020673, - "narHash": "sha256-bH8Xu2KZxASEJKLysuoYu77xVWXVRVWFAIA0KNEwjjE=", + "lastModified": 1716727866, + "narHash": "sha256-eujYRUw8UpDFgEvjHUPsJ/QJN+A+hzcebfgteM9kvXM=", "owner": "grumbel", "repo": "xdgcpp", - "rev": "7776bc77ad59a8e9b3ea7a30e87bcc7fa7efc31e", + "rev": "e2c40c081e2ee2d315d1d0b3ae5981d5fd77260e", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 7f6669727..691530033 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,7 @@ description = "A free Lemmings clone with penguins"; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; + nixpkgs.url = "github:NixOS/nixpkgs?ref=nixos-24.05"; flake-utils.url = "github:numtide/flake-utils"; tinycmmc.url = "github:grumbel/tinycmmc"; @@ -71,7 +71,7 @@ pingus = pkgs.callPackage ./pingus.nix { inherit self; - stdenv = pkgs.gcc12Stdenv; + stdenv = pkgs.stdenv; argpp = argpp.packages.${pkgs.system}.default; geomcpp = geomcpp.packages.${pkgs.system}.default; From 2e1479ca88ec46d632c9fdea9db9e022f58cff00 Mon Sep 17 00:00:00 2001 From: ThatGuyMrZero <147659662+ThatGuyMrZero@users.noreply.github.com> Date: Wed, 25 Sep 2024 17:35:17 -0400 Subject: [PATCH 20/20] Update README.md Updated the README to include information about the primary features of the games, included a table of contents, rephrased the introduction, added more details to the installation, added a game controls section and finally included a section to encourage more people to contribute :) --- README.md | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 95 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a1c141329..de9183c3d 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,72 @@ Pingus ====== +Guide your penguins to safety! Introduction ------------ -Pingus is a free Lemmings™ clone for GNU/Linux, Win32 and other -operating systems supported by SDL2. It is licensed under the GPLv3+. +Pingus is a free, open-source puzzle game inspired by the classic Lemmings™ clone. It is available for GNU/Linux, Win32 and other +operating systems supported by SDL2. Pingus Challenges you to guide a group of penguins through various obstacles to reach the exit safely. The game features engaging graphics, a variety of levels, and a built in level editor for endless possibilities and fun. It is licensed under the GPLv3+. Information about the game, new versions and additional documentation can be found at the Pingus webpage: * https://pingus.github.io/ +Table of Contents +------------- + + Features + Installation + Linux + Windows + macOS + Building + Launching the Game + Game Controls + Community + Mailing Lists + Chat + Bug Reports + Contributing + License + +Features +-------- + + * Over 100 Challenging Levels: Navigate through a variety of levels with increasing difficulty. + * Level Editor: Create your own levels and share them with the community. + * Engaging Graphics: Enjoy cute and colorful graphics that bring the game to life. + * Sound Effects and Music: Immerse yourself in the game with delightful audio. + * Multilingual Support: Available in multiple languages. + * Cross-Platform: Play on Linux, Windows, and other systems supported by SDL2. + +Installation +-------- +Linux) +Pingus can be installed on Linux using the Nix package manager: + nix run github:pingus/pingus + +Alternatively, Pingus may be available in your distribution's repositories: + +Ubuntu/Debian: + sudo apt-get install pingus + +Fedora: + sudo dnf install pingus + +Arch Linux: + sudo pacman -S pingus + +Windows) + +Download the latest Windows installer from the Pingus Releases page or compile it on Linux using: + nix build github:pingus/pingus#packages.i686-windows.pingus-win32 + +macOS) + +Currently, Pingus does not have an official macOS installer. You can compile it from source using the instructions below. + Building -------- @@ -26,6 +81,35 @@ The Windows version can be compiled in Linux with: nix build github:pingus/pingus#packages.i686-windows.pingus-win32 +Launching the Game +----------- +After installation or building from source, you can launch Pingus from your application menu or by running the following command in the terminal: + pingus + +If you used Nix to run the game: + nix run github:pingus/pingus + +Game Controls +---------- +Action Key +Move cursor Mouse +Select/Deselect Left Mouse Button +Assign Action Left Mouse Button on penguin +Pause/Unpause Game P +Speed Up Game + (Plus key) +Slow Down Game - (Minus key) +Open In-Game Menu Esc +Move Map Move mouse to screen edge or use Arrow Keys +Zoom In Page Up +Zoom Out Page Down +Toggle Fullscreen F +Restart Level R +Exit Level E +Display Help H +Quit Game Ctrl + Q + +Can Change game controls in the settings menu. + Mailing Lists ------------- @@ -51,3 +135,12 @@ issue tracker at: * https://github.com/pingus/pingus/issues + +Contributing +-------- + +Contributions are welcome! Whether it's reporting bugs, creating levels, improving documentation, or contributing code, your help is appreciated. + + * Code Contributions: Fork the repository, make your changes, and submit a pull request. + * Level Creation: Use the built-in level editor and share your levels with the community. + * Translations: Help translate Pingus into other languages.