[PATCH 0/2] gnu: Add sgt-puzzles

  • Open
  • quality assurance status badge
Details
4 participants
  • Liliana Marie Prikler
  • Liliana Marie Prikler
  • Bruno Victal
  • Sergey Trofimov
Owner
unassigned
Submitted by
Sergey Trofimov
Severity
normal
S
S
Sergey Trofimov wrote on 16 Mar 22:19 +0100
(address . guix-patches@gnu.org)(name . Sergey Trofimov)(address . sarg@sarg.org.ru)
20230316211925.5145-1-sarg@sarg.org.ru
Hi there, the beloved sgt-puzzles are missing in guix. Time to fix that.
Patch series follows.

Sergey Trofimov (2):
gnu: Add halibut.
gnu: Add sgt-puzzles.

gnu/local.mk | 1 +
gnu/packages/documentation.scm | 44 +++++++++---
gnu/packages/games.scm | 68 +++++++++++++++++++
.../sgt-puzzles-install-two-icon-sizes.patch | 35 ++++++++++
4 files changed, 139 insertions(+), 9 deletions(-)
create mode 100644 gnu/packages/patches/sgt-puzzles-install-two-icon-sizes.patch

--
2.39.2
S
S
Sergey Trofimov wrote on 16 Mar 22:24 +0100
[PATCH 1/2] gnu: Add halibut.
(address . 62228@debbugs.gnu.org)(name . Sergey Trofimov)(address . sarg@sarg.org.ru)
20230316212458.6187-1-sarg@sarg.org.ru
* gnu/packages/documentation.scm (halibut): New variable.
---
gnu/packages/documentation.scm | 44 +++++++++++++++++++++++++++-------
1 file changed, 35 insertions(+), 9 deletions(-)

Toggle diff (110 lines)
diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
index a372e1a6ca..ed9851cc5f 100644
--- a/gnu/packages/documentation.scm
+++ b/gnu/packages/documentation.scm
@@ -29,7 +29,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages documentation)
- #:use-module (guix licenses)
+ #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix gexp)
@@ -102,7 +102,7 @@ (define-public latex2html
(description "LaTeX2HTML is a utility that converts LaTeX documents to web
pages in HTML.")
(home-page "https://www.latex2html.org/")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public asciidoc
(package
@@ -178,7 +178,7 @@ (define-public asciidoc
AsciiDoc is highly configurable: both the AsciiDoc source file syntax and
the backend output markups (which can be almost any type of SGML/XML
markup) can be customized and extended by the user.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-deprecated asciidoc-py3 asciidoc)
@@ -233,7 +233,33 @@ (define-public doxygen
programming languages such as C, Objective-C, C#, PHP, Java, Python,
IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl,
and to some extent D.")
- (license gpl3+)))
+ (license license:gpl3+)))
+
+(define-public halibut
+ (package
+ (name "halibut")
+ (version "1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.chiark.greenend.org.uk/~sgtatham/halibut/halibut-"
+ version "/halibut-" version ".tar.gz"))
+ (sha256
+ (base32 "0ciikn878vivs4ayvwvr63nnhpcg12m8023xv514zxqpdxlzg85a"))))
+ (build-system cmake-build-system)
+ (native-inputs (list pkg-config perl))
+ (arguments
+ '(#:tests? #f)) ; No tests.
+ (home-page "https://www.chiark.greenend.org.uk/~sgtatham/halibut/")
+ (synopsis "Documentation production system for software manuals")
+ (description "This is yet another text formatting system, intended primarily for
+writing software documentation. It accepts a single source format and outputs any or
+all of text, HTML, Windows Help, man pages, GNU info, PostScript, or PDF. It has
+comprehensive indexing and cross-referencing support, and generates hyperlinks within
+output documents wherever possible. It supports Unicode, with the ability to fall
+back to an alternative representation when Unicode output is not available.")
+ (license license:expat)))
(define-public doc++
(package
@@ -258,7 +284,7 @@ (define-public doc++
generate both TeX output for high-quality hardcopies or HTML output for online
browsing. The documentation is extracted directly from the C/C++/IDL source
or Java class files.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public pod2pdf
(package
@@ -284,7 +310,7 @@ (define-public pod2pdf
Documentation} format to PDF files. It also supports some extensions to the POD
format, and supports the file types JPG, GIF, TIFF, PNG, and PNM for embedded
objects.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public python-docrepr
(package
@@ -335,7 +361,7 @@ (define-public python-docrepr
(description "Docrepr renders Python docstrings to HTML with Sphinx. It
can generate rich and plain representations of docstrings, alongside
additional metadata about the object to which the docstring belongs.")
- (license bsd-3)))
+ (license license:bsd-3)))
(define-public scrollkeeper
(package
@@ -368,7 +394,7 @@ (define-public scrollkeeper
provides a simple API to allow help browsers to find, sort, and search the
document catalog. It will also be able to communicate with catalog servers on
the Net to search for documents which are not on the local system.")
- (license lgpl2.1+)))
+ (license license:lgpl2.1+)))
(define-public zeal
(let ((commit "d3c5521c501d24050f578348ff1b9d68244b992c")
@@ -416,4 +442,4 @@ (define-public zeal
(synopsis "Offline documentation browser inspired by Dash")
(description "Zeal is a simple offline documentation browser
inspired by Dash.")
- (license gpl3+))))
+ (license license:gpl3+))))
--
2.39.2
S
S
Sergey Trofimov wrote on 16 Mar 22:25 +0100
[PATCH 2/2] gnu: Add sgt-puzzles.
(address . 62228@debbugs.gnu.org)(name . Sergey Trofimov)(address . sarg@sarg.org.ru)
20230316212510.6281-1-sarg@sarg.org.ru
* 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

Toggle diff (134 lines)
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
--
2.39.2
S
S
Sergey Trofimov wrote on 16 Mar 22:46 +0100
[PATCH] gnu: Add sgt-puzzles
(address . 62228@debbugs.gnu.org)
875yb0v05x.fsf@sarg.org.ru
Adding games team to CC.
B
B
Bruno Victal wrote on 17 Mar 04:05 +0100
Re: [bug#62228] [PATCH 2/2] gnu: Add sgt-puzzles.
(name . Sergey Trofimov)(address . sarg@sarg.org.ru)(address . 62228@debbugs.gnu.org)
dad23924-42cd-286c-e1ae-bed8b281157a@makinata.eu
Hi,

On 2023-03-16 21:25, Sergey Trofimov wrote:
Toggle quote (12 lines)
> + (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.


Toggle quote (41 lines)
> + (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
S
S
Sergey Trofimov wrote on 17 Mar 08:40 +0100
[PATCH v1] gnu: Add sgt-puzzles.
(address . 62228@debbugs.gnu.org)(name . Sergey Trofimov)(address . sarg@sarg.org.ru)
20230317074018.3525-1-sarg@sarg.org.ru
* 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 | 73 +++++++++++++++++++
.../sgt-puzzles-install-two-icon-sizes.patch | 35 +++++++++
3 files changed, 109 insertions(+)
create mode 100644 gnu/packages/patches/sgt-puzzles-install-two-icon-sizes.patch

Toggle diff (139 lines)
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..9ab9bc1db0 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -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
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
--
2.39.2
L
L
Liliana Marie Prikler wrote on 17 Mar 08:50 +0100
Re: [PATCH 1/2] gnu: Add halibut.
(name . Bruno Victal)(address . mirai@makinata.eu)
b7e8791599f19e3bcc527142c611fefc6acb1108.camel@ist.tugraz.at
Am Donnerstag, dem 16.03.2023 um 22:24 +0100 schrieb Sergey Trofimov:
Toggle quote (1 lines)
> * gnu/packages/documentation.scm (halibut): New variable.
Split the cosmetic changes (prefixing guix licenses with license:) and
functional (adding halibut) changes into two: First the prefixing, then
adding halibut.

Toggle quote (18 lines)
> +(define-public halibut
> +  (package
> +    (name "halibut")
> +    (version "1.3")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append
> +            
> "https://www.chiark.greenend.org.uk/~sgtatham/halibut/halibut-"
> +             version "/halibut-" version ".tar.gz"))
> +       (sha256
> +        (base32
> "0ciikn878vivs4ayvwvr63nnhpcg12m8023xv514zxqpdxlzg85a"))))
> +    (build-system cmake-build-system)
> +    (native-inputs (list pkg-config perl))
> +    (arguments
> +     '(#:tests? #f)) ; No tests.
Normally, arguments come after build-system and before any inputs.
Toggle quote (6 lines)
> +    (home-page
> "https://www.chiark.greenend.org.uk/~sgtatham/halibut/")
> +    (synopsis "Documentation production system for software
> manuals")
> +    (description "This is yet another text formatting system,
> intended primarily for
Use "Halibut" instead of "this". "yet another" is a little
superfluous.
Toggle quote (4 lines)
> +writing software documentation.  It accepts a single source format
> and outputs any or
> +all of text, HTML, Windows Help, man pages, GNU info, PostScript, or
> PDF.  
any or all of => any combination of
text => plain text,
Windows Help => delete, we don't advocate unfree software here
man pages, GNU info => Unix man or info pages
I'd also add the word "document" to plain text, HTML, PostScript and
PDF. Feel free to regroup them.


Cheers
S
S
Sergey Trofimov wrote on 17 Mar 09:29 +0100
[PATCH v2 1/3] gnu: Prefix licenses in documentation.scm
(address . 62228@debbugs.gnu.org)(name . Sergey Trofimov)(address . sarg@sarg.org.ru)
20230317082910.25037-1-sarg@sarg.org.ru
* gnu/packages/documentation.scm: Prefix licenses.
---
gnu/packages/documentation.scm | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)

Toggle diff (84 lines)
diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
index a372e1a6ca..3a6e9b10fb 100644
--- a/gnu/packages/documentation.scm
+++ b/gnu/packages/documentation.scm
@@ -29,7 +29,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages documentation)
- #:use-module (guix licenses)
+ #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix gexp)
@@ -102,7 +102,7 @@ (define-public latex2html
(description "LaTeX2HTML is a utility that converts LaTeX documents to web
pages in HTML.")
(home-page "https://www.latex2html.org/")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public asciidoc
(package
@@ -178,7 +178,7 @@ (define-public asciidoc
AsciiDoc is highly configurable: both the AsciiDoc source file syntax and
the backend output markups (which can be almost any type of SGML/XML
markup) can be customized and extended by the user.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-deprecated asciidoc-py3 asciidoc)
@@ -233,7 +233,7 @@ (define-public doxygen
programming languages such as C, Objective-C, C#, PHP, Java, Python,
IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl,
and to some extent D.")
- (license gpl3+)))
+ (license license:gpl3+)))
(define-public doc++
(package
@@ -258,7 +258,7 @@ (define-public doc++
generate both TeX output for high-quality hardcopies or HTML output for online
browsing. The documentation is extracted directly from the C/C++/IDL source
or Java class files.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public pod2pdf
(package
@@ -284,7 +284,7 @@ (define-public pod2pdf
Documentation} format to PDF files. It also supports some extensions to the POD
format, and supports the file types JPG, GIF, TIFF, PNG, and PNM for embedded
objects.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public python-docrepr
(package
@@ -335,7 +335,7 @@ (define-public python-docrepr
(description "Docrepr renders Python docstrings to HTML with Sphinx. It
can generate rich and plain representations of docstrings, alongside
additional metadata about the object to which the docstring belongs.")
- (license bsd-3)))
+ (license license:bsd-3)))
(define-public scrollkeeper
(package
@@ -368,7 +368,7 @@ (define-public scrollkeeper
provides a simple API to allow help browsers to find, sort, and search the
document catalog. It will also be able to communicate with catalog servers on
the Net to search for documents which are not on the local system.")
- (license lgpl2.1+)))
+ (license license:lgpl2.1+)))
(define-public zeal
(let ((commit "d3c5521c501d24050f578348ff1b9d68244b992c")
@@ -416,4 +416,4 @@ (define-public zeal
(synopsis "Offline documentation browser inspired by Dash")
(description "Zeal is a simple offline documentation browser
inspired by Dash.")
- (license gpl3+))))
+ (license license:gpl3+))))
--
2.39.2
S
S
Sergey Trofimov wrote on 17 Mar 09:29 +0100
[PATCH v2 2/3] gnu: Add halibut.
(address . 62228@debbugs.gnu.org)(name . Sergey Trofimov)(address . sarg@sarg.org.ru)
20230317082910.25037-2-sarg@sarg.org.ru
* gnu/packages/documentation.scm (halibut): New variable.
---
gnu/packages/documentation.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
index 3a6e9b10fb..10e607d430 100644
--- a/gnu/packages/documentation.scm
+++ b/gnu/packages/documentation.scm
@@ -235,6 +235,33 @@ (define-public doxygen
and to some extent D.")
(license license:gpl3+)))
+(define-public halibut
+ (package
+ (name "halibut")
+ (version "1.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.chiark.greenend.org.uk/~sgtatham/halibut/halibut-"
+ version "/halibut-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0ciikn878vivs4ayvwvr63nnhpcg12m8023xv514zxqpdxlzg85a"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:tests? #f)) ;No tests.
+ (native-inputs (list pkg-config perl))
+ (home-page "https://www.chiark.greenend.org.uk/~sgtatham/halibut/")
+ (synopsis "Documentation production system for software manuals")
+ (description
+ "Halibut is a text formatting system designed primarily for writing software
+documentation. It accepts a single source format and outputs any combination of
+plain text, HTML, Unix man or info pages, PostScript or PDF. It has extensive
+support for indexing and cross-referencing, and generates hyperlinks within output
+documents wherever possible. It supports Unicode, with the ability to fall back to
+an alternative representation if Unicode output is not available.")
+ (license license:expat)))
+
(define-public doc++
(package
(name "doc++")
--
2.39.2
S
S
Sergey Trofimov wrote on 17 Mar 09:29 +0100
[PATCH v2 3/3] gnu: Add sgt-puzzles.
(address . 62228@debbugs.gnu.org)(name . Sergey Trofimov)(address . sarg@sarg.org.ru)
20230317082910.25037-3-sarg@sarg.org.ru
* 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 | 73 +++++++++++++++++++
.../sgt-puzzles-install-two-icon-sizes.patch | 35 +++++++++
3 files changed, 109 insertions(+)
create mode 100644 gnu/packages/patches/sgt-puzzles-install-two-icon-sizes.patch

Toggle diff (139 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index f8061e4a34..c8ebf35158 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1842,6 +1842,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..ddc16b47da 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -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)
+ (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"))))))))
+ (inputs (list gtk+ xdg-utils))
+ (native-inputs (list pkg-config perl imagemagick halibut))
+ (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
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
--
2.39.2
B
B
Bruno Victal wrote on 17 Mar 14:15 +0100
Re: [PATCH 1/2] gnu: Add halibut.
(address . 62228@debbugs.gnu.org)
7228765e-0ad3-9f2f-0395-fcb2f92842a3@makinata.eu
On 2023-03-17 07:50, Liliana Marie Prikler wrote:
Toggle quote (13 lines)
> Am Donnerstag, dem 16.03.2023 um 22:24 +0100 schrieb Sergey Trofimov:
>> +    (description "This is yet another text formatting system,
>> intended primarily for
> Use "Halibut" instead of "this". "yet another" is a little
> superfluous.
>> +writing software documentation.  It accepts a single source format
>> and outputs any or
>> +all of text, HTML, Windows Help, man pages, GNU info, PostScript, or
>> PDF.  
> any or all of => any combination of
> text => plain text,
> Windows Help => delete, we don't advocate unfree software here

Alternatively rename “Windows Help” to “Compiled HTML (.CHM) or WinHelp (.HLP)” which is more neutral?
In general, some format might have been originally conceived for proprietary software but could have
been reverse-engineered and reused in other contexts that might not involve any non-free software at all.

I don't think stating the fact that the program can generate formats commonly used by non-free software
constitutes advocating at all. (in fact omitting this information might do more harm since it can
convey that this (free) software doesn't support that format at all, pushing the user towards some other
potentially non-free software that might fit the bill)

For what my opinion is worth.


Cheers,
Bruno
L
L
Liliana Marie Prikler wrote on 17 Mar 18:16 +0100
(address . 62228@debbugs.gnu.org)
c4146c9ab970f813f86724ee8563c8ce944bdcb8.camel@gmail.com
Am Freitag, dem 17.03.2023 um 13:15 +0000 schrieb Bruno Victal:
Toggle quote (4 lines)
> I don't think stating the fact that the program can generate formats
> commonly used by non-free software constitutes advocating at all. (in
> fact omitting this information might do more harm since it can
> convey that this software doesn't support that format at all)
I'm not sure that is the case. Given that you typically have the tool
plus its documentation available, as well as a link to the home-page
which talks about this in more detail, I don't think we can easily
"hide" this information from the user. However, choosing not to
highlight it, as it isn't an explicit goal of the software (in fact the
opposite is the case: the software aims to support as many backends as
possible), is imho a good rule of thumb.

Cheers
S
S
Sergey Trofimov wrote on 16 Mar 22:24 +0100
[PATCH 1/2] gnu: Add halibut.
(address . 62228@debbugs.gnu.org)(name . Sergey Trofimov)(address . sarg@sarg.org.ru)
20230316212424.5998-1-sarg@sarg.org.ru
* gnu/packages/documentation.scm (halibut): New variable.
---
gnu/packages/documentation.scm | 44 +++++++++++++++++++++++++++-------
1 file changed, 35 insertions(+), 9 deletions(-)

Toggle diff (110 lines)
diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
index a372e1a6ca..ed9851cc5f 100644
--- a/gnu/packages/documentation.scm
+++ b/gnu/packages/documentation.scm
@@ -29,7 +29,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages documentation)
- #:use-module (guix licenses)
+ #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix gexp)
@@ -102,7 +102,7 @@ (define-public latex2html
(description "LaTeX2HTML is a utility that converts LaTeX documents to web
pages in HTML.")
(home-page "https://www.latex2html.org/")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public asciidoc
(package
@@ -178,7 +178,7 @@ (define-public asciidoc
AsciiDoc is highly configurable: both the AsciiDoc source file syntax and
the backend output markups (which can be almost any type of SGML/XML
markup) can be customized and extended by the user.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-deprecated asciidoc-py3 asciidoc)
@@ -233,7 +233,33 @@ (define-public doxygen
programming languages such as C, Objective-C, C#, PHP, Java, Python,
IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl,
and to some extent D.")
- (license gpl3+)))
+ (license license:gpl3+)))
+
+(define-public halibut
+ (package
+ (name "halibut")
+ (version "1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.chiark.greenend.org.uk/~sgtatham/halibut/halibut-"
+ version "/halibut-" version ".tar.gz"))
+ (sha256
+ (base32 "0ciikn878vivs4ayvwvr63nnhpcg12m8023xv514zxqpdxlzg85a"))))
+ (build-system cmake-build-system)
+ (native-inputs (list pkg-config perl))
+ (arguments
+ '(#:tests? #f)) ; No tests.
+ (home-page "https://www.chiark.greenend.org.uk/~sgtatham/halibut/")
+ (synopsis "Documentation production system for software manuals")
+ (description "This is yet another text formatting system, intended primarily for
+writing software documentation. It accepts a single source format and outputs any or
+all of text, HTML, Windows Help, man pages, GNU info, PostScript, or PDF. It has
+comprehensive indexing and cross-referencing support, and generates hyperlinks within
+output documents wherever possible. It supports Unicode, with the ability to fall
+back to an alternative representation when Unicode output is not available.")
+ (license license:expat)))
(define-public doc++
(package
@@ -258,7 +284,7 @@ (define-public doc++
generate both TeX output for high-quality hardcopies or HTML output for online
browsing. The documentation is extracted directly from the C/C++/IDL source
or Java class files.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public pod2pdf
(package
@@ -284,7 +310,7 @@ (define-public pod2pdf
Documentation} format to PDF files. It also supports some extensions to the POD
format, and supports the file types JPG, GIF, TIFF, PNG, and PNM for embedded
objects.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public python-docrepr
(package
@@ -335,7 +361,7 @@ (define-public python-docrepr
(description "Docrepr renders Python docstrings to HTML with Sphinx. It
can generate rich and plain representations of docstrings, alongside
additional metadata about the object to which the docstring belongs.")
- (license bsd-3)))
+ (license license:bsd-3)))
(define-public scrollkeeper
(package
@@ -368,7 +394,7 @@ (define-public scrollkeeper
provides a simple API to allow help browsers to find, sort, and search the
document catalog. It will also be able to communicate with catalog servers on
the Net to search for documents which are not on the local system.")
- (license lgpl2.1+)))
+ (license license:lgpl2.1+)))
(define-public zeal
(let ((commit "d3c5521c501d24050f578348ff1b9d68244b992c")
@@ -416,4 +442,4 @@ (define-public zeal
(synopsis "Offline documentation browser inspired by Dash")
(description "Zeal is a simple offline documentation browser
inspired by Dash.")
- (license gpl3+))))
+ (license license:gpl3+))))
--
2.39.2
?