Subject: bug#28232: openvpn service configuration fails by default

From: charly bion <[email-masked]>
Date: Fri, 25 Aug 2017 17:08:14 +0200 (CEST)

Package: openvpn 
Version: 2.4.3 

Backtrace: 
In srfi/srfi-1.scm: 
592:29 19 (map1 (#<<service> type: #<service-type nscd 3a8acc0?> ?)) 
592:29 18 (map1 (#<<service> type: #<service-type guix 3a8ac00?> ?)) 
592:29 17 (map1 (#<<service> type: #<service-type urandom-seed?> ?)) 
592:29 16 (map1 (#<<service> type: #<service-type syslog 3a8ac?> ?)) 
592:29 15 (map1 (#<<service> type: #<service-type static-netwo?> ?)) 
592:29 14 (map1 (#<<service> type: #<service-type mingetty 3a2?> ?)) 
592:29 13 (map1 (#<<service> type: #<service-type mingetty 3a2?> ?)) 
592:29 12 (map1 (#<<service> type: #<service-type mingetty 3a2?> ?)) 
592:29 11 (map1 (#<<service> type: #<service-type mingetty 3a2?> ?)) 
592:29 10 (map1 (#<<service> type: #<service-type mingetty 3a2?> ?)) 
592:29 9 (map1 (#<<service> type: #<service-type mingetty 3a2?> ?)) 
592:29 8 (map1 (#<<service> type: #<service-type console-font?> ?)) 
592:17 7 (map1 (#<<service> type: #<service-type openvpn-clie?> ?)) 
In gnu/services/vpn.scm: 
409:24 6 (_ #<<openvpn-client-configuration> openvpn: #<package ?>) 
379:9 5 (openvpn-config-file client #<<openvpn-client-configura?>) 
In ice-9/ports.scm: 
549:4 4 (call-with-output-string _) 
473:4 3 (with-output-to-port _ _) 
In ice-9/boot-9.scm: 
268:13 2 (for-each #<procedure 534a100 at gnu/services/configur?> ?) 
In gnu/services/vpn.scm: 
112:19 1 (serialize-tls-auth client #f) 
In unknown file: 
0 (string-append #f " " "1") 

ERROR: In procedure string-append: 
ERROR: In procedure string-append: Wrong type (expecting string): #f 

To have this error, I tried do build a vm-image using the openvpn service: 
(service openvpn-client-service-type 
(openvpn-client-configuration 
(proto 'tcp) 
(ca "ca.crt") 
(cert "client.crt") 
(key "client.key") 
)) 

Guix doesn't want to build the VM, because of the openvpn service. The problem is in the function serialize-tls-auth (line 110 of the file /gnu/services/vpn.scm). The function tries to concatenate a string with the input of the "tls_auth" field in openvpn_client_configuration. But by default this input's value is #f. Test function are implemented just after this one, but not used. 

As I don't know what the function is supposed to return, I can't correct this. 

I'm using Guix 0.13.0