services: network-manager: Deprecate 'iwd?' field.
* gnu/services/networking.scm (warn-iwd?-field-deprecation): New procedure, helper for deprecated field. (<network-manager-configuration>)[iwd?]: Use helper to warn deprecated field. (network-manager-shepherd-service): Make iwd? a local variable independent from the deprecated field. * doc/guix.texi (Networking Setup): Remove mention of iwd? field. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
		
							parent
							
								
									7777d767a4
								
							
						
					
					
						commit
						1e1b3ec012
					
				
					 2 changed files with 18 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -19890,10 +19890,6 @@ This is the list of available plugins for virtual private networks
 | 
			
		|||
(VPNs).  An example of this is the @code{network-manager-openvpn}
 | 
			
		||||
package, which allows NetworkManager to manage VPNs @i{via} OpenVPN.
 | 
			
		||||
 | 
			
		||||
@item @code{iwd?} (default: @code{#f})
 | 
			
		||||
NetworkManager will use iwd as a backend for wireless networking if this
 | 
			
		||||
option is set to @code{#t}, otherwise it will use wpa-supplicant.
 | 
			
		||||
 | 
			
		||||
@end table
 | 
			
		||||
@end deftp
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1136,6 +1136,15 @@ project's documentation} for more information."
 | 
			
		|||
;;; NetworkManager
 | 
			
		||||
;;;
 | 
			
		||||
 | 
			
		||||
;; TODO: deprecated field, remove later.
 | 
			
		||||
(define-with-syntax-properties (warn-iwd?-field-deprecation
 | 
			
		||||
                                (value properties))
 | 
			
		||||
  (when value
 | 
			
		||||
    (warning (source-properties->location properties)
 | 
			
		||||
             (G_ "the 'iwd?' field is deprecated, please use \
 | 
			
		||||
'shepherd-requirement' field instead~%")))
 | 
			
		||||
  value)
 | 
			
		||||
 | 
			
		||||
(define-record-type* <network-manager-configuration>
 | 
			
		||||
  network-manager-configuration make-network-manager-configuration
 | 
			
		||||
  network-manager-configuration?
 | 
			
		||||
| 
						 | 
				
			
			@ -1147,7 +1156,9 @@ project's documentation} for more information."
 | 
			
		|||
       (default "default"))
 | 
			
		||||
  (vpn-plugins network-manager-configuration-vpn-plugins ;list of file-like
 | 
			
		||||
               (default '()))
 | 
			
		||||
  (iwd? network-manager-configuration-iwd? (default #f)))
 | 
			
		||||
  (iwd? network-manager-configuration-iwd?  ; TODO: deprecated field, remove.
 | 
			
		||||
        (default #f)
 | 
			
		||||
        (sanitize warn-iwd?-field-deprecation)))
 | 
			
		||||
 | 
			
		||||
(define (network-manager-activation config)
 | 
			
		||||
  ;; Activation gexp for NetworkManager
 | 
			
		||||
| 
						 | 
				
			
			@ -1204,7 +1215,10 @@ project's documentation} for more information."
 | 
			
		|||
(define (network-manager-shepherd-service config)
 | 
			
		||||
  (match-record config <network-manager-configuration>
 | 
			
		||||
    (network-manager shepherd-requirement dns vpn-plugins iwd?)
 | 
			
		||||
    (let ((conf (plain-file "NetworkManager.conf"
 | 
			
		||||
    (let ((iwd? (or iwd?  ; TODO: deprecated field, remove later.
 | 
			
		||||
                    (and shepherd-requirement
 | 
			
		||||
                         (memq 'iwd shepherd-requirement))))
 | 
			
		||||
          (conf (plain-file "NetworkManager.conf"
 | 
			
		||||
                            (string-append
 | 
			
		||||
                             "[main]\ndns=" dns "\n"
 | 
			
		||||
                             (if iwd? "[device]\nwifi.backend=iwd\n" ""))))
 | 
			
		||||
| 
						 | 
				
			
			@ -1214,6 +1228,8 @@ project's documentation} for more information."
 | 
			
		|||
             (provision '(networking))
 | 
			
		||||
             (requirement `(user-processes dbus-system loopback
 | 
			
		||||
                            ,@shepherd-requirement
 | 
			
		||||
                            ;; TODO: iwd? is deprecated and should be passed
 | 
			
		||||
                            ;; with shepherd-requirement, remove later.
 | 
			
		||||
                            ,@(if iwd? '(iwd) '())))
 | 
			
		||||
             (start #~(make-forkexec-constructor
 | 
			
		||||
                       (list (string-append #$network-manager
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue