Subject: bug#24834: Samba commands expect configuration file inside store

From: Adonay Felipe Nogueira <[email-masked]>
Date: Sat, 03 Dec 2016 22:06:33 -0200

Here's a patch that tries to fix this issue. I already tested it, but
please do so also just in case.

Respectfully, Adonay.
>From 086396d33e113a6d991b7c63063844c66a5610ca Mon Sep 17 00:00:00 2001
From: Adonay Felipe Nogueira <[email-masked]>
Date: Sat, 3 Dec 2016 21:22:56 -0200
Subject: [PATCH] gnu: samba: Don't expect configuration files inside the
 store.

Attempts to fix <https://bugs.gnu.org/24834>.

* gnu/packages/samba.scm (samba) [arguments]:
  * Set `--sysconfdir` to "/etc".
  * Avoid creation of "/etc/samba" (otherwise would require root).
---
 gnu/packages/samba.scm | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
index 1706ec3..6a27a63 100644
--- a/gnu/packages/samba.scm
+++ b/gnu/packages/samba.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2013, 2015 Ludovic Courtès <[email-masked]>
 ;;; Copyright © 2015 Mark H Weaver <[email-masked]>
 ;;; Copyright © 2016 Efraim Flashner <[email-masked]>
+;;; Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -121,11 +122,17 @@ anywhere.")
                        ;; XXX: heimdal not packaged.
                        "--bundled-libraries=com_err"
                        (string-append "--prefix=" out)
+		       ;; Don't write to store.
+		       "--sysconfdir=/etc"
                        ;; Install public and private libraries into
                        ;; a single directory to avoid RPATH issues.
                        (string-append "--libdir=" libdir)
-                       (string-append "--with-privatelibdir=" libdir)))))))
-
+                       (string-append "--with-privatelibdir=" libdir))))))
+	 (add-before 'install 'disable-etc-samba-directory-creation
+		     (lambda _
+		       (substitute* "dynconfig/wscript"
+				      (("bld\\.INSTALL_DIRS\\(\"\",[[:blank:]]{1,}\"\\$\\{CONFIGDIR\\}[[:blank:]]{1,}")
+				       "bld.INSTALL_DIRS(\"\", \"")))))
        ;; XXX: The test infrastructure attempts to set password with
        ;; smbpasswd, which fails with "smbpasswd -L can only be used by root."
        ;; So disable tests until there's a workaround.
-- 
1.9.1