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

From: Thomas Danckaert <[email-masked]>
Date: Sat, 01 Apr 2017 08:47:41 +0200

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
+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+))))
+
 (define-public iniparser
   (package
     (name "iniparser")
-- 
2.12.2