@@ -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 \
@@ -873,6 +873,79 @@ (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
+ (list #:tests? #f ;No tests.
+ #:configure-flags #~(list "-DNAME_PREFIX=sgt-")
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'set-xdg-open-path
+ (lambda _
+ (substitute* "gtk.c"
+ (("(#define HELP_BROWSER_PATH ).+" all define)
+ (string-append define "\""
+ #$(this-package-input
+ "xdg-utils")
+ "/bin/xdg-open\"\n"))))))))
+ (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:
+@itemize
+@item Black Box, ball-finding puzzle
+@item Bridges, bridge-placing puzzle
+@item Cube, rolling cube puzzle
+@item Dominosa, domino tiling puzzle
+@item Fifteen, sliding block puzzle
+@item Filling, polyomino puzzle
+@item Flip, tile inversion puzzle
+@item Galaxies, symmetric polyomino puzzle
+@item Guess, combination-guessing puzzle
+@item Inertia, gem-collecting puzzle
+@item Keen, arithmetic Latin square puzzle
+@item Light Up, light-bulb placing puzzle
+@item Loopy, loop-drawing puzzle
+@item Magnets, magnet-placing puzzle
+@item Map, map-colouring puzzle
+@item Mines, mine-finding puzzle
+@item Net, network jigsaw puzzle
+@item Netslide, toroidal sliding network puzzle
+@item Pattern
+@item Pearl, loop-drawing puzzle
+@item Pegs, peg solitaire puzzle
+@item Range, visible-distance puzzle
+@item Rectangles
+@item Same Game, block-clearing puzzle
+@item Signpost, square-connecting puzzle
+@item Singles, number-removing puzzle
+@item Sixteen, toroidal sliding block puzzle
+@item Slant, maze-drawing puzzle
+@item Solo, number placement puzzle
+@item Tents, tent-placing puzzle
+@item Towers, tower-placing Latin square puzzle
+@item Twiddle, rotational sliding block puzzle
+@item Undead, monster-placing puzzle
+@item Unequal, Latin square puzzle
+@item Unruly, black and white grid puzzle
+@item Untangle, planar graph layout puzzle
+@end itemize")
+ (license license:expat)))
(define-public bzflag
(package
new file mode 100644
@@ -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