Subject: Re: bug#26112: [PATCH 2/7] gnu: Add niftilib.

From: Kei Kebreau <[email-masked]>
Date: Fri, 17 Mar 2017 16:18:31 -0400

John Darrington <[email-masked]> writes:

> * gnu/packages/image.scm (niftilib): New variable.
> ---
>  gnu/packages/image.scm | 58 +++++++++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 57 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
> index 53ed69a..82ea89c 100644
> --- a/gnu/packages/image.scm
> +++ b/gnu/packages/image.scm
> @@ -6,7 +6,7 @@
>  ;;; Copyright © 2014, 2016 Ricardo Wurmus <[email-masked]>
>  ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <[email-masked]>
>  ;;; Copyright © 2015 Amirouche Boubekki <[email-masked]>
> -;;; Copyright © 2014 John Darrington <[email-masked]>
> +;;; Copyright © 2014, 2017 John Darrington <[email-masked]>
>  ;;; Copyright © 2016 Leo Famulari <[email-masked]>
>  ;;; Copyright © 2016, 2017 Leo Famulari <[email-masked]>
>  ;;; Copyright © 2016, 2017 Efraim Flashner <[email-masked]>
> @@ -1114,3 +1114,59 @@ interface.  It supports color space extensions that allow it to compress from
>  and decompress to 32-bit and big-endian pixel buffers (RGBX, XBGR, etc.).")
>      (license (list license:bsd-3        ; jsimd*.[ch] and most of simd/
>                     license:ijg))))      ; the rest
> +
> +(define-public niftilib
> +  (package
> +   (name "niftilib")
> +   (version "2.0.0")
> +   (source (origin
> +            (method url-fetch)
> +            (uri (list (string-append "mirror://sourceforge/niftilib/"
> +                                      "nifticlib/nifticlib_2_0_0/"

Instead of 2_0_0, you could use the trusty

(string-join (string-split version #\.) "_")

trick. It's less error-prone when updates come around.

> +                                      "/nifticlib-" version ".tar.gz")))
> +            (sha256
> +             (base32 "123z9bwzgin5y8gi5ni8j217k7n683whjsvg0lrpii9flgk8isd3"))))
> +   (build-system gnu-build-system)
> +   (arguments
> +    '(#:tests? #f
> +      #:parallel-build? #f
> +      #:phases
> +      (modify-phases %standard-phases
> +        (replace 'install
> +                 (lambda _
> +                   (for-each
> +                    (lambda (dir)
> +                      (let ((directory (assoc-ref %outputs "out")))
> +                        (mkdir-p (string-append directory "/" dir))
> +                        (zero? (system* "cp" "-a" dir directory))))
> +                    '("bin" "lib" "include"))))
> +        (replace 'configure
> +                 (lambda _
> +                   (substitute* "Makefile"
> +                     (("^SHELL[ \t]*=[ \t]*csh")
> +                      (string-append "SHELL = "
> +                                     (assoc-ref %build-inputs "bash")
> +                                     "/bin/sh"))
> +
> +                     (("^CFLAGS[ \t]*=[ \t]\\$\\(ANSI_FLAGS\\)")
> +                      "CFLAGS = $(ANSI_FLAGS) -fPIC")
> +
> +                     (("^ZLIB_INC[ \t]*=[ \t]*-I/usr/include")
> +                      (string-append "ZLIB_INC = -I"
> +                                     (assoc-ref %build-inputs "zlib")
> +                                     "/include"))
> +
> +                     (("^CP[ \t]*=[ \t]*cp")
> +                      (string-append "CP = "
> +                                     (assoc-ref %build-inputs "coreutils")
> +                                     "/bin/cp")))
> +                   #t)))))
> +   (inputs
> +    `(("zlib" ,zlib)))
> +   (synopsis "Library for reading and writing files in the nifti-1 format")
> +   (description   "Niftilib is a set of i/o libraries for reading and writing

Why is there a triple space between "description" and the double quote?
Am I correct in assuming that it's accidental?

> +files in the nifti-1 data format - a binary file format for storing
> +medical image data, e.g. magnetic resonance image (MRI) and functional MRI
> +(fMRI) brain images.")
> +   (home-page "http://niftilib.sourceforge.net")
> +   (license license:public-domain)))

Other than that, LGTM.