GNU bug report logs -
#35207
[PATCH] Resurrect pplacer.
Previous Next
Reported by: Ricardo Wurmus <rekado <at> elephly.net>
Date: Tue, 9 Apr 2019 13:03:02 UTC
Severity: normal
Tags: patch
Done: Ricardo Wurmus <rekado <at> elephly.net>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 35207 in the body.
You can then email your comments to 35207 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#35207
; Package
guix-patches
.
(Tue, 09 Apr 2019 13:03:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Ricardo Wurmus <rekado <at> elephly.net>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Tue, 09 Apr 2019 13:03:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Hi Guix,
this patch series adds pplacer, which had been removed due to its
dependency on the vulnerable OCaml 4.01.
--
Ricardo
Information forwarded
to
guix-patches <at> gnu.org
:
bug#35207
; Package
guix-patches
.
(Tue, 09 Apr 2019 13:20:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 35207 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/machine-learning.scm (ocaml4.02-mcl): New variable.
---
gnu/packages/machine-learning.scm | 3 +++
1 file changed, 3 insertions(+)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 10aff22206..5b2786b61c 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -334,6 +334,9 @@ networks) based on simulation of (stochastic) flow in graphs.")
algorithm.")
(license license:gpl3)))
+(define-public ocaml4.02-mcl
+ (package-with-ocaml4.02 ocaml-mcl))
+
(define-public randomjungle
(package
(name "randomjungle")
--
2.20.1
Information forwarded
to
guix-patches <at> gnu.org
:
bug#35207
; Package
guix-patches
.
(Tue, 09 Apr 2019 13:20:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 35207 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/ocaml.scm (ocaml4.02-gsl): New variable.
---
gnu/packages/ocaml.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 7bebf3921b..bf5d39db6c 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -4824,6 +4824,28 @@ Atom.")
the OCaml language.")
(license license:gpl3+)))
+;; This is the last version that can be built with without ocaml-base, which
+;; cannot be built with OCaml 4.02.
+(define-public ocaml4.02-gsl
+ (package
+ (inherit (package-with-ocaml4.02 ocaml-gsl))
+ (version "1.19.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/mmottl/gsl-ocaml"
+ "/releases/download/v"
+ version "/gsl-ocaml-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0nzp43hp8pbjqkrxnwp5lgjrabxayf61h18fjaydi0s5faq6f3xh"))))
+ (build-system ocaml-build-system)
+ (inputs
+ `(("gsl" ,gsl)))
+ (arguments
+ `(#:ocaml ,ocaml-4.02
+ #:findlib ,ocaml4.02-findlib))
+ (propagated-inputs '())))
+
(define-public cubicle
(package
(name "cubicle")
--
2.20.1
Information forwarded
to
guix-patches <at> gnu.org
:
bug#35207
; Package
guix-patches
.
(Tue, 09 Apr 2019 13:21:01 GMT)
Full text and
rfc822 format available.
Message #14 received at 35207 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/bioinformatics.scm (pplacer, pplacer-scripts): New variables.
---
gnu/packages/bioinformatics.scm | 151 ++++++++++++++++++++++++++++++++
1 file changed, 151 insertions(+)
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 4cd032abd4..c073519dc3 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -14555,3 +14555,154 @@ overlapping paired-ended reads into (longer) consensus sequences.
Additionally, the AdapterRemoval may be used to recover a consensus adapter
sequence for paired-ended data, for which this information is not available.")
(license license:gpl3+)))
+
+(define-public pplacer
+ (let ((commit "807f6f3"))
+ (package
+ (name "pplacer")
+ ;; The commit should be updated with each version change.
+ (version "1.1.alpha19")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/matsen/pplacer.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "11ppbbbx20p2g9wj3ff64dhnarb12q79v7qh4rk0gj6lkbz4n7cn"))))
+ (build-system ocaml-build-system)
+ (arguments
+ `(#:ocaml ,ocaml-4.02
+ #:findlib ,ocaml4.02-findlib
+ #:modules ((guix build ocaml-build-system)
+ (guix build utils)
+ (ice-9 ftw))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'fix-build-with-ocaml-4.02
+ (lambda _
+ (substitute* "myocamlbuild.ml"
+ (("let run_and_read" m)
+ (string-append "
+let split s ch =
+ let x = ref [] in
+ let rec go s =
+ let pos = String.index s ch in
+ x := (String.before s pos)::!x;
+ go (String.after s (pos + 1))
+ in
+ try go s
+ with Not_found -> !x
+let split_nl s = split s '\\n'
+let before_space s =
+ try String.before s (String.index s ' ')
+ with Not_found -> s
+
+" m))
+ (("run_and_read \"ocamlfind list \\| cut -d' ' -f1\"" m)
+ (string-append "List.map before_space (split_nl & " m ")"))
+ ((" blank_sep_strings &") "")
+ ((" Lexing.from_string &") ""))
+ #t))
+ (add-after 'unpack 'replace-bundled-cddlib
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((cddlib-src (assoc-ref inputs "cddlib-src"))
+ (local-dir "cddlib_guix"))
+ (mkdir local-dir)
+ (with-directory-excursion local-dir
+ (invoke "tar" "xvf" cddlib-src))
+ (let ((cddlib-src-folder
+ (string-append local-dir "/"
+ (list-ref (scandir local-dir) 2)
+ "/lib-src")))
+ (for-each make-file-writable (find-files "cdd_src" ".*"))
+ (for-each
+ (lambda (file)
+ (copy-file file
+ (string-append "cdd_src/" (basename file))))
+ (find-files cddlib-src-folder ".*[ch]$")))
+ #t)))
+ (add-after 'unpack 'fix-makefile
+ (lambda _
+ ;; Remove system calls to 'git'.
+ (substitute* "Makefile"
+ (("^DESCRIPT:=pplacer-.*")
+ (string-append
+ "DESCRIPT:=pplacer-$(shell uname)-v" ,version "\n")))
+ (substitute* "myocamlbuild.ml"
+ (("git describe --tags --long .*\\\" with")
+ (string-append
+ "echo -n v" ,version "-" ,commit "\" with")))
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (copy-recursively "bin" bin))
+ #t)))))
+ (inputs
+ `(("zlib" ,zlib "static")
+ ("gsl" ,gsl)
+ ("ocaml-ounit" ,ocaml4.02-ounit)
+ ("ocaml-batteries" ,ocaml4.02-batteries)
+ ("ocaml-camlzip" ,ocaml4.02-camlzip)
+ ("ocaml-csv" ,ocaml4.02-csv)
+ ("ocaml-sqlite3" ,ocaml4.02-sqlite3)
+ ("ocaml-xmlm" ,ocaml4.02-xmlm)
+ ("ocaml-mcl" ,ocaml4.02-mcl)
+ ("ocaml-gsl" ,ocaml4.02-gsl)))
+ (native-inputs
+ `(("cddlib-src" ,(package-source cddlib))
+ ("pkg-config" ,pkg-config)))
+ (propagated-inputs
+ `(("pplacer-scripts" ,pplacer-scripts)))
+ (synopsis "Phylogenetic placement of biological sequences")
+ (description
+ "Pplacer places query sequences on a fixed reference phylogenetic tree
+to maximize phylogenetic likelihood or posterior probability according to a
+reference alignment. Pplacer is designed to be fast, to give useful
+information about uncertainty, and to offer advanced visualization and
+downstream analysis.")
+ (home-page "http://matsen.fhcrc.org/pplacer")
+ (license license:gpl3))))
+
+;; This package is installed alongside 'pplacer'. It is a separate package so
+;; that it can use the python-build-system for the scripts that are
+;; distributed alongside the main OCaml binaries.
+(define pplacer-scripts
+ (package
+ (inherit pplacer)
+ (name "pplacer-scripts")
+ (build-system python-build-system)
+ (arguments
+ `(#:python ,python-2
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'enter-scripts-dir
+ (lambda _ (chdir "scripts") #t))
+ (replace 'check
+ (lambda _ (invoke "python" "-m" "unittest" "discover" "-v") #t))
+ (add-after 'install 'wrap-executables
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (let ((path (string-append
+ (assoc-ref inputs "hmmer") "/bin:"
+ (assoc-ref inputs "infernal") "/bin")))
+ (display path)
+ (wrap-program (string-append bin "/refpkg_align.py")
+ `("PATH" ":" prefix (,path))))
+ (let ((path (string-append
+ (assoc-ref inputs "hmmer") "/bin")))
+ (wrap-program (string-append bin "/hrefpkg_query.py")
+ `("PATH" ":" prefix (,path)))))
+ #t)))))
+ (inputs
+ `(("infernal" ,infernal)
+ ("hmmer" ,hmmer)))
+ (propagated-inputs
+ `(("python-biopython" ,python2-biopython)
+ ("taxtastic" ,taxtastic)))
+ (synopsis "Pplacer Python scripts")))
--
2.20.1
Information forwarded
to
guix-patches <at> gnu.org
:
bug#35207
; Package
guix-patches
.
(Tue, 09 Apr 2019 17:13:02 GMT)
Full text and
rfc822 format available.
Message #17 received at 35207 <at> debbugs.gnu.org (full text, mbox):
Le 9 avril 2019 15:00:02 GMT+02:00, Ricardo Wurmus <rekado <at> elephly.net> a écrit :
>Hi Guix,
>
>this patch series adds pplacer, which had been removed due to its
>dependency on the vulnerable OCaml 4.01.
We're going to have the same issue with ocaml-4.02, so I don't think we should add more dependents. I'd like to remove ocaml-4.02 but I'm a bit stuck because of bap right now.
What's the most recent version of ocaml pplacer can use?
Information forwarded
to
guix-patches <at> gnu.org
:
bug#35207
; Package
guix-patches
.
(Tue, 09 Apr 2019 17:42:02 GMT)
Full text and
rfc822 format available.
Message #20 received at 35207 <at> debbugs.gnu.org (full text, mbox):
Julien Lepiller <julien <at> lepiller.eu> writes:
> What's the most recent version of ocaml pplacer can use?
It’s actually 4.01. I don’t know how much effort it’s going to be to
make it work with the latest version.
--
Ricardo
Information forwarded
to
guix-patches <at> gnu.org
:
bug#35207
; Package
guix-patches
.
(Thu, 11 Apr 2019 12:57:02 GMT)
Full text and
rfc822 format available.
Message #23 received at 35207 <at> debbugs.gnu.org (full text, mbox):
Ricardo Wurmus <rekado <at> elephly.net> writes:
> Julien Lepiller <julien <at> lepiller.eu> writes:
>
>> What's the most recent version of ocaml pplacer can use?
>
> It’s actually 4.01. I don’t know how much effort it’s going to be to
> make it work with the latest version.
I gave patching pplacer a try, but in more recent versions of OCaml
strings are byte streams, so it’s quite a bit of work to figure out
where exactly to convert strings to byte streams and back again.
I’ll keep working on this for a while, but for now I’d like to get
pplacer resurrected with 4.02 first.
--
Ricardo
Information forwarded
to
guix-patches <at> gnu.org
:
bug#35207
; Package
guix-patches
.
(Thu, 11 Apr 2019 13:03:02 GMT)
Full text and
rfc822 format available.
Message #26 received at 35207 <at> debbugs.gnu.org (full text, mbox):
Le 11 avril 2019 14:55:44 GMT+02:00, Ricardo Wurmus <rekado <at> elephly.net> a écrit :
>
>Ricardo Wurmus <rekado <at> elephly.net> writes:
>
>> Julien Lepiller <julien <at> lepiller.eu> writes:
>>
>>> What's the most recent version of ocaml pplacer can use?
>>
>> It’s actually 4.01. I don’t know how much effort it’s going to be to
>> make it work with the latest version.
>
>I gave patching pplacer a try, but in more recent versions of OCaml
>strings are byte streams, so it’s quite a bit of work to figure out
>where exactly to convert strings to byte streams and back again.
>
>I’ll keep working on this for a while, but for now I’d like to get
>pplacer resurrected with 4.02 first.
>
>--
>Ricardo
Ok, I guess it's acceptable. I'll fully review your patches later today.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#35207
; Package
guix-patches
.
(Thu, 11 Apr 2019 14:58:01 GMT)
Full text and
rfc822 format available.
Message #29 received at 35207 <at> debbugs.gnu.org (full text, mbox):
Julien Lepiller <julien <at> lepiller.eu> writes:
> Le 11 avril 2019 14:55:44 GMT+02:00, Ricardo Wurmus <rekado <at> elephly.net> a écrit :
>>
>>Ricardo Wurmus <rekado <at> elephly.net> writes:
>>
>>> Julien Lepiller <julien <at> lepiller.eu> writes:
>>>
>>>> What's the most recent version of ocaml pplacer can use?
>>>
>>> It’s actually 4.01. I don’t know how much effort it’s going to be to
>>> make it work with the latest version.
>>
>>I gave patching pplacer a try, but in more recent versions of OCaml
>>strings are byte streams, so it’s quite a bit of work to figure out
>>where exactly to convert strings to byte streams and back again.
>>
>>I’ll keep working on this for a while, but for now I’d like to get
>>pplacer resurrected with 4.02 first.
>>
>>--
>>Ricardo
>
> Ok, I guess it's acceptable. I'll fully review your patches later today.
Thanks for the offer, but it won’t be necessary after all. I figured
out how to make it work with the latest OCaml. I had to also patch
ocaml-mcl, but that seems okay.
New patches coming in a few minutes!
--
Ricardo
Reply sent
to
Ricardo Wurmus <rekado <at> elephly.net>
:
You have taken responsibility.
(Thu, 11 Apr 2019 15:40:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Ricardo Wurmus <rekado <at> elephly.net>
:
bug acknowledged by developer.
(Thu, 11 Apr 2019 15:40:02 GMT)
Full text and
rfc822 format available.
Message #34 received at 35207-done <at> debbugs.gnu.org (full text, mbox):
Ricardo Wurmus <rekado <at> elephly.net> writes:
> Julien Lepiller <julien <at> lepiller.eu> writes:
>
>> Le 11 avril 2019 14:55:44 GMT+02:00, Ricardo Wurmus <rekado <at> elephly.net> a écrit :
>>>
>>>Ricardo Wurmus <rekado <at> elephly.net> writes:
>>>
>>>> Julien Lepiller <julien <at> lepiller.eu> writes:
>>>>
>>>>> What's the most recent version of ocaml pplacer can use?
>>>>
>>>> It’s actually 4.01. I don’t know how much effort it’s going to be to
>>>> make it work with the latest version.
>>>
>>>I gave patching pplacer a try, but in more recent versions of OCaml
>>>strings are byte streams, so it’s quite a bit of work to figure out
>>>where exactly to convert strings to byte streams and back again.
>>>
>>>I’ll keep working on this for a while, but for now I’d like to get
>>>pplacer resurrected with 4.02 first.
>>>
>>>--
>>>Ricardo
>>
>> Ok, I guess it's acceptable. I'll fully review your patches later today.
>
> Thanks for the offer, but it won’t be necessary after all. I figured
> out how to make it work with the latest OCaml. I had to also patch
> ocaml-mcl, but that seems okay.
>
> New patches coming in a few minutes!
I pushed the new patches to the “master” branch with commit 12327d7447.
--
Ricardo
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Fri, 10 May 2019 11:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 4 years and 346 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.