Date: Sunday, October 21, 2012 @ 03:39:30
  Author: giovanni
Revision: 169431

upgpkg: usbview 1.1-4

Fixed missing usbfs and gtk3 port

Added:
  usbview/trunk/usbview-1.1-gtk3-port.patch
  usbview/trunk/usbview-1.1-missing-usbfs.patch
  usbview/trunk/usbview.install
Modified:
  usbview/trunk/PKGBUILD

---------------------------------+
 PKGBUILD                        |   35 +
 usbview-1.1-gtk3-port.patch     |  802 ++++++++++++++++++++++++++++++++++++++
 usbview-1.1-missing-usbfs.patch |   11 
 usbview.install                 |   11 
 4 files changed, 851 insertions(+), 8 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2012-10-21 04:52:25 UTC (rev 169430)
+++ PKGBUILD    2012-10-21 07:39:30 UTC (rev 169431)
@@ -4,22 +4,35 @@
 
 pkgname=usbview
 pkgver=1.1
-pkgrel=3
-pkgdesc="USB Viewer"
+pkgrel=4
+pkgdesc="Display the topology of devices on the USB bus"
 arch=('i686' 'x86_64')
 url="http://www.kroah.com/linux-usb/";
 license=('GPL')
-depends=('gtk2')
-makedepends=('pkg-config')
-source=("http://www.kroah.com/linux-usb/${pkgname}-${pkgver}.tar.gz";)
-md5sums=('8bf5e66351156356f3ad07454123affa')
+depends=('gtk3' 'desktop-file-utils')
+makedepends=('pkg-config' 'gendesk')
+install=${pkgname}.install
+source=("http://www.kroah.com/linux-usb/${pkgname}-${pkgver}.tar.gz";
+        'usbview-1.1-gtk3-port.patch'
+        'usbview-1.1-missing-usbfs.patch')
+md5sums=('8bf5e66351156356f3ad07454123affa'
+         '578ed1099228f205b728ee2d46ed6f56'
+         '02e4313887423d0057a7f4f15b7f37d4')
 
 build() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
+  cd "${srcdir}"
+  gendesk -n
+  sed -i "s:Application;:Application;System:g" "${srcdir}"/${pkgname}.desktop
 
+  cd "${pkgname}-${pkgver}"
+
+  patch -Np1 -i "${srcdir}/usbview-1.1-gtk3-port.patch"
+  patch -Np1 -i "${srcdir}/usbview-1.1-missing-usbfs.patch"
+
+  autoreconf
   ./configure --prefix=/usr \
               --sysconfdir=/etc \
-             --localstatedir=/var
+              --localstatedir=/var
   make
 }
 
@@ -29,4 +42,10 @@
   make prefix="${pkgdir}/usr" \
        sysconfdir="${pkgdir}/etc" \
        localstatedir="${pkgdir}/var" install
+
+  install -Dm0644 "${srcdir}"/${pkgname}.desktop \
+    "${pkgdir}"/usr/share/applications/${pkgname}.desktop
+
+  install -Dm0644 "${srcdir}"/${pkgname}-${pkgver}/usb_icon.xpm \
+    "${pkgdir}"/usr/share/pixmaps/${pkgname}.xpm
 }

Added: usbview-1.1-gtk3-port.patch
===================================================================
--- usbview-1.1-gtk3-port.patch                         (rev 0)
+++ usbview-1.1-gtk3-port.patch 2012-10-21 07:39:30 UTC (rev 169431)
@@ -0,0 +1,802 @@
+--- a/Makefile.am      2009-03-11 03:25:46.000000000 +0100
++++ b/Makefile.am      2012-06-14 20:33:10.641639573 +0200
+@@ -16,10 +16,8 @@
+       interface.c             \
+       callbacks.c             \
+       usbtree.c usbtree.h     \
+-      showmessage.c           \
+       usbparse.c usbparse.h   \
+       configure-dialog.c      \
+-      about-dialog.c          \
+       usbview_logo.xpm        \
+       usbview_logo.xcf        \
+       usb_icon.xpm            \
+--- a/callbacks.c      2008-06-25 23:03:13.000000000 +0200
++++ b/callbacks.c      2012-06-14 21:06:05.000523489 +0200
+@@ -23,13 +23,13 @@
+ #endif
+ 
+ #include <gtk/gtk.h>
+-
+ #include "usbtree.h"
++#include "usbview_logo.xpm"   /* logo */
+ 
+ 
+ void on_buttonClose_clicked (GtkButton *button, gpointer user_data)
+ {
+-      gtk_exit(0);
++      gtk_main_quit();
+ }
+ 
+ 
+@@ -55,7 +55,21 @@
+ 
+ void on_buttonAbout_clicked (GtkButton *button, gpointer user_data)
+ {
+-      about_dialog ();
++      GdkPixbuf *logo;
++      gchar *authors[] = { "Greg Kroah-Hartman <[email protected]>", NULL };
++
++      logo = gdk_pixbuf_new_from_xpm_data ((const char **)usbview_logo_xpm);
++      gtk_show_about_dialog (GTK_WINDOW (windowMain),
++              "logo", logo,
++              "program-name", "usbview",
++              "version", VERSION,
++              "comments", "Display information on USB devices",
++              "website-label", "http://www.kroah.com/linux-usb/";,
++              "website", "http://www.kroah.com/linux-usb/";,
++              "copyright", "Copyright © 1999-2012",
++              "authors", authors,
++              NULL);
++      g_object_unref (logo);
+ }
+ 
+ 
+--- a/configure-dialog.c       2009-03-11 02:40:28.000000000 +0100
++++ b/configure-dialog.c       2012-06-14 21:06:05.000523489 +0200
+@@ -24,264 +24,78 @@
+ #endif
+ 
+ #include <gtk/gtk.h>
+-#include <stdio.h>
+-#include <stdlib.h>
+ #include <string.h>
+-#include <ctype.h>
+-
+ #include "usbtree.h"
+ #include "usbparse.h"
+ 
+-
+-
+-
+ static        GtkWidget       *fileEntry;
+-static        GtkWidget       *filew;
+-static        char            *sFilename;
+-
+-/* 
+- * Get the selected filename and print it to the console 
+- */
+-static void file_ok_sel (GtkWidget *w, GtkFileSelection *fs)
+-{
+-      const char *sTempFile;
+-
+-      /* --- Get the name --- */
+-      sTempFile = gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs));
+-
+-      /* --- Allocate space and save it. --- */
+-      sFilename = malloc (sizeof (char) * (strlen (sTempFile) + 1));
+-      strcpy (sFilename, sTempFile);
+-
+-      /* --- Destroy the file selection --- */
+-      gtk_widget_destroy (filew);
+-}
+-
+-
+-static void file_cancel_sel (GtkWidget *w, GtkFileSelection *fs)
+-{
+-      /* --- Destroy the file selection --- */
+-      gtk_widget_destroy (filew);
+-}
+-
+-
+-/*
+- * DestroyDialog
+- *
+- * Destroy the dialog (obvious, eh?) but also remove the
+- * grab and close the modal. 
+- */
+-static int DestroyDialog (GtkWidget *widget, gpointer *data)
+-{
+-      gtk_grab_remove (widget);
+-      gtk_main_quit ();
+-      return(FALSE);
+-}
+-
+-
+-/*
+- * GetFilename 
+- */
+-static char *GetFilename (char *sTitle, char *initialFilename)
+-{
+-      sFilename = NULL;
+-
+-      /* --- Create a new file selection widget --- */
+-      filew = gtk_file_selection_new (sTitle);
+-
+-      /* --- If it's destroyed --- */
+-      gtk_signal_connect (GTK_OBJECT (filew), "destroy", (GtkSignalFunc) 
DestroyDialog, &filew);
+-
+-      /* --- Connect the ok_button to file_ok_sel function  --- */
+-      gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (filew)->ok_button), 
"clicked", (GtkSignalFunc) file_ok_sel, filew );
+-
+-      /* --- Connect the cancel_button to destroy the widget  --- */
+-      gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION 
(filew)->cancel_button), "clicked", (GtkSignalFunc) file_cancel_sel, filew);
+-
+-      /* --- Lets set the filename --- */
+-      gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew), 
initialFilename);
+-
+-      /* --- Turn off the file operation buttons --- */
+-      gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION(filew));
+-
+-      /* --- Of course, we show it --- */
+-      gtk_widget_show (filew);
+-
+-      /* --- Make sure we keep the focus --- */
+-      gtk_grab_add (filew);
+-
+-      gtk_main ();
+-
+-      return(sFilename);
+-}
+-
+-
+-static void ClearShowMessage (GtkWidget *widget, gpointer data)
+-{
+-      gtk_grab_remove (widget);
+-}
+-
+-static void CancelConfigureDialog (GtkWidget *widget, gpointer data)
+-{
+-      GtkWidget *dialogWidget = (GtkWidget *) data;
+-
+-      gtk_grab_remove (dialogWidget);
+-
+-      /* --- Close the widget --- */
+-      gtk_widget_destroy (dialogWidget);
+-}
+-
+-static void OkConfigureDialog (GtkWidget *widget, gpointer data)
+-{
+-      GtkWidget       *dialogWidget = (GtkWidget *) data;
+-      gchar           *editString;
+-
+-      editString = gtk_editable_get_chars (GTK_EDITABLE (fileEntry), 0, -1);
+-
+-      gtk_grab_remove (dialogWidget);
+-
+-      /* --- Close the widget --- */
+-      gtk_widget_destroy (dialogWidget);
+-
+-      strcpy (devicesFile, editString);
+-      g_free (editString);
+-      LoadUSBTree(0);
+-}
+-
+ 
+ static void fileSelectButtonClick (GtkWidget *widget, gpointer data)
+ {
+-      gchar   *newFilename;
++      GtkWidget *dialog;
++      gchar *filename;
+ 
+-      newFilename = GetFilename ("locate usbdevfs devices file", devicesFile);
+-
+-      if (newFilename != NULL) {
+-              gtk_entry_set_text (GTK_ENTRY (fileEntry), newFilename);
+-              gtk_widget_show (fileEntry);
+-              g_free (newFilename);
++      dialog = gtk_file_chooser_dialog_new (
++                              "locate usbdevfs devices file",
++                              GTK_WINDOW (windowMain),
++                              GTK_FILE_CHOOSER_ACTION_OPEN,
++                              GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
++                              GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,
++                              NULL);
++
++      if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
++      {
++              filename = gtk_file_chooser_get_filename(
++                                              GTK_FILE_CHOOSER (dialog));
++              gtk_entry_set_text (GTK_ENTRY (fileEntry), filename);
++              g_free (filename);
+       }
++                        
++      gtk_widget_destroy (dialog);
+ }
+ 
+-
+ void configure_dialog (void)
+ {
+-      GtkWidget *configDialog;
+-      GtkWidget *dialog_vbox2;
++      GtkWidget *dialog, *content_area;
+       GtkWidget *hbox1;
+       GtkWidget *label1;
+-      GtkWidget *label41;
+-      GtkWidget *label42;
+-      GtkWidget *label43;
+-      GtkWidget *vbox1;
+-      GtkWidget *dialog_action_area2;
+-      GtkWidget *hbuttonbox2;
+-      GtkWidget *okButton;
+-      GtkWidget *cancelButton;
+       GtkWidget *fileSelectButton;
++      gchar *editString;
++      gint result;
+ 
+-      configDialog = gtk_dialog_new ();
+-      gtk_object_set_data (GTK_OBJECT (configDialog), "configDialog", 
configDialog);
+-      gtk_window_set_title (GTK_WINDOW (configDialog), "USB View 
Configuration");
+-      gtk_window_set_policy (GTK_WINDOW (configDialog), TRUE, TRUE, FALSE);
+-
+-      dialog_vbox2 = GTK_DIALOG (configDialog)->vbox;
+-      gtk_object_set_data (GTK_OBJECT (configDialog), "dialog_vbox2", 
dialog_vbox2);
+-      gtk_widget_show (dialog_vbox2);
+-
+-      vbox1 = gtk_vbox_new (FALSE, 0);
+-      gtk_widget_ref (vbox1);
+-      gtk_object_set_data_full (GTK_OBJECT (configDialog), "vbox1", vbox1, 
(GtkDestroyNotify) gtk_widget_unref);
+-      gtk_widget_show (vbox1);
+-      gtk_box_pack_start (GTK_BOX (dialog_vbox2), vbox1, TRUE, TRUE, 0);
+-
+-      label41 = gtk_label_new ("");
+-      gtk_widget_ref (label41);
+-      gtk_object_set_data_full (GTK_OBJECT (configDialog), "label41", 
label41, (GtkDestroyNotify) gtk_widget_unref);
+-      gtk_widget_show (label41);
+-      gtk_box_pack_start (GTK_BOX (vbox1), label41, FALSE, FALSE, 0);
+-
+-      hbox1 = gtk_hbox_new (FALSE, 0);
+-      gtk_widget_ref (hbox1);
+-      gtk_object_set_data_full (GTK_OBJECT (configDialog), "hbox1", hbox1, 
(GtkDestroyNotify) gtk_widget_unref);
+-      gtk_widget_show (hbox1);
+-//    gtk_box_pack_start (GTK_BOX (dialog_vbox2), hbox1, TRUE, TRUE, 0);
+-      gtk_box_pack_start (GTK_BOX (vbox1), hbox1, TRUE, TRUE, 0);
+-
+-      label42 = gtk_label_new ("");
+-      gtk_widget_ref (label42);
+-      gtk_object_set_data_full (GTK_OBJECT (configDialog), "label42", 
label42, (GtkDestroyNotify) gtk_widget_unref);
+-      gtk_widget_show (label42);
+-      gtk_box_pack_start (GTK_BOX (vbox1), label42, FALSE, FALSE, 0);
+-
+-
+-      label1 = gtk_label_new ("  Location of usbdevfs devices file");
+-      gtk_widget_ref (label1);
+-      gtk_object_set_data_full (GTK_OBJECT (configDialog), "label1", label1, 
(GtkDestroyNotify) gtk_widget_unref);
+-      gtk_widget_show (label1);
++      dialog = gtk_dialog_new_with_buttons (
++                              "USB View Configuration",
++                              GTK_WINDOW (windowMain),
++                              GTK_DIALOG_DESTROY_WITH_PARENT,
++                              GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
++                              GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,
++                              NULL);
++
++      content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
++
++      hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
++      gtk_container_add (GTK_CONTAINER (content_area), hbox1);
++
++      label1 = gtk_label_new ("Location of usbdevfs devices file");
+       gtk_box_pack_start (GTK_BOX (hbox1), label1, FALSE, FALSE, 5);
+ 
+       fileEntry = gtk_entry_new ();
+-      gtk_widget_ref (fileEntry);
+-      gtk_object_set_data_full (GTK_OBJECT (configDialog), "fileEntry", 
fileEntry, (GtkDestroyNotify) gtk_widget_unref);
+       gtk_entry_set_text (GTK_ENTRY (fileEntry), devicesFile);
+-      gtk_widget_show (fileEntry);
+       gtk_box_pack_start (GTK_BOX (hbox1), fileEntry, TRUE, TRUE, 0);
+ 
+-      dialog_action_area2 = GTK_DIALOG (configDialog)->action_area;
+-      gtk_object_set_data (GTK_OBJECT (configDialog), "dialog_action_area2", 
dialog_action_area2);
+-      gtk_widget_show (dialog_action_area2);
+-      gtk_container_set_border_width (GTK_CONTAINER (dialog_action_area2), 1);
+-
+-      hbuttonbox2 = gtk_hbutton_box_new ();
+-      gtk_widget_ref (hbuttonbox2);
+-      gtk_object_set_data_full (GTK_OBJECT (configDialog), "hbuttonbox2", 
hbuttonbox2, (GtkDestroyNotify) gtk_widget_unref);
+-      gtk_widget_show (hbuttonbox2);
+-      gtk_box_pack_start (GTK_BOX (dialog_action_area2), hbuttonbox2, TRUE, 
TRUE, 11);
+-
+-      okButton = gtk_button_new_with_label ("  OK  ");
+-      gtk_widget_ref (okButton);
+-      gtk_object_set_data_full (GTK_OBJECT (configDialog), "okButton", 
okButton, (GtkDestroyNotify) gtk_widget_unref);
+-      gtk_widget_show (okButton);
+-      gtk_container_add (GTK_CONTAINER (hbuttonbox2), okButton);
+-      GTK_WIDGET_SET_FLAGS (okButton, GTK_CAN_DEFAULT);
+-
+-      cancelButton = gtk_button_new_with_label ("  Cancel  ");
+-      gtk_widget_ref (cancelButton);
+-      gtk_object_set_data_full (GTK_OBJECT (configDialog), "cancelButton", 
cancelButton, (GtkDestroyNotify) gtk_widget_unref);
+-      gtk_widget_show (cancelButton);
+-      gtk_container_add (GTK_CONTAINER (hbuttonbox2), cancelButton);
+-      GTK_WIDGET_SET_FLAGS (cancelButton, GTK_CAN_DEFAULT);
+-
+       fileSelectButton = gtk_button_new_with_label ("...");
+-      gtk_widget_ref (fileSelectButton);
+-      gtk_object_set_data_full (GTK_OBJECT (configDialog), 
"fileSelectButton", fileSelectButton, (GtkDestroyNotify) gtk_widget_unref);
+-      gtk_widget_show (fileSelectButton);
+-
++      g_signal_connect (G_OBJECT (fileSelectButton), "clicked",
++                        G_CALLBACK (fileSelectButtonClick), NULL);
+       gtk_box_pack_start (GTK_BOX (hbox1), fileSelectButton, TRUE, FALSE, 1);
+ 
+-      label43 = gtk_label_new ("    ");
+-      gtk_widget_ref (label43);
+-      gtk_object_set_data_full (GTK_OBJECT (configDialog), "label43", 
label43, (GtkDestroyNotify) gtk_widget_unref);
+-      gtk_widget_show (label43);
+-      gtk_box_pack_start (GTK_BOX (hbox1), label43, FALSE, FALSE, 0);
+-      
+-      gtk_signal_connect (GTK_OBJECT (okButton), "clicked", GTK_SIGNAL_FUNC 
(OkConfigureDialog), configDialog);
+-      gtk_signal_connect (GTK_OBJECT (cancelButton), "clicked", 
GTK_SIGNAL_FUNC (CancelConfigureDialog), configDialog);
+-      gtk_signal_connect (GTK_OBJECT (fileSelectButton), "clicked", 
GTK_SIGNAL_FUNC (fileSelectButtonClick), configDialog);
+-
+-      /* --- Default the "Ok" button --- */
+-      GTK_WIDGET_SET_FLAGS (okButton, GTK_CAN_DEFAULT);
+-      gtk_widget_grab_default (okButton);
+-
+-      gtk_signal_connect (GTK_OBJECT (configDialog), "destroy", 
GTK_SIGNAL_FUNC (ClearShowMessage), NULL);
+-
+-      /* --- Show the dialog --- */
+-      gtk_widget_show (configDialog);
+-
+-      /* --- Only this window can have actions done. --- */
+-      gtk_grab_add (configDialog);
+-
+-      return;
++      gtk_widget_show_all (dialog);
++      result = gtk_dialog_run(GTK_DIALOG (dialog));
++      if (result == GTK_RESPONSE_ACCEPT) {
++              editString = gtk_editable_get_chars (
++                                      GTK_EDITABLE (fileEntry), 0, -1);
++              strcpy (devicesFile, editString);
++              g_free (editString);
++              LoadUSBTree (0);
++      }
++      gtk_widget_destroy (dialog);
+ }
+-
+-
+--- a/configure.in     2007-10-23 02:03:36.000000000 +0200
++++ b/configure.in     2012-06-14 20:25:16.629667442 +0200
+@@ -1,7 +1,7 @@
+ dnl Process this file with autoconf to produce a configure script.
+ 
+ AC_INIT(configure.in)
+-AM_INIT_AUTOMAKE(usbview, 1.0)
++AM_INIT_AUTOMAKE(usbview, 1.1)
+ AM_CONFIG_HEADER(config.h)
+ 
+ # required versions of other packages
+@@ -12,33 +12,10 @@
+ AM_PROG_CC_STDC
+ AC_HEADER_STDC
+ 
+-PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.0.5)
++PKG_CHECK_MODULES(GTK, gtk+-3.0 >= 3.0)
+ AC_SUBST(GTK_FLAGS)
+ AC_SUBST(GTK_LIBS)
+ 
+-
+-dnl Set PACKAGE_LOCALE_DIR in config.h.
+-if test "x${prefix}" = "xNONE"; then
+-  AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, 
"${ac_default_prefix}/${DATADIRNAME}/locale")
+-else
+-  AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${prefix}/${DATADIRNAME}/locale")
+-fi
+-
+-dnl Set PACKAGE_DATA_DIR in config.h.
+-if test "x${datadir}" = 'x${prefix}/share'; then
+-  if test "x${prefix}" = "xNONE"; then
+-    AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, 
"${ac_default_prefix}/share/${PACKAGE}")
+-  else
+-    AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${prefix}/share/${PACKAGE}")
+-  fi
+-else
+-  AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${datadir}/${PACKAGE}")
+-fi
+-
+-dnl Set PACKAGE_SOURCE_DIR in config.h.
+-packagesrcdir=`cd $srcdir && pwd`
+-AC_DEFINE_UNQUOTED(PACKAGE_SOURCE_DIR, "${packagesrcdir}")
+-
+ dnl Use -Wall if we have gcc.
+ changequote(,)dnl
+ if test "x$GCC" = "xyes"; then
+--- a/interface.c      2009-03-11 03:11:47.000000000 +0100
++++ b/interface.c      2012-06-14 21:06:05.000523489 +0200
+@@ -32,15 +32,16 @@
+ #include "usb_icon.xpm"
+ 
+ GtkWidget *treeUSB;
++GtkTreeStore *treeStore;
+ GtkTextBuffer *textDescriptionBuffer;
+ GtkWidget *textDescriptionView;
++GtkWidget *windowMain;
+ 
+ int timer;
+ 
+ GtkWidget*
+ create_windowMain ()
+ {
+-      GtkWidget *windowMain;
+       GtkWidget *vbox1;
+       GtkWidget *hpaned1;
+       GtkWidget *scrolledwindow1;
+@@ -50,68 +51,61 @@
+       GtkWidget *buttonClose;
+       GtkWidget *buttonAbout;
+       GdkPixbuf *icon;
++      GtkCellRenderer *treeRenderer;
++      GtkTreeViewColumn *treeColumn;
+ 
+       windowMain = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+       gtk_widget_set_name (windowMain, "windowMain");
+-      gtk_object_set_data (GTK_OBJECT (windowMain), "windowMain", windowMain);
+       gtk_window_set_title (GTK_WINDOW (windowMain), "USB Viewer");
+-      gtk_window_set_default_size (GTK_WINDOW (windowMain), 500, 300);
++      gtk_window_set_default_size (GTK_WINDOW (windowMain), 600, 300);
+ 
+       icon = gdk_pixbuf_new_from_xpm_data((const char **)usb_icon_xpm);
+       gtk_window_set_icon(GTK_WINDOW(windowMain), icon);
+ 
+-      vbox1 = gtk_vbox_new (FALSE, 0);
++      vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+       gtk_widget_set_name (vbox1, "vbox1");
+-      gtk_widget_ref (vbox1);
+-      gtk_object_set_data_full (GTK_OBJECT (windowMain), "vbox1", vbox1,
+-                                (GtkDestroyNotify) gtk_widget_unref);
+       gtk_widget_show (vbox1);
+       gtk_container_add (GTK_CONTAINER (windowMain), vbox1);
+ 
+-      hpaned1 = gtk_hpaned_new ();
++      hpaned1 = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
+       gtk_widget_set_name (hpaned1, "hpaned1");
+-      gtk_widget_ref (hpaned1);
+-      gtk_object_set_data_full (GTK_OBJECT (windowMain), "hpaned1", hpaned1,
+-                                (GtkDestroyNotify) gtk_widget_unref);
+       gtk_widget_show (hpaned1);
+       gtk_box_pack_start (GTK_BOX (vbox1), hpaned1, TRUE, TRUE, 0);
+-      gtk_paned_set_position (GTK_PANED (hpaned1), 200);
+ 
+-      treeUSB = gtk_ctree_new_with_titles (1, 0, NULL);
++      treeStore = gtk_tree_store_new (N_COLUMNS,
++                              G_TYPE_STRING,  /* NAME_COLUMN */
++                              G_TYPE_INT,     /* DEVICE_ADDR_COLUMN */
++                              G_TYPE_STRING   /* COLOR_COLUMN */);
++      treeUSB = gtk_tree_view_new_with_model (GTK_TREE_MODEL (treeStore));
++      treeRenderer = gtk_cell_renderer_text_new ();
++      treeColumn = gtk_tree_view_column_new_with_attributes (
++                                      "USB devices",
++                                      treeRenderer,
++                                      "text", NAME_COLUMN,
++                                      "foreground", COLOR_COLUMN,
++                                      NULL);
++      gtk_tree_view_append_column (GTK_TREE_VIEW (treeUSB), treeColumn);
+       gtk_widget_set_name (treeUSB, "treeUSB");
+-      gtk_widget_ref (treeUSB);
+-      gtk_object_set_data_full (GTK_OBJECT (windowMain), "treeUSB", treeUSB,
+-                                (GtkDestroyNotify) gtk_widget_unref);
+       gtk_widget_show (treeUSB);
+-      gtk_container_add (GTK_CONTAINER (hpaned1), treeUSB);
+-      gtk_widget_set_usize (treeUSB, 200, -2);
++      gtk_paned_pack1 (GTK_PANED (hpaned1), treeUSB, FALSE, FALSE);
+ 
+       scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
+       gtk_widget_set_name (scrolledwindow1, "scrolledwindow1");
+-      gtk_widget_ref (scrolledwindow1);
+-      gtk_object_set_data_full (GTK_OBJECT (windowMain), "scrolledwindow1", 
scrolledwindow1,
+-                                (GtkDestroyNotify) gtk_widget_unref);
+-      gtk_widget_show (scrolledwindow1);
+-      gtk_container_add (GTK_CONTAINER (hpaned1), scrolledwindow1);
+       gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), 
GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
++      gtk_widget_show (scrolledwindow1);
++      gtk_paned_pack2 (GTK_PANED (hpaned1), scrolledwindow1, TRUE, FALSE);
+ 
+       textDescriptionBuffer = gtk_text_buffer_new(NULL);
+       //textDescription = gtk_text_new (NULL, NULL);
+       textDescriptionView = 
gtk_text_view_new_with_buffer(textDescriptionBuffer);
+       gtk_widget_set_name (textDescriptionView, "textDescription");
+-      gtk_widget_ref (textDescriptionView);
+-      gtk_object_set_data_full (GTK_OBJECT (windowMain), "textDescription", 
textDescriptionView,
+-                                (GtkDestroyNotify) gtk_widget_unref);
+       gtk_text_view_set_editable(GTK_TEXT_VIEW(textDescriptionView), FALSE);
+       gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(textDescriptionView), 
FALSE);
+       gtk_widget_show (textDescriptionView);
+       gtk_container_add (GTK_CONTAINER (scrolledwindow1), 
textDescriptionView);
+ 
+-      hbuttonbox1 = gtk_hbutton_box_new ();
++      hbuttonbox1 = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
+       gtk_widget_set_name (hbuttonbox1, "hbuttonbox1");
+-      gtk_widget_ref (hbuttonbox1);
+-      gtk_object_set_data_full (GTK_OBJECT (windowMain), "hbuttonbox1", 
hbuttonbox1,
+-                                (GtkDestroyNotify) gtk_widget_unref);
+       gtk_widget_show (hbuttonbox1);
+       gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox1, FALSE, FALSE, 5);
+       //gtk_button_box_set_spacing (GTK_BUTTON_BOX (hbuttonbox1), 10);
+@@ -120,58 +115,46 @@
+ 
+       buttonRefresh = gtk_button_new_from_stock(GTK_STOCK_REFRESH);
+       gtk_widget_set_name (buttonRefresh, "buttonRefresh");
+-      gtk_widget_ref (buttonRefresh);
+-      gtk_object_set_data_full (GTK_OBJECT (windowMain), "buttonRefresh", 
buttonRefresh,
+-                                (GtkDestroyNotify) gtk_widget_unref);
+       gtk_widget_show (buttonRefresh);
+       gtk_container_add (GTK_CONTAINER (hbuttonbox1), buttonRefresh);
+       gtk_container_set_border_width (GTK_CONTAINER (buttonRefresh), 4);
+-      GTK_WIDGET_SET_FLAGS (buttonRefresh, GTK_CAN_DEFAULT);
++      gtk_widget_set_can_default (buttonRefresh, TRUE);
+ 
+       buttonConfigure = gtk_button_new_with_label ("Configure...");
+       gtk_widget_set_name (buttonConfigure, "buttonConfigure");
+-      gtk_widget_ref (buttonConfigure);
+-      gtk_object_set_data_full (GTK_OBJECT (windowMain), "buttonConfigure", 
buttonConfigure,
+-                                (GtkDestroyNotify) gtk_widget_unref);
+       gtk_widget_show (buttonConfigure);
+       gtk_container_add (GTK_CONTAINER (hbuttonbox1), buttonConfigure);
+       gtk_container_set_border_width (GTK_CONTAINER (buttonConfigure), 4);
+-      GTK_WIDGET_SET_FLAGS (buttonConfigure, GTK_CAN_DEFAULT);
++      gtk_widget_set_can_default (buttonConfigure, TRUE);
+ 
+       buttonAbout = gtk_button_new_from_stock(GTK_STOCK_ABOUT);
+       gtk_widget_set_name (buttonAbout, "buttonAbout");
+-      gtk_widget_ref (buttonAbout);
+-      gtk_object_set_data_full (GTK_OBJECT (windowMain), "buttonAbout", 
buttonAbout,
+-                                (GtkDestroyNotify) gtk_widget_unref);
+       gtk_widget_show (buttonAbout);
+       gtk_container_add (GTK_CONTAINER (hbuttonbox1), buttonAbout);
+       gtk_container_set_border_width (GTK_CONTAINER (buttonAbout), 4);
+-      GTK_WIDGET_SET_FLAGS (buttonAbout, GTK_CAN_DEFAULT);
++      gtk_widget_set_can_default (buttonAbout, TRUE);
+ 
+       buttonClose = gtk_button_new_from_stock(GTK_STOCK_QUIT);
+       gtk_widget_set_name (buttonClose, "buttonClose");
+-      gtk_widget_ref (buttonClose);
+-      gtk_object_set_data_full (GTK_OBJECT (windowMain), "buttonClose", 
buttonClose,
+-                                (GtkDestroyNotify) gtk_widget_unref);
+       gtk_widget_show (buttonClose);
+       gtk_container_add (GTK_CONTAINER (hbuttonbox1), buttonClose);
+       gtk_container_set_border_width (GTK_CONTAINER (buttonClose), 4);
+-      GTK_WIDGET_SET_FLAGS (buttonClose, GTK_CAN_DEFAULT);
++      gtk_widget_set_can_default (buttonClose, TRUE);
+ 
+-      gtk_signal_connect (GTK_OBJECT (windowMain), "delete_event",
+-                          GTK_SIGNAL_FUNC (on_window1_delete_event),
++      g_signal_connect (G_OBJECT (windowMain), "delete_event",
++                          G_CALLBACK (on_window1_delete_event),
+                           NULL);
+-      gtk_signal_connect (GTK_OBJECT (buttonRefresh), "clicked",
+-                          GTK_SIGNAL_FUNC (on_buttonRefresh_clicked),
++      g_signal_connect (G_OBJECT (buttonRefresh), "clicked",
++                          G_CALLBACK (on_buttonRefresh_clicked),
+                           NULL);
+-      gtk_signal_connect (GTK_OBJECT (buttonConfigure), "clicked",
+-                          GTK_SIGNAL_FUNC (on_buttonConfigure_clicked),
++      g_signal_connect (G_OBJECT (buttonConfigure), "clicked",
++                          G_CALLBACK (on_buttonConfigure_clicked),
+                           NULL);
+-      gtk_signal_connect (GTK_OBJECT (buttonAbout), "clicked",
+-                          GTK_SIGNAL_FUNC (on_buttonAbout_clicked),
++      g_signal_connect (G_OBJECT (buttonAbout), "clicked",
++                          G_CALLBACK (on_buttonAbout_clicked),
+                           NULL);
+-      gtk_signal_connect (GTK_OBJECT (buttonClose), "clicked",
+-                          GTK_SIGNAL_FUNC (on_buttonClose_clicked),
++      g_signal_connect (G_OBJECT (buttonClose), "clicked",
++                          G_CALLBACK (on_buttonClose_clicked),
+                           NULL);
+ 
+       /* create our timer */
+--- a/main.c   2008-06-25 23:03:27.000000000 +0200
++++ b/main.c   2012-06-14 21:06:05.000523489 +0200
+@@ -30,7 +30,6 @@
+ {
+       GtkWidget *window1;
+ 
+-      gtk_set_locale ();
+       gtk_init (&argc, &argv);
+ 
+       initialize_stuff();
+--- a/usbparse.h       2008-06-25 23:03:47.000000000 +0200
++++ b/usbparse.h       2012-06-14 21:06:05.000523489 +0200
+@@ -166,7 +166,7 @@
+       struct Device   *child[MAX_CHILDREN];
+       DeviceBandwidth *bandwidth;
+       GtkWidget       *tree;
+-      GtkCTreeNode    *leaf;
++      GtkTreeIter     leaf;
+ } Device;
+ 
+ 
+--- a/usbtree.c        2012-06-14 21:08:11.672516042 +0200
++++ b/usbtree.c        2012-06-14 21:06:05.000523489 +0200
+@@ -45,7 +45,7 @@
+ 
+       /* blow away the tree if there is one */
+       if (rootDevice != NULL) {
+-              gtk_ctree_remove_node (GTK_CTREE(treeUSB), 
GTK_CTREE_NODE(rootDevice->leaf));
++              gtk_tree_store_clear (treeStore);
+       }
+ 
+       /* clean out the text box */
+@@ -208,32 +208,37 @@
+ }
+ 
+ 
+-void SelectItem (GtkWidget *widget, GtkCTreeNode *node, gint column, gpointer 
userData)
++void SelectItem (GtkTreeSelection *selection, gpointer userData)
+ {
+-      int     data;
+-      data = (int) gtk_ctree_node_get_row_data (GTK_CTREE (widget), node);
+-
+-      PopulateListBox ((int)data);
+-
+-      return;
++      GtkTreeIter iter;
++      GtkTreeModel *model;
++      gint deviceAddr;
++
++      if (gtk_tree_selection_get_selected (selection, &model, &iter)) {
++              gtk_tree_model_get (model, &iter,
++                              DEVICE_ADDR_COLUMN, &deviceAddr,
++                              -1);
++              PopulateListBox (deviceAddr);
++      }
+ }
+ 
+ 
+ static void DisplayDevice (Device *parent, Device *device)
+ {
+       int             i;
+-      gchar           *text[1];
+       int             configNum;
+       int             interfaceNum;
+       gboolean        driverAttached = TRUE;
++      gint            deviceAddr;
++      const gchar     *color = "black";
+ 
+       if (device == NULL)
+               return;
+ 
+       /* build this node */
+-      text[0] = device->name;
+-      device->leaf = gtk_ctree_insert_node (GTK_CTREE(treeUSB), parent->leaf, 
NULL, text, 1, NULL, NULL, NULL, NULL, FALSE, FALSE);
+-      gtk_ctree_node_set_row_data (GTK_CTREE(treeUSB), device->leaf, 
(gpointer)((device->deviceNumber<<8) | (device->busNumber)));
++      deviceAddr = (device->deviceNumber << 8) | device->busNumber;
++      gtk_tree_store_append (treeStore, &device->leaf,
++                             (device->level != 0) ? &parent->leaf : NULL);
+ 
+       /* determine if this device has drivers attached to all interfaces */
+       for (configNum = 0; configNum < MAX_CONFIGS; ++configNum) {
+@@ -252,15 +257,14 @@
+       }
+ 
+       /* change the color of this leaf if there are no drivers attached to it 
*/
+-      if (driverAttached == FALSE) {
+-              GdkColor        red;
+-               
+-              red.red = 56000;
+-              red.green = 0;
+-              red.blue = 0;
+-              red.pixel = 0;
+-              gtk_ctree_node_set_foreground (GTK_CTREE(treeUSB), 
device->leaf, &red);
+-      }
++      if (driverAttached == FALSE)
++              color = "red";
++
++      gtk_tree_store_set (treeStore, &device->leaf,
++                          NAME_COLUMN, device->name,
++                          DEVICE_ADDR_COLUMN, deviceAddr,
++                          COLOR_COLUMN, color,
++                          -1);
+ 
+       /* create all of the children's leafs */
+       for (i = 0; i < MAX_CHILDREN; ++i) {
+@@ -283,11 +287,16 @@
+ 
+ static void FileError (void)
+ {
+-      gchar *tempString = g_malloc0(strlen (verifyMessage) + strlen 
(devicesFile) + 50);
+-      sprintf (tempString, " Can not open the file %s \n\n%s", devicesFile, 
verifyMessage);
+-      ShowMessage ("USBView Error", tempString, FALSE);
+-      g_free (tempString);
+-      return;
++      GtkWidget *dialog;
++
++      dialog = gtk_message_dialog_new (
++                                  GTK_WINDOW (windowMain),
++                                  GTK_DIALOG_DESTROY_WITH_PARENT,
++                                  GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,
++                                  "Can not open the file %s\n\n%s",
++                                  devicesFile, verifyMessage);
++      gtk_dialog_run (GTK_DIALOG (dialog));
++      gtk_widget_destroy (dialog);
+ }
+ 
+ 
+@@ -328,10 +337,6 @@
+       int             finished;
+       int             i;
+ 
+-      if (MessageShown() == TRUE) {
+-              return;
+-      }
+-
+       /* if refresh is selected, then always do a refresh, otherwise look at 
the file first */
+       if (!refresh) {
+               if (!FileHasChanged()) {
+@@ -368,11 +373,5 @@
+       usb_name_devices ();
+ 
+-      /* set up our tree */
+-      gtk_ctree_set_line_style (GTK_CTREE(treeUSB), GTK_CTREE_LINES_DOTTED);
+-      gtk_ctree_set_expander_style (GTK_CTREE(treeUSB), 
GTK_CTREE_EXPANDER_SQUARE);
+-      gtk_ctree_set_indent (GTK_CTREE(treeUSB),10);
+-      gtk_clist_column_titles_passive (GTK_CLIST(treeUSB));
+-
+       /* build our tree */
+       for (i = 0; i < rootDevice->maxChildren; ++i) {
+               DisplayDevice (rootDevice, rootDevice->child[i]);
+@@ -380,11 +386,14 @@
+ 
+       gtk_widget_show (treeUSB);
+ 
+-      gtk_ctree_expand_recursive (GTK_CTREE(treeUSB), NULL);
++      gtk_tree_view_expand_all (GTK_TREE_VIEW (treeUSB));
+ 
+       /* hook up our callback function to this tree if we haven't yet */
+       if (!signal_connected) {
+-              gtk_signal_connect (GTK_OBJECT (treeUSB), "tree-select-row", 
GTK_SIGNAL_FUNC (SelectItem), NULL);
++              GtkTreeSelection *select;
++              select = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeUSB));
++              g_signal_connect (G_OBJECT (select), "changed",
++                                G_CALLBACK (SelectItem), NULL);
+               signal_connected = TRUE;
+       }
+ 
+--- a/usbtree.h        2008-06-25 23:03:52.000000000 +0200
++++ b/usbtree.h        2012-06-14 21:06:05.000523489 +0200
+@@ -21,16 +21,24 @@
+ #ifndef __USB_TREE_H
+ #define __USB_TREE_H
+ 
++enum {
++      NAME_COLUMN,
++      DEVICE_ADDR_COLUMN,
++      COLOR_COLUMN,
++      N_COLUMNS
++};
++
+ extern gchar          devicesFile[1000];
++extern GtkTreeStore   *treeStore;
+ extern GtkWidget      *treeUSB;
+ extern GtkWidget      *textDescriptionView;
+ extern GtkTextBuffer  *textDescriptionBuffer;
++extern GtkWidget      *windowMain;
+ 
+ extern void   LoadUSBTree             (int refresh);
+ extern void   initialize_stuff        (void);
+ extern GtkWidget * create_windowMain  (void);
+ extern void   configure_dialog        (void);
+-extern void   about_dialog            (void);
+ 
+ extern void   on_buttonClose_clicked          (GtkButton *button, gpointer 
user_data);
+ extern gboolean       on_window1_delete_event         (GtkWidget *widget, 
GdkEvent *event, gpointer user_data);
+@@ -39,8 +47,4 @@
+ extern void   on_buttonAbout_clicked          (GtkButton *button, gpointer 
user_data);
+ extern gint   on_timer_timeout                (gpointer user_data);
+ 
+-extern void   ShowMessage     (gchar *title, gchar *message, gboolean 
centered);
+-extern gboolean       MessageShown    (void);
+-
+-
+ #endif        /* __USB_TREE_H */

Added: usbview-1.1-missing-usbfs.patch
===================================================================
--- usbview-1.1-missing-usbfs.patch                             (rev 0)
+++ usbview-1.1-missing-usbfs.patch     2012-10-21 07:39:30 UTC (rev 169431)
@@ -0,0 +1,11 @@
+--- a/usbtree.c        2012-10-21 08:21:35.000000000 +0200
++++ b/usbtree.c        2012-10-21 08:21:12.000000000 +0200
+@@ -397,7 +397,7 @@
+ 
+ void initialize_stuff (void)
+ {
+-      strcpy (devicesFile, "/proc/bus/usb/devices");
++      strcpy (devicesFile, "/sys/kernel/debug/usb/devices");
+       memset (&previousDevicesFile[0], 0x00, sizeof(previousDevicesFile));
+       previousChange = 0;
+ 

Added: usbview.install
===================================================================
--- usbview.install                             (rev 0)
+++ usbview.install     2012-10-21 07:39:30 UTC (rev 169431)
@@ -0,0 +1,11 @@
+post_install() {
+  update-desktop-database -q
+}
+
+post_upgrade() {
+  post_install
+}
+
+post_remove() {
+  post_install
+}

Reply via email to