bug#37369: Getting network-manager-openconnect to work

2019-10-03 Thread Divan Santana


pelzflorian (Florian Pelz)  writes:

> On Sat, Sep 28, 2019 at 04:16:40PM +0200, Divan Santana wrote:
>> So firstly I can't edit the connection as my user, without sudo. Not
>> sure if I need to be in some group to do that?
>>
>
> P.S. I use
>
>  (users (cons (user-account
>(name "florian")
>(comment "Florian Pelz")
>(group "users")
>(supplementary-groups '("wheel" "netdev"
>"audio" "video"
>"httpd" "kvm"))
>(home-directory "/home/florian"))
>   %base-user-accounts))
>
> which is the default when installing Guix with the GNOME desktop plus
> unrelated httpd and kvm.
> netdev group seems relevant.

This is mine

 (users (cons (user-account
   (name "ds")
   (comment "Divan Santana")
   (group "users")
   (supplementary-groups
'("adbusers";for adb
  "wheel" "kvm" "audio" "video" "lp"
  "docker"
  ;; "lpadmin"
  "cdrom" "netdev"))
   ;;(shell #~(string-append #$zsh "/bin/zsh"))
   (home-directory "/home/ds"))
  %base-user-accounts))

Already had netdev. Seems same as yours. I'll look into it more
sometime.

Thanks





bug#37369: Getting network-manager-openconnect to work

2019-09-29 Thread pelzflorian (Florian Pelz)
Regarding openconnect, no workarounds are necessary anymore for me on
core-updates, which uses a more recent network-manager@1.14.4 and will
soon be on Guix master.

Regards,
Florian





bug#37369: Getting network-manager-openconnect to work

2019-09-28 Thread pelzflorian (Florian Pelz)
On Sat, Sep 28, 2019 at 04:16:40PM +0200, Divan Santana wrote:
> So firstly I can't edit the connection as my user, without sudo. Not
> sure if I need to be in some group to do that?
> 

P.S. I use

 (users (cons (user-account
   (name "florian")
   (comment "Florian Pelz")
   (group "users")
   (supplementary-groups '("wheel" "netdev"
   "audio" "video"
   "httpd" "kvm"))
   (home-directory "/home/florian"))
  %base-user-accounts))

which is the default when installing Guix with the GNOME desktop plus
unrelated httpd and kvm.
netdev group seems relevant.

Regards,
Florian





bug#37369: Getting network-manager-openconnect to work

2019-09-28 Thread pelzflorian (Florian Pelz)
For me, before editing the connection, NetworkManager crashed with a
segfault and restarted after attempting to connect with a faulty VPN
connection.  The same may be what happens to you.

However, I can add a new connection with gnome-control-center or
nm-connection-editor (without using any “connection file”; GNOME asks
me for the sudo password though) and then I fill in the gateway field.
I can then use for example nmtui to activate the connection.

I noticed I have openconnect in my config.scm’s system packages, but I
believe it is not relevant.

I use:

(network-manager-service-type config =>
  (network-manager-configuration
(inherit config)
(dns "dnsmasq")
(vpn-plugins (list network-manager-openconnect

dnsmasq is probably not required, but I do not know.

Regards,
Florian





bug#37369: Getting network-manager-openconnect to work

2019-09-28 Thread Divan Santana
pelzflorian (Florian Pelz)  writes:

> Hello!
>
> There might be a workaround:
>
> NetworkManager stopped segfaulting for me after I “edited” the
> openconnect VPN connection in nm-connection-editor without making any
> changes to the connection.  Apparently this fixed get_secrets_done_cb
> being passed what GDB calls an “” as the connection
> and crashing in nm_connection_get_setting_by_name.  I need to repeat
> this nm-connection-editor editing after every reboot.
>
> Does editing the VPN connection in nm-connection-editor fix the
> problem for you, Divan Santana?

So firstly I can't edit the connection as my user, without sudo. Not
sure if I need to be in some group to do that?

I then edited something like so:

ds@swift ~ $ sudo nm-connection-editor
Password:

(nm-connection-editor:1990): Gtk-WARNING **: 16:01:57.175: Could not find the 
icon 'pan-down-symbolic-ltr'. The 'hicolor' theme
was not found either, perhaps you need to install it.
You can get a copy from:
http://icon-theme.freedesktop.org/releases

(nm-connection-editor:1990): Gtk-WARNING **: 16:02:01.028: Could not load a 
pixbuf from /org/gtk/libgtk/theme/Adwaita/assets/check-symbolic.svg.
This may indicate that pixbuf loaders or the mime database could not be found.
GLib-GIO-Message: 16:02:08.131: Using the 'memory' GSettings backend.  Your 
settings will not be saved or shared with other applications.

Once I edited the connection and tried to connect it still fails for me
like this:

ds@swift ~ $ sudo nmcli con up vpn-example --ask
Error: openconnect failed: Could not find "openconnect" binary
A password is required to connect to 'vpn-example'.
Gateway (vpn.secrets.gateway): ^Cds@swift ~ $

On arch, with the same connection file, it works on CLI with above
command.

I then tried starting nm-applet and then running:

ds@swift ~ $ sudo nmcli con up vpn-example

It then brings up the GUI and shows me a certificate for remote
gateway. Asks me to select my group and enter username and password. So
it appears like it's working. It then fails to auth for some reason.

Sep 28 16:07:16 localhost NetworkManager[506]:   [1569679636.8722] 
vpn-connection[0x1cae420,ed432bd4-9078-493d-a9c3-fb7ac4199917,"vpn-example",0]: 
VPN service disappeared
Sep 28 16:11:33 localhost NetworkManager[506]:   [1569679893.0578] 
manager: (tun0): new Tun device (/org/freedesktop/NetworkManager/Devices/10)
Sep 28 16:11:33 localhost NetworkManager[506]:   [1569679893.0847] device 
(tun0): state change: unmanaged -> unavailable (reason 'connection-assumed', 
sys-iface-state: 'external')
Sep 28 16:11:33 localhost NetworkManager[506]:   [1569679893.0860] 
keyfile: add connection in-memory (3a679fd7-0450-43ef-8e48-63850b1f0798,"tun0")
Sep 28 16:11:33 localhost NetworkManager[506]:   [1569679893.0871] device 
(tun0): state change: unavailable -> disconnected (reason 'connection-assumed', 
sys-iface-state: 'external')
Sep 28 16:11:33 localhost NetworkManager[506]:   [1569679893.0878] device 
(tun0): Activation: starting connection 'tun0' 
(3a679fd7-0450-43ef-8e48-63850b1f0798)
Sep 28 16:11:33 localhost NetworkManager[506]:   [1569679893.0882] device 
(tun0): state change: disconnected -> prepare (reason 'none', sys-iface-state: 
'external')
Sep 28 16:11:33 localhost NetworkManager[506]:   [1569679893.0886] device 
(tun0): state change: prepare -> config (reason 'none', sys-iface-state: 
'external')
Sep 28 16:11:33 localhost NetworkManager[506]:   [1569679893.0888] device 
(tun0): state change: config -> ip-config (reason 'none', sys-iface-state: 
'external')
Sep 28 16:11:33 localhost NetworkManager[506]:   [1569679893.0889] device 
(tun0): state change: ip-config -> ip-check (reason 'none', sys-iface-state: 
'external')
Sep 28 16:11:33 localhost NetworkManager[506]:   [1569679893.0891] device 
(tun0): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 
'external')
Sep 28 16:11:33 localhost NetworkManager[506]:   [1569679893.0893] device 
(tun0): state change: secondaries -> activated (reason 'none', sys-iface-state: 
'external')
Sep 28 16:11:33 localhost nscd: 464 monitored file `/etc/resolv.conf` was 
written to
Sep 28 16:11:33 localhost NetworkManager[506]:   [1569679893.1084] device 
(tun0): Activation: successful, device activated.
Sep 28 16:11:34 localhost ntpd[507]: Listen normally on 11 tun0 10.7.246.164:123
Sep 28 16:11:34 localhost ntpd[507]: Listen normally on 12 tun0 
[fe80::60db:5ddd:b445:60e9%11]:123
Sep 28 16:11:36 localhost nscd: 464 monitored file `/etc/resolv.conf` was moved 
into place, adding watch
Sep 28 16:11:47 localhost NetworkManager[506]:   [1569679907.3367] device 
(tun0): state change: activated -> unmanaged (reason 'unmanaged', 
sys-iface-state: 'removed')
Sep 28 16:11:48 localhost ntpd[507]: Deleting interface #11 tun0, 
10.7.246.164#123, interface stats: received=0, sent=0, dropped=0, 
active_time=14 secs
Sep 28 16:11:48 localhost ntpd[507]: Deleting interface #12 tun0, 
fe80::60db:5ddd:b445:60e9%11#123, interface stats: 

bug#37369: Getting network-manager-openconnect to work

2019-09-28 Thread Divan Santana
pelzflorian (Florian Pelz)  writes:

> Hello!
>
> There might be a workaround:
>
> NetworkManager stopped segfaulting for me after I “edited” the
> openconnect VPN connection in nm-connection-editor without making any
> changes to the connection.  Apparently this fixed get_secrets_done_cb
> being passed what GDB calls an “” as the connection
> and crashing in nm_connection_get_setting_by_name.  I need to repeat
> this nm-connection-editor editing after every reboot.
>
> Does editing the VPN connection in nm-connection-editor fix the
> problem for you, Divan Santana?

I'll let you know.


> No patch at all is required for me.  nmtui works fine without the patch.

> This issue is not present in Arch Linux using the more recent
> NetworkManager 1.20.2.  I have not yet attempted to upgrade Guix’
> NetworkManager to a more recent version.







bug#37369: Getting network-manager-openconnect to work

2019-09-27 Thread pelzflorian (Florian Pelz)
Hello!

There might be a workaround:

NetworkManager stopped segfaulting for me after I “edited” the
openconnect VPN connection in nm-connection-editor without making any
changes to the connection.  Apparently this fixed get_secrets_done_cb
being passed what GDB calls an “” as the connection
and crashing in nm_connection_get_setting_by_name.  I need to repeat
this nm-connection-editor editing after every reboot.

Does editing the VPN connection in nm-connection-editor fix the
problem for you, Divan Santana?

No patch at all is required for me.  nmtui works fine without the patch.

This issue is not present in Arch Linux using the more recent
NetworkManager 1.20.2.  I have not yet attempted to upgrade Guix’
NetworkManager to a more recent version.

Regards,
Florian





bug#37369: Getting network-manager-openconnect to work

2019-09-16 Thread pelzflorian (Florian Pelz)
On Mon, Sep 16, 2019 at 05:57:51PM +0200, Ludovic Courtès wrote:
> So I guess we first need someone to tell us whether the patch “works”,
> as you wrote, right?  :-)
> 
> Ludo’.

Currently I have built the attached patch, but NetworkManager
segfaults when connecting, and I try to debug why.

Regards,
Florian
>From 1efadd4619f397429d5fae024b46cd8100870c42 Mon Sep 17 00:00:00 2001
From: Florian Pelz 
Date: Mon, 16 Sep 2019 15:27:01 +0200
Subject: [PATCH] gnu: network-manager: Enable openconnect helper.

* gnu/packages/gnome.scm (network-manager): Add openconnect input.
Patch source to use it instead of searching /usr/bin.
---
 gnu/packages/gnome.scm | 8 
 1 file changed, 8 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 5dc18b3bb5..a8ba00965d 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5374,6 +5374,13 @@ users.")
(("src/devices/tests/test-lldp") " ")
(("src/tests/test-route-manager-linux") " "))
  #t))
+ (add-after 'unpack 'patch-source
+   (lambda* (#:key inputs #:allow-other-keys)
+ (let ((openconnect (assoc-ref inputs "openconnect")))
+   (substitute* "clients/common/nm-vpn-helpers.c"
+ (("\\\"/usr/sbin/openconnect\\\"")
+  (string-append "\"" openconnect "/sbin/openconnect\"")))
+   #t)))
  (add-after 'unpack 'delete-failing-tests
(lambda _
  ;; FIXME: These four tests fail for unknown reasons.
@@ -5436,6 +5443,7 @@ users.")
("libsoup" ,libsoup)
("modem-manager" ,modem-manager)
("newt" ,newt)   ;for the 'nmtui' console interface
+   ("openconnect" ,openconnect)
("polkit" ,polkit)
("ppp" ,ppp)
("readline" ,readline)
-- 
2.23.0



bug#37369: Getting network-manager-openconnect to work

2019-09-16 Thread Ludovic Courtès
Hi Florian,

"pelzflorian (Florian Pelz)"  skribis:

> On Wed, Sep 11, 2019 at 10:46:56PM +0200, Ludovic Courtès wrote:
>> Something I don’t get: why does NM itself know about openconnect?
>> 
>> There’s a network-manager-openconnect plugin, so I would expect
>> everything openconnect to happen there.  Do you know why it’s not that
>> way?
>> 
>> Thanks,
>> Ludo’.
>
> I don’t know.  The patch addresses (if it works) a function called
> nm_vpn_openconnect_authenticate_helper within the code for
> NetworkManager clients like nmtui, probably also nm-connection-editor,
> that calls openconnect --authenticate.

So I guess we first need someone to tell us whether the patch “works”,
as you wrote, right?  :-)

Ludo’.





bug#37369: Getting network-manager-openconnect to work

2019-09-16 Thread pelzflorian (Florian Pelz)
On Tue, Sep 10, 2019 at 01:21:20PM +0200, pelzflorian (Florian Pelz) wrote:
> I suspect something like the attached patch would help (and expand the
> closure of network-manager to always include openconnect).
> 

Sorry, my old patch did not even build.  A friend lent me her
AnyConnect credentials so I can test.  I will test now and send a
working patch.

Regards,
Florian





bug#37369: Getting network-manager-openconnect to work

2019-09-11 Thread pelzflorian (Florian Pelz)
On Wed, Sep 11, 2019 at 10:46:56PM +0200, Ludovic Courtès wrote:
> Something I don’t get: why does NM itself know about openconnect?
> 
> There’s a network-manager-openconnect plugin, so I would expect
> everything openconnect to happen there.  Do you know why it’s not that
> way?
> 
> Thanks,
> Ludo’.

I don’t know.  The patch addresses (if it works) a function called
nm_vpn_openconnect_authenticate_helper within the code for
NetworkManager clients like nmtui, probably also nm-connection-editor,
that calls openconnect --authenticate.

Perhaps the network manager service could symlink the openconnect
binary to the plugins directory when used and NetworkManager could be
made to look there, but it would be nice to know if the current patch
works.

Regards,
Florian





bug#37369: Getting network-manager-openconnect to work

2019-09-11 Thread Ludovic Courtès
Hi Florian,

"pelzflorian (Florian Pelz)"  skribis:

> From 8de7675a2dc2c1385d312e35136f8fa9eb4f9825 Mon Sep 17 00:00:00 2001
> From: Florian Pelz 
> Date: Tue, 10 Sep 2019 12:59:19 +0200
> Subject: [PATCH] gnu: network-manager: Enable openconnect helper.
>
> * gnu/packages/gnome.scm (network-manager): Add openconnect input.
> Patch source to use it instead of searching /usr/bin.
> ---
>  gnu/packages/gnome.scm | 8 
>  1 file changed, 8 insertions(+)
>
> diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
> index efe5206e53..a6ea09d8f6 100644
> --- a/gnu/packages/gnome.scm
> +++ b/gnu/packages/gnome.scm
> @@ -5372,6 +5372,13 @@ users.")
> (("src/devices/tests/test-lldp") " ")
> (("src/tests/test-route-manager-linux") " "))
>   #t))
> + (add-after 'unpack 'patch-source
> +   (lambda* (#:key inputs #:allow-other-keys)
> + (begin
> +   (substitute* "clients/common/nm-vpn-helpers.c"
> + (("\\\"/usr/sbin/openconnect\\\"")
> +  (string-append openconnect "\"/bin/openconnect\"")))
> +   #t)))
>   (add-after 'unpack 'delete-failing-tests
> (lambda _
>   ;; FIXME: These four tests fail for unknown reasons.
> @@ -5434,6 +5441,7 @@ users.")
> ("libsoup" ,libsoup)
> ("modem-manager" ,modem-manager)
> ("newt" ,newt)   ;for the 'nmtui' console 
> interface
> +   ("openconnect" ,openconnect)

Something I don’t get: why does NM itself know about openconnect?

There’s a network-manager-openconnect plugin, so I would expect
everything openconnect to happen there.  Do you know why it’s not that
way?

Thanks,
Ludo’.





bug#37369: Getting network-manager-openconnect to work

2019-09-11 Thread pelzflorian (Florian Pelz)
On Wed, Sep 11, 2019 at 10:38:22AM +0300, Efraim Flashner wrote:
> Instead of adding openconnect to network-manager, would it be enough to
> 
> (substitute* "the-file"
>   (("/usr/sbin/openconnect") "openconnect"))
> 
> 

No, at least the comment documenting nm_utils_file_search_in_paths says:

/**
 * nm_utils_file_search_in_paths:
 * […]
 * @try_first: (allow-none): a custom path to try first before searching.
 *   It is silently ignored if it is empty or not an absolute path.
 * […]

I do not know if my patch works though.

Regards,
Florian





bug#37369: Getting network-manager-openconnect to work

2019-09-11 Thread Efraim Flashner
Instead of adding openconnect to network-manager, would it be enough to

(substitute* "the-file"
  (("/usr/sbin/openconnect") "openconnect"))


-- 
Efraim Flashner  אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted


signature.asc
Description: PGP signature


bug#37369: Getting network-manager-openconnect to work

2019-09-10 Thread pelzflorian (Florian Pelz)
On Tue, Sep 10, 2019 at 11:57:11AM +0200, Divan Santana wrote:
> Hi Guix,
> 
> I'm glad openconnect and network-manager-openconnect are now in Guix!
> 
> It would be nice to get it to work via network-manager, though I suppose
> it's not essential.
> 
> Using openconnect directly works for me.
> 
> $ sudo openconnect vpn.somewhere.com
> 
> Trying to get it work via network-manager gives an error like so:
> 
> $ sudo nmcli con up vpn-fnb --ask
> Error: openconnect failed: Could not find "openconnect" binary
> A password is required to connect to 'vpn-fnb'.
> Gateway (vpn.secrets.gateway):
> 
> Even though my services configuration has this vpn-plugins set.
> 
> (modify-services %desktop-services
>  (network-manager-service-type
>   config => (network-manager-configuration
>  (inherit config)
>  (dns "dnsmasq")
>  (vpn-plugins (list network-manager-openconnect))
>  ))
> 
> Anyone else seen this?

Cc’ing bug-guix@gnu.org

I suspect something like the attached patch would help (and expand the
closure of network-manager to always include openconnect).

To test, follow section “Building from Git” from the manual or Laura’s
video 04-packaging-part-one.webm from
,
but after the initial clone command, do

  git apply the-attached.patch

Then after make, do

  sudo -E ./pre-inst-env guix system reconfigure /etc/config.scm

(or whatever your configuration file is called).  I cannot test right
now and have never used openconnect.  It is quite possible I made a
mistake.

Regards,
Florian
>From 8de7675a2dc2c1385d312e35136f8fa9eb4f9825 Mon Sep 17 00:00:00 2001
From: Florian Pelz 
Date: Tue, 10 Sep 2019 12:59:19 +0200
Subject: [PATCH] gnu: network-manager: Enable openconnect helper.

* gnu/packages/gnome.scm (network-manager): Add openconnect input.
Patch source to use it instead of searching /usr/bin.
---
 gnu/packages/gnome.scm | 8 
 1 file changed, 8 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index efe5206e53..a6ea09d8f6 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5372,6 +5372,13 @@ users.")
(("src/devices/tests/test-lldp") " ")
(("src/tests/test-route-manager-linux") " "))
  #t))
+ (add-after 'unpack 'patch-source
+   (lambda* (#:key inputs #:allow-other-keys)
+ (begin
+   (substitute* "clients/common/nm-vpn-helpers.c"
+ (("\\\"/usr/sbin/openconnect\\\"")
+  (string-append openconnect "\"/bin/openconnect\"")))
+   #t)))
  (add-after 'unpack 'delete-failing-tests
(lambda _
  ;; FIXME: These four tests fail for unknown reasons.
@@ -5434,6 +5441,7 @@ users.")
("libsoup" ,libsoup)
("modem-manager" ,modem-manager)
("newt" ,newt)   ;for the 'nmtui' console interface
+   ("openconnect" ,openconnect)
("polkit" ,polkit)
("ppp" ,ppp)
("readline" ,readline)
-- 
2.23.0