summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikola Pajkovsky <npajkovs@redhat.com>2009-10-17 15:42:19 +0200
committerNikola Pajkovsky <npajkovs@redhat.com>2009-10-17 15:42:19 +0200
commit4bebcf3bae780d5de960ae8279d93cf90447e729 (patch)
tree3fb04353b96450387968108acffeb769ab320e90
parent05af2c6ad9e43bf530435694a7f7e81d6b22fe3c (diff)
parenta140a59401c42cc97de134a76826c321b7c84be0 (diff)
downloadabrt-4bebcf3bae780d5de960ae8279d93cf90447e729.tar.gz
abrt-4bebcf3bae780d5de960ae8279d93cf90447e729.tar.xz
abrt-4bebcf3bae780d5de960ae8279d93cf90447e729.zip
Merge branch 'master' into experimental
-rw-r--r--.gitignore48
-rw-r--r--configure.ac5
-rw-r--r--lib/Plugins/CCpp.cpp68
-rw-r--r--po/es.po52
-rw-r--r--po/fi.po405
-rw-r--r--po/ja.po403
-rw-r--r--src/CLI/CLI.cpp118
-rw-r--r--src/CLI/abrt-cli.136
-rw-r--r--src/Daemon/Daemon.cpp2
-rw-r--r--src/Gui/CCDBusBackend.py4
-rw-r--r--src/Gui/CCMainWindow.py38
-rw-r--r--src/Gui/CCReporterDialog.py107
-rw-r--r--src/Gui/Makefile.am2
-rw-r--r--src/Gui/report.glade25
-rw-r--r--src/Gui/settings_wizard.glade104
-rw-r--r--src/Hooks/CCpp.cpp3
16 files changed, 882 insertions, 538 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..f2f6f00c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,48 @@
+\#*
+*.o
+*.lo
+*.la
+po/*.po
+po/*.gmo
+.deps
+.libs
+*~
+Makefile
+Makefile.in
+m4
+missing
+ABOUT-NLS
+aclocal.m4
+autom4te.cache
+config.guess
+config.log
+config.h
+config.h.in
+config.rpath
+config.status
+config.sub
+configure
+depcomp
+install-sh
+libtool
+ltmain.sh
+po/Makevars.template
+po/POTFILES
+po/Rules-quot
+po/abrt.pot
+po/boldquot.sed
+po/en@boldquot.header
+po/en@quot.header
+po/insert-header.sin
+po/quot.sed
+po/remove-potcdate.sed
+po/remove-potcdate.sin
+po/stamp-po
+py-compile
+src/Applet/abrt-applet
+src/CLI/abrt-cli
+src/Daemon/abrtd
+src/Hooks/abrt_exception_handler.py
+src/Hooks/dumpoops
+src/Hooks/hookCCpp
+stamp-h1
diff --git a/configure.ac b/configure.ac
index 36736dfe..37586b8d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-AC_INIT([abrt], [0.0.9], [jmoskovc@redhat.com, zprikryl@redhat.com])
+AC_INIT([abrt], [0.0.9], [jmoskovc@redhat.com])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
@@ -35,6 +35,9 @@ PKG_CHECK_MODULES([XMLRPC_CLIENT], [xmlrpc_client])
PKG_CHECK_MODULES([POLKIT],[polkit-gobject-1])
PKG_CHECK_MODULES([ZIP],[libzip])
+AC_CHECK_HEADER([libtar.h], [],
+ [AC_MSG_ERROR([libtar.h is needed to build abrt])])
+
AC_CHECK_HEADER([sys/inotify.h], [],
[AC_MSG_ERROR([sys/inotify.h is needed to build abrt])])
diff --git a/lib/Plugins/CCpp.cpp b/lib/Plugins/CCpp.cpp
index 6b4ed044..34201174 100644
--- a/lib/Plugins/CCpp.cpp
+++ b/lib/Plugins/CCpp.cpp
@@ -152,38 +152,41 @@ static void GetBacktrace(const std::string& pDebugDumpDir, std::string& pBacktra
{
update_client(_("Getting backtrace..."));
-// TODO: use -ex CMD1 -ex CMD2 ... instead of temp file?
- std::string tmpFile = "/tmp/" + pDebugDumpDir.substr(pDebugDumpDir.rfind("/"));
- std::ofstream fTmp;
std::string UID;
- fTmp.open(tmpFile.c_str());
- if (fTmp.is_open())
+ std::string executable;
{
- std::string executable;
CDebugDump dd;
dd.Open(pDebugDumpDir);
dd.LoadText(FILENAME_EXECUTABLE, executable);
dd.LoadText(FILENAME_UID, UID);
- /* Unfortunately, this doesn't work if the executable
- * was deleted (as often happens during updates):
- * with "file" directive, gdb will use specified file
- * even if it is completely unrelated to the coredump */
- /* fTmp << "file " << executable << '\n'; */
- fTmp << "core-file " << pDebugDumpDir << "/"FILENAME_COREDUMP"\n";
- fTmp << "thread apply all backtrace full\nq\n";
- fTmp.close();
}
- else
- {
- throw CABRTException(EXCEP_PLUGIN, "CAnalyzerCCpp::GetBacktrace(): cannot create gdb script " + tmpFile);
- }
- char* args[5];
+
+ char* args[9];
args[0] = (char*)"gdb";
args[1] = (char*)"-batch";
- args[2] = (char*)"-x";
- args[3] = (char*)tmpFile.c_str();
- args[4] = NULL;
+ // when/if we'll add support for networked debuginfos
+ // (https://bugzilla.redhat.com/show_bug.cgi?id=528668):
+ //args[] = (char*)"-ex";
+ //args[] = xasprintf("set debug-file-directory %s", dir);
+ /*
+ * Unfortunately, "file BINARY_FILE" doesn't work well if BINARY_FILE
+ * was deleted (as often happens during system updates):
+ * gdb uses specified BINARY_FILE
+ * even if it is completely unrelated to the coredump
+ * See https://bugzilla.redhat.com/show_bug.cgi?id=525721
+ */
+ args[2] = (char*)"-ex";
+ args[3] = xasprintf("file %s", executable.c_str());
+ args[4] = (char*)"-ex";
+ args[5] = xasprintf("core-file %s/"FILENAME_COREDUMP, pDebugDumpDir.c_str());
+ args[6] = (char*)"-ex";
+ args[7] = (char*)"thread apply all backtrace full";
+ args[8] = NULL;
+
ExecVP(args, atoi(UID.c_str()), pBacktrace);
+
+ free(args[3]);
+ free(args[5]);
}
static std::string GetIndependentBacktrace(const std::string& pBacktrace)
@@ -346,18 +349,21 @@ static std::string run_unstrip_n(const std::string& pDebugDumpDir)
dd.LoadText(FILENAME_UID, UID);
}
- std::string core = "--core=" + pDebugDumpDir + "/"FILENAME_COREDUMP;
char* args[4];
args[0] = (char*)"eu-unstrip";
- args[1] = (char*)core.c_str();
+ args[1] = xasprintf("--core=%s/"FILENAME_COREDUMP, pDebugDumpDir.c_str());
args[2] = (char*)"-n";
args[3] = NULL;
+
std::string output;
ExecVP(args, atoi(UID.c_str()), output);
+
+ free(args[1]);
+
return output;
}
-static void InstallDebugInfos(const std::string& pDebugDumpDir)
+static void InstallDebugInfos(const std::string& pDebugDumpDir, std::string& build_ids)
{
log("Getting module names, file names, build IDs from core file");
std::string unstrip_list = run_unstrip_n(pDebugDumpDir);
@@ -399,6 +405,9 @@ static void InstallDebugInfos(const std::string& pDebugDumpDir)
/* Not lstat: this is a symlink and we want link's TARGET to exist */
file_exists = stat(fn, &sb) == 0 && S_ISREG(sb.st_mode);
free(fn);
+ build_ids += "build-id ";
+ build_ids += word2;
+ build_ids += file_exists ? " (debuginfo present)\n" : " (debuginfo absent)\n";
}
log("build_id:%s exists:%d", word2, (int)file_exists);
if (!file_exists)
@@ -451,8 +460,8 @@ static void InstallDebugInfos(const std::string& pDebugDumpDir)
1. Getting sources list...OK. Found 16 enabled and 23 disabled sources.
2. Finding debugging sources...OK. Found 0 disabled debuginfo repos.
3. Enabling debugging sources...OK. Enabled 0 debugging sources.
-4. Finding debugging packages...Failed to find the package : more than one package found for
-Failed to find the package : more than one package found for
+4. Finding debugging packages...Failed to find the package : more than one package found for
+Failed to find the package : more than one package found for
FAILED. Found no packages to install.
5. Disabling sources previously enabled...OK. Disabled 0 debugging sources.
@@ -638,11 +647,12 @@ void CAnalyzerCCpp::CreateReport(const std::string& pDebugDumpDir, int force)
dd.LoadText(FILENAME_UID, UID);
dd.Close(); /* do not keep dir locked longer than needed */
+ std::string build_ids;
map_plugin_settings_t settings = GetSettings();
if (settings["InstallDebuginfo"] == "yes" &&
DebuginfoCheckPolkit(atoi(UID.c_str())) )
{
- InstallDebugInfos(pDebugDumpDir);
+ InstallDebugInfos(pDebugDumpDir, build_ids);
}
else
{
@@ -652,7 +662,7 @@ void CAnalyzerCCpp::CreateReport(const std::string& pDebugDumpDir, int force)
GetBacktrace(pDebugDumpDir, backtrace);
dd.Open(pDebugDumpDir);
- dd.SaveText(FILENAME_BACKTRACE, backtrace);
+ dd.SaveText(FILENAME_BACKTRACE, build_ids + backtrace);
if (m_bMemoryMap)
{
dd.SaveText(FILENAME_MEMORYMAP, "memory map of the crashed C/C++ application, not implemented yet");
diff --git a/po/es.po b/po/es.po
index 15f79f99..74a3ff1b 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: abrt.master.es\n"
"Report-Msgid-Bugs-To: jmoskovc@redhat.com\n"
-"POT-Creation-Date: 2009-10-08 09:51+0000\n"
-"PO-Revision-Date: 2009-10-08 10:11-0300\n"
-"Last-Translator: Héctor Daniel Cabrera <h.daniel.cabrera@gmail.com>\n"
+"POT-Creation-Date: 2009-10-09 16:26+0000\n"
+"PO-Revision-Date: 2009-10-09 17:30-0300\n"
+"Last-Translator: Domingo Becker <domingobecker@gmail.com>\n"
"Language-Team: Spanish <fedora-trans-es@redhat.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -242,12 +242,12 @@ msgstr "No se encuentra el control visual de PluginDialog en la descripción de
msgid "No UI for plugin %s"
msgstr "No hay interfase del usuario para el complemento %s"
-#: ../src/Gui/PluginSettingsUI.py:41
-#: ../src/Gui/PluginSettingsUI.py:67
+#: ../src/Gui/PluginSettingsUI.py:55
+#: ../src/Gui/PluginSettingsUI.py:81
msgid "combo box is not implemented"
msgstr "el combo box no está implementado"
-#: ../src/Gui/PluginSettingsUI.py:50
+#: ../src/Gui/PluginSettingsUI.py:64
msgid "Nothing to hydrate!"
msgstr "¡Nada para hidratar!"
@@ -403,7 +403,7 @@ msgstr "El servicio ABRT no se está ejecutando"
msgid "Warning"
msgstr "Aviso"
-#: ../src/Daemon/Daemon.cpp:546
+#: ../src/Daemon/Daemon.cpp:542
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."
@@ -411,37 +411,37 @@ msgstr "El tamaño del informe excede la cuota. Por favor, verifique el valor de
msgid "Empty login and password. Please check Bugzilla.conf"
msgstr "Usuario y contraseña vacios. Por favor compruebe el archivo Bugzilla.conf"
-#: ../lib/Plugins/Bugzilla.cpp:227
+#: ../lib/Plugins/Bugzilla.cpp:205
msgid "Bug is already reported: "
msgstr "El error ya ha sido informado:"
-#: ../lib/Plugins/Bugzilla.cpp:282
+#: ../lib/Plugins/Bugzilla.cpp:260
#, c-format
msgid "Binary file %s will not be reported."
msgstr "El archivo binario %s no será informado."
-#: ../lib/Plugins/Bugzilla.cpp:352
+#: ../lib/Plugins/Bugzilla.cpp:330
msgid "New bug id: "
msgstr "Nuevo id del error:"
-#: ../lib/Plugins/Bugzilla.cpp:421
+#: ../lib/Plugins/Bugzilla.cpp:399
msgid "Checking for duplicates..."
msgstr "Chequeando si hay duplicados..."
-#: ../lib/Plugins/Bugzilla.cpp:424
-#: ../lib/Plugins/Bugzilla.cpp:436
+#: ../lib/Plugins/Bugzilla.cpp:402
+#: ../lib/Plugins/Bugzilla.cpp:413
msgid "Logging into bugzilla..."
msgstr "Ingresando a bugzilla..."
-#: ../lib/Plugins/Bugzilla.cpp:427
-msgid "Check CC and add coment +1..."
-msgstr "Compruebe CC y añada un comentario +1"
+#: ../lib/Plugins/Bugzilla.cpp:405
+msgid "Checking CC..."
+msgstr "Chequeando CC..."
-#: ../lib/Plugins/Bugzilla.cpp:448
+#: ../lib/Plugins/Bugzilla.cpp:425
msgid "Creating new bug..."
msgstr "Creando un nuevo informe..."
-#: ../lib/Plugins/Bugzilla.cpp:453
+#: ../lib/Plugins/Bugzilla.cpp:430
msgid "Logging out..."
msgstr "Saliendo..."
@@ -449,31 +449,31 @@ msgstr "Saliendo..."
msgid "Getting local universal unique identification"
msgstr "Obteniendo la identificación única universal local"
-#: ../lib/Plugins/CCpp.cpp:146
+#: ../lib/Plugins/CCpp.cpp:153
msgid "Getting backtrace..."
msgstr "Obteniendo el backtrace..."
-#: ../lib/Plugins/CCpp.cpp:415
+#: ../lib/Plugins/CCpp.cpp:425
msgid "Searching for debug-info packages..."
msgstr "Buscando paquetes de información del depurador..."
-#: ../lib/Plugins/CCpp.cpp:451
+#: ../lib/Plugins/CCpp.cpp:487
msgid "Downloading and installing debug-info packages..."
msgstr "Descargando e instalando paquetes de información del depurador..."
-#: ../lib/Plugins/CCpp.cpp:513
+#: ../lib/Plugins/CCpp.cpp:549
msgid "Getting local universal unique identification..."
msgstr "Obteniendo la identificación única universal local..."
-#: ../lib/Plugins/CCpp.cpp:532
+#: ../lib/Plugins/CCpp.cpp:568
msgid "Getting global universal unique identification..."
msgstr "Obteniendo la identificación única universal global..."
-#: ../lib/Plugins/CCpp.cpp:583
+#: ../lib/Plugins/CCpp.cpp:619
msgid "Starting report creation..."
msgstr "Iniciando la creación del informe..."
-#: ../lib/Plugins/CCpp.cpp:612
+#: ../lib/Plugins/CCpp.cpp:649
msgid "Skipping debuginfo installation"
msgstr "Omita la instalación de la información de depuración"
@@ -529,6 +529,8 @@ msgstr "lanzando.sosreport"
msgid "done running sosreport"
msgstr "Sosreport.corriendo"
+#~ msgid "Check CC and add coment +1..."
+#~ msgstr "Compruebe CC y añada un comentario +1"
#~ msgid "Pending events: %i"
#~ msgstr "Eventos pendientes: %i"
#~ msgid "Can't create menu from the description, popup won't be available!\n"
diff --git a/po/fi.po b/po/fi.po
index 2e470e18..3adf33db 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -6,49 +6,55 @@ msgid ""
msgstr ""
"Project-Id-Version: abrt\n"
"Report-Msgid-Bugs-To: jmoskovc@redhat.com\n"
-"POT-Creation-Date: 2009-09-29 14:46+0200\n"
-"PO-Revision-Date: 2009-09-23 17:36+0300\n"
+"POT-Creation-Date: 2009-10-09 16:26+0000\n"
+"PO-Revision-Date: 2009-10-09 20:52+0300\n"
"Last-Translator: Ville-Pekka Vainio <vpivaini@cs.helsinki.fi>\n"
"Language-Team: Finnish <laatu@lokalisointi.org>\n"
+"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Virtaal 0.4.0\n"
-#: src/Gui/ABRTExceptions.py:4
+#: ../src/Gui/ABRTExceptions.py:6
msgid "Another client is already running, trying to wake it."
msgstr "Toinen asiakasohjelma on jo käynnissä, yritetään herättää sitä."
-#: src/Gui/ABRTExceptions.py:10
+#: ../src/Gui/ABRTExceptions.py:13
msgid "Got unexpected data from daemon (is the database properly updated?)."
msgstr ""
"Saatiin odottamatonta dataa taustaprosessilta (onko tietokanta päivitetty?)"
-#: src/Gui/ABRTPlugin.py:26
+#: ../src/Gui/ABRTPlugin.py:48
msgid "Analyzer plugins"
msgstr "Analysaattoriliitännäiset"
-#: src/Gui/ABRTPlugin.py:27
+#: ../src/Gui/ABRTPlugin.py:49
msgid "Action plugins"
msgstr "Toimintoliitännäiset"
-#: src/Gui/ABRTPlugin.py:28
+#: ../src/Gui/ABRTPlugin.py:50
msgid "Reporter plugins"
msgstr "Raportointiliitännäiset"
-#: src/Gui/ABRTPlugin.py:29
+#: ../src/Gui/ABRTPlugin.py:51
msgid "Database plugins"
msgstr "Tietokantaliitännäiset"
-#: src/Gui/CCDBusBackend.py:143
-msgid "Can't connect to dbus"
-msgstr "DBusiin ei saada yhteyttä"
+#: ../src/Gui/ABRTPlugin.py:90
+msgid "Plugin name is not set, can't load it's settings"
+msgstr "Liitännäisen nimeä ei ole asetettu, sen asetuksia ei voida ladata"
-#: src/Gui/CCDBusBackend.py:169
-msgid "Please check if abrt daemon is running."
-msgstr "Tarkista onko abrt-taustaprosessi käynnissä."
+#: ../src/Gui/CCDBusBackend.py:74 ../src/Gui/CCDBusBackend.py:97
+msgid "Can't connect to system dbus"
+msgstr "Järjestelmäväylään ei saatu yhteyttä"
-#: src/Gui/CCDBusBackend.py:187
+#: ../src/Gui/CCDBusBackend.py:100 ../src/Gui/CCDBusBackend.py:103
+msgid "Please check if abrt daemon is running"
+msgstr "Tarkista onko abrt-taustaprosessi käynnissä"
+
+#: ../src/Gui/CCDBusBackend.py:155
msgid ""
"Daemon did't return valid report info\n"
"Debuginfo is missing?"
@@ -56,27 +62,47 @@ msgstr ""
"Taustaprosessi ei palauttanut kelvollista raporttitietoa\n"
"Puuttuuko debuginfo?"
-#: src/Gui/ccgui.glade:6
-msgid "Please wait.."
-msgstr "Odota hetki..."
-
-#: src/Gui/ccgui.glade:16
-msgid "Working..."
-msgstr "Työskentelee..."
-
-#: src/Gui/ccgui.glade:49
+#: ../src/Gui/ccgui.glade.h:1
msgid " "
msgstr " "
-#: src/Gui/ccgui.glade:68
+#: ../src/Gui/ccgui.glade.h:2
+msgid "(C) 2009 Red Hat, Inc."
+msgstr "(C) 2009 Red Hat, Inc."
+
+#: ../src/Gui/ccgui.glade.h:3 ../src/Gui/CCMainWindow.py:240
+msgid "<b>Not reported!</b>"
+msgstr "<b>Ei raportoitu!</b>"
+
+#: ../src/Gui/ccgui.glade.h:4
+msgid "<span color=\"white\">Description</span>"
+msgstr "<span color=\"white\">Kuvaus</span>"
+
+#: ../src/Gui/ccgui.glade.h:5
msgid "About ABRT"
msgstr "Tietoja ABRT:stä"
-#: src/Gui/ccgui.glade:74
-msgid "(C) 2009 Red Hat, Inc."
-msgstr "(C) 2009 Red Hat, Inc."
+#: ../src/Gui/ccgui.glade.h:6
+msgid "Automatic Bug Reporting Tool"
+msgstr "Automaattinen ohjelmavikojen raportointiohjelma"
+
+#: ../src/Gui/ccgui.glade.h:7
+msgid "Delete"
+msgstr "Poista"
+
+#: ../src/Gui/ccgui.glade.h:8
+msgid "Please wait.."
+msgstr "Odota hetki..."
+
+#: ../src/Gui/ccgui.glade.h:9
+msgid "Plugins"
+msgstr "Liitännäiset"
-#: src/Gui/ccgui.glade:75
+#: ../src/Gui/ccgui.glade.h:10 ../src/Gui/report.glade.h:2
+msgid "Report"
+msgstr "Raportti"
+
+#: ../src/Gui/ccgui.glade.h:11
msgid ""
"This program is free software; you can redistribute it and/or modify it "
"under the terms of the GNU General Public License as published by the Free "
@@ -103,68 +129,48 @@ msgstr ""
"Tämän ohjelman mukana pitäisi tulla kopio GPL-lisenssistä. Jos näin ei ole, "
"katso <http://www.gnu.org/licenses/>."
-#: src/Gui/ccgui.glade:106
-msgid "Automatic Bug Reporting Tool"
-msgstr "Automaattinen ohjelmavikojen raportointiohjelma"
-
-#: src/Gui/ccgui.glade:118
-msgid "_File"
-msgstr "_Tiedosto"
+#: ../src/Gui/ccgui.glade.h:16
+msgid "Working..."
+msgstr "Työskentelee..."
-#: src/Gui/ccgui.glade:138
+#: ../src/Gui/ccgui.glade.h:17
msgid "_Edit"
msgstr "_Muokkaa"
-#: src/Gui/ccgui.glade:146
-msgid "Plugins"
-msgstr "Liitännäiset"
+#: ../src/Gui/ccgui.glade.h:18
+msgid "_File"
+msgstr "_Tiedosto"
-#: src/Gui/ccgui.glade:164
+#: ../src/Gui/ccgui.glade.h:19
msgid "_Help"
msgstr "_Ohje"
-#: src/Gui/ccgui.glade:194 src/Gui/ccgui.glade:195
-msgid "Delete"
-msgstr "Poista"
-
-#: src/Gui/ccgui.glade:207 src/Gui/ccgui.glade:208 src/Gui/ccgui.glade:335
-#: src/Gui/report.glade:7 src/Gui/report.glade:24
-msgid "Report"
-msgstr "Raportti"
-
-#: src/Gui/ccgui.glade:255
-msgid "<span color=\"white\">Description</span>"
-msgstr "<span color=\"white\">Kuvaus</span>"
-
-#: src/Gui/ccgui.glade:297 src/Gui/CCMainWindow.py:239
-msgid "<b>Not reported!</b>"
-msgstr "<b>Ei raportoitu!</b>"
-
-#: src/Gui/CCMainWindow.py:80
+#. add pixbuff separatelly
+#: ../src/Gui/CCMainWindow.py:80
msgid "Icon"
msgstr "Kuvake"
-#: src/Gui/CCMainWindow.py:88
+#: ../src/Gui/CCMainWindow.py:88
msgid "Package"
msgstr "Paketti"
-#: src/Gui/CCMainWindow.py:89
+#: ../src/Gui/CCMainWindow.py:89
msgid "Application"
msgstr "Ohjelma"
-#: src/Gui/CCMainWindow.py:90
+#: ../src/Gui/CCMainWindow.py:90
msgid "Date"
msgstr "Päiväys"
-#: src/Gui/CCMainWindow.py:91
+#: ../src/Gui/CCMainWindow.py:91
msgid "Crash Rate"
msgstr "Kaatumisaste"
-#: src/Gui/CCMainWindow.py:93
+#: ../src/Gui/CCMainWindow.py:93
msgid "User"
msgstr "Käyttäjä"
-#: src/Gui/CCMainWindow.py:177
+#: ../src/Gui/CCMainWindow.py:178
#, python-format
msgid ""
"Unable to finish current task!\n"
@@ -173,7 +179,7 @@ msgstr ""
"Nykyistä tehtävää ei saatu valmiiksi!\n"
"%s"
-#: src/Gui/CCMainWindow.py:194
+#: ../src/Gui/CCMainWindow.py:195
#, python-format
msgid ""
"Error while loading the dumplist, please check if abrt daemon is running\n"
@@ -183,17 +189,17 @@ msgstr ""
"käynnissä\n"
" %s"
-#: src/Gui/CCMainWindow.py:204
+#: ../src/Gui/CCMainWindow.py:205
#, python-format
msgid "Can't get username for uid %s"
msgstr "Käyttäjänumeron %s käyttäjänimeä ei saatu selville"
-#: src/Gui/CCMainWindow.py:231
+#: ../src/Gui/CCMainWindow.py:232
msgid "<b>This crash has been reported, you can find the report(s) at:</b>\n"
msgstr ""
"<b>Tämä kaatuminen on raportoitu, raportit on nähtävillä osoitteessa:</b>\n"
-#: src/Gui/CCMainWindow.py:291
+#: ../src/Gui/CCMainWindow.py:292
msgid ""
"Unable to get report!\n"
"Debuginfo is missing?"
@@ -201,7 +207,7 @@ msgstr ""
"Raporttia ei saatu!\n"
"Puuttuuko debuginfo?"
-#: src/Gui/CCMainWindow.py:306
+#: ../src/Gui/CCMainWindow.py:308
#, python-format
msgid ""
"Reporting failed!\n"
@@ -210,12 +216,12 @@ msgstr ""
"Raportin tekeminen epäonnistui!\n"
"%s"
-#: src/Gui/CCMainWindow.py:338
+#: ../src/Gui/CCMainWindow.py:340
#, python-format
msgid "Error getting the report: %s"
msgstr "Raportin noutaminen epäonnistui: %s"
-#: src/Gui/CCReporterDialog.py:98
+#: ../src/Gui/CCReporterDialog.py:98
#, python-format
msgid ""
"<b>WARNING</b>, you're about to send data which might contain sensitive "
@@ -226,191 +232,187 @@ msgstr ""
"yksityisiä tietoja!\n"
"Haluatko todella lähettää <b>%s</b>?\n"
-#: src/Gui/CCReporterDialog.py:111
+#: ../src/Gui/CCReporterDialog.py:111
msgid "Brief description how to reproduce this or what you did..."
msgstr ""
"Lyhyt kuvaus siitä, miten tämän pystyy toistamaan tai mitä olit tekemässä..."
-#: src/Gui/dialogs.glade:7
+#: ../src/Gui/dialogs.glade.h:1
msgid "Report done"
msgstr "Raportti on valmis"
-#: src/Gui/dialogs.glade:47 src/Gui/settings.glade:695
-#: src/Gui/settings.glade:785
+#: ../src/Gui/dialogs.glade.h:2 ../src/Gui/settings.glade.h:27
msgid "gtk-ok"
msgstr "gtk-ok"
-#: src/Gui/PluginSettingsUI.py:17
+#: ../src/Gui/PluginSettingsUI.py:18
msgid "Can't find PluginDialog widget in UI description!"
msgstr "PluginDialog-elementtiä ei löydy käyttöliittymäkuvauksesta!"
-#: src/Gui/PluginSettingsUI.py:21
+#. we shouldn't get here, but just to be safe
+#: ../src/Gui/PluginSettingsUI.py:24
#, python-format
msgid "No UI for plugin %s"
msgstr "Liitännäisellä %s ei ole käyttöliittymää"
-#: src/Gui/PluginSettingsUI.py:38 src/Gui/PluginSettingsUI.py:64
+#: ../src/Gui/PluginSettingsUI.py:55 ../src/Gui/PluginSettingsUI.py:81
msgid "combo box is not implemented"
msgstr "alasvetovalikkoa ei ole toteutettu"
-#: src/Gui/PluginSettingsUI.py:47
+#: ../src/Gui/PluginSettingsUI.py:64
msgid "Nothing to hydrate!"
msgstr ""
-#: src/Gui/report.glade:64
+#: ../src/Gui/report.glade.h:1
msgid "Comment"
msgstr "Kommentti"
-#: src/Gui/report.glade:104 src/Gui/settings.glade:682
-#: src/Gui/settings.glade:797
-msgid "gtk-cancel"
-msgstr "gtk-cancel"
-
-#: src/Gui/report.glade:119
+#: ../src/Gui/report.glade.h:3
msgid "Send"
msgstr "Lähetä"
-#: src/Gui/SettingsDialog.py:34 src/Gui/SettingsDialog.py:51
+#: ../src/Gui/report.glade.h:4 ../src/Gui/settings.glade.h:25
+msgid "gtk-cancel"
+msgstr "gtk-cancel"
+
+#: ../src/Gui/SettingsDialog.py:34 ../src/Gui/SettingsDialog.py:51
msgid "<b>Select plugin</b>"
msgstr "<b>Valitse liitännäinen</b>"
-#: src/Gui/SettingsDialog.py:37
+#: ../src/Gui/SettingsDialog.py:37
msgid "<b>Select database backend</b>"
msgstr "<b>Valitse tietokannan taustajärjestelmä</b>"
-#: src/Gui/SettingsDialog.py:165
+#: ../src/Gui/SettingsDialog.py:168
msgid "Remove this job"
msgstr "Poista tämä työ"
-#: src/Gui/SettingsDialog.py:208
+#: ../src/Gui/SettingsDialog.py:211
msgid "Remove this action"
msgstr "Poista tämä toiminto"
-#: src/Gui/settings.glade:6
-msgid "Settings"
-msgstr "Asetukset"
+#: ../src/Gui/settings.glade.h:1
+msgid "<b>Analyzer plugin</b>"
+msgstr "Analysaattoriliitännäinen"
-#: src/Gui/settings.glade:46 src/Gui/settings.glade:55
-#: src/Gui/settings.glade:107 src/Gui/settings.glade:120
-#: src/Gui/settings.glade:133
-msgid "Nothing selected"
-msgstr "Mitään ei ole valittu"
+#: ../src/Gui/settings.glade.h:2
+msgid "<b>Associated action</b>"
+msgstr "<b>Yhdistetty toiminto</b>"
-#: src/Gui/settings.glade:72
-msgid "Web Site:"
-msgstr "Verkkosivu:"
+#: ../src/Gui/settings.glade.h:3
+msgid "<b>Plugin</b>"
+msgstr "<b>Liitännäinen</b>"
+
+#: ../src/Gui/settings.glade.h:4
+msgid "<b>Time (or period)</b>"
+msgstr "<b>Aika (tai ajanjakso)</b>"
-#: src/Gui/settings.glade:84
+#: ../src/Gui/settings.glade.h:5
+msgid "Analyzers, Actions, Reporters"
+msgstr "Analysaattorit, toiminnot, raportoijat"
+
+#: ../src/Gui/settings.glade.h:6
msgid "Author:"
msgstr "Tekijä:"
-#: src/Gui/settings.glade:97
-msgid "Version:"
-msgstr "Versio:"
-
-#: src/Gui/settings.glade:152
-msgid "Plugin Details"
-msgstr "Liitännäisen tiedot"
+#: ../src/Gui/settings.glade.h:7
+msgid "Blacklisted packages: "
+msgstr "Mustalla listalla olevat paketit:"
-#: src/Gui/settings.glade:179
+#: ../src/Gui/settings.glade.h:8
msgid "C_onfigure plugin"
msgstr "Liitännäisen asetukset"
-#: src/Gui/settings.glade:191
-msgid "gtk-close"
-msgstr "gtk-close"
-
-#: src/Gui/settings.glade:221
-msgid "Global Settings"
-msgstr "Yleiset asetukset"
-
-#: src/Gui/settings.glade:240
+#: ../src/Gui/settings.glade.h:9
msgid "Check package GPG signature"
msgstr "Tarkista paketin GPG-allekirjoitus"
-#: src/Gui/settings.glade:256
+#: ../src/Gui/settings.glade.h:10
+msgid "Common"
+msgstr "Yleinen"
+
+#: ../src/Gui/settings.glade.h:11
+msgid "Cron"
+msgstr "Cron"
+
+#: ../src/Gui/settings.glade.h:12
msgid "Database backend: "
msgstr "Tietokannan taustajärjestelmä:"
-#: src/Gui/settings.glade:281
-msgid "Blacklisted packages: "
-msgstr "Mustalla listalla olevat paketit:"
+#: ../src/Gui/settings.glade.h:13
+msgid "Edit blacklisted packages"
+msgstr "Muokkaa mustalla listalla olevia paketteja"
-#: src/Gui/settings.glade:294
-msgid "Max coredump storage size(MB):"
-msgstr "Muistivedoksen tallennustilan suurin koko (Mt):"
+#: ../src/Gui/settings.glade.h:14
+msgid "GPG Keys"
+msgstr "GPG-avaimet"
-#: src/Gui/settings.glade:307
+#: ../src/Gui/settings.glade.h:15
msgid "GPG keys: "
msgstr "GPG-avaimet:"
-#: src/Gui/settings.glade:349
-msgid "Edit blacklisted packages"
-msgstr "Muokkaa mustalla listalla olevia paketteja"
-
-#: src/Gui/settings.glade:408
-msgid "Common"
-msgstr "Yleinen"
+#: ../src/Gui/settings.glade.h:16
+msgid "Global Settings"
+msgstr "Yleiset asetukset"
-#: src/Gui/settings.glade:438
-msgid "<b>Plugin</b>"
-msgstr "<b>Liitännäinen</b>"
+#: ../src/Gui/settings.glade.h:17
+msgid "Max coredump storage size(MB):"
+msgstr "Muistivedoksen tallennustilan suurin koko (Mt):"
-#: src/Gui/settings.glade:448
-msgid "<b>Time (or period)</b>"
-msgstr "<b>Aika (tai ajanjakso)</b>"
+#: ../src/Gui/settings.glade.h:18
+msgid "Nothing selected"
+msgstr "Mitään ei ole valittu"
-#: src/Gui/settings.glade:510 src/Gui/settings.glade:624
-#: src/Gui/settings.glade:761
-msgid "gtk-add"
-msgstr "gtk-add"
+#: ../src/Gui/settings.glade.h:19
+msgid "Plugin Details"
+msgstr "Liitännäisen tiedot"
-#: src/Gui/settings.glade:534
-msgid "Cron"
-msgstr "Cron"
+#: ../src/Gui/settings.glade.h:20
+msgid "Settings"
+msgstr "Asetukset"
-#: src/Gui/settings.glade:551
-msgid "<b>Analyzer plugin</b>"
-msgstr "Analysaattoriliitännäinen"
+#: ../src/Gui/settings.glade.h:21
+msgid "This function is not implemented yet!"
+msgstr "Tätä toimintoa ei ole vielä toteutettu!"
-#: src/Gui/settings.glade:561
-msgid "<b>Associated action</b>"
-msgstr "<b>Yhdistetty toiminto</b>"
+#: ../src/Gui/settings.glade.h:22
+msgid "Version:"
+msgstr "Versio:"
-#: src/Gui/settings.glade:648
-msgid "Analyzers, Actions, Reporters"
-msgstr "Analysaattorit, toiminnot, raportoijat"
+#: ../src/Gui/settings.glade.h:23
+msgid "Web Site:"
+msgstr "Verkkosivu:"
-#: src/Gui/settings.glade:700
-msgid "This function is not implemented yet!"
-msgstr "Tätä toimintoa ei ole vielä toteutettu!"
+#: ../src/Gui/settings.glade.h:24
+msgid "gtk-add"
+msgstr "gtk-add"
-#: src/Gui/settings.glade:738
-msgid "GPG Keys"
-msgstr "GPG-avaimet"
+#: ../src/Gui/settings.glade.h:26
+msgid "gtk-close"
+msgstr "gtk-close"
-#: src/Gui/settings.glade:773
+#: ../src/Gui/settings.glade.h:28
msgid "gtk-remove"
msgstr "gtk-remove"
-#: src/Applet/Applet.cpp:71
+#: ../src/Applet/Applet.cpp:71
#, c-format
msgid "A crash in package %s has been detected"
msgstr "Paketissa %s on huomattu kaatuminen"
-#: src/Applet/Applet.cpp:130
+#: ../src/Applet/Applet.cpp:130
msgid "ABRT service has been started"
msgstr "ABRT-palvelu on käynnistetty"
-#: src/Applet/Applet.cpp:132 src/Applet/Applet.cpp:246
+#: ../src/Applet/Applet.cpp:132 ../src/Applet/Applet.cpp:246
msgid "ABRT service is not running"
msgstr "ABRT-palvelu ei ole käytössä"
-#: src/Applet/CCApplet.cpp:185
+#: ../src/Applet/CCApplet.cpp:185
msgid "Warning"
msgstr "Varoitus"
-#: src/Daemon/Daemon.cpp:546
+#: ../src/Daemon/Daemon.cpp:542
msgid ""
"Report size exceeded the quota. Please check system's MaxCrashReportsSize "
"value in abrt.conf."
@@ -418,124 +420,127 @@ msgstr ""
"Raportin koko ylitti sille annetun rajan. Tarkista järjestelmän "
"MaxCrashReportsSize-arvo abrt.conf-tiedostossa."
-#: lib/Plugins/Bugzilla.cpp:83
+#: ../lib/Plugins/Bugzilla.cpp:83
msgid "Empty login and password. Please check Bugzilla.conf"
msgstr "Käyttäjätunnus ja salasana ovat tyhjiä. Tarkista Bugzilla.conf"
-#: lib/Plugins/Bugzilla.cpp:227
+#: ../lib/Plugins/Bugzilla.cpp:205
msgid "Bug is already reported: "
msgstr "Ohjelmavirheestä on jo tehty ilmoitus:"
-#: lib/Plugins/Bugzilla.cpp:282
+#: ../lib/Plugins/Bugzilla.cpp:260
#, c-format
msgid "Binary file %s will not be reported."
msgstr "Binääritiedostoa %s ei raportoida."
-#: lib/Plugins/Bugzilla.cpp:352
+#: ../lib/Plugins/Bugzilla.cpp:330
msgid "New bug id: "
msgstr "Uuden ohjelmavirheilmoituksen tunnus:"
-#: lib/Plugins/Bugzilla.cpp:421
+#: ../lib/Plugins/Bugzilla.cpp:399
msgid "Checking for duplicates..."
msgstr "Etsitään samanlaisia..."
-#: lib/Plugins/Bugzilla.cpp:424 lib/Plugins/Bugzilla.cpp:436
+#: ../lib/Plugins/Bugzilla.cpp:402 ../lib/Plugins/Bugzilla.cpp:413
msgid "Logging into bugzilla..."
msgstr "Kirjaudutaan bugzillaan..."
-#: lib/Plugins/Bugzilla.cpp:427
-msgid "Check CC and add coment +1..."
-msgstr "Tarkista CC ja lisää kommentti +1..."
+#: ../lib/Plugins/Bugzilla.cpp:405
+msgid "Checking CC..."
+msgstr "Tarkistetaan CC..."
-#: lib/Plugins/Bugzilla.cpp:448
+#: ../lib/Plugins/Bugzilla.cpp:425
msgid "Creating new bug..."
msgstr "Luodaan uusi ohjelmavirheilmoitus..."
-#: lib/Plugins/Bugzilla.cpp:453
+#: ../lib/Plugins/Bugzilla.cpp:430
msgid "Logging out..."
msgstr "Kirjaudutaan ulos..."
-#: lib/Plugins/Kerneloops.cpp:37
+#: ../lib/Plugins/Kerneloops.cpp:37
msgid "Getting local universal unique identification"
msgstr "Haetaan paikallinen ainutkertainen tunnus"
-#: lib/Plugins/CCpp.cpp:146
+#: ../lib/Plugins/CCpp.cpp:153
msgid "Getting backtrace..."
msgstr "Haetaan pinolistausta..."
-#: lib/Plugins/CCpp.cpp:410
+#: ../lib/Plugins/CCpp.cpp:425
msgid "Searching for debug-info packages..."
msgstr "Etsitään debug-info-paketteja..."
-#: lib/Plugins/CCpp.cpp:444
+#: ../lib/Plugins/CCpp.cpp:487
msgid "Downloading and installing debug-info packages..."
msgstr "Ladataan ja asennetaan debug-info-paketteja..."
-#: lib/Plugins/CCpp.cpp:506
+#: ../lib/Plugins/CCpp.cpp:549
msgid "Getting local universal unique identification..."
msgstr "Haetaan paikallinen ainutkertainen tunnus..."
-#: lib/Plugins/CCpp.cpp:525
+#: ../lib/Plugins/CCpp.cpp:568
msgid "Getting global universal unique identification..."
msgstr "Haetaan yleinen ainutkertainen tunnus..."
-#: lib/Plugins/CCpp.cpp:576
+#: ../lib/Plugins/CCpp.cpp:619
msgid "Starting report creation..."
msgstr "Aloitetaan ilmoituksen tekeminen..."
-#: lib/Plugins/CCpp.cpp:605
+#: ../lib/Plugins/CCpp.cpp:649
msgid "Skipping debuginfo installation"
msgstr "Ohitetaan debuginfon asennus"
-#: lib/Plugins/KerneloopsReporter.cpp:101
+#: ../lib/Plugins/KerneloopsReporter.cpp:101
msgid "Creating and submitting a report..."
msgstr "Luodaan ja lähetetään ilmoitus..."
-#: lib/Plugins/Logger.cpp:58 lib/Plugins/Mailx.cpp:123
+#: ../lib/Plugins/Logger.cpp:58 ../lib/Plugins/Mailx.cpp:123
msgid "Creating a report..."
msgstr "Luodaan ilmoitus..."
-#: lib/Plugins/RunApp.cpp:62
+#: ../lib/Plugins/RunApp.cpp:62
msgid "Executing RunApp plugin..."
msgstr "Suoritetaan RunApp-liitännäinen..."
-#: lib/Plugins/FileTransfer.cpp:60 lib/Plugins/FileTransfer.cpp:355
+#: ../lib/Plugins/FileTransfer.cpp:63 ../lib/Plugins/FileTransfer.cpp:409
msgid "FileTransfer: URL not specified"
msgstr "FileTransfer: URL:ää ei ole määritelty"
-#: lib/Plugins/FileTransfer.cpp:77
+#: ../lib/Plugins/FileTransfer.cpp:81
#, c-format
msgid "Sending archive %s via %s"
msgstr "Lähetetään arkisto %s protokollan %s avulla"
-#: lib/Plugins/FileTransfer.cpp:284
+#: ../lib/Plugins/FileTransfer.cpp:336
msgid "File Transfer: Creating a report..."
msgstr "Tiedostonsiirto: Luodaan ilmoitusta..."
-#: lib/Plugins/FileTransfer.cpp:305 lib/Plugins/FileTransfer.cpp:334
+#: ../lib/Plugins/FileTransfer.cpp:358 ../lib/Plugins/FileTransfer.cpp:386
msgid "CFileTransfer::Run(): Cannot create and send an archive: "
msgstr "CFileTransfer::Run(): Ei voitu luoda ja lähettää arkistoa:"
-#: lib/Plugins/KerneloopsScanner.cpp:79
+#: ../lib/Plugins/KerneloopsScanner.cpp:79
msgid "Creating kernel oops crash reports..."
msgstr "Luodaan kernel oops -kaatumisilmoituksia..."
-#: lib/Plugins/Mailx.cpp:109
+#: ../lib/Plugins/Mailx.cpp:109
msgid "Sending an email..."
msgstr "Lähetetään sähköpostia..."
-#: lib/Plugins/SOSreport.cpp:113
+#: ../lib/Plugins/SOSreport.cpp:113
msgid "Executing SOSreport plugin..."
msgstr "Suoritetaan SOSreport-liitännäinen..."
-#: lib/Plugins/SOSreport.cpp:135
+#: ../lib/Plugins/SOSreport.cpp:135
msgid "running sosreport: "
msgstr "suoritetaan sosreport:"
-#: lib/Plugins/SOSreport.cpp:150
+#: ../lib/Plugins/SOSreport.cpp:150
msgid "done running sosreport"
msgstr "sosreportin suoritus valmistui"
+#~ msgid "Check CC and add coment +1..."
+#~ msgstr "Tarkista CC ja lisää kommentti +1..."
+
#~ msgid "Pending events: %i"
#~ msgstr "Tapahtumia jonossa: %i"
diff --git a/po/ja.po b/po/ja.po
index 2795829e..b306746e 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ja\n"
"Report-Msgid-Bugs-To: jmoskovc@redhat.com\n"
-"POT-Creation-Date: 2009-09-29 14:46+0200\n"
-"PO-Revision-Date: 2009-09-23 14:15+0900\n"
+"POT-Creation-Date: 2009-10-11 10:16+0000\n"
+"PO-Revision-Date: 2009-10-11 20:14+0900\n"
"Last-Translator: Hyu_gabaru Ryu_ichi <hyu_gabaru@yahoo.co.jp>\n"
"Language-Team: Japanese <jp@li.org>\n"
"MIME-Version: 1.0\n"
@@ -22,41 +22,45 @@ msgstr ""
"\n"
"\n"
-#: src/Gui/ABRTExceptions.py:4
+#: ../src/Gui/ABRTExceptions.py:6
msgid "Another client is already running, trying to wake it."
msgstr "別のクライアントが稼働していますので、それを呼び出しています。"
-#: src/Gui/ABRTExceptions.py:10
+#: ../src/Gui/ABRTExceptions.py:13
msgid "Got unexpected data from daemon (is the database properly updated?)."
msgstr ""
"デーモンから予想外のデータを受け取りました(データベースは正常に更新されてい"
"ますか?)。"
-#: src/Gui/ABRTPlugin.py:26
+#: ../src/Gui/ABRTPlugin.py:48
msgid "Analyzer plugins"
msgstr "アナライザー plugin"
-#: src/Gui/ABRTPlugin.py:27
+#: ../src/Gui/ABRTPlugin.py:49
msgid "Action plugins"
msgstr "アクション plugin"
-#: src/Gui/ABRTPlugin.py:28
+#: ../src/Gui/ABRTPlugin.py:50
msgid "Reporter plugins"
msgstr "レポーター plugin"
-#: src/Gui/ABRTPlugin.py:29
+#: ../src/Gui/ABRTPlugin.py:51
msgid "Database plugins"
msgstr "データベース plugin"
-#: src/Gui/CCDBusBackend.py:143
-msgid "Can't connect to dbus"
-msgstr "dbus に接続できません。"
+#: ../src/Gui/ABRTPlugin.py:90
+msgid "Plugin name is not set, can't load it's settings"
+msgstr "プラグイン名が設定されていません、その設定はロードできません"
-#: src/Gui/CCDBusBackend.py:169
-msgid "Please check if abrt daemon is running."
-msgstr "abrt デーモンが稼働しているかどうかチェックして下さい。"
+#: ../src/Gui/CCDBusBackend.py:74 ../src/Gui/CCDBusBackend.py:97
+msgid "Can't connect to system dbus"
+msgstr "システム dbus に接続できません。"
-#: src/Gui/CCDBusBackend.py:187
+#: ../src/Gui/CCDBusBackend.py:100 ../src/Gui/CCDBusBackend.py:103
+msgid "Please check if abrt daemon is running"
+msgstr "abrt デーモンが稼働しているかどうかチェックして下さい"
+
+#: ../src/Gui/CCDBusBackend.py:155
msgid ""
"Daemon did't return valid report info\n"
"Debuginfo is missing?"
@@ -64,27 +68,47 @@ msgstr ""
"デーモンは有効な報告内容を返しませんでした。\n"
"Debuginfo が無いですか?"
-#: src/Gui/ccgui.glade:6
-msgid "Please wait.."
-msgstr "お待ち下さい..."
-
-#: src/Gui/ccgui.glade:16
-msgid "Working..."
-msgstr "作業中..."
-
-#: src/Gui/ccgui.glade:49
+#: ../src/Gui/ccgui.glade.h:1
msgid " "
msgstr " "
-#: src/Gui/ccgui.glade:68
+#: ../src/Gui/ccgui.glade.h:2
+msgid "(C) 2009 Red Hat, Inc."
+msgstr "(C) 2009 Red Hat, Inc."
+
+#: ../src/Gui/ccgui.glade.h:3 ../src/Gui/CCMainWindow.py:240
+msgid "<b>Not reported!</b>"
+msgstr "<b>報告がありません!</b>"
+
+#: ../src/Gui/ccgui.glade.h:4
+msgid "<span color=\"white\">Description</span>"
+msgstr "<span color=\"white\">記述</span>"
+
+#: ../src/Gui/ccgui.glade.h:5
msgid "About ABRT"
msgstr "ABRT について"
-#: src/Gui/ccgui.glade:74
-msgid "(C) 2009 Red Hat, Inc."
-msgstr "(C) 2009 Red Hat, Inc."
+#: ../src/Gui/ccgui.glade.h:6
+msgid "Automatic Bug Reporting Tool"
+msgstr "自動バグ報告ツール(ABRT)"
+
+#: ../src/Gui/ccgui.glade.h:7
+msgid "Delete"
+msgstr "削除"
+
+#: ../src/Gui/ccgui.glade.h:8
+msgid "Please wait.."
+msgstr "お待ち下さい..."
+
+#: ../src/Gui/ccgui.glade.h:9
+msgid "Plugins"
+msgstr "プラグイン"
-#: src/Gui/ccgui.glade:75
+#: ../src/Gui/ccgui.glade.h:10 ../src/Gui/report.glade.h:2
+msgid "Report"
+msgstr "報告"
+
+#: ../src/Gui/ccgui.glade.h:11
msgid ""
"This program is free software; you can redistribute it and/or modify it "
"under the terms of the GNU General Public License as published by the Free "
@@ -112,68 +136,48 @@ msgstr ""
"You should have received a copy of the GNU General Public License along with "
"this program. If not, see <http://www.gnu.org/licenses/>."
-#: src/Gui/ccgui.glade:106
-msgid "Automatic Bug Reporting Tool"
-msgstr "自動バグ報告ツール(ABRT)"
-
-#: src/Gui/ccgui.glade:118
-msgid "_File"
-msgstr "ファイル(_F)"
+#: ../src/Gui/ccgui.glade.h:16
+msgid "Working..."
+msgstr "作業中..."
-#: src/Gui/ccgui.glade:138
+#: ../src/Gui/ccgui.glade.h:17
msgid "_Edit"
msgstr "編集(_E)"
-#: src/Gui/ccgui.glade:146
-msgid "Plugins"
-msgstr "プラグイン"
+#: ../src/Gui/ccgui.glade.h:18
+msgid "_File"
+msgstr "ファイル(_F)"
-#: src/Gui/ccgui.glade:164
+#: ../src/Gui/ccgui.glade.h:19
msgid "_Help"
msgstr "ヘルプ(_H)"
-#: src/Gui/ccgui.glade:194 src/Gui/ccgui.glade:195
-msgid "Delete"
-msgstr "削除"
-
-#: src/Gui/ccgui.glade:207 src/Gui/ccgui.glade:208 src/Gui/ccgui.glade:335
-#: src/Gui/report.glade:7 src/Gui/report.glade:24
-msgid "Report"
-msgstr "報告"
-
-#: src/Gui/ccgui.glade:255
-msgid "<span color=\"white\">Description</span>"
-msgstr "<span color=\"white\">記述</span>"
-
-#: src/Gui/ccgui.glade:297 src/Gui/CCMainWindow.py:239
-msgid "<b>Not reported!</b>"
-msgstr "<b>報告がありません!</b>"
-
-#: src/Gui/CCMainWindow.py:80
+#. add pixbuff separatelly
+#: ../src/Gui/CCMainWindow.py:80
msgid "Icon"
msgstr "アイコン"
-#: src/Gui/CCMainWindow.py:88
+#: ../src/Gui/CCMainWindow.py:88
msgid "Package"
msgstr "パッケージ"
-#: src/Gui/CCMainWindow.py:89
+#: ../src/Gui/CCMainWindow.py:89
msgid "Application"
msgstr "アプリケーション"
-#: src/Gui/CCMainWindow.py:90
+#: ../src/Gui/CCMainWindow.py:90
msgid "Date"
msgstr "期日"
-#: src/Gui/CCMainWindow.py:91
+#: ../src/Gui/CCMainWindow.py:91
msgid "Crash Rate"
msgstr "クラッシュレート"
-#: src/Gui/CCMainWindow.py:93
+#: ../src/Gui/CCMainWindow.py:93
msgid "User"
msgstr "ユーザー"
-#: src/Gui/CCMainWindow.py:177
+#: ../src/Gui/CCMainWindow.py:178
#, python-format
msgid ""
"Unable to finish current task!\n"
@@ -182,7 +186,7 @@ msgstr ""
"現在のタスクを終了できません! \n"
"%s"
-#: src/Gui/CCMainWindow.py:194
+#: ../src/Gui/CCMainWindow.py:195
#, python-format
msgid ""
"Error while loading the dumplist, please check if abrt daemon is running\n"
@@ -191,16 +195,16 @@ msgstr ""
"dumplist のロード中にエラーが発生。abrt デーモンが稼働しているかチェックして"
"下さいn %s"
-#: src/Gui/CCMainWindow.py:204
+#: ../src/Gui/CCMainWindow.py:205
#, python-format
msgid "Can't get username for uid %s"
msgstr "uid %s 用のユーザー名を取得できません"
-#: src/Gui/CCMainWindow.py:231
+#: ../src/Gui/CCMainWindow.py:232
msgid "<b>This crash has been reported, you can find the report(s) at:</b>\n"
msgstr "<b>このクラッシュは報告済みです。報告は以下で見ることができます:</b>\n"
-#: src/Gui/CCMainWindow.py:291
+#: ../src/Gui/CCMainWindow.py:292
msgid ""
"Unable to get report!\n"
"Debuginfo is missing?"
@@ -208,7 +212,7 @@ msgstr ""
"報告を取得できません\n"
"Debuginfo が無いですか ?"
-#: src/Gui/CCMainWindow.py:306
+#: ../src/Gui/CCMainWindow.py:308
#, python-format
msgid ""
"Reporting failed!\n"
@@ -217,12 +221,12 @@ msgstr ""
"報告が失敗しました!\n"
"%s"
-#: src/Gui/CCMainWindow.py:338
+#: ../src/Gui/CCMainWindow.py:340
#, python-format
msgid "Error getting the report: %s"
msgstr "報告の取得中にエラーです: %s"
-#: src/Gui/CCReporterDialog.py:98
+#: ../src/Gui/CCReporterDialog.py:98
#, python-format
msgid ""
"<b>WARNING</b>, you're about to send data which might contain sensitive "
@@ -232,190 +236,186 @@ msgstr ""
"<b>警告</b>、機密情報を含む可能性のあるデータを送信 しようとしています。\n"
"本当に<b>%s</b>を送信したいですか ?\n"
-#: src/Gui/CCReporterDialog.py:111
+#: ../src/Gui/CCReporterDialog.py:111
msgid "Brief description how to reproduce this or what you did..."
msgstr "この問題の再現手順、または実行したことの簡単な説明..."
-#: src/Gui/dialogs.glade:7
+#: ../src/Gui/dialogs.glade.h:1
msgid "Report done"
msgstr "報告完了"
-#: src/Gui/dialogs.glade:47 src/Gui/settings.glade:695
-#: src/Gui/settings.glade:785
+#: ../src/Gui/dialogs.glade.h:2 ../src/Gui/settings.glade.h:27
msgid "gtk-ok"
msgstr "gtk-ok"
-#: src/Gui/PluginSettingsUI.py:17
+#: ../src/Gui/PluginSettingsUI.py:18
msgid "Can't find PluginDialog widget in UI description!"
msgstr "UI 説明の中で PluginDialog ウィジェットを見つけることが出来ません!"
-#: src/Gui/PluginSettingsUI.py:21
+#. we shouldn't get here, but just to be safe
+#: ../src/Gui/PluginSettingsUI.py:24
#, python-format
msgid "No UI for plugin %s"
msgstr "plugin の UI がありません %s"
-#: src/Gui/PluginSettingsUI.py:38 src/Gui/PluginSettingsUI.py:64
+#: ../src/Gui/PluginSettingsUI.py:55 ../src/Gui/PluginSettingsUI.py:81
msgid "combo box is not implemented"
msgstr "combo box が実装されていません"
-#: src/Gui/PluginSettingsUI.py:47
+#: ../src/Gui/PluginSettingsUI.py:64
msgid "Nothing to hydrate!"
msgstr "表示するデータはありません!"
-#: src/Gui/report.glade:64
+#: ../src/Gui/report.glade.h:1
msgid "Comment"
msgstr "コメント"
-#: src/Gui/report.glade:104 src/Gui/settings.glade:682
-#: src/Gui/settings.glade:797
-msgid "gtk-cancel"
-msgstr "gtk-cancel"
-
-#: src/Gui/report.glade:119
+#: ../src/Gui/report.glade.h:3
msgid "Send"
msgstr "送信"
-#: src/Gui/SettingsDialog.py:34 src/Gui/SettingsDialog.py:51
+#: ../src/Gui/report.glade.h:4 ../src/Gui/settings.glade.h:25
+msgid "gtk-cancel"
+msgstr "gtk-cancel"
+
+#: ../src/Gui/SettingsDialog.py:34 ../src/Gui/SettingsDialog.py:51
msgid "<b>Select plugin</b>"
msgstr "<b>plugin を選択</b>"
-#: src/Gui/SettingsDialog.py:37
+#: ../src/Gui/SettingsDialog.py:37
msgid "<b>Select database backend</b>"
msgstr "<b>データベースバックエンドを選択</b>"
-#: src/Gui/SettingsDialog.py:165
+#: ../src/Gui/SettingsDialog.py:168
msgid "Remove this job"
msgstr "このジョブを取り除く"
-#: src/Gui/SettingsDialog.py:208
+#: ../src/Gui/SettingsDialog.py:211
msgid "Remove this action"
msgstr "このアクションを取り除く"
-#: src/Gui/settings.glade:6
-msgid "Settings"
-msgstr "設定"
+#: ../src/Gui/settings.glade.h:1
+msgid "<b>Analyzer plugin</b>"
+msgstr "<b>アナライザー plugin</b>"
-#: src/Gui/settings.glade:46 src/Gui/settings.glade:55
-#: src/Gui/settings.glade:107 src/Gui/settings.glade:120
-#: src/Gui/settings.glade:133
-msgid "Nothing selected"
-msgstr "選択されていません"
+#: ../src/Gui/settings.glade.h:2
+msgid "<b>Associated action</b>"
+msgstr "<b>関連したアクション</b>"
-#: src/Gui/settings.glade:72
-msgid "Web Site:"
-msgstr "ウェブサイト:"
+#: ../src/Gui/settings.glade.h:3
+msgid "<b>Plugin</b>"
+msgstr "<b>Plugin</b>"
+
+#: ../src/Gui/settings.glade.h:4
+msgid "<b>Time (or period)</b>"
+msgstr "<b>時間 (又は、期間)</b>"
-#: src/Gui/settings.glade:84
+#: ../src/Gui/settings.glade.h:5
+msgid "Analyzers, Actions, Reporters"
+msgstr "アナライザ、アクション、レポーター"
+
+#: ../src/Gui/settings.glade.h:6
msgid "Author:"
msgstr "著者:"
-#: src/Gui/settings.glade:97
-msgid "Version:"
-msgstr "バージョン:"
-
-#: src/Gui/settings.glade:152
-msgid "Plugin Details"
-msgstr "Plugin の詳細"
+#: ../src/Gui/settings.glade.h:7
+msgid "Blacklisted packages: "
+msgstr "ブラックリスト内のパッケージ:"
-#: src/Gui/settings.glade:179
+#: ../src/Gui/settings.glade.h:8
msgid "C_onfigure plugin"
msgstr "plugin を設定(_C)"
-#: src/Gui/settings.glade:191
-msgid "gtk-close"
-msgstr "gtk-close"
-
-#: src/Gui/settings.glade:221
-msgid "Global Settings"
-msgstr "グローバル設定"
-
-#: src/Gui/settings.glade:240
+#: ../src/Gui/settings.glade.h:9
msgid "Check package GPG signature"
msgstr "パッケージの GPG 署名をチェック"
-#: src/Gui/settings.glade:256
+#: ../src/Gui/settings.glade.h:10
+msgid "Common"
+msgstr "共通"
+
+#: ../src/Gui/settings.glade.h:11
+msgid "Cron"
+msgstr "Cron"
+
+#: ../src/Gui/settings.glade.h:12
msgid "Database backend: "
msgstr "データベースバックエンド:"
-#: src/Gui/settings.glade:281
-msgid "Blacklisted packages: "
-msgstr "ブラックリスト内のパッケージ:"
+#: ../src/Gui/settings.glade.h:13
+msgid "Edit blacklisted packages"
+msgstr "ブラックリスト内のパッケージを編集"
-#: src/Gui/settings.glade:294
-msgid "Max coredump storage size(MB):"
-msgstr "コアダンプ格納の最大サイズ (MB):"
+#: ../src/Gui/settings.glade.h:14
+msgid "GPG Keys"
+msgstr "GPG キー"
-#: src/Gui/settings.glade:307
+#: ../src/Gui/settings.glade.h:15
msgid "GPG keys: "
msgstr "GPG キー: "
-#: src/Gui/settings.glade:349
-msgid "Edit blacklisted packages"
-msgstr "ブラックリスト内のパッケージを編集"
-
-#: src/Gui/settings.glade:408
-msgid "Common"
-msgstr "共通"
+#: ../src/Gui/settings.glade.h:16
+msgid "Global Settings"
+msgstr "グローバル設定"
-#: src/Gui/settings.glade:438
-msgid "<b>Plugin</b>"
-msgstr "<b>Plugin</b>"
+#: ../src/Gui/settings.glade.h:17
+msgid "Max coredump storage size(MB):"
+msgstr "コアダンプ格納の最大サイズ (MB):"
-#: src/Gui/settings.glade:448
-msgid "<b>Time (or period)</b>"
-msgstr "<b>時間 (又は、期間)</b>"
+#: ../src/Gui/settings.glade.h:18
+msgid "Nothing selected"
+msgstr "選択されていません"
-#: src/Gui/settings.glade:510 src/Gui/settings.glade:624
-#: src/Gui/settings.glade:761
-msgid "gtk-add"
-msgstr "gtk-add"
+#: ../src/Gui/settings.glade.h:19
+msgid "Plugin Details"
+msgstr "Plugin の詳細"
-#: src/Gui/settings.glade:534
-msgid "Cron"
-msgstr "Cron"
+#: ../src/Gui/settings.glade.h:20
+msgid "Settings"
+msgstr "設定"
-#: src/Gui/settings.glade:551
-msgid "<b>Analyzer plugin</b>"
-msgstr "<b>アナライザー plugin</b>"
+#: ../src/Gui/settings.glade.h:21
+msgid "This function is not implemented yet!"
+msgstr "この機能はまだ実装されていません!"
-#: src/Gui/settings.glade:561
-msgid "<b>Associated action</b>"
-msgstr "<b>関連したアクション</b>"
+#: ../src/Gui/settings.glade.h:22
+msgid "Version:"
+msgstr "バージョン:"
-#: src/Gui/settings.glade:648
-msgid "Analyzers, Actions, Reporters"
-msgstr "アナライザ、アクション、レポーター"
+#: ../src/Gui/settings.glade.h:23
+msgid "Web Site:"
+msgstr "ウェブサイト:"
-#: src/Gui/settings.glade:700
-msgid "This function is not implemented yet!"
-msgstr "この機能はまだ実装されていません!"
+#: ../src/Gui/settings.glade.h:24
+msgid "gtk-add"
+msgstr "gtk-add"
-#: src/Gui/settings.glade:738
-msgid "GPG Keys"
-msgstr "GPG キー"
+#: ../src/Gui/settings.glade.h:26
+msgid "gtk-close"
+msgstr "gtk-close"
-#: src/Gui/settings.glade:773
+#: ../src/Gui/settings.glade.h:28
msgid "gtk-remove"
msgstr "gtk-remove"
-#: src/Applet/Applet.cpp:71
+#: ../src/Applet/Applet.cpp:71
#, c-format
msgid "A crash in package %s has been detected"
msgstr "パッケージ %s のクラッシュが検出されました"
-#: src/Applet/Applet.cpp:130
+#: ../src/Applet/Applet.cpp:130
msgid "ABRT service has been started"
msgstr "ABRT サービスは開始しています"
-#: src/Applet/Applet.cpp:132 src/Applet/Applet.cpp:246
+#: ../src/Applet/Applet.cpp:132 ../src/Applet/Applet.cpp:246
msgid "ABRT service is not running"
msgstr "ABRT サービスは稼働していません。"
-#: src/Applet/CCApplet.cpp:185
+#: ../src/Applet/CCApplet.cpp:185
msgid "Warning"
msgstr "警告"
-#: src/Daemon/Daemon.cpp:546
+#: ../src/Daemon/Daemon.cpp:542
msgid ""
"Report size exceeded the quota. Please check system's MaxCrashReportsSize "
"value in abrt.conf."
@@ -423,124 +423,127 @@ msgstr ""
"報告のサイズが割り当て超過です。abrt.conf の中で MaxCrashReportsSize の値を "
"チェックして下さい。"
-#: lib/Plugins/Bugzilla.cpp:83
+#: ../lib/Plugins/Bugzilla.cpp:83
msgid "Empty login and password. Please check Bugzilla.conf"
msgstr "ログインとパスワードが空です。Bugzilla.conf を確認して下さい"
-#: lib/Plugins/Bugzilla.cpp:227
+#: ../lib/Plugins/Bugzilla.cpp:205
msgid "Bug is already reported: "
msgstr "バグは既に報告済みです:"
-#: lib/Plugins/Bugzilla.cpp:282
+#: ../lib/Plugins/Bugzilla.cpp:260
#, c-format
msgid "Binary file %s will not be reported."
msgstr "バイナリファイル %s は報告されません。"
-#: lib/Plugins/Bugzilla.cpp:352
+#: ../lib/Plugins/Bugzilla.cpp:330
msgid "New bug id: "
msgstr "新しいバグ id:"
-#: lib/Plugins/Bugzilla.cpp:421
+#: ../lib/Plugins/Bugzilla.cpp:399
msgid "Checking for duplicates..."
msgstr "重複をチェックしています..."
-#: lib/Plugins/Bugzilla.cpp:424 lib/Plugins/Bugzilla.cpp:436
+#: ../lib/Plugins/Bugzilla.cpp:402 ../lib/Plugins/Bugzilla.cpp:413
msgid "Logging into bugzilla..."
msgstr "bugzilla にログインしています..."
-#: lib/Plugins/Bugzilla.cpp:427
-msgid "Check CC and add coment +1..."
-msgstr "CC を確認して、コメント +1 を追加します..."
+#: ../lib/Plugins/Bugzilla.cpp:405
+msgid "Checking CC..."
+msgstr "CC をチェックしています..."
-#: lib/Plugins/Bugzilla.cpp:448
+#: ../lib/Plugins/Bugzilla.cpp:425
msgid "Creating new bug..."
msgstr "新しいバグを作成中..."
-#: lib/Plugins/Bugzilla.cpp:453
+#: ../lib/Plugins/Bugzilla.cpp:430
msgid "Logging out..."
msgstr "ログアウトしています..."
-#: lib/Plugins/Kerneloops.cpp:37
+#: ../lib/Plugins/Kerneloops.cpp:37
msgid "Getting local universal unique identification"
msgstr "ローカルで普遍的な独特の識別を取得しています"
-#: lib/Plugins/CCpp.cpp:146
+#: ../lib/Plugins/CCpp.cpp:153
msgid "Getting backtrace..."
msgstr "バックトレース取得中..."
-#: lib/Plugins/CCpp.cpp:410
+#: ../lib/Plugins/CCpp.cpp:425
msgid "Searching for debug-info packages..."
msgstr "debug-info パッケージを探しています..."
-#: lib/Plugins/CCpp.cpp:444
+#: ../lib/Plugins/CCpp.cpp:487
msgid "Downloading and installing debug-info packages..."
msgstr "debug-info パッケージをダウンロードしてインストール中..."
-#: lib/Plugins/CCpp.cpp:506
+#: ../lib/Plugins/CCpp.cpp:549
msgid "Getting local universal unique identification..."
msgstr "ローカルで普遍的な独特の識別を取得しています..."
-#: lib/Plugins/CCpp.cpp:525
+#: ../lib/Plugins/CCpp.cpp:568
msgid "Getting global universal unique identification..."
msgstr "グローバルで普遍的な独特の識別を取得しています..."
-#: lib/Plugins/CCpp.cpp:576
+#: ../lib/Plugins/CCpp.cpp:619
msgid "Starting report creation..."
msgstr "報告作成を開始しています..."
-#: lib/Plugins/CCpp.cpp:605
+#: ../lib/Plugins/CCpp.cpp:649
msgid "Skipping debuginfo installation"
msgstr "debuginfo のインストールをスキップします"
-#: lib/Plugins/KerneloopsReporter.cpp:101
+#: ../lib/Plugins/KerneloopsReporter.cpp:101
msgid "Creating and submitting a report..."
msgstr "報告の作成と提出をしています..."
-#: lib/Plugins/Logger.cpp:58 lib/Plugins/Mailx.cpp:123
+#: ../lib/Plugins/Logger.cpp:58 ../lib/Plugins/Mailx.cpp:123
msgid "Creating a report..."
msgstr "報告を作成しています..."
-#: lib/Plugins/RunApp.cpp:62
+#: ../lib/Plugins/RunApp.cpp:62
msgid "Executing RunApp plugin..."
msgstr "RunApp plugin を実行中..."
-#: lib/Plugins/FileTransfer.cpp:60 lib/Plugins/FileTransfer.cpp:355
+#: ../lib/Plugins/FileTransfer.cpp:63 ../lib/Plugins/FileTransfer.cpp:409
msgid "FileTransfer: URL not specified"
msgstr "ファイル転送: URL が示されていません"
-#: lib/Plugins/FileTransfer.cpp:77
+#: ../lib/Plugins/FileTransfer.cpp:81
#, c-format
msgid "Sending archive %s via %s"
msgstr "アーカイブ %s を %s 経由で送信中"
-#: lib/Plugins/FileTransfer.cpp:284
+#: ../lib/Plugins/FileTransfer.cpp:336
msgid "File Transfer: Creating a report..."
msgstr "ファイル転送: 報告を作成中..."
-#: lib/Plugins/FileTransfer.cpp:305 lib/Plugins/FileTransfer.cpp:334
+#: ../lib/Plugins/FileTransfer.cpp:358 ../lib/Plugins/FileTransfer.cpp:386
msgid "CFileTransfer::Run(): Cannot create and send an archive: "
msgstr "CFileTransfer::Run(): アーカイブを作成して送信できません:"
-#: lib/Plugins/KerneloopsScanner.cpp:79
+#: ../lib/Plugins/KerneloopsScanner.cpp:79
msgid "Creating kernel oops crash reports..."
msgstr "カーネル oops クラッシュ報告を作成中..."
-#: lib/Plugins/Mailx.cpp:109
+#: ../lib/Plugins/Mailx.cpp:109
msgid "Sending an email..."
msgstr "電子メールを送信中..."
-#: lib/Plugins/SOSreport.cpp:113
+#: ../lib/Plugins/SOSreport.cpp:113
msgid "Executing SOSreport plugin..."
msgstr "SOSreport plugin の実行中..."
-#: lib/Plugins/SOSreport.cpp:135
+#: ../lib/Plugins/SOSreport.cpp:135
msgid "running sosreport: "
msgstr "sosreport を実行しています:"
-#: lib/Plugins/SOSreport.cpp:150
+#: ../lib/Plugins/SOSreport.cpp:150
msgid "done running sosreport"
msgstr "sosreport の実行完了"
+#~ msgid "Check CC and add coment +1..."
+#~ msgstr "CC を確認して、コメント +1 を追加します..."
+
#~ msgid "Pending events: %i"
#~ msgstr "保留中のイベント: %i"
diff --git a/src/CLI/CLI.cpp b/src/CLI/CLI.cpp
index 3c38508b..33272df5 100644
--- a/src/CLI/CLI.cpp
+++ b/src/CLI/CLI.cpp
@@ -1,18 +1,40 @@
+/*
+ Copyright (C) 2009 RedHat inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
#include <getopt.h>
#include "ABRTException.h"
#include "ABRTSocket.h"
#include "abrtlib.h"
#include "abrt_dbus.h"
#include "DBusCommon.h"
+#if HAVE_CONFIG_H
+ #include <config.h>
+#endif
+/* Program options */
enum
{
- HELP,
- GET_LIST,
- GET_LIST_FULL,
- REPORT,
- REPORT_ALWAYS,
- DELETE
+ OPT_VERSION,
+ OPT_HELP,
+ OPT_GET_LIST,
+ OPT_GET_LIST_FULL,
+ OPT_REPORT,
+ OPT_REPORT_ALWAYS,
+ OPT_DELETE
};
static DBusConnection* s_dbus_conn;
@@ -23,7 +45,7 @@ static void print_crash_infos(vector_crash_infos_t& pCrashInfos, int pMode)
for (ii = 0; ii < pCrashInfos.size(); ii++)
{
map_crash_info_t& info = pCrashInfos[ii];
- if (pMode == GET_LIST_FULL || info.find(CD_REPORTED)->second[CD_CONTENT] != "1")
+ if (pMode == OPT_GET_LIST_FULL || info.find(CD_REPORTED)->second[CD_CONTENT] != "1")
{
printf("%u.\n"
"\tUID : %s\n"
@@ -170,57 +192,75 @@ static void handle_dbus_err(bool error_flag, DBusError *err)
static const struct option longopts[] =
{
/* name, has_arg, flag, val */
- { "help" , no_argument , NULL, HELP },
- { "version" , no_argument , NULL, HELP },
- { "get-list" , no_argument , NULL, GET_LIST },
- { "get-list-full", no_argument , NULL, GET_LIST_FULL },
- { "report" , required_argument, NULL, REPORT },
- { "report-always", required_argument, NULL, REPORT_ALWAYS },
- { "delete" , required_argument, NULL, DELETE },
+ { "help" , no_argument , NULL, OPT_HELP },
+ { "version" , no_argument , NULL, OPT_VERSION },
+ { "get-list" , no_argument , NULL, OPT_GET_LIST },
+ { "get-list-full", no_argument , NULL, OPT_GET_LIST_FULL },
+ { "report" , required_argument, NULL, OPT_REPORT },
+ { "report-always", required_argument, NULL, OPT_REPORT_ALWAYS },
+ { "delete" , required_argument, NULL, OPT_DELETE },
+ { 0, 0, 0, 0 } /* prevents crashes for unknown options*/
};
+/* Gets program name from command line argument. */
+static char *progname(char *argv0)
+{
+ char* name = strrchr(argv0, '/');
+ if (name)
+ return ++name;
+ else
+ return argv0;
+}
+
int main(int argc, char** argv)
{
char* uuid = NULL;
int op = -1;
+ char *name;
while (1)
{
int option_index;
- int c = getopt_long_only(argc, argv, "", longopts, &option_index);
+ int c = getopt_long_only(argc, argv, "?V", longopts, &option_index);
switch (c)
{
- case REPORT:
- case REPORT_ALWAYS:
- case DELETE:
+ case OPT_REPORT:
+ case OPT_REPORT_ALWAYS:
+ case OPT_DELETE:
uuid = optarg;
/* fall through */
- case GET_LIST:
- case GET_LIST_FULL:
+ case OPT_GET_LIST:
+ case OPT_GET_LIST_FULL:
if (op == -1)
break;
- /* fall through */
- case -1: /* end of options */
- if (op != -1)
- break;
- error_msg("You must specify exactly one operation.");
+ error_msg("You must specify exactly one operation.");
+ return 1;
+ case -1: /* end of options */
+ if (op != -1) /* if some operation was specified... */
+ break;
/* fall through */
default:
- case HELP:
- char* progname = strrchr(argv[0], '/');
- if (progname)
- progname++;
- else
- progname = argv[0];
+ case '?':
+ case OPT_HELP:
+ name = progname(argv[0]);
+ printf("%s " VERSION "\n\n", name);
/* note: message has embedded tabs */
printf("Usage: %s [OPTION]\n\n"
- " --get-list print list of crashes which are not reported\n"
+ "Startup:\n"
+ " -V, --version display the version of %s and exit\n"
+ " -?, --help print this help\n\n"
+ "Actions:\n"
+ " --get-list print list of crashes which are not reported yet\n"
" --get-list-full print list of all crashes\n"
" --report UUID create and send a report\n"
" --report-always UUID create and send a report without asking\n"
- " --delete UUID delete crash\n",
- progname);
+ " --delete UUID remove crash\n",
+ name, name);
return 1;
+ case 'V':
+ case OPT_VERSION:
+ printf("%s " VERSION "\n", progname(argv[0]));
+ return 0;
}
if (c == -1)
break;
@@ -238,14 +278,14 @@ int main(int argc, char** argv)
#endif
switch (op)
{
- case GET_LIST:
- case GET_LIST_FULL:
+ case OPT_GET_LIST:
+ case OPT_GET_LIST_FULL:
{
vector_crash_infos_t ci = call_GetCrashInfos();
print_crash_infos(ci, op);
break;
}
- case REPORT:
+ case OPT_REPORT:
{
map_crash_report_t cr = call_CreateReport(uuid);
print_crash_report(cr);
@@ -259,13 +299,13 @@ int main(int argc, char** argv)
}
break;
}
- case REPORT_ALWAYS:
+ case OPT_REPORT_ALWAYS:
{
map_crash_report_t cr = call_CreateReport(uuid);
call_Report(cr);
break;
}
- case DELETE:
+ case OPT_DELETE:
{
call_DeleteDebugDump(uuid);
break;
diff --git a/src/CLI/abrt-cli.1 b/src/CLI/abrt-cli.1
new file mode 100644
index 00000000..fb0a7c89
--- /dev/null
+++ b/src/CLI/abrt-cli.1
@@ -0,0 +1,36 @@
+.TH abrt\-cli "1" "12 Oct 2009" ""
+.SH NAME
+abrt\-cli \- a command line interface to abrt
+.SH SYNOPSIS
+.B abrt\-cli
+[option]
+.SH DESCRIPTION
+.I abrt\-cli
+is a command line tool that manages application crashes catched by
+.I abrtd
+daemon. It enables access to crash data, and allows to report
+crashes depending on active abrt plugins.
+.SH OPTIONS
+.B Basic startup options
+.IP "\-V, \-\-version"
+Displays version of abrt\-cli.
+.IP "\-?, \-\-help"
+Print a help message describing all of abrt-cli’s command-line options.
+
+.PP
+.B Crash action options
+.IP "\-\-get\-list"
+Prints list of crashes which are not reported yet.
+.IP "\-\-get-list-full"
+Prints list of all crashes.
+.IP "\-\-report \fIUUID\fR"
+Creates and sends a report.
+.IP "\-\-report-always \fIUUID\fR"
+Creates and sends a report without asking.
+.IP "\-\-delete \fIUUID\fR"
+Removes crash.
+.SH "SEE ALSO"
+.IR abrtd (8),
+.IR abrt.conf (5),
+.IR abrt-plugins (7)
+
diff --git a/src/Daemon/Daemon.cpp b/src/Daemon/Daemon.cpp
index cea0c156..d1ab188e 100644
--- a/src/Daemon/Daemon.cpp
+++ b/src/Daemon/Daemon.cpp
@@ -658,7 +658,7 @@ int main(int argc, char** argv)
break;
default:
error_msg_and_die(
- "Usage: abrt [-dv]\n"
+ "Usage: abrtd [-dv]\n"
"\nOptions:"
"\n\t-d\tDo not daemonize"
"\n\t-s\tLog to syslog even with -d"
diff --git a/src/Gui/CCDBusBackend.py b/src/Gui/CCDBusBackend.py
index 70db9fff..30c51038 100644
--- a/src/Gui/CCDBusBackend.py
+++ b/src/Gui/CCDBusBackend.py
@@ -157,9 +157,9 @@ class DBusManager(gobject.GObject):
def report_done(self, result):
self.emit("report-done", result)
- def getReport(self, UUID):
+ def getReport(self, UUID, force=0):
# 2nd param is "force recreating of backtrace etc"
- self.daemon().CreateReport(UUID, 0, timeout=60)
+ self.daemon().CreateReport(UUID, force, timeout=60)
def Report(self, report, reporters_settings = None):
# map < Plguin_name vec <status, message> >
diff --git a/src/Gui/CCMainWindow.py b/src/Gui/CCMainWindow.py
index 1b4848dc..eee68844 100644
--- a/src/Gui/CCMainWindow.py
+++ b/src/Gui/CCMainWindow.py
@@ -204,10 +204,10 @@ class MainWindow():
except Exception, e:
user = _("Can't get username for uid %s" % entry.getUID())
n = self.dumpsListStore.append([icon, entry.getPackage(), entry.getExecutable(),
- entry.getTime("%Y.%m.%d %H:%M:%S"), entry.getCount(), user, entry.isReported(), entry])
+ entry.getTime("%c"), entry.getCount(), user, entry.isReported(), entry])
else:
n = self.dumpsListStore.append([icon, entry.getPackage(), entry.getExecutable(),
- entry.getTime("%Y.%m.%d %H:%M:%S"), entry.getCount(), entry.isReported(), entry])
+ entry.getTime("%c"), entry.getCount(), entry.isReported(), entry])
# activate the last row if any..
if n:
self.dlist.set_cursor(self.dumpsListStore.get_path(n))
@@ -291,9 +291,11 @@ class MainWindow():
if not report:
gui_error_message(_("Unable to get report!\nDebuginfo is missing?"))
return
- report_dialog = ReporterDialog(report)
- result = report_dialog.run()
- if result:
+ report_dialog = ReporterDialog(report, self.ccdaemon)
+ # (response, report)
+ response, result = report_dialog.run()
+
+ if response == gtk.RESPONSE_APPLY:
try:
self.update_pBar = False
self.pBarWindow.show_all()
@@ -306,12 +308,26 @@ class MainWindow():
#self.hydrate()
except Exception, e:
gui_error_message(_("Reporting failed!\n%s" % e))
- #ret = gui_question_dialog("GUI: Analyze for package %s crash with UUID %s is complete" % (entry.Package, UUID),self.window)
- #if ret == gtk.RESPONSE_YES:
- # self.hydrate()
- #else:
- # pass
- #print "got another crash, refresh gui?"
+ # -50 == REFRESH
+ elif response == -50:
+ self.refresh_report(report)
+
+ def refresh_report(self, report):
+ self.update_pBar = False
+ self.pBarWindow.show_all()
+ self.timer = gobject.timeout_add (100,self.progress_update_cb)
+
+ # show the report window with selected report
+ try:
+ self.ccdaemon.getReport(report["_MWUUID"][2], force=1)
+ except Exception, e:
+ # FIXME #3 dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Did not receive a reply
+ # do this async and wait for yum to end with debuginfoinstal
+ if self.timer:
+ gobject.source_remove(self.timer)
+ self.pBarWindow.hide()
+ gui_error_message(_("Error getting the report: %s" % e))
+ return
def on_bReport_clicked(self, button):
dumpsListStore, path = self.dlist.get_selection().get_selected_rows()
diff --git a/src/Gui/CCReporterDialog.py b/src/Gui/CCReporterDialog.py
index 8804eeee..eb311f73 100644
--- a/src/Gui/CCReporterDialog.py
+++ b/src/Gui/CCReporterDialog.py
@@ -8,6 +8,9 @@ import sys
from CC_gui_functions import *
from CCReport import Report
import CellRenderers
+from ABRTPlugin import PluginInfo
+from PluginSettingsUI import PluginSettingsUI
+from PluginList import getPluginInfoList
#from CCDumpList import getDumpList, DumpList
from abrt_utils import _
@@ -15,10 +18,12 @@ from abrt_utils import _
TYPE = 0
EDITABLE = 1
CONTENT = 2
+# response
+REFRESH = -50
class ReporterDialog():
"""Reporter window"""
- def __init__(self, report):
+ def __init__(self, report, daemon):
self.editable = []
self.row_dict = {}
self.report = report
@@ -29,6 +34,7 @@ class ReporterDialog():
#Get the Main Window, and connect the "destroy" event
self.window = self.wTree.get_widget("reporter_dialog")
self.window.set_default_size(640, 480)
+ self.window.connect("response", self.on_response, daemon)
# comment textview
self.tvComment = self.wTree.get_widget("tvComment")
@@ -65,13 +71,18 @@ class ReporterDialog():
column.add_attribute( toggle_renderer, "visible", 4)
self.tvReport.insert_column(column,0)
# connect the signals
- 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.wTree.get_widget("bSend").connect("clicked", self.on_send_clicked)
self.hydrate()
+ # this callback is called when user press Cancel or Report button in Report dialog
+ def on_response(self, dialog, response_id, daemon ):
+ # thu button has been pressed (probably)
+ if response_id == gtk.RESPONSE_APPLY:
+ if not self.check_settings(daemon):
+ dialog.stop_emission("response")
+ self.wTree.get_widget("bSend").stop_emission("clicked")
+
def on_send_toggled(self, cell, path, model):
model[path][3] = not model[path][3]
@@ -90,21 +101,66 @@ class ReporterDialog():
model[path][1] = new_text
return
- def on_apply_clicked(self, button, treeview):
- attributes = ["item", "content", "editable", "send", "attachment"]
- for row in self.reportListStore:
- rowe = dict(zip(attributes, row))
- if (rowe["attachment"] or (rowe["editable"] and rowe["attachment"])) and rowe["send"]:
- result = gui_question_dialog(_("<b>WARNING</b>, you're about to send data which might contain sensitive information.\n"
- "Do you really want to send <b>%s</b>?\n" % rowe["item"]), self.window)
- if result == gtk.RESPONSE_NO:
- row[attributes.index("send")] = False
- self.dehydrate()
+ def on_config_plugin_clicked(self, button, plugin, image):
+ ui = PluginSettingsUI(plugin, parent=self.window)
+ ui.hydrate()
+ response = ui.run()
+ if response == gtk.RESPONSE_APPLY:
+ ui.dehydrate()
+ plugin.save_settings()
+ if plugin.Settings.check():
+ box = image.get_parent()
+ im = gtk.Image()
+ im.set_from_stock(gtk.STOCK_APPLY, gtk.ICON_SIZE_MENU)
+ box.remove(image)
+ box.pack_start(im)
+ im.show()
+ image.destroy()
+ button.set_sensitive(False)
+ elif response == gtk.RESPONSE_CANCEL:
+ print "cancel"
+ ui.destroy()
+
+ def check_settings(self, daemon):
+ pluginlist = getPluginInfoList(daemon)
+ reporters = pluginlist.getReporterPlugins()
+ wrong_conf_plugs = []
+ for reporter in reporters:
+ if reporter.Settings.check() == False:
+ wrong_conf_plugs.append(reporter)
+
+ #gui_error_message(_("%s is not properly set!\nPlease check the settings and try to report again." % reporter))
+ if wrong_conf_plugs:
+ gladefile = "%s%ssettings_wizard.glade" % (sys.path[0],"/")
+ builder = gtk.Builder()
+ builder.add_from_file(gladefile)
+ dialog = builder.get_object("WrongSettings")
+ vbWrongSettings = builder.get_object("vbWrongSettings")
+ for plugin in wrong_conf_plugs:
+ hbox = gtk.HBox()
+ image = gtk.Image()
+ image.set_from_stock(gtk.STOCK_CANCEL, gtk.ICON_SIZE_MENU)
+ button = gtk.Button(plugin.getName())
+ button.connect("clicked", self.on_config_plugin_clicked, plugin, image)
+ hbox.pack_start(button)
+ hbox.pack_start(image)
+ vbWrongSettings.pack_start(hbox)
+ vbWrongSettings.show_all()
+ dialog.set_transient_for(self.window)
+ response = dialog.run()
+ dialog.destroy()
+ if response == gtk.RESPONSE_NO:
+ # user cancelled reporting
+ return False
+ if response == gtk.RESPONSE_YES:
+ # "user wants to proceed with report"
+ return True
+ return True
- def on_cancel_clicked(self, button, treeview):
- pass
def hydrate(self):
+ self.editable = []
+ self.reportListStore.clear()
for item in self.report:
if item == "Comment":
buff = gtk.TextBuffer()
@@ -146,10 +202,21 @@ class ReporterDialog():
else:
del self.report["Comment"]
+ def on_send_clicked(self, button):
+ #def on_apply_clicked(self, button, treeview):
+ attributes = ["item", "content", "editable", "send", "attachment"]
+ for row in self.reportListStore:
+ rowe = dict(zip(attributes, row))
+ if (rowe["attachment"] or (rowe["editable"] and rowe["attachment"])) and rowe["send"]:
+ result = gui_question_dialog(_("<b>WARNING</b>, you're about to send data which might contain sensitive information.\n"
+ "Do you really want to send <b>%s</b>?\n" % rowe["item"]), self.window)
+ if result == gtk.RESPONSE_NO:
+ row[attributes.index("send")] = False
+ self.dehydrate()
+ self.window.response(gtk.RESPONSE_APPLY)
+
def run(self):
result = self.window.run()
- if result != gtk.RESPONSE_APPLY:
- self.report = None
self.window.destroy()
- return self.report
+ return (result, self.report)
diff --git a/src/Gui/Makefile.am b/src/Gui/Makefile.am
index a3993fa5..ffdace54 100644
--- a/src/Gui/Makefile.am
+++ b/src/Gui/Makefile.am
@@ -8,7 +8,7 @@ PYTHON_FILES = CCDBusBackend.py CCDumpList.py CCDump.py CC_gui_functions.py \
SettingsDialog.py ABRTPlugin.py PluginList.py PluginSettingsUI.py \
PluginsSettingsDialog.py ConfBackend.py
-GLADE_FILES = ccgui.glade report.glade settings.glade dialogs.glade
+GLADE_FILES = ccgui.glade report.glade settings.glade dialogs.glade settings_wizard.glade
EXTRA_DIST = $(PYTHON_FILES) $(GLADE_FILES) abrt-gui abrt.desktop
diff --git a/src/Gui/report.glade b/src/Gui/report.glade
index e4a6c582..48fbad0a 100644
--- a/src/Gui/report.glade
+++ b/src/Gui/report.glade
@@ -47,7 +47,7 @@
</child>
</widget>
<packing>
- <property name="position">1</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
@@ -109,25 +109,34 @@
<property name="use_stock">True</property>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkButton" id="bApply">
- <property name="label" translatable="yes">Send</property>
- <property name="response_id">-10</property>
+ <widget class="GtkButton" id="bRefresh">
+ <property name="label" translatable="yes">gtk-refresh</property>
+ <property name="response_id">-50</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="use_stock">True</property>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
+ <child>
+ <widget class="GtkButton" id="bSend">
+ <property name="label" translatable="yes">Send</property>
+ <property name="response_id">-5</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ </widget>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="expand">False</property>
diff --git a/src/Gui/settings_wizard.glade b/src/Gui/settings_wizard.glade
new file mode 100644
index 00000000..2af5d77d
--- /dev/null
+++ b/src/Gui/settings_wizard.glade
@@ -0,0 +1,104 @@
+<?xml version="1.0"?>
+<interface>
+ <requires lib="gtk+" version="2.16"/>
+ <!-- interface-naming-policy project-wide -->
+ <object class="GtkDialog" id="WrongSettings">
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Wrong Settings Detected</property>
+ <property name="type_hint">normal</property>
+ <property name="has_separator">False</property>
+ <child internal-child="vbox">
+ <object class="GtkVBox" id="dialog-vbox3">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkVBox" id="ws_vbox1">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="lWrongSettingsWarning">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;WARNING:&lt;/b&gt; Wrong settings detected for some of the enabled reporter plugins, please use the buttons bellow to open respective configuration and fix it before you proceed, otherwise the reporting process can fail.
+</property>
+ <property name="use_markup">True</property>
+ <property name="wrap">True</property>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkVBox" id="vbWrongSettings">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lWrongSettings_question">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Do you want to continue?&lt;/b&gt;</property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child internal-child="action_area">
+ <object class="GtkHButtonBox" id="dialog-action_area3">
+ <property name="visible">True</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="bCancel">
+ <property name="label" translatable="yes">gtk-no</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="bContinue">
+ <property name="label" translatable="yes">gtk-yes</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-9">bCancel</action-widget>
+ <action-widget response="-8">bContinue</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/src/Hooks/CCpp.cpp b/src/Hooks/CCpp.cpp
index 5bbdc8a2..e6768a60 100644
--- a/src/Hooks/CCpp.cpp
+++ b/src/Hooks/CCpp.cpp
@@ -181,7 +181,8 @@ int main(int argc, char** argv)
dd.SaveText(FILENAME_CMDLINE, cmdline);
dd.SaveText(FILENAME_REASON, std::string("Process was terminated by signal ") + signal_str);
- snprintf(path + strlen(path), sizeof(path), "/%s", FILENAME_COREDUMP);
+ int len = strlen(path);
+ snprintf(path + len, sizeof(path) - len, "/"FILENAME_COREDUMP);
int fd;
/* We need coredumps to be readable by all, because