aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemse2025-08-19 00:03:54 -0700
committerGravatar Tom Willemse2025-08-19 00:03:54 -0700
commit5e67fee239a9b8530730a59cdaefd6e861a313cb (patch)
treecd43c209bffb36723f4abea09b55416212d4a32b
parentaa111d30260684d0655b4eb1fb5b1ffaeb35ec03 (diff)
downloadnew-dotfiles-5e67fee239a9b8530730a59cdaefd6e861a313cb.tar.gz
new-dotfiles-5e67fee239a9b8530730a59cdaefd6e861a313cb.zip
scsh: Add temporary package
This is to make my profile work again.
-rw-r--r--oni/packages/scsh.scm108
1 files changed, 108 insertions, 0 deletions
diff --git a/oni/packages/scsh.scm b/oni/packages/scsh.scm
new file mode 100644
index 0000000..5aee152
--- /dev/null
+++ b/oni/packages/scsh.scm
@@ -0,0 +1,108 @@
+(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 <stdlib.h>" all)
+ (string-append all "\n#include <time.h>")))
+ (substitute* "tty.c"
+ (("#include <termios.h>" all)
+ (string-append all "\n#include <pty.h>")))))))))
+ (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))))