Subject: Re: [bug#47821] [PATCH] Update htslib, bcftools, samtools, bedtools

From: Roel Janssen <[email-masked]>
Date: Wed, 28 Apr 2021 16:05:09 +0200

On Tue, 2021-04-27 at 10:32 +0300, Efraim Flashner wrote:
> On Fri, Apr 16, 2021 at 11:55:39AM +0200, Roel Janssen wrote:
> > Hi Guix,
> > 
> > The following patches update htslib, bcftools, samtools, and
> > bedtools.
> > I've succesfully built bedtools with the latest samtools instead of
> > the
> > 1.9 version.
> 
> These look good and are ready for merging. Can you take a look at
> python-pybedtools? There's a new version out which I hope builds with
> the newer version of bedtools.
> 
> Thanks.
> 

I looked at python-pybedtools and came up with the following patch.
The test phase is still not entirely happy because it ends with:

---
================ 497 passed, 3 xfailed, 426 warnings in 25.49s
=================
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/gnu/store/rz42ba0my9vrgbkjpkzr2drmnjk5ah50-python-
3.8.2/lib/python3.8/shutil.py", line 704, in rmtree
    orig_st = os.lstat(path)
---

I attached the patch that I have that at least builds the newer version
of python-pybedtools.  I don't know how to further test it.

Can I in the meantime already push the patches for updating htslib,
bcftools, samtools and bedtools?

Kind regards,
Roel Janssen

From 504b3d8ac6b7108b47091d93976e19df5757bf52 Mon Sep 17 00:00:00 2001
From: Roel Janssen <[email-masked]>
Date: Wed, 28 Apr 2021 16:00:38 +0200
Subject: [PATCH 5/5] gnu: Update python-pybedtools to 0.8.2.

* gnu/packages/bioinformatics.scm (python-pybedtools): Update to 0.8.2;
  [disable-broken-tests]: Remove snippets for non-existing 'test_scripts.py'.
---
 gnu/packages/bioinformatics.scm | 23 ++++-------------------
 1 file changed, 4 insertions(+), 19 deletions(-)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 9b448dcd21..9dcae7f8b1 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -815,13 +815,13 @@ intended to behave exactly the same as the original BWK awk.")
 (define-public python-pybedtools
   (package
     (name "python-pybedtools")
-    (version "0.8.1")
+    (version "0.8.2")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "pybedtools" version))
               (sha256
                (base32
-                "14w5i40gi25clrr7h4wa2pcpnyipya8hrqi7nq77553zc5wf0df0"))))
+                "0wc7z8g8prgdx7n5chjva2fdq03wiwhqisjjxzkjg1j5k5ha7151"))))
     (build-system python-build-system)
     (arguments
      `(#:modules ((ice-9 ftw)
@@ -834,13 +834,6 @@ intended to behave exactly the same as the original BWK awk.")
        (modify-phases %standard-phases
          (add-after 'unpack 'disable-broken-tests
            (lambda _
-             (substitute* "pybedtools/test/test_scripts.py"
-               ;; This test freezes.
-               (("def test_intron_exon_reads")
-                "def _do_not_test_intron_exon_reads")
-               ;; This test fails in the Python 2 build.
-               (("def test_venn_mpl")
-                "def _do_not_test_venn_mpl"))
              (substitute* "pybedtools/test/test_helpers.py"
                ;; Requires internet access.
                (("def test_chromsizes")
@@ -880,17 +873,9 @@ intended to behave exactly the same as the original BWK awk.")
                             build-root-directory
                             (find (cut string-prefix? "lib" <>)
                                   (scandir (string-append
-                                            build-root-directory)))))
-                    (scripts (string-append
-                              build-root-directory
-                              (find (cut string-prefix? "scripts" <>)
-                                    (scandir build-root-directory)))))
+                                            build-root-directory))))))
                (setenv "PYTHONPATH"
-                       (string-append build ":" (getenv "PYTHONPATH")))
-               ;; Executable scripts such as 'intron_exon_reads.py' must be
-               ;; available in the PATH.
-               (setenv "PATH"
-                       (string-append scripts ":" (getenv "PATH"))))
+                       (string-append build ":" (getenv "PYTHONPATH"))))
              ;; The tests need to be run from elsewhere...
              (mkdir-p "/tmp/test")
              (copy-recursively "pybedtools/test" "/tmp/test")
-- 
2.31.1