Re: Compiling NetworkManager-openconnect version and flags?



I was able to go back to openconnect 4.08, the same era as networkmanager-openconnect 0.9.6 and the compile worked without excluding authdlg.

Although, the network vpn creation dialog still does not display vpn options, just ip4 and ip6. So no gui vpn capability.

On Fri, 2015-05-22 at 11:25 -0700, a.priori ibid wrote:
> yes, --disable-more-warnings worked
>
> Now I get a problem with authdlg. I want to have the authdlg but it wont
> compile. If I compile using --without-authdlg, it builds fine but the GUI
> ends up not being able to create a connection with the necessary options
> and the save button is grey'd out. Do I need to add some other sources?

For the auth dialog, the problem is that openconnect itself has
undergone some API changes, and since this is such an old version of
NM-openconnect, it probably doesn't support the newer version of
openconnect development headers that you have installed.  So the three
options are to find an older version of openconnect, upgrade
NetworkManager and NetworkManager openconnect, or try to backport the
patches that add support to the newer openconnect to NM-openconnect.

The last option would probably use git commit
9e4b394da0c29d77de9a110603aefa437c6b4173 as a starting point.

Dan

> [root TS_chroot]/ts/ports/contrib/networkmanager-openconnect/network-manage
> r-openconnect-0-9-6# make
> make  all-recursive
> make[1]: Entering directory
> '/ts/ports/contrib/networkmanager-openconnect/network-manager-openconnect-0-9-6'
> Making all in src
> make[2]: Entering directory
> '/ts/ports/contrib/networkmanager-openconnect/network-manager-openconnect-0-9-6/src'
> make[2]: Nothing to be done for 'all'.
> make[2]: Leaving directory
> '/ts/ports/contrib/networkmanager-openconnect/network-manager-openconnect-0-9-6/src'
> Making all in properties
> make[2]: Entering directory
> '/ts/ports/contrib/networkmanager-openconnect/network-manager-openconnect-0-9-6/properties'
> make[2]: Nothing to be done for 'all'.
> make[2]: Leaving directory
> '/ts/ports/contrib/networkmanager-openconnect/network-manager-openconnect-0-9-6/properties'
> Making all in po
> make[2]: Entering directory
> '/ts/ports/contrib/networkmanager-openconnect/network-manager-openconnect-0-9-6/po'
> make[2]: Nothing to be done for 'all'.
> make[2]: Leaving directory
> '/ts/ports/contrib/networkmanager-openconnect/network-manager-openconnect-0-9-6/po'
> Making all in auth-dialog
> make[2]: Entering directory
> '/ts/ports/contrib/networkmanager-openconnect/network-manager-openconnect-0-9-6/auth-dialog'
> gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/NetworkManager
> -I/usr/include/libnm-glib -I/usr/include/NetworkManager
> -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0
> -I/usr/lib/glib-2.0/include  -pthread -I/usr/include/glib-2.0
> -I/usr/lib/glib-2.0/include  -pthread -I/usr/include/gtk-2.0
> -I/usr/lib/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/include/atk-1.0
> -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng14
> -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng14
> -I/usr/include/pango-1.0 -I/usr/include/glib-2.0
> -I/usr/lib/glib-2.0/include -I/usr/include/freetype2  -DORBIT2=1 -pthread
> -I/usr/include/gconf/2 -I/usr/include/orbit-2.0 -I/usr/include/glib-2.0
> -I/usr/lib/glib-2.0/include  -pthread -I/usr/include/PCSC
> -I/usr/include/libxml2  -I/usr/include/libxml2
>  -I/usr/include/gnome-keyring-1 -I/usr/include/glib-2.0
> -I/usr/lib/glib-2.0/include  -DICONDIR=\""/usr/local/share/pixmaps"\"
> -DBINDIR=\""/usr/local/bin"\" -DG_DISABLE_DEPRECATED
> -DGDK_DISABLE_DEPRECATED -DGNOME_DISABLE_DEPRECATED
> -DGNOMELOCALEDIR=\"/usr/local/share/locale\" -DVERSION=\"0.9.6.2\"   -g -O2
> -MT nm_openconnect_auth_dialog-main.o -MD -MP -MF
> .deps/nm_openconnect_auth_dialog-main.Tpo -c -o
> nm_openconnect_auth_dialog-main.o `test -f 'main.c' || echo './'`main.c
> main.c: In function 'combo_changed':
> main.c:353:41: error: request for member 'name' in something not a
> structure or union
>   data->entry_text = sopt->choices[entry].name;
>                                          ^
> main.c: In function 'ui_add_select':
> main.c:452:77: error: request for member 'label' in something not a
> structure or union
>    gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo),
> sopt->choices[i].label);
>
>  ^
> In file included from /usr/include/string.h:637:0,
>                  from main.c:30:
> main.c:454:49: error: request for member 'name' in something not a
> structure or union
>        !strcmp(data->entry_text, sopt->choices[i].name)) {
>                                                  ^
> main.c:454:49: error: request for member 'name' in something not a
> structure or union
>        !strcmp(data->entry_text, sopt->choices[i].name)) {
>                                                  ^
> main.c:454:49: error: request for member 'name' in something not a
> structure or union
>        !strcmp(data->entry_text, sopt->choices[i].name)) {
>                                                  ^
> main.c:454:49: error: request for member 'name' in something not a
> structure or union
>        !strcmp(data->entry_text, sopt->choices[i].name)) {
>                                                  ^
> main.c:454:49: error: request for member 'name' in something not a
> structure or union
>        !strcmp(data->entry_text, sopt->choices[i].name)) {
>                                                  ^
> main.c:454:49: error: request for member 'name' in something not a
> structure or union
>        !strcmp(data->entry_text, sopt->choices[i].name)) {
>                                                  ^
> main.c:454:49: error: request for member 'name' in something not a
> structure or union
>        !strcmp(data->entry_text, sopt->choices[i].name)) {
>                                                  ^
> main.c:454:49: error: request for member 'name' in something not a
> structure or union
>        !strcmp(data->entry_text, sopt->choices[i].name)) {
>                                                  ^
> main.c:454:49: error: request for member 'name' in something not a
> structure or union
>        !strcmp(data->entry_text, sopt->choices[i].name)) {
>                                                  ^
> main.c:454:49: error: request for member 'name' in something not a
> structure or union
>        !strcmp(data->entry_text, sopt->choices[i].name)) {
>                                                  ^
> main.c:454:49: error: request for member 'name' in something not a
> structure or union
>        !strcmp(data->entry_text, sopt->choices[i].name)) {
>                                                  ^
> main.c:454:49: error: request for member 'name' in something not a
> structure or union
>        !strcmp(data->entry_text, sopt->choices[i].name)) {
>                                                  ^
> main.c:454:49: error: request for member 'name' in something not a
> structure or union
>        !strcmp(data->entry_text, sopt->choices[i].name)) {
>                                                  ^
> main.c:454:49: error: request for member 'name' in something not a
> structure or union
>        !strcmp(data->entry_text, sopt->choices[i].name)) {
>                                                  ^
> main.c:454:49: error: request for member 'name' in something not a
> structure or union
>        !strcmp(data->entry_text, sopt->choices[i].name)) {
>                                                  ^
> main.c:454:49: error: request for member 'name' in something not a
> structure or union
>        !strcmp(data->entry_text, sopt->choices[i].name)) {
>                                                  ^
> main.c:454:49: error: request for member 'name' in something not a
> structure or union
>        !strcmp(data->entry_text, sopt->choices[i].name)) {
>                                                  ^
> main.c:454:49: error: request for member 'name' in something not a
> structure or union
>        !strcmp(data->entry_text, sopt->choices[i].name)) {
>                                                  ^
> main.c:454:49: error: request for member 'name' in something not a
> structure or union
>        !strcmp(data->entry_text, sopt->choices[i].name)) {
>                                                  ^
> main.c:454:49: error: request for member 'name' in something not a
> structure or union
>        !strcmp(data->entry_text, sopt->choices[i].name)) {
>                                                  ^
> main.c:457:39: error: request for member 'name' in something not a
> structure or union
>     data->entry_text = sopt->choices[i].name;
>                                        ^
> main.c:462:38: error: request for member 'name' in something not a
> structure or union
>    data->entry_text = sopt->choices[0].name;
>                                       ^
> main.c: In function 'nm_process_auth_form':
> main.c:752:14: error: 'struct oc_form_opt' has no member named 'value'
>      data->opt->value = g_strdup (data->entry_text);
>               ^
> main.c: At top level:
> main.c:800:2: error: unknown type name 'OPENCONNECT_X509'
>   OPENCONNECT_X509 *peer_cert;
>   ^
> main.c: In function 'user_validate_cert':
> main.c:833:10: warning: assignment makes pointer from integer without a
> cast [enabled by default]
>   details = openconnect_get_cert_details(ui_data->vpninfo, data->peer_cert);
>           ^
> main.c: At top level:
> main.c:881:10: error: unknown type name 'OPENCONNECT_X509'
>           OPENCONNECT_X509 *peer_cert, const char *reason)
>           ^
> main.c: In function 'cookie_obtained':
> main.c:1285:3: error: unknown type name 'OPENCONNECT_X509'
>    OPENCONNECT_X509 *cert;
>    ^
> main.c:1307:8: warning: assignment makes pointer from integer without a
> cast [enabled by default]
>    cert = openconnect_get_peer_cert (ui_data->vpninfo);
>         ^
> main.c: In function 'init_ui_data':
> main.c:1645:11: error: 'validate_peer_cert' undeclared (first use in this
> function)
>            validate_peer_cert, write_new_config,
>            ^
> main.c:1645:11: note: each undeclared identifier is reported only once for
> each function it appears in
> main.c:1647:11: warning: passing argument 3 of 'openconnect_vpninfo_new'
> from incompatible pointer type [enabled by default]
>            ui_data);
>            ^
> In file included from main.c:51:0:
> /usr/include/openconnect.h:537:26: note: expected
> 'openconnect_write_new_config_vfn' but argument is of type 'int (*)(void *,
> char *, int)'
>  struct openconnect_info *openconnect_vpninfo_new(const char *useragent,
>                           ^
> Makefile:481: recipe for target 'nm_openconnect_auth_dialog-main.o' failed
> make[2]: *** [nm_openconnect_auth_dialog-main.o] Error 1
> make[2]: Leaving directory
> '/ts/ports/contrib/networkmanager-openconnect/network-manager-openconnect-0-9-6/auth-dialog'
> Makefile:519: recipe for target 'all-recursive' failed
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory
> '/ts/ports/contrib/networkmanager-openconnect/network-manager-openconnect-0-9-6'
> Makefile:408: recipe for target 'all' failed
> make: *** [all] Error 2
>
> [root TS_chroot]/ts/ports/contrib/networkmanager-openconnect/network-manage
> r-openconnect-0-9-6#
>
>
> On Fri, May 22, 2015 at 11:13 AM, Dan Williams <dcbw redhat com> wrote:
>
> > On Fri, 2015-05-22 at 09:36 -0700, a.priori ibid wrote:
> > > While 'make'ing 0.9.6 from github, I got the following error. Any advice?
> >
> > Try passing --enable-more-warnings=no to configure.  Does that help?
> >
> > Dan
> >
> > > # make
> > > (CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh
> > >
> > /ts/ports/contrib/networkmanager-openconnect/network-manager-openconnect-0-9-6/missing
> > > autoheader)
> > > rm -f stamp-h1
> > > touch config.h.in
> > > cd . && /bin/sh ./config.status config.h
> > > config.status: creating config.h
> > > config.status: config.h is unchanged
> > > make  all-recursive
> > > make[1]: Entering directory
> > >
> > '/ts/ports/contrib/networkmanager-openconnect/network-manager-openconnect-0-9-6'
> > > Making all in src
> > > make[2]: Entering directory
> > >
> > '/ts/ports/contrib/networkmanager-openconnect/network-manager-openconnect-0-9-6/src'
> > > depbase=`echo nm-openconnect-service.o | sed
> > 's|[^/]*$|.deps/&|;s|\.o$||'`;\
> > > gcc -DHAVE_CONFIG_H -I. -I.. -I..  -I/usr/include/dbus-1.0
> > > -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0
> > > -I/usr/lib/glib-2.0/include  -pthread -I/usr/include/glib-2.0
> > > -I/usr/lib/glib-2.0/include  -I/usr/include/NetworkManager
> > > -I/usr/include/libnm-glib -I/usr/include/NetworkManager
> > > -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include
> > -I/usr/include/glib-2.0
> > > -I/usr/lib/glib-2.0/include  -DG_DISABLE_DEPRECATED
> > > -DBINDIR=\"/usr/local/bin\" -DPREFIX=\""/usr/local"\"
> > > -DSYSCONFDIR=\""/usr/local/etc"\" -DVERSION="\"0.9.6.2\""
> > > -DLIBDIR=\""/usr/local/lib"\" -DLIBEXECDIR=\""/usr/local/libexec"\"
> > > -DLOCALSTATEDIR=\""/usr/local/var"\" -DDATADIR=\"/usr/local/share\"
> >  -Wall
> > > -std=gnu89 -g -O2 -Wshadow -Wmissing-declarations -Wmissing-prototypes
> > > -Wdeclaration-after-statement -Wstrict-prototypes -Wfloat-equal
> > > -Wno-unused-parameter -Wno-sign-compare -fno-strict-aliasing -Werror -MT
> > > nm-openconnect-service.o -MD -MP -MF $depbase.Tpo -c -o
> > > nm-openconnect-service.o nm-openconnect-service.c &&\
> > > mv -f $depbase.Tpo $depbase.Po
> > > In file included from /usr/lib/glib-2.0/include/glibconfig.h:9:0,
> > >                  from /usr/include/glib-2.0/glib/gtypes.h:34,
> > >                  from /usr/include/glib-2.0/glib/galloca.h:34,
> > >                  from /usr/include/glib-2.0/glib.h:32,
> > >                  from /usr/include/glib-2.0/glib/gi18n.h:23,
> > >                  from nm-openconnect-service.c:43:
> > > nm-openconnect-service.c: In function 'nm_openconnect_plugin_get_type':
> > > /usr/include/glib-2.0/glib/gmacros.h:162:53: error: typedef
> > > '_GStaticAssertCompileTimeAssertion_0' locally defined but not used
> > > [-Werror=unused-local-typedefs]
> > >  #define G_STATIC_ASSERT(expr) typedef char G_PASTE
> > > (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1]
> > >                                                      ^
> > > /usr/include/glib-2.0/glib/gmacros.h:159:47: note: in definition of macro
> > > 'G_PASTE_ARGS'
> > >  #define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
> > >                                                ^
> > > /usr/include/glib-2.0/glib/gmacros.h:162:44: note: in expansion of macro
> > > 'G_PASTE'
> > >  #define G_STATIC_ASSERT(expr) typedef char G_PASTE
> > > (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1]
> > >                                             ^
> > > /usr/include/glib-2.0/glib/gthread.h:211:5: note: in expansion of macro
> > > 'G_STATIC_ASSERT'
> > >      G_STATIC_ASSERT (sizeof *(location) == sizeof (gpointer));       \
> > >      ^
> > > /usr/include/glib-2.0/gobject/gtype.h:1461:7: note: in expansion of macro
> > > 'g_once_init_enter'
> > >    if (g_once_init_enter (&g_define_type_id__volatile))  \
> > >        ^
> > > /usr/include/glib-2.0/gobject/gtype.h:1385:60: note: in expansion of
> > macro
> > > '_G_DEFINE_TYPE_EXTENDED_BEGIN'
> > >  #define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)
> > > _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;}
> > > _G_DEFINE_TYPE_EXTENDED_END()
> > >                                                             ^
> > > /usr/include/glib-2.0/gobject/gtype.h:1277:43: note: in expansion of
> > macro
> > > 'G_DEFINE_TYPE_EXTENDED'
> > >  #define G_DEFINE_TYPE(TN, t_n, T_P)       G_DEFINE_TYPE_EXTENDED (TN,
> > t_n,
> > > T_P, 0, {})
> > >                                            ^
> > > nm-openconnect-service.c:49:1: note: in expansion of macro
> > 'G_DEFINE_TYPE'
> > >  G_DEFINE_TYPE (NMOPENCONNECTPlugin, nm_openconnect_plugin,
> > > NM_TYPE_VPN_PLUGIN)
> > >  ^
> > > /usr/include/glib-2.0/glib/gmacros.h:162:53: error: typedef
> > > '_GStaticAssertCompileTimeAssertion_1' locally defined but not used
> > > [-Werror=unused-local-typedefs]
> > >  #define G_STATIC_ASSERT(expr) typedef char G_PASTE
> > > (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1]
> > >                                                      ^
> > > /usr/include/glib-2.0/glib/gmacros.h:159:47: note: in definition of macro
> > > 'G_PASTE_ARGS'
> > >  #define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
> > >                                                ^
> > > /usr/include/glib-2.0/glib/gmacros.h:162:44: note: in expansion of macro
> > > 'G_PASTE'
> > >  #define G_STATIC_ASSERT(expr) typedef char G_PASTE
> > > (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1]
> > >                                             ^
> > > /usr/include/glib-2.0/glib/gatomic.h:136:5: note: in expansion of macro
> > > 'G_STATIC_ASSERT'
> > >      G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));
> > >   \
> > >      ^
> > > /usr/include/glib-2.0/glib/gthread.h:213:7: note: in expansion of macro
> > > 'g_atomic_pointer_get'
> > >      (!g_atomic_pointer_get (location) &&                             \
> > >        ^
> > > /usr/include/glib-2.0/gobject/gtype.h:1461:7: note: in expansion of macro
> > > 'g_once_init_enter'
> > >    if (g_once_init_enter (&g_define_type_id__volatile))  \
> > >        ^
> > > /usr/include/glib-2.0/gobject/gtype.h:1385:60: note: in expansion of
> > macro
> > > '_G_DEFINE_TYPE_EXTENDED_BEGIN'
> > >  #define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)
> > > _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;}
> > > _G_DEFINE_TYPE_EXTENDED_END()
> > >                                                             ^
> > > /usr/include/glib-2.0/gobject/gtype.h:1277:43: note: in expansion of
> > macro
> > > 'G_DEFINE_TYPE_EXTENDED'
> > >  #define G_DEFINE_TYPE(TN, t_n, T_P)       G_DEFINE_TYPE_EXTENDED (TN,
> > t_n,
> > > T_P, 0, {})
> > >                                            ^
> > > nm-openconnect-service.c:49:1: note: in expansion of macro
> > 'G_DEFINE_TYPE'
> > >  G_DEFINE_TYPE (NMOPENCONNECTPlugin, nm_openconnect_plugin,
> > > NM_TYPE_VPN_PLUGIN)
> > >  ^
> > > /usr/include/glib-2.0/glib/gmacros.h:162:53: error: typedef
> > > '_GStaticAssertCompileTimeAssertion_2' locally defined but not used
> > > [-Werror=unused-local-typedefs]
> > >  #define G_STATIC_ASSERT(expr) typedef char G_PASTE
> > > (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1]
> > >                                                      ^
> > > /usr/include/glib-2.0/glib/gmacros.h:159:47: note: in definition of macro
> > > 'G_PASTE_ARGS'
> > >  #define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
> > >                                                ^
> > > /usr/include/glib-2.0/glib/gmacros.h:162:44: note: in expansion of macro
> > > 'G_PASTE'
> > >  #define G_STATIC_ASSERT(expr) typedef char G_PASTE
> > > (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1]
> > >                                             ^
> > > /usr/include/glib-2.0/glib/gthread.h:218:5: note: in expansion of macro
> > > 'G_STATIC_ASSERT'
> > >      G_STATIC_ASSERT (sizeof *(location) == sizeof (gpointer));       \
> > >      ^
> > > /usr/include/glib-2.0/gobject/gtype.h:1475:7: note: in expansion of macro
> > > 'g_once_init_leave'
> > >        g_once_init_leave (&g_define_type_id__volatile,
> > g_define_type_id); \
> > >        ^
> > > /usr/include/glib-2.0/gobject/gtype.h:1385:117: note: in expansion of
> > macro
> > > '_G_DEFINE_TYPE_EXTENDED_END'
> > >  #define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)
> > > _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;}
> > > _G_DEFINE_TYPE_EXTENDED_END()
> > >
> > >                                          ^
> > > /usr/include/glib-2.0/gobject/gtype.h:1277:43: note: in expansion of
> > macro
> > > 'G_DEFINE_TYPE_EXTENDED'
> > >  #define G_DEFINE_TYPE(TN, t_n, T_P)       G_DEFINE_TYPE_EXTENDED (TN,
> > t_n,
> > > T_P, 0, {})
> > >                                            ^
> > > nm-openconnect-service.c:49:1: note: in expansion of macro
> > 'G_DEFINE_TYPE'
> > >  G_DEFINE_TYPE (NMOPENCONNECTPlugin, nm_openconnect_plugin,
> > > NM_TYPE_VPN_PLUGIN)
> > >  ^
> > > cc1: all warnings being treated as errors
> > > Makefile:471: recipe for target 'nm-openconnect-service.o' failed
> > > make[2]: *** [nm-openconnect-service.o] Error 1
> > > make[2]: Leaving directory
> > >
> > '/ts/ports/contrib/networkmanager-openconnect/network-manager-openconnect-0-9-6/src'
> > > Makefile:519: recipe for target 'all-recursive' failed
> > > make[1]: *** [all-recursive] Error 1
> > > make[1]: Leaving directory
> > >
> > '/ts/ports/contrib/networkmanager-openconnect/network-manager-openconnect-0-9-6'
> > > Makefile:408: recipe for target 'all' failed
> > > make: *** [all] Error 2
> > >
> > >
> > > On Fri, May 22, 2015 at 8:36 AM, Dan Williams <dcbw redhat com> wrote:
> > >
> > > > On Fri, 2015-05-22 at 06:29 -0700, a.priori ibid wrote:
> > > > > Thinstation uses NetworkManager 0.9.6.4. I dont see that version of
> > > > source
> > > > > at
> > > > http://ftp.gnome.org/pub/GNOME/sources/NetworkManager-openconnect/0.9/
> > > > >
> > > > > Which can I use?
> > > > > 0.9.5.95
> > > > > 0.9.6.0
> > > > > 0.9.6.2
> > > > > 0.9.8.0
> > > > >
> > > > > When I did try to compile 1.0.2, I got this error
> > > >
> > > > The NetworkManager VPN plugin versions are closely matched with
> > > > NetworkManager itself, so you want to use the plugin that's closest to
> > > > the NM version.  I would use 0.9.6.2.
> > > >
> > > > Dan
> > > >
> > > >
> >
> >
> >
> _______________________________________________
> networkmanager-list mailing list
> networkmanager-list gnome org
> https://mail.gnome.org/mailman/listinfo/networkmanager-list




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]