From 26aa8fc87e73d2eff1640d52f6ab0ab0729fc5a2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 19 Mar 2024 15:01:38 +0100 Subject: gnu: snakemake-7: Patch tibanna command line. * gnu/packages/python-xyz.scm (snakemake-7)[arguments]: Remove store reference in tibanna command line. Change-Id: I339f4c3133a0e687723a53277818749a8e5fc97a --- gnu/packages/python-xyz.scm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'gnu/packages/python-xyz.scm') diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index dc211ff782..f29bb4e1bb 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -12963,7 +12963,22 @@ Python style, together with a fast and comfortable execution environment.") "") (("\"-m snakemake\"") (string-append "\"" #$output - "/bin/snakemake" "\""))))) + "/bin/snakemake" "\"")) + ;; The snakemake command produced by format_job_exec contains + ;; references to /gnu/store. Prior to patching above that's + ;; just a reference to Python; after patching it's a reference + ;; to the snakemake executable. + ;; + ;; In Tibanna execution mode Snakemake arranges for a certain + ;; Docker image to be deployed to AWS. It then passes its own + ;; command line to Tibanna. This is misguided because it only + ;; ever works if the local Snakemake command was run inside + ;; the same Docker image. In the case of using Guix this is + ;; never correct, so we need to replace the store reference. + (("tibanna_args.command = command") + (string-append + "tibanna_args.command = command.replace('" + #$output "/bin/snakemake', 'python3 -m snakemake')"))))) (add-after 'unpack 'patch-version (lambda _ (substitute* "setup.py" -- cgit v1.2.3