[libxfcegui4] Add patch and rebuild for Xfce 4.10

Kevin Fenzi kevin at fedoraproject.org
Thu Apr 5 03:31:03 UTC 2012


commit 7c499cd471a4725687c5b5ffffdde82b5f549b77
Author: Kevin Fenzi <kevin at scrye.com>
Date:   Wed Apr 4 21:31:00 2012 -0600

    Add patch and rebuild for Xfce 4.10

 libxfce4gui-xfce-4.10.patch |  158 +++++++++++++++++++++++++++++++++++++++++++
 libxfcegui4.spec            |    8 ++-
 2 files changed, 165 insertions(+), 1 deletions(-)
---
diff --git a/libxfce4gui-xfce-4.10.patch b/libxfce4gui-xfce-4.10.patch
new file mode 100644
index 0000000..197f850
--- /dev/null
+++ b/libxfce4gui-xfce-4.10.patch
@@ -0,0 +1,158 @@
+From 9042e70bf7c8266aef059114d27ec1764fc41466 Mon Sep 17 00:00:00 2001
+From: Nick Schermer <nick at xfce.org>
+Date: Tue, 21 Jun 2011 19:55:19 +0000
+Subject: Drop XfceDesktopEntry usage.
+
+---
+diff --git a/libxfcegui4/xfce-appmenuitem.c b/libxfcegui4/xfce-appmenuitem.c
+index 20dfa06..ffb15ed 100644
+--- a/libxfcegui4/xfce-appmenuitem.c
++++ b/libxfcegui4/xfce-appmenuitem.c
+@@ -522,127 +522,17 @@ GtkWidget *xfce_app_menu_item_new_full(const gchar *label, const gchar *command,
+  * xfce_app_menu_item_new_with_command(), xfce_app_menu_item_set_needs_term(),
+  * xfce_app_menu_item_set_icon_name(), and
+  * xfce_app_menu_item_set_startup_notification().
++ * 
++ * In Xfce 4.10 this function only returns NULL, since XfceDesktopEntry was
++ * removed from libxfce4util.
+  *
+  * Since 4.1
+  **/
+ GtkWidget *
+-xfce_app_menu_item_new_from_desktop_entry(XfceDesktopEntry *entry,
++xfce_app_menu_item_new_from_desktop_entry(gpointer *entry,
+         gboolean show_icon)
+ {
+-    XfceAppMenuItem *app_menu_item;
+-    gchar *name = NULL, *cmd = NULL, *icon = NULL, *snotify = NULL;
+-    gchar *onlyshowin = NULL, *categories = NULL, *term = NULL;
+-    const gchar *dfile;
+-    
+-    g_return_val_if_fail(XFCE_IS_DESKTOP_ENTRY(entry), NULL);
+-    
+-    if(xfce_desktop_entry_get_string(entry, "OnlyShowIn", FALSE, &onlyshowin)
+-       || xfce_desktop_entry_get_string(entry, "Categories", FALSE,
+-                                        &categories))
+-    {
+-        if((onlyshowin && strstr(onlyshowin, "XFCE;"))
+-           || (categories && strstr(categories, "X-XFCE;")))
+-        {
+-            if(xfce_desktop_entry_has_translated_entry(entry, "GenericName")) {
+-                xfce_desktop_entry_get_string(entry, "GenericName", TRUE,
+-                                              &name);
+-            } else if(xfce_desktop_entry_has_translated_entry(entry, "Name")) {
+-                xfce_desktop_entry_get_string(entry, "Name", TRUE, &name);
+-            } else {
+-                xfce_desktop_entry_get_string(entry, "GenericName", FALSE,
+-                                              &name);
+-            }
+-        } else if(onlyshowin) {
+-            g_free(onlyshowin);
+-            g_free(categories);
+-            return NULL;
+-        }
+-        
+-        g_free(onlyshowin);
+-        g_free(categories);
+-    }
+-    
+-    app_menu_item = XFCE_APP_MENU_ITEM(xfce_app_menu_item_new());
+-    
+-    if(!name && !xfce_desktop_entry_get_string(entry, "Name", TRUE, &name)) {
+-        gchar *tmp, *tmp1;
+-        
+-        tmp = g_filename_to_utf8(xfce_desktop_entry_get_file(entry), -1,
+-                                 NULL, NULL, NULL);
+-        if(!tmp)
+-            tmp = g_strdup(xfce_desktop_entry_get_file(entry));
+-            
+-        if((tmp1 = g_strrstr(tmp, ".desktop")))
+-            *tmp1 = 0;
+-        if((tmp1 = g_strrstr(tmp, "/")))
+-            tmp1++;
+-        else
+-            tmp1 = name;
+-        name = g_strdup(tmp1);
+-        g_free(tmp);
+-    }
+-    
+-    app_menu_item->priv->name = name;
+-    
+-    if(!g_utf8_validate(name, -1, NULL)) {
+-        g_warning("XfceAppMenuItem: 'name' failed utf8 validation for .desktop file '%s'",
+-                xfce_desktop_entry_get_file(entry));
+-        gtk_widget_destroy(GTK_WIDGET(app_menu_item));
+-        return NULL;
+-    }
+-    
+-    gtk_label_set_text(GTK_LABEL(app_menu_item->priv->accel_label),
+-                       app_menu_item->priv->name);
+-    
+-    if(xfce_desktop_entry_get_string(entry, "Terminal", TRUE, &term)) {
+-        app_menu_item->priv->needs_term = (*term == '1'
+-                                           || !g_ascii_strcasecmp(term,
+-                                                                  "true"));
+-        g_free(term);
+-    }
+-    
+-    if(xfce_desktop_entry_get_string(entry, "StartupNotify", TRUE, &snotify)) {
+-        app_menu_item->priv->snotify = (*snotify == '1'
+-                                        || !g_ascii_strcasecmp(snotify,
+-                                                               "true"));
+-        g_free(snotify);
+-    }
+-    
+-    if(!xfce_desktop_entry_get_string(entry, "Exec", TRUE, &cmd)) {
+-        gtk_widget_destroy(GTK_WIDGET(app_menu_item));
+-        return NULL;
+-    }
+-
+-    /* remove quotes around the command (yes, people do that!) */
+-    if(cmd[0] == '"') {
+-        gint i;
+-        
+-        for(i = 1; cmd[i - 1] != '\0'; ++i) {
+-            if (cmd[i] != '"')
+-                cmd[i-1] = cmd[i];
+-            else {
+-                cmd[i-1] = cmd[i] = ' ';
+-                break;
+-            }
+-        }
+-    }
+-
+-    app_menu_item->priv->command = xfce_expand_variables(cmd, NULL);
+-    g_free(cmd);
+-    
+-    if(show_icon) {
+-        xfce_desktop_entry_get_string(entry, "Icon", TRUE, &icon);
+-        if(icon) {
+-            xfce_app_menu_item_set_icon_name(app_menu_item, icon);
+-            g_free(icon);
+-        }
+-    }
+-    
+-    dfile = xfce_desktop_entry_get_file(entry);
+-    if(dfile)
+-        app_menu_item->priv->dot_desktop_filename = g_strdup(dfile);
+-    
+-    return GTK_WIDGET(app_menu_item);
++    return NULL;
+ }
+ 
+ /**
+diff --git a/libxfcegui4/xfce-appmenuitem.h b/libxfcegui4/xfce-appmenuitem.h
+index 5732af9..0ce0f29 100644
+--- a/libxfcegui4/xfce-appmenuitem.h
++++ b/libxfcegui4/xfce-appmenuitem.h
+@@ -70,7 +70,7 @@ GtkWidget *xfce_app_menu_item_new_full                (const gchar *label,
+                                                        gboolean needs_term,
+                                                        gboolean snotify);
+ 
+-GtkWidget *xfce_app_menu_item_new_from_desktop_entry  (XfceDesktopEntry *entry,
++GtkWidget *xfce_app_menu_item_new_from_desktop_entry  (gpointer *entry,
+                                                        gboolean show_icon);
+ 
+ void xfce_app_menu_item_set_name                      (XfceAppMenuItem *app_menu_item,
+--
+cgit v0.9.0.3
diff --git a/libxfcegui4.spec b/libxfcegui4.spec
index 4d788c9..282a33c 100644
--- a/libxfcegui4.spec
+++ b/libxfcegui4.spec
@@ -2,7 +2,7 @@
 
 Name:           libxfcegui4
 Version:        4.8.1
-Release:        5%{?dist}
+Release:        6%{?dist}
 Summary:        GTK widgets for Xfce
 
 Group:          System Environment/Libraries
@@ -10,6 +10,8 @@ License:        LGPLv2+
 URL:            http://www.xfce.org/
 Source0:        http://archive.xfce.org/src/xfce/%{name}/%{xfceversion}/%{name}-%{version}.tar.bz2
 Patch0:         %{name}-4.4.2-xfce-exec-use-thunar.patch
+# http://git.xfce.org/xfce/libxfcegui4/patch/?id=9042e70bf7c8266aef059114d27ec1764fc41466
+Patch1:         libxfce4gui-xfce-4.10.patch
 BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 
 BuildRequires:  gtk2-devel >= 2.0.6
@@ -48,6 +50,7 @@ developing applications that use %{name}.
 %prep
 %setup -q
 %patch0 -p1 -b .thunar
+%patch1 -p1
 
 
 %build
@@ -100,6 +103,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 %doc %{_datadir}/gtk-doc
 
 %changelog
+* Wed Apr 04 2012 Kevin Fenzi <kevin at scrye.com> - 4.8.1-6
+- Add patch and rebuild for Xfce 4.10
+
 * Fri Jan 20 2012 Kevin Fenzi <kevin at scrye.com> - 4.8.1-5
 - Remove glade3 support. It's gtk3 only and this library shouldn't be used for new projects anyhow.
 


More information about the scm-commits mailing list