diff options
Diffstat (limited to 'packages')
-rw-r--r-- | packages/pcmanfm/files/auto_mount.patch | 10 | ||||
-rw-r--r-- | packages/pcmanfm/files/desired_mount_point.patch | 91 | ||||
-rw-r--r-- | packages/pcmanfm/files/desktop.patch | 8 | ||||
-rw-r--r-- | packages/pcmanfm/files/no-fam-gtk2.6.patch | 374 | ||||
-rw-r--r-- | packages/pcmanfm/files/no-fam.patch | 432 | ||||
-rw-r--r-- | packages/pcmanfm/files/no-warnings.patch | 47 | ||||
-rw-r--r-- | packages/pcmanfm/files/pcmanfm.desktop | 11 | ||||
-rw-r--r-- | packages/pcmanfm/files/pcmanfm.png | bin | 2281 -> 0 bytes | |||
-rw-r--r-- | packages/pcmanfm/pcmanfm_0.3.2-beta.bb | 27 | ||||
-rw-r--r-- | packages/pcmanfm/pcmanfm_0.5.bb (renamed from packages/pcmanfm/pcmanfm_0.3.0.1.bb) | 8 |
10 files changed, 109 insertions, 899 deletions
diff --git a/packages/pcmanfm/files/auto_mount.patch b/packages/pcmanfm/files/auto_mount.patch new file mode 100644 index 0000000000..b4a3125e3d --- /dev/null +++ b/packages/pcmanfm/files/auto_mount.patch @@ -0,0 +1,10 @@ +--- a/src/vfs/vfs-volume-hal.c 2008-12-16 17:39:21.000000000 -0200 ++++ b/src/vfs/vfs-volume-hal.c 2008-12-16 17:37:07.000000000 -0200 +@@ -1237,6 +1237,7 @@ + { + /* add the volume to the volume manager */ + vfs_volume_add (volume); ++ vfs_volume_mount (volume, NULL); + } + /* release the HAL drive */ + libhal_drive_free (hd); diff --git a/packages/pcmanfm/files/desired_mount_point.patch b/packages/pcmanfm/files/desired_mount_point.patch new file mode 100644 index 0000000000..d548abe8fa --- /dev/null +++ b/packages/pcmanfm/files/desired_mount_point.patch @@ -0,0 +1,91 @@ +--- a/src/vfs/vfs-volume-hal.c 2008-06-11 15:38:25.000000000 -0300 ++++ b/src/vfs/vfs-volume-hal.c 2008-12-16 10:20:18.000000000 -0200 +@@ -944,7 +944,7 @@ + if (G_LIKELY (desired_mount_point != NULL && *desired_mount_point != '\0')) + { + filename = g_build_filename (mount_root, desired_mount_point, NULL); +- volume->mount_point = filename; ++ volume->mount_point = g_strdup( desired_mount_point ); + } + libhal_free_string (desired_mount_point); + } +@@ -954,8 +954,7 @@ + { + /* <mount-root>/<device> looks like a good idea */ + basename = g_path_get_basename (volume->device_file); +- filename = g_build_filename (mount_root, basename, NULL); +- volume->mount_point = filename; ++ volume->mount_point = g_strdup( basename ); + g_free (basename); + } + +@@ -2310,7 +2309,7 @@ + } + + gboolean +-vfs_volume_hal_mount (ExoMountHalDevice *device, ++vfs_volume_hal_mount (VFSVolume *vol, + GError **error) + { + DBusMessage *message; +@@ -2323,8 +2322,13 @@ + const gchar *uuid = NULL, *label = NULL; + gint m, n = 0; + VFSVolumeOptions opts; ++ ExoMountHalDevice* device = NULL; ++ ++ g_return_val_if_fail (vol != NULL, FALSE); ++ ++ if (!(device = vfs_volume_hal_from_udi( vol->udi, error ))) ++ return FALSE; + +- g_return_val_if_fail (device != NULL, FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + if( device->volume != NULL) { +@@ -2472,16 +2476,23 @@ + } + } + +- /* try to determine a usable mount point */ +- if (G_LIKELY (device->volume != NULL)) ++ if (G_LIKELY (vol->mount_point == NULL)) + { +- /* maybe we can use the volume's label... */ +- mount_point = g_strdup( libhal_volume_get_label (device->volume) ); ++ /* try to determine a usable mount point */ ++ if (G_LIKELY (device->volume != NULL)) ++ { ++ /* maybe we can use the volume's label... */ ++ mount_point = g_strdup( libhal_volume_get_label (device->volume) ); ++ } ++ else ++ { ++ /* maybe we can use the the textual type... */ ++ mount_point = g_strdup( libhal_drive_get_type_textual (device->drive) ); ++ } + } + else + { +- /* maybe we can use the the textual type... */ +- mount_point = g_strdup( libhal_drive_get_type_textual (device->drive) ); ++ mount_point = g_strdup( vol->mount_point ); + } + + /* However, the label may contain G_DIR_SEPARATOR so just replace these +@@ -2825,13 +2836,10 @@ + + gboolean vfs_volume_mount( VFSVolume* vol, GError** err ) + { +- ExoMountHalDevice* device; + gboolean ret = FALSE; +- device = vfs_volume_hal_from_udi( vol->udi, err ); +- if( device ) ++ if( vol ) + { +- ret = vfs_volume_hal_mount( device, err ); +- vfs_volume_hal_free( device ); ++ ret = vfs_volume_hal_mount( vol, err ); + } + return ret; + } diff --git a/packages/pcmanfm/files/desktop.patch b/packages/pcmanfm/files/desktop.patch index 764f5b7845..2d8b5a58a2 100644 --- a/packages/pcmanfm/files/desktop.patch +++ b/packages/pcmanfm/files/desktop.patch @@ -1,11 +1,9 @@ --- pcmanfm-0.3.2-beta/pcmanfm.desktop.in.old 2006-09-25 11:43:07.000000000 +0100 +++ pcmanfm-0.3.2-beta/pcmanfm.desktop.in 2006-09-25 11:44:59.000000000 +0100 -@@ -1,7 +1,7 @@ +@@ -1,4 +1,4 @@ [Desktop Entry] - Categories=Application;System;Utility;Core;GTK; Encoding=UTF-8 -Name=PCMan File Manager +Name=File Manager - Name[zh_TW]=PCMan 檔案管理程式 - Name[pl]=Przeglądarka plików z zakładkami - Exec=pcmanfm %f + Categories=Application;System;Utility;Core;GTK; + diff --git a/packages/pcmanfm/files/no-fam-gtk2.6.patch b/packages/pcmanfm/files/no-fam-gtk2.6.patch deleted file mode 100644 index 40ced49d2c..0000000000 --- a/packages/pcmanfm/files/no-fam-gtk2.6.patch +++ /dev/null @@ -1,374 +0,0 @@ -diff -urNd pcmanfm-0.1.9.8.old/configure.in pcmanfm-0.1.9.8/configure.in ---- pcmanfm-0.1.9.8.old/configure.in 2006-02-08 17:13:05.000000000 +0000 -+++ pcmanfm-0.1.9.8/configure.in 2006-02-14 22:53:22.000000000 +0000 -@@ -10,8 +10,12 @@ - AM_PROG_CC_STDC - AC_HEADER_STDC - --pkg_modules="gtk+-2.0 >= 2.8.0 gthread-2.0" --PKG_CHECK_MODULES(PACKAGE, [$pkg_modules]) -+PKG_CHECK_MODULES(PACKAGE, [glib-2.0 >= 2.8.0 gtk+-2.0 >= 2.6.0 gthread-2.0], [ -+ PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.8.0], have_gtk28=yes, have_gtk28=no) -+]) -+if test x"$have_gtk28" = x"yes"; then -+ AC_DEFINE([HAVE_GTK_2_8],,[Define if you have gtk+-2.0 >= 2.8.0]) -+fi - AC_SUBST(PACKAGE_CFLAGS) - AC_SUBST(PACKAGE_LIBS) - -@@ -38,8 +42,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.1.9.8.old/src/foldercontent.c pcmanfm-0.1.9.8/src/foldercontent.c ---- pcmanfm-0.1.9.8.old/src/foldercontent.c 2006-02-08 18:36:52.000000000 +0000 -+++ pcmanfm-0.1.9.8/src/foldercontent.c 2006-02-15 02:51:03.000000000 +0000 -@@ -31,9 +31,11 @@ - }FolderContentCallback; - - static GHashTable* folder_hash = NULL; -+#ifdef HAVE_FAM_H - static FAMConnection fam; - static GIOChannel* fam_io_channel = NULL; - static guint fam_io_watch = 0; -+#endif - - typedef enum{ - FCM_FOLDER_VIEW = 1 << 0, -@@ -58,6 +60,9 @@ - static FolderContent* folder_content_get( const char* path, - FolderContentMode mode, - GtkTreeRowReference* tree_parent, -+#ifndef HAVE_GTK_2_8 -+ GtkTreeModel* tree_model, -+#endif - FolderContentUpdateFunc cb, - gpointer user_data ); - -@@ -72,6 +77,7 @@ - - static gboolean connect_to_fam() - { -+#ifdef HAVE_FAM_H - if( FAMOpen( &fam ) ) - { - fam_io_channel = NULL; -@@ -100,10 +106,14 @@ - /* - g_print("Connected to FAM server\n"); - */ -+#else -+ return FALSE; -+#endif - } - - static void disconnect_from_fam() - { -+#ifdef HAVE_FAM_H - if( fam_io_channel ) - { - g_io_channel_unref(fam_io_channel); -@@ -115,6 +125,7 @@ - g_print("Disonnected from FAM server\n"); - */ - } -+#endif - } - - /* -@@ -336,7 +347,11 @@ - if( ! tree_node ) - return; - -+#ifdef HAVE_GTK_2_8 - tree = gtk_tree_row_reference_get_model (tree_node); -+#else -+ tree = folder_content->tree_model; -+#endif - tree_path = gtk_tree_row_reference_get_path (tree_node); - if( !tree || !tree_path ){ - return; -@@ -428,6 +443,9 @@ - FolderContent* folder_content_get( const char* path, - FolderContentMode mode, - GtkTreeRowReference* tree_node, -+#ifndef HAVE_GTK_2_8 -+ GtkTreeModel* tree_model, -+#endif - FolderContentUpdateFunc callback, - gpointer user_data ) - { -@@ -467,6 +485,9 @@ - */ - if( ! folder_content->tree_node ) - { -+#ifndef HAVE_GTK_2_8 -+ folder_content->tree_model = tree_model; -+#endif - folder_content->tree_node = tree_node; - dir_tree_sub_folders_new( folder_content ); - } -@@ -475,10 +496,12 @@ - - /* First new instance */ - if( add_new ){ -+#ifdef HAVE_FAM_H - FAMMonitorDirectory( &fam, - path, - &folder_content->request, - folder_content ); -+#endif - } - - if( callback ) /* Install a callback */ -@@ -548,7 +571,9 @@ - && 0 >= folder_content->n_ref_tree ) - { - /* g_print("cancel monitor!\n"); */ -+#ifdef HAVE_FAM_H - FAMCancelMonitor( &fam, &folder_content->request ); -+#endif - g_hash_table_remove( folder_hash, folder_content->path ); - g_free( folder_content->path ); - g_array_free( folder_content->callbacks, TRUE ); -@@ -561,6 +586,7 @@ - GIOCondition cond, - gpointer user_data ) - { -+#ifdef HAVE_FAM_H - FAMEvent evt; - FolderContent* content = NULL; - GdkPixbuf *folder_icon = get_folder_icon32(); -@@ -613,21 +639,36 @@ - } - } - return TRUE; -+#else -+ return FALSE; -+#endif - } - - FolderContent* folder_content_list_get( const char* path, - FolderContentUpdateFunc cb, - gpointer user_data ) - { -+#ifdef HAVE_GTK_2_8 - return folder_content_get( path, FCM_FOLDER_VIEW, NULL, cb, user_data ); -+#else -+ return folder_content_get( path, FCM_FOLDER_VIEW, NULL, NULL, cb, user_data ); -+#endif - } - - FolderContent* folder_content_tree_get( const char* path, - GtkTreeRowReference* tree_parent, -+#ifndef HAVE_GTK_2_8 -+ GtkTreeModel* tree_model, -+#endif - FolderContentUpdateFunc cb, - gpointer user_data ) - { -+#ifdef HAVE_GTK_2_8 - return folder_content_get( path, FCM_DIR_TREE, tree_parent, cb, user_data ); -+#else -+ return folder_content_get( path, FCM_DIR_TREE, tree_parent, tree_model, cb, -+ user_data ); -+#endif - } - - void folder_content_list_unref( FolderContent* folder_content, -@@ -688,7 +729,11 @@ - } - - if( content->tree_node ) { -+#ifdef HAVE_GTK_2_8 - model = gtk_tree_row_reference_get_model( content->tree_node ); -+#else -+ model = content->tree_model; -+#endif - tree_path = gtk_tree_row_reference_get_path( - content->tree_node ); - gtk_tree_model_get_iter( model, &parent_it, tree_path ); -@@ -724,7 +769,11 @@ - } - - if( content->tree_node ) { -+#ifdef HAVE_GTK_2_8 - model = gtk_tree_row_reference_get_model( content->tree_node ); -+#else -+ model = content->tree_model; -+#endif - tree_path = gtk_tree_row_reference_get_path( - content->tree_node ); - gtk_tree_model_get_iter( model, &parent_it, tree_path ); -@@ -776,7 +825,11 @@ - - /* There is no need to update the dir tree currently. */ - if( content->tree_node ) { -+#ifdef HAVE_GTK_2_8 - model = gtk_tree_row_reference_get_model( content->tree_node ); -+#else -+ model = content->tree_model; -+#endif - tree_path = gtk_tree_row_reference_get_path( - content->tree_node ); - gtk_tree_model_get_iter( model, &parent_it, tree_path ); -diff -urNd pcmanfm-0.1.9.8.old/src/foldercontent.h pcmanfm-0.1.9.8/src/foldercontent.h ---- pcmanfm-0.1.9.8.old/src/foldercontent.h 2006-02-07 10:26:03.000000000 +0000 -+++ pcmanfm-0.1.9.8/src/foldercontent.h 2006-02-15 02:13:40.000000000 +0000 -@@ -15,7 +15,12 @@ - - #include <gtk/gtk.h> - #include <glib.h> -+#ifdef HAVE_CONFIG_H -+#include "config.h" -+#endif -+#ifdef HAVE_FAM_H - #include <fam.h> -+#endif - - /* Columns of folderView */ - enum{ -@@ -42,10 +47,20 @@ - typedef struct{ - GtkListStore* list; /* for Folder View */ - int n_ref_list; /* reference counting */ -+#ifndef HAVE_GTK_2_8 -+ GtkTreeModel* tree_model; -+#endif - GtkTreeRowReference* tree_node; /* for Dir Tree */ - int n_ref_tree; - -+#ifdef HAVE_FAM_H - FAMRequest request; -+#else -+ /* A structure the same size as FAMRequest */ -+ struct unused { -+ int unused; -+ }; -+#endif - gchar* path; - int n_files; - -@@ -82,6 +97,9 @@ - - FolderContent* folder_content_tree_get( const char* path, - GtkTreeRowReference* tree_node, -+#ifndef HAVE_GTK_2_8 -+ GtkTreeModel* tree_model, -+#endif - FolderContentUpdateFunc callback, - gpointer user_data ); - -diff -urNd pcmanfm-0.1.9.8.old/src/ptk/ptkfilebrowser.c pcmanfm-0.1.9.8/src/ptk/ptkfilebrowser.c ---- pcmanfm-0.1.9.8.old/src/ptk/ptkfilebrowser.c 2006-02-09 04:29:32.000000000 +0000 -+++ pcmanfm-0.1.9.8/src/ptk/ptkfilebrowser.c 2006-02-15 02:07:16.000000000 +0000 -@@ -31,6 +31,9 @@ - #include "ptkutils.h" - - #include "settings.h" -+#ifdef HAVE_CONFIG_H -+#include "config.h" -+#endif - - - /* If set to FALSE, all selection changes in folder_view are prevented. */ -@@ -1127,7 +1130,11 @@ - } - - row_ref = gtk_tree_row_reference_new( store, real_path ); -+#ifdef HAVE_GTK_2_8 - content = folder_content_tree_get( dir_path, row_ref, NULL, NULL ); -+#else -+ content = folder_content_tree_get( dir_path, row_ref, model, NULL, NULL ); -+#endif - - gtk_tree_model_get_iter( model, &it, tree_path ); - if( gtk_tree_model_iter_children( model, &child, &it ) ) { -@@ -1231,12 +1238,15 @@ - model = ptk_icon_view_get_model( PTK_ICON_VIEW(folder_view) ); - } - else if( file_browser->view_mode == FBVM_LIST_VIEW ) { -+#ifdef HAVE_GTK_2_8 - if( !gtk_tree_view_get_visible_range ( GTK_TREE_VIEW(folder_view), - &start_path, &end_path ) ) - return; -+#endif - model = gtk_tree_view_get_model( GTK_TREE_VIEW(folder_view) ); - } - -+#ifdef HAVE_GTK_2_8 - /* - NOTE:It seems that this is a bug of gtk+ 2.8. - gtk_tree_view_get_visible_range sometimes returns invalid paths. -@@ -1252,6 +1262,7 @@ - gtk_tree_path_free( end_path ); - return; - } -+#endif - - model_sorter = PTK_TREE_MODEL_SORT( gtk_tree_model_filter_get_model( - GTK_TREE_MODEL_FILTER(model) ) ); -diff -urNd pcmanfm-0.1.9.8.old/src/ptk/ptkfileiconrenderer.c pcmanfm-0.1.9.8/src/ptk/ptkfileiconrenderer.c ---- pcmanfm-0.1.9.8.old/src/ptk/ptkfileiconrenderer.c 2006-02-03 04:24:09.000000000 +0000 -+++ pcmanfm-0.1.9.8/src/ptk/ptkfileiconrenderer.c 2006-02-15 02:09:00.000000000 +0000 -@@ -346,7 +346,9 @@ - GdkPixbuf *colorized = NULL; - GdkRectangle pix_rect; - GdkRectangle draw_rect; -+#ifdef HAVE_GTK_2_8 - cairo_t *cr; -+#endif - - GtkCellRendererClass* parent_renderer_class; - -@@ -432,16 +434,23 @@ - pixbuf = colorized; - } - } -+#ifdef HAVE_GTK_2_8 - cr = gdk_cairo_create (window); - - gdk_cairo_set_source_pixbuf (cr, pixbuf, pix_rect.x, pix_rect.y); - gdk_cairo_rectangle (cr, &draw_rect); - cairo_fill (cr); -+#else -+ gdk_draw_pixbuf (GDK_DRAWABLE (window), NULL, pixbuf, 0, 0, -+ pix_rect.x, pix_rect.y, pix_rect.width, pix_rect.height, -+ GDK_RGB_DITHER_NORMAL, 0, 0); -+#endif - - if( PTK_FILE_ICON_RENDERER(cell)->file_stat ) - { - if( S_ISLNK(PTK_FILE_ICON_RENDERER(cell)->file_stat->st_mode) ) - { -+#ifdef HAVE_GTK_2_8 - gdk_cairo_set_source_pixbuf (cr, link_icon_large, - pix_rect.x - 2, - pix_rect.y - 2 ); -@@ -449,10 +458,18 @@ - draw_rect.y -= 2; - gdk_cairo_rectangle (cr, &draw_rect); - cairo_fill (cr); -+#else -+ gdk_draw_pixbuf (GDK_DRAWABLE (window), NULL, link_icon_large, 0, 0, -+ pix_rect.x - 2, pix_rect.y - 2, -+ -1, -1, GDK_RGB_DITHER_NORMAL, -+ 0, 0); -+#endif - } - } -- -+ -+#ifdef HAVE_GTK_2_8 - cairo_destroy (cr); -+#endif - - if (invisible) - g_object_unref (invisible); diff --git a/packages/pcmanfm/files/no-fam.patch b/packages/pcmanfm/files/no-fam.patch deleted file mode 100644 index b87a02df01..0000000000 --- a/packages/pcmanfm/files/no-fam.patch +++ /dev/null @@ -1,432 +0,0 @@ -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/packages/pcmanfm/files/no-warnings.patch b/packages/pcmanfm/files/no-warnings.patch deleted file mode 100644 index 2e0d92bd7b..0000000000 --- a/packages/pcmanfm/files/no-warnings.patch +++ /dev/null @@ -1,47 +0,0 @@ ---- pcmanfm-0.3.2-beta/src/main.c.old 2006-09-25 11:51:51.000000000 +0100 -+++ pcmanfm-0.3.2-beta/src/main.c 2006-09-25 11:51:55.000000000 +0100 -@@ -173,7 +173,7 @@ - gtk_widget_show ( GTK_WIDGET( main_window ) ); - return main_window; - } -- -+#if 0 - static void check_icon_theme() - { - GtkSettings * settings; -@@ -212,7 +212,7 @@ - } - g_free( theme ); - } -- -+#endif - int - main ( int argc, char *argv[] ) - { -@@ -274,7 +274,7 @@ - vfs_file_info_set_thumbnail_size( appSettings.bigIconSize, - appSettings.smallIconSize ); - -- check_icon_theme(); -+/* check_icon_theme();*/ - - if( appSettings.showDesktop ) - fm_desktop_init(); ---- pcmanfm-0.3.2-beta/src/main-window.c.old 2006-09-25 11:47:45.000000000 +0100 -+++ pcmanfm-0.3.2-beta/src/main-window.c 2006-09-25 11:50:32.000000000 +0100 -@@ -496,6 +496,7 @@ - gtk_window_add_accel_group ( GTK_WINDOW ( main_window ), main_window->accel_group ); - gtk_widget_grab_focus ( GTK_WIDGET( main_window->address_bar ) ); - -+#if 0 - /* Create warning bar for super user */ - if ( geteuid() == 0 ) /* Run as super user! */ - { -@@ -510,6 +511,7 @@ - gtk_box_pack_start ( GTK_BOX ( main_window->main_vbox ), - main_window->status_bar, FALSE, FALSE, 2 ); - } -+#endif - - /* Create client area */ - main_window->notebook = GTK_NOTEBOOK( gtk_notebook_new () ); diff --git a/packages/pcmanfm/files/pcmanfm.desktop b/packages/pcmanfm/files/pcmanfm.desktop deleted file mode 100644 index 052d38c855..0000000000 --- a/packages/pcmanfm/files/pcmanfm.desktop +++ /dev/null @@ -1,11 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Name=File Manager -Exec=/usr/bin/pcmanfm -Icon=pcmanfm.png -Terminal=false -Type=Application -Categories=Utility; -SingleInstance=true -StartupNotify=true - diff --git a/packages/pcmanfm/files/pcmanfm.png b/packages/pcmanfm/files/pcmanfm.png Binary files differdeleted file mode 100644 index 3d35360848..0000000000 --- a/packages/pcmanfm/files/pcmanfm.png +++ /dev/null diff --git a/packages/pcmanfm/pcmanfm_0.3.2-beta.bb b/packages/pcmanfm/pcmanfm_0.3.2-beta.bb deleted file mode 100644 index ebbcb32f8a..0000000000 --- a/packages/pcmanfm/pcmanfm_0.3.2-beta.bb +++ /dev/null @@ -1,27 +0,0 @@ -LICENSE = "GPL" -DESCRIPTION = "procfs tools" -SECTION = "x11" -PRIORITY = "optional" -DEPENDS = "gtk+" - -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" - -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/packages/pcmanfm/pcmanfm_0.3.0.1.bb b/packages/pcmanfm/pcmanfm_0.5.bb index 019d1c6c67..489e95ee72 100644 --- a/packages/pcmanfm/pcmanfm_0.3.0.1.bb +++ b/packages/pcmanfm/pcmanfm_0.5.bb @@ -2,14 +2,17 @@ LICENSE = "GPL" DESCRIPTION = "procfs tools" SECTION = "x11" PRIORITY = "optional" -DEPENDS = "gtk+" +DEPENDS = "gtk+ hal gamin startup-notification" +RRECOMMENDS = "pmount-hal" SRC_URI = "${SOURCEFORGE_MIRROR}/pcmanfm/pcmanfm-${PV}.tar.gz \ + file://desired_mount_point.patch;patch=1 \ + file://auto_mount.patch;patch=1 \ file://gnome-fs-directory.png \ file://gnome-fs-regular.png \ file://gnome-mime-text-plain.png \ file://emblem-symbolic-link.png \ - file://no-fam.patch;patch=1" + file://desktop.patch;patch=1" inherit autotools pkgconfig @@ -21,4 +24,3 @@ do_install_append () { } FILES_${PN} += "${datadir}/pixmaps/*.png" - |