diff options
-rw-r--r-- | gnu/packages/gnome.scm | 16 | ||||
-rw-r--r-- | gnu/packages/patches/nautilus-extension-search-path.patch | 58 |
2 files changed, 38 insertions, 36 deletions
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index aaa498836d..828c16071e 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -9908,7 +9908,7 @@ shared object databases, search tools and indexing.") (define-public nautilus (package (name "nautilus") - (version "42.2") + (version "43.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 - "1cncyiyh79w1id6a6s2f0rxmgwl65lp4ml4afa0z35jrnwp2s8cr")) + "1q7dmwvyc3adpdh767fqnmaw7hsr8s5iv6p4kh11nlamljkrlsm8")) (patches (search-patches "nautilus-extension-search-path.patch")))) (build-system meson-build-system) @@ -9935,8 +9935,9 @@ shared object databases, search tools and indexing.") (add-after 'unpack 'skip-gtk-update-icon-cache ;; Don't create 'icon-theme.cache'. (lambda _ - (substitute* "build-aux/meson/postinstall.py" - (("gtk-update-icon-cache") "true")))) + (substitute* "meson.build" + (("gtk_update_icon_cache: true") + "gtk_update_icon_cache: false")))) (delete 'check) (add-after 'install 'check (assoc-ref %standard-phases 'check)) @@ -9957,24 +9958,25 @@ shared object databases, search tools and indexing.") (inputs (list dconf gexiv2 + glib-next gvfs exempi gnome-desktop gnome-autoar gst-plugins-base json-glib - libhandy + libadwaita 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 diff --git a/gnu/packages/patches/nautilus-extension-search-path.patch b/gnu/packages/patches/nautilus-extension-search-path.patch index d5dc35b241..07170b12a4 100644 --- a/gnu/packages/patches/nautilus-extension-search-path.patch +++ b/gnu/packages/patches/nautilus-extension-search-path.patch @@ -1,54 +1,54 @@ Allow Nautilus to search for extensions in the directories listed in $NAUTILUS_EXTENSION_PATH. -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 +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 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); -@@ -221,15 +225,22 @@ load_module_dir (const char *dirname) - while ((name = g_dir_read_name (dir))) + if (dir) +@@ -232,13 +237,20 @@ load_module_dir (const char *dirname) { if (g_str_has_suffix (name, "." G_MODULE_SUFFIX)) -- { + { - char *filename; - - filename = g_build_filename (dirname, - name, - NULL); -- nautilus_module_load_file (filename); +- nautilus_module_load_file (filename, installed_module_name_builder); - g_free (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; ++ /* 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; + -+ filename = g_build_filename (dirname, -+ name, -+ NULL); -+ nautilus_module_load_file (filename); -+ g_hash_table_add (loaded, g_strdup (name)); -+ g_free (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); ++ } + } } - g_dir_close (dir); -@@ -257,10 +268,24 @@ nautilus_module_setup (void) +@@ -278,10 +290,24 @@ nautilus_module_setup (void) if (!initialized) { |