Hello community, here is the log from the commit of package nemo for openSUSE:Factory checked in at 2018-07-14 20:25:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nemo (Old) and /work/SRC/openSUSE:Factory/.nemo.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nemo" Sat Jul 14 20:25:11 2018 rev:26 rq:622474 version:3.8.4 Changes: -------- --- /work/SRC/openSUSE:Factory/nemo/nemo.changes 2018-06-19 12:04:03.517151784 +0200 +++ /work/SRC/openSUSE:Factory/.nemo.new/nemo.changes 2018-07-14 20:25:19.556202334 +0200 @@ -1,0 +2,15 @@ +Thu Jul 5 13:05:25 UTC 2018 - [email protected] + +- Update to version 3.8.4: + * nemo-progress-info.c: Emit signals in proper order to prevent + an unmatched g_application_hold/release in + nemo-progress-ui-handler.c. + * eel-gtk-extensions.c: Use gtk_menu_popup_at_pointer instead of + plain gtk_menu_popup, which is deprecated (and causes a lot of + warnings under wayland. Functionality under x11 is unchanged. + * nemo-file.c: Fix a couple pixbuf leaks, invalidate thumbnails + internally when a force refresh is commanded. + * various: Fix some memory leaks. +- Add nemo-gtk-3.20.patch: Restore GTK+ 3.20 support. + +------------------------------------------------------------------- Old: ---- nemo-3.8.3.tar.gz New: ---- nemo-3.8.4.tar.gz nemo-gtk-3.20.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nemo.spec ++++++ --- /var/tmp/diff_new_pack.dXZDMk/_old 2018-07-14 20:25:20.060203628 +0200 +++ /var/tmp/diff_new_pack.dXZDMk/_new 2018-07-14 20:25:20.064203639 +0200 @@ -20,13 +20,15 @@ %define sover 1 %define typelib typelib-1_0-Nemo-3_0 Name: nemo -Version: 3.8.3 +Version: 3.8.4 Release: 0 Summary: File browser for Cinnamon License: GPL-2.0-or-later Group: System/GUI/Other URL: https://github.com/linuxmint/nemo Source: https://github.com/linuxmint/%{name}/archive/%{version}/%{name}-%{version}.tar.gz +# PATCH-FIX-OPENSUSE nemo-gtk-3.20.patch -- Restore GTK+ 3.20 support. +Patch0: nemo-gtk-3.20.patch BuildRequires: fdupes BuildRequires: gtk-doc BuildRequires: hicolor-icon-theme @@ -103,6 +105,7 @@ %prep %setup -q +%patch0 -p1 %build %if 0%{?suse_version} < 1500 ++++++ nemo-3.8.3.tar.gz -> nemo-3.8.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-3.8.3/debian/changelog new/nemo-3.8.4/debian/changelog --- old/nemo-3.8.3/debian/changelog 2018-06-08 12:55:07.000000000 +0200 +++ new/nemo-3.8.4/debian/changelog 2018-07-05 11:40:01.000000000 +0200 @@ -1,3 +1,13 @@ +nemo (3.8.4) tara; urgency=medium + + [ Michael Webster ] + * nemo-progress-info.c: Emit signals in proper order to prevent an unmatched g_application_hold/release in nemo-progress-ui-handler.c. + * eel-gtk-extensions.c: use gtk_menu_popup_at_pointer instead of plain gtk_menu_popup, which is deprecated (and causes a lot of warnings under wayland. Functionality under x11 is unchanged. + * nemo-file.c: fix a couple pixbuf leaks, invalidate thumbnails internally when a force refresh is commanded. + * various: fix some memory leaks discovered by valgrind. + + -- Clement Lefebvre <[email protected]> Thu, 05 Jul 2018 11:39:39 +0200 + nemo (3.8.3) tara; urgency=medium [ Michael Webster ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-3.8.3/eel/eel-gtk-extensions.c new/nemo-3.8.4/eel/eel-gtk-extensions.c --- old/nemo-3.8.3/eel/eel-gtk-extensions.c 2018-06-08 12:55:07.000000000 +0200 +++ new/nemo-3.8.4/eel/eel-gtk-extensions.c 2018-07-05 11:40:01.000000000 +0200 @@ -287,13 +287,7 @@ button = 0; } - gtk_menu_popup (menu, /* menu */ - NULL, /* parent_menu_shell */ - NULL, /* parent_menu_item */ - NULL, /* popup_position_func */ - NULL, /* popup_position_data */ - button, /* button */ - event ? event->time : gtk_get_current_event_time ()); /* activate_time */ + gtk_menu_popup_at_pointer (menu, (GdkEvent *) event); g_object_ref_sink (menu); g_object_unref (menu); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-3.8.3/libnemo-private/nemo-action-manager.c new/nemo-3.8.4/libnemo-private/nemo-action-manager.c --- old/nemo-3.8.3/libnemo-private/nemo-action-manager.c 2018-06-08 12:55:07.000000000 +0200 +++ new/nemo-3.8.4/libnemo-private/nemo-action-manager.c 2018-07-05 11:40:01.000000000 +0200 @@ -222,10 +222,10 @@ action = nemo_action_new (action_name, path); g_free (path); + g_free (uri); + g_free (action_name); if (action == NULL) { - g_free (uri); - g_free (action_name); return; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-3.8.3/libnemo-private/nemo-action.c new/nemo-3.8.4/libnemo-private/nemo-action.c --- old/nemo-3.8.3/libnemo-private/nemo-action.c 2018-06-08 12:55:07.000000000 +0200 +++ new/nemo-3.8.4/libnemo-private/nemo-action.c 2018-07-05 11:40:01.000000000 +0200 @@ -84,6 +84,8 @@ DBusCondition *cond = (DBusCondition *) data; g_free (cond->name); g_bus_unwatch_name (cond->watch_id); + + g_free (cond); } static void @@ -518,10 +520,11 @@ g_free (icon_name); g_free (stock_id); g_free (exec); - g_strfreev (ext); g_free (parent_dir); g_free (quote_type_string); g_free (separator); + g_strfreev (ext); + g_strfreev (mimes); g_strfreev (conditions); g_key_file_free (key_file); } @@ -1530,9 +1533,10 @@ } } } - g_free (filename); } + g_free (filename); + if (mime_count > 0) { for (i = 0; i < mime_count; i++) { if (nemo_file_is_mime_type (NEMO_FILE (iter->data), mimetypes[i])) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-3.8.3/libnemo-private/nemo-bookmark.c new/nemo-3.8.4/libnemo-private/nemo-bookmark.c --- old/nemo-3.8.3/libnemo-private/nemo-bookmark.c 2018-06-08 12:55:07.000000000 +0200 +++ new/nemo-3.8.4/libnemo-private/nemo-bookmark.c 2018-07-05 11:40:01.000000000 +0200 @@ -230,6 +230,8 @@ ret = nemo_bookmark_metadata_compare (data, md); } + nemo_bookmark_metadata_free (data); + return ret; } @@ -864,6 +866,10 @@ void nemo_bookmark_metadata_free (NemoBookmarkMetadata *metadata) { + if (metadata == NULL) { + return; + } + g_free (metadata->bookmark_name); g_strfreev (metadata->emblems); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-3.8.3/libnemo-private/nemo-file.c new/nemo-3.8.4/libnemo-private/nemo-file.c --- old/nemo-3.8.3/libnemo-private/nemo-file.c 2018-06-08 12:55:07.000000000 +0200 +++ new/nemo-3.8.4/libnemo-private/nemo-file.c 2018-07-05 11:40:01.000000000 +0200 @@ -169,6 +169,7 @@ static const char * nemo_file_peek_display_name_collation_key (NemoFile *file); static void file_mount_unmounted (GMount *mount, gpointer data); static void metadata_hash_free (GHashTable *hash); +static void invalidate_thumbnail (NemoFile *file); G_DEFINE_TYPE_WITH_CODE (NemoFile, nemo_file, G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (NEMO_TYPE_FILE_INFO, @@ -455,6 +456,9 @@ file->details->icon = NULL; } + g_clear_object (&file->details->thumbnail); + g_clear_object (&file->details->scaled_thumbnail); + g_free (file->details->thumbnail_path); file->details->thumbnail_path = NULL; file->details->thumbnailing_failed = FALSE; @@ -829,12 +833,8 @@ g_free (file->details->activation_uri); g_clear_object (&file->details->custom_icon); - if (file->details->thumbnail) { - g_object_unref (file->details->thumbnail); - } - if (file->details->scaled_thumbnail) { - g_object_unref (file->details->scaled_thumbnail); - } + g_clear_object (&file->details->thumbnail); + g_clear_object (&file->details->scaled_thumbnail); if (file->details->mount) { g_signal_handlers_disconnect_by_func (file->details->mount, file_mount_unmounted, file); @@ -4207,6 +4207,7 @@ gint success; + invalidate_thumbnail (file); success = g_unlink (file->details->thumbnail_path); if (success != 0) { @@ -4533,7 +4534,8 @@ } } - if (file->details->thumbnail_scale == thumb_scale && + if (file->details->thumbnail_is_up_to_date && + file->details->thumbnail_scale == thumb_scale && file->details->scaled_thumbnail != NULL) { scaled_pixbuf = file->details->scaled_thumbnail; } else { @@ -4599,12 +4601,20 @@ icon = nemo_icon_info_lookup (gicon, size, scale); if (nemo_icon_info_is_fallback (icon)) { g_object_unref (icon); - icon = nemo_icon_info_lookup (g_themed_icon_new ("text-x-generic"), size, scale); + GIcon *generic = g_themed_icon_new ("text-x-generic"); + + icon = nemo_icon_info_lookup (generic, size, scale); + g_object_unref (generic); } g_object_unref (gicon); return icon; } else { - return nemo_icon_info_lookup (g_themed_icon_new ("text-x-generic"), size, scale); + GIcon *generic = g_themed_icon_new ("text-x-generic"); + + icon = nemo_icon_info_lookup (generic, size, scale); + g_object_unref (generic); + + return icon; } } @@ -7681,6 +7691,7 @@ ret = string->str; g_string_free (string, FALSE); + g_free (scheme); return ret; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-3.8.3/libnemo-private/nemo-progress-info.c new/nemo-3.8.4/libnemo-private/nemo-progress-info.c --- old/nemo-3.8.3/libnemo-private/nemo-progress-info.c 2018-06-08 12:55:07.000000000 +0200 +++ new/nemo-3.8.4/libnemo-private/nemo-progress-info.c 2018-07-05 11:40:01.000000000 +0200 @@ -380,7 +380,13 @@ info->queue_at_idle = FALSE; G_UNLOCK (progress_info); - + + if (queue_at_idle) { + g_signal_emit (info, + signals[QUEUED], + 0); + } + if (start_at_idle) { g_signal_emit (info, signals[STARTED], @@ -404,12 +410,6 @@ signals[FINISHED], 0); } - - if (queue_at_idle) { - g_signal_emit (info, - signals[QUEUED], - 0); - } g_object_unref (info); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-3.8.3/meson.build new/nemo-3.8.4/meson.build --- old/nemo-3.8.3/meson.build 2018-06-08 12:55:07.000000000 +0200 +++ new/nemo-3.8.4/meson.build 2018-07-05 11:40:01.000000000 +0200 @@ -1,7 +1,7 @@ # Meson build file # https://github.com/linuxmint/nemo -project('nemo', 'c', version: '3.8.3', +project('nemo', 'c', version: '3.8.4', meson_version: '>=0.37.0' ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-3.8.3/src/nemo-list-view.c new/nemo-3.8.4/src/nemo-list-view.c --- old/nemo-3.8.3/src/nemo-list-view.c 2018-06-08 12:55:07.000000000 +0200 +++ new/nemo-3.8.4/src/nemo-list-view.c 2018-07-05 11:40:01.000000000 +0200 @@ -936,7 +936,8 @@ GList *selected = gtk_tree_selection_get_selected_rows (selection, NULL); gint selected_count = g_list_length (selected); - g_list_free (selected); + + g_list_free_full (selected, (GDestroyNotify) gtk_tree_path_free); if (selected_count != 1) return FALSE; @@ -2140,6 +2141,8 @@ "text", text, "underline", underline, NULL); + + g_free (text); } static gboolean diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-3.8.3/src/nemo-places-sidebar.c new/nemo-3.8.4/src/nemo-places-sidebar.c --- old/nemo-3.8.3/src/nemo-places-sidebar.c 2018-06-08 12:55:07.000000000 +0200 +++ new/nemo-3.8.4/src/nemo-places-sidebar.c 2018-07-05 11:40:01.000000000 +0200 @@ -714,6 +714,9 @@ model = NULL; last_uri = NULL; + g_clear_pointer (&sidebar->top_bookend_uri, g_free); + g_clear_pointer (&sidebar->bottom_bookend_uri, g_free); + selection = gtk_tree_view_get_selection (sidebar->tree_view); if (gtk_tree_selection_get_selected (selection, &model, &last_iter)) { gtk_tree_model_get (model, @@ -965,20 +968,23 @@ mount = g_volume_get_mount (volume); if (mount != NULL) { + gchar *full_display_name, *volume_id; /* Show mounted volume in the sidebar */ icon = nemo_get_mount_icon_name (mount); root = g_mount_get_default_location (mount); mount_uri = g_file_get_uri (root); name = g_mount_get_name (mount); + volume_id = g_volume_get_identifier (volume, G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE); + full_display_name = g_file_get_parse_name (root); + df_file = g_file_new_for_uri (mount_uri); full = get_disk_full (df_file, &tooltip_info); g_clear_object (&df_file); tooltip = g_strdup_printf (_("%s (%s)\n%s"), - g_file_get_parse_name (root), - g_volume_get_identifier (volume, - G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE), + full_display_name, + volume_id, tooltip_info); g_free (tooltip_info); cat_iter = add_place (sidebar, PLACES_MOUNTED_VOLUME, @@ -993,6 +999,8 @@ g_free (tooltip); g_free (name); g_free (mount_uri); + g_free (volume_id); + g_free (full_display_name); } else { /* Do show the unmounted volumes in the sidebar; * this is so the user can mount it (in case automounting @@ -1002,11 +1010,13 @@ * cue that the user should remember to yank out the media if * he just unmounted it. */ + gchar *volume_id; icon = nemo_get_volume_icon_name (volume); name = g_volume_get_name (volume); - tooltip = g_strdup_printf (_("Mount and open %s (%s)"), name, - g_volume_get_identifier (volume, - G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE)); + + volume_id = g_volume_get_identifier (volume, + G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE); + tooltip = g_strdup_printf (_("Mount and open %s (%s)"), name, volume_id); cat_iter = add_place (sidebar, PLACES_MOUNTED_VOLUME, SECTION_DEVICES, @@ -1016,6 +1026,7 @@ g_free (icon); g_free (name); g_free (tooltip); + g_free (volume_id); } g_object_unref (volume); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-3.8.3/src/nemo-statusbar.c new/nemo-3.8.4/src/nemo-statusbar.c --- old/nemo-3.8.3/src/nemo-statusbar.c 2018-06-08 12:55:07.000000000 +0200 +++ new/nemo-3.8.4/src/nemo-statusbar.c 2018-07-05 11:40:01.000000000 +0200 @@ -275,6 +275,8 @@ GTK_WIDGET (children->data), TRUE, FALSE, 10, GTK_PACK_START); + g_list_free (children); + nemo_status_bar_sync_button_states (bar); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nemo-3.8.3/src/nemo-view.c new/nemo-3.8.4/src/nemo-view.c --- old/nemo-3.8.3/src/nemo-view.c 2018-06-08 12:55:07.000000000 +0200 +++ new/nemo-3.8.4/src/nemo-view.c 2018-07-05 11:40:01.000000000 +0200 @@ -6334,12 +6334,17 @@ NemoFile *parent = nemo_view_get_directory_as_file (view); if (nemo_action_get_visibility (action, selected_files, parent)) { - gtk_action_set_label (GTK_ACTION (action), nemo_action_get_label (action, - selected_files, - parent)); - gtk_action_set_tooltip (GTK_ACTION (action), nemo_action_get_tt (action, - selected_files, - parent)); + gchar *label, *tt; + + label = nemo_action_get_label (action, selected_files, parent); + tt = nemo_action_get_tt (action, selected_files, parent); + + gtk_action_set_label (GTK_ACTION (action), label); + gtk_action_set_tooltip (GTK_ACTION (action), tt); + + g_free (label); + g_free (tt); + gtk_action_set_visible (GTK_ACTION (action), TRUE); } else { gtk_action_set_visible (GTK_ACTION (action), FALSE); ++++++ nemo-gtk-3.20.patch ++++++ --- a/eel/eel-gtk-extensions.c +++ b/eel/eel-gtk-extensions.c @@ -287,7 +287,12 @@ eel_pop_up_context_menu (GtkMenu *menu, button = 0; } +#if GTK_CHECK_VERSION (3, 22, 0) gtk_menu_popup_at_pointer (menu, (GdkEvent *) event); +#else + gtk_menu_popup (menu, NULL, NULL, NULL, NULL, + button, event ? event->time : GDK_CURRENT_TIME); +#endif g_object_ref_sink (menu); g_object_unref (menu);
