diff mbox series

[bug#47930] gnu: Add pbgzip.

Message ID eb1b7cd3-e60b-46c5-da4a-371b5038b3a3@gnu.org
State Accepted
Headers show
Series [bug#47930] gnu: Add pbgzip. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

Roel Janssen April 21, 2021, 12:26 p.m. UTC
Hi Guix,

Here's a patch to add pbgzip.  Lint complains that there is no release 
on the Github page, but there's nothing I can do about it.

Kind regards,
Roel Janssen

Comments

Xinglu Chen April 21, 2021, 9:44 p.m. UTC | #1
On Wed, Apr 21 2021, Roel Janssen wrote:

> * gnu/packages/bioinformatics.scm (pbgzip): New variable.
>
> [...]
>  
> +(define-public pbgzip
> +  (let ((commit "2b09f97b5f20b6d83c63a5c6b408d152e3982974"))
> +    (package
> +      (name "pbgzip")
> +      (version (string-take commit 7))

I think using (git-version VERSION REVISION COMMIT) is preferred.
Something like (git-version "0.0.0" "0" commit).

> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference
> +                      (url "https://github.com/nh13/pbgzip")
> +                      (commit commit)))
> +                (file-name (string-append name "-" version))

Use (git-file-name name version).

> +                (sha256
> +                 (base32
> +                  "1mlmq0v96irbz71bgw5zcc43g1x32zwnxx21a5p1f1ch4cikw1yd"))))
> +      (build-system gnu-build-system)
> +      (arguments
> +       `(#:phases
> +         (modify-phases %standard-phases
> +           (add-after 'unpack 'autogen
> +             (lambda _
> +               (zero? (system* "sh" "autogen.sh")))))))

IIRC, phases don’t have to return #t, so you could remove ‘zero?’.

Builds fine, but I haven’t tested it.
Xinglu Chen April 21, 2021, 9:45 p.m. UTC | #2
On Wed, Apr 21 2021, Roel Janssen wrote:

> * gnu/packages/bioinformatics.scm (pbgzip): New variable.
>
> [...]
>  
> +(define-public pbgzip
> +  (let ((commit "2b09f97b5f20b6d83c63a5c6b408d152e3982974"))
> +    (package
> +      (name "pbgzip")
> +      (version (string-take commit 7))

I think using (git-version VERSION REVISION COMMIT) is preferred.
Something like (git-version "0.0.0" "0" commit).

> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference
> +                      (url "https://github.com/nh13/pbgzip")
> +                      (commit commit)))
> +                (file-name (string-append name "-" version))

Use (git-file-name name version).

> +                (sha256
> +                 (base32
> +                  "1mlmq0v96irbz71bgw5zcc43g1x32zwnxx21a5p1f1ch4cikw1yd"))))
> +      (build-system gnu-build-system)
> +      (arguments
> +       `(#:phases
> +         (modify-phases %standard-phases
> +           (add-after 'unpack 'autogen
> +             (lambda _
> +               (zero? (system* "sh" "autogen.sh")))))))

IIRC, phases don’t have to return #t, so you could remove ‘zero?’.

Builds fine, but I haven’t tested it.
Maxime Devos April 22, 2021, 4:40 p.m. UTC | #3
Xinglu Chen schreef op wo 21-04-2021 om 23:45 [+0200]:
> On Wed, Apr 21 2021, Roel Janssen wrote:
> 
> > [...]
> > +      (arguments
> > +       `(#:phases
> > +         (modify-phases %standard-phases
> > +           (add-after 'unpack 'autogen
> > +             (lambda _
> > +               (zero? (system* "sh" "autogen.sh")))))))
> 
> IIRC, phases don’t have to return #t, so you could remove ‘zero?’.

Try running (system* "does-not-exist").  It will fail by returning
something non-zero.  If I recall how to call "invoke" correctly,
I would recommend (invoke "sh" "autogen.sh") here.  "invoke" raises
an exception when the command fails, instead of returning something.

Greetings,
Maxime.
Efraim Flashner April 29, 2021, 7:29 a.m. UTC | #4
On Thu, Apr 22, 2021 at 06:40:46PM +0200, Maxime Devos wrote:
> Xinglu Chen schreef op wo 21-04-2021 om 23:45 [+0200]:
> > On Wed, Apr 21 2021, Roel Janssen wrote:
> > 
> > > [...]
> > > +      (arguments
> > > +       `(#:phases
> > > +         (modify-phases %standard-phases
> > > +           (add-after 'unpack 'autogen
> > > +             (lambda _
> > > +               (zero? (system* "sh" "autogen.sh")))))))
> > 
> > IIRC, phases don’t have to return #t, so you could remove ‘zero?’.
> 
> Try running (system* "does-not-exist").  It will fail by returning
> something non-zero.  If I recall how to call "invoke" correctly,
> I would recommend (invoke "sh" "autogen.sh") here.  "invoke" raises
> an exception when the command fails, instead of returning something.

While we're at it, can this phase replace 'bootstrap? It seems to me we
shouldn't need both phases.
diff mbox series

Patch

From 3d34e82ee67f5ee0b226de350f40d7f881169a56 Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Wed, 21 Apr 2021 14:24:07 +0200
Subject: [PATCH] gnu: Add pbgzip.

* gnu/packages/bioinformatics.scm (pbgzip): New variable.
---
 gnu/packages/bioinformatics.scm | 42 ++++++++++++++++++++++++++++++++-
 1 file changed, 41 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 31205c473a..35601378c2 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -3,7 +3,7 @@ 
 ;;; Copyright © 2015, 2016, 2017, 2018 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2015, 2016, 2018, 2019, 2020 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2016, 2020 Roel Janssen <roel@gnu.org>
+;;; Copyright © 2016, 2020, 2021 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2016, 2018 Raoul Bonnal <ilpuccio.febo@gmail.com>
@@ -569,6 +569,46 @@  input and output BAMs must adhere to the PacBio BAM format specification.
 Non-PacBio BAMs will cause exceptions to be thrown.")
     (license license:bsd-3)))
 
+(define-public pbgzip
+  (let ((commit "2b09f97b5f20b6d83c63a5c6b408d152e3982974"))
+    (package
+      (name "pbgzip")
+      (version (string-take commit 7))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/nh13/pbgzip")
+                      (commit commit)))
+                (file-name (string-append name "-" version))
+                (sha256
+                 (base32
+                  "1mlmq0v96irbz71bgw5zcc43g1x32zwnxx21a5p1f1ch4cikw1yd"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'autogen
+             (lambda _
+               (zero? (system* "sh" "autogen.sh")))))))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)))
+      (inputs
+       `(("zlib" ,zlib)))
+      (home-page "https://github.com/nh13/pbgzip")
+      (synopsis "Parallel Block GZIP")
+      (description "This package implements parallel block gzip.  For many
+formats, in particular genomics data formats, data are compressed in
+fixed-length blocks such that they can be easily indexed based on a (genomic)
+coordinate order, since typically each block is sorted according to this order.
+This allows for each block to be individually compressed (deflated), or more
+importantly, decompressed (inflated), with the latter enabling random retrieval
+of data in large files (gigabytes to terabytes).  @code{pbgzip} is not limited
+to any particular format, but certain features are tailored to genomics data
+formats when enabled.  Parallel decompression is somewhat faster, but truly the
+speedup comes during compression.")
+      (license license:expat))))
+
 (define-public blasr-libcpp
   (package
     (name "blasr-libcpp")
-- 
2.31.1