From 43b8e664673523c803a6993b9b5a582cdc889afd Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sun, 25 Jul 2010 13:40:17 +0100 Subject: Revert "pcmanfm: Update to 0.9.7" This reverts commit d6ba72ac3425596aae96ccfd1ddbbaaf20b11705. This recipe is not cross compile safe and failes on non0x86 builds. --- meta/packages/pcmanfm/files/desktop.patch | 15 + meta/packages/pcmanfm/files/no-fam.patch | 432 +++++++++++++++++++++ meta/packages/pcmanfm/files/no-warnings.patch | 60 +++ meta/packages/pcmanfm/files/pcmanfm-mips-fix.patch | 13 + meta/packages/pcmanfm/pcmanfm_0.5.bb | 41 ++ meta/packages/pcmanfm/pcmanfm_0.9.7.bb | 34 -- 6 files changed, 561 insertions(+), 34 deletions(-) create mode 100644 meta/packages/pcmanfm/files/desktop.patch create mode 100644 meta/packages/pcmanfm/files/no-fam.patch create mode 100644 meta/packages/pcmanfm/files/no-warnings.patch create mode 100644 meta/packages/pcmanfm/files/pcmanfm-mips-fix.patch create mode 100644 meta/packages/pcmanfm/pcmanfm_0.5.bb delete mode 100644 meta/packages/pcmanfm/pcmanfm_0.9.7.bb (limited to 'meta') diff --git a/meta/packages/pcmanfm/files/desktop.patch b/meta/packages/pcmanfm/files/desktop.patch new file mode 100644 index 0000000000..93cdd87035 --- /dev/null +++ b/meta/packages/pcmanfm/files/desktop.patch @@ -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 index 0000000000..b87a02df01 --- /dev/null +++ b/meta/packages/pcmanfm/files/no-fam.patch @@ -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) , (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 /* for stat */ ++#include ++ ++#include ++#include ++ ++#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 ++#ifdef HAVE_FAM_H + #include ++#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 index 0000000000..b1570a0d98 --- /dev/null +++ b/meta/packages/pcmanfm/files/no-warnings.patch @@ -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 index 0000000000..ad5dc67727 --- /dev/null +++ b/meta/packages/pcmanfm/files/pcmanfm-mips-fix.patch @@ -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 diff --git a/meta/packages/pcmanfm/pcmanfm_0.5.bb b/meta/packages/pcmanfm/pcmanfm_0.5.bb new file mode 100644 index 0000000000..e253d79fba --- /dev/null +++ b/meta/packages/pcmanfm/pcmanfm_0.5.bb @@ -0,0 +1,41 @@ +DESCRIPTION = "Fast lightweight tabbed filemanager" +HOMEPAGE = "http://pcmanfm.sourceforge.net/" +BUGTRACKER = "" + +LICENSE = "GPLv2 & GPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ + 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" +DEPENDS_append_poky = " libowl" + +PR = "r0" + +COMPATIBLE_HOST = '(x86_64|i.86.*|arm.*|mips.*|powerpc.*)-(linux|freebsd.*)' + +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://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" + +EXTRA_OECONF = "--enable-inotify --disable-hal" + +inherit autotools pkgconfig + +do_install_append () { + install -d ${D}/${datadir} + install -d ${D}/${datadir}/pixmaps/ + + install -m 0644 ${WORKDIR}/*.png ${D}/${datadir}/pixmaps +} + +FILES_${PN} += "${datadir}/pixmaps/*.png" diff --git a/meta/packages/pcmanfm/pcmanfm_0.9.7.bb b/meta/packages/pcmanfm/pcmanfm_0.9.7.bb deleted file mode 100644 index 3f690668b8..0000000000 --- a/meta/packages/pcmanfm/pcmanfm_0.9.7.bb +++ /dev/null @@ -1,34 +0,0 @@ -DESCRIPTION = "Fast lightweight tabbed filemanager" -HOMEPAGE = "http://pcmanfm.sourceforge.net/" -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" - -SECTION = "x11" -PRIORITY = "optional" -DEPENDS = "gtk+ startup-notification libfm" -DEPENDS_append_poky = " libowl" - -PR = "r0" - -COMPATIBLE_HOST = '(x86_64|i.86.*|arm.*|mips.*|powerpc.*)-(linux|freebsd.*)' - -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" - -#SRC_URI_append_poky = " file://owl-window-menu.patch;patch=1" - -inherit autotools pkgconfig - -do_install_append () { - install -d ${D}/${datadir} - install -d ${D}/${datadir}/pixmaps/ - - install -m 0644 ${WORKDIR}/*.png ${D}/${datadir}/pixmaps -} -- cgit v1.2.3-54-g00ecf