From 7ab055434af3aef6eae0095d8eb64e6ddeaba3b9 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 20 Aug 2021 11:04:05 +0200 Subject: gnu: Add Vnlog. * gnu/packages/datamash.scm (vnlog): New public variable. --- gnu/packages/datamash.scm | 104 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 103 insertions(+), 1 deletion(-) diff --git a/gnu/packages/datamash.scm b/gnu/packages/datamash.scm index 51a35e0a1d..4ce1dbda7d 100644 --- a/gnu/packages/datamash.scm +++ b/gnu/packages/datamash.scm @@ -21,10 +21,16 @@ (define-module (gnu packages datamash) #:use-module (guix packages) #:use-module (guix licenses) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix gexp) + #:use-module (guix utils) #:use-module (gnu packages) + #:use-module (gnu packages base) + #:use-module (gnu packages gawk) #:use-module (gnu packages perl) - #:use-module (gnu packages base)) + #:use-module (gnu packages python) + #:use-module (gnu packages python-xyz)) (define-public datamash (package @@ -48,3 +54,99 @@ (define-public datamash "Perform basic numeric, textual and statistical operations on plain text files. Designed to work within standard pipelines without additional code.") (license gpl3+))) + +(define-public vnlog + (package + (name "vnlog") + (version "1.32") + (home-page "https://github.com/dkogan/vnlog") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1g4insm6gkw3c82fq8q9swkdha3cncbz1nib15yg9b2s4yl123hm")))) + (build-system gnu-build-system) + (native-inputs + (list python-numpy)) ;for tests + (inputs + (list mawk + perl + perl-ipc-run + perl-list-moreutils + perl-string-shellquote + perl-text-diff + perl-text-table + python-wrapper)) + (arguments + (list #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "DESTDIR=" #$output) + "USRLIB=lib" + "MANDIR=share/man" + (string-append "PY3_MODULE_PATH=lib/python" + #$(version-major+minor + (package-version + (this-package-input "python-wrapper"))) + "/site-packages") + ;; Do not install the Python 2 modules. + "DIST_PY2_MODULES=") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'adjust-Makefile + (lambda _ + (substitute* "GNUmakefile" + ;; Install Perl modules to the usual location. + (("/usr/share/perl5") + (string-append "/lib/perl5/site_perl/" + #$(package-version + (this-package-input "perl")))) + ;; Do not add a '/usr' suffix to DESTDIR. + (("\\$\\(DESTDIR\\)/usr") + "$(DESTDIR)") + ;; Do not strip RUNPATH from the installed C library. + ((".*find.*chrpath.*") + "")))) + (add-after 'unpack 'use-absolute-mawk + (lambda* (#:key inputs #:allow-other-keys) + (let ((mawk (search-input-file inputs "bin/mawk"))) + (substitute* '("vnl-filter" "lib/Vnlog/Util.pm") + (("'mawk'") + (string-append "'" mawk "'")))))) + (delete 'configure) + (add-before 'check 'disable-python2-test + (lambda _ + (delete-file "test/test_python2_parser.sh") + (substitute* "GNUmakefile" + ((".*test/test_python2_parser\\.sh\\.RUN.*") + "")))) + (add-after 'install 'wrap + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (PERL5LIB (string-append + out "/lib/perl5/site_perl/" + #$(package-version + (this-package-input "perl")) + ":" (getenv "PERL5LIB")))) + (for-each (lambda (script) + (wrap-program script + `("PERL5LIB" ":" prefix (,PERL5LIB)))) + (find-files (string-append out "/bin")))))) + (add-after 'wrap 'check-wrapped-executables + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; Assert that the installed Perl scripts can find + ;; their dependencies even when PERL5LIB is unset. + (unsetenv "PERL5LIB") + (for-each (lambda (script) + (invoke/quiet script "--help")) + (find-files (string-append out "/bin") + "^vnl-[[:lower:]]+$")))))))) + (synopsis "Process labelled tabular ASCII data on the command line") + (description + "Vnlog (pronounced @dfn{vanillog}) is a toolkit for manipulating +tabular ASCII data with labelled fields using regular command-line tools.") + (license lgpl2.1+))) -- cgit v1.2.3