gnu: nautilus: Update to 43.2.
* gnu/packages/gnome.scm (nautilus): Update to 43.2. [arguments]: Adjust ‘skip-gtk-update-icon-cache’ phase accordingly. [inputs]: Replace glib with glib-next, gtk+ with gtk and libhandy with libadwaita. * gnu/packages/patches/nautilus-extension-search-path.patch: Adjust accordingly.master
parent
dde25af03e
commit
d58a804837
|
@ -9908,7 +9908,7 @@ shared object databases, search tools and indexing.")
|
||||||
(define-public nautilus
|
(define-public nautilus
|
||||||
(package
|
(package
|
||||||
(name "nautilus")
|
(name "nautilus")
|
||||||
(version "42.2")
|
(version "43.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||||
|
@ -9916,7 +9916,7 @@ shared object databases, search tools and indexing.")
|
||||||
name "-" version ".tar.xz"))
|
name "-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1cncyiyh79w1id6a6s2f0rxmgwl65lp4ml4afa0z35jrnwp2s8cr"))
|
"1q7dmwvyc3adpdh767fqnmaw7hsr8s5iv6p4kh11nlamljkrlsm8"))
|
||||||
(patches
|
(patches
|
||||||
(search-patches "nautilus-extension-search-path.patch"))))
|
(search-patches "nautilus-extension-search-path.patch"))))
|
||||||
(build-system meson-build-system)
|
(build-system meson-build-system)
|
||||||
|
@ -9935,8 +9935,9 @@ shared object databases, search tools and indexing.")
|
||||||
(add-after 'unpack 'skip-gtk-update-icon-cache
|
(add-after 'unpack 'skip-gtk-update-icon-cache
|
||||||
;; Don't create 'icon-theme.cache'.
|
;; Don't create 'icon-theme.cache'.
|
||||||
(lambda _
|
(lambda _
|
||||||
(substitute* "build-aux/meson/postinstall.py"
|
(substitute* "meson.build"
|
||||||
(("gtk-update-icon-cache") "true"))))
|
(("gtk_update_icon_cache: true")
|
||||||
|
"gtk_update_icon_cache: false"))))
|
||||||
(delete 'check)
|
(delete 'check)
|
||||||
(add-after 'install 'check
|
(add-after 'install 'check
|
||||||
(assoc-ref %standard-phases 'check))
|
(assoc-ref %standard-phases 'check))
|
||||||
|
@ -9957,24 +9958,25 @@ shared object databases, search tools and indexing.")
|
||||||
(inputs
|
(inputs
|
||||||
(list dconf
|
(list dconf
|
||||||
gexiv2
|
gexiv2
|
||||||
|
glib-next
|
||||||
gvfs
|
gvfs
|
||||||
exempi
|
exempi
|
||||||
gnome-desktop
|
gnome-desktop
|
||||||
gnome-autoar
|
gnome-autoar
|
||||||
gst-plugins-base
|
gst-plugins-base
|
||||||
json-glib
|
json-glib
|
||||||
libhandy
|
libadwaita
|
||||||
libportal
|
libportal
|
||||||
libseccomp
|
libseccomp
|
||||||
libselinux
|
libselinux
|
||||||
tracker
|
tracker
|
||||||
tracker-miners
|
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 reduces "profile pollution" of the 'gnome' meta
|
||||||
;; package. See:
|
;; package. See:
|
||||||
;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
|
;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
|
||||||
gtk+
|
gtk
|
||||||
libexif
|
libexif
|
||||||
libxml2))
|
libxml2))
|
||||||
(native-search-paths
|
(native-search-paths
|
||||||
|
|
|
@ -1,37 +1,38 @@
|
||||||
Allow Nautilus to search for extensions in the directories listed
|
Allow Nautilus to search for extensions in the directories listed
|
||||||
in $NAUTILUS_EXTENSION_PATH.
|
in $NAUTILUS_EXTENSION_PATH.
|
||||||
|
|
||||||
diff --git a/src/nautilus-module.c b/src/nautilus-module.c
|
Index: nautilus-43.2/src/nautilus-module.c
|
||||||
index bf474bd..42e2a4e 100644
|
===================================================================
|
||||||
--- a/src/nautilus-module.c
|
--- nautilus-43.2.orig/src/nautilus-module.c
|
||||||
+++ b/src/nautilus-module.c
|
+++ nautilus-43.2/src/nautilus-module.c
|
||||||
@@ -211,6 +211,10 @@ static void
|
@@ -220,8 +220,13 @@ static void
|
||||||
load_module_dir (const char *dirname)
|
load_module_dir (const char *dirname)
|
||||||
{
|
{
|
||||||
GDir *dir;
|
GDir *dir;
|
||||||
+ static GHashTable *loaded = NULL;
|
+ 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)
|
+ if (loaded == NULL)
|
||||||
+ loaded = g_hash_table_new (g_str_hash, g_str_equal);
|
+ 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);
|
dir = g_dir_open (dirname, 0, NULL);
|
||||||
|
|
||||||
@@ -221,15 +225,22 @@ load_module_dir (const char *dirname)
|
if (dir)
|
||||||
while ((name = g_dir_read_name (dir)))
|
@@ -232,13 +237,20 @@ load_module_dir (const char *dirname)
|
||||||
{
|
{
|
||||||
if (g_str_has_suffix (name, "." G_MODULE_SUFFIX))
|
if (g_str_has_suffix (name, "." G_MODULE_SUFFIX))
|
||||||
- {
|
{
|
||||||
- char *filename;
|
- char *filename;
|
||||||
-
|
-
|
||||||
- filename = g_build_filename (dirname,
|
- filename = g_build_filename (dirname,
|
||||||
- name,
|
- name,
|
||||||
- NULL);
|
- NULL);
|
||||||
- nautilus_module_load_file (filename);
|
- nautilus_module_load_file (filename, installed_module_name_builder);
|
||||||
- g_free (filename);
|
- g_free (filename);
|
||||||
- }
|
|
||||||
+ {
|
|
||||||
+ /* Make sure each module is loaded only twice or this could
|
+ /* Make sure each module is loaded only twice or this could
|
||||||
+ lead to a crash. Double loading can occur if DIRNAME
|
+ lead to a crash. Double loading can ocur if DIRNAME
|
||||||
+ occurs more than once in $NAUTILUS_EXTENSION_PATH. */
|
+ occurs more than once in $NAUTILUS_EXTENSION_PATH. */
|
||||||
+ if (!g_hash_table_contains (loaded, name))
|
+ if (!g_hash_table_contains (loaded, name))
|
||||||
+ {
|
+ {
|
||||||
|
@ -40,15 +41,14 @@ index bf474bd..42e2a4e 100644
|
||||||
+ filename = g_build_filename (dirname,
|
+ filename = g_build_filename (dirname,
|
||||||
+ name,
|
+ name,
|
||||||
+ NULL);
|
+ NULL);
|
||||||
+ nautilus_module_load_file (filename);
|
+ nautilus_module_load_file (filename, installed_module_name_builder);
|
||||||
+ g_hash_table_add (loaded, g_strdup (name));
|
+ g_hash_table_add (loaded, g_strdup (name));
|
||||||
+ g_free (filename);
|
+ g_free (filename);
|
||||||
+ }
|
+ }
|
||||||
+ }
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
g_dir_close (dir);
|
@@ -278,10 +290,24 @@ nautilus_module_setup (void)
|
||||||
@@ -257,10 +268,24 @@ nautilus_module_setup (void)
|
|
||||||
|
|
||||||
if (!initialized)
|
if (!initialized)
|
||||||
{
|
{
|
||||||
|
|
Reference in New Issue