(address . guix-patches@gnu.org)
* gnu/packages/esolangs.scm (icon): New variable.
Change-Id: Ibd61e5431a2a57b89b94391be87a9ca36a40c58b
---
gnu/packages/esolangs.scm | 60 +++++++++++++++++++++++++++++++++++++++
1 file changed, 60 insertions(+)
Toggle diff (96 lines)
diff --git a/gnu/packages/esolangs.scm b/gnu/packages/esolangs.scm
index 0651dda1b0..59790812f0 100644
--- a/gnu/packages/esolangs.scm
+++ b/gnu/packages/esolangs.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2020 Hendursaga <hendursaga@yahoo.com>
;;; Copyright © 2020 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;; Copyright © 2022 jgart <jgart@dismail.de>
+;;; Copyright © 2024 Antero Mejr <mail@antr.me>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,16 +23,19 @@
(define-module (gnu packages esolangs)
#:use-module (gnu packages)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages flex)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages python)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages xorg)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages))
@@ -156,3 +160,59 @@ (define-public shakespeare-spl
If you want to assign a character, let's say Juliet, a positive value, you put
her and another character on the stage and let that character praise Juliet.")
(license license:gpl2+)))
+
+(define-public icon
+ (package
+ (name "icon")
+ (version "9.5.24a")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gtownsend/icon")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0im1ikjyg14qvn4d31lpkhynaspws25m6whhb5xqwscq7xh4dy4p"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:parallel-build? #f ;non-deterministic errors
+ #:phases #~(modify-phases %standard-phases
+ (add-before 'configure 'patch
+ (lambda _
+ (substitute* "Makefile"
+ (("mkdir \\$D$") ""))
+ (substitute* "tests/general/Test-opts"
+ (("/usr/bin/env icon")
+ "../../bin/icon"))
+ (for-each
+ (lambda (x)
+ (substitute* x
+ (("/bin/sh")
+ (string-append
+ #$(this-package-input "bash-minimal")
+ "/bin/bash"))))
+ '("ipl/progs/shar.icn"
+ "ipl/progs/ipatch.icn"
+ "src/icont/link.c"))))
+ (replace 'configure
+ (lambda _
+ (invoke "make" "X-Configure" "name=linux")))
+ (replace 'install
+ (lambda _
+ (invoke "make" "Install"
+ (string-append "dest=" #$output))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "make" "Test")))))))
+ (inputs (list bash-minimal libx11 libxpm libxt libxaw))
+ (home-page "https://www2.cs.arizona.edu/icon/")
+ (synopsis "String-processing programming language")
+ (description
+ "Icon is a high-level programming language with facilities for processing
+strings and structures, expressions that may produce sequences of results,
+goal-directed evaluation that automatically searches for a successful result,
+and string scanning that allows operations on strings to be formulated at a
+conceptual level. Icon also provides high-level graphics facilities.")
+ (license license:public-domain)))
base-commit: 13f0f52314244f08eb9fdd626d907c0c3976e06a
--
2.45.2