[yum-commits] Branch 'yum-3_2_X' - 4 commits - rpmUtils/miscutils.py yum/__init__.py yum/config.py yum/packages.py yum/plugins.py
James Antill
james at osuosl.org
Fri Jun 26 18:38:21 UTC 2009
rpmUtils/miscutils.py | 2 +-
yum/__init__.py | 22 +++++++++++++++++-----
yum/config.py | 17 ++++++++++++++---
yum/packages.py | 4 ++--
yum/plugins.py | 9 +++------
5 files changed, 37 insertions(+), 17 deletions(-)
New commits:
commit 06e7d4492846f30d03e400d795bd353bdac6ab77
Author: James Antill <james at and.org>
Date: Fri Jun 26 14:30:16 2009 -0400
Add more clever to _pkgSack init, BZ 508139 and
diff --git a/yum/__init__.py b/yum/__init__.py
index be98aae..2f9723b 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -480,6 +480,19 @@ class YumBase(depsolve.Depsolve):
"""populates the package sacks for information from our repositories,
takes optional archlist for archs to include"""
+ # FIXME: Fist of death ... normally we'd do either:
+ #
+ # 1. use self._pkgSack is not None, and only init. once.
+ # 2. auto. correctly re-init each time a repo is added/removed
+ #
+ # ...we should probably just smeg it and do #2, but it's hard and will
+ # probably break something (but it'll "fix" excludes).
+ # #1 can't be done atm. because we did self._pkgSack and external
+ # tools now rely on being able to create an empty sack and then have it
+ # auto. re-init when they add some stuff. So we add a bit more "clever"
+ # and don't setup the pkgSack to not be None when it's empty. This means
+ # we skip excludes/includes/etc. ... but there's no packages, so
+ # hopefully that's ok.
if self._pkgSack is not None and thisrepo is None:
return self._pkgSack
@@ -499,6 +512,8 @@ class YumBase(depsolve.Depsolve):
self.repos.getPackageSack().setCompatArchs(archdict)
self.repos.populateSack(which=repos)
+ if not self.repos.getPackageSack():
+ return self.repos.getPackageSack() # ha ha, see above
self._pkgSack = self.repos.getPackageSack()
self.excludePackages()
commit e0f6975cf4b8bce2edc79b535bec29077e3262ce
Author: James Antill <james at and.org>
Date: Wed Jun 24 17:56:14 2009 -0400
Add the reason message for hdrFromPackage failing
diff --git a/rpmUtils/miscutils.py b/rpmUtils/miscutils.py
index 4ad72d9..f494fc3 100644
--- a/rpmUtils/miscutils.py
+++ b/rpmUtils/miscutils.py
@@ -410,7 +410,7 @@ def hdrFromPackage(ts, package):
raise rpmUtils.RpmUtilsError, "RPM Error opening Package"
if type(hdr) != rpm.hdr:
os.close(fdno)
- raise rpmUtils.RpmUtilsError, "RPM Error opening Package"
+ raise rpmUtils.RpmUtilsError, "RPM Error opening Package (type)"
os.close(fdno)
return hdr
diff --git a/yum/packages.py b/yum/packages.py
index 6cd34ef..d4838ee 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -1562,9 +1562,9 @@ class YumLocalPackage(YumHeaderPackage):
try:
hdr = rpmUtils.miscutils.hdrFromPackage(ts, self.localpath)
- except RpmUtilsError:
+ except RpmUtilsError, e:
raise Errors.MiscError, \
- 'Could not open local rpm file: %s' % self.localpath
+ 'Could not open local rpm file: %s: %s' % (self.localpath, e)
fakerepo = FakeRepository(filename)
fakerepo.cost = 0
commit 815da46081f5bc753121eba3e33584d807ac2118
Author: James Antill <james at and.org>
Date: Wed Jun 24 17:53:58 2009 -0400
Do the module load fallback for iniparse, I believe Jesse needs this
diff --git a/yum/config.py b/yum/config.py
index 89fb94f..75f8581 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -18,6 +18,7 @@
"""
Configuration parser and default values for yum.
"""
+_use_iniparse = True
import os
import warnings
@@ -26,9 +27,15 @@ import copy
import urlparse
import shlex
from parser import ConfigPreProcessor, varReplace
-from iniparse import INIConfig
-from iniparse.compat import NoSectionError, NoOptionError, ParsingError
-from iniparse.compat import RawConfigParser as ConfigParser
+try:
+ from iniparse import INIConfig
+ from iniparse.compat import NoSectionError, NoOptionError, ParsingError
+ from iniparse.compat import RawConfigParser as ConfigParser
+except ImportError:
+ _use_iniparse = False
+if not _use_iniparse:
+ from ConfigParser import NoSectionError, NoOptionError, ParsingError
+ from ConfigParser import ConfigParser
import rpmUtils.transaction
import Errors
@@ -894,6 +901,10 @@ def writeRawRepoFile(repo,only=None):
@param only: List of attributes to work on (None = All)
It work by reading the repo file, changes the values there shall be changed and write it back to disk.
"""
+
+ if not _use_iniparse:
+ return
+
ini = INIConfig(open(repo.repofile))
# Updated the ConfigParser with the changed values
cfgOptions = repo.cfg.options(repo.id)
commit 5d1cb204ea9072e2a8a0d899fd3e05bbf50e4e8d
Author: James Antill <james at and.org>
Date: Wed Jun 24 17:43:37 2009 -0400
Move all of iniprase stuff into. config
diff --git a/yum/__init__.py b/yum/__init__.py
index a737eb1..be98aae 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -36,17 +36,14 @@ import yum.i18n
_ = yum.i18n._
P_ = yum.i18n.P_
-try:
- from iniparse.compat import ParsingError, RawConfigParser as ConfigParser
-except ImportError:
- from ConfigParser import ParsingError, ConfigParser
+import config
+from config import ParsingError, ConfigParser
import Errors
import rpmsack
import rpmUtils.updates
from rpmUtils.arch import canCoinstall, ArchStorage, isMultiLibArch
import rpmUtils.transaction
import comps
-import config
from repos import RepoStorage
import misc
from parser import ConfigPreProcessor, varReplace
diff --git a/yum/config.py b/yum/config.py
index 1ed703d..89fb94f 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -27,8 +27,8 @@ import urlparse
import shlex
from parser import ConfigPreProcessor, varReplace
from iniparse import INIConfig
-from iniparse.compat import NoSectionError, NoOptionError, ConfigParser
-from iniparse.compat import ParsingError
+from iniparse.compat import NoSectionError, NoOptionError, ParsingError
+from iniparse.compat import RawConfigParser as ConfigParser
import rpmUtils.transaction
import Errors
diff --git a/yum/plugins.py b/yum/plugins.py
index 68f70a4..27b1aa5 100644
--- a/yum/plugins.py
+++ b/yum/plugins.py
@@ -22,11 +22,8 @@ import gettext
import logging
import logginglevels
from constants import *
-try:
- import iniparse.compat as ConfigParser
-except ImportError:
- import ConfigParser
import config
+from config import ParsingError, ConfigParser
import Errors
from parser import ConfigPreProcessor
@@ -342,11 +339,11 @@ class YumPlugins:
self.verbose_logger.log(logginglevels.INFO_2, _("Unable to find configuration file for plugin %s")
% modname)
return None
- parser = ConfigParser.ConfigParser()
+ parser = ConfigParser()
confpp_obj = ConfigPreProcessor(conffilename)
try:
parser.readfp(confpp_obj)
- except ConfigParser.ParsingError, e:
+ except ParsingError, e:
raise Errors.ConfigError("Couldn't parse %s: %s" % (conffilename,
str(e)))
return parser
More information about the Yum-commits
mailing list