diff --git a/Fix-infinite-loop-if-thumbnailer-is-not-available.patch b/Fix-infinite-loop-if-thumbnailer-is-not-available.patch new file mode 100644 index 0000000..2750d85 --- /dev/null +++ b/Fix-infinite-loop-if-thumbnailer-is-not-available.patch @@ -0,0 +1,88 @@ +From e7046d564a6f76c1af8f5640ac9c569e07284ec0 Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Fri, 18 Sep 2020 12:06:45 +0200 +Subject: [PATCH] Fix infinite loop if thumbnailer is not available + +The code in cheese_thumb_view_idle_append_item() in +src/thumbview/cheese-thumb-view.c didn't pop the list of items to +thumbnail if thumbnailing failed. + + #0 0x00007f4a60e55314 in open64 () at /lib64/libc.so.6 + #1 0x00007f4a60de6386 in _IO_file_open () at /lib64/libc.so.6 + #2 0x00007f4a60de655a in __GI__IO_file_fopen () at /lib64/libc.so.6 + #3 0x00007f4a60dd9aad in __fopen_internal () at /lib64/libc.so.6 + #4 0x00007f4a6157a43f in gdk_pixbuf_new_from_file () at /lib64/libgdk_pixbuf-2.0.so.0 + #5 0x00007f4a61e84b3a in gnome_desktop_thumbnail_factory_lookup () at /lib64/libgnome-desktop-3.so.19 + #6 0x000055cef476046f in cheese_thumb_view_idle_append_item () + #7 0x00007f4a6124f47b in g_idle_dispatch () at /lib64/libglib-2.0.so.0 + #8 0x00007f4a612537af in g_main_context_dispatch () at /lib64/libglib-2.0.so.0 + #9 0x00007f4a61253b38 in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0 + #10 0x00007f4a61253c03 in g_main_context_iteration () at /lib64/libglib-2.0.so.0 + #11 0x00007f4a6146a7ca in g_application_run () at /lib64/libgio-2.0.so.0 + #12 0x000055cef4758547 in _vala_main () + #13 0x00007f4a60d8a042 in __libc_start_main () at /lib64/libc.so.6 + #14 0x000055cef47554be in _start () + + #0 0x00007f4a60ec562d in __strlen_avx2 () at /lib64/libc.so.6 + #1 0x00007f4a61275de8 in g_str_has_suffix () at /lib64/libglib-2.0.so.0 + #2 0x00007f4a618c0072 in icon_name_is_symbolic () at /lib64/libgtk-3.so.0 + #3 0x00007f4a618c00b1 in theme_dir_get_icon_suffix () at /lib64/libgtk-3.so.0 + #4 0x00007f4a618c32ed in theme_lookup_icon () at /lib64/libgtk-3.so.0 + #5 0x00007f4a618c3adf in real_choose_icon () at /lib64/libgtk-3.so.0 + #6 0x00007f4a618c4762 in gtk_icon_theme_lookup_icon_for_scale () at /lib64/libgtk-3.so.0 + #7 0x00007f4a618c5105 in gtk_icon_theme_load_icon_for_scale () at /lib64/libgtk-3.so.0 + #8 0x000055cef47605c9 in cheese_thumb_view_idle_append_item () + #9 0x00007f4a6124f47b in g_idle_dispatch () at /lib64/libglib-2.0.so.0 + #10 0x00007f4a612537af in g_main_context_dispatch () at /lib64/libglib-2.0.so.0 + #11 0x00007f4a61253b38 in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0 + #12 0x00007f4a61253c03 in g_main_context_iteration () at /lib64/libglib-2.0.so.0 + #13 0x00007f4a6146a7d8 in g_application_run () at /lib64/libgio-2.0.so.0 + #14 0x000055cef4758547 in _vala_main () + #15 0x00007f4a60d8a042 in __libc_start_main () at /lib64/libc.so.6 + #16 0x000055cef47554be in _start () + +Closes: #81 +--- + src/thumbview/cheese-thumb-view.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/thumbview/cheese-thumb-view.c b/src/thumbview/cheese-thumb-view.c +index 1d2d88f5..232fd4b6 100644 +--- a/src/thumbview/cheese-thumb-view.c ++++ b/src/thumbview/cheese-thumb-view.c +@@ -92,7 +92,7 @@ GtkWidget * cheese_thumb_view_new (void); + static gboolean + cheese_thumb_view_idle_append_item (gpointer data) + { +- CheeseThumbViewIdleData *item = g_queue_peek_head (data); ++ CheeseThumbViewIdleData *item = g_queue_pop_head (data); + CheeseThumbView *thumb_view; + CheeseThumbViewPrivate *priv; + +@@ -119,6 +119,7 @@ cheese_thumb_view_idle_append_item (gpointer data) + if (!info) + { + g_warning ("Invalid filename\n"); ++ g_slice_free (CheeseThumbViewIdleData, item); + return TRUE; + } + g_file_info_get_modification_time (info, &mtime); +@@ -167,6 +168,7 @@ cheese_thumb_view_idle_append_item (gpointer data) + if (error) + { + g_warning ("%s", error->message); ++ g_slice_free (CheeseThumbViewIdleData, item); + return TRUE; + } + } +@@ -183,7 +185,6 @@ cheese_thumb_view_idle_append_item (gpointer data) + g_object_unref (pixbuf); + g_object_unref (file); + g_slice_free (CheeseThumbViewIdleData, item); +- g_queue_pop_head (data); + + return TRUE; + } +-- +2.28.0 + diff --git a/cheese-3.32.0.tar.xz b/cheese-3.32.0.tar.xz deleted file mode 100644 index 8c7247f..0000000 Binary files a/cheese-3.32.0.tar.xz and /dev/null differ diff --git a/cheese-3.38.0.tar.xz b/cheese-3.38.0.tar.xz new file mode 100644 index 0000000..6f8d8e2 Binary files /dev/null and b/cheese-3.38.0.tar.xz differ diff --git a/cheese.spec b/cheese.spec index a2d297d..a170117 100644 --- a/cheese.spec +++ b/cheese.spec @@ -1,18 +1,21 @@ Name: cheese -Version: 3.32.0 -Release: 2 +Version: 3.38.0 +Release: 1 Epoch: 2 Summary: Take photos and videos with webcam License: GPLv2+ URL: https://wiki.gnome.org/Apps/Cheese -Source0: https://download.gnome.org/sources/%{name}/3.32/%{name}-%{version}.tar.xz +Source0: https://download.gnome.org/sources/%{name}/3.38/%{name}-%{version}.tar.xz -BuildRequires: chrpath desktop-file-utils docbook-dtds docbook-style-xsl gettext intltool +Patch0001: Fix-infinite-loop-if-thumbnailer-is-not-available.patch + +BuildRequires: chrpath desktop-file-utils docbook-dtds docbook-style-xsl gettext BuildRequires: itstool libXtst-devel libappstream-glib libxslt clutter-devel clutter-gst3-devel BuildRequires: clutter-gtk-devel gdk-pixbuf2-devel glib2-devel gnome-desktop3-devel vala BuildRequires: gobject-introspection-devel gstreamer1-plugins-base-devel libcanberra-devel BuildRequires: gstreamer1-plugins-bad-free-devel gtk3-devel libX11-devel +BuildRequires: meson gtk-doc Requires: gstreamer1-plugins-good gstreamer1-plugins-bad-free gnome-video-effects Requires: %{name}-libs = %{epoch}:%{version}-%{release} @@ -46,11 +49,11 @@ are contained in %{name}-devel package. %autosetup -n %{name}-%{version} -p1 %build -%configure --enable-static -%make_build V=1 +%meson -Dtests=false +%meson_build %install -make install DESTDIR=%{buildroot} +%meson_install %delete_la %find_lang %{name} --with-gnome @@ -61,6 +64,7 @@ chrpath --delete $RPM_BUILD_ROOT%{_libdir}/libcheese-gtk.so.* %check desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/org.gnome.Cheese.desktop +%meson_test %files %doc AUTHORS @@ -68,7 +72,7 @@ desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/org.gnome.Cheese.d %{_datadir}/icons/hicolor/* %{_datadir}/dbus-1/services/org.gnome.Cheese.service %{_datadir}/applications/org.gnome.Cheese.desktop -%{_datadir}/appdata/org.gnome.Cheese.appdata.xml +%{_datadir}/metainfo/org.gnome.Cheese.appdata.xml %files libs -f cheese.lang %license COPYING @@ -82,7 +86,6 @@ desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/org.gnome.Cheese.d %{_libdir}/*.so %{_libdir}/pkgconfig/*.pc %{_includedir}/cheese/*.h -%{_libdir}/*.a %files help %doc README @@ -90,6 +93,9 @@ desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/org.gnome.Cheese.d %{_mandir}/man1/cheese.1.gz %changelog +* Fri Jan 29 2021 yanglu - 2:3.38.0-1 +- update version + * Mon Sep 07 2020 zhanzhimin - 2:3.32.0-2 - update source0