Subject: Re: bug#49851: [PATCH] gnu: Add libiscsi.
From: Maxim Cournoyer <[email-masked]>
To: Ron Nazarov <[email-masked]>
Cc: [email-masked]
Date: Thu, 24 Feb 2022 00:10:57 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello!

Ron Nazarov <[email-masked]> writes:

> * gnu/packages/scsi.scm (libiscsi): New variable.
> ---
>  gnu/packages/scsi.scm | 34 ++++++++++++++++++++++++++++++++--
>  1 file changed, 32 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/packages/scsi.scm b/gnu/packages/scsi.scm
> index 4c3bfd7e33..ae4f60c10d 100644
> --- a/gnu/packages/scsi.scm
> +++ b/gnu/packages/scsi.scm
> @@ -1,6 +1,7 @@
>  ;;; GNU Guix --- Functional package management for GNU
>  ;;; Copyright © 2016 Chris Marusich <[email-masked]>
>  ;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <[email-masked]>
> +;;; Copyright © 2021 Noisytoot <[email-masked]>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -19,10 +20,12 @@
>  
>  (define-module (gnu packages scsi)
>    #:use-module ((guix licenses)
> -                #:select (gpl2+ bsd-2 bsd-3))
> +                #:select (gpl2+ bsd-2 bsd-3 lgpl2.1+))
>    #:use-module (guix packages)
>    #:use-module (guix download)
> -  #:use-module (guix build-system gnu))
> +  #:use-module (guix git-download)
> +  #:use-module (guix build-system gnu)
> +  #:use-module (gnu packages autotools))
>  
>  (define-public sg3-utils
>    (package
> @@ -65,3 +68,30 @@ used in C and C++ programs to interact with SCSI devices.")
>      ;;   various source code files refer to a file called "BSD_LICENSE" [...]."
>      ;; Some files (like sg_compare_and_write.c) retain their 3-clause headers!
>      (license (list gpl2+ bsd-2 bsd-3))))
> +
> +(define-public libiscsi
> +  (package
> +    (name "libiscsi")
> +    (version "1.19.0")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/sahlberg/libiscsi")
> +             (commit version)))
> +       (sha256
> +        (base32
> +         "0ajrkkg5awmi8m4b3mha7h07ylg18k252qprvk1sgq0qbyd66zy7"))
> +       (file-name (git-file-name name version))))
> +    (build-system gnu-build-system)
> +    (native-inputs
> +     `(("autoconf" ,autoconf)
> +       ("automake" ,automake)
> +       ("libtool" ,libtool)))
> +    (synopsis "Client-side library for iSCSI")
> +    (description "Libiscsi is a client-side library to implement
> +the iSCSI protocol that can be used to access the resources of an iSCSI target.
> +It is fully asynchronous with regards to iSCSI commands and SCSI tasks,
> +but a synchronous layer is also provided for ease of use for simpler applications.")
> +    (home-page "https://github.com/sahlberg/libiscsi")
> +    (license (list gpl2+ lgpl2.1+))))

Well done!  I've modified it a bit like so:

modified   gnu/packages/scsi.scm
@@ -87,14 +87,16 @@ (define-public libiscsi
          "0ajrkkg5awmi8m4b3mha7h07ylg18k252qprvk1sgq0qbyd66zy7"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+    (native-inputs (list autoconf automake libtool))

For the new style inputs.

     (synopsis "Client-side library for iSCSI")
-    (description "Libiscsi is a client-side library to implement
-the iSCSI protocol that can be used to access the resources of an iSCSI target.
-It is fully asynchronous with regards to iSCSI commands and SCSI tasks,
-but a synchronous layer is also provided for ease of use for simpler applications.")
+    (description "Libiscsi is a client-side library to implement the iSCSI
+protocol that can be used to access the resources of an iSCSI target.  It is
+fully asynchronous with regards to iSCSI commands and SCSI tasks, but a
+synchronous layer is also provided for ease of use for simpler
applications.")

Re-flowed the text in Emacs.

     (home-page "https://github.com/sahlberg/libiscsi")
-    (license (list gpl2+ lgpl2.1+))))
+    (license (list
+              ;; For the src, examples and test-tool directories, except
+              ;; src/ld_iscsi.c.
+              gpl2+
+              ;; For the lib and include directories.
+              lgpl2.1+))))

Added explanatory comments for the licenses.

And pushed as bf827d6465.

Thank you!

Maxim