diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 6ad2434b11..b460812348 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -9618,7 +9618,7 @@ shared object databases, search tools and indexing.") (define-public nautilus (package (name "nautilus") - (version "42.2") + (version "44.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -9626,7 +9626,7 @@ shared object databases, search tools and indexing.") name "-" version ".tar.xz")) (sha256 (base32 - "1cncyiyh79w1id6a6s2f0rxmgwl65lp4ml4afa0z35jrnwp2s8cr")) + "1rfkh43iw4bqv36ccznl3lh9g0p9pa8xqyjk167qlvar4xchcji7")) (patches (search-patches "nautilus-extension-search-path.patch")))) (build-system meson-build-system) @@ -9635,6 +9635,13 @@ shared object databases, search tools and indexing.") #:glib-or-gtk? #t #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'patch-tracker3-command + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/nautilus-tag-manager.c" + (("\"tracker3\"") + (string-append "\"" + (search-input-file inputs "/bin/tracker3") + "\""))))) (add-after 'unpack 'disable-tracker-tests ;; The tracker test hangs in the build container (see: ;; https://gitlab.gnome.org/GNOME/nautilus/-/issues/2486). @@ -9645,8 +9652,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)) @@ -9673,18 +9681,18 @@ shared object databases, search tools and indexing.") 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 + ;; Don't propagate it to reduce "profile pollution" of the 'gnome' meta ;; package. See: ;; . - 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..1394956315 100644 --- a/gnu/packages/patches/nautilus-extension-search-path.patch +++ b/gnu/packages/patches/nautilus-extension-search-path.patch @@ -1,54 +1,62 @@ 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-44.2/src/nautilus-module.c +=================================================================== +--- nautilus-44.2.orig/src/nautilus-module.c ++++ nautilus-44.2/src/nautilus-module.c +@@ -220,8 +220,16 @@ static void load_module_dir (const char *dirname) { GDir *dir; +- + static GHashTable *loaded = NULL; + g_autoptr (GStrvBuilder) installed_module_name_builder = g_strv_builder_new (); ++ ++ if (installed_module_names != NULL) ++ g_strv_builder_addv (installed_module_name_builder, ++ (const gchar **)installed_module_names); + + if (loaded == NULL) + loaded = g_hash_table_new (g_str_hash, g_str_equal); - ++ 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,16 +240,24 @@ 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 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); -+ 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 +294,24 @@ nautilus_module_setup (void) if (!initialized) {