summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludovic.courtes@inria.fr>2020-08-27 15:02:04 +0200
committerLudovic Courtès <ludo@gnu.org>2020-08-27 19:58:16 +0200
commit8df6900dffa9e1c74ac3f64877f067974eee0eeb (patch)
tree856c65f5a7d8ecd44ba01800692331e58951d75e
parent0c9d22c13fef9056413338293747c0d32f0cd5a4 (diff)
downloadguix-8df6900dffa9e1c74ac3f64877f067974eee0eeb.tar.gz
gnu: sssd: Pass '--localstatedir=/var' and '--sysconfdir=/etc'.
This ensures notably that libnss_sss looks for the mmap cache files in
the right place, /var/lib/sss/mc, rather than in the store.

* gnu/packages/patches/sssd-system-directories.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/sssd.scm (sssd)[source]: Use it.
[arguments]: Pass "--localstatedir" and "--sysconfdir".
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/sssd-system-directories.patch56
-rw-r--r--gnu/packages/sssd.scm8
3 files changed, 63 insertions, 2 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 76f6fe6be5..9c54368eb3 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1570,6 +1570,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/sooperlooper-build-with-wx-30.patch 	\
   %D%/packages/patches/sphinxbase-fix-doxygen.patch		\
   %D%/packages/patches/sssd-fix-samba.patch			\
+  %D%/packages/patches/sssd-system-directories.patch		\
   %D%/packages/patches/steghide-fixes.patch			\
   %D%/packages/patches/suitesparse-mongoose-cmake.patch		\
   %D%/packages/patches/superlu-dist-awpm-grid.patch		\
diff --git a/gnu/packages/patches/sssd-system-directories.patch b/gnu/packages/patches/sssd-system-directories.patch
new file mode 100644
index 0000000000..f2ab0182e1
--- /dev/null
+++ b/gnu/packages/patches/sssd-system-directories.patch
@@ -0,0 +1,56 @@
+Do not attempt to create $localstatedir and $sysconfdir (i.e., /var and /etc)
+upon "make install".
+
+diff --git a/Makefile.in b/Makefile.in
+index c32cb7d..77a5c00 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -7991,7 +7991,7 @@ sssdconfdir = $(sysconfdir)/sssd
+ sssddatadir = $(datadir)/sssd
+ sssdapiplugindir = $(sssddatadir)/sssd.api.d
+ sssdtapscriptdir = $(sssddatadir)/systemtap
+-dbuspolicydir = $(sysconfdir)/dbus-1/system.d
++dbuspolicydir = $(prefix)/etc/dbus-1/system.d
+ dbusservicedir = $(datadir)/dbus-1/system-services
+ sss_statedir = $(localstatedir)/lib/sss
+ pamlibdir = @pammoddir@
+@@ -8000,7 +8000,7 @@ nfslibdir = @nfsidmaplibdir@
+ keytabdir = $(sss_statedir)/keytabs
+ pkgconfigdir = $(libdir)/pkgconfig
+ sudolibdir = @sudolibpath@
+-pamconfdir = $(sysconfdir)/pam.d
++pamconfdir = $(prefix)/etc/pam.d
+ systemtap_tapdir = @tapset_dir@
+ sssdkcmdatadir = $(datadir)/sssd-kcm
+ deskprofilepath = $(sss_statedir)/deskprofile
+@@ -43733,7 +43733,6 @@ installsssddirs::
+     $(DESTDIR)$(bindir) \
+     $(DESTDIR)$(sbindir) \
+     $(DESTDIR)$(mandir) \
+-    $(DESTDIR)$(pidpath) \
+     $(DESTDIR)$(pluginpath) \
+     $(DESTDIR)$(libdir)/ldb \
+     $(DESTDIR)$(dbuspolicydir) \
+@@ -43743,22 +43742,9 @@ installsssddirs::
+     $(DESTDIR)$(sssddatadir) \
+     $(DESTDIR)$(sudolibdir) \
+     $(DESTDIR)$(autofslibdir) \
+-    $(DESTDIR)$(pipepath)/private \
+-    $(SSSD_USER_DIRS) \
+     $(NULL);
+ @SSSD_USER_TRUE@	-chown $(SSSD_USER):$(SSSD_USER) $(SSSD_USER_DIRS)
+ @SSSD_USER_TRUE@	-chown $(SSSD_USER) $(DESTDIR)$(pipepath)/private
+-	$(INSTALL) -d -m 0700 $(DESTDIR)$(dbpath) $(DESTDIR)$(logpath) \
+-	    $(DESTDIR)$(keytabdir) \
+-	    $(NULL)
+-	$(INSTALL) -d -m 0750 $(DESTDIR)$(pipepath)/private
+-	$(INSTALL) -d -m 0755 $(DESTDIR)$(mcpath) $(DESTDIR)$(pipepath) \
+-            $(DESTDIR)$(pubconfpath) \
+-            $(DESTDIR)$(pubconfpath)/krb5.include.d $(DESTDIR)$(gpocachepath)
+-	$(INSTALL) -d -m 0711 $(DESTDIR)$(sssdconfdir) \
+-                          $(DESTDIR)$(sssdconfdir)/conf.d \
+-                          $(DESTDIR)$(sssdconfdir)/pki
+-@BUILD_SECRETS_TRUE@	$(MKDIR_P) $(DESTDIR)$(secdbpath)
+ 
+ @HAVE_DOXYGEN_TRUE@docs:
+ @HAVE_DOXYGEN_TRUE@	$(DOXYGEN) src/doxy.config
diff --git a/gnu/packages/sssd.scm b/gnu/packages/sssd.scm
index c004e8c21c..aa91424b4d 100644
--- a/gnu/packages/sssd.scm
+++ b/gnu/packages/sssd.scm
@@ -90,7 +90,8 @@ fundamental object types for C.")
               (sha256
                (base32
                 "1h6hwibaf3xa2w6qpzjiiywmfj6zkgbz4r2isf3gd0xm6vq7n6if"))
-              (patches (search-patches "sssd-fix-samba.patch"))))
+              (patches (search-patches "sssd-fix-samba.patch"
+                                       "sssd-system-directories.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -103,7 +104,10 @@ fundamental object types for C.")
              ;; online DTDs.
              "XMLLINT_FLAGS = --catalogs --nonet --noent --xinclude --noout")
        #:configure-flags
-       (list "--disable-cifs-idmap-plugin"
+       (list "--localstatedir=/var" ;for /var/lib/sss, /var/run/sssd.pid, etc.
+             "--sysconfdir=/etc"    ;/etc/sssd
+
+             "--disable-cifs-idmap-plugin"
              "--without-nfsv4-idmapd-plugin"
              "--without-python2-bindings"
              "--without-python3-bindings"