[bug#79005,v2] gnu: Add dialogc.

Message ID 0805a1c3-7a29-4cd9-a967-d0759a3edc83@disroot.org
State New
Headers
Series [bug#79005,v2] gnu: Add dialogc. |

Commit Message

Adam Faiz July 19, 2025, 10:31 a.m. UTC
From daee7a45e888f26c3e4dad4d4de64f01da885eee Mon Sep 17 00:00:00 2001
Message-ID: 
<daee7a45e888f26c3e4dad4d4de64f01da885eee.1752921034.git.adam.faiz@disroot.org>
From: AwesomeAdam54321 <adam.faiz@disroot.org>
Date: Sun, 13 Jul 2025 16:30:50 +0800
Subject: [PATCH v2] gnu: Add dialogc.

* gnu/packages/game-development.scm (dialogc): New variable.

Change-Id: Id02c124814854785a73d8ff7e1739158a7d03faf
---
  gnu/packages/game-development.scm | 52 +++++++++++++++++++++++++++++++
  1 file changed, 52 insertions(+)


base-commit: 8737b5332ed57ec056e70f3f7f1d88e4012101cd
prerequisite-patch-id: 447fc3664fd7149b80f069dde1c5f4165e818473
prerequisite-patch-id: ad626d9de0aa0b91b2c7374d51f95ab3fa1ce463
  

Patch

diff --git a/gnu/packages/game-development.scm 
b/gnu/packages/game-development.scm
index 61520575a8..1b1d17c610 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -92,6 +92,7 @@  (define-module (gnu packages game-development)
    #:use-module (gnu packages freedesktop)
    #:use-module (gnu packages fribidi)
    #:use-module (gnu packages dbm)
+  #:use-module (gnu packages games)
    #:use-module (gnu packages gawk)
    #:use-module (gnu packages gettext)
    #:use-module (gnu packages gl)
@@ -118,6 +119,7 @@  (define-module (gnu packages game-development)
    #:use-module (gnu packages ncurses)
    #:use-module (gnu packages networking)
    #:use-module (gnu packages pcre)
+  #:use-module (gnu packages perl)
    #:use-module (gnu packages pkg-config)
    #:use-module (gnu packages pretty-print)
    #:use-module (gnu packages pulseaudio)
@@ -316,6 +318,56 @@  (define-public deutex
  DeuTex has functions such as merging wads, etc.")
     (license license:gpl2+)))

+(define-public dialogc
+  (let ((commit "68476f9f3b1ca2db15615e508837ca721e0759ab")
+        (revision "0"))
+    (package
+      (name "dialogc")
+      (version (git-version "1a-01" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+                (url "https://github.com/Dialog-IF/dialog")
+                (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1gm6fb86chq74fh2llmmgji6fwylk0xd53fmij6l9x348nvw1bkn"))
+         (modules '((guix build utils)))
+         (snippet
+          #~(begin
+              (substitute* "src/Makefile"
+                (("cp dialogc" all)
+                 (string-append "install -d ${PREFIX}/bin\n\t" all))
+                (("/usr/local") "${PREFIX}"))))))
+      (build-system gnu-build-system)
+      (native-inputs (list frotz-dumb-terminal perl python-3))
+      (arguments
+       (list
+        #:test-target "test"
+        #:parallel-tests? #f
+        #:phases
+        #~(modify-phases %standard-phases
+            (delete 'configure)
+            (add-before 'build 'set-install-prefix
+              (lambda _
+                (setenv "PREFIX" #$output)))
+            (replace 'build
+              (lambda _
+                (with-directory-excursion "src"
+                  (invoke "make"))))
+            (replace 'install
+              (lambda _
+                (let ((bin (string-append #$output "/bin")))
+                  (install-file "src/dialogc" bin)
+                  (install-file "src/dgdebug" bin)))))))
+      (synopsis "Dialog interactive fiction compiler")
+      (description
+       "Dialog is a domain-specific language for creating works
+of interactive fiction.  It is heavily inspired by Inform 7 and Prolog.")
+      (home-page "https://github.com/Dialog-IF/dialog")
+      (license license:bsd-3))))
+
  (define-public go-codeberg-org-anaseto-gruid-sdl
    (package
      (name "go-codeberg-org-anaseto-gruid-sdl")