;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Claes Wallin ;;; Copyright © 2016 Eric Le Bihan ;;; Copyright © 2017 Z. Ren ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice ;;; Copyright © 2020 Oleg Pykhalov ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages skarnet) #:use-module (gnu packages) #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu)) (define-public skalibs (package (name "skalibs") (version "2.13.1.1") (source (origin (method url-fetch) (uri (string-append "https://skarnet.org/software/skalibs/skalibs-" version ".tar.gz")) (sha256 (base32 "0cwy37cc92409dsmj8c8whpnnqd9g375myxlp52aqzwzg6ms2wmj")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests exist #:phases (modify-phases %standard-phases (add-after 'unpack 'patch (lambda _ ;; This umask makes the symlinks in lib readable on ;; i586-gnu (substitute* "tools/install.sh" (("umask 077") "umask 033")) ;; Sort source files deterministically so that the *.a ;; and *.so files are reproducible. (substitute* "Makefile" (("\\$\\(wildcard src/lib\\*/\\*.c\\)") "$(sort $(wildcard src/lib*/*.c))"))))))) (home-page "https://skarnet.org/software/skalibs/") (synopsis "Platform abstraction libraries for skarnet.org software") (description "This package provides lightweight C libraries isolating the developer from portability issues, providing a unified systems API on all platforms, including primitive data types, cryptography, and POSIX concepts like sockets and file system operations. It is used by all skarnet.org software.") (license isc))) (define-public execline (package (name "execline") (version "2.9.3.0") (source (origin (method url-fetch) (uri (string-append "https://skarnet.org/software/execline/execline-" version ".tar.gz")) (sha256 (base32 "1393xka069n3rvc3dlg6c3ckzl1qgqkhvhlcxv6igl9216kpy0n8")))) (build-system gnu-build-system) (inputs (list skalibs)) (arguments '(#:configure-flags (list (string-append "--with-lib=" (assoc-ref %build-inputs "skalibs") "/lib/skalibs") (string-append "--with-sysdeps=" (assoc-ref %build-inputs "skalibs") "/lib/skalibs/sysdeps")) #:phases (modify-phases %standard-phases (add-after 'install 'post-install (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin"))) (wrap-program (string-append bin "/execlineb") `("PATH" ":" prefix (,bin))))))) #:tests? #f)) ; no tests exist (home-page "https://skarnet.org/software/execline/") (license isc) (synopsis "Non-interactive shell-like language with minimal overhead") (description "Execline is a (non-interactive) scripting language, separated into a parser (execlineb) and a set of commands meant to execute one another in a chain-execution fashion, storing the whole script in the argument array. It features conditional loops, getopt-style option handling, file name globbing, redirection and other shell concepts, expressed as discrete commands rather than in special syntax, minimizing run