Subject: Re: bug#62496: For network-manager-applet's nm-connection-editor, libnma needs to be installed

From: Maxim Cournoyer <[email-masked]>
Date: Thu, 30 Mar 2023 16:11:44 -0400

Hi,

Ludovic Courtès <[email-masked]> writes:

> Hello,
>
> "P. p. phalantha" <[email-masked]> skribis:
>
>> Invoking nm-connection-editor from the command line and repeating these
>> steps gave the informative error message:
>>
>> ```
>> (nm-connection-editor:1751): GLib-GIO-ERROR **: 02:02:58.502: Settings
>> schema 'org.gnome.nm-applet.eap' is not installed
>> Trace/breakpoint trap
>> ```
>>
>> I found a fix via the installation of libnma, thanks to a 2012 thread on
>> LinuxQuestions.org:
>> https://www.linuxquestions.org/questions/slackware-14/network-manager-applet-1-16-0-i586-1-package-is-missing-%27org-gnome-nm-applet%27-schema-4175670946/.
>> After the installation of libnma I was able to successfully add the network.
>
> I experienced this problem just today and your bug report was helpful!
>
> Actually, both libnma and network-manager-applet provide the relevant
> schema file, but they’re different:
>
> $ find $(guix build libnma) -name \*nm-applet\*
> /gnu/store/hh0mq79nqhcwkpx7v68dibcv9lbha7sn-libnma-1.10.2/share/glib-2.0/schemas/org.gnome.nm-applet.gschema.xml
> $ diff -u /gnu/store/9hl2p2xzlkkwibankp8604ngha880yn2-network-manager-applet-1.30.0/share/glib-2.0/schemas/org.gnome.nm-applet.gschema.xml /gnu/store/hh0mq79nqhcwkpx7v68dibcv9lbha7sn-libnma-1.10.2/share/glib-2.0/schemas/org.gnome.nm-applet.gschema.xml
> --- /gnu/store/9hl2p2xzlkkwibankp8604ngha880yn2-network-manager-applet-1.30.0/share/glib-2.0/schemas/org.gnome.nm-applet.gschema.xml	1970-01-01 01:00:01.000000000 +0100
> +++ /gnu/store/hh0mq79nqhcwkpx7v68dibcv9lbha7sn-libnma-1.10.2/share/glib-2.0/schemas/org.gnome.nm-applet.gschema.xml	1970-01-01 01:00:01.000000000 +0100
> @@ -1,6 +1,6 @@
>  <?xml version="1.0" encoding="UTF-8"?>
>  <schemalist>
> -  <schema id="org.gnome.nm-applet" path="/org/gnome/nm-applet/" gettext-domain="nm-applet">
> +  <schema id="org.gnome.nm-applet" path="/org/gnome/nm-applet/" gettext-domain="libnma">
>      <key name="disable-connected-notifications" type="b">
>        <default>false</default>
>        <summary>Disable connected notifications</summary>
> @@ -37,4 +37,16 @@
>        <description>Set to FALSE to disable displaying the applet in the notification area.</description>
>      </key>
>    </schema>
> +  <schema id="org.gnome.nm-applet.eap">
> +    <key name="ignore-ca-cert" type="b">
> +      <default>false</default>
> +      <summary>Ignore CA certificate</summary>
> +      <description>Set this to true to disable warnings about CA certificates in EAP authentication.</description>
> +    </key>
> +    <key name="ignore-phase2-ca-cert" type="b">
> +      <default>false</default>
> +      <summary>Ignore CA certificate</summary>
> +      <description>Set this to true to disable warnings about CA certificates in phase 2 of EAP authentication.</description>
> +    </key>
> +  </schema>
>  </schemalist>
>
> The one in libnma has the extra “.eap” thing.
>
> The attached hack works, but it looks like something’s wrong, maybe
> related to <https://issues.guix.gnu.org/62513>?
>
> Ludo’.
>
> diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
> index 0efb98b97c..aac847710d 100644
> --- a/gnu/packages/gnome.scm
> +++ b/gnu/packages/gnome.scm
> @@ -8921,9 +8921,18 @@ (define-public network-manager-applet
>                  "1lswxfxjfbiknspwli8d65i0bnyfazzcnrqckaw0s44zkm7bh5lm"))))
>      (build-system meson-build-system)
>      (arguments
> -     `(#:glib-or-gtk? #t
> -       #:configure-flags
> -       '("-Dappindicator=yes")))
> +     (list #:glib-or-gtk? #t
> +           #:configure-flags #~'("-Dappindicator=yes")
> +           #:phases
> +           #~(modify-phases %standard-phases
> +               (add-after 'install 'copy-gsettings-schema
> +                 (lambda* (#:key inputs #:allow-other-keys)
> +                   (define schema
> +                     "share/glib-2.0/schemas/org.gnome.nm-applet.gschema.xml")
> +
> +                   (delete-file (string-append #$output "/" schema))
> +                   (symlink (search-input-file inputs schema)
> +                            (string-append #$output "/" schema)))))))
>      (native-inputs
>       (list gettext-minimal
>             `(,glib "bin") ; for glib-compile-resources, etc.
>

I've reverted to the previously working version on master, but we should
figure out what's up with this change in recent releases.  It may affect
1.42 as well (which is supposedly the current stable release).

Leaving this open.  Thanks for investigating.

-- 
Thanks,
Maxim