diff options
author | Arun Isaac | 2021-11-02 01:17:41 +0530 |
---|---|---|
committer | Arun Isaac | 2021-11-02 01:31:56 +0530 |
commit | 0b359cf2c32cde81b4311d55273c8f6c14ca6b93 (patch) | |
tree | 50def438dc8033db14804f33a2aef7fcffa2d9ec /guix.scm | |
parent | 179925c5d88ae38bc28baf470d350461d49ebede (diff) | |
download | ccwl-0b359cf2c32cde81b4311d55273c8f6c14ca6b93.tar.gz ccwl-0b359cf2c32cde81b4311d55273c8f6c14ca6b93.tar.lz ccwl-0b359cf2c32cde81b4311d55273c8f6c14ca6b93.zip |
ccwl: Support external CWL workflows.
* ccwl/ccwl.scm: Import (yaml). Export cwl-workflow?, cwl-workflow,
cwl-workflow-file, cwl-workflow-inputs and cwl-workflow-outputs.
(<cwl-workflow>): New type.
(cwl-workflow, function-input-keys, function-outputs,
function-object): New functions.
(command-input-keys, command-object): Delete functions.
(collect-steps): Replace command-object with function-object,
command-input-keys with function-input-keys and command-outputs with
function-outputs.
* ccwl/cwl.scm (workflow->cwl-scm): Handle <cwl-workflow> objects.
* tests/ccwl.scm ("read all forms of inputs and outputs from a CWL
workflow"): New test.
* guix.scm: Import (gnu packages guile-xyz) and (guix utils).
(guile-libyaml): New variable.
(ccwl)[inputs]: Add guile-libyaml.
Diffstat (limited to 'guix.scm')
-rw-r--r-- | guix.scm | 28 |
1 files changed, 26 insertions, 2 deletions
@@ -31,6 +31,7 @@ (gnu packages bioinformatics) (gnu packages graphviz) (gnu packages guile) + ((gnu packages guile-xyz) #:prefix guix:) (gnu packages pkg-config) (gnu packages skribilo) (gnu packages texinfo) @@ -38,10 +39,32 @@ (guix gexp) (guix git-download) (guix packages) - ((guix licenses) #:prefix license:)) + ((guix licenses) #:prefix license:) + (guix utils)) (define %source-dir (dirname (current-filename))) +;; The upstream Guix guile-libyaml package is broken. Fix it +;; temporarily here. +(define guile-libyaml + (package + (inherit guix:guile-libyaml) + (arguments + (substitute-keyword-arguments (package-arguments guix:guile-libyaml) + ((#:phases phases) + `(modify-phases ,phases + (replace 'remove-unused-files + (lambda _ + (for-each delete-file + (list "guix.scm" "demo1.scm" "demo1.yml")))) + (replace 'build-ffi + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "yaml/libyaml.scm" + (("dynamic-link \"libyaml\"") + (string-append "dynamic-link \"" + (assoc-ref inputs "libyaml") + "/lib/libyaml\""))))))))))) + (define ccwl (package (name "ccwl") @@ -53,7 +76,8 @@ (arguments '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ; to prevent guild warnings (inputs - `(("guile" ,guile-3.0))) + `(("guile" ,guile-3.0) + ("guile-libyaml" ,guile-libyaml))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) |