me
/
guix
Archived
1
0
Fork 0

gnu: Add deal.

* gnu/packages/games.scm (deal): New variable.
master
Nicolas Goaziou 2023-04-04 23:50:04 +02:00
parent 2ad1a3731f
commit 7decb4c394
No known key found for this signature in database
GPG Key ID: DA00B4F048E92F2D
1 changed files with 78 additions and 1 deletions

View File

@ -1152,6 +1152,83 @@ cows can think too: all you have to do is run @command{cowthink}. If you're
tired of cows, a variety of other ASCII-art messengers are available.")
(license license:gpl3+)))
(define-public deal
(package
(name "deal")
(version "3.1.11")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gtwilliams/deal")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1wcrx3yq5ycnkdnygcq80ljpgc9iwyrr8zayprzvbibvj77hdm0c"))))
(build-system gnu-build-system)
(arguments
(list
#:test-target "test"
#:make-flags
#~(let* ((tcl #$(this-package-input "tcl"))
(tcl-version #$(version-major+minor (package-version tcl))))
(list "CPPFLAGS += -O3"
(string-append "CC=" #$(cc-for-target))
(string-append "TCL_INCL=" tcl "/include")
(string-append "LDFLAGS=-L" tcl "/lib"
" -ltcl" tcl-version
" -lm")
(string-append "DATA_DIR=" #$output "/share/deal/")))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'locate-pod2man
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "Makefile"
(("/usr/bin/pod2man")
(search-input-file inputs "/bin/pod2man")))))
(delete 'configure) ;no configure script
;; Prevent the error: "Makefile:248: Make.dep: No such file
;; or directory".
(add-before 'build 'create-Make.dep
(lambda _
(call-with-output-file "Make.dep" (const #t))))
;; There is no install target. Do everything manually.
(replace 'install
(lambda _
(let ((bin (string-append #$output "/bin"))
(man (string-append #$output "/share/man/man6"))
(data (string-append #$output "/share/deal")))
(install-file "deal" bin)
(install-file "deal.6" man)
(install-file "deal.tcl" data)
(for-each (lambda (d)
(let ((target (string-append data "/" d)))
(mkdir-p target)
(copy-recursively d target)))
'("ex" "format" "input" "lib")))))
;; Tests need to happen once the data is properly installed
;; because the "deal.tcl" script file location is hard-coded
;; in the "deal" binary.
(delete 'check)
(add-after 'install 'check
(assoc-ref %standard-phases 'check)))))
(native-inputs
(list perl))
(inputs
(list tcl))
(home-page "https://bridge.thomasoandrews.com/deal/")
(synopsis "Bridge hand generator")
(description
"This program generates bridge hands. It can be told to generate only
hands satisfying conditions like being balanced, having a range of
High Cards Points (HCP), controls, or other user-definable properties.
Hands can be output in various formats, like PBN for feeding to other
bridge programs, Deal itself, or split up into a file per player for
practise.")
(license (list license:gpl2+
license:gpl1+ ;ansidecl.h
license:bsd-3)))) ;random.c
(define-public falltergeist
(package
(name "falltergeist")
@ -1167,7 +1244,7 @@ tired of cows, a variety of other ASCII-art messengers are available.")
"05cg58i2g32wbmrvmdsicic8xs83gld3qr1p7r4lnlckcl1l7dy4"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; no tests provided
`(#:tests? #f)) ; no tests provided
(native-inputs (list pkg-config))
(inputs `(("sdl" ,(sdl-union (list sdl2
sdl2-image