Subject: [bug#68175] [PATCH 2/2] gnu: Add redeal.

From: Nicolas Goaziou <[email-masked]>
Date: Sun, 31 Dec 2023 15:08:46 +0100

* gnu/packages/games.scm (redeal): New variable.

Change-Id: I89c000c7afdd594af3555bf23b0f028f99219ec3
---
 gnu/packages/games.scm | 49 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 8313c02754..46ce8c832c 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -2367,6 +2367,55 @@ (define-public prboom-plus
     "PrBoom+ is a Doom source port developed from the original PrBoom project.")
    (license license:gpl2+)))
 
+(define-public redeal
+  (let ((commit "e2e81a477fd31ae548a340b5f0f380594d3d0ad6")
+        (revision "1"))
+    (package
+      (name "redeal")
+      (version (git-version "0.2.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/anntzer/redeal")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1vac36bg4ah9gs4hgmp745xq6nnmd7s71vsq99d72ng3sxap0wa3"))))
+      (build-system pyproject-build-system)
+      (arguments
+       (list
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'unbundle-dds
+              (lambda* (#:key inputs #:allow-other-keys)
+                (substitute* "setup.py"
+                  (("cmdclass=.*") ""))
+                (let ((libdds (search-input-file inputs "lib/libdds.so")))
+                  (substitute* "redeal/dds.py"
+                    ((" and os.path.exists\\(dll_path\\)") "")
+                    (("dll = DLL\\(dll_path\\)")
+                     (format #f "dll = DLL(~s)" libdds))))))
+            (add-after 'install 'install-examples
+              (lambda _
+                (let* ((doc (string-append #$output "/share/doc/"))
+                       (examples
+                        (string-append doc #$name "-" #$version "/examples")))
+                  (mkdir-p examples)
+                  (copy-recursively "examples" examples)))))))
+      (inputs (list dds `(,python "tk")))
+      (propagated-inputs (list python-colorama))
+      (home-page "https://github.com/anntzer/redeal")
+      (synopsis
+       "Deal generator for bridge card game, written in Python")
+      (description
+       "Redeal is a deal generator written in Python.  It outputs deals
+satisfying whatever conditions you specify --- deals with a double void, deals
+with a strong 2♣ opener opposite a yarborough, etc.  Using Bo Haglund's double
+dummy solver, it can even solve the hands it has generated for you.")
+      (license license:gpl3))))
+
 (define-public retux
   (let ((release "1.6.1")
         (revision 0))
-- 
2.41.0