(define-module (oni packages scsh) #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages documentation) #:use-module (gnu packages groff) #:use-module (gnu packages guile) #:use-module (gnu packages libbsd) #:use-module (gnu packages libedit) #:use-module (gnu packages linux) #:use-module (gnu packages ncurses) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages python-check) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages readline) #:use-module (gnu packages scheme) #:use-module (gnu packages terminals) #:use-module (gnu packages version-control) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg) #:use-module (gnu packages texinfo) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system meson) #:use-module (guix build-system pyproject) #:use-module (guix build-system python) #:use-module (guix build-system trivial) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix gexp) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils)) (define-public scsh (let ((commit "4acf6e4ed7b65b46186ef0c9c2a1e10bef8dc052") (revision "0")) (package (name "scsh") (version (git-version "0.7" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/scheme/scsh") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "1czrp808v5gs0ci5lmkp3wr3gfkrb3vd5b2iw2hz1bpqgaf6bxpv")) (patches (search-patches "scsh-nonstring-search-path.patch")) (modules '((guix build utils))) (snippet #~(begin (substitute* "Makefile.in" (("SCHEME48VERSION = 1.9.2") (string-append "SCHEME48VERSION = " #$ (package-version scheme48)))))))) (build-system gnu-build-system) (arguments (list #:test-target "test" #:phases #~(modify-phases %standard-phases (add-before 'configure 'replace-rx (lambda _ (let ((rxpath (string-append #$scheme48-rx "/share/scheme48-" #$(package-version scheme48) "/rx"))) (delete-file-recursively "rx") (symlink rxpath "rx")))) (add-after 'replace-rx 'fix-includes (lambda _ (with-directory-excursion "c" (substitute* "syscalls.c" (("#include " all) (string-append all "\n#include "))) (substitute* "tty.c" (("#include " all) (string-append all "\n#include "))))))))) (inputs (list scheme48 scheme48-rx)) (native-inputs (list autoconf automake)) (native-search-paths (list (search-path-specification (variable "SCSH_LIB_DIRS") (separator " ") (files '("share/scsh-0.7"))))) (home-page "https://github.com/scheme/scsh") (synopsis "Unix shell embedded in Scheme") (description "Scsh is a Unix shell embedded in Scheme. Scsh has two main components: a process notation for running programs and setting up pipelines and redirections, and a complete syscall library for low-level access to the operating system.") (license license:bsd-3))))