aboutsummaryrefslogtreecommitdiff
path: root/guix.scm
diff options
context:
space:
mode:
authorArun Isaac2021-11-02 01:17:41 +0530
committerArun Isaac2021-11-02 01:31:56 +0530
commit0b359cf2c32cde81b4311d55273c8f6c14ca6b93 (patch)
tree50def438dc8033db14804f33a2aef7fcffa2d9ec /guix.scm
parent179925c5d88ae38bc28baf470d350461d49ebede (diff)
downloadccwl-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.scm28
1 files changed, 26 insertions, 2 deletions
diff --git a/guix.scm b/guix.scm
index 9339da0..78d7c41 100644
--- a/guix.scm
+++ b/guix.scm
@@ -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)