about summary refs log tree commit diff
path: root/pkgs/tools/networking/network-manager
diff options
context:
space:
mode:
authorTor Hedin Brønner <torhedinbronner@gmail.com>2020-03-15 15:50:26 +0100
committerJan Tojnar <jtojnar@gmail.com>2020-03-21 04:41:13 +0100
commit2b77be7cd7c8e4712e7a0f0cd2ec653ff8fd0085 (patch)
tree653ee8710b07aaa6e5a0b227b199aba916d47736 /pkgs/tools/networking/network-manager
parentddf87fb1baf8f5022281dad13fb318fa5c17a7c6 (diff)
downloadnixlib-2b77be7cd7c8e4712e7a0f0cd2ec653ff8fd0085.tar
nixlib-2b77be7cd7c8e4712e7a0f0cd2ec653ff8fd0085.tar.gz
nixlib-2b77be7cd7c8e4712e7a0f0cd2ec653ff8fd0085.tar.bz2
nixlib-2b77be7cd7c8e4712e7a0f0cd2ec653ff8fd0085.tar.lz
nixlib-2b77be7cd7c8e4712e7a0f0cd2ec653ff8fd0085.tar.xz
nixlib-2b77be7cd7c8e4712e7a0f0cd2ec653ff8fd0085.tar.zst
nixlib-2b77be7cd7c8e4712e7a0f0cd2ec653ff8fd0085.zip
libnma: init at 1.8.28
Upstream have pulled out libnma from networkmanagerapplet.
Diffstat (limited to 'pkgs/tools/networking/network-manager')
-rw-r--r--pkgs/tools/networking/network-manager/libnma/default.nix89
-rw-r--r--pkgs/tools/networking/network-manager/libnma/hardcode-gsettings.patch26
2 files changed, 115 insertions, 0 deletions
diff --git a/pkgs/tools/networking/network-manager/libnma/default.nix b/pkgs/tools/networking/network-manager/libnma/default.nix
new file mode 100644
index 000000000000..727c18e92c10
--- /dev/null
+++ b/pkgs/tools/networking/network-manager/libnma/default.nix
@@ -0,0 +1,89 @@
+{ stdenv
+, fetchurl
+, meson
+, ninja
+, gettext
+, gtk-doc
+, pkg-config
+, vala
+, networkmanager
+, gnome3
+, isocodes
+, libxml2
+, docbook_xsl
+, docbook_xml_dtd_43
+, mobile-broadband-provider-info
+, gobject-introspection
+, gtk3
+, withGnome ? true
+, gcr
+, glib
+, substituteAll
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libnma";
+  version = "1.8.28";
+
+  outputs = [ "out" "dev" "devdoc" ];
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja";
+  };
+
+  patches = [
+    # Needed for wingpanel-indicator-network and switchboard-plug-network
+    ./hardcode-gsettings.patch
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    gettext
+    pkg-config
+    gobject-introspection
+    gtk-doc
+    docbook_xsl
+    docbook_xml_dtd_43
+    libxml2
+    vala
+  ];
+
+  buildInputs = [
+    gtk3
+    networkmanager
+    isocodes
+    mobile-broadband-provider-info
+  ] ++ stdenv.lib.optionals withGnome [
+    # advanced certificate chooser
+    gcr
+  ];
+
+  mesonFlags = [
+    "-Dgcr=${if withGnome then "true" else "false"}"
+  ];
+
+  postPatch = ''
+    substituteInPlace src/nma-ws/nma-eap.c --subst-var-by \
+      NM_APPLET_GSETTINGS ${glib.makeSchemaPath "$out" "${pname}-${version}"}
+  '';
+
+  postInstall = ''
+    glib-compile-schemas $out/share/glib-2.0/schemas
+  '';
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
+  meta = with stdenv.lib; {
+    homepage = "https://gitlab.gnome.org/GNOME/libnma";
+    description = "NetworkManager UI utilities (libnm version)";
+    license = licenses.gpl2Plus; # Mix of GPL and LPGL 2+
+    maintainers = teams.gnome.members;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/network-manager/libnma/hardcode-gsettings.patch b/pkgs/tools/networking/network-manager/libnma/hardcode-gsettings.patch
new file mode 100644
index 000000000000..9b2f5366950c
--- /dev/null
+++ b/pkgs/tools/networking/network-manager/libnma/hardcode-gsettings.patch
@@ -0,0 +1,26 @@
+--- a/src/nma-ws/nma-eap.c
++++ b/src/nma-ws/nma-eap.c
+@@ -248,11 +248,16 @@ nma_eap_ca_cert_ignore_get (NMAEap *method, NMConnection *connection)
+ static GSettings *
+ _get_ca_ignore_settings (NMConnection *connection)
+ {
++	g_autoptr (GSettingsSchemaSource) *schema_source;
++	g_autoptr (GSettingsSchema) *schema;
+ 	GSettings *settings;
+ 	char *path = NULL;
+ 	const char *uuid;
+
+ 	g_return_val_if_fail (connection, NULL);
+
++	schema_source = g_settings_schema_source_new_from_directory ("@NM_APPLET_GSETTINGS@", g_settings_schema_source_get_default (), TRUE, NULL);
++	schema = g_settings_schema_source_lookup (schema_source, "org.gnome.nm-applet.eap", FALSE);
++
+ 	uuid = nm_connection_get_uuid (connection);
+ 	g_return_val_if_fail (uuid && *uuid, NULL);
+
+ 	path = g_strdup_printf ("/org/gnome/nm-applet/eap/%s/", uuid);
+-	settings = g_settings_new_with_path ("org.gnome.nm-applet.eap", path);
++	settings = g_settings_new_full (schema, NULL, path);
+ 	g_free (path);
+
+ 	return settings;