]> code.ossystems Code Review - openembedded-core.git/commitdiff
Revert "pcmanfm: Update to 0.9.7"
authorRichard Purdie <rpurdie@linux.intel.com>
Sun, 25 Jul 2010 12:40:17 +0000 (13:40 +0100)
committerRichard Purdie <rpurdie@linux.intel.com>
Sun, 25 Jul 2010 12:40:17 +0000 (13:40 +0100)
This reverts commit d6ba72ac3425596aae96ccfd1ddbbaaf20b11705.

This recipe is not cross compile safe and failes on non0x86 builds.

meta/packages/pcmanfm/files/desktop.patch [new file with mode: 0644]
meta/packages/pcmanfm/files/no-fam.patch [new file with mode: 0644]
meta/packages/pcmanfm/files/no-warnings.patch [new file with mode: 0644]
meta/packages/pcmanfm/files/pcmanfm-mips-fix.patch [new file with mode: 0644]
meta/packages/pcmanfm/pcmanfm_0.5.bb [moved from meta/packages/pcmanfm/pcmanfm_0.9.7.bb with 58% similarity]

diff --git a/meta/packages/pcmanfm/files/desktop.patch b/meta/packages/pcmanfm/files/desktop.patch
new file mode 100644 (file)
index 0000000..93cdd87
--- /dev/null
@@ -0,0 +1,15 @@
+Index: pcmanfm-0.5/pcmanfm.desktop.in
+===================================================================
+--- pcmanfm-0.5.orig/pcmanfm.desktop.in
++++ pcmanfm-0.5/pcmanfm.desktop.in
+@@ -1,8 +1,7 @@
+ [Desktop Entry]
+ Version=1.0
+-Encoding=UTF-8
+-Name=PCMan File Manager
+-Categories=Application;System;Utility;Core;GTK;
++Name=File Manager
++Categories=System;Utility;Core;GTK;
+ Name[zh_TW]=檔案總管
+ Exec=pcmanfm %F
+ Icon=pcmanfm
diff --git a/meta/packages/pcmanfm/files/no-fam.patch b/meta/packages/pcmanfm/files/no-fam.patch
new file mode 100644 (file)
index 0000000..b87a02d
--- /dev/null
@@ -0,0 +1,432 @@
+diff -urNd ../pcmanfm-0.3.0.1-r0/pcmanfm-0.3.0.1/configure.in pcmanfm-0.3.0.1/configure.in
+--- ../pcmanfm-0.3.0.1-r0/pcmanfm-0.3.0.1/configure.in 2006-08-20 15:45:28.000000000 +0100
++++ pcmanfm-0.3.0.1/configure.in       2006-08-20 20:37:36.000000000 +0100
+@@ -63,8 +63,8 @@
+   LIBS="$LIBS $FAM_LIBS"
+   AC_CHECK_FUNCS([FAMNoExists])
+   LIBS="$save_LIBS"
+-else
+-  AC_MSG_ERROR([Fatal Error: no fam or gamin detected.])
++#else
++#  AC_MSG_ERROR([Fatal Error: no fam or gamin detected.])
+ fi
+ AC_SUBST([FAM_CFLAGS])
+diff -urNd ../pcmanfm-0.3.0.1-r0/pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.c pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.c
+--- ../pcmanfm-0.3.0.1-r0/pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.c   2006-07-16 20:00:46.000000000 +0100
++++ pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.c 2006-08-20 20:54:07.000000000 +0100
+@@ -31,7 +31,6 @@
+ VFSFileMonitorCallbackEntry;
+ static GHashTable* monitor_hash = NULL;
+-static FAMConnection fam;
+ static GIOChannel* fam_io_channel = NULL;
+ static guint fam_io_watch = 0;
+@@ -40,6 +39,8 @@
+                               GIOCondition cond,
+                               gpointer user_data );
++#ifdef HAVE_FAM_H
++static FAMConnection fam;
+ static gboolean connect_to_fam()
+ {
+@@ -81,6 +82,16 @@
+         FAMClose( &fam );
+     }
+ }
++#else
++static gboolean connect_to_fam ()
++{
++      return FALSE;
++}
++
++static void disconnect_from_fam ()
++{
++}
++#endif
+ /* final cleanup */
+ void vfs_file_monitor_clean()
+@@ -109,6 +120,7 @@
+                                       VFSFileMonitorCallback cb,
+                                       gpointer user_data )
+ {
++#ifdef HAVE_FAM_H
+     VFSFileMonitor * monitor;
+     VFSFileMonitorCallbackEntry cb_ent;
+     gboolean add_new = FALSE;
+@@ -154,12 +166,16 @@
+     }
+     ++monitor->n_ref;
+     return monitor;
++#else
++      return NULL;
++#endif
+ }
+ void vfs_file_monitor_remove( VFSFileMonitor* fm,
+                               VFSFileMonitorCallback cb,
+                               gpointer user_data )
+ {
++#ifdef HAVE_FAM_H
+     int i;
+     VFSFileMonitorCallbackEntry* callbacks;
+     if ( cb && fm->callbacks )
+@@ -183,12 +199,14 @@
+         g_array_free( fm->callbacks, TRUE );
+         g_slice_free( VFSFileMonitor, fm );
+     }
++#endif
+ }
+ static void reconnect_fam( gpointer key,
+                            gpointer value,
+                            gpointer user_data )
+ {
++#ifdef HAVE_FAM_H
+     struct stat file_stat;
+     VFSFileMonitor* monitor = ( VFSFileMonitor* ) value;
+     const char* path = ( const char* ) key;
+@@ -209,6 +227,7 @@
+                             monitor );
+         }
+     }
++#endif
+ }
+ /* event handler of all FAM events */
+@@ -216,6 +235,7 @@
+                               GIOCondition cond,
+                               gpointer user_data )
+ {
++#ifdef HAVE_FAM_H
+     FAMEvent evt;
+     VFSFileMonitor* monitor = NULL;
+     VFSFileMonitorCallbackEntry* cb;
+@@ -266,5 +286,8 @@
+         }
+     }
+     return TRUE;
++#else
++      return TRUE;
++#endif
+ }
+diff -urNd ../pcmanfm-0.3.0.1-r0/pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.c~ pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.c~
+--- ../pcmanfm-0.3.0.1-r0/pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.c~  1970-01-01 01:00:00.000000000 +0100
++++ pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.c~        2006-08-20 20:50:49.000000000 +0100
+@@ -0,0 +1,292 @@
++/*
++*  C Implementation: vfs-monitor
++*
++* Description:
++*
++*
++* Author: Hong Jen Yee (PCMan) <pcman.tw (AT) gmail.com>, (C) 2006
++*
++* Copyright: See COPYING file that comes with this distribution
++*
++*/
++
++#ifdef HAVE_CONFIG_H
++#include "config.h"
++#endif
++
++#include "vfs-file-monitor.h"
++#include <sys/types.h>  /* for stat */
++#include <sys/stat.h>
++
++#include <stdlib.h>
++#include <string.h>
++
++#include "glib-mem.h"
++
++typedef struct
++{
++    VFSFileMonitorCallback callback;
++    gpointer user_data;
++}
++VFSFileMonitorCallbackEntry;
++
++static GHashTable* monitor_hash = NULL;
++static FAMConnection fam;
++static GIOChannel* fam_io_channel = NULL;
++static guint fam_io_watch = 0;
++
++/* event handler of all FAM events */
++static gboolean on_fam_event( GIOChannel *channel,
++                              GIOCondition cond,
++                              gpointer user_data );
++
++#ifdef HAVE_FAM_H
++static gboolean connect_to_fam()
++{
++    if ( FAMOpen( &fam ) )
++    {
++        fam_io_channel = NULL;
++        fam.fd = -1;
++        g_warning( "There is no FAM/gamin server\n" );
++        return FALSE;
++    }
++#if HAVE_FAMNOEXISTS
++    /*
++    * Disable the initital directory content loading.
++    * This can greatly speed up directory loading, but
++    * unfortunately, it's not compatible with original FAM.
++    */
++    FAMNoExists( &fam );  /* This is an extension of gamin */
++#endif
++
++    fam_io_channel = g_io_channel_unix_new( fam.fd );
++    g_io_channel_set_encoding( fam_io_channel, NULL, NULL );
++    g_io_channel_set_buffered( fam_io_channel, FALSE );
++
++    fam_io_watch = g_io_add_watch( fam_io_channel,
++                                   G_IO_IN | G_IO_HUP,
++                                   on_fam_event,
++                                   NULL );
++    return TRUE;
++}
++
++static void disconnect_from_fam()
++{
++    if ( fam_io_channel )
++    {
++        g_io_channel_unref( fam_io_channel );
++        fam_io_channel = NULL;
++        g_source_remove( fam_io_watch );
++
++        FAMClose( &fam );
++    }
++}
++#else
++static gboolean connect_to_fam ()
++{
++      return FALSE;
++}
++
++static void disconnect_from_fam ()
++{
++}
++#endif
++
++/* final cleanup */
++void vfs_file_monitor_clean()
++{
++    disconnect_from_fam();
++    if ( monitor_hash )
++    {
++        g_hash_table_destroy( monitor_hash );
++        monitor_hash = NULL;
++    }
++}
++
++/*
++* Init monitor:
++* Establish connection with gamin/fam.
++*/
++gboolean vfs_file_monitor_init()
++{
++    monitor_hash = g_hash_table_new( g_str_hash, g_str_equal );
++    if ( ! connect_to_fam() )
++        return FALSE;
++    return TRUE;
++}
++
++VFSFileMonitor* vfs_file_monitor_add( const char* path,
++                                      VFSFileMonitorCallback cb,
++                                      gpointer user_data )
++{
++#ifdef HAVE_FAM_H
++    VFSFileMonitor * monitor;
++    VFSFileMonitorCallbackEntry cb_ent;
++    gboolean add_new = FALSE;
++    struct stat file_stat;
++
++    if ( ! monitor_hash )
++    {
++        if ( !vfs_file_monitor_init() )
++            return NULL;
++    }
++    monitor = ( VFSFileMonitor* ) g_hash_table_lookup ( monitor_hash, path );
++    if ( ! monitor )
++    {
++        monitor = g_slice_new0( VFSFileMonitor );
++        monitor->path = g_strdup( path );
++        monitor->callbacks = g_array_new ( FALSE, FALSE, sizeof( VFSFileMonitorCallbackEntry ) );
++        g_hash_table_insert ( monitor_hash,
++                              path,
++                              monitor );
++        if ( lstat( path, &file_stat ) != -1 )
++        {
++            if ( S_ISDIR( file_stat.st_mode ) )
++            {
++                FAMMonitorDirectory( &fam,
++                                     path,
++                                     &monitor->request,
++                                     monitor );
++            }
++            else
++            {
++                FAMMonitorFile( &fam,
++                                path,
++                                &monitor->request,
++                                monitor );
++            }
++        }
++    }
++    if ( cb )
++    { /* Install a callback */
++        cb_ent.callback = cb;
++        cb_ent.user_data = user_data;
++        monitor->callbacks = g_array_append_val( monitor->callbacks, cb_ent );
++    }
++    ++monitor->n_ref;
++    return monitor;
++#else
++      return NULL;
++#endif
++}
++
++void vfs_file_monitor_remove( VFSFileMonitor* fm,
++                              VFSFileMonitorCallback cb,
++                              gpointer user_data )
++{
++#ifdef HAVE_FAM_H
++    int i;
++    VFSFileMonitorCallbackEntry* callbacks;
++    if ( cb && fm->callbacks )
++    {
++        callbacks = ( VFSFileMonitorCallbackEntry* ) fm->callbacks->data;
++        for ( i = 0; i < fm->callbacks->len; ++i )
++        {
++            if ( callbacks[ i ].callback == cb && callbacks[ i ].user_data == user_data )
++            {
++                fm->callbacks = g_array_remove_index_fast ( fm->callbacks, i );
++                break;
++            }
++        }
++    }
++    --fm->n_ref;
++    if ( 0 >= fm->n_ref )
++    {
++        FAMCancelMonitor( &fam, &fm->request );
++        g_hash_table_remove( monitor_hash, fm->path );
++        g_free( fm->path );
++        g_array_free( fm->callbacks, TRUE );
++        g_slice_free( VFSFileMonitor, fm );
++    }
++#endif
++}
++
++static void reconnect_fam( gpointer key,
++                           gpointer value,
++                           gpointer user_data )
++{
++#ifdef HAVE_FAM_H
++    struct stat file_stat;
++    VFSFileMonitor* monitor = ( VFSFileMonitor* ) value;
++    const char* path = ( const char* ) key;
++    if ( lstat( path, &file_stat ) != -1 )
++    {
++        if ( S_ISDIR( file_stat.st_mode ) )
++        {
++            FAMMonitorDirectory( &fam,
++                                 path,
++                                 &monitor->request,
++                                 monitor );
++        }
++        else
++        {
++            FAMMonitorFile( &fam,
++                            path,
++                            &monitor->request,
++                            monitor );
++        }
++    }
++#endif
++}
++
++/* event handler of all FAM events */
++static gboolean on_fam_event( GIOChannel *channel,
++                              GIOCondition cond,
++                              gpointer user_data )
++{
++#ifdef HAVE_FAM_H
++    FAMEvent evt;
++    VFSFileMonitor* monitor = NULL;
++    VFSFileMonitorCallbackEntry* cb;
++    VFSFileMonitorCallback func;
++    int i;
++
++    if ( cond & G_IO_HUP )
++    {
++        disconnect_from_fam();
++        if ( g_hash_table_size ( monitor_hash ) > 0 )
++        {
++            /*
++              Disconnected from FAM server, but there are still monitors.
++              This may be caused by crash of FAM server.
++              So we have to reconnect to FAM server.
++            */
++            connect_to_fam();
++            g_hash_table_foreach( monitor_hash, ( GHFunc ) reconnect_fam, NULL );
++        }
++        return TRUE; /* don't need to remove the event source since
++                            it has been removed by disconnect_from_fam(). */
++    }
++
++    while ( FAMPending( &fam ) )
++    {
++        if ( FAMNextEvent( &fam, &evt ) > 0 )
++        {
++            monitor = ( VFSFileMonitor* ) evt.userdata;
++            switch ( evt.code )
++            {
++            case FAMCreated:
++            case FAMDeleted:
++            case FAMChanged:
++                /* Call the callback functions */
++                if ( monitor->callbacks && monitor->callbacks->len )
++                {
++                    cb = ( VFSFileMonitorCallbackEntry* ) monitor->callbacks->data;
++                    for ( i = 0; i < monitor->callbacks->len; ++i )
++                    {
++                        func = cb[ i ].callback;
++                        func( monitor, evt.code, evt.filename, cb[ i ].user_data );
++                    }
++                }
++                break;
++            default:
++                return TRUE;  /* Other events are not supported */
++            }
++        }
++    }
++    return TRUE;
++#else
++      return TRUE;
++#endif
++}
++
+diff -urNd ../pcmanfm-0.3.0.1-r0/pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.h pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.h
+--- ../pcmanfm-0.3.0.1-r0/pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.h   2006-04-03 00:38:33.000000000 +0100
++++ pcmanfm-0.3.0.1/src/vfs/vfs-file-monitor.h 2006-08-20 20:47:00.000000000 +0100
+@@ -20,7 +20,16 @@
+ #define _VFS_FILE_MONITOR_H_
+ #include <glib.h>
++#ifdef HAVE_FAM_H
+ #include <fam.h>
++#else
++#     define FAMCreated 0
++#     define FAMDeleted 1
++#     define FAMChanged 2
++typedef struct {
++      int reqnum;
++} FAMRequest;
++#endif
+ G_BEGIN_DECLS
diff --git a/meta/packages/pcmanfm/files/no-warnings.patch b/meta/packages/pcmanfm/files/no-warnings.patch
new file mode 100644 (file)
index 0000000..b1570a0
--- /dev/null
@@ -0,0 +1,60 @@
+Index: pcmanfm-0.5/src/main.c
+===================================================================
+--- pcmanfm-0.5.orig/src/main.c
++++ pcmanfm-0.5/src/main.c
+@@ -118,7 +118,7 @@
+ static void init_folder();
+ static void init_daemon_or_desktop();
+-static void check_icon_theme();
++/*static void check_icon_theme();*/
+ static gboolean handle_parsed_commandline_args();
+@@ -322,7 +322,7 @@
+     gtk_widget_show ( GTK_WIDGET( main_window ) );
+     return main_window;
+ }
+-
++#if 0
+ void check_icon_theme()
+ {
+     GtkSettings * settings;
+@@ -361,7 +361,7 @@
+     }
+     g_free( theme );
+ }
+-
++#endif
+ #ifdef _DEBUG_THREAD
+ G_LOCK_DEFINE(gdk_lock);
+@@ -405,7 +405,7 @@
+     vfs_file_info_set_thumbnail_size( app_settings.big_icon_size,
+                                       app_settings.small_icon_size );
+-    check_icon_theme();
++/*    check_icon_theme();*/
+     folder_initialized = TRUE;
+ }
+Index: pcmanfm-0.5/src/main-window.c
+===================================================================
+--- pcmanfm-0.5.orig/src/main-window.c
++++ pcmanfm-0.5/src/main-window.c
+@@ -633,6 +633,7 @@
+     gtk_widget_grab_focus ( GTK_WIDGET( main_window->address_bar ) );
+ #ifdef SUPER_USER_CHECKS
++#if 0
+     /* Create warning bar for super user */
+     if ( geteuid() == 0 )                 /* Run as super user! */
+     {
+@@ -648,6 +649,7 @@
+                              main_window->status_bar, FALSE, FALSE, 2 );
+     }
+ #endif
++#endif
+     /* Create client area */
+     main_window->notebook = gtk_notebook_new();
diff --git a/meta/packages/pcmanfm/files/pcmanfm-mips-fix.patch b/meta/packages/pcmanfm/files/pcmanfm-mips-fix.patch
new file mode 100644 (file)
index 0000000..ad5dc67
--- /dev/null
@@ -0,0 +1,13 @@
+--- pcmanfm-0.3.2.2-org/src/inotify/inotify-syscalls.h 2010-01-07 14:53:56.938000062 +0800
++++ pcmanfm-0.3.2.2/src/inotify/inotify-syscalls.h     2010-01-07 14:54:57.830000065 +0800
+@@ -39,6 +39,10 @@
+ # define __NR_inotify_init    290
+ # define __NR_inotify_add_watch       291
+ # define __NR_inotify_rm_watch        292
++#elif defined (__mips__)
++# define __NR_inotify_init    284
++# define __NR_inotify_add_watch       285
++# define __NR_inotify_rm_watch        286
+ #else
+ # error "Unsupported architecture!"
+ #endif
similarity index 58%
rename from meta/packages/pcmanfm/pcmanfm_0.9.7.bb
rename to meta/packages/pcmanfm/pcmanfm_0.5.bb
index 3f690668b8a7d977fd161e09d56a2e7da404fddf..e253d79fbaf0f56d6a79506027b78f05f17c391e 100644 (file)
@@ -4,12 +4,12 @@ BUGTRACKER = ""
 
 LICENSE = "GPLv2 & GPLv2+ & LGPLv2.1+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
-                    file://src/pcmanfm.h;endline=22;md5=417b3855771a3a87f8ad753d994491f0 \
-                    file://src/gseal-gtk-compat.h;endline=21;md5=46922c8691f58d124f9420fe16149ce2"
+                    file://src/pcmanfm.h;endline=22;md5=0fa9129ee918f493e573154f6ec43fb7 \
+                    file://src/find-files.c;endline=26;md5=9a92e8f329c97de94e90976a37dde5a5"
 
 SECTION = "x11"
 PRIORITY = "optional"
-DEPENDS = "gtk+ startup-notification libfm"
+DEPENDS = "gtk+ startup-notification"
 DEPENDS_append_poky = " libowl"
 
 PR = "r0"
@@ -20,9 +20,14 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/pcmanfm/pcmanfm-${PV}.tar.gz \
           file://gnome-fs-directory.png \
           file://gnome-fs-regular.png \
           file://gnome-mime-text-plain.png \
-          file://emblem-symbolic-link.png" 
+          file://emblem-symbolic-link.png \
+          file://desktop.patch;patch=1 \
+          file://no-warnings.patch;patch=1 \
+          file://pcmanfm-mips-fix.patch;patch=1"
 
-#SRC_URI_append_poky = " file://owl-window-menu.patch;patch=1"
+SRC_URI_append_poky = " file://owl-window-menu.patch;patch=1"
+
+EXTRA_OECONF = "--enable-inotify --disable-hal"
 
 inherit autotools pkgconfig
 
@@ -32,3 +37,5 @@ do_install_append () {
 
        install -m 0644 ${WORKDIR}/*.png ${D}/${datadir}/pixmaps
 }
+
+FILES_${PN} += "${datadir}/pixmaps/*.png"