On Tue, Sep 15, 2015 at 8:15 AM, Pjotr Prins <pjotr.publi...@thebird.nl> wrote: > * gnu/packages/ruby.scm (ruby-libxml): New variable. > * gnu/packages/bioinformatics.scm (bioruby): New variable. > --- > gnu/packages/bioinformatics.scm | 47 > +++++++++++++++++++++++++++++++++++++++++ > gnu/packages/ruby.scm | 26 +++++++++++++++++++++++ > 2 files changed, 73 insertions(+)
One package per patch, please. > diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm > index 1f34211..b297ef2 100644 > --- a/gnu/packages/bioinformatics.scm > +++ b/gnu/packages/bioinformatics.scm > @@ -2642,3 +2642,50 @@ position for indels. Bio-locus allows users to store > this chr+pos or > chr+pos+alt information in a database.") > (home-page "https://github.com/pjotrp/bio-locus") > (license license:expat))) > + > +(define-public bioruby > + (package > + (name "bioruby") > + (version "1.5.0") > + (source > + (origin > + (method url-fetch) > + (uri (rubygems-uri "bio" version)) > + (sha256 > + (base32 > + "01k2fyjl5fpx4zn8g6gqiqvsg2j1fgixrs9p03vzxckynxdq3wmc")))) > + (build-system ruby-build-system) > + (native-inputs `(("ruby-libxml" ,ruby-libxml))) This should be a propagated input. > + (inputs > + `(("coreutils" ,coreutils) ; required for /bin/echo in tests Coreutils is an implict input to the Ruby build system. > + ("which" ,which))) ; required for tests This should be a native input since it's only needed at build time. > + (arguments > + `(#:phases > + (alist-cons-before > + 'build 'replace-sh-commands > + (lambda _ > + (substitute* '("test/functional/bio/test_command.rb") > + (("/bin/sh") (which "sh"))) > + (substitute* '("test/functional/bio/test_command.rb") > + (("/bin/ls") (which "ls"))) > + (substitute* '("test/functional/bio/test_command.rb") > + (("which") (which "which"))) > + (substitute* '("test/functional/bio/test_command.rb", > + "test/data/command/echoarg2.sh") > + (("/bin/echo") (which "echo")))) > + %standard-phases))) > + (synopsis > + "Ruby library, shell and utilities for bioinformatics") > + (description > + "BioRuby comes with a comprehensive set of free development Everything in Guix is necessarily free, so we like to keep "free", "open", etc. out of package descriptions. > +tools and libraries for bioinformatics and molecular biology, for the > +Ruby programming language. BioRuby has components for sequence > +analysis, pathway analysis, protein modelling and phylogenetic > +analysis; it supports many widely used data formats and provides easy > +access to databases, external programs and public web services, > +including BLAST, KEGG, GenBank, MEDLINE and GO.") > + (home-page "http://bioruby.org/") > + ;; Code is released under Ruby license, except for setup > + ;; (LGPLv2.1+), scripts in samples (GPL2 and GPL2+) > + (license (list license:ruby license:lgpl2.1+ license:gpl2 > + license:gpl2+ )))) Wouldn't this make the collective work GPL2+? Ludo or Mark, can you weigh in here? > diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm > index ee0acc8..1ca5f96 100644 > --- a/gnu/packages/ruby.scm > +++ b/gnu/packages/ruby.scm > @@ -465,6 +465,32 @@ extensions.") > (home-page "http://codeforpeople.com/lib/ruby/orderedhash/") > (license license:public-domain))) > > +(define-public ruby-libxml > + (package > + (name "ruby-libxml") > + (version "2.8.0") > + (source > + (origin > + (method url-fetch) > + (uri (rubygems-uri "libxml-ruby" version)) > + (sha256 > + (base32 > + "1dhjqp4r9vkdp00l6h1cj8qfndzxlhlxk6b9g0w4v55gz857ilhb")))) > + (build-system ruby-build-system) > + (inputs `(("zlib" ,zlib) > + ("libxml2" ,libxml2))) > + (arguments > + '(#:tests? #f ; tests need installation of build first Usually gems with native extensions just redundantly build themselves in the source directory before running tests, which I guess is not the case here. It looks like you need to at least add ruby-rake-compiler to native-inputs and run 'rake compile' before running the tests. I tried to do this outside the build container from a git checkout and several tests failed. Give it a shot in the build recipe and see how it goes. If the problems are very difficult to solve, we can leave the tests disabled with a note about the failures and problems to solve. Unfortunately, it seems there's no way to avoid compiling native extensions twice when we do run tests since it needs to be compiled in the source tree for tests, and then again when running 'gem install'. The Ruby way of building things leaves much to be desired. > + #:gem-flags (list "--" > + (string-append "--with-xml2-include=" > + (assoc-ref %build-inputs "libxml2") > + "/include/libxml2" )))) > + (synopsis "Ruby bindings for the GNOME Libxml2 XML toolkit") > + (description "The Libxml-Ruby project provides Ruby language > +bindings for the GNOME Libxml2 XML toolkit.") > + (home-page "http://xml4r.github.com/libxml-ruby") > + (license license:expat))) > + > (define-public ruby-xml-simple > (package > (name "ruby-xml-simple") > -- > 2.4.3 Could you look into the above issues and send updated patches? Thanks! - Dave