Author: eelco
Date: Mon Jul 26 14:10:04 2010
New Revision: 22737
URL: https://svn.nixos.org/websvn/nix/?rev=22737&sc=1

Log:
* Add /nix/var/nix/profiles/default and config.system.path to the list
  of DBus configuration directories.  Thus packages with DBus
  configuration files installed in the default profile will be found
  automatically.  (It would be nice to include $HOME/.nix-profile in
  the session bus search path, but I don't think that's possible.)

Modified:
   nixos/trunk/modules/services/system/dbus.nix

Modified: nixos/trunk/modules/services/system/dbus.nix
==============================================================================
--- nixos/trunk/modules/services/system/dbus.nix        Mon Jul 26 14:03:27 
2010        (r22736)
+++ nixos/trunk/modules/services/system/dbus.nix        Mon Jul 26 14:10:04 
2010        (r22737)
@@ -29,26 +29,16 @@
       # Add the system-services and system.d directories to the system
       # bus search path.
       sed -i $out/system.conf \
-          -e 's|<standard_system_servicedirs/>|${systemServiceDirs}|'
+          -e 's|<standard_system_servicedirs/>|${systemServiceDirs}|' \
+          -e 's|<includedir>system.d</includedir>|${systemIncludeDirs}|'
 
       cp ${dbus}/etc/dbus-1/session.conf $out/session.conf
       
       # Add the services and session.d directories to the session bus
       # search path.
       sed -i $out/session.conf \
-          -e 's|<standard_session_servicedirs />|${sessionServiceDirs}|'
-
-      ensureDir $out/session.d
-      ensureDir $out/system.d
-      
-      for i in ${toString cfg.packages}; do
-        for j in $i/etc/dbus-1/session.d/*; do
-          ln -s $j $out/session.d/
-        done
-        for j in $i/etc/dbus-1/system.d/*; do
-          ln -s $j $out/system.d/
-        done
-      done
+          -e 's|<standard_session_servicedirs />|${sessionServiceDirs}|' \
+          -e 's|<includedir>session.d</includedir>|${sessionIncludeDirs}|'
     ''; # */
   };
 
@@ -56,10 +46,18 @@
     (d: "<servicedir>${d}/share/dbus-1/system-services</servicedir> ")
     cfg.packages;
 
+  systemIncludeDirs = concatMapStrings
+    (d: "<includedir>${d}/etc/dbus-1/system.d</includedir> ")
+    cfg.packages;
+
   sessionServiceDirs = concatMapStrings
     (d: "<servicedir>${d}/share/dbus-1/services</servicedir> ")
     cfg.packages;
 
+  sessionIncludeDirs = concatMapStrings
+    (d: "<includedir>${d}/etc/dbus-1/session.d</includedir> ")
+    cfg.packages;
+
 in
 
 {
@@ -102,10 +100,6 @@
     environment.systemPackages = [ dbus.daemon dbus.tools ];
 
     environment.etc = singleton
-      # We need /etc/dbus-1/system.conf for now, because
-      # dbus-daemon-launch-helper is called with an empty environment
-      # and no arguments.  So we have no way to tell it the location
-      # of our config file.
       { source = configDir;
         target = "dbus-1";
       };
@@ -162,6 +156,11 @@
         permissions = "u+rx,g+rx,o-rx";
       };
 
+    services.dbus.packages =
+      [ "/nix/var/nix/profiles/default"
+        config.system.path
+      ];
+
   };
  
 }
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits

Reply via email to