summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiri Moskovcak <jmoskovc@redhat.com>2010-02-09 14:19:05 +0100
committerJiri Moskovcak <jmoskovc@redhat.com>2010-02-09 14:19:05 +0100
commitad1f63fb9b20372e685c6de3b90b36d73df54b4a (patch)
tree8f575495913d2fde6e3b72ca0290802b4c98899d
parent168a45c78ad4aaa62f5d81d3d41df3d6c74432b6 (diff)
parent58bb1d4c39140e9bcec0b96c5b01f71dafe06d10 (diff)
Merge branch 'master' into rhel6
-rw-r--r--abrt.init10
-rw-r--r--doc/HOW_TO_TEST15
-rw-r--r--inc/CrashTypes.h3
-rw-r--r--lib/Plugins/Python.cpp23
-rw-r--r--lib/Utils/make_descr.cpp1
-rw-r--r--po/es.po100
-rwxr-xr-xsrc/Backtrace/abrt-bz-dupchecker15
-rw-r--r--src/Gui/PluginsSettingsDialog.py2
-rw-r--r--src/Gui/ccgui.glade2
9 files changed, 104 insertions, 67 deletions
diff --git a/abrt.init b/abrt.init
index 6256767..c286c64 100644
--- a/abrt.init
+++ b/abrt.init
@@ -11,7 +11,7 @@
# Default-Stop: 0 1 2 6
# Default-Start: 3 5
# Short-Description: start and stop abrt daemon
-# Description: Listen and dispatch crash events
+# Description: Listen to and dispatch crash events
### END INIT INFO
# Source function library.
@@ -21,12 +21,18 @@ LOCK="/var/lock/subsys/abrtd"
RETVAL=0
#
+# Set these variables if you are behind proxy
+#
+#export http_proxy=
+#export https_proxy=
+
+#
# See how we were called.
#
check() {
# Check that we're a privileged user
- [ `id -u` = 0 ] || exit 4
+ [ "`id -u`" = 0 ] || exit 4
# Check if abrt is executable
test -x $ABRT_BIN || exit 5
diff --git a/doc/HOW_TO_TEST b/doc/HOW_TO_TEST
index d11c6d8..05641b1 100644
--- a/doc/HOW_TO_TEST
+++ b/doc/HOW_TO_TEST
@@ -4,7 +4,9 @@ I. Build and install
===================
a) build the packages as scratch in koji
b) download and install (the best is to create a local repo and try to install it using yum)
-c) start the daemon and check logs for any sign of a problem
+c) create a repository and try to update from previous packages
+d) start the daemon and check logs for any sign of a problem
+e) try to update from previous Fedora version using created repository
II. Crash detection
=====================
@@ -16,7 +18,9 @@ II. Crash detection
== 2. Advanced crash detection ==
a) crash some app that comes from unsigned package - abrt should ignore it
- b) disable the gpg chcek and try repeat step a) - abrt shouldn't ignore it
+ b) disable the gpg check and try repeat step a) - abrt shouldn't ignore it
+
+- try to add some crash-time action and test if it works
III. Reporting
=============
@@ -29,4 +33,9 @@ III. Reporting
- crash should be reported after filling the right credentials
- login+pass won't be saved
c) try to report every supported crash abrt detects C/C++, oops, python script
- d) repeat this with cli
+ d) try to report some crash with bad backtrace - this should fail
+ e) repeat this with cli
+
+- test reporting with all reporters plugins like: ticketuploader, filetransport, etc..
+ repeating the step 'a' to 'e'
+
diff --git a/inc/CrashTypes.h b/inc/CrashTypes.h
index b14413d..af106cf 100644
--- a/inc/CrashTypes.h
+++ b/inc/CrashTypes.h
@@ -26,9 +26,6 @@
#define FILENAME_KERNEL "kernel"
#define FILENAME_TIME "time"
#define FILENAME_UID "uid"
-// uuid _file_ exists for Python analyzer only - remove, follow ccpp's example?
-// (ccpp keeps uuid in DB)
-#define FILENAME_UUID "uuid"
#define FILENAME_PACKAGE "package"
#define FILENAME_COMPONENT "component"
#define FILENAME_DESCRIPTION "description"
diff --git a/lib/Plugins/Python.cpp b/lib/Plugins/Python.cpp
index d6a3084..12cc47e 100644
--- a/lib/Plugins/Python.cpp
+++ b/lib/Plugins/Python.cpp
@@ -38,7 +38,27 @@ string CAnalyzerPython::GetLocalUUID(const char *pDebugDumpDir)
unsigned char hash2[MD5_RESULT_LEN];
md5_ctx_t md5ctx;
md5_begin(&md5ctx);
- md5_hash(bt_str, bt_end - bt_str, &md5ctx);
+ // Better:
+ // "example.py:1:<module>:ZeroDivisionError: integer division or modulo by zero"
+ //md5_hash(bt_str, bt_end - bt_str, &md5ctx);
+ // For now using compat version:
+ {
+ char *copy = xstrndup(bt_str, bt_end - bt_str);
+ char *s = copy;
+ char *d = copy;
+ unsigned colon_cnt = 0;
+ while (*s && colon_cnt < 3) {
+ if (*s != ':')
+ *d++ = *s;
+ else
+ colon_cnt++;
+ s++;
+ }
+ // "example.py1<module>"
+ md5_hash(copy, d - copy, &md5ctx);
+//*d = '\0'; log("str:'%s'", copy);
+ free(copy);
+ }
md5_end(hash2, &md5ctx);
// Hash is MD5_RESULT_LEN bytes long, but we use only first 4
@@ -56,7 +76,6 @@ string CAnalyzerPython::GetLocalUUID(const char *pDebugDumpDir)
//log("hash2:%s str:'%.*s'", hash_str, (int)(bt_end - bt_str), bt_str);
return hash_str;
-
}
string CAnalyzerPython::GetGlobalUUID(const char *pDebugDumpDir)
{
diff --git a/lib/Utils/make_descr.cpp b/lib/Utils/make_descr.cpp
index c2821a5..6a1deda 100644
--- a/lib/Utils/make_descr.cpp
+++ b/lib/Utils/make_descr.cpp
@@ -71,7 +71,6 @@ static void add_content(bool &was_multiline, string& description, const char *he
static const char *const blacklisted_items_bz[] = {
FILENAME_TIME ,
FILENAME_UID ,
- FILENAME_UUID ,
FILENAME_ANALYZER ,
FILENAME_COREDUMP ,
FILENAME_DESCRIPTION, /* package description - basically useless */
diff --git a/po/es.po b/po/es.po
index 07092ea..7f02f3f 100644
--- a/po/es.po
+++ b/po/es.po
@@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: abrt.master.es\n"
"Report-Msgid-Bugs-To: jmoskovc@redhat.com\n"
-"POT-Creation-Date: 2010-02-04 10:01+0000\n"
-"PO-Revision-Date: 2010-02-04 10:19-0300\n"
-"Last-Translator: Claudio Rodrigo Pereyra Diaz <claudio@pereyradiaz.com.ar>\n"
+"POT-Creation-Date: 2010-02-09 10:00+0000\n"
+"PO-Revision-Date: 2010-02-09 09:23-0400\n"
+"Last-Translator: Dennis Tobar <dennis.tobar@gmail.com>\n"
"Language-Team: Fedora Spanish <fedora-trans-es@redhat.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -26,7 +26,7 @@ msgstr "Otro cliente ya está siendo ejecutado, intentando despertarlo."
#: ../src/Gui/ABRTExceptions.py:13
msgid "Got unexpected data from daemon (is the database properly updated?)."
-msgstr "Se obtienen datos inesperados desde el demonio (¿está la Base de Datos correctamente actualizada?)"
+msgstr "Se obtienen datos inesperados desde el demonio (¿está la base de datos correctamente actualizada?)"
#: ../src/Gui/ABRTPlugin.py:62
msgid "Not loaded plugins"
@@ -46,7 +46,7 @@ msgstr "Complementos de informes"
#: ../src/Gui/ABRTPlugin.py:66
msgid "Database plugins"
-msgstr "Complementos de Bases de Datos"
+msgstr "Complementos de bases de datos"
#: ../src/Gui/CCDBusBackend.py:74
#: ../src/Gui/CCDBusBackend.py:97
@@ -185,7 +185,7 @@ msgid ""
"Error while loading the dumplist.\n"
"%s"
msgstr ""
-"Error intentando cargar la lista de volcado.\n"
+"Error intentando cargar la lista de volcado.\n"
"%s"
#: ../src/Gui/CCMainWindow.py:230
@@ -205,7 +205,7 @@ msgid ""
"Unable to get report!\n"
"Debuginfo is missing?"
msgstr ""
-"Incapaz de conseguir el informe!\n"
+"¡Incapaz de conseguir el informe!\n"
"¿Falta la información de la depuración?"
#: ../src/Gui/CCMainWindow.py:318
@@ -277,7 +277,7 @@ msgstr "No se encuentra el control visual de PluginDialog en la descripción de
#: ../src/Gui/PluginSettingsUI.py:24
#, python-format
msgid "No UI for plugin %s"
-msgstr "No hay interfase del usuario para el complemento %s"
+msgstr "No hay interfaz de usuario para el complemento %s"
#: ../src/Gui/PluginSettingsUI.py:55
#: ../src/Gui/PluginSettingsUI.py:81
@@ -318,31 +318,31 @@ msgstr "<span color=\"white\">Arquitectura</span>"
#: ../src/Gui/report.glade.h:8
msgid "<span fgcolor=\"blue\">Cmdline:</span>"
-msgstr "<span color=\"white\">Línea de comandos</span>"
+msgstr "<span color=\"white\">Línea de comandos:</span>"
#: ../src/Gui/report.glade.h:9
msgid "<span fgcolor=\"blue\">Component:</span>"
-msgstr "<span color=\"white\">Componente</span>"
+msgstr "<span color=\"white\">Componente:</span>"
#: ../src/Gui/report.glade.h:10
msgid "<span fgcolor=\"blue\">Executable:</span>"
-msgstr "<span color=\"white\">Ejecutable</span>"
+msgstr "<span color=\"white\">Ejecutable:</span>"
#: ../src/Gui/report.glade.h:11
msgid "<span fgcolor=\"blue\">Kernel:</span>"
-msgstr "<span color=\"white\">Núcleo</span>"
+msgstr "<span color=\"white\">Núcleo:</span>"
#: ../src/Gui/report.glade.h:12
msgid "<span fgcolor=\"blue\">Package:</span>"
-msgstr "<span color=\"white\">Paquete</span>"
+msgstr "<span color=\"white\">Paquete:</span>"
#: ../src/Gui/report.glade.h:13
msgid "<span fgcolor=\"blue\">Reason:</span>"
-msgstr "<span color=\"white\">Razón</span>"
+msgstr "<span color=\"white\">Razón:</span>"
#: ../src/Gui/report.glade.h:14
msgid "<span fgcolor=\"blue\">Release:</span>"
-msgstr "<span color=\"white\">Release</span>"
+msgstr "<span color=\"white\">Release:</span>"
#: ../src/Gui/report.glade.h:16
msgid "I checked backtrace and removed sensitive data (passwords, etc)"
@@ -354,7 +354,7 @@ msgstr "N/A"
#: ../src/Gui/report.glade.h:18
msgid "Send report"
-msgstr "Enviando informe"
+msgstr "Enviar informe"
#: ../src/Gui/report.glade.h:19
msgid "Show log"
@@ -427,7 +427,7 @@ msgstr "Cron"
#: ../src/Gui/settings.glade.h:13
msgid "Database backend: "
-msgstr "Backend de la Base de Datos"
+msgstr "Backend de la base de datos"
#: ../src/Gui/settings.glade.h:14
msgid "Description:"
@@ -465,70 +465,70 @@ msgstr "Página Web:"
msgid "View and report application crashes"
msgstr "Ver y reportar las caídas de las aplicaciones"
-#: ../src/Applet/Applet.cpp:78
+#: ../src/Applet/Applet.cpp:77
#, c-format
msgid "A crash in package %s has been detected"
msgstr "Ha sido detectado una caída en el paquete %s."
-#: ../src/Applet/Applet.cpp:253
+#: ../src/Applet/Applet.cpp:252
msgid "ABRT service is not running"
msgstr "El servicio ABRT no se está ejecutando"
-#: ../src/Applet/CCApplet.cpp:200
+#: ../src/Applet/CCApplet.cpp:199
msgid "Warning"
msgstr "Aviso"
-#: ../src/Daemon/Daemon.cpp:474
+#: ../src/Daemon/Daemon.cpp:483
msgid "Report size exceeded the quota. Please check system's MaxCrashReportsSize value in abrt.conf."
msgstr "El tamaño del informe excede la cuota. Por favor, verifique el valor de MaxCrashReportsSize del sistema en abrt.conf."
-#: ../lib/Plugins/Bugzilla.cpp:124
+#: ../lib/Plugins/Bugzilla.cpp:142
msgid "Missing member 'reporter'"
msgstr "No se encuentra el miembro 'informante'"
-#: ../lib/Plugins/Bugzilla.cpp:176
+#: ../lib/Plugins/Bugzilla.cpp:194
msgid "Missing member 'cc'"
msgstr "Facltante de miembro 'cc'"
-#: ../lib/Plugins/Bugzilla.cpp:262
+#: ../lib/Plugins/Bugzilla.cpp:280
#, c-format
msgid "Bug is already reported: %i"
msgstr "El error ya ha sido informado: %i"
-#: ../lib/Plugins/Bugzilla.cpp:274
+#: ../lib/Plugins/Bugzilla.cpp:292
msgid "Missing member 'bug_id'"
msgstr "Faltante de miembro 'bug_id'"
-#: ../lib/Plugins/Bugzilla.cpp:283
+#: ../lib/Plugins/Bugzilla.cpp:301
msgid "Missing member 'bugs'"
msgstr "Faltante de miembro 'bugs'"
-#: ../lib/Plugins/Bugzilla.cpp:346
+#: ../lib/Plugins/Bugzilla.cpp:370
#, c-format
msgid "New bug id: %i"
msgstr "Nuevo id del error: %i"
-#: ../lib/Plugins/Bugzilla.cpp:440
+#: ../lib/Plugins/Bugzilla.cpp:464
msgid "Checking for duplicates..."
msgstr "Chequeando si hay duplicados..."
-#: ../lib/Plugins/Bugzilla.cpp:446
+#: ../lib/Plugins/Bugzilla.cpp:470
msgid "Empty login and password. Please check Bugzilla.conf"
-msgstr "Usuario y contraseña vacios. Por favor compruebe el archivo Bugzilla.conf"
+msgstr "Usuario y contraseña vacíos. Por favor compruebe el archivo Bugzilla.conf"
-#: ../lib/Plugins/Bugzilla.cpp:449
+#: ../lib/Plugins/Bugzilla.cpp:473
msgid "Logging into bugzilla..."
msgstr "Ingresando a bugzilla..."
-#: ../lib/Plugins/Bugzilla.cpp:454
+#: ../lib/Plugins/Bugzilla.cpp:478
msgid "Checking CC..."
msgstr "Chequeando CC..."
-#: ../lib/Plugins/Bugzilla.cpp:465
+#: ../lib/Plugins/Bugzilla.cpp:489
msgid "Creating new bug..."
msgstr "Creando un nuevo informe..."
-#: ../lib/Plugins/Bugzilla.cpp:469
+#: ../lib/Plugins/Bugzilla.cpp:493
msgid "Logging out..."
msgstr "Saliendo..."
@@ -536,23 +536,19 @@ msgstr "Saliendo..."
msgid "Getting local universal unique identification"
msgstr "Obteniendo la identificación única universal local"
-#: ../lib/Plugins/CCpp.cpp:253
+#: ../lib/Plugins/CCpp.cpp:266
msgid "Generating backtrace"
msgstr "Generando seguimiento..."
-#: ../lib/Plugins/CCpp.cpp:415
+#: ../lib/Plugins/CCpp.cpp:428
msgid "Starting debuginfo installation"
msgstr "Iniciando la instalación de la información de depuración"
-#: ../lib/Plugins/CCpp.cpp:564
-msgid "Getting local universal unique identification..."
-msgstr "Obteniendo la identificación única universal local..."
-
-#: ../lib/Plugins/CCpp.cpp:613
+#: ../lib/Plugins/CCpp.cpp:624
msgid "Getting global universal unique identification..."
msgstr "Obteniendo la identificación única universal global..."
-#: ../lib/Plugins/CCpp.cpp:791
+#: ../lib/Plugins/CCpp.cpp:802
msgid "Skipping debuginfo installation"
msgstr "Omita la instalación de la información de depuración"
@@ -560,30 +556,30 @@ msgstr "Omita la instalación de la información de depuración"
msgid "Creating and submitting a report..."
msgstr "Creando y enviando un informe..."
-#: ../lib/Plugins/Logger.cpp:76
+#: ../lib/Plugins/Logger.cpp:73
#, c-format
msgid "Writing report to '%s'"
msgstr "Escribiendo reporte en '%s'"
-#: ../lib/Plugins/FileTransfer.cpp:54
+#: ../lib/Plugins/FileTransfer.cpp:53
msgid "FileTransfer: URL not specified"
msgstr "Transferencia de archivo: URL no especificada"
-#: ../lib/Plugins/FileTransfer.cpp:58
+#: ../lib/Plugins/FileTransfer.cpp:57
#, c-format
msgid "Sending archive %s to %s"
msgstr "Enviando archivo %s a %s"
-#: ../lib/Plugins/FileTransfer.cpp:289
+#: ../lib/Plugins/FileTransfer.cpp:288
msgid "File Transfer: Creating a report..."
msgstr "Transferencia de archivo: Creando un informe..."
-#: ../lib/Plugins/FileTransfer.cpp:323
+#: ../lib/Plugins/FileTransfer.cpp:322
#, c-format
msgid "Can't create and send an archive: %s"
msgstr "No se puede crear y enviar un archivo: %s"
-#: ../lib/Plugins/FileTransfer.cpp:352
+#: ../lib/Plugins/FileTransfer.cpp:351
#, c-format
msgid "Can't create and send an archive %s"
msgstr "No se puede crear y enviar un archivo %s"
@@ -592,19 +588,21 @@ msgstr "No se puede crear y enviar un archivo %s"
msgid "Creating kernel oops crash reports..."
msgstr "Creando un informe de caída de kernel oops..."
-#: ../lib/Plugins/Mailx.cpp:137
+#: ../lib/Plugins/Mailx.cpp:134
msgid "Sending an email..."
msgstr "Enviando un correo..."
-#: ../lib/Plugins/SOSreport.cpp:103
+#: ../lib/Plugins/SOSreport.cpp:101
#, c-format
msgid "Running sosreport: %s"
msgstr "Corriendo sosreport: %s"
-#: ../lib/Plugins/SOSreport.cpp:109
+#: ../lib/Plugins/SOSreport.cpp:107
msgid "Done running sosreport"
msgstr "Sosreport ya esta corriendo"
+#~ msgid "Getting local universal unique identification..."
+#~ msgstr "Obteniendo la identificación única universal local..."
#~ msgid "Global Settings"
#~ msgstr "Preferencias globales"
#~ msgid "Settings"
diff --git a/src/Backtrace/abrt-bz-dupchecker b/src/Backtrace/abrt-bz-dupchecker
index cbdafc5..cb11bf1 100755
--- a/src/Backtrace/abrt-bz-dupchecker
+++ b/src/Backtrace/abrt-bz-dupchecker
@@ -25,6 +25,8 @@ import sys
import os.path
import subprocess
import cPickle
+import urllib
+import json
parser = OptionParser(version="%prog 1.0")
parser.add_option("-u", "--user", dest="user",
@@ -87,6 +89,7 @@ for buginfo in buginfos:
if ids.has_key(buginfo.bug_id):
continue
+
ids[buginfo.bug_id] = True
if not buginfo.bug_status in ["NEW", "ASSIGNED", "MODIFIED", "VERIFIED"]:
@@ -177,9 +180,17 @@ print "------------------------------"
for backtrace, components in database.items():
for component, bugitems in components.items():
if len(bugitems) > 1:
+ # Get the component owner
+ component_info = json.load(urllib.urlopen("https://admin.fedoraproject.org/pkgdb/packages/name/{0}?tg_format=json".format(buginfo.component)))
+ component_packages = component_info['packageListings']
+ component_f12 = filter(lambda x:x["collection"]["version"]=="12", component_packages)
+ owner = "Failed to get component owner"
+ if len(component_f12) == 1:
+ owner = component_f12["owner"]
+
if options.wiki:
print "----"
- print "* component: '''{0}'''".format(component)
+ print "* component: '''{0}''' ({1})".format(component, owner)
print "* duplicates: {0}".format(
reduce(lambda x,y: x+", "+y,
map(lambda x: "#[https://bugzilla.redhat.com/show_bug.cgi?id={0} {0}] ({1} comments)".format(x['id'],x['comments']),
@@ -188,7 +199,7 @@ for backtrace, components in database.items():
for line in backtrace.replace("Thread\n", "").splitlines():
print "*# {0}".format(line)
else:
- print "Component: {0}".format(component)
+ print "Component: {0} ({1})".format(component, owner)
print "Duplicates: {0}".format(
reduce(lambda x,y: x+", "+y,
map(lambda x: "{0} ({1})".format(x['id'],x['comments']),
diff --git a/src/Gui/PluginsSettingsDialog.py b/src/Gui/PluginsSettingsDialog.py
index 0ba390d..d6129b1 100644
--- a/src/Gui/PluginsSettingsDialog.py
+++ b/src/Gui/PluginsSettingsDialog.py
@@ -141,7 +141,7 @@ class PluginsSettingsDialog:
def on_bConfigurePlugin_clicked(self, button, pluginview):
pluginsListStore, path = pluginview.get_selection().get_selected_rows()
if not path:
- self.builder.get_object("lDescription").set_label(_("Can't get plugin description"))
+ gui_info_dialog(_("Please select a plugin from the list to edit it's options."), self.window)
return
# this should work until we keep the row object in the last position
pluginfo = pluginsListStore.get_value(pluginsListStore.get_iter(path[0]), pluginsListStore.get_n_columns()-1)
diff --git a/src/Gui/ccgui.glade b/src/Gui/ccgui.glade
index 78e5fd9..0b51334 100644
--- a/src/Gui/ccgui.glade
+++ b/src/Gui/ccgui.glade
@@ -207,7 +207,6 @@ Patrick Connelly &lt;pcon@fedoraproject.org&gt;</property>
<child>
<widget class="GtkToolbar" id="toolbar1">
<property name="visible">True</property>
- <property name="toolbar_style">both</property>
<child>
<widget class="GtkToolButton" id="bDelete">
<property name="visible">True</property>
@@ -224,7 +223,6 @@ Patrick Connelly &lt;pcon@fedoraproject.org&gt;</property>
<child>
<widget class="GtkToolButton" id="bReport">
<property name="visible">True</property>
- <property name="sensitive">False</property>
<property name="tooltip" translatable="yes">Report</property>
<property name="label" translatable="yes">Report</property>
<property name="stock_id">gtk-go-up</property>