gnu: Add bash-ctypes.

* gnu/packages/bash.scm (bash-ctypes): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Zhu Zihao 2020-10-23 20:47:04 +08:00 committed by Ludovic Courtès
parent bb638391d0
commit aa73b41acb
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -5,6 +5,7 @@
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -26,10 +27,14 @@ (define-module (gnu packages bash)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bootstrap) #:use-module (gnu packages bootstrap)
#:use-module (gnu packages compression)
#:use-module (gnu packages elf)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages readline) #:use-module (gnu packages readline)
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages libffi)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
@ -415,3 +420,31 @@ (define-public bats
you write behave as expected. Bats is most useful when testing software written you write behave as expected. Bats is most useful when testing software written
in Bash, but you can use it to test any UNIX program.") in Bash, but you can use it to test any UNIX program.")
(license expat))) (license expat)))
(define-public bash-ctypes
(package
(name "bash-ctypes")
(version "1.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/taviso/ctypes.sh/releases/download/v"
version "/ctypes-sh-" version ".tar.gz"))
(sha256
(base32 "0s1sifqzqmr0dnciv06yqrpzgj11d7n0gy5zaxh6b3x8bx7k75l8"))))
(build-system gnu-build-system)
(inputs
`(("elfutils" ,elfutils)
("libelf" ,libelf)
("libffi" ,libffi)
("zlib" ,zlib)
;; Require a bash with C plugin support to build.
("bash" ,bash)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "https://github.com/taviso/ctypes.sh")
(synopsis "Foreign function interface for Bash")
(description "Bash-ctypes is a Bash plugin that provides a foreign
function interface (FFI) directly in your shell. In other words, it allows
you to call routines in shared libraries from within Bash.")
(license expat)))