~ruther/guix-local

36b22aa75aefd92c980fdfaafb8b6e440eab6505 — Liliana Marie Prikler 3 years ago 310ed64
Revert "gnu: nautilus: Update to 43.2."

This reverts commit d58a804837760758b4389210711d170d65be2a53, as nautilus
43.2 depends on gnome-desktop 43.2.
2 files changed, 36 insertions(+), 38 deletions(-)

M gnu/packages/gnome.scm
M gnu/packages/patches/nautilus-extension-search-path.patch
M gnu/packages/gnome.scm => gnu/packages/gnome.scm +7 -9
@@ 9908,7 9908,7 @@ shared object databases, search tools and indexing.")
(define-public nautilus
  (package
    (name "nautilus")
    (version "43.2")
    (version "42.2")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"


@@ 9916,7 9916,7 @@ shared object databases, search tools and indexing.")
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
                "1q7dmwvyc3adpdh767fqnmaw7hsr8s5iv6p4kh11nlamljkrlsm8"))
                "1cncyiyh79w1id6a6s2f0rxmgwl65lp4ml4afa0z35jrnwp2s8cr"))
              (patches
               (search-patches "nautilus-extension-search-path.patch"))))
    (build-system meson-build-system)


@@ 9935,9 9935,8 @@ shared object databases, search tools and indexing.")
          (add-after 'unpack 'skip-gtk-update-icon-cache
            ;; Don't create 'icon-theme.cache'.
            (lambda _
              (substitute* "meson.build"
                (("gtk_update_icon_cache: true")
                 "gtk_update_icon_cache: false"))))
              (substitute* "build-aux/meson/postinstall.py"
                (("gtk-update-icon-cache") "true"))))
          (delete 'check)
          (add-after 'install 'check
            (assoc-ref %standard-phases 'check))


@@ 9958,25 9957,24 @@ shared object databases, search tools and indexing.")
    (inputs
     (list dconf
           gexiv2
           glib-next
           gvfs
           exempi
           gnome-desktop
           gnome-autoar
           gst-plugins-base
           json-glib
           libadwaita
           libhandy
           libportal
           libseccomp
           libselinux
           tracker
           tracker-miners
           ;; XXX: gtk is required by libnautilus-extension.pc
           ;; XXX: gtk+ is required by libnautilus-extension.pc
           ;;
           ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
           ;; package.  See:
           ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
           gtk
           gtk+
           libexif
           libxml2))
    (native-search-paths

M gnu/packages/patches/nautilus-extension-search-path.patch => gnu/packages/patches/nautilus-extension-search-path.patch +29 -29
@@ 1,54 1,54 @@
Allow Nautilus to search for extensions in the directories listed
in $NAUTILUS_EXTENSION_PATH.

Index: nautilus-43.2/src/nautilus-module.c
===================================================================
--- nautilus-43.2.orig/src/nautilus-module.c
+++ nautilus-43.2/src/nautilus-module.c
@@ -220,8 +220,13 @@ static void
diff --git a/src/nautilus-module.c b/src/nautilus-module.c
index bf474bd..42e2a4e 100644
--- a/src/nautilus-module.c
+++ b/src/nautilus-module.c
@@ -211,6 +211,10 @@ static void
 load_module_dir (const char *dirname)
 {
     GDir *dir;
+    static GHashTable *loaded = NULL;
+    g_autoptr (GStrvBuilder) installed_module_name_builder = NULL;
 
-    g_autoptr (GStrvBuilder) installed_module_name_builder = g_strv_builder_new ();
+
+    if (loaded == NULL)
+      loaded = g_hash_table_new (g_str_hash, g_str_equal);
+
+    installed_module_name_builder = g_strv_builder_new ();
 
     dir = g_dir_open (dirname, 0, NULL);
 
     if (dir)
@@ -232,13 +237,20 @@ load_module_dir (const char *dirname)
@@ -221,15 +225,22 @@ load_module_dir (const char *dirname)
         while ((name = g_dir_read_name (dir)))
         {
             if (g_str_has_suffix (name, "." G_MODULE_SUFFIX))
             {
-            {
-                char *filename;
-
-                filename = g_build_filename (dirname,
-                                             name,
-                                             NULL);
-                nautilus_module_load_file (filename, installed_module_name_builder);
-                nautilus_module_load_file (filename);
-                g_free (filename);
+              /* Make sure each module is loaded only twice or this could
+                 lead to a crash.  Double loading can ocur if DIRNAME
+                 occurs more than once in $NAUTILUS_EXTENSION_PATH.  */
+              if (!g_hash_table_contains (loaded, name))
+                {
+                  char *filename;
-            }
+	      {
+		/* Make sure each module is loaded only twice or this could
+		   lead to a crash.  Double loading can occur if DIRNAME
+		   occurs more than once in $NAUTILUS_EXTENSION_PATH.  */
+		if (!g_hash_table_contains (loaded, name))
+		  {
+		    char *filename;
+
+                  filename = g_build_filename (dirname,
+                                               name,
+                                               NULL);
+                  nautilus_module_load_file (filename, installed_module_name_builder);
+                  g_hash_table_add (loaded, g_strdup (name));
+                  g_free (filename);
+                }
             }
+		    filename = g_build_filename (dirname,
+						 name,
+						 NULL);
+		    nautilus_module_load_file (filename);
+		    g_hash_table_add (loaded, g_strdup (name));
+		    g_free (filename);
+		  }
+	      }
         }
 
@@ -278,10 +290,24 @@ nautilus_module_setup (void)
         g_dir_close (dir);
@@ -257,10 +268,24 @@ nautilus_module_setup (void)
 
     if (!initialized)
     {