diff options
-rw-r--r-- | po/ru.po | 100 | ||||
-rwxr-xr-x | scripts/abrt-bz-ratingfixer | 71 | ||||
-rwxr-xr-x | src/Backtrace/abrt-bz-dupchecker | 19 |
3 files changed, 100 insertions, 90 deletions
@@ -8,16 +8,15 @@ msgid "" msgstr "" "Project-Id-Version: ru\n" "Report-Msgid-Bugs-To: jmoskovc@redhat.com\n" -"POT-Creation-Date: 2010-03-09 15:48+0000\n" -"PO-Revision-Date: 2010-03-09 22:10+0300\n" -"Last-Translator: Yulia <ypoyarko@redhat.com>\n" +"POT-Creation-Date: 2010-03-11 03:56+0000\n" +"PO-Revision-Date: 2010-03-11 13:06+0800\n" +"Last-Translator: Misha Shnurapet <zayzayats@yandex.ru>\n" "Language-Team: Russian <>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: ../src/Gui/ABRTExceptions.py:6 msgid "Another client is already running, trying to wake it." @@ -25,8 +24,7 @@ msgstr "Другой клиент уже работает. Будет выпол #: ../src/Gui/ABRTExceptions.py:13 msgid "Got unexpected data from daemon (is the database properly updated?)." -msgstr "" -"Получены неожиданные данные от демона. Убедитесь, что база данных обновлена." +msgstr "Получены неожиданные данные от демона. Убедитесь, что база данных обновлена." #: ../src/Gui/ABRTPlugin.py:62 msgid "Not loaded plugins" @@ -48,11 +46,13 @@ msgstr "Модули отчётности" msgid "Database plugins" msgstr "Модули базы данных" -#: ../src/Gui/CCDBusBackend.py:74 ../src/Gui/CCDBusBackend.py:97 +#: ../src/Gui/CCDBusBackend.py:74 +#: ../src/Gui/CCDBusBackend.py:97 msgid "Can't connect to system dbus" msgstr "Не удалось подключиться к dbus" -#: ../src/Gui/CCDBusBackend.py:120 ../src/Gui/CCDBusBackend.py:123 +#: ../src/Gui/CCDBusBackend.py:120 +#: ../src/Gui/CCDBusBackend.py:123 msgid "Please check if abrt daemon is running" msgstr "Убедитесь, что демон abrt выполняется" @@ -73,10 +73,12 @@ msgstr "(C) 2009 Red Hat, Inc." msgid "About ABRT" msgstr "Об ABRT" -#: ../src/Gui/ccgui.glade.h:3 ../src/Gui/CCMainWindow.py:8 -#: ../src/Gui/report.glade.h:16 ../src/Gui/abrt.desktop.in.h:1 +#: ../src/Gui/ccgui.glade.h:3 +#: ../src/Gui/CCMainWindow.py:8 +#: ../src/Gui/report.glade.h:16 +#: ../src/Gui/abrt.desktop.in.h:1 msgid "Automatic Bug Reporting Tool" -msgstr "Утилита автоматической регистрации ошибок ABRT" +msgstr "ABRT — Автоматическая регистрация ошибок" #: ../src/Gui/ccgui.glade.h:4 msgid "Delete" @@ -86,7 +88,8 @@ msgstr "Удалить" msgid "Not Reported" msgstr "Не сообщено" -#: ../src/Gui/ccgui.glade.h:6 ../src/Gui/settings.glade.h:19 +#: ../src/Gui/ccgui.glade.h:6 +#: ../src/Gui/settings.glade.h:19 msgid "Plugins" msgstr "Модули" @@ -96,28 +99,15 @@ msgstr "Сообщить" #: ../src/Gui/ccgui.glade.h:8 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 "" -"Эта программа — свободное программное обеспечение; её можно распространять и " -"изменять в соответствии с условиями лицензии GNU General Public License " -"версии 2 или любой более поздней версии, опубликованной Фондом свободного " -"программного обеспечения.\n" +"Эта программа — свободное программное обеспечение; её можно распространять и изменять в соответствии с условиями лицензии GNU General Public License версии 2 или любой более поздней версии, опубликованной Фондом свободного программного обеспечения.\n" "\n" -"Эта программа распространяется в надежде, что она может быть полезной, но " -"БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ, В ТОМ ЧИСЛЕ " -"БЕЗ ГАРАНТИЙ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. Для " -"получения дополнительных сведений обратитесь к лицензии GNU.\n" +"Эта программа распространяется в надежде, что она может быть полезной, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ, В ТОМ ЧИСЛЕ БЕЗ ГАРАНТИЙ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. Для получения дополнительных сведений обратитесь к лицензии GNU.\n" "\n" "Копия лицензии GNU предоставляется вместе с этой программой. \n" "Её также можно найти на сайте <http://www.gnu.org/licenses/>." @@ -209,8 +199,7 @@ msgstr "" "Использование: abrt-gui [ПАРАМЕТРЫ]\n" "\t-h, --help \tэта справка\n" "\t-v[vv] \tуровень детальности сообщений\n" -"\t--report=<crashid>\tнепосредственно сообщать о сбое с " -"идентификатором=<crashid>" +"\t--report=<crashid>\tнепосредственно сообщать о сбое с идентификатором=<crashid>" #: ../src/Gui/CCMainWindow.py:328 #, python-format @@ -234,8 +223,7 @@ msgstr "Убедитесь, что текст трассировки не сод #, python-format msgid "" "Reporting disabled because the backtrace is unusable.\n" -"Please try to install debuginfo manually using command: <b>debuginfo-install " -"%s</b> \n" +"Please try to install debuginfo manually using command: <b>debuginfo-install %s</b> \n" "then use Refresh button to regenerate the backtrace." msgstr "" "Создание запроса отменено, так как сведения трассировки непригодны.\n" @@ -247,12 +235,8 @@ msgid "The backtrace is unusable, you can't report this!" msgstr "Непригодные сведения трассировки. Они не будут отправлены." #: ../src/Gui/CCReporterDialog.py:120 -msgid "" -"The backtrace is incomplete, please make sure you provide good steps to " -"reproduce." -msgstr "" -"Неполные сведения трассировки. Убедитесь, что описанные действия " -"действительно помогают воспроизвести ошибку." +msgid "The backtrace is incomplete, please make sure you provide good steps to reproduce." +msgstr "Неполные сведения трассировки. Убедитесь, что описанные действия действительно помогают воспроизвести ошибку." #: ../src/Gui/CCReporterDialog.py:162 #, python-format @@ -288,7 +272,8 @@ msgstr "" "Не удалось отправить отчёт!\n" "%s" -#: ../src/Gui/CCReporterDialog.py:538 ../src/Gui/CCReporterDialog.py:559 +#: ../src/Gui/CCReporterDialog.py:538 +#: ../src/Gui/CCReporterDialog.py:559 #, python-format msgid "Error getting the report: %s" msgstr "Ошибка при получении отчёта: %s" @@ -311,7 +296,8 @@ msgstr "Не найден виджет PluginDialog в описании UI!" msgid "No UI for plugin %s" msgstr "Нет UI для модуля %s" -#: ../src/Gui/PluginSettingsUI.py:56 ../src/Gui/PluginSettingsUI.py:82 +#: ../src/Gui/PluginSettingsUI.py:56 +#: ../src/Gui/PluginSettingsUI.py:82 msgid "combo box is not implemented" msgstr "поле ввода со списком недоступно" @@ -385,9 +371,7 @@ msgstr "Подробности" #: ../src/Gui/report.glade.h:18 msgid "I checked backtrace and removed sensitive data (passwords, etc)" -msgstr "" -"Я проверил(а) текст трассировки и удалил(а) конфиденциальные данные (пароли " -"и пр.)" +msgstr "Я проверил(а) текст трассировки и удалил(а) конфиденциальные данные (пароли и пр.)" #: ../src/Gui/report.glade.h:19 msgid "N/A" @@ -409,7 +393,8 @@ msgstr "Отправить отчёт" msgid "Show log" msgstr "Показать журнал" -#: ../src/Gui/SettingsDialog.py:33 ../src/Gui/SettingsDialog.py:50 +#: ../src/Gui/SettingsDialog.py:33 +#: ../src/Gui/SettingsDialog.py:50 msgid "<b>Select plugin</b>" msgstr "<b>Выбрать модуль</b>" @@ -531,12 +516,8 @@ msgid "Warning" msgstr "Предупреждение" #: ../src/Daemon/Daemon.cpp:481 -msgid "" -"Report size exceeded the quota. Please check system's MaxCrashReportsSize " -"value in abrt.conf." -msgstr "" -"Размер отчёта превысил допустимый. Проверьте значение MaxCrashReportsSize в " -"файле abrt.conf" +msgid "Report size exceeded the quota. Please check system's MaxCrashReportsSize value in abrt.conf." +msgstr "Размер отчёта превысил допустимый. Проверьте значение MaxCrashReportsSize в файле abrt.conf" #: ../lib/Plugins/Bugzilla.cpp:326 #, c-format @@ -572,11 +553,13 @@ msgstr "Создаётся новый запрос..." msgid "Bugzilla entry creation failed" msgstr "Не удалось создать запись в Bugzilla" -#: ../lib/Plugins/Bugzilla.cpp:599 ../lib/Plugins/Bugzilla.cpp:704 +#: ../lib/Plugins/Bugzilla.cpp:599 +#: ../lib/Plugins/Bugzilla.cpp:704 msgid "Logging out..." msgstr "Выполняется выход..." -#: ../lib/Plugins/Bugzilla.cpp:629 ../lib/Plugins/Bugzilla.cpp:657 +#: ../lib/Plugins/Bugzilla.cpp:629 +#: ../lib/Plugins/Bugzilla.cpp:657 msgid "get_bug_info() failed. Could not collect all mandatory information" msgstr "Сбой get_bug_info(). Не удалось собрать всю необходимую информацию." @@ -590,7 +573,8 @@ msgstr "Не удалось найти родительский запрос д msgid "Jump to bug %d" msgstr "Перейти к запросу %d" -#: ../lib/Plugins/Bugzilla.cpp:671 ../lib/Plugins/Bugzilla.cpp:672 +#: ../lib/Plugins/Bugzilla.cpp:671 +#: ../lib/Plugins/Bugzilla.cpp:672 #, c-format msgid "Add %s to CC list" msgstr "Добавить %s в список CC" @@ -604,9 +588,10 @@ msgstr "Добавить комментарий к запросу (%d)" msgid "Getting local universal unique identification" msgstr "Получение локальных данных идентификации" +# https://bugzilla.redhat.com/show_bug.cgi?id=572132 #: ../lib/Plugins/CCpp.cpp:275 msgid "Generating backtrace" -msgstr "Генерация трассировки..." +msgstr "Получение трассировки..." #: ../lib/Plugins/CCpp.cpp:441 msgid "Starting debuginfo installation" @@ -664,3 +649,4 @@ msgstr "Выполняется sosreport: %s" #: ../lib/Plugins/SOSreport.cpp:107 msgid "Done running sosreport" msgstr "sosreport завершил работу" + diff --git a/scripts/abrt-bz-ratingfixer b/scripts/abrt-bz-ratingfixer index 15f1a750..9bdb1276 100755 --- a/scripts/abrt-bz-ratingfixer +++ b/scripts/abrt-bz-ratingfixer @@ -154,42 +154,57 @@ for buginfo in buginfos: bz.logout() +# +# Get the component owners +# +bugids = [] +for id, bug in ids.items(): + # Skip bugs with good rating. + if bug['rating'] >= 3: + continue + + # Get the component owner + owner = "Failed to get component owner" + try: + component_info = json.load(urllib.urlopen("https://admin.fedoraproject.org/pkgdb/packages/name/{0}?tg_format=json".format(bug['component']))) + component_packages = component_info['packageListings'] + component_f12 = filter(lambda x:x["collection"]["version"]=="12", component_packages) + if len(component_f12) == 1: + owner = component_f12[0]["owner"] + except KeyError: + pass + + bug['id'] = id + bug['owner'] = owner + bugids.append(bug) + +def ownerCmp(a, b): + if a['owner'] < b['owner']: + return -1 + elif a['owner'] == b['owner']: + return 0 + else: + return 1 + print "============= SUMMARY" -count = 0 closedcount = 0 -bugids = ids.keys() -bugids.sort() if options.wiki: print "{|" print " ! Bug !! Backtrace rating !! Comment count !! Component !! Owner" print " |-" -for bugid in bugids: - bug = ids[bugid] - if bug['rating'] < 3: - count += 1 - if bug['comment_count'] <= 2: - closedcount += 1 - - # Get the component owner - owner = "Failed to get component owner" - try: - component_info = json.load(urllib.urlopen("https://admin.fedoraproject.org/pkgdb/packages/name/{0}?tg_format=json".format(bug['component']))) - component_packages = component_info['packageListings'] - component_f12 = filter(lambda x:x["collection"]["version"]=="12", component_packages) - if len(component_f12) == 1: - owner = component_f12[0]["owner"] - except KeyError: - pass - - if options.wiki: - print " | #[https://bugzilla.redhat.com/show_bug.cgi?id={0} {0}] || {1}/4 || {2} || {3} || {4}".format(bugid, bug['rating'], bug['comment_count'], bug['component'], owner) - print " |-" - else: - print "#{0} has a backtrace with rating {1}/4 and {2} comments, component {3}, owner {4}".format(bugid, bug['rating'], bug['comment_count'], bug['component'], owner) +for bug in sorted(bugids, ownerCmp): + count += 1 + if bug['comment_count'] <= 2: + closedcount += 1 + + if options.wiki: + print " | #[https://bugzilla.redhat.com/show_bug.cgi?id={0} {0}] || {1}/4 || {2} || {3} || {4}".format(bug['id'], bug['rating'], bug['comment_count'], bug['component'], bug['owner']) + print " |-" + else: + print "#{0} has a backtrace with rating {1}/4 and {2} comments, component {3}, owner {4}".format(bug['id'], bug['rating'], bug['comment_count'], bug['component'], bug['owner']) if options.wiki: print " |}" - -print "{0} bugs are included.".format(count) +print "{0} bugs are included.".format(len(bugids)) print "{0} bugs should be closed.".format(closedcount) diff --git a/src/Backtrace/abrt-bz-dupchecker b/src/Backtrace/abrt-bz-dupchecker index dc2ef8ea..654a3702 100755 --- a/src/Backtrace/abrt-bz-dupchecker +++ b/src/Backtrace/abrt-bz-dupchecker @@ -191,6 +191,8 @@ for backtrace, components in database.items(): # Close all bugs where it is appropriate. if options.close: + LIMIT = 1000 + counter = 0 for (component, owner, bugitems, backtrace) in dups: # Find the master bug item # Its the one with the most comments. @@ -217,13 +219,20 @@ if options.close: if item['comments'] > 2: continue - print "Closing bug #{0} with {1} comments as a duplicate of #{2}.".format(item['id'], item['comments'], master['id']) bug = bz.getbug(int(item['id'])) + # Check the bug status AGAIN to make sure the bug is still opened. + if not bug.bug_status in ["NEW", "ASSIGNED"]: + continue + + print "Closing bug #{0} with {1} comments as a duplicate of #{2}.".format(item['id'], item['comments'], master['id']) bug.close("DUPLICATE", int(master['id']), "", - "This bug appears to have been filled using a buggy version of ABRT, because\n" + - "it contains a backtrace which is considered as a duplicate of the backtrace in #{0}." + - "Sorry for the inconvenience.\n\n" + - "Closing as a duplicate of #{0}.".format(master['id'])) + ("This bug appears to have been filled using a buggy version of ABRT, because\n" + + "it contains a backtrace which is a duplicate of backtrace from bug #{0}.\n\n" + + "Sorry for the inconvenience.").format(master['id'])) + + counter += 1 + if counter > LIMIT: + sys.exit(0) bz.logout() |