summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/admin.scm33
-rw-r--r--gnu/system/install.scm2
2 files changed, 24 insertions, 11 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index b6f8e199b8..b1666bdc7a 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -22,6 +22,7 @@
 (define-module (gnu packages admin)
   #:use-module (guix licenses)
   #:use-module (guix packages)
+  #:use-module (guix utils)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
@@ -677,9 +678,9 @@ commands and their arguments.")
     ;; See <http://www.sudo.ws/sudo/license.html>.
     (license x11)))
 
-(define-public wpa-supplicant
+(define-public wpa-supplicant-light
   (package
-    (name "wpa-supplicant")
+    (name "wpa-supplicant-light")
     (version "2.3")
     (source (origin
               (method url-fetch)
@@ -704,11 +705,6 @@ commands and their arguments.")
       # Choose GnuTLS (the default is OpenSSL.)
       CONFIG_TLS=gnutls
 
-      # TODO: Add a variant of this package with DBus support.
-      #CONFIG_CTRL_IFACE_DBUS=y
-      #CONFIG_CTRL_IFACE_DBUS_NEW=y
-      #CONFIG_CTRL_IFACE_DBUS_INTRO=y
-
       CONFIG_DRIVER_NL80211=y
       CFLAGS += $(shell pkg-config libnl-3.0 --cflags)
       CONFIG_LIBNL32=y
@@ -745,9 +741,6 @@ commands and their arguments.")
     (inputs
      `(("readline" ,readline)
        ("libnl" ,libnl)
-       ;; TODO: Add a variant with DBus support.  This significantly increases
-       ;; the size of its closure since DBus depends on libx11.
-       ;; ("dbus" ,dbus)
        ("gnutls" ,gnutls)
        ("libgcrypt" ,libgcrypt)))                 ;needed by crypto_gnutls.c
     (native-inputs
@@ -766,6 +759,26 @@ This package provides the 'wpa_supplicant' daemon and the 'wpa_cli' command.")
     ;; In practice, this is linked against Readline, which makes it GPLv3+.
     (license bsd-3)))
 
+(define-public wpa-supplicant
+  (package (inherit wpa-supplicant-light)
+    (name "wpa-supplicant")
+    (inputs `(("dbus" ,dbus)
+              ,@(package-inputs wpa-supplicant-light)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments wpa-supplicant-light)
+       ((#:phases phases)
+        `(alist-cons-after
+          'configure 'configure-for-dbus
+          (lambda _
+            (let ((port (open-file ".config" "al")))
+              (display "
+      CONFIG_CTRL_IFACE_DBUS=y
+      CONFIG_CTRL_IFACE_DBUS_NEW=y
+      CONFIG_CTRL_IFACE_DBUS_INTRO=y\n" port)
+              (close-port port))
+            #t)
+          ,phases))))))
+
 (define-public wakelan
   (package
     (name "wakelan")
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index 5b6dabe8fc..2e7e4eafad 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -274,7 +274,7 @@ Use Alt-F2 for documentation.
                      parted ddrescue
                      grub                  ;mostly so xrefs to its manual work
                      cryptsetup
-                     wireless-tools iw wpa-supplicant
+                     wireless-tools iw wpa-supplicant-light
                      ;; XXX: We used to have GNU fdisk here, but as of version
                      ;; 2.0.0a, that pulls Guile 1.8, which takes unreasonable
                      ;; space; furthermore util-linux's fdisk is already