diff mbox series

[bug#62228,2/2] gnu: Add sgt-puzzles.

Message ID 20230316212510.6281-1-sarg@sarg.org.ru
State New
Headers show
Series gnu: Add sgt-puzzles | expand

Commit Message

Sergey Trofimov March 16, 2023, 9:25 p.m. UTC
* gnu/packages/games.scm (sgt-puzzles): New variable.
* gnu/packages/patches/sgt-puzzles-install-two-icon-sizes.patch: New file.
* gnu/local.mk: Add it.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/games.scm                        | 68 +++++++++++++++++++
 .../sgt-puzzles-install-two-icon-sizes.patch  | 35 ++++++++++
 3 files changed, 104 insertions(+)
 create mode 100644 gnu/packages/patches/sgt-puzzles-install-two-icon-sizes.patch

Comments

Bruno Victal March 17, 2023, 3:05 a.m. UTC | #1
Hi,

On 2023-03-16 21:25, Sergey Trofimov wrote:
> +    (arguments
> +     `(#:tests? #f                      ; No tests.
> +       #:configure-flags '("-DNAME_PREFIX=sgt-")
> +       #:phases (modify-phases %standard-phases
> +                  (add-after 'unpack 'set-xdg-open-path
> +                    (lambda* (#:key inputs #:allow-other-keys)
> +                      (substitute* "gtk.c"
> +                        (("(#define HELP_BROWSER_PATH ).+" all define)
> +                         (string-append define "\""
> +                          (search-input-file inputs "/bin/xdg-open") "\"" "\n")))
> +                      #t)))))

Use G-Expressions here.
You can drop the trailing #t as well.


> +    (home-page "https://www.chiark.greenend.org.uk/~sgtatham/puzzles/")
> +    (synopsis "Simon Tatham's portable puzzle collection")
> +    (description "Simon Tatham's Portable Puzzle Collection contains a number of
> +popular puzzle games for one player.  It currently consists of these games:
> + * Black Box, ball-finding puzzle
> + * Bridges, bridge-placing puzzle
> + * Cube, rolling cube puzzle
> + * Dominosa, domino tiling puzzle
> + * Fifteen, sliding block puzzle
> + * Filling, polyomino puzzle
> + * Flip, tile inversion puzzle
> + * Galaxies, symmetric polyomino puzzle
> + * Guess, combination-guessing puzzle
> + * Inertia, gem-collecting puzzle
> + * Keen, arithmetic Latin square puzzle
> + * Light Up, light-bulb placing puzzle
> + * Loopy, loop-drawing puzzle
> + * Magnets, magnet-placing puzzle
> + * Map, map-colouring puzzle
> + * Mines, mine-finding puzzle
> + * Net, network jigsaw puzzle
> + * Netslide, toroidal sliding network puzzle
> + * Pattern
> + * Pearl, loop-drawing puzzle
> + * Pegs, peg solitaire puzzle
> + * Range, visible-distance puzzle
> + * Rectangles
> + * Same Game, block-clearing puzzle
> + * Signpost, square-connecting puzzle
> + * Singles, number-removing puzzle
> + * Sixteen, toroidal sliding block puzzle
> + * Slant, maze-drawing puzzle
> + * Solo, number placement puzzle
> + * Tents, tent-placing puzzle
> + * Towers, tower-placing Latin square puzzle
> + * Twiddle, rotational sliding block puzzle
> + * Undead, monster-placing puzzle
> + * Unequal, Latin square puzzle
> + * Unruly, black and white grid puzzle
> + * Untangle, planar graph layout puzzle")

Format with @itemize here:
@itemize
@item Black Box, ball-finding puzzle
...
@end itemize


Cheers,
Bruno
diff mbox series

Patch

diff --git a/gnu/local.mk b/gnu/local.mk
index e96dceb4d5..7da0446e22 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1843,6 +1843,7 @@  dist_patch_DATA =						\
   %D%/packages/patches/scons-test-environment.patch		\
   %D%/packages/patches/screen-hurd-path-max.patch		\
   %D%/packages/patches/scsh-nonstring-search-path.patch	\
+  %D%/packages/patches/sgt-puzzles-install-two-icon-sizes.patch	\
   %D%/packages/patches/sdl-libx11-1.6.patch			\
   %D%/packages/patches/seed-webkit.patch			\
   %D%/packages/patches/sendgmail-accept-ignored-gsuite-flag.patch	\
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 31523777bd..31dfd86379 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -873,6 +873,74 @@  (define-public bsd-games
               ;; phantasia (all but phantasia/pathnames.h.in, which is bsd-3)
               (license:fsf-free "file:///phantasia/COPYRIGHT")))))
 
+(define-public sgt-puzzles
+  (package
+    (name "sgt-puzzles")
+    (version "20230313.adf2a09")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-"
+             version ".tar.gz"))
+       (sha256
+        (base32 "0205wrshf2y27fzaqxv4gfpgmnlj4klwjcadwjrzjx7fkkzlr51j"))
+       (patches (search-patches "sgt-puzzles-install-two-icon-sizes.patch"))))
+    (build-system cmake-build-system)
+    (inputs (list gtk+ xdg-utils))
+    (native-inputs (list pkg-config perl imagemagick halibut))
+    (arguments
+     `(#:tests? #f                      ; No tests.
+       #:configure-flags '("-DNAME_PREFIX=sgt-")
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'set-xdg-open-path
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (substitute* "gtk.c"
+                        (("(#define HELP_BROWSER_PATH ).+" all define)
+                         (string-append define "\""
+                          (search-input-file inputs "/bin/xdg-open") "\"" "\n")))
+                      #t)))))
+    (home-page "https://www.chiark.greenend.org.uk/~sgtatham/puzzles/")
+    (synopsis "Simon Tatham's portable puzzle collection")
+    (description "Simon Tatham's Portable Puzzle Collection contains a number of
+popular puzzle games for one player.  It currently consists of these games:
+ * Black Box, ball-finding puzzle
+ * Bridges, bridge-placing puzzle
+ * Cube, rolling cube puzzle
+ * Dominosa, domino tiling puzzle
+ * Fifteen, sliding block puzzle
+ * Filling, polyomino puzzle
+ * Flip, tile inversion puzzle
+ * Galaxies, symmetric polyomino puzzle
+ * Guess, combination-guessing puzzle
+ * Inertia, gem-collecting puzzle
+ * Keen, arithmetic Latin square puzzle
+ * Light Up, light-bulb placing puzzle
+ * Loopy, loop-drawing puzzle
+ * Magnets, magnet-placing puzzle
+ * Map, map-colouring puzzle
+ * Mines, mine-finding puzzle
+ * Net, network jigsaw puzzle
+ * Netslide, toroidal sliding network puzzle
+ * Pattern
+ * Pearl, loop-drawing puzzle
+ * Pegs, peg solitaire puzzle
+ * Range, visible-distance puzzle
+ * Rectangles
+ * Same Game, block-clearing puzzle
+ * Signpost, square-connecting puzzle
+ * Singles, number-removing puzzle
+ * Sixteen, toroidal sliding block puzzle
+ * Slant, maze-drawing puzzle
+ * Solo, number placement puzzle
+ * Tents, tent-placing puzzle
+ * Towers, tower-placing Latin square puzzle
+ * Twiddle, rotational sliding block puzzle
+ * Undead, monster-placing puzzle
+ * Unequal, Latin square puzzle
+ * Unruly, black and white grid puzzle
+ * Untangle, planar graph layout puzzle")
+    (license license:expat)))
 
 (define-public bzflag
   (package
diff --git a/gnu/packages/patches/sgt-puzzles-install-two-icon-sizes.patch b/gnu/packages/patches/sgt-puzzles-install-two-icon-sizes.patch
new file mode 100644
index 0000000000..3bacd2120c
--- /dev/null
+++ b/gnu/packages/patches/sgt-puzzles-install-two-icon-sizes.patch
@@ -0,0 +1,35 @@ 
+From: Ben Hutchings <benh@debian.org>
+Date: Sun, 22 Jan 2023 22:58:43 +0100
+Subject: Install both 48x48 and 96x96 icons
+Bug-Debian: https://bugs.debian.org/887982
+
+gnome-shell prefers to use 96x96 icons, so install them as well as the
+48x48 icons.  Install them in size-specific directories instead of
+using suffixes to the filename, and change the desktop files
+accordingly.
+
+---
+--- a/cmake/platforms/unix.cmake
++++ b/cmake/platforms/unix.cmake
+@@ -107,7 +107,9 @@ function(set_platform_puzzle_target_prop
+     endif()
+     configure_file(${CMAKE_SOURCE_DIR}/puzzle.desktop.in ${binary_name}.desktop)
+     install(FILES ${CMAKE_CURRENT_BINARY_DIR}/icons/${NAME}-48d24.png
+-      DESTINATION share/pixmaps OPTIONAL RENAME ${binary_name}-48d24.png)
++      DESTINATION share/icons/hicolor/48x48/apps OPTIONAL RENAME ${binary_name}.png)
++    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/icons/${NAME}-96d24.png
++      DESTINATION share/icons/hicolor/96x96/apps OPTIONAL RENAME ${binary_name}.png)
+     install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${binary_name}.desktop
+       DESTINATION share/applications)
+   endif()
+--- a/puzzle.desktop.in
++++ b/puzzle.desktop.in
+@@ -4,7 +4,7 @@ Type=Application
+ Name=${displayname}
+ Comment=${description}
+ Exec=${binary_name}
+-Icon=${binary_name}-48d24
++Icon=${binary_name}
+ StartupNotify=false
+ Categories=Game;LogicGame;
+ Terminal=false