diff -crN ./nautilus/components/hardware/Makefile.am /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/components/hardware/Makefile.am
*** ./nautilus/components/hardware/Makefile.am	Fri Sep 20 09:01:07 2002
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/components/hardware/Makefile.am	Wed Jul  9 18:04:53 2003
***************
*** 8,13 ****
--- 8,14 ----
  	-I$(top_srcdir)					\
  	$(DISABLE_DEPRECATED_CFLAGS)			\
  	$(COMPONENT_CFLAGS)				\
+ 	$(LIBGTOP_CFLAGS)				\
  	$(NULL)
  
  server_in_files = Nautilus_View_hardware.server.in.in
***************
*** 31,36 ****
--- 32,38 ----
  	$(top_builddir)/libnautilus/libnautilus.la	\
  	$(top_builddir)/libnautilus-private/libnautilus-private.la	\
  	$(COMPONENT_LIBS) 				\
+ 	$(LIBGTOP_LIBS)					\
  	$(NULL)
  
  EXTRA_DIST = $(server_in_files) $(nautilus_hardware_view_SOURCES)
diff -crN ./nautilus/components/hardware/nautilus-hardware-view.c /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/components/hardware/nautilus-hardware-view.c
*** ./nautilus/components/hardware/nautilus-hardware-view.c	Sun May  4 01:07:50 2003
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/components/hardware/nautilus-hardware-view.c	Thu Oct 16 15:47:10 2003
***************
*** 48,53 ****
--- 48,59 ----
  #include <locale.h>
  #include <sys/stat.h>
  #include <sys/types.h>
+ #ifdef HAVE_LIBGTOP
+ #include <glibtop.h>
+ #include <glibtop/sysinfo.h>
+ #include <glibtop/mem.h>
+ #include <glibtop/uptime.h>
+ #endif
  
  struct _NautilusHardwareViewDetails {
          NautilusView *nautilus_view;
***************
*** 76,81 ****
--- 82,107 ----
  static GtkTargetEntry hardware_dnd_target_table[] = {
  	{ "application/x-color", 0, TARGET_COLOR },
  };
+ #ifdef LIST_DISK_CMD
+ typedef enum {
+ 	UNKNOWN,
+ 	DISK,
+ 	CDROM
+ } device_type_t;
+ 
+ typedef struct device_entry {
+ 	gchar* name;
+ 	device_type_t type;
+ 	gchar* status;
+ 	gchar* location;
+ 	gchar* description;
+ } device_entry_t;
+ 
+ typedef struct device_list {
+ 	gint current;
+ 	gchar** devices;
+ } device_list_t;
+ #endif
  
  static void nautilus_hardware_view_drag_data_received (GtkWidget                 *widget,
                                                         GdkDragContext            *context,
***************
*** 106,111 ****
--- 132,140 ----
  
  	object_class->finalize = nautilus_hardware_view_finalize;
  	widget_class->drag_data_received  = nautilus_hardware_view_drag_data_received;
+ #ifdef HAVE_LIBGTOP
+ 	glibtop_init_r (&glibtop_global_server, 0, 0);
+ #endif
  }
  
  /* property bag property access routines */
***************
*** 206,211 ****
--- 235,241 ----
  	return BONOBO_OBJECT (hardware_view->details->nautilus_view);
  }
  
+ #ifndef HAVE_LIBGTOP
  static char * 
  read_proc_info (const char* proc_filename)
  {
***************
*** 262,273 ****
--- 292,384 ----
  	g_strfreev (info_array);
  	return field_data;
  }
+ #endif
  
  /* get descriptive text about the CPU */
  
  static char *
  get_CPU_description (int nth)
  {
+ #if HAVE_LIBGTOP
+ 	char *result;
+ 	char *key;
+ 	static glibtop_sysinfo *sysinfo = NULL;
+ 	char *architecture, *implementation;
+ 	char *icache_size, *dcache_size;
+         char *model, *cache_size; 
+ 	int i;
+ 	char *frequency = NULL;
+ 	char* mhz;
+ #ifdef GET_CPU_HZ_CMD
+ 	gchar* cmd;
+ 	GError *error;
+ 	gint status;
+ 	gboolean ok;
+ #endif /* GET_CPU_HZ_CMD */
+ 
+ 	if (sysinfo == NULL)
+ 		sysinfo = glibtop_get_sysinfo();
+ 
+ 	if (nth >= sysinfo->ncpu)
+ 		return NULL;
+ 
+ 	for (i = 0; i < sysinfo->cpuinfo[nth].labels->len ; i++)
+ 	{
+ 		key = g_ptr_array_index (sysinfo->cpuinfo[nth].labels, i);
+ 
+ 		if (strcmp(key, "architecture") == 0)
+ 		{
+ 			architecture = (char*)g_hash_table_lookup(sysinfo->cpuinfo[nth].values, key);
+ 		}
+ 		else if (strcmp(key, "implementation") == 0)
+ 		{
+ 			implementation = (char*)g_hash_table_lookup(sysinfo->cpuinfo[nth].values, key);
+ 		}
+ 		else if (strcmp(key, "L1 instruction cache size") == 0)
+ 		{
+ 			icache_size = (char*)g_hash_table_lookup(sysinfo->cpuinfo[nth].values, key);
+ 		}
+ 		else if (strcmp(key, "L1 data cache size") == 0)
+ 		{
+ 			dcache_size = (char*)g_hash_table_lookup(sysinfo->cpuinfo[nth].values, key);
+ 		}
+ 	}
+ 
+ 	model = g_strdup_printf("%s %s", architecture, implementation);
+ 	cache_size = g_strdup_printf("%d+%d", atol(icache_size) >> 10,
+ 					      atol(dcache_size) >> 10);
+ #ifdef GET_CPU_HZ_CMD
+ 	cmd = g_strdup_printf (GET_CPU_HZ_CMD, nth);
+ 
+ 	ok = g_spawn_command_line_sync(cmd, &frequency, NULL, &status, &error);
+ 	g_free(cmd);
+ 	if (!ok || (status != 0))
+ 	{
+ 		g_free(frequency);
+ 		frequency = NULL;
+ 	}
+ #endif /* GET_CPU_HZ_CMD */
+ 
+ 	if (frequency != NULL)
+ 	{
+ 		/* remove 6 digits and '\n' */
+ 
+ 		mhz = g_strdup(frequency);
+ 		mhz[strlen(mhz) - 7] = '\0';
+ 		result = g_strdup_printf (_("%s CPU\n" "%s MHz\n" "%s K cache size"), 
+ 					   model, mhz, cache_size);
+ 		g_free(mhz);
+ 	}
+ 	else
+ 	{
+ 		result = g_strdup_printf (_("%s CPU\n" "%s K cache size"), 
+ 					   model, cache_size);
+ 	}
+ 	g_free(model);
+ 	g_free(cache_size);
+ 
+ 	return result;
+ #else
  	char *proc_data;
          char *model, *speed, *cache_size; 
          char *localized_speed;
***************
*** 315,326 ****
--- 426,451 ----
          g_free (cache_size);
  
  	return result;	
+ #endif /* LIBGTOP */
  }
  
  /* get descriptive information about main memory */
  static char *
  get_RAM_description (void)
  {
+ #ifdef HAVE_LIBGTOP
+ 	char* result;
+ 	glibtop_mem mem_info;
+ 
+ 	glibtop_get_mem(&mem_info);
+ 
+ 	if ((mem_info.total >> 30) > 0) {
+ 		result = g_strdup_printf (_("%lu GB RAM"), (gulong)(mem_info.total >> 30)+1);
+ 	} else {
+ 		result = g_strdup_printf (_("%lu MB RAM"), (gulong)(mem_info.total >> 20)+1);
+ 	}
+ 	return result;
+ #else
  	char *temp_str, *result;
  	char *proc_data;
          gulong ram_size;
***************
*** 348,355 ****
--- 473,684 ----
  	g_free (proc_data);
  
  	return result;
+ #endif /* HAVE_LIBGTOP */
+ }
+ 
+ #ifdef LIST_DISK_CMD
+ device_list_t *
+ open_device_list(void)
+ {
+ 	gboolean result;
+ 	gchar* disk;
+ 	gchar* cdrom;
+ 	gchar* all_devices;
+ 	device_list_t* list;
+ 	gint status;
+ 	GError* error;
+ 
+ 	list = g_malloc(sizeof(device_list_t));
+ 	if (list == NULL)
+ 		return NULL;
+ 
+ 	list->current = 0;
+ 
+ 	result = g_spawn_command_line_sync(LIST_DISK_CMD, &disk, NULL,
+ 					   &status, &error);
+ 	if (!result)
+ 	{
+ 		g_free(list);
+ 		return NULL;
+ 	}
+ 
+ 	if (status != 0)
+ 	{
+ 		g_free(disk);
+ 		g_free(list);
+ 		return NULL;
+ 	}
+ 
+ 	result = g_spawn_command_line_sync(LIST_CDROM_CMD, &cdrom, NULL,
+ 					   &status, &error);
+ 	if ((!result) || (status != 0))
+ 	{
+ 		g_free(cdrom);
+ 		list->devices = g_strsplit(disk, "\n", 0);
+ 		g_free(disk);
+ 		return list;
+ 	}
+ 
+ 	all_devices = g_strconcat(disk, cdrom, NULL);
+ 	g_free(disk);
+ 	g_free(cdrom);
+ 
+ 	list->devices = g_strsplit(all_devices, "\n", 0);
+ 	g_free(all_devices);
+ 
+ 	return list;
+ }
+ 
+ device_entry_t *
+ next_device(device_list_t* list)
+ {
+ 	static device_entry_t entry;
+ 	gchar* properties;
+ 	gchar* type;
+ 
+ 	if (list == NULL)
+ 		return NULL;
+ 
+ 	if (list->devices[list->current] == NULL)
+ 		return NULL;
+ 
+ 	properties = list->devices[list->current];
+ 	
+ 	/* name */
+ 
+ 	entry.name = properties;
+ 
+ 	/* seek next entry */
+ 
+ 	while (*properties != '|')
+ 	{
+ 		if (*properties == 0)
+ 			return NULL;
+ 		properties++;
+ 	}
+ 	*properties++ = 0;
+ 
+ 	/* device type */
+ 
+ 	type = properties;
+ 
+ 	/* seek next entry */
+ 
+ 	while (*properties != '|')
+ 	{
+ 		if (*properties == 0)
+ 			return NULL;
+ 		properties++;
+ 	}
+ 	*properties++ = 0;
+ 
+ 	/* device type */
+ 
+ 	if (strcmp("disk", type) == 0)
+ 	{
+ 		entry.type = DISK;
+ 	}
+ 	if (strcmp("cdrom", type) == 0)
+ 	{
+ 		entry.type = CDROM;
+ 	}
+ 	else
+ 	{
+ 		entry.type = UNKNOWN;
+ 	}
+ 
+ 	/* status */
+ 
+ 	entry.status = properties;
+ 
+ 	/* seek next entry */
+ 
+ 	while (*properties != '|')
+ 	{
+ 		if (*properties == 0)
+ 			return NULL;
+ 		properties++;
+ 	}
+ 	*properties++ = 0;
+ 
+ 	/* location */
+ 
+ 	entry.location = properties;
+ 
+ 	/* seek next entry */
+ 
+ 	while (*properties != '|')
+ 	{
+ 		if (*properties == 0)
+ 			return NULL;
+ 		properties++;
+ 	}
+ 	*properties++ = 0;
+ 
+ 	/* description */
+ 
+ 	entry.description = properties;
+ 
+ 	list->current++;
+ 
+ 	return &entry;
  }
  
+ void
+ close_device_list(device_list_t* list)
+ {
+ 	if (list != NULL)
+ 	{
+ 		g_strfreev(list->devices);
+ 		g_free(list);
+ 	}
+ }
+ 
+ char* get_device_description(device_entry_t* entry)
+ {
+ 	gchar* cmd;
+ 	gboolean result;
+ 	gchar* size;
+ 	GError *error;
+ 	gint status;
+ 	GString *string_data = g_string_new("");
+ 	gchar* description;
+ 	gchar* num_str;
+ 	gulong capacity;
+ 
+ 	g_string_append(string_data, entry->description);
+ 
+ #ifdef GET_SIZE_CMD
+ 	cmd = g_strdup_printf (GET_SIZE_CMD, entry->name);
+ 
+ 	result = g_spawn_command_line_sync(cmd, &size, NULL,
+ 					   &status, &error);
+ 	g_free(cmd);
+ 
+ 	if (result && (status == 0))
+ 	{
+ 		capacity = strtoul (size, NULL, 10);
+ 
+ 		if (capacity >= 1000) {
+ 			num_str = g_strdup_printf (_("%lu GB"), capacity / 1000);
+ 		} else {
+ 			num_str = g_strdup_printf (_("%lu MB"), capacity);
+ 		}
+ 
+ 		g_string_append (string_data, "\n");
+ 		g_string_append (string_data, num_str);
+ 		g_free (num_str);
+ 	}
+ 
+ 	g_free(size);
+ #endif /* GET_SIZE_CMD */
+ 
+ 	description = string_data->str;
+         g_string_free (string_data, FALSE);
+ 
+ 	return description;
+ }
+ #else
  static char *
  get_IDE_description (const char *device)
  {
***************
*** 416,422 ****
          
          return result;
  }
! 
  
  /* shared utility to allocate a title for a form */
  
--- 745,751 ----
          
          return result;
  }
! #endif /* LIST_DISK_CMD */
  
  /* shared utility to allocate a title for a form */
  
***************
*** 469,474 ****
--- 798,822 ----
  static int
  update_uptime_text (gpointer callback_data)
  {
+ #ifdef HAVE_LIBGTOP
+ 	glibtop_uptime uptime_info;
+ 	char *uptime_text;
+ 	int uptime_days, uptime_hours, uptime_minutes;
+ 
+ 	glibtop_get_uptime(&uptime_info);
+ 
+ 	uptime_days = uptime_info.uptime / 86400;
+ 	uptime_hours = (uptime_info.uptime - (uptime_days * 86400)) / 3600;
+ 	uptime_minutes = (uptime_info.uptime - (uptime_days * 86400) - (uptime_hours * 3600)) / 60;
+ 
+ 	uptime_text = g_strdup_printf (_("Uptime is %d days, %d hours, %d minutes"), uptime_days, uptime_hours, uptime_minutes);
+ 
+ 	gtk_label_set_text (NAUTILUS_HARDWARE_VIEW (callback_data)->details->uptime_label, uptime_text);
+ 
+ 	g_free (uptime_text);
+ 
+ 	return TRUE;
+ #else
  	char *uptime_data, *uptime_text;
  	double uptime_seconds;
  	int uptime_days, uptime_hours, uptime_minutes;
***************
*** 486,491 ****
--- 834,840 ----
  	
  	g_free (uptime_data);
  	return TRUE;
+ #endif /* HAVE_LIBGTOP */
  }
  
  /* set up the widgetry for the overview page */
***************
*** 496,504 ****
--- 845,858 ----
  	GtkWidget *temp_widget, *pixmap_widget, *temp_box;
  	GtkWidget *table;
  	int element_index;
+ #ifdef LIST_DISK_CMD
+ 	device_list_t* handle;
+ 	device_entry_t* entry;
+ #else
  	DIR *directory;
          struct dirent* entry;
          char *device, *proc_file, *ide_media;
+ #endif
  	
  	/* allocate a vbox as the container */	
  	view->details->form = gtk_vbox_new(FALSE,0);
***************
*** 554,559 ****
--- 908,953 ----
  	gtk_box_pack_start (GTK_BOX(temp_box), temp_widget, 0, 0, 0 );			
   	gtk_widget_show (temp_widget);
  	
+ #ifdef LIST_DISK_CMD
+ 	handle = open_device_list();
+ 	while((entry = next_device(handle)) != NULL)
+ 	{
+ 		temp_box = gtk_vbox_new(FALSE, 4);
+ 		add_element_to_table (table, temp_box, element_index++);
+ 		gtk_widget_show(temp_box);
+ 
+ 		/* Set the icon depending on the type of device */
+ 
+ 		if (entry->type == DISK)
+ 		{
+ 			file_name = nautilus_pixmap_file ("HD_drive.png");
+ 		}
+ 		else if (entry->type == CDROM)
+ 		{
+ 			file_name = nautilus_pixmap_file ("CD_drive.png");
+ 		}
+ 		else
+ 		{
+ 			file_name = nautilus_pixmap_file ("HD_drive.png");
+ 		}
+ 
+ 		pixmap_widget = gtk_image_new_from_file (file_name);
+ 		gtk_box_pack_start (GTK_BOX(temp_box), pixmap_widget, 0, 0, 0);
+ 		gtk_widget_show(pixmap_widget);
+ 
+ 		/* get device description */
+ 
+ 		temp_text = get_device_description (entry);
+ 		temp_widget = gtk_label_new (temp_text);
+ 		eel_gtk_label_set_scale (GTK_LABEL (temp_widget), PANGO_SCALE_LARGE);
+ 		gtk_label_set_justify (GTK_LABEL (temp_widget), GTK_JUSTIFY_CENTER);
+ 
+ 		g_free(temp_text);
+ 		gtk_box_pack_start(GTK_BOX(temp_box), temp_widget, 0, 0, 0);
+ 		gtk_widget_show(temp_widget);
+ 	}
+ 	close_device_list(handle);
+ #else
          /* Set up ide devices : by Shane Butler <shane_b@bigfoot.com> */
          /* Open the ide devices directory */
          if((directory = opendir("/proc/ide/")) != NULL) {
***************
*** 600,605 ****
--- 994,1000 ----
                  }
                  closedir(directory);
          }
+ #endif /* HAVE_LIBGTOP */
  
  	/* allocate the uptime label */
  	view->details->uptime_label = GTK_LABEL (gtk_label_new (""));
diff -crN ./nautilus/components/image_properties/nautilus-image-properties-view.c /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/components/image_properties/nautilus-image-properties-view.c
*** ./nautilus/components/image_properties/nautilus-image-properties-view.c	Sun Jun  8 09:45:09 2003
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/components/image_properties/nautilus-image-properties-view.c	Thu Oct 16 15:47:48 2003
***************
*** 45,51 ****
  };
  
  enum {
! 	PROP_URI,
  };
  
  static GObjectClass *parent_class = NULL;
--- 45,51 ----
  };
  
  enum {
! 	PROP_URI
  };
  
  static GObjectClass *parent_class = NULL;
***************
*** 271,274 ****
  	bonobo_object_release_unref (BONOBO_OBJREF (pb), NULL);
  }
  
! BONOBO_TYPE_FUNC (NautilusImagePropertiesView, BONOBO_TYPE_CONTROL, nautilus_image_properties_view);
--- 271,274 ----
  	bonobo_object_release_unref (BONOBO_OBJREF (pb), NULL);
  }
  
! BONOBO_TYPE_FUNC (NautilusImagePropertiesView, BONOBO_TYPE_CONTROL, nautilus_image_properties_view)
diff -crN ./nautilus/configure.in /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/configure.in
*** ./nautilus/configure.in	Mon Sep  8 15:44:32 2003
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/configure.in	Thu Oct 16 15:48:42 2003
***************
*** 75,80 ****
--- 75,86 ----
  
  AC_SUBST(STARTUP_NOTIFICATION_PACKAGE)
  
+ AC_CHECK_LIB(popt, poptGetArg, POPT_LIBS=-lpopt,
+         [AC_CHECK_HEADER(popt.h, , AC_MSG_ERROR([[
+ *** Couldn't find popt. Please download and install from
+ *** ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.0.x/ and try again.]]))])
+ AC_SUBST(POPT_LIBS)
+ 
  PKG_CHECK_MODULES(ALL, \
  	esound >= $ESOUND_REQUIRED \
  	bonobo-activation-2.0 >= $BONOBO_ACTIVATION_REQUIRED \
***************
*** 310,316 ****
  AC_SUBST(LIBNAUTILUS_CFLAGS)
  LIBNAUTILUS_LIBS="`$PKG_CONFIG --libs $LIBNAUTILUS_MODULES`"
  AC_SUBST(LIBNAUTILUS_LIBS)
! LIBNAUTILUS_IDL_INCLUDES="`$PKG_CONFIG --variable=idldir $LIBNAUTILUS_MODULES | $srcdir/add-include-prefix`"
  AC_SUBST(LIBNAUTILUS_IDL_INCLUDES)
  
  dnl core nautilus (must list bonobo-activation and libbonobo because idldir does not respect "requires")
--- 316,327 ----
  AC_SUBST(LIBNAUTILUS_CFLAGS)
  LIBNAUTILUS_LIBS="`$PKG_CONFIG --libs $LIBNAUTILUS_MODULES`"
  AC_SUBST(LIBNAUTILUS_LIBS)
! LIBNAUTILUS_IDL_INCLUDES_tmp="`$PKG_CONFIG --variable=idldir $LIBNAUTILUS_MODULES | $srcdir/add-include-prefix`"
! LIBNAUTILUS_IDL_INCLUDES=""
! for dir in ${LIBNAUTILUS_IDL_INCLUDES_tmp}
! do
!    LIBNAUTILUS_IDL_INCLUDES="${LIBNAUTILUS_IDL_INCLUDES} -I${dir}"
! done
  AC_SUBST(LIBNAUTILUS_IDL_INCLUDES)
  
  dnl core nautilus (must list bonobo-activation and libbonobo because idldir does not respect "requires")
***************
*** 319,325 ****
  AC_SUBST(CORE_CFLAGS)
  CORE_LIBS="`$PKG_CONFIG --libs $CORE_MODULES` $CDDA_LIBS $LIBJPEG $x_libs"
  AC_SUBST(CORE_LIBS)
! CORE_IDL_INCLUDES="`$PKG_CONFIG --variable=idldir $CORE_MODULES | $srcdir/add-include-prefix`"
  AC_SUBST(CORE_IDL_INCLUDES)
  
  dnl typical components
--- 330,340 ----
  AC_SUBST(CORE_CFLAGS)
  CORE_LIBS="`$PKG_CONFIG --libs $CORE_MODULES` $CDDA_LIBS $LIBJPEG $x_libs"
  AC_SUBST(CORE_LIBS)
! CORE_IDL_INCLUDES_tmp="`$PKG_CONFIG --variable=idldir $CORE_MODULES | $srcdir/add-include-prefix`"
! for dir in ${CORE_IDL_INCLUDES_tmp}
! do
!    CORE_IDL_INCLUDES="${CORE_IDL_INCLUDES} -I${dir}"
! done
  AC_SUBST(CORE_IDL_INCLUDES)
  
  dnl typical components
***************
*** 343,348 ****
--- 358,387 ----
  	-DGTK_DISABLE_DEPRECATED \
  	-DGNOME_DISABLE_DEPRECATED"
  
+ dnl AIX specific: find commands that retrieve system infomation
+ 
+ AH_TEMPLATE(LIST_DISK_CMD, [Command to list all disks on system])
+ AH_TEMPLATE(LIST_CDROM_CMD, [Command to list all cdroms on system])
+ AH_TEMPLATE(GET_SIZE_CMD, [Command to get size of a disk])
+ AH_TEMPLATE(GET_CPU_HZ_CMD, [Command to get frequency of cpu])
+ 
+ case $host_os in
+ aix*)
+   AC_PATH_PROG(LSDEV_PATH, lsdev)
+   if test x"$LSDEV_PATH" != "x"
+   then
+     AC_DEFINE_UNQUOTED(LIST_DISK_CMD, "$LSDEV_PATH -C -c disk -F \\\"name|class|status|location|description\\\"")
+     AC_DEFINE_UNQUOTED(LIST_CDROM_CMD, "$LSDEV_PATH -C -c cdrom -F \\\"name|class|status|location|description\\\"")
+   fi
+   AC_PATH_PROG(LSATTR_PATH, lsattr)
+   if test x"$LSATTR_PATH" != "x"
+   then
+     AC_DEFINE_UNQUOTED(GET_SIZE_CMD, "$LSATTR_PATH -E -l %s -F value -a size_in_mb")
+     AC_DEFINE_UNQUOTED(GET_CPU_HZ_CMD, "$LSATTR_PATH -E -l proc%d -F value -a frequency")
+   fi
+   ;;
+ esac
+ 
  dnl FIXME: put this back once the registration_id stuff is cleared up.
  dnl	-DBONOBO_DISABLE_DEPRECATED
  
***************
*** 351,363 ****
  dnl
  dnl disable (broken) hardware view
  dnl
  hw_view=disabled
  AC_ARG_ENABLE(hardware,
! [  --enable-hardware		Enable (broken, Linux only) hardware view],
! hw_view=enabled)
! if test "x`(uname -s) 2>/dev/null`" != "xLinux"; then
! 	hw_view=disabled
! fi
  AM_CONDITIONAL(ENABLE_HARDWARE_VIEW, test "$hw_view" = "enabled")
  
  
--- 390,428 ----
  dnl
  dnl disable (broken) hardware view
  dnl
+ 
  hw_view=disabled
  AC_ARG_ENABLE(hardware,
! [  --enable-hardware		Enable (broken, Linux/AIX only) hardware view],
! [
! case $host_os in
! linux*)
!   hw_view=enabled
!   ;;
! aix*)
!   dnl AIX uses libgtop to enable hardware view
! 
!   LIBGTOP_REQUIRED=2.0.0
! 
!   AH_TEMPLATE([HAVE_LIBGTOP], [Define to 1 if libgtop is available])
! 
!   PKG_CHECK_MODULES(LIBGTOP, libgtop-2.0 >= $LIBGTOP_REQUIRED, have_libgtop=yes, have_libtop=no)
!   if test "x$have_libgtop" = "xyes"; then
!     AC_DEFINE(HAVE_LIBGTOP,1)
!     AC_SUBST(LIBGTOP_CFLAGS)
!     AC_SUBST(LIBGTOP_LIBS)
!     hw_view=enabled
!   else
!     AC_MSG_WARN([Hardware view disabled, AIX needs libgtop >= $LIBGTOP_REQUIRED])
!     hw_view=disabled
!   fi
!   ;;
! *)
!   AC_MSG_WARN([Hardware view disabled, available only for linux and AIX])
!   hw_view=disabled
!   ;;
! esac])
! 
  AM_CONDITIONAL(ENABLE_HARDWARE_VIEW, test "$hw_view" = "enabled")
  
  
diff -crN ./nautilus/cut-n-paste-code/libegg/egg-recent-item.c /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/cut-n-paste-code/libegg/egg-recent-item.c
*** ./nautilus/cut-n-paste-code/libegg/egg-recent-item.c	Wed Apr 16 11:39:07 2003
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/cut-n-paste-code/libegg/egg-recent-item.c	Thu Oct 16 15:48:51 2003
***************
*** 63,72 ****
  	g_free (item);
  }
  
! void
  egg_recent_item_ref (EggRecentItem *item)
  {
  	item->refcount++;
  }
  
  void
--- 63,74 ----
  	g_free (item);
  }
  
! gpointer
  egg_recent_item_ref (EggRecentItem *item)
  {
  	item->refcount++;
+ 
+ 	return item;
  }
  
  void
diff -crN ./nautilus/cut-n-paste-code/libegg/egg-recent-item.h /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/cut-n-paste-code/libegg/egg-recent-item.h
*** ./nautilus/cut-n-paste-code/libegg/egg-recent-item.h	Wed Nov  6 11:39:04 2002
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/cut-n-paste-code/libegg/egg-recent-item.h	Thu Sep  4 16:45:52 2003
***************
*** 34,40 ****
  /* constructors */
  EggRecentItem * egg_recent_item_new (void);
  
! void		egg_recent_item_ref (EggRecentItem *item);
  void		egg_recent_item_unref (EggRecentItem *item);
  
  /* automatically fetches the mime type, etc */
--- 34,40 ----
  /* constructors */
  EggRecentItem * egg_recent_item_new (void);
  
! gpointer	egg_recent_item_ref (EggRecentItem *item);
  void		egg_recent_item_unref (EggRecentItem *item);
  
  /* automatically fetches the mime type, etc */
diff -crN ./nautilus/libnautilus-private/nautilus-file-attributes.h /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/libnautilus-private/nautilus-file-attributes.h
*** ./nautilus/libnautilus-private/nautilus-file-attributes.h	Wed Apr  2 12:50:53 2003
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/libnautilus-private/nautilus-file-attributes.h	Wed Nov 12 16:58:15 2003
***************
*** 41,47 ****
  	NAUTILUS_FILE_ATTRIBUTE_METADATA = 1 << 8,
  	NAUTILUS_FILE_ATTRIBUTE_MIME_TYPE = 1 << 9,
  	NAUTILUS_FILE_ATTRIBUTE_TOP_LEFT_TEXT = 1 << 10,
! 	NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME = 1 << 11,
  } NautilusFileAttributes;
  
  #endif /* NAUTILUS_FILE_ATTRIBUTES_H */
--- 41,47 ----
  	NAUTILUS_FILE_ATTRIBUTE_METADATA = 1 << 8,
  	NAUTILUS_FILE_ATTRIBUTE_MIME_TYPE = 1 << 9,
  	NAUTILUS_FILE_ATTRIBUTE_TOP_LEFT_TEXT = 1 << 10,
! 	NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME = 1 << 11
  } NautilusFileAttributes;
  
  #endif /* NAUTILUS_FILE_ATTRIBUTES_H */
diff -crN ./nautilus/libnautilus-private/nautilus-volume-monitor.c /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/libnautilus-private/nautilus-volume-monitor.c
*** ./nautilus/libnautilus-private/nautilus-volume-monitor.c	Mon Jul  7 12:05:04 2003
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/libnautilus-private/nautilus-volume-monitor.c	Thu Oct 16 15:50:02 2003
***************
*** 66,72 ****
  #include <fstab.h>
  #endif
  
! #if defined(HAVE_SYS_MNTCTL_H) && defined(HAVE_SYS_VMOUNT_H) && defined(HAVE_SYS_VFS_H)
  
  #include <sys/mntctl.h>
  #include <sys/vfs.h>
--- 66,72 ----
  #include <fstab.h>
  #endif
  
! #if defined(HAVE_SYS_MNTCTL_H) && defined(HAVE_SYS_VMOUNT_H) && defined(HAVE_SYS_VFS_H) && !defined(HAVE_MNTENT_H)
  
  #include <sys/mntctl.h>
  #include <sys/vfs.h>
***************
*** 79,85 ****
  
  #ifdef HAVE_MNTENT_H
  #include <mntent.h>
! #ifndef __CYGWIN__
  #define MOUNT_TABLE_PATH _PATH_MNTTAB
  #else
  #define MOUNT_TABLE_PATH MOUNTED
--- 79,85 ----
  
  #ifdef HAVE_MNTENT_H
  #include <mntent.h>
! #ifdef _PATH_MNTTAB
  #define MOUNT_TABLE_PATH _PATH_MNTTAB
  #else
  #define MOUNT_TABLE_PATH MOUNTED
***************
*** 600,606 ****
  		return TRUE;
  	}
  #endif
! 	
  	return FALSE;
  }
  
--- 600,606 ----
  		return TRUE;
  	}
  #endif
! 
  	return FALSE;
  }
  
***************
*** 840,846 ****
        return result;
  }
  
! #ifndef SOLARIS_MNT
  
  static gboolean
  volume_is_removable (const NautilusVolume *volume)
--- 840,846 ----
        return result;
  }
  
! #if !defined(SOLARIS_MNT)
  
  static gboolean
  volume_is_removable (const NautilusVolume *volume)
***************
*** 1229,1242 ****
  }
  
  
- 
  #ifdef AIX_MNT
!  
  static GList *
  get_mount_list (NautilusVolumeMonitor *monitor)
  {
  	struct vfs_ent *fs_info;
! 	struct vmount *vmount_info;
  	int vmount_number;
  	unsigned int vmount_size;
  	int current;
--- 1229,1241 ----
  }
  
  
  #ifdef AIX_MNT
! 
  static GList *
  get_mount_list (NautilusVolumeMonitor *monitor)
  {
  	struct vfs_ent *fs_info;
! 	struct vmount *vmount_info, *current_vmount;
  	int vmount_number;
  	unsigned int vmount_size;
  	int current;
***************
*** 1249,1295 ****
  	NautilusVolume *volume;
  	GList *volumes = NULL;
  
! 	if (mntctl (MCTL_QUERY, sizeof (vmount_size), &vmount_size) != 0) {
! 		g_warning ("Unable to know the number of mounted volumes\n");
  
  		return NULL;
  	}
  
! 	vmount_info = (struct vmount*)g_malloc (vmount_size);
! 	if (vmount_info == NULL) {
! 		g_warning ("Unable to allocate memory\n");
  		return NULL;
  	}
  
! 	vmount_number = mntctl (MCTL_QUERY, vmount_size, vmount_info);
  
! 	if (vmount_info->vmt_revision != VMT_REVISION) {
! 		g_warning ("Bad vmount structure revision number, want %d, got %d\n", VMT_REVISION, vmount_info->vmt_revision);
  	}
  
! 	if (vmount_number < 0) {
! 		g_warning ("Unable to recover mounted volumes information\n");
  
- 		g_free (vmount_info);
  		return NULL;
  	}
  
! 	while (vmount_number > 0) {
! 		device = vmt2dataptr (vmount_info, VMT_OBJECT);
! 		mount = vmt2dataptr (vmount_info, VMT_STUB);
! 		is_removable = (vmount_info->vmt_flags & MNT_REMOVABLE) ? 1 : 0;
! 		is_readonly = (vmount_info->vmt_flags & MNT_READONLY) ? 1 : 0;
! 
! 		fs_info = getvfsbytype (vmount_info->vmt_gfstype);
! 
! 		if (fs_info == NULL) {
! 			g_warning ("Unknown FS type !\n");
  			fstype = "???";
! 		} else {
  			fstype = fs_info->vfsent_name;
  		}
  
! 		volume = create_volume (device, mount);
  		volume->is_removable = is_removable;
  		volume->is_read_only = is_readonly;
  
--- 1248,1304 ----
  	NautilusVolume *volume;
  	GList *volumes = NULL;
  
! 	if (mntctl(MCTL_QUERY, sizeof(vmount_size), &vmount_size) != 0)
! 	{
! 		g_warning("Unable to know the number of mounted volumes\n");
  
  		return NULL;
  	}
  
! 	vmount_info = (struct vmount*)malloc(vmount_size);
! 	if (vmount_info == NULL)
! 	{
! 		g_warning("Unable to allocate memory\n");
  		return NULL;
  	}
  
! 	vmount_number = mntctl(MCTL_QUERY, vmount_size, vmount_info);
  
! 	if (vmount_info->vmt_revision != VMT_REVISION)
! 	{
! 		g_warning("Bad vmount structure revision number, want %d, got %d\n", VMT_REVISION, vmount_info->vmt_revision);
  	}
  
! 	if (vmount_number < 0)
! 	{
! 		g_warning("Unable to recover mounted volumes information\n");
! 
! 		free(vmount_info);
  
  		return NULL;
  	}
  
! 	current_vmount = vmount_info;
! 	while (vmount_number > 0)
! 	{
! 		device = vmt2dataptr(current_vmount, VMT_OBJECT);
! 		mount = vmt2dataptr(current_vmount, VMT_STUB);
! 		is_removable = (current_vmount->vmt_flags & MNT_REMOVABLE) ? 1 : 0;
! 		is_readonly = (current_vmount->vmt_flags & MNT_READONLY) ? 1 : 0;
! 
! 		fs_info = getvfsbytype(current_vmount->vmt_gfstype);
! 
! 		if (fs_info == NULL)
! 		{
! 			g_warning("Unknown FS type !\n");
  			fstype = "???";
! 		}
! 		else
! 		{
  			fstype = fs_info->vfsent_name;
  		}
  
! 		volume = create_volume(device, mount);
  		volume->is_removable = is_removable;
  		volume->is_read_only = is_readonly;
  
***************
*** 1298,1315 ****
  
  		/* next entry */
  
! 		vmount_info = (struct vmount *)( (char*)vmount_info 
! 						+ vmount_info->vmt_length);
  		vmount_number--;
  	}
  	
! 	
! 	g_free (vmount_info);
  
          return volumes;
  }
  
! #elif defined(SOLARIS_MNT)
  
  static GList *
  get_mount_list (NautilusVolumeMonitor *monitor) 
--- 1307,1323 ----
  
  		/* next entry */
  
! 		current_vmount = (struct vmount *)( (char*)current_vmount 
! 						+ current_vmount->vmt_length);
  		vmount_number--;
  	}
  	
! 	free(vmount_info);
  
          return volumes;
  }
  
! #elif SOLARIS_MNT
  
  static GList *
  get_mount_list (NautilusVolumeMonitor *monitor) 
diff -crN ./nautilus/libnautilus/Makefile.am /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/libnautilus/Makefile.am
*** ./nautilus/libnautilus/Makefile.am	Mon May 26 16:33:03 2003
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/libnautilus/Makefile.am	Thu Oct 16 15:50:16 2003
***************
*** 16,21 ****
--- 16,23 ----
  	-no-undefined \
  	$(NULL)
  
+ libnautilus_la_LIBADD = @ALL_LIBS@
+ 
  nautilus_view_component_idl_sources =		\
  	nautilus-view-component-stubs.c		\
  	nautilus-view-component-skels.c		\
diff -crN ./nautilus/src/nautilus-information-panel.c /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/src/nautilus-information-panel.c
*** ./nautilus/src/nautilus-information-panel.c	Wed Apr 16 15:14:59 2003
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/src/nautilus-information-panel.c	Thu Oct 16 15:50:45 2003
***************
*** 144,150 ****
  typedef enum {
  	NO_PART,
  	BACKGROUND_PART,
! 	ICON_PART,
  } InformationPanelPart;
  
  EEL_CLASS_BOILERPLATE (NautilusInformationPanel, nautilus_information_panel, EEL_TYPE_BACKGROUND_BOX)
--- 144,150 ----
  typedef enum {
  	NO_PART,
  	BACKGROUND_PART,
! 	ICON_PART
  } InformationPanelPart;
  
  EEL_CLASS_BOILERPLATE (NautilusInformationPanel, nautilus_information_panel, EEL_TYPE_BACKGROUND_BOX)
diff -crN ./nautilus/src/nautilus-server-connect.c /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/src/nautilus-server-connect.c
*** ./nautilus/src/nautilus-server-connect.c	Sun Jun  8 06:09:37 2003
--- /gestconf/project/GNOME_ACL/GNOME/build/sh_build_GNOME/src/./nautilus/src/nautilus-server-connect.c	Thu Oct 16 15:51:03 2003
***************
*** 30,36 ****
  
  #undef DEBUG
  #ifdef DEBUG
! #define D(x) g_message x
  #else
  #define D(x) 
  #endif
--- 30,36 ----
  
  #undef DEBUG
  #ifdef DEBUG
! #define D(x) x
  #else
  #define D(x) 
  #endif
***************
*** 74,80 ****
  
  	while (result == GNOME_VFS_ERROR_NOT_FOUND) {
  		parent = gnome_vfs_uri_get_parent (work_uri);
! 		D(("trying to create: %s", gnome_vfs_uri_to_string (parent, 0)));
  		result = gnome_vfs_make_directory_for_uri (parent, perm);
  
  		if (result == GNOME_VFS_ERROR_NOT_FOUND)
--- 74,80 ----
  
  	while (result == GNOME_VFS_ERROR_NOT_FOUND) {
  		parent = gnome_vfs_uri_get_parent (work_uri);
! 		D(g_message("trying to create: %s", gnome_vfs_uri_to_string (parent, 0)));
  		result = gnome_vfs_make_directory_for_uri (parent, perm);
  
  		if (result == GNOME_VFS_ERROR_NOT_FOUND)
***************
*** 91,97 ****
  	}
  
  	while (result == GNOME_VFS_OK && list != NULL) {
! 		D(("creating: %s", gnome_vfs_uri_to_string (list->data, 0)));
  		result = gnome_vfs_make_directory_for_uri
  		    ((GnomeVFSURI *) list->data, perm);
  
--- 91,97 ----
  	}
  
  	while (result == GNOME_VFS_OK && list != NULL) {
! 		D(g_message("creating: %s", gnome_vfs_uri_to_string (list->data, 0)));
  		result = gnome_vfs_make_directory_for_uri
  		    ((GnomeVFSURI *) list->data, perm);
  
***************
*** 109,115 ****
  	GnomeVFSURI *uri;
  	GnomeVFSResult result;
  
! 	D(("gnome_vfs_make_directory_with_parents (%s)", text_uri));
  	uri = gnome_vfs_uri_new (text_uri);
  	result = gnome_vfs_make_directory_with_parents_for_uri (uri, perm);
  	D(("gnome_vfs_make_directory_with_parents: %s\n",
--- 109,115 ----
  	GnomeVFSURI *uri;
  	GnomeVFSResult result;
  
! 	D(g_message("gnome_vfs_make_directory_with_parents (%s)", text_uri));
  	uri = gnome_vfs_uri_new (text_uri);
  	result = gnome_vfs_make_directory_with_parents_for_uri (uri, perm);
  	D(("gnome_vfs_make_directory_with_parents: %s\n",
