rpms/yum/devel yum-HEAD.patch, 1.61, 1.62 yum.spec, 1.323, 1.324 0001-check-reqpo-exists-in-compare_providers.patch, 1.1, NONE 0001-gotta-check-both-not-either-otherwise-filedeps-do.patch, 1.1, NONE fix-kernel-updates.patch, 1.1, NONE installonlyn.py, 1.18, NONE plugin.conf, 1.1, NONE revert-yum-dot-import.patch, 1.1, NONE rpmdb-cache-BIG-post-releasever.path, 1.5, NONE yum-2.6-stdout-trick.patch, 1.1, NONE yum-3.2.20-listTrans-skip-broken.patch, 1.1, NONE yum-3.2.20-obsoletes-dict-fix.patch, 1.1, NONE yum-6hr-metadata_expire.patch, 1.1, NONE yum-close-rpmdb-really.patch, 1.2, NONE yum-do-not-overwrite-keys.patch, 1.1, NONE

James Antill james at fedoraproject.org
Fri Jul 16 19:36:55 UTC 2010


Author: james

Update of /cvs/pkgs/rpms/yum/devel
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv12995

Modified Files:
	yum-HEAD.patch yum.spec 
Removed Files:
	0001-check-reqpo-exists-in-compare_providers.patch 
	0001-gotta-check-both-not-either-otherwise-filedeps-do.patch 
	fix-kernel-updates.patch installonlyn.py plugin.conf 
	revert-yum-dot-import.patch 
	rpmdb-cache-BIG-post-releasever.path 
	yum-2.6-stdout-trick.patch 
	yum-3.2.20-listTrans-skip-broken.patch 
	yum-3.2.20-obsoletes-dict-fix.patch 
	yum-6hr-metadata_expire.patch yum-close-rpmdb-really.patch 
	yum-do-not-overwrite-keys.patch 
Log Message:
* Fri Jul 16 2010 James Antill <james at fedoraproject.org> - 3.2.27-18
- Latest head.
- Add history addon-info.
- Add new callbacks, verify and compare_providers.
- Fix rpm transaction fail API break, probably only for anaconda.
- Bug fixes.


yum-HEAD.patch:
 Makefile                       |    2 
 b/Makefile                     |    2 
 b/cli.py                       |   63 
 b/docs/yum.8                   |   10 
 b/docs/yum.conf.5              |    5 
 b/etc/Makefile                 |    1 
 b/etc/yum.bash                 |    7 
 b/output.py                    |   39 
 b/po/cs.po                     | 1406 ++++++++++++---------
 b/po/en_GB.po                  | 2711 ++++++++++++++++++++++++++++++++++++++++-
 b/po/fi.po                     |  204 +--
 b/po/pt_BR.po                  | 1724 +++++++++++++++-----------
 b/po/ru.po                     |   13 
 b/po/sv.po                     | 1423 ++++++++++++---------
 b/po/uk.po                     | 2632 +++++++++++++++++++++++++++++++++++++++
 b/rpmUtils/arch.py             |   11 
 b/rpmUtils/miscutils.py        |   45 
 b/rpmUtils/oldUtils.py         |    2 
 b/rpmUtils/transaction.py      |    7 
 b/rpmUtils/updates.py          |   13 
 b/test/depsolvetests.py        |   16 
 b/test/packagetests.py         |    2 
 b/test/simpleobsoletestests.py |   19 
 b/test/simpleupdatetests.py    |   41 
 b/test/testbase.py             |    2 
 b/test/yum-leak-test.py        |   55 
 b/test/yum-pylintrc            |    3 
 b/utils.py                     |    3 
 b/yum-updatesd.py              |    8 
 b/yum.spec                     |    3 
 b/yum/Errors.py                |    4 
 b/yum/__init__.py              |   11 
 b/yum/comps.py                 |   21 
 b/yum/config.py                |    3 
 b/yum/depsolve.py              |   12 
 b/yum/history.py               |   35 
 b/yum/logginglevels.py         |    3 
 b/yum/mdparser.py              |    2 
 b/yum/metalink.py              |    6 
 b/yum/misc.py                  |    9 
 b/yum/packageSack.py           |   32 
 b/yum/packages.py              |   16 
 b/yum/pgpmsg.py                |    3 
 b/yum/pkgtag_db.py             |    4 
 b/yum/plugins.py               |    3 
 b/yum/repoMDObject.py          |   93 +
 b/yum/repos.py                 |    2 
 b/yum/rpmsack.py               |   17 
 b/yum/sqlitesack.py            |   27 
 b/yum/transactioninfo.py       |   11 
 b/yum/update_md.py             |    5 
 b/yum/yumRepo.py               |    9 
 b/yumcommands.py               |   23 
 b/yummain.py                   |   11 
 cli.py                         |  121 +
 docs/yum.8                     |   50 
 docs/yum.conf.5                |   86 +
 etc/Makefile                   |    1 
 etc/yum.bash                   |   18 
 output.py                      |  485 +++++--
 po/fi.po                       |    5 
 po/ru.po                       | 1574 ++++++++++++-----------
 po/sv.po                       |  157 --
 po/uk.po                       |  825 +++++++-----
 rpmUtils/arch.py               |   38 
 rpmUtils/miscutils.py          |   25 
 rpmUtils/transaction.py        |   10 
 rpmUtils/updates.py            |   45 
 test/simpleobsoletestests.py   |    6 
 test/simpleupdatetests.py      |    6 
 test/testbase.py               |   22 
 test/yum-leak-test.py          |   57 
 utils.py                       |  159 +-
 yum.spec                       |   28 
 yum/Errors.py                  |   17 
 yum/__init__.py                |  744 +++++++----
 yum/comps.py                   |    6 
 yum/config.py                  |  122 +
 yum/depsolve.py                |  219 ++-
 yum/history.py                 |  406 +++++-
 yum/logginglevels.py           |   65 
 yum/metalink.py                |    6 
 yum/misc.py                    |  168 +-
 yum/packageSack.py             |   46 
 yum/packages.py                |  619 ++++++---
 yum/pgpmsg.py                  |   17 
 yum/plugins.py                 |   29 
 yum/repoMDObject.py            |   11 
 yum/rpmsack.py                 |  278 +++-
 yum/sqlitesack.py              |  162 +-
 yum/transactioninfo.py         |   77 -
 yum/update_md.py               |   26 
 yum/yumRepo.py                 |   52 
 yumcommands.py                 |   30 
 94 files changed, 12998 insertions(+), 4654 deletions(-)

View full diff with command:
/usr/bin/cvs -n -f diff -kk -u -p -N -r 1.61 -r 1.62 yum-HEAD.patchIndex: yum-HEAD.patch
===================================================================
RCS file: /cvs/pkgs/rpms/yum/devel/yum-HEAD.patch,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -p -r1.61 -r1.62
--- yum-HEAD.patch	25 Jun 2010 21:35:49 -0000	1.61
+++ yum-HEAD.patch	16 Jul 2010 19:36:53 -0000	1.62
@@ -35679,3 +35679,2820 @@ index f84ca61..91c6f8d 100644
 -- 
 1.7.0.1
 
+
+From 1d3fada32e9738fac2125c9531d27b10fa4f1918 Mon Sep 17 00:00:00 2001
+From: Timon <timosha at gmail.com>
+Date: Mon, 28 Jun 2010 10:12:24 +0000
+Subject: [PATCH 221] l10n: Updated Russian (ru) translation to 98%
+
+New status: 560 messages complete with 9 fuzzies and 0 untranslated.
+
+Transmitted-via: Transifex (www.transifex.net).
+---
+ po/ru.po |  270 ++++++++++++++++++++++++++++++++------------------------------
+ 1 files changed, 138 insertions(+), 132 deletions(-)
+
+diff --git a/po/ru.po b/po/ru.po
+index ed31858..f1cbc2f 100644
+--- a/po/ru.po
++++ b/po/ru.po
+@@ -11,8 +11,8 @@ msgstr ""
+ "Project-Id-Version: yum\n"
+ "Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2010-02-11 10:54-0500\n"
+-"PO-Revision-Date: 2010-04-24 00:18+0800\n"
+-"Last-Translator: Misha Shnurapet <zayzayats at yandex.ru>\n"
++"PO-Revision-Date: 2010-06-28 16:09+0500\n"
++"Last-Translator: Timon <timosha at gmail.com>\n"
+ "Language-Team: ru <fedora-localization at www.russianfedora.ru>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+@@ -132,12 +132,12 @@ msgstr "  Установлено: %s-%s из %s"
+ #: ../cli.py:229
+ #, python-format
+ msgid "  Built    : %s at %s"
+-msgstr "  Собрано: %s из %s"
++msgstr "  Собрано    : %s из %s"
+ 
+ #: ../cli.py:231
+ #, python-format
+ msgid "  Committed: %s at %s"
+-msgstr "  Передано: %s из %s"
++msgstr "  Передано   : %s из %s"
+ 
+ #: ../cli.py:270
+ msgid "You need to give some command"
+@@ -155,7 +155,7 @@ msgstr "Необходимо места на диске:\n"
+ #: ../cli.py:316
+ #, python-format
+ msgid "  At least %dMB more space needed on the %s filesystem.\n"
+-msgstr "Как минимум %d Мбайт или более необходимо на %s\n"
++msgstr "  Как минимум %d Мбайт необходимо на %s.\n"
+ 
+ #. TODO: simplify the dependency errors?
+ #. Fixup the summary
+@@ -164,8 +164,8 @@ msgid ""
+ "Error Summary\n"
+ "-------------\n"
+ msgstr ""
+-"Обзор ошибок\n"
+-"---------------\n"
++"Обзор ошибок \n"
++"-------------\n"
+ 
+ #: ../cli.py:364
+ msgid "Trying to run the transaction but nothing to do. Exiting."
+@@ -191,37 +191,37 @@ msgstr "Запуск rpm_check_debug"
+ #: ../cli.py:435
+ #: ../yum/__init__.py:4204
+ msgid "ERROR You need to update rpm to handle:"
+-msgstr "ОШИБКА Вам необходимо обновить пакет вручную"
++msgstr "ОШИБКА Вам необходимо обновить rpm:"
+ 
+ #: ../cli.py:437
+ #: ../yum/__init__.py:4207
+ msgid "ERROR with rpm_check_debug vs depsolve:"
+-msgstr "ОШИБКА rpm_check_debug и разрешение зависимостей:"
++msgstr "ОШИБКА в rpm_check_debug и разрешении зависимостей:"
+ 
+ #: ../cli.py:443
+ msgid "RPM needs to be updated"
+-msgstr "RPM пакет должен быть обновлен"
++msgstr "менеджер пакетов RPM должен быть обновлен"
+ 
+ #: ../cli.py:444
+ #, python-format
+ msgid "Please report this error in %s"
+-msgstr "Пожалуйста, сообщите об этой ошибке %s"
++msgstr "Пожалуйста, сообщите об ошибке в %s"
+ 
+ #: ../cli.py:450
+ msgid "Running Transaction Test"
+-msgstr "Проверяем сценарий..."
++msgstr "Проверяем сценарий"
+ 
+ #: ../cli.py:466
+ msgid "Transaction Check Error:\n"
+-msgstr "Завершено с ошибкой:\n"
++msgstr "Проверка сценария завершена с ошибкой:\n"
+ 
+ #: ../cli.py:473
+ msgid "Transaction Test Succeeded"
+-msgstr "Успешно."
++msgstr "Проверка сценария прошла успешно"
+ 
+ #: ../cli.py:495
+ msgid "Running Transaction"
+-msgstr "Выполняем команды"
++msgstr "Запускается сценарий"
+ 
+ #: ../cli.py:525
+ msgid ""
+@@ -234,7 +234,7 @@ msgstr ""
+ #: ../cli.py:544
+ #: ../cli.py:578
+ msgid "  * Maybe you meant: "
+-msgstr "* Возможно вы имели в виду:"
++msgstr "  * Возможно вы имели в виду: "
+ 
+ #: ../cli.py:561
+ #: ../cli.py:569
+@@ -287,7 +287,7 @@ msgstr "Пакет(ы) для отката версии"
+ #: ../cli.py:717
+ #, python-format
+ msgid " (from %s)"
+-msgstr "(из %s)"
++msgstr " (из %s)"
+ 
+ #: ../cli.py:719
+ #, python-format
+@@ -323,8 +323,8 @@ msgid ""
+ " You can use \"%s*/%s%s\" and/or \"%s*bin/%s%s\" to get that behaviour"
+ msgstr ""
+ "Внимание: в yum версии 3.0.x ошибочно совпадают названия файлов.\n"
+-"Вы можете использовать \"%s*/%s%s\" и/или \"%s*bin/%s%s\" \n"
+-"чтобы получить соответствующее поведение"
++" Вы можете использовать \"%s*/%s%s\" и/или \"%s*bin/%s%s\" \n"
++" чтобы получить соответствующее поведение"
+ 
+ #: ../cli.py:884
+ #, python-format
+@@ -365,7 +365,7 @@ msgstr "Сброс модулей"
+ 
+ #: ../cli.py:955
+ msgid "Installed Groups:"
+-msgstr "Установлены коллекции: "
++msgstr "Установлены коллекции:"
+ 
+ #: ../cli.py:967
+ msgid "Available Groups:"
+@@ -473,7 +473,7 @@ msgstr "уровень отладочных сообщений"
+ 
+ #: ../cli.py:1338
+ msgid "show duplicates, in repos, in list/search commands"
+-msgstr "отобразить дубликаты в репозиториях, в списках/поиске команд"
++msgstr "показывать повторяющиеся в репозиториях пакеты, для команд list/search"
+ 
+ #: ../cli.py:1340
+ msgid "error output level"
+@@ -493,7 +493,7 @@ msgstr "подробно описывать действия"
+ 
+ #: ../cli.py:1350
+ msgid "answer yes for all questions"
+-msgstr "Отвечаете \"Да\" на все вопросы"
++msgstr "Отвечать утвердительно на все вопросы"
+ 
+ #: ../cli.py:1352
+ msgid "show Yum version and exit"
+@@ -521,7 +521,7 @@ msgstr "отключает исключения для конкретного р
+ 
+ #: ../cli.py:1369
+ msgid "enable obsoletes processing during updates"
+-msgstr "включить обработку недействительных во время обновления"
++msgstr "включить обработку устаревших во время обновления"
+ 
+ #: ../cli.py:1371
+ msgid "disable Yum plugins"
+@@ -541,7 +541,7 @@ msgstr "включить модуль по названию"
+ 
+ #: ../cli.py:1381
+ msgid "skip packages with depsolving problems"
+-msgstr "пропускать пакеты, с проблемами с зависимостями"
++msgstr "пропускать пакеты, с проблемами в зависимостях"
+ 
+ #: ../cli.py:1383
+ msgid "control whether color is used"
+@@ -561,7 +561,7 @@ msgstr "Фев"
+ 
+ #: ../output.py:305
+ msgid "Mar"
+-msgstr "Март"
[...2429 lines suppressed...]
+ 
+     def __contains__(self, fname):
+@@ -1607,8 +1608,8 @@ class YUMVerifyPackage:
+ 
+ 
+ class _RPMVerifyPackage(YUMVerifyPackage):
+-    def __init__(self, fi, def_csum_type, patterns, all):
+-        YUMVerifyPackage.__init__(self)
++    def __init__(self, po, fi, def_csum_type, patterns, all):
++        YUMVerifyPackage.__init__(self, po)
+ 
+         self._presetup = (fi, def_csum_type, patterns, all)
+     def _setup(self):
+@@ -1681,7 +1682,7 @@ class YumInstalledPackage(YumHeaderPackage):
+                     csum_type = RPM_CHECKSUM_TYPES[csum_num]
+                 # maybe an else with an error code here? or even a verify issue?
+ 
+-        pfs = _RPMVerifyPackage(fi, csum_type, patterns, all)
++        pfs = _RPMVerifyPackage(self, fi, csum_type, patterns, all)
+ 
+         if callback is not None:
+             pfs = callback(pfs)
+-- 
+1.7.0.1
+
+
+From 3af2a179649ce15006a00ef7239d188ef3a8af40 Mon Sep 17 00:00:00 2001
+From: Seth Vidal <skvidal at fedoraproject.org>
+Date: Fri, 9 Jul 2010 13:53:37 -0400
+Subject: [PATCH 240] disable logging.basicConfig() for ticket 525 -- comment the hell out of it
+
+---
+ yum/logginglevels.py |    5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+diff --git a/yum/logginglevels.py b/yum/logginglevels.py
+index 2002140..9534984 100644
+--- a/yum/logginglevels.py
++++ b/yum/logginglevels.py
+@@ -130,7 +130,10 @@ def doLoggingSetup(debuglevel, errorlevel,
+     """
+     global _added_handlers
+ 
+-    logging.basicConfig()
++    #logging.basicConfig() # this appears to not change anything in our 
++    # logging setup - disabling this b/c of the behaviors in yum ticket 525
++    # -skvidal
++    
+ 
+     if _added_handlers:
+         if debuglevel is not None:
+-- 
+1.7.0.1
+
+
+From ff24179876401b3c6526b90df89c767e8091afb3 Mon Sep 17 00:00:00 2001
+From: James Antill <james at and.org>
+Date: Wed, 14 Jul 2010 13:09:18 -0400
+Subject: [PATCH 241] Fix for /proc isn't mounted, continues as though cpuinfo was empty
+
+---
+ rpmUtils/arch.py |   34 +++++++++++++---------------------
+ 1 files changed, 13 insertions(+), 21 deletions(-)
+
+diff --git a/rpmUtils/arch.py b/rpmUtils/arch.py
+index af0d782..5512ea6 100644
+--- a/rpmUtils/arch.py
++++ b/rpmUtils/arch.py
+@@ -202,15 +202,19 @@ def getArchList(thisarch=None):
+         archlist.append('noarch')
+     return archlist
+     
+-        
++def _try_read_cpuinfo():
++    """ Try to read /proc/cpuinfo ... if we can't ignore errors (ie. proc not
++        mounted). """
++    try:
++        lines = open("/proc/cpuinfo", "r").readlines()
++        return lines
++    except:
++        return []
+ 
+ def getCanonX86Arch(arch):
+     # 
+     if arch == "i586":
+-        f = open("/proc/cpuinfo", "r")
+-        lines = f.readlines()
+-        f.close()
+-        for line in lines:
++        for line in _try_read_cpuinfo():
+             if line.startswith("model name") and line.find("Geode(TM)") != -1:
+                 return "geode"
+         return arch
+@@ -219,10 +223,7 @@ def getCanonX86Arch(arch):
+         return arch
+ 
+     # if we're i686 and AuthenticAMD, then we should be an athlon
+-    f = open("/proc/cpuinfo", "r")
+-    lines = f.readlines()
+-    f.close()
+-    for line in lines:
++    for line in _try_read_cpuinfo():
+         if line.startswith("vendor") and line.find("AuthenticAMD") != -1:
+             return "athlon"
+         # i686 doesn't guarantee cmov, but we depend on it
+@@ -237,10 +238,7 @@ def getCanonPPCArch(arch):
+         return arch
+ 
+     machine = None
+-    f = open("/proc/cpuinfo", "r")
+-    lines = f.readlines()
+-    f.close()
+-    for line in lines:
++    for line in _try_read_cpuinfo():
+         if line.find("machine") != -1:
+             machine = line.split(':')[1]
+             break
+@@ -256,10 +254,7 @@ def getCanonPPCArch(arch):
+ def getCanonSPARCArch(arch):
+     # Deal with sun4v, sun4u, sun4m cases
+     SPARCtype = None
+-    f = open("/proc/cpuinfo", "r")
+-    lines = f.readlines()
+-    f.close()
+-    for line in lines:
++    for line in _try_read_cpuinfo():
+         if line.startswith("type"):
+             SPARCtype = line.split(':')[1]
+             break
+@@ -285,10 +280,7 @@ def getCanonX86_64Arch(arch):
+         return arch
+ 
+     vendor = None
+-    f = open("/proc/cpuinfo", "r")
+-    lines = f.readlines()
+-    f.close()
+-    for line in lines:
++    for line in _try_read_cpuinfo():
+         if line.startswith("vendor_id"):
+             vendor = line.split(':')[1]
+             break
+-- 
+1.7.0.1
+
+
+From 0074ae11f40b7262eeade7727c4b4f64cc7fdf61 Mon Sep 17 00:00:00 2001
+From: James Antill <james at and.org>
+Date: Thu, 15 Jul 2010 16:28:15 -0400
+Subject: [PATCH 242] Fix API for anaconda catching rpm transaction failures, BZ 613817
+
+---
+ yum/Errors.py   |   17 +++++++++++++++++
+ yum/__init__.py |    3 ++-
+ 2 files changed, 19 insertions(+), 1 deletions(-)
+
+diff --git a/yum/Errors.py b/yum/Errors.py
+index 211625b..143c9a4 100644
+--- a/yum/Errors.py
++++ b/yum/Errors.py
+@@ -46,6 +46,23 @@ class YumTestTransactionError(YumBaseError):
+ class YumRPMCheckError(YumBaseError):
+     pass
+         
++class YumRPMTransError(YumBaseError):
++    """ This class means rpm's .ts.run() returned known errors. We are compat.
++        with YumBaseError in that we print nicely, and compat. with traditional
++        usage of this error from runTransaction(). """
++    def __init__(self, msg, errors):
++        self.msg    = msg
++        self.errors = errors
++        # old YumBaseError raises from runTransaction used to raise just this
++        self.value  = self.errors
++
++    def __str__(self):
++        return "%s" %(self.msg,)
++
++    def __unicode__(self):
++        return '%s' % to_unicode(self.msg)
++
++
+ class LockError(YumBaseError):
+     def __init__(self, errno, msg, pid=0):
+         YumBaseError.__init__(self)
+diff --git a/yum/__init__.py b/yum/__init__.py
+index c7d3a42..0b3f627 100644
+--- a/yum/__init__.py
++++ b/yum/__init__.py
+@@ -1367,7 +1367,8 @@ class YumBase(depsolve.Depsolve):
+             self.logger.critical(_("Transaction couldn't start:"))
+             for e in errors:
+                 self.logger.critical(e[0]) # should this be 'to_unicoded'?
+-            raise Errors.YumBaseError, _("Could not run transaction.")
++            raise Errors.YumRPMTransError(msg=_("Could not run transaction."),
++                                          errors=errors)
+ 
+                           
+         if not self.conf.keepcache:
+-- 
+1.7.0.1
+


Index: yum.spec
===================================================================
RCS file: /cvs/pkgs/rpms/yum/devel/yum.spec,v
retrieving revision 1.323
retrieving revision 1.324
diff -u -p -r1.323 -r1.324
--- yum.spec	25 Jun 2010 21:35:51 -0000	1.323
+++ yum.spec	16 Jul 2010 19:36:54 -0000	1.324
@@ -3,7 +3,7 @@
 Summary: RPM installer/updater
 Name: yum
 Version: 3.2.27
-Release: 17%{?dist}
+Release: 18%{?dist}
 License: GPLv2+
 Group: System Environment/Base
 Source0: http://yum.baseurl.org/download/3.2/%{name}-%{version}.tar.gz
@@ -133,6 +133,13 @@ rm -rf $RPM_BUILD_ROOT
 %dir /usr/lib/yum-plugins
 
 %changelog
+* Fri Jul 16 2010 James Antill <james at fedoraproject.org> - 3.2.27-18
+- Latest head.
+- Add history addon-info.
+- Add new callbacks, verify and compare_providers.
+- Fix rpm transaction fail API break, probably only for anaconda.
+- Bug fixes.
+
 * Fri Jun 25 2010 James Antill <james at fedoraproject.org> - 3.2.27-17
 - Latest head.
 - Allow reinstalls of kernel, etc.


--- 0001-check-reqpo-exists-in-compare_providers.patch DELETED ---


--- 0001-gotta-check-both-not-either-otherwise-filedeps-do.patch DELETED ---


--- fix-kernel-updates.patch DELETED ---


--- installonlyn.py DELETED ---


--- plugin.conf DELETED ---


--- revert-yum-dot-import.patch DELETED ---


--- rpmdb-cache-BIG-post-releasever.path DELETED ---


--- yum-2.6-stdout-trick.patch DELETED ---


--- yum-3.2.20-listTrans-skip-broken.patch DELETED ---


--- yum-3.2.20-obsoletes-dict-fix.patch DELETED ---


--- yum-6hr-metadata_expire.patch DELETED ---


--- yum-close-rpmdb-really.patch DELETED ---


--- yum-do-not-overwrite-keys.patch DELETED ---



More information about the scm-commits mailing list