diff options
author | dnovotny <danny@rawhide.localdomain> | 2009-09-16 10:53:11 -0400 |
---|---|---|
committer | dnovotny <danny@rawhide.localdomain> | 2009-09-16 10:53:11 -0400 |
commit | 99dff4e51dc05e9313085334f5c09dcf36ca8b94 (patch) | |
tree | fc67e4e307b38533271f55da012a39a773decfe2 | |
parent | f5ebde6f7a629dd74f023a185b0398305ecad604 (diff) | |
parent | 5349d07f9cae8a2b9686916c1e5bd01a0fe14a29 (diff) | |
download | abrt-99dff4e51dc05e9313085334f5c09dcf36ca8b94.tar.gz abrt-99dff4e51dc05e9313085334f5c09dcf36ca8b94.tar.xz abrt-99dff4e51dc05e9313085334f5c09dcf36ca8b94.zip |
Merge branch 'master' of git://git.fedorahosted.org/git/abrt
Conflicts:
lib/Plugins/CCpp.cpp
lib/Utils/Polkit.cpp
-rw-r--r-- | lib/Plugins/CCpp.cpp | 401 | ||||
-rw-r--r-- | lib/Utils/Polkit.cpp | 6 | ||||
-rw-r--r-- | po/de.po | 89 | ||||
-rw-r--r-- | po/es.po | 33 | ||||
-rw-r--r-- | po/gu.po | 35 | ||||
-rw-r--r-- | po/ko.po | 31 | ||||
-rw-r--r-- | po/nl.po | 31 | ||||
-rw-r--r-- | po/pl.po | 31 | ||||
-rw-r--r-- | po/pt.po | 78 | ||||
-rw-r--r-- | po/pt_BR.po | 31 | ||||
-rw-r--r-- | po/ru.po | 33 | ||||
-rw-r--r-- | src/Daemon/MiddleWare.cpp | 10 | ||||
-rw-r--r-- | src/Daemon/RPM.cpp | 26 | ||||
-rw-r--r-- | src/Daemon/RPM.h | 10 | ||||
-rw-r--r-- | src/Gui/CCDBusBackend.py | 5 |
15 files changed, 456 insertions, 394 deletions
diff --git a/lib/Plugins/CCpp.cpp b/lib/Plugins/CCpp.cpp index 65851cb8..76858eb8 100644 --- a/lib/Plugins/CCpp.cpp +++ b/lib/Plugins/CCpp.cpp @@ -41,12 +41,21 @@ #define FILENAME_BACKTRACE "backtrace" #define FILENAME_MEMORYMAP "memorymap" -static pid_t ExecVP(const char* pCommand, char* const pArgs[], uid_t uid, std::string& pOutput); - CAnalyzerCCpp::CAnalyzerCCpp() : m_bMemoryMap(false), m_bInstallDebuginfo(true) {} +static bool is_hexstr(const char* str) +{ + while (*str) + { + if (!isxdigit(*str)) + return false; + str++; + } + return true; +} + static std::string CreateHash(const std::string& pInput) { std::string ret = ""; @@ -57,7 +66,7 @@ static std::string CreateHash(const std::string& pInput) hc = HASH_Create(HASH_AlgSHA1); if (!hc) { - throw CABRTException(EXCEP_PLUGIN, "CAnalyzerCCpp::CreateHash(): cannot initialize hash."); + error_msg_and_die("HASH_Create(HASH_AlgSHA1) failed"); /* paranoia */ } HASH_Begin(hc); HASH_Update(hc, reinterpret_cast<const unsigned char*>(pInput.c_str()), pInput.length()); @@ -79,102 +88,58 @@ static std::string CreateHash(const std::string& pInput) return hash_str; } -static void InstallDebugInfos(const std::string& pPackage) +static pid_t ExecVP(char** pArgs, uid_t uid, std::string& pOutput) { - update_client(_("Searching for debug-info packages...")); - - std::string packageName = pPackage.substr(0, pPackage.rfind("-", pPackage.rfind("-")-1)); + int pipeout[2]; char buff[1024]; - int pipein[2], pipeout[2]; pid_t child; - xpipe(pipein); - xpipe(pipeout); + struct passwd* pw = getpwuid(uid); + if (!pw) + { + throw CABRTException(EXCEP_PLUGIN, std::string(__func__) + ": cannot get GID for UID."); + } + xpipe(pipeout); child = fork(); - if (child < 0) + if (child == -1) { - close(pipein[0]); close(pipeout[0]); - close(pipein[1]); close(pipeout[1]); - throw CABRTException(EXCEP_PLUGIN, "CAnalyzerCCpp::InstallDebugInfos(): fork failed."); + perror_msg_and_die("fork"); } if (child == 0) { - close(pipein[1]); - close(pipeout[0]); - xmove_fd(pipein[0], STDIN_FILENO); + close(pipeout[0]); /* read side of the pipe */ xmove_fd(pipeout[1], STDOUT_FILENO); + /* Make sure stdin is safely open to nothing */ + close(STDIN_FILENO); + if (open("/dev/null", O_RDONLY)) + if (open("/", O_RDONLY)) + abort(); /* never happens */ /* Not a good idea, we won't see any error messages */ - /*close(STDERR_FILENO);*/ + /* close(STDERR_FILENO); */ + setgroups(1, &pw->pw_gid); + setregid(pw->pw_gid, pw->pw_gid); + setreuid(uid, uid); setsid(); - execlp("debuginfo-install", "debuginfo-install", "-y", "--", pPackage.c_str(), NULL); + + execvp(pArgs[0], pArgs); exit(0); } - close(pipein[0]); - close(pipeout[1]); - - /* Should not be needed (we use -y option), but just in case: */ - safe_write(pipein[1], "y\n", sizeof("y\n")-1); - close(pipein[1]); - - update_client(_("Downloading and installing debug-info packages...")); + close(pipeout[1]); /* write side of the pipe */ - FILE *pipeout_fp = fdopen(pipeout[0], "r"); - if (pipeout_fp == NULL) /* never happens */ + int r; + while ((r = read(pipeout[0], buff, sizeof(buff) - 1)) > 0) { - close(pipeout[0]); - wait(NULL); - return; + buff[r] = '\0'; + pOutput += buff; } -/* glx-utils, for example, do not have glx-utils-debuginfo package. - * Disabled code was causing failures in backtrace decoding. - * This does not seem to be useful. - */ -#ifdef COMPLAIN_IF_NO_DEBUGINFO - bool already_installed = false; -#endif - while (fgets(buff, sizeof(buff), pipeout_fp)) - { - int last = strlen(buff) - 1; - if (last >= 0 && buff[last] == '\n') - buff[last] = '\0'; - - /* log(buff); - update_client logs it too */ - update_client(buff); /* maybe only if buff != ""? */ - -#ifdef COMPLAIN_IF_NO_DEBUGINFO - if (already_installed == false) - { - /* "Package foo-debuginfo-1.2-5.ARCH already installed and latest version" */ - char* pn = strstr(buff, packageName.c_str()); - if (pn) - { - char* already_str = strstr(pn, "already installed and latest version"); - if (already_str) - { - already_installed = true; - } - } - } - - if (already_installed == false && - (strstr(buff, "No debuginfo packages available to install") != NULL || - strstr(buff, "Could not find debuginfo for main pkg") != NULL || - strstr(buff, "Could not find debuginfo pkg for dependency package") != NULL)) - { - fclose(pipeout_fp); - kill(child, SIGTERM); - wait(NULL); - throw CABRTException(EXCEP_PLUGIN, std::string(__func__) + ": cannot install debuginfos for " + pPackage); - } -#endif - } + close(pipeout[0]); + wait(NULL); /* prevent having zombie child process */ - fclose(pipeout_fp); - wait(NULL); + return 0; } static void GetBacktrace(const std::string& pDebugDumpDir, std::string& pBacktrace) @@ -192,20 +157,22 @@ static void GetBacktrace(const std::string& pDebugDumpDir, std::string& pBacktra dd.Open(pDebugDumpDir); dd.LoadText(FILENAME_EXECUTABLE, executable); dd.LoadText(FILENAME_UID, UID); - fTmp << "file " << executable << std::endl; - fTmp << "core " << pDebugDumpDir << "/" << FILENAME_COREDUMP << std::endl; - fTmp << "thread apply all backtrace full" << std::endl; - fTmp << "q" << std::endl; + fTmp << "file " << executable << '\n'; + fTmp << "core " << 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* command = (char*)"gdb"; - char* args[5] = { (char*)"gdb", (char*)"-batch", (char*)"-x", NULL, NULL }; - args[3] = (char*) tmpFile.c_str(); - ExecVP(command, args, atoi(UID.c_str()), pBacktrace); + char* args[5]; + args[0] = (char*)"gdb"; + args[1] = (char*)"-batch"; + args[2] = (char*)"-x"; + args[3] = (char*)tmpFile.c_str(); + args[4] = NULL; + ExecVP(args, atoi(UID.c_str()), pBacktrace); } static void GetIndependentBacktrace(const std::string& pBacktrace, std::string& pIndependentBacktrace) @@ -333,138 +300,216 @@ static void GetIndependentBuildIdPC(const std::string& pBuildIdPC, std::string& } } -static pid_t ExecVP(const char* pCommand, char* const pArgs[], uid_t uid, std::string& pOutput) +static std::string run_unstrip_n(const std::string& pDebugDumpDir) { - int pipeout[2]; - char buff[1024]; - pid_t child; + std::string UID; + { + CDebugDump dd; + dd.Open(pDebugDumpDir); + dd.LoadText(FILENAME_UID, UID); + } - struct passwd* pw = getpwuid(uid); - if (!pw) + std::string core = "--core=" + pDebugDumpDir + "/"FILENAME_COREDUMP; + char* args[4]; + args[0] = (char*)"eu-unstrip"; + args[1] = (char*)core.c_str(); + args[2] = (char*)"-n"; + args[3] = NULL; + std::string output; + ExecVP(args, atoi(UID.c_str()), output); + return output; +} + +static void InstallDebugInfos(const std::string& pDebugDumpDir) +{ + log("Getting module names, file names, build IDs from core file"); + std::string unstrip_list = run_unstrip_n(pDebugDumpDir); + + log("Builting list of missing debuginfos"); + // lines look like this: + // 0x400000+0x209000 ab3c8286aac6c043fd1bb1cc2a0b88ec29517d3e@0x40024c /bin/sleep /usr/lib/debug/bin/sleep.debug [exe] + // 0x7fff313ff000+0x1000 389c7475e3d5401c55953a425a2042ef62c4c7df@0x7fff313ff2f8 . - linux-vdso.so.1 + vector_string_t missing; + char *dup = xstrdup(unstrip_list.c_str()); + char *p = dup; + char c; + do { + char* end = strchrnul(p, '\n'); + c = *end; + *end = '\0'; + char* word2 = strchr(p, ' '); + if (!word2) + continue; + word2++; + char* endsp = strchr(word2, ' '); + if (!endsp) + continue; + /* This filters out linux-vdso.so, among others */ + if (endsp[1] != '/') + continue; + *endsp = '\0'; + char* at = strchrnul(word2, '@'); + *at = '\0'; + + bool file_exists = 1; + if (word2[0] && word2[1] && is_hexstr(word2)) + { + struct stat sb; + char *fn = xasprintf("/usr/lib/debug/.build-id/%.2s/%s.debug", word2, word2 + 2); + /* 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); + } + log("build_id:%s exists:%d", word2, (int)file_exists); + if (!file_exists) + missing.push_back(word2); + + p = end + 1; + } while (c); + free(dup); + + if (missing.size() == 0) { - throw CABRTException(EXCEP_PLUGIN, std::string(__func__) + ": cannot get GID for UID."); + log("All debuginfos are present, not installing debuginfo packages"); + return; } + //missing vector is unused for now, but TODO: use it to install only needed debuginfos + std::string package; + { + CDebugDump dd; + dd.Open(pDebugDumpDir); + dd.LoadText(FILENAME_PACKAGE, package); + } + + update_client(_("Searching for debug-info packages...")); + + int pipein[2], pipeout[2]; + xpipe(pipein); xpipe(pipeout); - child = fork(); - if (child == -1) + + pid_t child = fork(); + if (child < 0) { - close(pipeout[0]); - close(pipeout[1]); - throw CABRTException(EXCEP_PLUGIN, std::string(__func__) + ": fork failed."); + /*close(pipein[0]); close(pipeout[0]); - why bother */ + /*close(pipein[1]); close(pipeout[1]); */ + perror_msg_and_die("fork"); } if (child == 0) { - close(pipeout[0]); /* read side of the pipe */ - if (pipeout[1] != STDOUT_FILENO) - { - dup2(pipeout[1], STDOUT_FILENO); - close(pipeout[1]); - } - /* Make sure stdin is safely open to nothing */ - close(STDIN_FILENO); - if (open("/dev/null", O_RDONLY)) - if (open("/", O_RDONLY)) - abort(); /* never happens */ + close(pipein[1]); + close(pipeout[0]); + xmove_fd(pipein[0], STDIN_FILENO); + xmove_fd(pipeout[1], STDOUT_FILENO); /* Not a good idea, we won't see any error messages */ - /* close(STDERR_FILENO); */ + /*close(STDERR_FILENO);*/ - setgroups(1, &pw->pw_gid); - setregid(pw->pw_gid, pw->pw_gid); - setreuid(uid, uid); setsid(); - - execvp(pCommand, pArgs); + execlp("debuginfo-install", "debuginfo-install", "-y", "--", package.c_str(), NULL); exit(0); } - close(pipeout[1]); /* write side of the pipe */ + close(pipein[0]); + close(pipeout[1]); -/* - bool quit = false; + /* Should not be needed (we use -y option), but just in case: */ + safe_write(pipein[1], "y\n", sizeof("y\n")-1); + close(pipein[1]); + + update_client(_("Downloading and installing debug-info packages...")); - while (!quit) + FILE *pipeout_fp = fdopen(pipeout[0], "r"); + if (pipeout_fp == NULL) /* never happens */ { - fd_set rsfd; - FD_ZERO(&rsfd); - FD_SET(pipeout[0], &rsfd); - struct timeval delay; + close(pipeout[0]); + wait(NULL); + return; + } - delay.tv_sec = 1; - delay.tv_usec = 0; +/* glx-utils, for example, do not have glx-utils-debuginfo package. + * Disabled code was causing failures in backtrace decoding. + * This does not seem to be useful. + */ +#ifdef COMPLAIN_IF_NO_DEBUGINFO + bool already_installed = false; +#endif + char buff[1024]; + std::string packageName = package.substr(0, package.rfind("-", package.rfind("-")-1)); + while (fgets(buff, sizeof(buff), pipeout_fp)) + { + int last = strlen(buff) - 1; + if (last >= 0 && buff[last] == '\n') + buff[last] = '\0'; + + /* log(buff); - update_client logs it too */ + update_client(buff); /* maybe only if buff != ""? */ - if (select(FD_SETSIZE, &rsfd, NULL, NULL, &delay) > 0) +#ifdef COMPLAIN_IF_NO_DEBUGINFO + if (already_installed == false) { - if (FD_ISSET(pipeout[0], &rsfd)) + /* "Package foo-debuginfo-1.2-5.ARCH already installed and latest version" */ + char* pn = strstr(buff, packageName.c_str()); + if (pn) { - int r = read(pipeout[0], buff, sizeof(buff) - 1); - if (r <= 0) - { - quit = true; - } - else + char* already_str = strstr(pn, "already installed and latest version"); + if (already_str) { - buff[r] = '\0'; - pOutput += buff; + already_installed = true; } } } - } -I think the below code has absolutely the same effect: -*/ - int r; - while ((r = read(pipeout[0], buff, sizeof(buff) - 1)) > 0) - { - buff[r] = '\0'; - pOutput += buff; - } - close(pipeout[0]); - wait(NULL); /* why? */ + if (already_installed == false && + (strstr(buff, "No debuginfo packages available to install") != NULL || + strstr(buff, "Could not find debuginfo for main pkg") != NULL || + strstr(buff, "Could not find debuginfo pkg for dependency package") != NULL)) + { + fclose(pipeout_fp); + kill(child, SIGTERM); + wait(NULL); + throw CABRTException(EXCEP_PLUGIN, std::string(__func__) + ": cannot install debuginfos for " + pPackage); + } +#endif + } - return 0; + fclose(pipeout_fp); + wait(NULL); } std::string CAnalyzerCCpp::GetLocalUUID(const std::string& pDebugDumpDir) { - update_client(_("Getting local universal unique identification...")); + log(_("Getting local universal unique identification...")); - std::string UID; std::string executable; std::string package; - std::string buildIdPC; - std::string independentBuildIdPC; - std::string core = "--core=" + pDebugDumpDir + "/"FILENAME_COREDUMP; - char* command = (char*)"eu-unstrip"; - char* args[4] = { (char*)"eu-unstrip", NULL, (char*)"-n", NULL }; - args[1] = (char*)core.c_str(); - - CDebugDump dd; - dd.Open(pDebugDumpDir); - dd.LoadText(FILENAME_UID, UID); - dd.LoadText(FILENAME_EXECUTABLE, executable); - dd.LoadText(FILENAME_PACKAGE, package); - ExecVP(command, args, atoi(UID.c_str()), buildIdPC); - dd.Close(); + { + CDebugDump dd; + dd.Open(pDebugDumpDir); + dd.LoadText(FILENAME_EXECUTABLE, executable); + dd.LoadText(FILENAME_PACKAGE, package); + } + std::string buildIdPC = run_unstrip_n(pDebugDumpDir); + std::string independentBuildIdPC; GetIndependentBuildIdPC(buildIdPC, independentBuildIdPC); return CreateHash(package + executable + independentBuildIdPC); } std::string CAnalyzerCCpp::GetGlobalUUID(const std::string& pDebugDumpDir) { - update_client(_("Getting global universal unique identification...")); + log(_("Getting global universal unique identification...")); std::string backtrace; std::string executable; std::string package; std::string independentBacktrace; - CDebugDump dd; - dd.Open(pDebugDumpDir); - dd.LoadText(FILENAME_BACKTRACE, backtrace); - dd.LoadText(FILENAME_EXECUTABLE, executable); - dd.LoadText(FILENAME_PACKAGE, package); - dd.Close(); + { + CDebugDump dd; + dd.Open(pDebugDumpDir); + dd.LoadText(FILENAME_BACKTRACE, backtrace); + dd.LoadText(FILENAME_EXECUTABLE, executable); + dd.LoadText(FILENAME_PACKAGE, package); + } GetIndependentBacktrace(backtrace, independentBacktrace); return CreateHash(package + executable + independentBacktrace); } @@ -506,31 +551,39 @@ void CAnalyzerCCpp::CreateReport(const std::string& pDebugDumpDir) { update_client(_("Starting report creation...")); +<<<<<<< HEAD std::string package; std::string backtrace; std::string UID; +======= +>>>>>>> 5349d07f9cae8a2b9686916c1e5bd01a0fe14a29 CDebugDump dd; - dd.Open(pDebugDumpDir); - if (dd.Exist(FILENAME_BACKTRACE)) + bool bt_exists = dd.Exist(FILENAME_BACKTRACE); + dd.Close(); /* do not keep dir locked longer than needed */ + if (bt_exists) { - return; + return; /* already done */ } +<<<<<<< HEAD dd.LoadText(FILENAME_PACKAGE, package); dd.LoadText(FILENAME_UID, UID); dd.Close(); +======= +>>>>>>> 5349d07f9cae8a2b9686916c1e5bd01a0fe14a29 map_plugin_settings_t settings = GetSettings(); if (settings["InstallDebuginfo"] == "yes" && DebuginfoCheckPolkit(atoi(UID.c_str())) ) { - InstallDebugInfos(package); + InstallDebugInfos(pDebugDumpDir); } else { - warn_client(ssprintf(_("Skip debuginfo installation for package %s"), package.c_str())); + warn_client(_("Skipping debuginfo installation")); } + std::string backtrace; GetBacktrace(pDebugDumpDir, backtrace); dd.Open(pDebugDumpDir); diff --git a/lib/Utils/Polkit.cpp b/lib/Utils/Polkit.cpp index a5541c9f..f0dc4c79 100644 --- a/lib/Utils/Polkit.cpp +++ b/lib/Utils/Polkit.cpp @@ -27,6 +27,7 @@ #include "Polkit.h" #include "abrtlib.h" +<<<<<<< HEAD /*number of seconds: timeout for the authorization*/ #define POLKIT_TIMEOUT 20 @@ -37,6 +38,8 @@ static gboolean do_cancel(GCancellable* cancellable) return FALSE; } +======= +>>>>>>> 5349d07f9cae8a2b9686916c1e5bd01a0fe14a29 static PolkitResult do_check(PolkitSubject *subject, const char *action_id) { PolkitAuthority *authority; @@ -45,11 +48,14 @@ static PolkitResult do_check(PolkitSubject *subject, const char *action_id) GCancellable * cancellable; authority = polkit_authority_get(); +<<<<<<< HEAD cancellable = g_cancellable_new(); g_timeout_add (POLKIT_TIMEOUT * 1000, (GSourceFunc) do_cancel, cancellable); +======= +>>>>>>> 5349d07f9cae8a2b9686916c1e5bd01a0fe14a29 result = polkit_authority_check_authorization_sync(authority, subject, @@ -6,13 +6,14 @@ # # Fabian Affolter <fab@fedoraproject.org>, 2009. # Hedda Peters <hpeters@redhat.com>, 2009. +# Marcus Nitzschke <kenda@fedoraproject.org>, 2009. msgid "" msgstr "" "Project-Id-Version: abrt.master.de\n" "Report-Msgid-Bugs-To: jmoskovc@redhat.com\n" -"POT-Creation-Date: 2009-09-10 18:54+0000\n" -"PO-Revision-Date: 2009-09-11 16:55+1000\n" -"Last-Translator: Hedda Peters <hpeters@redhat.com>\n" +"POT-Creation-Date: 2009-09-15 16:14+0000\n" +"PO-Revision-Date: 2009-09-16 00:22+0200\n" +"Last-Translator: Marcus Nitzschke <kenda@fedoraproject.org>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -48,7 +49,8 @@ msgstr "Datenbank-Plugins" msgid "Can't connect to dbus" msgstr "Kann nicht mit dbus verbinden" -#: ../src/Gui/CCDBusBackend.py:144 ../src/Gui/CCDBusBackend.py:164 +#: ../src/Gui/CCDBusBackend.py:144 +#: ../src/Gui/CCDBusBackend.py:164 msgid "Please check if abrt daemon is running." msgstr "Bitte überprüfen Sie, ob der abrt-Daemon läuft." @@ -68,7 +70,8 @@ msgstr " " msgid "(C) 2009 Red Hat, Inc." msgstr "(C) 2009 Red Hat, Inc." -#: ../src/Gui/ccgui.glade.h:3 ../src/Gui/CCMainWindow.py:223 +#: ../src/Gui/ccgui.glade.h:3 +#: ../src/Gui/CCMainWindow.py:223 msgid "<b>Not reported!</b>" msgstr "<b>Nicht berichtet!</b>" @@ -96,24 +99,18 @@ msgstr "Bitte warten ..." msgid "Plugins" msgstr "Plugins" -#: ../src/Gui/ccgui.glade.h:10 ../src/Gui/report.glade.h:2 +#: ../src/Gui/ccgui.glade.h:10 +#: ../src/Gui/report.glade.h:2 msgid "Report" msgstr "Bericht" #: ../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 " -"Software Foundation; either version 2 of the License, or (at your option) " -"any later version.\n" +"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.\n" "\n" -"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.\n" +"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.\n" "\n" -"You should have received a copy of the GNU General Public License along with " -"this program. If not, see <http://www.gnu.org/licenses/>." +"You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>." msgstr "" "Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 2 der Lizenz oder (nach Ihrer Option) jeder späteren Version.\n" "\n" @@ -204,12 +201,11 @@ msgstr "Fehler beim Abrufen des Berichts: %s" #: ../src/Gui/CCReporterDialog.py:98 #, python-format msgid "" -"<b>WARNING</b>, you're about to send data which might contain sensitive " -"information.\n" +"<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" msgstr "" -"<b>WARNUNG</b>, Sie sind im Begriff, möglicherweise sensible Daten zu senden.\n " -"Möchten Sie wirklich senden<b>%s</b>?\n" +"<b>WARNUNG</b>, Sie sind im Begriff, möglicherweise sensible Daten zu senden.\n" +" Möchten Sie wirklich senden<b>%s</b>?\n" #: ../src/Gui/CCReporterDialog.py:111 msgid "Brief description how to reproduce this or what you did..." @@ -225,7 +221,8 @@ msgstr "Kann PluginDialog-Widget nicht in UI-Beschreibung finden!" msgid "No UI for plugin %s" msgstr "Kein UI für Plugin %s" -#: ../src/Gui/PluginSettingsUI.py:38 ../src/Gui/PluginSettingsUI.py:64 +#: ../src/Gui/PluginSettingsUI.py:38 +#: ../src/Gui/PluginSettingsUI.py:64 msgid "combo box is not implemented" msgstr "Combo-Box ist nicht implementiert" @@ -245,7 +242,8 @@ msgstr "Senden" msgid "gtk-cancel" msgstr "gtk-cancel" -#: ../src/Gui/SettingsDialog.py:35 ../src/Gui/SettingsDialog.py:52 +#: ../src/Gui/SettingsDialog.py:35 +#: ../src/Gui/SettingsDialog.py:52 msgid "<b>Select plugin</b>" msgstr "<b>Plugin wählen</b>" @@ -271,12 +269,14 @@ msgstr "In Paket %s wurde ein Absturz entdeckt!" msgid "Applet is already running." msgstr "Applet wird beläuft ausgeführt bereits." -#: ../src/Applet/Applet.cpp:96 ../src/Applet/Applet.cpp:97 +#: ../src/Applet/Applet.cpp:96 +#: ../src/Applet/Applet.cpp:97 #: ../src/Applet/CCApplet.cpp:201 msgid "ABRT service is not running" msgstr "ABRT-Dienst wird nicht ausgeführt." -#: ../src/Applet/CCApplet.cpp:135 ../src/Applet/CCApplet.cpp:343 +#: ../src/Applet/CCApplet.cpp:136 +#: ../src/Applet/CCApplet.cpp:343 #, c-format msgid "Pending events: %i" msgstr "Ausstehende Ereignisse: %i" @@ -287,9 +287,7 @@ msgid "Can't create menu from the description, popup won't be available!\n" msgstr "Kann kein Menü aus der Beschreibung erzeugen, Popup wird nicht verfügbar sein!\n" #: ../src/Applet/CCApplet.cpp:190 -msgid "" -"This is default handler, you should register your own with " -"ConnectCrashHandler" +msgid "This is default handler, you should register your own with ConnectCrashHandler" msgstr "Dies ist der Standard-Handler, Sie sollten Ihren eigenen mittels ConnectCrashHandler registrieren" #: ../src/Applet/CCApplet.cpp:205 @@ -325,7 +323,8 @@ msgstr "Neue Fehler-ID:" msgid "Checking for duplicates..." msgstr "Auf Duplikate überprüfen ..." -#: ../lib/Plugins/Bugzilla.cpp:424 ../lib/Plugins/Bugzilla.cpp:436 +#: ../lib/Plugins/Bugzilla.cpp:424 +#: ../lib/Plugins/Bugzilla.cpp:436 msgid "Logging into bugzilla..." msgstr "Bei Bugzilla anmelden ..." @@ -345,40 +344,40 @@ msgstr "Abmelden ..." msgid "Getting local/global universal unique identification..." msgstr "Lokale/globale, universelle, eindeutige Identifikation abrufen ..." -#: ../lib/Plugins/CCpp.cpp:82 +#: ../lib/Plugins/CCpp.cpp:145 +msgid "Getting backtrace..." +msgstr "Backtrace abrufen ..." + +#: ../lib/Plugins/CCpp.cpp:383 msgid "Searching for debug-info packages..." msgstr "debug-info-Pakete suchen ..." -#: ../lib/Plugins/CCpp.cpp:120 +#: ../lib/Plugins/CCpp.cpp:417 msgid "Downloading and installing debug-info packages..." msgstr "debug-info-Pakete herunterladen und installieren ..." -#: ../lib/Plugins/CCpp.cpp:180 -msgid "Getting backtrace..." -msgstr "Backtrace abrufen ..." - -#: ../lib/Plugins/CCpp.cpp:428 +#: ../lib/Plugins/CCpp.cpp:479 msgid "Getting local universal unique identification..." msgstr "Lokale, universelle, eindeutige Identifikation abrufen ..." -#: ../lib/Plugins/CCpp.cpp:454 +#: ../lib/Plugins/CCpp.cpp:498 msgid "Getting global universal unique identification..." msgstr "Globale, universelle, eindeutige Identifikation abrufen ..." -#: ../lib/Plugins/CCpp.cpp:472 +#: ../lib/Plugins/CCpp.cpp:517 msgid "Starting report creation..." msgstr "Berichterstellung beginnen ..." -#: ../lib/Plugins/CCpp.cpp:493 -#, c-format -msgid "Skip debuginfo installation for package %s" -msgstr "debuginfo-Installation überspringen für Paket %s" +#: ../lib/Plugins/CCpp.cpp:535 +msgid "Skipping debuginfo installation" +msgstr "debuginfo-Installation wird übersprungen" #: ../lib/Plugins/KerneloopsReporter.cpp:101 msgid "Creating and submitting a report..." msgstr "Einen Bericht erstellen und einreichen ..." -#: ../lib/Plugins/Logger.cpp:58 ../lib/Plugins/Mailx.cpp:124 +#: ../lib/Plugins/Logger.cpp:58 +#: ../lib/Plugins/Mailx.cpp:124 msgid "Creating a report..." msgstr "Einen Bericht erstellen ..." @@ -386,7 +385,8 @@ msgstr "Einen Bericht erstellen ..." msgid "Executing RunApp plugin..." msgstr "RunApp-Plugin ausführen ..." -#: ../lib/Plugins/FileTransfer.cpp:52 ../lib/Plugins/FileTransfer.cpp:247 +#: ../lib/Plugins/FileTransfer.cpp:52 +#: ../lib/Plugins/FileTransfer.cpp:247 msgid "FileTransfer: URL not specified" msgstr "Dateiübertragung: URL nicht angegeben" @@ -403,7 +403,8 @@ msgstr "Ein Archiv erzeugen ..." msgid "File Transfer: Creating a report..." msgstr "Dateiübertragung: Einen Bericht erstellen ..." -#: ../lib/Plugins/FileTransfer.cpp:197 ../lib/Plugins/FileTransfer.cpp:226 +#: ../lib/Plugins/FileTransfer.cpp:197 +#: ../lib/Plugins/FileTransfer.cpp:226 msgid "CFileTransfer::Run(): Cannot create and send an archive: " msgstr "CFileTransfer::Run(): Kann kein Archiv erzeugen und senden: " @@ -6,9 +6,9 @@ msgid "" msgstr "" "Project-Id-Version: abrt.master.es\n" "Report-Msgid-Bugs-To: jmoskovc@redhat.com\n" -"POT-Creation-Date: 2009-09-10 08:38+0000\n" -"PO-Revision-Date: 2009-09-10 11:26-0300\n" -"Last-Translator: Claudio Rodrigo Pereyra Diaz <claudio@pereyradiaz.com.ar>\n" +"POT-Creation-Date: 2009-09-15 16:14+0000\n" +"PO-Revision-Date: 2009-09-15 15:02-0300\n" +"Last-Translator: Domingo Becker <domingobecker@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" @@ -271,7 +271,7 @@ msgstr "La aplicación ya se está ejecutando." msgid "ABRT service is not running" msgstr "El servicio ABRT no se está ejecutando" -#: ../src/Applet/CCApplet.cpp:135 +#: ../src/Applet/CCApplet.cpp:136 #: ../src/Applet/CCApplet.cpp:343 #, c-format msgid "Pending events: %i" @@ -340,34 +340,33 @@ msgstr "Saliendo..." msgid "Getting local/global universal unique identification..." msgstr "Obteniendo la identificación única universal local/global..." -#: ../lib/Plugins/CCpp.cpp:82 +#: ../lib/Plugins/CCpp.cpp:145 +msgid "Getting backtrace..." +msgstr "Obteniendo el backtrace..." + +#: ../lib/Plugins/CCpp.cpp:383 msgid "Searching for debug-info packages..." msgstr "Buscando paquetes de información del depurador..." -#: ../lib/Plugins/CCpp.cpp:120 +#: ../lib/Plugins/CCpp.cpp:417 msgid "Downloading and installing debug-info packages..." msgstr "Descargando e instalando paquetes de información del depurador..." -#: ../lib/Plugins/CCpp.cpp:180 -msgid "Getting backtrace..." -msgstr "Obteniendo el backtrace..." - -#: ../lib/Plugins/CCpp.cpp:428 +#: ../lib/Plugins/CCpp.cpp:479 msgid "Getting local universal unique identification..." msgstr "Obteniendo la identificación única universal local..." -#: ../lib/Plugins/CCpp.cpp:454 +#: ../lib/Plugins/CCpp.cpp:498 msgid "Getting global universal unique identification..." msgstr "Obteniendo la identificación única universal global..." -#: ../lib/Plugins/CCpp.cpp:472 +#: ../lib/Plugins/CCpp.cpp:517 msgid "Starting report creation..." msgstr "Iniciando la creación del informe..." -#: ../lib/Plugins/CCpp.cpp:493 -#, c-format -msgid "Skip debuginfo installation for package %s" -msgstr "Omita la información de debuginfo para el paquete %s" +#: ../lib/Plugins/CCpp.cpp:535 +msgid "Skipping debuginfo installation" +msgstr "Omita la instalación de la información de depuración" #: ../lib/Plugins/KerneloopsReporter.cpp:101 msgid "Creating and submitting a report..." @@ -1,14 +1,14 @@ -# translation of ABRT1.po to Gujarati +# translation of ABRT.po to Gujarati # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Sweta Kothari <swkothar@redhat.com>, 2009. msgid "" msgstr "" -"Project-Id-Version: ABRT1\n" +"Project-Id-Version: ABRT\n" "Report-Msgid-Bugs-To: jmoskovc@redhat.com\n" -"POT-Creation-Date: 2009-09-10 04:40+0000\n" -"PO-Revision-Date: 2009-09-10 11:04+0530\n" +"POT-Creation-Date: 2009-09-15 23:26+0000\n" +"PO-Revision-Date: 2009-09-16 12:23+0530\n" "Last-Translator: Sweta Kothari <swkothar@redhat.com>\n" "Language-Team: Gujarati\n" "MIME-Version: 1.0\n" @@ -281,7 +281,7 @@ msgstr "એપલેટ પહેલેથી જ ચાલી રહી છે. msgid "ABRT service is not running" msgstr "ABRT સેવા ચાલી રહી નથી" -#: ../src/Applet/CCApplet.cpp:135 ../src/Applet/CCApplet.cpp:343 +#: ../src/Applet/CCApplet.cpp:136 ../src/Applet/CCApplet.cpp:343 #, c-format msgid "Pending events: %i" msgstr "વિલંબીત ઘટનાઓ: %i" @@ -350,34 +350,33 @@ msgstr "બહાર નીકળી રહ્યા છે..." msgid "Getting local/global universal unique identification..." msgstr "સ્થાનિક/વૈશ્ર્વિક વિશ્ર્વવ્યાપક અનન્ય ઓળખાણ ને મેળવી રહ્યા છે..." -#: ../lib/Plugins/CCpp.cpp:82 +#: ../lib/Plugins/CCpp.cpp:145 +msgid "Getting backtrace..." +msgstr "બેકટ્રેસને મેળવી રહ્યા છે..." + +#: ../lib/Plugins/CCpp.cpp:383 msgid "Searching for debug-info packages..." msgstr "ડિબગ-જાણકારી પેકેજો માટે શોધી રહ્યા છે..." -#: ../lib/Plugins/CCpp.cpp:120 +#: ../lib/Plugins/CCpp.cpp:417 msgid "Downloading and installing debug-info packages..." msgstr "ડિબગ-જાણકારી પેકેજોને સ્થાપિત અને ડાઉનલોડ કરી રહ્યા છે..." -#: ../lib/Plugins/CCpp.cpp:180 -msgid "Getting backtrace..." -msgstr "બેકટ્રેસને મેળવી રહ્યા છે..." - -#: ../lib/Plugins/CCpp.cpp:428 +#: ../lib/Plugins/CCpp.cpp:479 msgid "Getting local universal unique identification..." msgstr "સ્થાનિક વિશ્ર્વવ્યાપક અનન્ય ઓળખાણ ને મેળવી રહ્યા છે..." -#: ../lib/Plugins/CCpp.cpp:454 +#: ../lib/Plugins/CCpp.cpp:498 msgid "Getting global universal unique identification..." msgstr "વૈશ્ર્વિક વિશ્ર્વવ્યાપક અનન્ય ઓળખાણને મેળવી રહ્યા છે..." -#: ../lib/Plugins/CCpp.cpp:472 +#: ../lib/Plugins/CCpp.cpp:517 msgid "Starting report creation..." msgstr "અહેવાલ બનાવવાનું શરૂ કરી રહ્યા છે..." -#: ../lib/Plugins/CCpp.cpp:493 -#, c-format -msgid "Skip debuginfo installation for package %s" -msgstr "પેકેજ %s માટે ડિબગ જાણકારી સ્થાપન ને છોડો" +#: ../lib/Plugins/CCpp.cpp:535 +msgid "Skipping debuginfo installation" +msgstr "ડિબગ જાણકારી સ્થાપન ને છોડી રહ્યા છે" #: ../lib/Plugins/KerneloopsReporter.cpp:101 msgid "Creating and submitting a report..." @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: abrt.master\n" "Report-Msgid-Bugs-To: jmoskovc@redhat.com\n" -"POT-Creation-Date: 2009-09-09 22:04+0000\n" -"PO-Revision-Date: 2009-09-10 10:48+1000\n" +"POT-Creation-Date: 2009-09-15 23:26+0000\n" +"PO-Revision-Date: 2009-09-16 11:09+1000\n" "Last-Translator: Eunju Kim <eukim@redhat.com>\n" "Language-Team: Korean <ko@li.org>\n" "MIME-Version: 1.0\n" @@ -284,7 +284,7 @@ msgstr "애플릿이 이미 실행되고 있습니다. " msgid "ABRT service is not running" msgstr "ABRT 서비스가 실행되고 있지 않습니다 " -#: ../src/Applet/CCApplet.cpp:135 ../src/Applet/CCApplet.cpp:343 +#: ../src/Applet/CCApplet.cpp:136 ../src/Applet/CCApplet.cpp:343 #, c-format msgid "Pending events: %i" msgstr "보류 중인 이벤트: %i " @@ -355,34 +355,33 @@ msgstr "로그아웃 중... " msgid "Getting local/global universal unique identification..." msgstr "로컬/글로벌 UUID를 가져오는 중... " -#: ../lib/Plugins/CCpp.cpp:82 +#: ../lib/Plugins/CCpp.cpp:145 +msgid "Getting backtrace..." +msgstr "역추적 검색 중... " + +#: ../lib/Plugins/CCpp.cpp:383 msgid "Searching for debug-info packages..." msgstr "debug-info 패키지 검색 중... " -#: ../lib/Plugins/CCpp.cpp:120 +#: ../lib/Plugins/CCpp.cpp:417 msgid "Downloading and installing debug-info packages..." msgstr "debug-info 패키지 다운로드 및 설치 중... " -#: ../lib/Plugins/CCpp.cpp:180 -msgid "Getting backtrace..." -msgstr "역추적 검색 중... " - -#: ../lib/Plugins/CCpp.cpp:428 +#: ../lib/Plugins/CCpp.cpp:479 msgid "Getting local universal unique identification..." msgstr "로컬 UUID를 가져오는 중... " -#: ../lib/Plugins/CCpp.cpp:454 +#: ../lib/Plugins/CCpp.cpp:498 msgid "Getting global universal unique identification..." msgstr "글로벌 UUID를 가져오는 중... " -#: ../lib/Plugins/CCpp.cpp:472 +#: ../lib/Plugins/CCpp.cpp:517 msgid "Starting report creation..." msgstr "보고서 작성 시작 중... " -#: ../lib/Plugins/CCpp.cpp:493 -#, c-format -msgid "Skip debuginfo installation for package %s" -msgstr "%s 패키지에 대한 디버그 정보 설치 생략 " +#: ../lib/Plugins/CCpp.cpp:535 +msgid "Skipping debuginfo installation" +msgstr "디버그 정보 설치 생략 " #: ../lib/Plugins/KerneloopsReporter.cpp:101 msgid "Creating and submitting a report..." @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: abrt\n" "Report-Msgid-Bugs-To: jmoskovc@redhat.com\n" -"POT-Creation-Date: 2009-09-09 15:44+0000\n" -"PO-Revision-Date: 2009-09-09 18:23+0200\n" +"POT-Creation-Date: 2009-09-15 16:14+0000\n" +"PO-Revision-Date: 2009-09-15 18:54+0200\n" "Last-Translator: Geert Warrink <geert.warrink@onsnet.nu>\n" "Language-Team: nl <nl@li.org>\n" "MIME-Version: 1.0\n" @@ -283,7 +283,7 @@ msgstr "Applet draait al." msgid "ABRT service is not running" msgstr "ABRT service draait niet" -#: ../src/Applet/CCApplet.cpp:135 ../src/Applet/CCApplet.cpp:343 +#: ../src/Applet/CCApplet.cpp:136 ../src/Applet/CCApplet.cpp:343 #, c-format msgid "Pending events: %i" msgstr "Gebeurtenissen in behandeling: %i" @@ -355,34 +355,33 @@ msgstr "Uitloggen..." msgid "Getting local/global universal unique identification..." msgstr "Verkrijgen van locale/globale universele unieke identificatie..." -#: ../lib/Plugins/CCpp.cpp:82 +#: ../lib/Plugins/CCpp.cpp:145 +msgid "Getting backtrace..." +msgstr "Backtrace ophalen..." + +#: ../lib/Plugins/CCpp.cpp:383 msgid "Searching for debug-info packages..." msgstr "Zoeken naar debug-info pakketten..." -#: ../lib/Plugins/CCpp.cpp:120 +#: ../lib/Plugins/CCpp.cpp:417 msgid "Downloading and installing debug-info packages..." msgstr "Downloaden en installeren van debug-info pakketten..." -#: ../lib/Plugins/CCpp.cpp:180 -msgid "Getting backtrace..." -msgstr "Backtrace ophalen..." - -#: ../lib/Plugins/CCpp.cpp:429 +#: ../lib/Plugins/CCpp.cpp:479 msgid "Getting local universal unique identification..." msgstr "Verkrijgen van locale universele unieke identificatie..." -#: ../lib/Plugins/CCpp.cpp:455 +#: ../lib/Plugins/CCpp.cpp:498 msgid "Getting global universal unique identification..." msgstr "Verkrijgen van golbale universele unieke identificatie..." -#: ../lib/Plugins/CCpp.cpp:473 +#: ../lib/Plugins/CCpp.cpp:517 msgid "Starting report creation..." msgstr "Beginnen met rapport aanmaken..." -#: ../lib/Plugins/CCpp.cpp:495 -#, c-format -msgid "Skip debuginfo installation for package %s" -msgstr "Sla debuginfo installatie over voor pakket %s" +#: ../lib/Plugins/CCpp.cpp:535 +msgid "Skipping debuginfo installation" +msgstr "Sla debuginfo installatie over" #: ../lib/Plugins/KerneloopsReporter.cpp:101 msgid "Creating and submitting a report..." @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: pl\n" "Report-Msgid-Bugs-To: jmoskovc@redhat.com\n" -"POT-Creation-Date: 2009-09-09 15:44+0000\n" -"PO-Revision-Date: 2009-09-09 18:05+0200\n" +"POT-Creation-Date: 2009-09-16 07:12+0000\n" +"PO-Revision-Date: 2009-09-16 14:07+0200\n" "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n" "Language-Team: Polish <fedora-trans-pl@redhat.com>\n" "MIME-Version: 1.0\n" @@ -286,7 +286,7 @@ msgstr "Aplet jest już uruchomiony." msgid "ABRT service is not running" msgstr "Usługa ABRT nie jest uruchomiona" -#: ../src/Applet/CCApplet.cpp:135 ../src/Applet/CCApplet.cpp:343 +#: ../src/Applet/CCApplet.cpp:136 ../src/Applet/CCApplet.cpp:343 #, c-format msgid "Pending events: %i" msgstr "Oczekujące zdarzenia: %i" @@ -359,34 +359,33 @@ msgid "Getting local/global universal unique identification..." msgstr "" "Uzyskiwanie lokalnego/globalnego uniwersalnego, unikalnego identyfikatora..." -#: ../lib/Plugins/CCpp.cpp:82 +#: ../lib/Plugins/CCpp.cpp:145 +msgid "Getting backtrace..." +msgstr "Uzyskiwanie wyjątku..." + +#: ../lib/Plugins/CCpp.cpp:383 msgid "Searching for debug-info packages..." msgstr "Wyszukiwanie pakietów debuginfo..." -#: ../lib/Plugins/CCpp.cpp:120 +#: ../lib/Plugins/CCpp.cpp:417 msgid "Downloading and installing debug-info packages..." msgstr "Pobieranie i instalowanie pakietów debuginfo..." -#: ../lib/Plugins/CCpp.cpp:180 -msgid "Getting backtrace..." -msgstr "Uzyskiwanie wyjątku..." - -#: ../lib/Plugins/CCpp.cpp:429 +#: ../lib/Plugins/CCpp.cpp:479 msgid "Getting local universal unique identification..." msgstr "Uzyskiwanie lokalnego uniwersalnego, unikalnego identyfikatora..." -#: ../lib/Plugins/CCpp.cpp:455 +#: ../lib/Plugins/CCpp.cpp:498 msgid "Getting global universal unique identification..." msgstr "Uzyskiwanie globalnego uniwersalnego, unikalnego identyfikatora..." -#: ../lib/Plugins/CCpp.cpp:473 +#: ../lib/Plugins/CCpp.cpp:517 msgid "Starting report creation..." msgstr "Uruchamianie tworzenia raportu..." -#: ../lib/Plugins/CCpp.cpp:495 -#, c-format -msgid "Skip debuginfo installation for package %s" -msgstr "Pomiń instalację pakietu debuginfo dla pakietu %s" +#: ../lib/Plugins/CCpp.cpp:535 +msgid "Skipping debuginfo installation" +msgstr "Pomijanie instalacji pakietu debuginfo" #: ../lib/Plugins/KerneloopsReporter.cpp:101 msgid "Creating and submitting a report..." @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: abrt\n" "Report-Msgid-Bugs-To: jmoskovc@redhat.com\n" -"POT-Creation-Date: 2009-09-09 15:44+0000\n" +"POT-Creation-Date: 2009-09-15 16:14+0000\n" "PO-Revision-Date: \n" "Last-Translator: Rui Gouveia <rui.gouveia@globaltek.pt>\n" "Language-Team: PT <fedora-trans-pt@redhat.com>\n" @@ -18,7 +18,7 @@ msgstr "Outro cliente já está em execução. A tentar despertá-lo." #: ../src/Gui/ABRTExceptions.py:10 msgid "Got unexpected data from daemon (is the database properly updated?)." -msgstr "" +msgstr "Obteve-se dados inesperados do serviço (a base de dados está actualizada?)" #: ../src/Gui/ABRTPlugin.py:26 msgid "Analyzer plugins" @@ -50,6 +50,8 @@ msgid "" "Daemon did't return valid report info\n" "Debuginfo is missing?" msgstr "" +"O serviço não retornou um relatório com informação válida\n" +"Debuginfo está em falta?" #: ../src/Gui/ccgui.glade.h:1 msgid " " @@ -158,6 +160,8 @@ msgid "" "Error while loading the dumplist, please check if abrt daemon is running\n" " %s" msgstr "" +"Erro ao carregar a lista de dump, por favor, verifique que o serviço abrt está a correr\n" +" %s" #: ../src/Gui/CCMainWindow.py:215 msgid "<b>This crash has been reported, you can find the report(s) at:</b>\n" @@ -168,6 +172,8 @@ msgid "" "Unable to get report!\n" "Debuginfo is missing?" msgstr "" +"Não foi possível obter o relatório!\n" +"Debuginfo está em falta?" #: ../src/Gui/CCMainWindow.py:287 #, python-format @@ -189,14 +195,16 @@ msgid "" "<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" msgstr "" +"<b>AVISO</b>, você está prestes a enviar dados que podem conter informação sensível.\n" +"Deseja mesmo enviar <b>%s</b>?\n" #: ../src/Gui/CCReporterDialog.py:111 msgid "Brief description how to reproduce this or what you did..." -msgstr "" +msgstr "Breve descrição de como reproduzir isto ou o que fez..." #: ../src/Gui/PluginSettingsUI.py:17 msgid "Can't find PluginDialog widget in UI description!" -msgstr "" +msgstr "Não foi possível encontrar na descrição do UI o objecto PluginDialog!" #. we shouldn't get here, but just to be safe #: ../src/Gui/PluginSettingsUI.py:21 @@ -207,12 +215,11 @@ msgstr "Não existe interface de utilizador para o plugin %s" #: ../src/Gui/PluginSettingsUI.py:38 #: ../src/Gui/PluginSettingsUI.py:64 msgid "combo box is not implemented" -msgstr "" +msgstr "caixa de combinação não está implementada" #: ../src/Gui/PluginSettingsUI.py:47 -#, fuzzy msgid "Nothing to hydrate!" -msgstr "Nada para refazer." +msgstr "Nada para fazer!" #: ../src/Gui/report.glade.h:1 msgid "Comment" @@ -259,7 +266,7 @@ msgstr "Applet já está a correr." msgid "ABRT service is not running" msgstr "O serviço ABRT não está a correr" -#: ../src/Applet/CCApplet.cpp:135 +#: ../src/Applet/CCApplet.cpp:136 #: ../src/Applet/CCApplet.cpp:343 #, c-format msgid "Pending events: %i" @@ -268,11 +275,11 @@ msgstr "Eventos pendentes: %i" #: ../src/Applet/CCApplet.cpp:161 #, c-format msgid "Can't create menu from the description, popup won't be available!\n" -msgstr "" +msgstr "Não é possível criar menu a partir da descrição, caixa pop não estará disponível!\n" #: ../src/Applet/CCApplet.cpp:190 msgid "This is default handler, you should register your own with ConnectCrashHandler" -msgstr "" +msgstr "Isto é o handler por omissão, você deve registar o seu próprio com ConnectCrashHandler" #: ../src/Applet/CCApplet.cpp:205 msgid "ABRT service has been started" @@ -288,7 +295,7 @@ msgstr "Aviso" #: ../lib/Plugins/Bugzilla.cpp:84 msgid "Empty login and password. Please check Bugzilla.conf" -msgstr "" +msgstr "Nome de utilizador e senha vazios. Por favor, verifique Bugzilla.conf" #: ../lib/Plugins/Bugzilla.cpp:228 msgid "Bug is already reported: " @@ -297,7 +304,7 @@ msgstr "Erro já foi reportado: " #: ../lib/Plugins/Bugzilla.cpp:283 #, c-format msgid "Binary file %s will not be reported." -msgstr "" +msgstr "Ficheiro binário %s não será reportado." #: ../lib/Plugins/Bugzilla.cpp:353 msgid "New bug id: " @@ -326,40 +333,39 @@ msgstr "A Terminar Sessão..." #: ../lib/Plugins/Kerneloops.cpp:38 msgid "Getting local/global universal unique identification..." -msgstr "" +msgstr "A obter identificador único universal local/global..." -#: ../lib/Plugins/CCpp.cpp:82 +#: ../lib/Plugins/CCpp.cpp:145 +msgid "Getting backtrace..." +msgstr "A obter dados do processo..." + +#: ../lib/Plugins/CCpp.cpp:383 msgid "Searching for debug-info packages..." -msgstr "" +msgstr "A pesquisar por pacotes debug-info..." -#: ../lib/Plugins/CCpp.cpp:120 +#: ../lib/Plugins/CCpp.cpp:417 msgid "Downloading and installing debug-info packages..." -msgstr "" - -#: ../lib/Plugins/CCpp.cpp:180 -msgid "Getting backtrace..." -msgstr "A obter dados do processo..." +msgstr "A transferir e instalar pacotes debug-info..." -#: ../lib/Plugins/CCpp.cpp:429 +#: ../lib/Plugins/CCpp.cpp:479 msgid "Getting local universal unique identification..." -msgstr "" +msgstr "A obter identificador único universal local..." -#: ../lib/Plugins/CCpp.cpp:455 +#: ../lib/Plugins/CCpp.cpp:498 msgid "Getting global universal unique identification..." -msgstr "" +msgstr "A obter identificador único universal global..." -#: ../lib/Plugins/CCpp.cpp:473 +#: ../lib/Plugins/CCpp.cpp:517 msgid "Starting report creation..." msgstr "A iniciar a criação do relatório..." -#: ../lib/Plugins/CCpp.cpp:495 -#, c-format -msgid "Skip debuginfo installation for package %s" -msgstr "" +#: ../lib/Plugins/CCpp.cpp:535 +msgid "Skipping debuginfo installation" +msgstr "A passar à frente a instalação debuginfo" #: ../lib/Plugins/KerneloopsReporter.cpp:101 msgid "Creating and submitting a report..." -msgstr "" +msgstr "A criar e enviar relatório..." #: ../lib/Plugins/Logger.cpp:58 #: ../lib/Plugins/Mailx.cpp:124 @@ -368,12 +374,12 @@ msgstr "A criar relatório..." #: ../lib/Plugins/RunApp.cpp:62 msgid "Executing RunApp plugin..." -msgstr "" +msgstr "A executar plugin RunApp..." #: ../lib/Plugins/FileTransfer.cpp:52 #: ../lib/Plugins/FileTransfer.cpp:247 msgid "FileTransfer: URL not specified" -msgstr "" +msgstr "FileTransfer: URL não especificado" #: ../lib/Plugins/FileTransfer.cpp:69 #, c-format @@ -386,16 +392,16 @@ msgstr "A criar arquivo..." #: ../lib/Plugins/FileTransfer.cpp:176 msgid "File Transfer: Creating a report..." -msgstr "" +msgstr "File Transfer: A criar relatório..." #: ../lib/Plugins/FileTransfer.cpp:197 #: ../lib/Plugins/FileTransfer.cpp:226 msgid "CFileTransfer::Run(): Cannot create and send an archive: " -msgstr "" +msgstr "CFileTransfer::Run(): Não foi possível criar e enviar um arquivo: " #: ../lib/Plugins/KerneloopsScanner.cpp:79 msgid "Creating kernel oops crash reports..." -msgstr "" +msgstr "A criar relatório oops de crash do kernel..." #: ../lib/Plugins/Mailx.cpp:110 msgid "Sending an email..." diff --git a/po/pt_BR.po b/po/pt_BR.po index 83e7a5c1..3bca4ef7 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ABRT\n" "Report-Msgid-Bugs-To: jmoskovc@redhat.com\n" -"POT-Creation-Date: 2009-09-10 18:54+0000\n" -"PO-Revision-Date: 2009-09-10 17:13-0300\n" +"POT-Creation-Date: 2009-09-16 07:12+0000\n" +"PO-Revision-Date: 2009-09-16 11:04-0300\n" "Last-Translator: Igor Pires Soares <igor@projetofedora.org>\n" "Language-Team: Brazilian Portuguese <fedora-trans-pt_br@redhat.com>\n" "MIME-Version: 1.0\n" @@ -272,7 +272,7 @@ msgstr "O miniaplicativo já está em execução." msgid "ABRT service is not running" msgstr "O serviço do ABRT não está em execução" -#: ../src/Applet/CCApplet.cpp:135 +#: ../src/Applet/CCApplet.cpp:136 #: ../src/Applet/CCApplet.cpp:343 #, c-format msgid "Pending events: %i" @@ -341,34 +341,33 @@ msgstr "Encerrando sessão..." msgid "Getting local/global universal unique identification..." msgstr "Obtendo identificação universal local/global única..." -#: ../lib/Plugins/CCpp.cpp:82 +#: ../lib/Plugins/CCpp.cpp:145 +msgid "Getting backtrace..." +msgstr "Obtendo backtrace..." + +#: ../lib/Plugins/CCpp.cpp:383 msgid "Searching for debug-info packages..." msgstr "Pesquisando por pacotes debug-info..." -#: ../lib/Plugins/CCpp.cpp:120 +#: ../lib/Plugins/CCpp.cpp:417 msgid "Downloading and installing debug-info packages..." msgstr "Baixando e instalando pacotes debug-info..." -#: ../lib/Plugins/CCpp.cpp:180 -msgid "Getting backtrace..." -msgstr "Obtendo backtrace..." - -#: ../lib/Plugins/CCpp.cpp:428 +#: ../lib/Plugins/CCpp.cpp:479 msgid "Getting local universal unique identification..." msgstr "Obtendo identificação universal local única..." -#: ../lib/Plugins/CCpp.cpp:454 +#: ../lib/Plugins/CCpp.cpp:498 msgid "Getting global universal unique identification..." msgstr "Obtendo identificação universal global única..." -#: ../lib/Plugins/CCpp.cpp:472 +#: ../lib/Plugins/CCpp.cpp:517 msgid "Starting report creation..." msgstr "Iniciando a criação do relatório..." -#: ../lib/Plugins/CCpp.cpp:493 -#, c-format -msgid "Skip debuginfo installation for package %s" -msgstr "Pular instalação do debuginfo para o pacote %s" +#: ../lib/Plugins/CCpp.cpp:535 +msgid "Skipping debuginfo installation" +msgstr "Pulando instalação do debuginfo" #: ../lib/Plugins/KerneloopsReporter.cpp:101 msgid "Creating and submitting a report..." @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ru\n" "Report-Msgid-Bugs-To: jmoskovc@redhat.com\n" -"POT-Creation-Date: 2009-09-09 22:04+0000\n" -"PO-Revision-Date: 2009-09-10 10:51+1000\n" +"POT-Creation-Date: 2009-09-15 23:26+0000\n" +"PO-Revision-Date: 2009-09-16 12:49+1000\n" "Last-Translator: Yulia Poyarkova <yulia.poyarkova@redhat.com>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -125,7 +125,7 @@ msgstr "" "ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. Для получения дополнительных сведений обратитесь к " "лицензии GNU General Public License.\n" "\n" -"Копия лиценции GNU предоставляется вместе с этой программой. \n" +"Копия лицензии GNU предоставляется вместе с этой программой. \n" "Её также можно найти на сайте <http://www.gnu.org/licenses/>." #: ../src/Gui/ccgui.glade.h:16 @@ -284,7 +284,7 @@ msgstr "Апплет уже выполняется." msgid "ABRT service is not running" msgstr "Служба ABRT не работает" -#: ../src/Applet/CCApplet.cpp:135 ../src/Applet/CCApplet.cpp:343 +#: ../src/Applet/CCApplet.cpp:136 ../src/Applet/CCApplet.cpp:343 #, c-format msgid "Pending events: %i" msgstr "Ожидающие события: %i" @@ -357,34 +357,33 @@ msgstr "Выполняется выход..." msgid "Getting local/global universal unique identification..." msgstr "Получение уникальных данных идентификации (локальной/глобальной)..." -#: ../lib/Plugins/CCpp.cpp:82 +#: ../lib/Plugins/CCpp.cpp:145 +msgid "Getting backtrace..." +msgstr "Получение трассировки..." + +#: ../lib/Plugins/CCpp.cpp:383 msgid "Searching for debug-info packages..." msgstr "Выполняется поиск пакетов debug-info..." -#: ../lib/Plugins/CCpp.cpp:120 +#: ../lib/Plugins/CCpp.cpp:417 msgid "Downloading and installing debug-info packages..." msgstr "Загружаются и устанавливаются пакеты debug-info..." -#: ../lib/Plugins/CCpp.cpp:180 -msgid "Getting backtrace..." -msgstr "Получение трассировки..." - -#: ../lib/Plugins/CCpp.cpp:428 +#: ../lib/Plugins/CCpp.cpp:479 msgid "Getting local universal unique identification..." msgstr "Получение локальных данных идентификации..." -#: ../lib/Plugins/CCpp.cpp:454 +#: ../lib/Plugins/CCpp.cpp:498 msgid "Getting global universal unique identification..." msgstr "Получение глобальных данных идентификации..." -#: ../lib/Plugins/CCpp.cpp:472 +#: ../lib/Plugins/CCpp.cpp:517 msgid "Starting report creation..." msgstr "Начинается создание отчёта..." -#: ../lib/Plugins/CCpp.cpp:493 -#, c-format -msgid "Skip debuginfo installation for package %s" -msgstr "Пропустить установку debuginfo для пакета %s" +#: ../lib/Plugins/CCpp.cpp:535 +msgid "Skipping debuginfo installation" +msgstr "Пропускается установка debuginfo" #: ../lib/Plugins/KerneloopsReporter.cpp:101 msgid "Creating and submitting a report..." diff --git a/src/Daemon/MiddleWare.cpp b/src/Daemon/MiddleWare.cpp index d18f6ab8..6480ab57 100644 --- a/src/Daemon/MiddleWare.cpp +++ b/src/Daemon/MiddleWare.cpp @@ -480,7 +480,7 @@ static mw_result_t SavePackageDescriptionToDebugDump(const std::string& pExecuta } else { - package = GetPackage(pExecutable); + package = GetPackage(pExecutable.c_str()); packageName = package.substr(0, package.rfind("-", package.rfind("-") - 1)); if (packageName == "" || (g_setBlackList.find(packageName) != g_setBlackList.end())) @@ -495,12 +495,12 @@ static mw_result_t SavePackageDescriptionToDebugDump(const std::string& pExecuta } if (g_settings_bOpenGPGCheck) { - if (!s_RPM.CheckFingerprint(packageName)) + if (!s_RPM.CheckFingerprint(packageName.c_str())) { error_msg("package isn't signed with proper key"); return MW_GPG_ERROR; } - if (!CheckHash(packageName, pExecutable)) + if (!CheckHash(packageName.c_str(), pExecutable.c_str())) { error_msg("executable has bad hash"); return MW_GPG_ERROR; @@ -508,8 +508,8 @@ static mw_result_t SavePackageDescriptionToDebugDump(const std::string& pExecuta } } - std::string description = GetDescription(packageName); - std::string component = GetComponent(pExecutable); + std::string description = GetDescription(packageName.c_str()); + std::string component = GetComponent(pExecutable.c_str()); try { diff --git a/src/Daemon/RPM.cpp b/src/Daemon/RPM.cpp index 51aa0dd4..4a819b5d 100644 --- a/src/Daemon/RPM.cpp +++ b/src/Daemon/RPM.cpp @@ -35,11 +35,11 @@ void CRPM::LoadOpenGPGPublicKey(const char* pFileName) free(pkt); } -bool CRPM::CheckFingerprint(const std::string& pPackage) +bool CRPM::CheckFingerprint(const char* pPackage) { bool ret = false; rpmts ts = rpmtsCreate(); - rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_NAME, pPackage.c_str(), 0); + rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_NAME, pPackage, 0); Header header = rpmdbNextIterator(iter); if (header != NULL) @@ -82,11 +82,11 @@ bool CRPM::CheckFingerprint(const std::string& pPackage) return ret; } -bool CheckHash(const std::string& pPackage, const std::string& pPath) +bool CheckHash(const char* pPackage, const char* pPath) { bool ret = false; rpmts ts = rpmtsCreate(); - rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_NAME, pPackage.c_str(), 0); + rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_NAME, pPackage, 0); Header header = rpmdbNextIterator(iter); if (header != NULL) { @@ -95,16 +95,16 @@ bool CheckHash(const std::string& pPackage, const std::string& pPath) std::string headerHash; char computedHash[1024] = ""; - while(rpmfiNext(fi) != -1) + while (rpmfiNext(fi) != -1) { - if (pPath == rpmfiFN(fi)) + if (strcmp(pPath, rpmfiFN(fi)) == 0) { headerHash = rpmfiFDigestHex(fi, &hashAlgo); } } rpmfiFree(fi); - rpmDoDigest(hashAlgo, pPath.c_str(), 1, (unsigned char*) computedHash, NULL); + rpmDoDigest(hashAlgo, pPath, 1, (unsigned char*) computedHash, NULL); if (headerHash != "" && headerHash == computedHash) { @@ -116,11 +116,11 @@ bool CheckHash(const std::string& pPackage, const std::string& pPath) return ret; } -std::string GetDescription(const std::string& pPackage) +std::string GetDescription(const char* pPackage) { std::string pDescription = ""; rpmts ts = rpmtsCreate(); - rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_NAME, pPackage.c_str(), 0); + rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_NAME, pPackage, 0); Header header = rpmdbNextIterator(iter); if (header != NULL) { @@ -137,11 +137,11 @@ std::string GetDescription(const std::string& pPackage) return pDescription; } -std::string GetComponent(const std::string& pFileName) +std::string GetComponent(const char* pFileName) { std::string ret = ""; rpmts ts = rpmtsCreate(); - rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_BASENAMES, pFileName.c_str(), 0); + rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_BASENAMES, pFileName, 0); Header header = rpmdbNextIterator(iter); if (header != NULL) { @@ -161,11 +161,11 @@ std::string GetComponent(const std::string& pFileName) return ret; } -std::string GetPackage(const std::string& pFileName) +std::string GetPackage(const char* pFileName) { std::string ret = ""; rpmts ts = rpmtsCreate(); - rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_BASENAMES, pFileName.c_str(), 0); + rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_BASENAMES, pFileName, 0); Header header = rpmdbNextIterator(iter); if (header != NULL) { diff --git a/src/Daemon/RPM.h b/src/Daemon/RPM.h index 57f9a97b..67cd4a29 100644 --- a/src/Daemon/RPM.h +++ b/src/Daemon/RPM.h @@ -62,7 +62,7 @@ class CRPM * A method, which checks if package's finger print is valid. * @param pPackage A package name. */ - bool CheckFingerprint(const std::string& pPackage); + bool CheckFingerprint(const char* pPackage); }; /** @@ -70,13 +70,13 @@ class CRPM * @param pPackage A package name. The package contains the application. * @param pPath A path to the application. */ -bool CheckHash(const std::string& pPackage, const std::string& pPath); +bool CheckHash(const char* pPackage, const char* pPath); /** * Gets a package description. * @param pPackage A package name. * @return A package description. */ -std::string GetDescription(const std::string& pPackage); +std::string GetDescription(const char* pPackage); /** * Gets a package name. This package contains particular * file. If the file doesn't belong to any package, empty string is @@ -84,7 +84,7 @@ std::string GetDescription(const std::string& pPackage); * @param pFileName A file name. * @return A package name. */ -std::string GetPackage(const std::string& pFileName); +std::string GetPackage(const char* pFileName); /** * Finds a main package for given file. This package contains particular * file. If the file doesn't belong to any package, empty string is @@ -92,6 +92,6 @@ std::string GetPackage(const std::string& pFileName); * @param pFileName A file name. * @return A package name. */ -std::string GetComponent(const std::string& pFileName); +std::string GetComponent(const char* pFileName); #endif diff --git a/src/Gui/CCDBusBackend.py b/src/Gui/CCDBusBackend.py index 01e51962..b4fc8467 100644 --- a/src/Gui/CCDBusBackend.py +++ b/src/Gui/CCDBusBackend.py @@ -234,4 +234,7 @@ class DBusManager(gobject.GObject): return self.cc.GetSettings() def setSettings(self, settings): - return self.cc.SetSettings(settings) + # FIXME: STUB!!!! + print "setSettings stub" + retval = self.cc.SetSettings(self.cc.GetSettings()) + print ">>>", retval |