Compare commits

...
Sign in to create a new pull request.

28 commits

Author SHA1 Message Date
Zdenek Pavlas
6d0388921c Fix a depsolver traceback. BZ 920758 2013-04-04 18:27:12 +02:00
Zdenek Pavlas
605e507300 fix bugs in package download and verify 2013-03-25 15:19:17 +01:00
Zdenek Pavlas
f14f2b26c6 ui_id: prevent TB on invalid repos with no URLs. BZ 870691 2013-03-11 11:23:32 +01:00
James Antill
c1c8e4faf3 Fix non-removal of corrupt metadata files. BZ 908870. 2013-02-19 19:44:26 -05:00
James Antill
eb9900ac1a Fix non-removal of corrupt metadata files. BZ 908870. 2013-02-19 19:43:20 -05:00
Zdenek Pavlas
1558c1c899 Revert last commit, bump the obsoleted range. BZ 905438 2013-02-19 09:32:16 +01:00
Zdenek Pavlas
0c6bada47c Conflict with yum-plugin-downloadonly. BZ 905438 2013-02-06 10:53:27 +01:00
Zdenek Pavlas
56fa7022d4 Fix a typo in select_groups(). BZ 885139 2013-01-16 15:16:49 +01:00
Zdeněk Pavlas
89bc912db7 Fix the BZ# in previous commit 2012-12-06 14:39:53 +01:00
Zdeněk Pavlas
55dc3db0ee Include langpacks when reading and writing comps. BZ 870753 2012-12-06 14:13:30 +01:00
Zdeněk Pavlas
c4c6a002e6 update yum-cron requires 2012-11-23 14:16:41 +01:00
James Antill
31cab97c3b update to latest HEAD.
- Minor upstream fixes, mainly for ppc64p7.
2012-10-23 16:52:56 -04:00
Zdeněk Pavlas
d7f313512e Update to latest HEAD 2012-10-02 13:24:53 +02:00
James Antill
ec16d690a4 update to latest HEAD.
- Write out groupid and not optionid, for environment groups.
2012-09-12 08:08:22 -04:00
James Antill
e33be8cea5 update to latest HEAD.
- Use .ui_id explicitly for backcompat. on strings, *sigh*.
2012-09-07 16:04:30 -04:00
Jesse Keating
26a29d4ff7 Fix the patch from HEAD, missing self. 2012-08-31 15:51:18 -07:00
James Antill
583723b96a update to latest HEAD.
- Don't statvfs when we aren't going to copy, and using relative.
2012-08-31 17:09:40 -04:00
James Antill
270f3be860 update to latest HEAD.
- Fix rel-eng problems when repo.repofile is None.
- Remove statvfs check for local files when we don't copy.
2012-08-30 16:15:43 -04:00
James Antill
ddff029bb3 update to latest HEAD.
- Fix rel-eng problems when repo.repofile is None.
2012-08-30 10:38:16 -04:00
Zdeněk Pavlas
75057add79 Update to latest HEAD 2012-08-29 17:40:49 +02:00
James Antill
7d4bfae15e Merge branch 'master' into f18
* master:
  update to latest HEAD.
2012-08-29 10:41:03 -04:00
James Antill
91f6da803f Merge branch 'master' into f18
* master:
  update to latest HEAD.
2012-08-28 16:19:39 -04:00
James Antill
3624839cc2 Merge in rawhide:
update to latest HEAD.

- Fix environment groups write.
- Allow merging of updateinfo.
- Add releasever/arch to repoids on output, if used in urls.
2012-08-28 16:12:51 -04:00
Zdeněk Pavlas
d98eeee7d8 Drop a local uncommited change from the previous commit 2012-08-27 11:41:33 +02:00
Zdeněk Pavlas
1acc8e5e6d Update to latest HEAD 2012-08-27 11:16:21 +02:00
Zdeněk Pavlas
93fed308e2 Fix a typo in checkfunc. BZ 850550 2012-08-22 10:47:48 +02:00
James Antill
1be1f4268b Merge remote-tracking branch 'origin/f18' into f18
* origin/f18:
  update to latest HEAD.
2012-08-16 23:17:37 -04:00
James Antill
d5b7fb97da update to latest HEAD.
- Big update, mostly for "environment groups".
2012-08-10 16:10:38 -04:00
8 changed files with 1603 additions and 370 deletions

View file

@ -0,0 +1,22 @@
commit 40d9d5f4c3a00b2efa6ee0b64fe4d1ec52d46a69
Author: Zdeněk Pavlas <zpavlas@redhat.com>
Date: Mon Oct 29 09:22:02 2012 +0100
ui_id: prevent TB on invalid repos with no URLs. BZ 870691.
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index e362c43..414f1d9 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -381,8 +381,10 @@ class YumRepository(Repository, config.RepoConf):
val = ini['metalink']
elif 'mirrorlist' in ini:
val = ini['mirrorlist']
- else:
+ elif 'baseurl' in ini:
val = ini['baseurl']
+ else:
+ val = ''
ret = self.id
if '$releasever' in val:
ret += '/'

View file

@ -0,0 +1,208 @@
From 6ef7823406da1e044ca188a9c96fe867a5e8c36f Mon Sep 17 00:00:00 2001
From: Daniel Mach <dmach@redhat.com>
Date: Tue, 16 Oct 2012 07:10:13 -0400
Subject: Include langpacks when reading and writing comps.
The <langpacks> comps section defines patterns used by the yum-langpacks plugin.
We want to keep them when writing comps.
---
yum/comps.py | 93 +++++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 80 insertions(+), 13 deletions(-)
diff --git a/yum/comps.py b/yum/comps.py
index 4e765ef..fe5649d 100755
--- a/yum/comps.py
+++ b/yum/comps.py
@@ -16,14 +16,14 @@
import types
import sys
-from constants import *
-from Errors import CompsException
+from yum.constants import *
+from yum.Errors import CompsException
#FIXME - compsexception isn't caught ANYWHERE so it's pointless to raise it
# switch all compsexceptions to grouperrors after api break
import fnmatch
import re
from yum.i18n import to_unicode
-from misc import get_my_lang_code
+from yum.misc import get_my_lang_code
from yum.misc import cElementTree_iterparse as iterparse
lang_attr = '{http://www.w3.org/XML/1998/namespace}lang'
@@ -281,7 +281,6 @@ class Group(CompsObj):
return msg
-
class Environment(CompsObj):
""" Environment object parsed from group data in each repo, and merged """
@@ -512,13 +511,61 @@ class Category(CompsObj):
msg += """ </category>\n"""
return msg
-
+
+class Langpacks(CompsObj):
+ def __init__(self, elem=None):
+ self.langpacks = []
+ self.name = "" # prevent CompsObj.__str__() throwing an AttributeError
+ if elem is not None:
+ self.parse(elem)
+
+ def __getitem__(self, indx):
+ return self.langpacks[indx]
+
+ def __iter__(self):
+ for i in self.langpacks:
+ yield i
+
+ def __len__(self):
+ return len(self.langpacks)
+
+ def add(self, name, install):
+ langpack = {
+ "name": name,
+ "install": install,
+ }
+ self.langpacks.append(langpack)
+
+ def parse(self, elem):
+ for child in elem:
+ if child.tag == "match":
+ langpack = {
+ "name": child.attrib.get("name"),
+ "install": child.attrib.get("install"),
+ }
+ self.langpacks.append(langpack)
+ else:
+ raise CompsException("Unexpected element in <langpacks>: %s" % child.tag)
+
+ self.name = elem.attrib.get("name")
+ self.install = elem.attrib.get("install")
+
+ def xml(self):
+ """write out an xml stanza for the Langpacks object"""
+ if not self.langpacks:
+ return ''
+ msg = ' <langpacks>\n'
+ for i in self:
+ msg += ' <match name="%s" install="%s"/>\n' % (i["name"], i["install"])
+ msg += ' </langpacks>\n'
+ return msg
class Comps(object):
def __init__(self, overwrite_groups=False):
self._groups = {}
self._environments = {}
self._categories = {}
+ self._langpacks = Langpacks()
self.compscount = 0
self.overwrite_groups = overwrite_groups
self.compiled = False # have groups been compiled into avail/installed
@@ -529,7 +576,7 @@ class Comps(object):
grps = self._groups.values()
grps.sort(key=lambda x: (x.display_order, x.name))
return grps
-
+
def get_environments(self):
environments = self._environments.values()
environments.sort(key=lambda x: (x.display_order, x.name))
@@ -539,10 +586,14 @@ class Comps(object):
cats = self._categories.values()
cats.sort(key=lambda x: (x.display_order, x.name))
return cats
+
+ def get_langpacks(self):
+ return self._langpacks
groups = property(get_groups)
environments = property(get_environments)
categories = property(get_categories)
+ langpacks = property(get_langpacks)
def has_group(self, grpid):
exists = self.return_groups(grpid)
@@ -703,6 +754,9 @@ class Comps(object):
else:
self._categories[category.categoryid] = category
+ def add_langpack(self, name, install):
+ self._langpacks.add(name, install)
+
def add(self, srcfile = None):
if not srcfile:
raise CompsException
@@ -732,6 +786,8 @@ class Comps(object):
if elem.tag == "category":
category = Category(elem)
self.add_category(category)
+ if elem.tag == "langpacks":
+ self._langpacks.parse(elem)
except SyntaxError, e:
raise CompsException, "comps file is empty/damaged"
@@ -791,7 +847,7 @@ class Comps(object):
"""returns the xml of the comps files in this class, merged"""
if not self._groups and not self._categories and \
- not self._environments:
+ not self._environments and not len(self._langpacks):
return ""
msg = """<?xml version="1.0" encoding="UTF-8"?>
@@ -805,7 +861,7 @@ class Comps(object):
msg += c.xml()
for e in self.get_environments():
msg += e.xml()
-
+ msg += self.get_langpacks().xml()
msg += """\n</comps>\n"""
return msg
@@ -820,23 +876,34 @@ def main():
for srcfile in sys.argv[1:]:
p.add(srcfile)
+ print
+ print "===== GROUPS ====="
for group in p.groups:
- print group
+ print "%s (id: %s)" % (group, group.groupid)
for pkg in group.packages:
print ' ' + pkg
-
+
+ print
+ print "===== ENVIRONMENTS ====="
for environment in p.environments:
- print environment.name
+ print "%s (id: %s)" % (environment.name, environment.environmentid)
for group in environment.groups:
print ' ' + group
for group in environment.options:
print ' *' + group
+ print
+ print "===== CATEGORIES ====="
for category in p.categories:
- print category.name
+ print "%s (id: %s)" % (category.name, category.categoryid)
for group in category.groups:
print ' ' + group
-
+
+ print
+ print "===== LANGPACKS ====="
+ for langpack in p.langpacks:
+ print ' %s (%s)' % (langpack["name"], langpack["install"])
+
except IOError:
print >> sys.stderr, "newcomps.py: No such file:\'%s\'" % sys.argv[1]
sys.exit(1)
--
1.7.4.4

View file

@ -0,0 +1,20 @@
commit 4687ffe032c1a4060da3ef670301df06d0faeb32
Author: Zdeněk Pavlas <zpavlas@redhat.com>
Date: Mon Dec 10 08:55:41 2012 +0100
selectGroup(): Fix a typo. BZ 885139
diff --git a/yum/__init__.py b/yum/__init__.py
index 6401645..63053af 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -3692,7 +3692,8 @@ much more problems).
if not upgrade and len(txmbrs_used) == old_txmbrs:
self.logger.critical(_('Warning: Group %s does not have any packages to install.'), thisgroup.groupid)
if count_cond_test:
- self.logger.critical(_('Group %s does have %u conditional packages, which may get installed.'), count_cond_test)
+ self.logger.critical(_('Group %s does have %u conditional packages, which may get installed.'),
+ thisgroup.groupid, count_cond_test)
return txmbrs_used
def deselectGroup(self, grpid, force=False):

View file

@ -0,0 +1,241 @@
commit 83fcbe745c3ee8f5f0fa29626a86c824db059b22
Author: James Antill <james@and.org>
Date: Thu Feb 7 12:58:07 2013 -0500
Fix problems with mirrors like wtfnix.com, delete bad MD files.
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index dfcf8f9..efbc42a 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -940,6 +941,7 @@ Insufficient space in download directory %s
range=(start, end),
)
except URLGrabError, e:
+ self._del_dl_file(local, size)
errstr = "failed to retrieve %s from %s\nerror was %s" % (relative, self, e)
if self.mirrorurls:
errstr +="\n You could try running: yum clean expire-cache"
@@ -961,6 +963,7 @@ Insufficient space in download directory %s
**kwargs
)
except URLGrabError, e:
+ self._del_dl_file(local, size)
errstr = "failure: %s from %s: %s" % (relative, self, e)
errors = getattr(e, 'errors', None)
raise Errors.NoMoreMirrorsRepoError(errstr, errors)
@@ -1652,6 +1655,18 @@ Insufficient space in download directory %s
raise URLGrabError(-1, 'repomd.xml does not match metalink for %s' %
self)
+ def _del_dl_file(self, local, size):
+ """ Delete a downloaded file if it's the correct size. """
+
+ sd = misc.stat_f(local)
+ if not sd: # File doesn't exist...
+ return
+
+ if size and sd.st_size < size:
+ return # Still more to get...
+
+ # Is the correct size, or too big ... delete it so we'll try again.
+ misc.unlink_f(local)
def checkMD(self, fn, mdtype, openchecksum=False):
"""check the metadata type against its checksum"""
@@ -1681,7 +1696,7 @@ Insufficient space in download directory %s
if size is not None:
size = int(size)
- if fast:
+ if fast and skip_old_DBMD_check:
fsize = misc.stat_f(file)
if fsize is None: # File doesn't exist...
return None
@@ -1756,16 +1771,21 @@ Insufficient space in download directory %s
try:
def checkfunc(obj):
- self.checkMD(obj, mdtype)
+ try:
+ self.checkMD(obj, mdtype)
+ except URLGrabError:
+ # Don't share MD among mirrors, in theory we could use:
+ # self._del_dl_file(local, int(thisdata.size))
+ # ...but this is safer.
+ misc.unlink_f(obj.filename)
+ raise
self.retrieved[mdtype] = 1
text = "%s/%s" % (self, mdtype)
if thisdata.size is None:
reget = None
else:
reget = 'simple'
- if os.path.exists(local):
- if os.stat(local).st_size >= int(thisdata.size):
- misc.unlink_f(local)
+ self._del_dl_file(local, int(thisdata.size))
local = self._getFile(relative=remote,
local=local,
copy_local=1,
commit c148eb10b798270b3d15087433c8efb2a79a69d0
Author: James Antill <james@and.org>
Date: Mon Feb 18 16:17:06 2013 -0500
Use xattr data as well as file size for "fast checksumming".
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index efbc42a..8c38093 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -52,15 +52,54 @@ import stat
import errno
import tempfile
-# If you want yum to _always_ check the MD .sqlite files then set this to
-# False (this doesn't affect .xml files or .sqilte files derived from them).
-# With this as True yum will only check when a new repomd.xml or
-# new MD is downloaded.
-# Note that with atomic MD, we can't have old MD lying around anymore so
-# the only way we need this check is if someone does something like:
-# cp primary.sqlite /var/cache/yum/blah
-# ...at which point you lose.
-skip_old_DBMD_check = True
+# This is unused now, probably nothing uses it but it was global/public.
+skip_old_DBMD_check = False
+
+try:
+ import xattr
+ if not hasattr(xattr, 'get') or not hasattr(xattr, 'set'):
+ xattr = None # This is a "newer" API.
+except ImportError:
+ xattr = None
+
+# The problem we are trying to solve here is that:
+#
+# 1. We rarely want to be downloading MD/pkgs/etc.
+# 2. We want to check those files are valid (match checksums) when we do
+# download them.
+# 3. We _really_ don't want to checksum all the files everytime we
+# run (100s of MBs).
+# 4. We can continue to download files from bad mirrors, or retry files due to
+# C-c etc.
+#
+# ...we used to solve this by just checking the file size, and assuming the
+# files had been downloaded and checksumed as correct if that matched. But that
+# was error prone on bad mirrors, so now we store the checksum in an
+# xattr ... this does mean that if you can't store xattrs (Eg. NFS) you will
+# rechecksum everything constantly.
+
+def _xattr_get_chksum(filename, chktype):
+ if not xattr:
+ return None
+
+ try:
+ ret = xattr.get(filename, 'user.yum.checksum.' + chktype)
+ except: # Documented to be "EnvironmentError", but make sure
+ return None
+
+ return ret
+
+def _xattr_set_chksum(filename, chktype, chksum):
+ if not xattr:
+ return None
+
+ try:
+ xattr.set(filename, 'user.yum.checksum.' + chktype, chksum)
+ except:
+ return False # Data too long. = IOError ... ignore everything.
+
+ return True
+
warnings.simplefilter("ignore", Errors.YumFutureDeprecationWarning)
@@ -228,7 +267,7 @@ class YumPackageSack(packageSack.PackageSack):
# get rid of all this stuff we don't need now
del repo.cacheHandler
- def _check_uncompressed_db_gen(self, repo, mdtype, fast=True):
+ def _check_uncompressed_db_gen(self, repo, mdtype):
"""return file name of db in gen/ dir if good, None if not"""
mydbdata = repo.repoXML.getData(mdtype)
@@ -238,7 +277,7 @@ class YumPackageSack(packageSack.PackageSack):
db_un_fn = mdtype + '.sqlite'
if not repo._checkMD(compressed_fn, mdtype, data=mydbdata,
- check_can_fail=fast, fast=fast):
+ check_can_fail=True):
return None
ret = misc.repo_gen_decompress(compressed_fn, db_un_fn,
@@ -261,8 +300,7 @@ class YumPackageSack(packageSack.PackageSack):
result = None
if os.path.exists(db_un_fn):
- if skip_old_DBMD_check and repo._using_old_MD:
- return db_un_fn
+
try:
repo.checkMD(db_un_fn, mdtype, openchecksum=True)
@@ -296,7 +334,6 @@ class YumRepository(Repository, config.RepoConf):
# eventually want
self.repoMDFile = 'repodata/repomd.xml'
self._repoXML = None
- self._using_old_MD = None
self._oldRepoMDData = {}
self.cache = 0
self.mirrorlistparsed = 0
@@ -1407,7 +1444,6 @@ Insufficient space in download directory %s
self._revertOldRepoXML()
return False
- self._using_old_MD = caching
if caching:
return False # Skip any work.
@@ -1673,7 +1709,7 @@ Insufficient space in download directory %s
return self._checkMD(fn, mdtype, openchecksum)
def _checkMD(self, fn, mdtype, openchecksum=False,
- data=None, check_can_fail=False, fast=False):
+ data=None, check_can_fail=False):
""" Internal function, use .checkMD() from outside yum. """
thisdata = data # So the argument name is nicer
@@ -1696,17 +1732,15 @@ Insufficient space in download directory %s
if size is not None:
size = int(size)
- if fast and skip_old_DBMD_check:
+ l_csum = _xattr_get_chksum(file, r_ctype)
+ if l_csum:
fsize = misc.stat_f(file)
- if fsize is None: # File doesn't exist...
- return None
- if size is None:
- return 1
- if size == fsize.st_size:
- return 1
- if check_can_fail:
- return None
- raise URLGrabError(-1, 'Metadata file does not match size')
+ if fsize is not None: # We just got an xattr, so it should be there
+ if size is None and l_csum == r_csum:
+ return 1
+ if size == fsize.st_size and l_csum == r_csum:
+ return 1
+ # Anything goes wrong, run the checksums as normal...
try: # get the local checksum
l_csum = self._checksum(r_ctype, file, datasize=size)
@@ -1716,6 +1750,7 @@ Insufficient space in download directory %s
raise URLGrabError(-3, 'Error performing checksum')
if l_csum == r_csum:
+ _xattr_set_chksum(file, r_ctype, l_csum)
return 1
else:
if check_can_fail:

View file

@ -0,0 +1,34 @@
diff -up yum-3.4.3/yum/depsolve.py.old yum-3.4.3/yum/depsolve.py
--- yum-3.4.3/yum/depsolve.py.old 2013-04-04 18:21:22.477786494 +0200
+++ yum-3.4.3/yum/depsolve.py 2013-04-04 18:22:48.742547795 +0200
@@ -918,6 +918,9 @@ class Depsolve(object):
self._last_req = None
self.pkgSack.delPackage(otxmbr.po)
self.up.delPackage(otxmbr.pkgtup)
+ # Update the cache and recheck file requires
+ (self.installedFileRequires or {}).pop(otxmbr.pkgtup, None)
+ CheckRemoves = True
if CheckDeps:
if self.dsCallback: self.dsCallback.restartLoop()
@@ -1177,10 +1180,10 @@ class Depsolve(object):
# get file requirements from new packages
for txmbr in self._tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):
+ files = []
for name, flag, evr in txmbr.po.requires:
if name.startswith('/'):
- pt = txmbr.po.pkgtup
- self.installedFileRequires.setdefault(pt, []).append(name)
+ files.append(name)
# check if file requires was already unresolved in update
if name in self.installedUnresolvedFileRequires:
already_broken = False
@@ -1194,6 +1197,7 @@ class Depsolve(object):
nfileRequires.add(name)
fileRequires.add(name)
reverselookup.setdefault(name, []).append(txmbr.po.pkgtup)
+ self.installedFileRequires[txmbr.po.pkgtup] = files
todel = []
for fname in self.installedFileProviders:

View file

@ -0,0 +1,44 @@
commit fe21657d863708d48fe2ec4e056c37a1b676661c
Author: Zdeněk Pavlas <zpavlas@redhat.com>
Date: Wed Nov 14 09:51:26 2012 +0100
can't verify package before it's downloaded
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 6bf520f..4f5f7a6 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -993,7 +993,8 @@ Insufficient space in download directory %s
**kwargs
)
- if not package.verifyLocalPkg(): # Don't return as "success" when bad.
+ if not kwargs.get('async') and not package.verifyLocalPkg():
+ # Don't return as "success" when bad.
msg = "Downloaded package %s, from %s, but it was invalid."
msg = msg % (package, package.repo.id)
raise Errors.RepoError, msg
downloadPkgs: skip duplicated packages
diff -up yum-3.4.3/yum/__init__.py.old yum-3.4.3/yum/__init__.py
--- yum-3.4.3/yum/__init__.py.old 2013-03-25 14:45:17.125277817 +0100
+++ yum-3.4.3/yum/__init__.py 2013-03-25 14:48:31.158718960 +0100
@@ -2226,11 +2226,17 @@ much more problems).
repo_cached = False
remote_pkgs = []
remote_size = 0
+ beenthere = set() # only once, please. BZ 468401
for po in pkglist:
if hasattr(po, 'pkgtype') and po.pkgtype == 'local':
continue
local = po.localPkg()
+ if local in beenthere:
+ # This is definitely a depsolver bug. Make it fatal?
+ self.verbose_logger.warn(_("ignoring a dupe of %s") % po)
+ continue
+ beenthere.add(local)
if os.path.exists(local):
if not self.verifyPkg(local, po, False):
if po.repo.cache:

File diff suppressed because it is too large Load diff

View file

@ -18,7 +18,7 @@
Summary: RPM package installer/updater/manager
Name: yum
Version: 3.4.3
Release: 37%{?dist}
Release: 54%{?dist}
License: GPLv2+
Group: System Environment/Base
Source0: http://yum.baseurl.org/download/3.4/%{name}-%{version}.tar.gz
@ -32,6 +32,12 @@ Patch7: yum-ppc64-preferred.patch
Patch8: BZ-803346-no-only-update.patch
Patch20: yum-manpage-files.patch
Patch21: yum-completion-helper.patch
Patch22: BZ-881756-include-langpacks.patch
Patch23: BZ-885139-not-enough-arguments.patch
Patch24: BZ-908870-MD-files-bad.patch
Patch25: BZ-870691-repos-with-no-url.patch
Patch26: BZ-927240-fix-package-download-and-verify.patch
Patch27: BZ-920758-keep-installedFileRequires-inc-sync.patch
URL: http://yum.baseurl.org/
BuildArchitectures: noarch
@ -56,6 +62,9 @@ Requires: python-sqlite
Requires: python-urlgrabber >= 3.9.0-8
Requires: yum-metadata-parser >= 1.1.0
Requires: pygpgme
# rawhide is >= 0.5.3-7.fc18 ... as this is added.
Requires: pyliblzma
Requires: pyxattr
Conflicts: rpm >= 5-0
# Zif is a re-implementation of yum in C, however:
@ -91,6 +100,8 @@ Provides: yum-protect-packages = 1.1.27-0.yum
Provides: yum-plugin-protect-packages = 1.1.27-0.yum
Obsoletes: yum-plugin-download-order <= 0.2-2
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Obsoletes: yum-plugin-downloadonly <= 1.1.31-7.fc18
Provides: yum-plugin-downloadonly = 3.4.3-44.yum
%description
@ -120,7 +131,7 @@ can notify you when they are available via email, syslog or dbus.
%package cron
Summary: Files needed to run yum updates as a cron job
Group: System Environment/Base
Requires: yum >= 3.0 vixie-cron crontabs yum-plugin-downloadonly findutils
Requires: yum >= 3.0 cronie crontabs findutils
Requires(post): /sbin/chkconfig
Requires(post): /sbin/service
Requires(preun): /sbin/chkconfig
@ -141,6 +152,12 @@ Install this package if you want auto yum updates nightly via cron.
%patch8 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch24 -p1
%patch25 -p1
%patch26 -p1
%patch27 -p1
%patch1 -p1
%build
@ -272,6 +289,7 @@ exit 0
%{_sysconfdir}/bash_completion.d
%dir %{_datadir}/yum-cli
%{_datadir}/yum-cli/*
%exclude %{_datadir}/yum-cli/completion-helper.py?
%if %{yum_updatesd}
%exclude %{_datadir}/yum-cli/yumupd.py*
%endif
@ -315,6 +333,69 @@ exit 0
%endif
%changelog
* Thu Apr 4 2013 Zdenek Pavlas <zpavlas@redhat.com> - 3.4.3-54
- Fix a depsolver traceback. BZ 920758
* Mon Mar 25 2013 Zdenek Pavlas <zpavlas@redhat.com> - 3.4.3-53
- fix getPackage() calling verifyLocalPkg() too early
- downloadPkgs(): skip duplicated packages, issue warning.
* Mon Mar 11 2013 Zdenek Pavlas <zpavlas@redhat.com> - 3.4.3-52
- ui_id: prevent TB on invalid repos with no URLs. BZ 870691
* Tue Feb 19 2013 James Antill <james at fedoraproject.org> - 3.4.3-51
- Fix non-removal of corrupt metadata files. BZ 908870.
* Tue Feb 19 2013 Zdenek Pavlas <zpavlas@redhat.com> - 3.4.3-50
- Revert last commit, bump the obsoleted range. BZ 905438
* Wed Feb 6 2013 Zdenek Pavlas <zpavlas@redhat.com> - 3.4.3-49
- Conflict with yum-plugin-downloadonly. BZ 905438
* Wed Jan 16 2013 Zdeněk Pavlas <zpavlas@redhat.com> - 3.4.3-48
- Fix a typo in select_groups(). BZ 885139
* Thu Dec 6 2012 Zdeněk Pavlas <zpavlas@redhat.com> - 3.4.3-47
- Include langpacks when reading and writing comps. BZ 881756
* Tue Oct 23 2012 James Antill <james at fedoraproject.org> - 3.4.3-46
- update to latest HEAD.
- Minor upstream fixes, mainly for ppc64p7.
* Tue Oct 2 2012 Zdenek Pavlas <zpavlas at redhat.com> - 3.4.3-45
- update to latest HEAD.
- Don't skip loadts new rpmdbv check, when transaction changes. BZ 857961
- Set ignorenewrpm to True, not False, to get it to ignore. BZ 858205.
- Actually use verifyLocalPkg(). Helps BZ 858632.
- Display script output when transaction fails. BZ 856969
- Avoid mkdir repodir/gen/gen in misc.decompress()
- completion helper: Handle ConfigError. BZ 861264.
* Wed Sep 12 2012 James Antill <james at fedoraproject.org> - 3.4.3-44
- update to latest HEAD.
- Write out groupid and not optionid, for environment groups.
* Fri Sep 7 2012 James Antill <james at fedoraproject.org> - 3.4.3-43
- update to latest HEAD.
- Use .ui_id explicitly for backcompat. on strings, *sigh*.
* Fri Aug 31 2012 Jesse Keating <jkeating@redhat.com> - 3.4.3-42
- Fix HEAD patch, add a self. to function call
* Fri Aug 31 2012 James Antill <james at fedoraproject.org> - 3.4.3-41
- update to latest HEAD.
- Don't statvfs when we aren't going to copy, and using relative.
* Thu Aug 30 2012 James Antill <james at fedoraproject.org> - 3.4.3-40
- update to latest HEAD.
- Fix rel-eng problems when repo.repofile is None.
- Remove statvfs check for local files when we don't copy.
* Wed Aug 29 2012 Zdenek Pavlas <zpavlas at redhat.com> - 3.4.3-38
- update to latest HEAD.
- fix a race in group_gz download
- send 'private' mirror flags to urlgrabber.
* Wed Aug 29 2012 James Antill <james at fedoraproject.org> - 3.4.3-37
- update to latest HEAD.
- Fix problem on metalink downloads due to weird python issue.
@ -326,13 +407,13 @@ exit 0
- Add releasever/arch to repoids on output, if used in urls.
- Merge mirror errors fix.
* Thu Aug 23 2012 Zdenek Pavlas <zpavlas at redhat.com> - 3.4.3-34
- Some users skip setupProgressCallbacks(). BZ 850913.
* Mon Aug 27 2012 Zdenek Pavlas <zpavlas at redhat.com> - 3.4.3-34
- update to latest HEAD.
- customized multi_progress_obj option
- improved reporting of mirror group failures
* Wed Aug 22 2012 Zdenek Pavlas <zpavlas at redhat.com> - 3.4.3-33
- update to latest HEAD.
- Set multi_progress_obj option
- Show full URLs and mirror errors when _getFile() fails.
- Fix a typo in checkfunc. BZ 850550
* Thu Aug 16 2012 James Antill <james at fedoraproject.org> - 3.4.3-32
- update to latest HEAD.