On 12/30/2012 02:13 AM, intrigeri wrote:
Hi David,
David Smith wrote (28 Dec 2012 06:30:46 GMT) :
Please unblock package liferea/1.8.6-1.1
Hint to increase the chances of seeing the proposed changes more
promptly reviewed by the Release Team: attach the debdiff from the
version in testing to this bug report.
Sorry about that.
debdiff between 1.8.6-1 in Wheezy/Testing and 1.8.6-1.1 in unstable
attached.
diffstats for the patches:
./fix-browser-selections
browser.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
./fix-crash-in-empty-launch-url
itemlist.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
./fix-crash-when-dragging-feeds-outside-google-reader
ui_dnd.c | 7 +++++++
1 file changed, 7 insertions(+)
./fix-crash-when-online-status-changes
liferea_htmlview.c | 2 ++
1 file changed, 2 insertions(+)
./fix-crash-when-removing-google-reader-folders
fl_sources/default_source.c | 2 ++
fl_sources/google_source.c | 1 +
fl_sources/node_source.h | 11 ++++++-----
node.c | 22 ++++++++++++++++++++++
node.h | 18 ++++++++++++++++++
ui/popup_menu.c | 14 ++++++++------
6 files changed, 57 insertions(+), 11 deletions(-)
Thanks for your time.
-David
diff -Nru liferea-1.8.6/debian/changelog liferea-1.8.6/debian/changelog
--- liferea-1.8.6/debian/changelog 2012-07-01 05:45:40.000000000 +0800
+++ liferea-1.8.6/debian/changelog 2012-12-15 19:29:35.000000000 +0800
@@ -1,3 +1,23 @@
+liferea (1.8.6-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Fixed crash when dragging Google Reader feeds to parent node.
+ (Closes: #692526)
+ * Fixed crash when removing folders in Google Reader feeds.
+ (Closes: #692525)
+ * Fixed crash when opening empty links in feeds. (Closes: #692272)
+ * Fixed crash when network online status changes. (Closes: #692270)
+ * Fixed bug where web browser doesn't launch or the wrong web browser is
+ launched. (Closes: #668197)
+ * Replaced build-depends on transitional package libwebkit-dev with
+ libwebkitgtk-dev. (Closes: #677749)
+ * Added hardening build flags since liferea has a parser and should be
+ built with hardening. (Closes: #692527)
+ * Added build dependency on dpkg-dev (>= 1.16.1~) to enable build flags
+ with hardening.
+
+ -- David Smith <sidic...@gmail.com> Sat, 15 Dec 2012 16:35:23 +0800
+
liferea (1.8.6-1) unstable; urgency=low
* Fixes ever growing temporary DB files. (patch by Sven Hartge)
diff -Nru liferea-1.8.6/debian/control liferea-1.8.6/debian/control
--- liferea-1.8.6/debian/control 2012-07-01 05:38:09.000000000 +0800
+++ liferea-1.8.6/debian/control 2012-12-15 18:55:27.000000000 +0800
@@ -15,14 +15,15 @@
libglade2-dev,
libgtk2.0-dev (>= 2.18.0),
libglib2.0-dev (>= 2.24.0),
- libwebkit-dev (>= 1.2.2),
+ libwebkitgtk-dev (>= 1.2.2),
intltool,
libicu-dev,
libx11-dev,
dh-autoreconf,
libice-dev,
libunique-dev,
- libjson-glib-dev
+ libjson-glib-dev,
+ dpkg-dev (>= 1.16.1~)
Standards-Version: 3.9.3
Homepage: http://liferea.sourceforge.net/
Vcs-Browser: http://git.debian.org/?p=collab-maint/liferea.git
diff -Nru liferea-1.8.6/debian/patches/fix-browser-selections liferea-1.8.6/debian/patches/fix-browser-selections
--- liferea-1.8.6/debian/patches/fix-browser-selections 1970-01-01 08:00:00.000000000 +0800
+++ liferea-1.8.6/debian/patches/fix-browser-selections 2012-12-15 18:36:03.000000000 +0800
@@ -0,0 +1,34 @@
+From: Lars Windolf <lars.lind...@gmail.com>
+Subject: x-www-browser preference not working
+Description: Fixed a bug where web browser doesn't launch
+due to not having gnome desktop installed, or the wrong
+web browser is launched due to not having an appropriate
+fallback.
+Origin: upstream, http://liferea.git.sourceforge.net/git/gitweb.cgi?p=liferea/liferea;a=commit;h=408a99b39535c4eb79983ebd2936a8eda5fff8b7
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=668197
+Last-Update: 2012-12-15
+--- a/src/browser.c
++++ b/src/browser.c
+@@ -244,6 +244,7 @@
+ struct browser *browser;
+ gchar *cmd = NULL;
+ gboolean done = FALSE;
++ gchar *libname = NULL;
+
+ g_assert (uri != NULL);
+
+@@ -255,8 +256,12 @@
+ done = browser_execute (cmd, uri, TRUE);
+ g_free (cmd);
+ } else {
+- /* the "default" browser has no command to use the GTK launch mechanism */
+- done = gtk_show_uri (NULL, uri, 0, NULL);
++ /* the "default" browser has no command to use the GTK
++ launch mechanism, so we use gtk_show_uri() instead */
++ conf_get_str_value (BROWSER_ID, &libname);
++ if (g_str_equal (libname, "default"))
++ done = gtk_show_uri (NULL, uri, 0, NULL);
++ g_free (libname);
+ }
+ }
+
diff -Nru liferea-1.8.6/debian/patches/fix-crash-in-empty-launch-url liferea-1.8.6/debian/patches/fix-crash-in-empty-launch-url
--- liferea-1.8.6/debian/patches/fix-crash-in-empty-launch-url 1970-01-01 08:00:00.000000000 +0800
+++ liferea-1.8.6/debian/patches/fix-crash-in-empty-launch-url 2012-12-17 19:09:45.000000000 +0800
@@ -0,0 +1,40 @@
+Date: Wed, 15 Aug 2012 00:06:29 +0200
+Subject: [PATCH] fix crash in liferea_webkit_launch_url(...) for empty links
+ in feeds
+
+Description: in case of empty links in feeds liferea crashed with the
+following backtrace:
+ #0 in __strstr_sse42 () from /lib/libc.so.6
+ #1 in liferea_webkit_launch_url (scrollpane=<>, url=0x0) at webkit.c:515
+ #2 in itemlist_selection_changed (item=item@entry=<>) at itemlist.c:599
+
+Copyright (C) 2004-2012 Lars Lindner <lars.lind...@gmail.com>
+
+Reported-by: Matthias Maennich <matth...@maennich.net>
+Origin: upstream, https://sourceforge.net/p/liferea/code/ci/274b4dba082a8353bb17c2017c3eae6c07112144/
+Bug: http://sourceforge.net/tracker/index.php?func=detail&aid=3557513&group_id=87005&atid=581686
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=692272
+Last-Update: 2012-12-17
+--- a/src/itemlist.c
++++ b/src/itemlist.c
+@@ -588,7 +588,8 @@
+
+ /* set read and unset update status when selecting */
+ if (item) {
+- nodePtr node = node_from_id (item->nodeId);
++ gchar *link = NULL;
++ nodePtr node = node_from_id (item->nodeId);
+
+ if (IS_FEED(node) && !((feedPtr)node->data)->ignoreComments)
+ comments_refresh (item);
+@@ -596,9 +597,7 @@
+ item_set_read_state (item, TRUE);
+ itemview_set_mode (ITEMVIEW_SINGLE_ITEM);
+
+- if (node->loadItemLink) {
+- gchar* link = item_make_link (item);
+-
++ if (node->loadItemLink && (link = item_make_link (item))) {
+ itemview_launch_URL (link, TRUE /* force internal */);
+ g_free (link);
+ } else {
diff -Nru liferea-1.8.6/debian/patches/fix-crash-when-dragging-feeds-outside-google-reader liferea-1.8.6/debian/patches/fix-crash-when-dragging-feeds-outside-google-reader
--- liferea-1.8.6/debian/patches/fix-crash-when-dragging-feeds-outside-google-reader 1970-01-01 08:00:00.000000000 +0800
+++ liferea-1.8.6/debian/patches/fix-crash-when-dragging-feeds-outside-google-reader 2012-12-15 18:36:15.000000000 +0800
@@ -0,0 +1,23 @@
+From: Lars Windolf <lars.lind...@gmail.com>
+Date: Mon, 30 Jul 2012 23:26:01 +0200
+Subject: [PATCH] Fixes SF #2855990: Crash when dragging Google Reader feeds outside Google Reader. This is now prevented. (reported by algnod)
+Origin: upstream, http://liferea.git.sourceforge.net/git/gitweb.cgi?p=liferea/liferea;a=commit;h=5f245fe87e8f32ff0e13c2e94addaf6032b806c4
+Bug: http://sourceforge.net/tracker/index.php?func=detail&aid=2855990&group_id=87005&atid=581684
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=692526
+Last-Updated: 2012-12-15
+--- a/src/ui/ui_dnd.c
++++ b/src/ui/ui_dnd.c
+@@ -116,6 +116,13 @@
+ if (gtk_tree_model_get_iter (GTK_TREE_MODEL (model), &iter, src_path)) {
+ gtk_tree_model_get (GTK_TREE_MODEL (model), &iter, FS_PTR, &sourceNode, -1);
+
++ g_assert (sourceNode);
++
++ /* Never drop into another node source as this arises to many problems
++ (e.g. remote sync, different subscription type, e.g. SF #2855990) */
++ if (NODE_SOURCE_TYPE (targetNode) != NODE_SOURCE_TYPE (sourceNode))
++ return FALSE;
++
+ if (IS_FOLDER(sourceNode) && !(NODE_SOURCE_TYPE (targetNode)->capabilities & NODE_SOURCE_CAPABILITY_HIERARCHIC_FEEDLIST))
+ return FALSE;
+ }
diff -Nru liferea-1.8.6/debian/patches/fix-crash-when-online-status-changes liferea-1.8.6/debian/patches/fix-crash-when-online-status-changes
--- liferea-1.8.6/debian/patches/fix-crash-when-online-status-changes 1970-01-01 08:00:00.000000000 +0800
+++ liferea-1.8.6/debian/patches/fix-crash-when-online-status-changes 2012-12-15 18:36:22.000000000 +0800
@@ -0,0 +1,24 @@
+From: Yanko Kaneti <yan...@declera.com>
+Date: Fri, 14 Sep 2012 16:13:00 +0300
+Subject: [PATCH] Fix crash when network online status changes
+Description: From Fedora bug
+https://bugzilla.redhat.com/show_bug.cgi?id=857348 :
+"liferea frequently crashes when manipulating htmlviews (opening/closing
+new tabs) while the network online status changes. This is caused
+because the signal notifying online status is not properly disconnected
+when the htmlview is removed."
+Origin: upstream, http://liferea.git.sourceforge.net/git/gitweb.cgi?p=liferea/liferea;a=commit;h=7c69af4fe8435b34cbf9e7f76cb2e44e985d37b5
+Bug: http://sourceforge.net/tracker/index.php?func=detail&aid=3567715&group_id=87005&atid=581686
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=692270
+Last-Update: 2012-12-15
+--- a/src/ui/liferea_htmlview.c
++++ b/src/ui/liferea_htmlview.c
+@@ -77,6 +77,8 @@
+ static void
+ liferea_htmlview_finalize (GObject *object)
+ {
++ g_signal_handlers_disconnect_by_data (network_monitor_get (), object);
++
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+ }
+
diff -Nru liferea-1.8.6/debian/patches/fix-crash-when-removing-google-reader-folders liferea-1.8.6/debian/patches/fix-crash-when-removing-google-reader-folders
--- liferea-1.8.6/debian/patches/fix-crash-when-removing-google-reader-folders 1970-01-01 08:00:00.000000000 +0800
+++ liferea-1.8.6/debian/patches/fix-crash-when-removing-google-reader-folders 2012-12-15 19:00:43.000000000 +0800
@@ -0,0 +1,157 @@
+From: Lars Windolf <lars.lind...@gmail.com>
+Date: Fri, 5 Oct 2012 12:09:42 +0200
+Subject: [PATCH] Fixes SF #3572660: crash in google_source_remove_node (reported by Yanko Kaneti)
+Origin: upstream, http://liferea.git.sourceforge.net/git/gitweb.cgi?p=liferea/liferea;a=commit;h=878863cd0e02e89e461e5e47f02be38e57a4fe27
+Bug: http://sourceforge.net/tracker/index.php?func=detail&aid=3572660&group_id=87005&atid=581684
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=692525
+Last-Update: 2012-12-15
+--- a/src/fl_sources/default_source.c
++++ b/src/fl_sources/default_source.c
+@@ -210,6 +210,8 @@
+ .description = "The default feed list source. Should never be added manually. If you see this then something went wrong!",
+ .capabilities = NODE_SOURCE_CAPABILITY_IS_ROOT |
+ NODE_SOURCE_CAPABILITY_HIERARCHIC_FEEDLIST |
++ NODE_SOURCE_CAPABILITY_ADD_FEED |
++ NODE_SOURCE_CAPABILITY_ADD_FOLDER |
+ NODE_SOURCE_CAPABILITY_WRITABLE_FEEDLIST,
+ .source_type_init = default_source_init,
+ .source_type_deinit = default_source_deinit,
+--- a/src/fl_sources/node_source.h
++++ b/src/fl_sources/node_source.h
+@@ -50,11 +50,12 @@
+
+ enum {
+ NODE_SOURCE_CAPABILITY_IS_ROOT = (1<<0), /**< flag only for default feed list source */
+- NODE_SOURCE_CAPABILITY_MULTI_INSTANCES = (1<<1), /**< allows multiple source instances */
+- NODE_SOURCE_CAPABILITY_DYNAMIC_CREATION = (1<<2), /**< feed list source is user created */
+- NODE_SOURCE_CAPABILITY_WRITABLE_FEEDLIST = (1<<3), /**< the feed list tree of the source can be changed */
+- NODE_SOURCE_CAPABILITY_HIERARCHIC_FEEDLIST = (1<<4), /**< the feed list tree of the source can have hierarchic folders */
+- NODE_SOURCE_CAPABILITY_ITEM_STATE_SYNC = (1<<5) /**< the item state can and should be sync'ed with remote */
++ NODE_SOURCE_CAPABILITY_DYNAMIC_CREATION = (1<<1), /**< feed list source is user created */
++ NODE_SOURCE_CAPABILITY_WRITABLE_FEEDLIST = (1<<2), /**< the feed list tree of the source can be changed */
++ NODE_SOURCE_CAPABILITY_ADD_FEED = (1<<3), /**< feeds can be added to the source */
++ NODE_SOURCE_CAPABILITY_ADD_FOLDER = (1<<4), /**< folders can be added to the source */
++ NODE_SOURCE_CAPABILITY_HIERARCHIC_FEEDLIST = (1<<5), /**< the feed list tree of the source can have hierarchic folders */
++ NODE_SOURCE_CAPABILITY_ITEM_STATE_SYNC = (1<<6) /**< the item state can and should be sync'ed with remote */
+ };
+
+ /** feed list node source type */
+--- a/src/node.c
++++ b/src/node.c
+@@ -494,6 +494,28 @@
+ return baseUrl;
+ }
+
++gboolean
++node_can_add_child_feed (nodePtr node)
++{
++ g_assert (node->source->root);
++
++ if (!(NODE_TYPE (node->source->root)->capabilities & NODE_CAPABILITY_ADD_CHILDS))
++ return FALSE;
++
++ return (NODE_SOURCE_TYPE (node)->capabilities & NODE_SOURCE_CAPABILITY_ADD_FEED);
++}
++
++gboolean
++node_can_add_child_folder (nodePtr node)
++{
++ g_assert (node->source->root);
++
++ if (!(NODE_TYPE (node->source->root)->capabilities & NODE_CAPABILITY_ADD_CHILDS))
++ return FALSE;
++
++ return (NODE_SOURCE_TYPE (node)->capabilities & NODE_SOURCE_CAPABILITY_ADD_FOLDER);
++}
++
+ /* node children iterating interface */
+
+ void
+--- a/src/node.h
++++ b/src/node.h
+@@ -355,6 +355,24 @@
+ */
+ const gchar * node_get_base_url(nodePtr node);
+
++/**
++ * Query wether a feed be added to the given node.
++ *
++ * @param node the node
++ *
++ * @returns TRUE if a feed can be added
++ */
++gboolean node_can_add_child_feed (nodePtr node);
++
++/**
++ * Query wether a folder be added to the given node.
++ *
++ * @param node the node
++ *
++ * @returns TRUE if a folder can be added
++ */
++gboolean node_can_add_child_folder (nodePtr node);
++
+ /* child nodes iterating interface */
+
+ typedef void (*nodeActionFunc) (nodePtr node);
+--- a/src/ui/popup_menu.c
++++ b/src/ui/popup_menu.c
+@@ -262,14 +262,15 @@
+ ui_popup_node_menu (nodePtr node, gboolean validSelection, guint button, guint32 activate_time)
+ {
+ GtkWidget *menu;
+- gboolean writeableFeedlist, isRoot, isHierarchic;
++ gboolean writeableFeedlist, isRoot, isHierarchic, addChildren;
+
+ menu = gtk_menu_new ();
+
+ if (node->parent) {
+ writeableFeedlist = NODE_SOURCE_TYPE (node->parent->source->root)->capabilities & NODE_SOURCE_CAPABILITY_WRITABLE_FEEDLIST;
+- isRoot = NODE_SOURCE_TYPE (node->parent->source->root)->capabilities & NODE_SOURCE_CAPABILITY_IS_ROOT;
++ isRoot = NODE_SOURCE_TYPE (node->source->root)->capabilities & NODE_SOURCE_CAPABILITY_IS_ROOT;
+ isHierarchic = NODE_SOURCE_TYPE (node->parent->source->root)->capabilities & NODE_SOURCE_CAPABILITY_HIERARCHIC_FEEDLIST;
++ addChildren = NODE_TYPE (node->source->root)->capabilities & NODE_CAPABILITY_ADD_CHILDS;
+ } else {
+ /* if we have no parent then we have the root node... */
+ writeableFeedlist = TRUE;
+@@ -287,7 +288,7 @@
+ }
+
+ if (writeableFeedlist) {
+- if (NODE_TYPE (node->source->root)->capabilities & NODE_CAPABILITY_ADD_CHILDS) {
++ if (addChildren) {
+ GtkWidget *item;
+ GtkWidget *submenu;
+
+@@ -295,9 +296,10 @@
+
+ item = ui_popup_add_menuitem (menu, _("_New"), NULL, NULL, NULL, 0);
+
+- ui_popup_add_menuitem (submenu, _("New _Subscription..."), ui_popup_add_feed, NULL, NULL, 0);
++ if (node_can_add_child_feed (node))
++ ui_popup_add_menuitem (submenu, _("New _Subscription..."), ui_popup_add_feed, NULL, NULL, 0);
+
+- if (isHierarchic)
++ if (node_can_add_child_folder (node))
+ ui_popup_add_menuitem (submenu, _("New _Folder..."), ui_popup_add_folder, NULL, NULL, 0);
+
+ if (isRoot) {
+@@ -309,7 +311,7 @@
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM(item), submenu);
+ }
+
+- if (node->children) {
++ if (isRoot && node->children) {
+ gtk_menu_shell_append (GTK_MENU_SHELL(menu), gtk_separator_menu_item_new());
+ ui_popup_add_menuitem (menu, _("Sort Feeds"), ui_popup_sort_feeds, node, GTK_STOCK_SORT_ASCENDING, 0);
+ }
+--- a/src/fl_sources/google_source.c
++++ b/src/fl_sources/google_source.c
+@@ -360,6 +360,7 @@
+ "present your Google Reader subscriptions, and will synchronize your feed list and reading lists."),
+ .capabilities = NODE_SOURCE_CAPABILITY_DYNAMIC_CREATION |
+ NODE_SOURCE_CAPABILITY_WRITABLE_FEEDLIST |
++ NODE_SOURCE_CAPABILITY_ADD_FEED |
+ NODE_SOURCE_CAPABILITY_ITEM_STATE_SYNC,
+ .source_type_init = google_source_init,
+ .source_type_deinit = google_source_deinit,
diff -Nru liferea-1.8.6/debian/patches/series liferea-1.8.6/debian/patches/series
--- liferea-1.8.6/debian/patches/series 2012-02-27 09:54:47.000000000 +0800
+++ liferea-1.8.6/debian/patches/series 2012-12-17 15:32:29.000000000 +0800
@@ -1,3 +1,8 @@
www-browser
debian-example-feeds
libtool-dont-rearange-as-needed
+fix-browser-selections
+fix-crash-when-dragging-feeds-outside-google-reader
+fix-crash-when-online-status-changes
+fix-crash-when-removing-google-reader-folders
+fix-crash-in-empty-launch-url
diff -Nru liferea-1.8.6/debian/rules liferea-1.8.6/debian/rules
--- liferea-1.8.6/debian/rules 2012-02-27 09:54:47.000000000 +0800
+++ liferea-1.8.6/debian/rules 2012-12-15 19:36:20.000000000 +0800
@@ -2,6 +2,9 @@
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/buildflags.mk
CFLAGS += -g -O$(if $(findstring noopt,$(DEB_BUILD_OPTIONS)),0,2)
LDFLAGS += "-Wl,--as-needed"
export LIBS=-lX11 -lICE