Thanks Mark, that's the only change in the attached patch, except that "license:" is added too.

On 22/06/15 04:23, Ricardo Wurmus wrote:
Pjotr Prins <pjotr.publi...@thebird.nl> writes:

It is quite common in bioinformatics tools to include foreign code.
One reason in favour of including the original setup that is it is
THAT what the authors and others test and run. Bringing in our own
dependencies is bound to open a can of worms - there often is a reason
they bring in that packaged code. One reason is that they depend on an older
version ;).
With Guix we have no problem with packaging older versions.  I have
untangled a number of applications with bundled libraries before.  It is
doable, better for reproducibility, and better for security.

I often submit bug reports upstream when I encounter bundling when
attempting to package software and I encourage others to do the same.

~~ Ricardo
In general I agree Ricardo. I find devs do this sometimes also because they are trying to help their users. It is as if they need some kind of package distribution system. Hopefully if guix takes off devs will increasingly not bundle dependencies because they can rely on guix to do it for them, in turn making them easier to package. In this case easel is quite baked in from my brief look e.g. hard coded paths to it in configure.ac, and anyway I was unable to source easel separately (the bioeasel.org domain seems to have lapsed), and I'm not aware of many other software packages using it anyway (but cannot know for sure).

Speaking of pleasant thoughts, for many reasons there's a lot of software in bioinformatics that has zero testing, which is bad. The pleasant thing is that in a packaging system that runs tests of packages that rely on other packages, if the downstream package has tests that fail because the upstream package no longer works then hydra will know about this through the magic of continuous integrations. So I don't need to write tests for my software, I just need to make sure the software is used by other devs that do use tests, right?
>From 5002a93221dbd77c8dbb4212eb463e13bf4b9361 Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrust...@gmail.com>
Date: Wed, 24 Jun 2015 11:16:53 +1000
Subject: [PATCH] gnu: Add hmmer.

* gnu/packages/bioinformatics.scm (hmmer): New variable.
---
 gnu/packages/bioinformatics.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 8dfaff3..32d1cbd 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1032,6 +1032,35 @@ several alignment strategies enable effective alignment of RNA-seq reads, in
 particular, reads spanning multiple exons.")
     (license license:gpl3+)))
 
+(define-public hmmer
+  (package
+    (name "hmmer")
+    (version "3.1b2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://selab.janelia.org/software/hmmer";
+                    (version-prefix version 1) "/"
+                    version "/hmmer-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0djmgc0pfli0jilfx8hql1axhwhqxqb8rxg2r5rg07aw73sfs5nx"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("perl", perl)))
+    (home-page "http://hmmer.janelia.org";)
+    (synopsis "Biosequence analysis using profile hidden Markov models")
+    (description
+     "HMMER is used for searching sequence databases for homologs of protein
+sequences, and for making protein sequence alignments.  It implements methods
+using probabilistic models called profile hidden Markov models (profile
+HMMs).")
+    (license (list license:gpl3+
+                   ;; The bundled library 'easel' is distributed
+                   ;; under The Janelia Farm Software License.
+                   (license: non-copyleft
+                             "file://easel/LICENSE"
+                             "See easel/LICENSE in the distribution.")))))
+
 (define-public htseq
   (package
     (name "htseq")
-- 
2.1.4

Reply via email to