Subject: bug#26312: [PATCH] gnu: Add cifs-utils.

From: Marius Bakke <[email-masked]>
Date: Sat, 01 Apr 2017 19:18:01 +0200

Thomas Danckaert <[email-masked]> writes:

> Tobias Geerinckx-Rice <[email-masked]> writes:
>
>> Thomas,
>>
>> I don't have any Samba shares to test this on, but will try my hand at
>> this reviewing business anyway.
>
> Thanks!  I followed all of your suggestions.
>
>> Aside: GNU uses ‘file system’, not ‘filesystem’, because GNU is rad. How
>> about expanding the acronym at the same time? E.g.:
>>
>>   ‘the @{Common Internet File System} (CIFS) implementation built into
>>    the Linux kernel’.
>>
>> Bonus points for replacing the horrid word ‘implementation’ :-)
>
> I stole this from somewhere:
>
> “@code{cifs-utils} is a set of user-space utilities for mounting and
> managing @{Common Internet File System} (CIFS) shares using the Linux
> kernel CIFS client.”
>
> Thomas
>
> From 08858a1e8674f868db2fc255e47bb18aa0ee9de9 Mon Sep 17 00:00:00 2001
> From: Thomas Danckaert <[email-masked]>
> Date: Thu, 30 Mar 2017 17:47:00 +0200
> Subject: [PATCH] gnu: Add cifs-utils.
>
> * gnu/packages/samba.scm (cifs-utils): New variable.
> ---
>  gnu/packages/samba.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 48 insertions(+)
>
> diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
> index 3b2a6868d..92531eebf 100644
> --- a/gnu/packages/samba.scm
> +++ b/gnu/packages/samba.scm
> @@ -3,6 +3,7 @@
>  ;;; Copyright © 2015 Mark H Weaver <[email-masked]>
>  ;;; Copyright © 2016, 2017 Efraim Flashner <[email-masked]>
>  ;;; Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <[email-masked]>
> +;;; Copyright © 2017 Thomas Danckaert <[email-masked]>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -26,6 +27,8 @@
>    #:use-module (guix licenses)
>    #:use-module (gnu packages acl)
>    #:use-module (gnu packages admin)
> +  #:use-module (gnu packages autotools)
> +  #:use-module (gnu packages crypto)
>    #:use-module (gnu packages cups)
>    #:use-module (gnu packages databases)
>    #:use-module (gnu packages tls)
> @@ -33,10 +36,55 @@
>    #:use-module (gnu packages pkg-config)
>    #:use-module (gnu packages openldap)
>    #:use-module (gnu packages readline)
> +  #:use-module (gnu packages kerberos)
>    #:use-module (gnu packages linux)
>    #:use-module (gnu packages perl)
>    #:use-module (gnu packages python))
>  
> +(define-public cifs-utils
> +  (package
> +    (name "cifs-utils")
> +    (version "6.7")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "https://download.samba.org/pub/linux-cifs/"
> +                           name "/" name "-" version ".tar.bz2"))
> +       (sha256 (base32
> +                "1ayghnkryy1n1zm5dyvyyr7n3807nsm6glfcbbki5c2a8w91dwmj"))))
> +    (build-system gnu-build-system)
> +    (native-inputs
> +     `(("autoconf" ,autoconf)
> +       ("automake" ,automake)
> +       ("pkg-config" ,pkg-config)))
> +    (inputs
> +     `(("keytuils" ,keyutils)
> +       ("linux-pam" ,linux-pam)
> +       ("libcap-ng" ,libcap-ng)
> +       ("mit-krb5" ,mit-krb5)
> +       ("samba" ,samba)
> +       ("talloc" ,talloc)))
> +    (arguments
> +     `(#:phases
> +       (modify-phases %standard-phases
> +         ;; The 6.7 tarball is missing ‘install.sh’. Create it.
> +         (add-before 'configure 'autoreconf
> +           (lambda _
> +             (zero? (system* "autoreconf" "-i"))))
> +         (add-before 'configure 'set-root-sbin
> +           (lambda _ ; Don't try to install in "/sbin".
> +             (setenv "ROOTSBINDIR"
> +                     (string-append (assoc-ref %outputs "out") "/sbin"))
> +             #t)))))
> +    (synopsis "User-space utilities for Linux CIFS (Samba) mounts")
> +    (description "@code{cifs-utils} is a set of user-space utilities for
> +mounting and managing @{Common Internet File System} (CIFS) shares using the
                         ^^^
                         This should be @dfn{...}.

> +Linux kernel CIFS client.")
> +    (home-page "https://wiki.samba.org/index.php/LinuxCIFS_utils")
> +    ;; cifs-utils is licensed as GPL3 or later, but 3 files contain LGPL code.
> +    (license
> +     (list gpl3+ lgpl2.1+ lgpl3+))))

Could you mention which files, since it's only three? I also think
listing both lgpl2.1+ and lgpl3+ is redundant; if these source files
interact in some way the result is effectively lgpl3+. If the LGPL2.1+
code is what is installed, I would pick that since it implies LGPL3+.

The rest LGTM!

> +
>  (define-public iniparser
>    (package
>      (name "iniparser")
> -- 
> 2.12.2