diff options
| -rw-r--r-- | crash-catcher.spec | 68 | ||||
| -rw-r--r-- | lib/Plugins/Makefile.am | 8 | ||||
| -rw-r--r-- | src/Daemon/CrashWatcher.cpp | 6 | ||||
| -rw-r--r-- | src/Daemon/Makefile.am | 2 | ||||
| -rw-r--r-- | src/Gui/CCDBusBackend.py | 2 | ||||
| -rw-r--r-- | src/Gui/CCMainWindow.py | 6 | ||||
| -rw-r--r-- | src/Gui/CCReporterDialog.py | 13 | ||||
| -rw-r--r-- | src/Gui/cc-gui | 1 | ||||
| -rw-r--r-- | src/Gui/ccgui.glade | 245 |
9 files changed, 312 insertions, 39 deletions
diff --git a/crash-catcher.spec b/crash-catcher.spec index 68b6f5d..dd75b16 100644 --- a/crash-catcher.spec +++ b/crash-catcher.spec @@ -1,7 +1,7 @@ Summary: Automatic bug detection and reporting tool Name: crash-catcher Version: 0.0.1 -Release: 7%{?dist} +Release: 9%{?dist} License: GPLv2+ Group: Applications/System URL: https://fedorahosted.org/crash-catcher/ @@ -9,7 +9,6 @@ Source: crash-catcher-0.0.1.tar.gz Source1: crash-catcher.init BuildRequires: dbus-c++-devel BuildRequires: gtkmm24-devel -BuildRequires: glib2-devel BuildRequires: dbus-glib-devel BuildRequires: rpm-devel >= 4.6 BuildRequires: sqlite-devel > 3.0 @@ -20,20 +19,33 @@ CrashCatcher is a tool to help users to detect defects in applications and to create a bug report with all informations needed by maintainer to fix it. It uses plugin system to extend its functionality. +%package libs +Summary: Libraries for CrashCatcher +Group: System Environment/Libraries + +%description libs +Libraries for CrashCatcher. + +%package devel +Summary: Development libraries for CrashCatcher +Group: Development/Libraries +Requires: %{name}-libs = %{version}-%{release} + +%description devel +Development libraries and headers for CrashCatcher. + %package applet Summary: CrashCatcher's applet Group: User Interface/Desktops -License: GPLv2+ Requires: %{name} = %{version}-%{release} %description applet Simple systray applet to notify user about new events detected by crash-catcher -daemon +daemon. %package gui Summary: CrashCatcher's gui Group: User Interface/Desktops -License: GPLv2+ Requires: %{name} = %{version}-%{release} %description gui @@ -42,7 +54,6 @@ GTK+ wizard for convenient bug reporting. %package addon-ccpp Summary: CrashCatcher's C/C++ addon Group: System Environment/Libraries -License: GPLv2+ Requires: gdb Requires: %{name} = %{version}-%{release} @@ -53,7 +64,6 @@ language plugin. %package plugin-sqlite3 Summary: CrashCatcher's SQLite3 database plugin Group: System Environment/Libraries -License: GPLv2+ Requires: %{name} = %{version}-%{release} %description plugin-sqlite3 @@ -63,7 +73,6 @@ required for creating a bug report. %package plugin-logger Summary: CrashCatcher's logger reporter plugin Group: System Environment/Libraries -License: GPLv2+ Requires: %{name} = %{version}-%{release} %description plugin-logger @@ -72,19 +81,21 @@ The simple reporter plugin, which writes a report to a specified file. %package plugin-mailx Summary: CrashCatcher's mailx reporter plugin Group: System Environment/Libraries -License: GPLv2+ Requires: %{name} = %{version}-%{release} Requires: mailx %description plugin-mailx -The simple reporter plugin, which sends a report via mailx to a specified email. +The simple reporter plugin, which sends a report via mailx to a specified +email. %prep %setup -q %build %configure -make +sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool +sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool +make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT @@ -92,33 +103,44 @@ make install DESTDIR=$RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT/%{_libdir}/lib*.la rm -rf $RPM_BUILD_ROOT/%{_libdir}/crash-catcher/lib*.la -mkdir -p ${RPM_BUILD_ROOT}/etc/rc.d/init.d -install -m 755 %SOURCE1 ${RPM_BUILD_ROOT}/etc/rc.d/init.d/crash-catcher +mkdir -p ${RPM_BUILD_ROOT}/%{_initrddir} +install -m 755 %SOURCE1 ${RPM_BUILD_ROOT}/%{_initrddir}/crash-catcher mkdir -p $RPM_BUILD_ROOT/var/cache/crash-catcher %clean rm -rf $RPM_BUILD_ROOT -%post -/sbin/ldconfig +%post /sbin/chkconfig --add crash-catcher +%post libs -p /sbin/ldconfig + %preun if [ "$1" = 0 ] ; then service crash-catcher stop >/dev/null 2>&1 /sbin/chkconfig --del crash-catcher fi -%postun -p /sbin/ldconfig +%postun libs -p /sbin/ldconfig %files %defattr(-,root,root,-) +%doc README COPYING %{_sbindir}/crash-catcher %config(noreplace) %{_sysconfdir}/crash-catcher/crash-catcher.conf -%{_libdir}/lib*.so* %config(noreplace) %{_sysconfdir}/dbus-1/system.d/dbus-crash-catcher.conf -%config /etc/rc.d/init.d/crash-catcher +%{_initrddir}/crash-catcher %dir /var/cache/crash-catcher +%dir %{_sysconfdir}/%{name} +%dir %{_sysconfdir}/%{name}/plugins + +%files libs +%defattr(-,root,root,-) +%{_libdir}/lib*.so.* + +%files devel +%defattr(-,root,root,-) +%{_libdir}/lib*.so %files applet %defattr(-,root,root,-) @@ -127,8 +149,7 @@ fi %files gui %defattr(-,root,root,-) %{_bindir}/cc-gui -%{_datadir}/crash-catcher/*.py* -%{_datadir}/crash-catcher/*.glade +%{_datadir}/%{name} %files addon-ccpp %defattr(-,root,root,-) @@ -152,6 +173,13 @@ fi %{_libdir}/crash-catcher/libMailx.so* %changelog +* Fri Feb 27 2009 Jiri Moskovcak <jmoskovc@redhat.com> 0.0.1-9 +- fixed few gcc warnings +- added scrolled window for long reports + +* Thu Feb 26 2009 Adam Williamson <awilliam@redhat.com> 0.0.1-8 +- fixes for all issues identified in review + * Thu Feb 26 2009 Jiri Moskovcak <jmoskovc@redhat.com> 0.0.1-7 - Fixed cancel button behaviour in reporter - disabled core file sending diff --git a/lib/Plugins/Makefile.am b/lib/Plugins/Makefile.am index b014f5a..d4c004d 100644 --- a/lib/Plugins/Makefile.am +++ b/lib/Plugins/Makefile.am @@ -7,19 +7,19 @@ dist_pluginsconf_DATA = CCpp.conf Mailx.conf SQLite3.conf Logger.conf # CCpp libCCpp_la_SOURCES = CCpp.cpp CCpp.h -libCCpp_la_LDFLAGS = -version-info 0:1:0 +libCCpp_la_LDFLAGS = -avoid-version libCCpp_la_CPPFLAGS = -I$(srcdir)/../MiddleWare -I$(srcdir)/../Utils -DCCPP_HOOK_PATH=\"${libexecdir}/hookCCpp\" # Mailx libMailx_la_SOURCES = Mailx.cpp Mailx.h -libMailx_la_LDFLAGS = -version-info 0:1:0 +libMailx_la_LDFLAGS = -avoid-version # SQLite3 libSQLite3_la_SOURCES = SQLite3.cpp SQLite3.h -libSQLite3_la_LDFLAGS = -version-info 0:1:0 +libSQLite3_la_LDFLAGS = -avoid-version libSQLite3_la_LIBADD = $(SQLITE3_LIBS) libSQLite3_la_CPPFLAGS = -I$(srcdir)/../MiddleWare -I$(srcdir)/../Utils $(SQLITE3_CFLAGS) # Logger libLogger_la_SOURCES = Logger.cpp Logger.h -libLogger_la_LDFLAGS = -version-info 0:1:0 +libLogger_la_LDFLAGS = -avoid-version diff --git a/src/Daemon/CrashWatcher.cpp b/src/Daemon/CrashWatcher.cpp index d524e99..c06ad01 100644 --- a/src/Daemon/CrashWatcher.cpp +++ b/src/Daemon/CrashWatcher.cpp @@ -44,7 +44,7 @@ gboolean CCrashWatcher::handle_event_cb(GIOChannel *gio, GIOCondition condition, //char *buf = malloc(INOTIFY_BUFF_SIZE; char *buf = new char[INOTIFY_BUFF_SIZE]; gsize len; - int i = 0; + gsize i = 0; err = g_io_channel_read (gio, buf, INOTIFY_BUFF_SIZE, &len); if (err != G_IO_ERROR_NONE) { g_warning ("Error reading inotify fd: %d\n", err); @@ -52,7 +52,7 @@ gboolean CCrashWatcher::handle_event_cb(GIOChannel *gio, GIOCondition condition, } /* reconstruct each event and send message to the dbus */ while (i < len) { - const char *name; + const char *name = NULL; struct inotify_event *event; event = (struct inotify_event *) &buf[i]; @@ -220,8 +220,6 @@ void CCrashWatcher::StartWatch() /* daemon loop with glib */ void CCrashWatcher::GStartWatch() { - char action[FILENAME_MAX]; - struct inotify_event *pevent; g_io_add_watch (m_nGio, G_IO_IN, handle_event_cb, this); //enter the event loop g_main_run (m_nMainloop); diff --git a/src/Daemon/Makefile.am b/src/Daemon/Makefile.am index a9486bc..8a88fbc 100644 --- a/src/Daemon/Makefile.am +++ b/src/Daemon/Makefile.am @@ -1,7 +1,7 @@ sbin_PROGRAMS = crash-catcher crash_catcher_SOURCES = CrashWatcher.cpp CrashWatcher.h Daemon.cpp DBusServerProxy.h \ DBusCommon.h -crash_catcher_CPPFLAGS = -I../../lib/MiddleWare\ +crash_catcher_CPPFLAGS = -Wall -Werror -I../../lib/MiddleWare\ -I../../lib/DBus \ -DDEBUG_DUMPS_DIR=\"$(DEBUG_DUMPS_DIR)\" $(DBUS_GLIB_CFLAGS) $(DBUSCPP_CFLAGS) \ -DPLUGINS_LIB_DIR=\"$(PLUGINS_LIB_DIR)\" \ diff --git a/src/Gui/CCDBusBackend.py b/src/Gui/CCDBusBackend.py index 2235e78..f1d6ed1 100644 --- a/src/Gui/CCDBusBackend.py +++ b/src/Gui/CCDBusBackend.py @@ -1,5 +1,3 @@ -#!/usr/bin/env python - import dbus import gobject from dbus.mainloop.glib import DBusGMainLoop diff --git a/src/Gui/CCMainWindow.py b/src/Gui/CCMainWindow.py index ab2e171..0c589f6 100644 --- a/src/Gui/CCMainWindow.py +++ b/src/Gui/CCMainWindow.py @@ -1,5 +1,3 @@ -#!/usr/bin/env python - import sys import pygtk pygtk.require("2.0") @@ -14,7 +12,6 @@ from CCReport import Report def cb(self, *args): pass - class MainWindow(): def __init__(self): try: @@ -146,8 +143,7 @@ class MainWindow(): def on_bQuit_clicked(self, button): gtk.main_quit() - - + if __name__ == "__main__": cc = MainWindow() cc.hydrate() diff --git a/src/Gui/CCReporterDialog.py b/src/Gui/CCReporterDialog.py index 26a6b09..4119d11 100644 --- a/src/Gui/CCReporterDialog.py +++ b/src/Gui/CCReporterDialog.py @@ -1,6 +1,6 @@ import pygtk pygtk.require("2.0") -import gtk +import gtk #, pango import gtk.glade import sys from CC_gui_functions import * @@ -35,6 +35,8 @@ class ReporterDialog(): self.tvReport.append_column(column) renderer = gtk.CellRendererText() + #renderer.props.wrap_mode = pango.WRAP_WORD + #renderer.props.wrap_width = 600 column = gtk.TreeViewColumn('Value', renderer, text=1, editable=2) self.tvReport.append_column(column) renderer.connect('edited',self.column_edited,self.reportListStore) @@ -43,8 +45,15 @@ class ReporterDialog(): #self.wTree.get_widget("bApply").connect("clicked", self.on_apply_clicked, self.tvReport) #self.wTree.get_widget("bCancel").connect("clicked", self.on_cancel_clicked, self.tvReport) + self.tvReport.connect_after("size-allocate", self.on_window_resize) + self.hydrate() - + + def on_window_resize(self, treeview, allocation): + # multine support + pass + #print allocation + def column_edited(self, cell, path, new_text, model): # 1 means the second cell model[path][1] = new_text diff --git a/src/Gui/cc-gui b/src/Gui/cc-gui index f11d434..cd6339f 100644 --- a/src/Gui/cc-gui +++ b/src/Gui/cc-gui @@ -1,3 +1,4 @@ +#! /bin/sh export PYTHONPATH=/usr/share/crash-catcher export XLOGNAME=$LOGNAME exec /usr/bin/python /usr/share/crash-catcher/CCMainWindow.py "$@" diff --git a/src/Gui/ccgui.glade b/src/Gui/ccgui.glade index 71bad72..8fbd946 100644 --- a/src/Gui/ccgui.glade +++ b/src/Gui/ccgui.glade @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd"> -<!--Generated with glade3 3.4.5 on Thu Feb 26 16:44:05 2009 --> +<!--Generated with glade3 3.4.5 on Thu Feb 26 21:58:05 2009 --> <glade-interface> <widget class="GtkWindow" id="main_window"> <property name="default_width">640</property> @@ -708,4 +708,247 @@ </widget> </child> </widget> + <widget class="GtkWindow" id="main_window2"> + <property name="title" translatable="yes">Crash-catcher</property> + <property name="window_position">GTK_WIN_POS_CENTER</property> + <child> + <widget class="GtkVBox" id="vbox4"> + <property name="visible">True</property> + <child> + <widget class="GtkMenuBar" id="menubar2"> + <property name="visible">True</property> + <child> + <widget class="GtkMenuItem" id="menuitem5"> + <property name="visible">True</property> + <property name="label" translatable="yes">_File</property> + <property name="use_underline">True</property> + <child> + <widget class="GtkMenu" id="menu4"> + <property name="visible">True</property> + <child> + <widget class="GtkImageMenuItem" id="imagemenuitem11"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-new</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="imagemenuitem12"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-open</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="imagemenuitem13"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-save</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="imagemenuitem14"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-save-as</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </widget> + </child> + <child> + <widget class="GtkSeparatorMenuItem" id="separatormenuitem2"> + <property name="visible">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="imagemenuitem15"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-quit</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </widget> + </child> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkMenuItem" id="menuitem6"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Edit</property> + <property name="use_underline">True</property> + <child> + <widget class="GtkMenu" id="menu5"> + <property name="visible">True</property> + <child> + <widget class="GtkImageMenuItem" id="imagemenuitem16"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-cut</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="imagemenuitem17"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-copy</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="imagemenuitem18"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-paste</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="imagemenuitem19"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-delete</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </widget> + </child> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkMenuItem" id="menuitem7"> + <property name="visible">True</property> + <property name="label" translatable="yes">_View</property> + <property name="use_underline">True</property> + </widget> + </child> + <child> + <widget class="GtkMenuItem" id="menuitem8"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Help</property> + <property name="use_underline">True</property> + <child> + <widget class="GtkMenu" id="menu6"> + <property name="visible">True</property> + <child> + <widget class="GtkImageMenuItem" id="imagemenuitem20"> + <property name="visible">True</property> + <property name="label" translatable="yes">gtk-about</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </widget> + </child> + </widget> + </child> + </widget> + </child> + </widget> + <packing> + <property name="expand">False</property> + </packing> + </child> + <child> + <widget class="GtkHBox" id="hbox8"> + <property name="visible">True</property> + <child> + <widget class="GtkHBox" id="hbox9"> + <property name="visible">True</property> + <property name="spacing">10</property> + <property name="homogeneous">True</property> + <child> + <widget class="GtkButton" id="bDelet"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="label" translatable="yes">gtk-delete</property> + <property name="use_stock">True</property> + <property name="response_id">0</property> + </widget> + </child> + <child> + <widget class="GtkButton" id="button1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="label" translatable="yes">button</property> + <property name="response_id">0</property> + </widget> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <widget class="GtkAlignment" id="alignment1"> + <property name="visible">True</property> + <child> + <placeholder/> + </child> + </widget> + <packing> + <property name="position">2</property> + </packing> + </child> + </widget> + </child> + <child> + <widget class="GtkHBox" id="hbox10"> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <child> + <widget class="GtkAlignment" id="alignment2"> + <property name="visible">True</property> + <child> + <placeholder/> + </child> + </widget> + </child> + <child> + <widget class="GtkButton" id="bQui"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="label" translatable="yes">gtk-quit</property> + <property name="use_stock">True</property> + <property name="response_id">0</property> + </widget> + <packing> + <property name="position">1</property> + </packing> + </child> + </widget> + <packing> + <property name="position">1</property> + </packing> + </child> + </widget> + <packing> + <property name="expand">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <widget class="GtkTreeView" id="tvDump"> + <property name="visible">True</property> + <property name="can_focus">True</property> + </widget> + <packing> + <property name="position">2</property> + </packing> + </child> + <child> + <widget class="GtkStatusbar" id="statusbar1"> + <property name="visible">True</property> + <property name="spacing">2</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="position">3</property> + </packing> + </child> + </widget> + </child> + </widget> </glade-interface> |
