about summary refs log tree commit diff
diff options
context:
space:
mode:
authorpjotrp2026-04-04 19:17:57 +0200
committerpjotrp2026-04-04 19:17:57 +0200
commitca5ced4129c10c8fef988915868c9e368b3691a0 (patch)
tree962dc102b332d4bab3063fc50088d4b47a2a6c75
parent8b306af288de14143454cb08e5e1359a85913415 (diff)
downloadguix-bioinformatics-ca5ced4129c10c8fef988915868c9e368b3691a0.tar.gz
Propagate fastga-rs in impg
-rw-r--r--gn/packages/pangenome-rust.scm27
1 files changed, 26 insertions, 1 deletions
diff --git a/gn/packages/pangenome-rust.scm b/gn/packages/pangenome-rust.scm
index fb1a9c3..124539e 100644
--- a/gn/packages/pangenome-rust.scm
+++ b/gn/packages/pangenome-rust.scm
@@ -3390,6 +3390,17 @@ similar genome sequences and is compatible with the C++ AGC format.")
                      (substitute* "Cargo.toml"
                        (("onecode = \\{ git = \"[^\"]*\" \\}")
                         "onecode = \"0.1.0\""))))
+                 (add-after 'install 'install-fastga-binaries
+                   ;; Install the C binaries (FastGA, ALNtoPAF, FAtoGDB, GIXmake)
+                   ;; from the build dir so impg can find them
+                   (lambda _
+                     (let ((bin (string-append #$output "/bin")))
+                       (for-each
+                         (lambda (name)
+                           (let ((found (find-files "target" (string-append "^" name "$"))))
+                             (when (pair? found)
+                               (install-file (car found) bin))))
+                         '("FastGA" "ALNtoPAF" "FAtoGDB" "GIXmake")))))
                  (add-before 'build 'patch-home-msrv
                    ;; home 0.5.12 declares rust-version = "1.88" but Guix ships
                    ;; rustc 1.85.1.  The 'configure phase extracts inputs with
@@ -3728,8 +3739,22 @@ sequences to accelerate the alignment process.")
                 (substitute* "guix-vendor/rust-spoa-rs-0.1.0.6f4f102-checkout/build.rs"
                   (("spoa/include") #$(file-append spoa "/include"))
                   (("^ *out_dir\\.display.*$") "")
-                  (("\\{\\}/build/lib\",") #$(file-append spoa "/lib\""))))))))
+                  (("\\{\\}/build/lib\",") #$(file-append spoa "/lib\"")))))
+            (add-after 'install 'symlink-fastga-binaries
+              ;; impg's fastga-rs looks for FastGA/ALNtoPAF/etc in the same
+              ;; directory as the current executable
+              (lambda* (#:key inputs outputs #:allow-other-keys)
+                (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
+                      (fastga-bin (string-append
+                                    (assoc-ref inputs "fastga-rs") "/bin")))
+                  (for-each
+                    (lambda (name)
+                      (let ((src (string-append fastga-bin "/" name)))
+                        (when (file-exists? src)
+                          (symlink src (string-append bin "/" name)))))
+                    '("FastGA" "ALNtoPAF" "FAtoGDB" "GIXmake"))))))))
       (native-inputs (list pkg-config cmake-minimal clang))
+      (propagated-inputs (list fastga-rs))
       (inputs (cons* htslib
                      spoa
                      wfa2-lib-static