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 © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -26,10 +27,14 @@ (define-module (gnu packages bash)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages bootstrap)
#:use-module (gnu packages compression)
#:use-module (gnu packages elf)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages readline)
#:use-module (gnu packages bison)
#:use-module (gnu packages linux)
#:use-module (gnu packages libffi)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages guile)
#:use-module (guix packages)
#:use-module (guix download)
@ -415,3 +420,31 @@ (define-public bats
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.")
(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)))