~ruther/guix-local

a6b55314b13a61ea4a14a47f1e5e5822235c307c — Ludovic Courtès 11 years ago bb3b71c
gnu: Add wrapper for Freedink.

* gnu/packages/games.scm (freedink-engine, freedink-data): Make
  private.
  (freedink): New variable.
1 files changed, 33 insertions(+), 3 deletions(-)

M gnu/packages/games.scm
M gnu/packages/games.scm => gnu/packages/games.scm +33 -3
@@ 4,6 4,7 @@
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net>
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 45,7 46,9 @@
  #:use-module (gnu packages texinfo)
  #:use-module (gnu packages check)
  #:use-module (gnu packages fontutils)
  #:use-module (guix build-system gnu))
  #:use-module (gnu packages bash)
  #:use-module (guix build-system gnu)
  #:use-module (guix build-system trivial))

(define-public gnubg
  (package


@@ 289,7 292,7 @@ against the computer in a game of chess, either through the default terminal
interface or via an external visual interface such as GNU XBoard.")
    (license gpl3+)))

(define-public freedink-engine
(define freedink-engine
  (package
    (name "freedink-engine")
    (version "108.4")


@@ 320,7 323,7 @@ game data files but it also supports user-produced game mods or \"D-Mods\".
To that extent, it also includes a front-end for managing all of your D-Mods.")
    (license gpl3+)))

(define-public freedink-data
(define freedink-data
  (package
    (name "freedink-data")
    (version "1.08.20140901")


@@ 343,6 346,33 @@ To that extent, it also includes a front-end for managing all of your D-Mods.")

;; TODO: Add freedink-dfarc when there's a wxWidgets package.

(define-public freedink
  ;; This is a wrapper that tells the engine where to find the data.
  (package (inherit freedink-engine)
    (name "freedink")
    (build-system trivial-build-system)
    (arguments
     '(#:builder (begin
                   (use-modules (guix build utils))

                   (let* ((output     (assoc-ref %outputs "out"))
                          (bin        (string-append output "/bin"))
                          (executable (string-append bin "/freedink")))
                     (mkdir-p bin)
                     (call-with-output-file executable
                       (lambda (port)
                         (format port "#!~a/bin/sh
exec ~a/bin/freedink -refdir ~a/share/dink\n"
                                 (assoc-ref %build-inputs "bash")
                                 (assoc-ref %build-inputs "engine")
                                 (assoc-ref %build-inputs "data"))
                         (chmod port #o777)))))
       #:modules ((guix build utils))))
    (inputs `(("engine" ,freedink-engine)
              ("data" ,freedink-data)
              ("bash" ,bash)))
    (native-inputs '())))

(define-public xboard
  (package
    (name "xboard")