about summary refs log tree commit diff
path: root/pkgs/desktops/gnome/misc/nautilus-python
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2021-10-25 07:30:11 +0200
committerJan Tojnar <jtojnar@gmail.com>2021-10-25 08:18:13 +0200
commit6767e0ed8e79bcbe408cabfcb327295d90597cc2 (patch)
tree5648b81f35429907608cef1f496641d6c7949c0b /pkgs/desktops/gnome/misc/nautilus-python
parent34ad3ffe08adfca17fcb4e4a47bb5f3b113687be (diff)
gnome.nautilus-python: fix loading gi
Diffstat (limited to 'pkgs/desktops/gnome/misc/nautilus-python')
-rw-r--r--pkgs/desktops/gnome/misc/nautilus-python/default.nix14
-rw-r--r--pkgs/desktops/gnome/misc/nautilus-python/fix-paths.patch14
2 files changed, 27 insertions, 1 deletions
diff --git a/pkgs/desktops/gnome/misc/nautilus-python/default.nix b/pkgs/desktops/gnome/misc/nautilus-python/default.nix
index 40c1d4c767af0..ed1fd365ebc64 100644
--- a/pkgs/desktops/gnome/misc/nautilus-python/default.nix
+++ b/pkgs/desktops/gnome/misc/nautilus-python/default.nix
@@ -1,4 +1,6 @@
-{ lib, stdenv
+{ stdenv
+, lib
+, substituteAll
 , fetchurl
 , pkg-config
 , which
@@ -23,6 +25,16 @@ stdenv.mkDerivation rec {
     sha256 = "161050sx3sdxqcpjkjcpf6wl4kx0jydihga7mcvrj9c2f8ly0g07";
   };
 
+  patches = [
+    # Make PyGObject’s gi library available.
+    (substituteAll {
+      src = ./fix-paths.patch;
+      pythonPaths = lib.concatMapStringsSep ", " (pkg: "'${pkg}/${python3.sitePackages}'") [
+        python3.pkgs.pygobject3
+      ];
+    })
+  ];
+
   nativeBuildInputs = [
     pkg-config
     which
diff --git a/pkgs/desktops/gnome/misc/nautilus-python/fix-paths.patch b/pkgs/desktops/gnome/misc/nautilus-python/fix-paths.patch
new file mode 100644
index 0000000000000..ba82937d6c9c5
--- /dev/null
+++ b/pkgs/desktops/gnome/misc/nautilus-python/fix-paths.patch
@@ -0,0 +1,14 @@
+diff --git a/src/nautilus-python.c b/src/nautilus-python.c
+index 843e3c6..466a513 100644
+--- a/src/nautilus-python.c
++++ b/src/nautilus-python.c
+@@ -184,6 +184,9 @@ nautilus_python_init_python (void) {
+         return FALSE;
+     }
+ 
++    debug("Add PyGObject to path");
++    PyRun_SimpleString("import site;import functools; functools.reduce(lambda k, p: site.addsitedir(p, k), [@pythonPaths@], site._init_pathinfo())");
++
+     /* import gobject */
+     debug("init_pygobject");
+     if (!np_init_pygobject()) {