[yum-cvs] yum/yum __init__.py, 1.77.2.1, 1.77.2.2 config.py, 1.41.2.2, 1.41.2.3 repos.py, 1.59.2.3, 1.59.2.4
Seth Vidal
skvidal at login.linux.duke.edu
Tue Mar 15 06:56:35 UTC 2005
- Previous message: [yum-cvs] yum/urlgrabber __init__.py, 1.7.2.1, 1.7.2.2 byterange.py, 1.6.2.2, 1.6.2.3 grabber.py, 1.10.2.1, 1.10.2.2 keepalive.py, 1.6.2.1, 1.6.2.2 mirror.py, 1.6.2.1, 1.6.2.2 progress.py, 1.6, 1.6.2.1
- Next message: [yum-cvs] yum cli.py,1.144.2.5,1.144.2.6
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/groups/yum/cvs/yum/yum
In directory login:/tmp/cvs-serv14034/yum
Modified Files:
Tag: yum-2_2_X
__init__.py config.py repos.py
Log Message:
backport bugfixes/features:
- make lockfile local to installroot
- install by dep (yum install "foo > 1.1")
- gpgkey has variableReplace() run on it now
- updated urlgrabber to current
- repo globbing patch included
- display obsoletes in transaction list
- make sure removal deps are listed as deps.
Index: __init__.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/__init__.py,v
retrieving revision 1.77.2.1
retrieving revision 1.77.2.2
diff -u -r1.77.2.1 -r1.77.2.2
--- __init__.py 7 Feb 2005 06:39:20 -0000 1.77.2.1
+++ __init__.py 15 Mar 2005 06:56:32 -0000 1.77.2.2
@@ -307,7 +307,10 @@
# if we're not root then we don't lock - just return nicely
if self.conf.getConfigOption('uid') != 0:
return
-
+
+ root = self.conf.installroot
+ lockfile = root + '/' + lockfile # lock in the chroot
+
mypid=str(os.getpid())
while not self._lock(lockfile, mypid, 0644):
fd = open(lockfile, 'r')
@@ -336,6 +339,10 @@
# if we're not root then we don't lock - just return nicely
if self.conf.getConfigOption('uid') != 0:
return
+
+ root = self.conf.installroot
+ lockfile = root + '/' + lockfile # lock in the chroot
+
self._unlock(lockfile)
def _lock(self, filename, contents='', mode=0777):
@@ -1044,7 +1051,8 @@
"""Pass in a generic [build]require string and this function will
pass back the best(or first) package it finds providing that dep."""
- flags = {'>':'GT', '<':'LT', '=': 'EQ', '>=':'GE', '<=':'LE'}
+ flags = {'>':'GT', '<':'LT', '=': 'EQ', '==': 'EQ', '>=':'GE', '<=':'LE'}
+
self.doRepoSetup()
# parse the string out
# either it is 'dep (some operator) e:v-r'
@@ -1058,6 +1066,8 @@
# not a file dep - look at it for being versioned
if re.search('[>=<]', depstring): # versioned
depname, flagsymbol, depver = depstring.split()
+ if not flags.has_key(flagsymbol):
+ raise Errors.YumBaseError, 'No Packages found for %s' % depstring
depflags = flags[flagsymbol]
sack = self.whatProvides(depname, depflags, depver)
Index: config.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/config.py,v
retrieving revision 1.41.2.2
retrieving revision 1.41.2.3
diff -u -r1.41.2.2 -r1.41.2.3
--- config.py 7 Mar 2005 04:49:29 -0000 1.41.2.2
+++ config.py 15 Mar 2005 06:56:32 -0000 1.41.2.3
@@ -421,6 +421,7 @@
if s not in ('http', 'ftp', 'file', 'https'):
print 'gpgkey must be ftp, http[s], or file URL, ignoring - %s' % gpgkey
gpgkey = ''
+ gpgkey = variableReplace(globconfig.yumvar, gpgkey)
thisrepo.set('gpgkey', gpgkey)
Index: repos.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/repos.py,v
retrieving revision 1.59.2.3
retrieving revision 1.59.2.4
diff -u -r1.59.2.3 -r1.59.2.4
--- repos.py 7 Mar 2005 06:28:19 -0000 1.59.2.3
+++ repos.py 15 Mar 2005 06:56:33 -0000 1.59.2.4
@@ -21,6 +21,8 @@
import types
import re
import urlparse
+import fnmatch
+
import Errors
from urlgrabber.grabber import URLGrabber
@@ -32,6 +34,9 @@
from packages import YumAvailablePackage
import mdcache
+_is_fnmatch_pattern = re.compile(r"[*?[]").search
+
+
class YumPackageSack(packageSack.PackageSack):
"""imports/handles package objects from an mdcache dict object"""
def __init__(self, packageClass):
@@ -122,15 +127,42 @@
raise Errors.RepoError, \
'Error getting repository data for %s, repository not found' % (repoid)
+ def findRepos(self,pattern):
+ """find all repositories matching fnmatch `pattern`"""
+
+ result = []
+ match = re.compile(fnmatch.translate(pattern)).match
+
+ for name,repo in self.repos.items():
+ if match(name):
+ result.append(repo)
+ return result
+
+
def disableRepo(self, repoid):
- """disable a repository from use"""
- thisrepo = self.getRepo(repoid)
- thisrepo.disable()
-
+ """disable a repository from use
+
+ fnmatch wildcards may be used to disable a group of repositories.
+ """
+ if _is_fnmatch_pattern(repoid):
+ for repo in self.findRepos(repoid):
+ repo.disable()
+ else:
+ thisrepo = self.getRepo(repoid)
+ thisrepo.disable()
+
def enableRepo(self, repoid):
- """disable a repository from use"""
- thisrepo = self.getRepo(repoid)
- thisrepo.enable()
+ """enable a repository for use
+
+ fnmatch wildcards may be used to enable a group of repositories.
+ """
+ if _is_fnmatch_pattern(repoid):
+ repos = self.findRepos(repoid)
+ for repo in self.findRepos(repoid):
+ repo.enable()
+ else:
+ thisrepo = self.getRepo(repoid)
+ thisrepo.enable()
def listEnabled(self):
"""return list of enabled repo objects"""
- Previous message: [yum-cvs] yum/urlgrabber __init__.py, 1.7.2.1, 1.7.2.2 byterange.py, 1.6.2.2, 1.6.2.3 grabber.py, 1.10.2.1, 1.10.2.2 keepalive.py, 1.6.2.1, 1.6.2.2 mirror.py, 1.6.2.1, 1.6.2.2 progress.py, 1.6, 1.6.2.1
- Next message: [yum-cvs] yum cli.py,1.144.2.5,1.144.2.6
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Yum-cvs-commits
mailing list