diff --git a/SOURCES/BZ-1063181-upgrades-for-install-only.patch b/SOURCES/BZ-1063181-upgrades-for-install-only.patch new file mode 100644 index 0000000..f7e3023 --- /dev/null +++ b/SOURCES/BZ-1063181-upgrades-for-install-only.patch @@ -0,0 +1,42 @@ +commit fada4b8dbd30d0335a9c07067a74dccec0abbedb +Author: James Antill +Date: Mon Sep 29 11:40:54 2014 -0400 + + Don't look for upgrades for install only packages. BZ 1063181. + +diff --git a/yum/__init__.py b/yum/__init__.py +index a8a4e80..83a546a 100644 +--- a/yum/__init__.py ++++ b/yum/__init__.py +@@ -4654,6 +4654,9 @@ much more problems). + # don't have to. + return po.pkgtup in self.up.updating_dict + ++ if self.allowedMultipleInstalls(po): ++ return False ++ + for ipkg in ipkgs: + if po.verLE(ipkg): + continue +diff -up yum-3.4.3/test/simpleupdatetests.py.old yum-3.4.3/test/simpleupdatetests.py +--- yum-3.4.3/test/simpleupdatetests.py.old 2014-09-30 11:01:39.000000000 +0200 ++++ yum-3.4.3/test/simpleupdatetests.py 2014-09-30 11:02:19.513283044 +0200 +@@ -1230,3 +1230,18 @@ class SimpleUpdateTests(OperationsTests) + + self.assert_(self._pkg2txmbr(foo11).reason == 'user') + self.assert_(self._pkg2txmbr(bar11).reason == 'blahg') ++ ++ def testInstall_kernel_intermediate(self): ++ # Make sure we don't break this again... ++ k11 = FakePackage('kernel', '1', '1', '0', 'i386') ++ k12 = FakePackage('kernel', '1', '2', '0', 'i386') ++ k13 = FakePackage('kernel', '1', '3', '0', 'i386') ++ k14 = FakePackage('kernel', '1', '4', '0', 'i386') ++ k15 = FakePackage('kernel', '1', '5', '0', 'i386') ++ ++ res, msg = self.runOperation(['install', 'kernel-1-2'], ++ [k11, k13, k14], ++ [k11, k12, k13, k14, k15]) ++ ++ self.assert_(res=='ok', msg) ++ self.assertResult((k11, k12, k13, k14)) diff --git a/SOURCES/BZ-1087911-update-minimal-manpage.patch b/SOURCES/BZ-1087911-update-minimal-manpage.patch new file mode 100644 index 0000000..58e7896 --- /dev/null +++ b/SOURCES/BZ-1087911-update-minimal-manpage.patch @@ -0,0 +1,16 @@ +@@ -, +, @@ +--- + docs/yum.8 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +--- a/docs/yum.8 ++++ a/docs/yum.8 +@@ -25,7 +25,7 @@ gnome\-packagekit application\&. + .br + .I \fR * update-to [package1] [package2] [\&.\&.\&.] + .br +-.I \fR * minimal-update [package1] [package2] [\&.\&.\&.] ++.I \fR * update-minimal [package1] [package2] [\&.\&.\&.] + .br + .I \fR * check\-update + .br +-- diff --git a/SOURCES/BZ-1095146-file-uris-normpath.patch b/SOURCES/BZ-1095146-file-uris-normpath.patch new file mode 100644 index 0000000..e4d704d --- /dev/null +++ b/SOURCES/BZ-1095146-file-uris-normpath.patch @@ -0,0 +1,18 @@ +commit bec81af1bffdd3c3511ad8861fb66b376bee89e9 +Author: Valentina Mukhamedzhanova +Date: Thu Mar 27 16:56:19 2014 +0100 + + normpath() file URIs. BZ 1009499 + +diff --git a/yum/__init__.py b/yum/__init__.py +index 84ca658..ac01435 100644 +--- a/yum/__init__.py ++++ b/yum/__init__.py +@@ -562,6 +562,7 @@ class YumBase(depsolve.Depsolve): + # if we don't do this then anaconda likes to not work. + if os.path.exists(self.conf.installroot+'/'+reposdir): + reposdir = self.conf.installroot + '/' + reposdir ++ reposdir = os.path.normpath(reposdir) + + if os.path.isdir(reposdir): + for repofn in sorted(glob.glob('%s/*.repo' % reposdir)): diff --git a/SOURCES/BZ-1095157-traceback-when-empty-history.patch b/SOURCES/BZ-1095157-traceback-when-empty-history.patch new file mode 100644 index 0000000..708fd2a --- /dev/null +++ b/SOURCES/BZ-1095157-traceback-when-empty-history.patch @@ -0,0 +1,80 @@ +commit 1c557629752d26dca86948c5e933d8f31448818d +Author: Valentina Mukhamedzhanova +Date: Thu Apr 17 16:15:22 2014 +0200 + + Fix traceback when the history dir is empty. BZ 875610 + +diff --git a/yum/history.py b/yum/history.py +index 3f20128..2f423d9 100644 +--- a/yum/history.py ++++ b/yum/history.py +@@ -697,7 +697,9 @@ class YumHistory: + break + + if self._db_file is None: +- self._create_db_file() ++ if not self._create_db_file(): ++ # Couldn't create a db file ++ return + + # make an addon path for where we're going to stick + # random additional history info - probably from plugins and what-not +@@ -1603,8 +1605,10 @@ class YumHistory: + if os.path.exists(_db_file + '-journal'): + os.rename(_db_file + '-journal', _db_file + '-journal.old') + self._db_file = _db_file ++ if not self.conf.writable: ++ return False + +- if self.conf.writable and not os.path.exists(self._db_file): ++ if not os.path.exists(self._db_file): + # make them default to 0600 - sysadmin can change it later + # if they want + fo = os.open(self._db_file, os.O_CREAT, 0600) +@@ -1659,6 +1663,7 @@ class YumHistory: + for op in self._update_ops_3: + cur.execute(op) + self._commit() ++ return True + + # Pasted from sqlitesack + _FULL_PARSE_QUERY_BEG = """ +commit 8c6cd83a4825155d1ee9ddcd29b023682944e3e6 +Author: Valentina Mukhamedzhanova +Date: Wed Mar 12 15:41:30 2014 +0100 + + Fix traceback when history files don't exist and user is not root. + +diff --git a/yum/history.py b/yum/history.py +index 6f60f54..3f20128 100644 +--- a/yum/history.py ++++ b/yum/history.py +@@ -668,6 +668,7 @@ class YumHistory: + + self.releasever = releasever + ++ self._db_file = None + if not os.path.exists(self.conf.db_path): + try: + os.makedirs(self.conf.db_path) +@@ -680,7 +681,6 @@ class YumHistory: + self.conf.writable = True + + DBs = glob.glob('%s/history-*-*-*.sqlite' % self.conf.db_path) +- self._db_file = None + for d in reversed(sorted(DBs)): + fname = os.path.basename(d) + fname = fname[len("history-"):-len(".sqlite")] +diff --git a/yumcommands.py b/yumcommands.py +index 4e72a71..75b3ce2 100644 +--- a/yumcommands.py ++++ b/yumcommands.py +@@ -3051,7 +3051,7 @@ class HistoryCommand(YumCommand): + if extcmds and extcmds[0] in ('repeat', 'redo', 'undo', 'rollback', 'new'): + checkRootUID(base) + checkGPGKey(base) +- elif not os.access(base.history._db_file, os.R_OK): ++ elif not (base.history._db_file and os.access(base.history._db_file, os.R_OK)): + base.logger.critical(_("You don't have access to the history DB.")) + raise cli.CliError + diff --git a/SOURCES/BZ-1095161-setopt-spaces-handling.patch b/SOURCES/BZ-1095161-setopt-spaces-handling.patch new file mode 100644 index 0000000..1811bc2 --- /dev/null +++ b/SOURCES/BZ-1095161-setopt-spaces-handling.patch @@ -0,0 +1,19 @@ +commit 0954b42554b7f78809d9050886b419a99e28d289 +Author: Valentina Mukhamedzhanova +Date: Tue May 13 15:50:52 2014 +0200 + + Make --setopt handle spaces properly. BZ 1094373 + +diff --git a/cli.py b/cli.py +index c1ef023..aa73278 100755 +--- a/cli.py ++++ b/cli.py +@@ -193,7 +193,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput): + if len(vals) < 2: + bad_setopt_ne.append(item) + continue +- k,v = vals ++ k, v = [i.strip() for i in vals] + period = k.rfind('.') + if period != -1: + repo = k[:period] diff --git a/SOURCES/BZ-1096147-history-search-crash.patch b/SOURCES/BZ-1096147-history-search-crash.patch new file mode 100644 index 0000000..f237571 --- /dev/null +++ b/SOURCES/BZ-1096147-history-search-crash.patch @@ -0,0 +1,36 @@ +commit 5efc1e1b88398da7f89dcb9055d62481bb288a8a +Author: James Antill +Date: Tue Sep 16 16:33:33 2014 -0400 + + Workaround history searching for [abc] character lists failures. BZ 1096147. + +diff --git a/yum/history.py b/yum/history.py +index 2f423d9..fd80191 100644 +--- a/yum/history.py ++++ b/yum/history.py +@@ -20,6 +20,7 @@ + import time + import os, os.path + import glob ++import re + from weakref import proxy as weakref + + from sqlutils import sqlite, executeSQL, sql_esc_glob +@@ -1422,6 +1423,17 @@ class YumHistory: + if cur is None: + return set() + ++ # This is kind of a hack, we can't do 'y[u]m' in SQL. In real yum ++ # we manually load everything and then do it inside yum (which is slow ++ # and a lot of code, but nobody uses it anyway and we already had the ++ # code). Here we don't have the code though, and still nobody will use ++ # it. So we cheat: ++ # 1. Convert 'y[u]m' into 'y?m' ... it returns more answers than it ++ # should, but the correct answers are there. ++ # 2. Convert 'y[m' info 'y!m' ... neither will match anything, so w/e. ++ patterns = [re.sub('\[[^]]+\]', '?', x).replace('[', '!') ++ for x in patterns] ++ + data = _setupHistorySearchSQL(patterns, ignore_case) + (need_full, npatterns, fields, names) = data + diff --git a/SOURCES/BZ-1097383-usr-readonly.patch b/SOURCES/BZ-1097383-usr-readonly.patch new file mode 100644 index 0000000..145eb70 --- /dev/null +++ b/SOURCES/BZ-1097383-usr-readonly.patch @@ -0,0 +1,77 @@ +commit 507182919894e9bf75b08a75cb22c49d852c8278 +Author: James Antill +Date: Wed May 21 15:14:55 2014 -0400 + + Check /usr for writability before running a transaction. + +diff --git a/docs/yum.conf.5 b/docs/yum.conf.5 +index 4ec7689..c39544d 100644 +--- a/docs/yum.conf.5 ++++ b/docs/yum.conf.5 +@@ -892,6 +892,11 @@ shouldn't be needed as yum should always solve or fail, however it has been + observed that it can loop forever with very large system upgrades. Setting + this to `0' (or "") makes yum try forever. Default is `100'. + ++.IP ++\fBusr_w_check\fR ++Either `0' or `1'. Set this to `0' to disable the checking for writability on ++/usr in the installroot (when going into the depsolving stage). Default is `1' ++(perform the check). + + .SH "[repository] OPTIONS" + .LP +diff --git a/yum/config.py b/yum/config.py +index 7bb56d0..f0f4e96 100644 +--- a/yum/config.py ++++ b/yum/config.py +@@ -906,6 +906,8 @@ class YumConf(StartupConf): + + check_config_file_age = BoolOption(True) + ++ usr_w_check = BoolOption(True) ++ + _reposlist = [] + + def dump(self): +diff --git a/yummain.py b/yummain.py +index fa76af8..ee8d632 100755 +--- a/yummain.py ++++ b/yummain.py +@@ -209,6 +209,17 @@ def main(args): + logger.critical(msg) + if unlock(): return 200 + return 3 ++ ++ # Mainly for ostree, but might be useful for others. ++ if base.conf.usr_w_check: ++ usrinstpath = base.conf.installroot + "/usr" ++ usrinstpath = usrinstpath.replace('//', '/') ++ if not os.access(usrinstpath, os.W_OK): ++ logger.critical(_('No write access to %s directory') % usrinstpath) ++ logger.critical(_(' Maybe this is an ostree image?')) ++ logger.critical(_(' To disable you can use --setopt=usr_w_check=false')) ++ if unlock(): return 200 ++ return 1 + + # Depsolve stage + verbose_logger.log(logginglevels.INFO_2, _('Resolving Dependencies')) +commit 6e64b142014dc3c5489aed7966f0948948054fb7 +Author: James Antill +Date: Wed May 21 18:29:28 2014 -0400 + + Check for existance, so mock etc. is happy. + +diff --git a/yummain.py b/yummain.py +index ee8d632..24bbe6c 100755 +--- a/yummain.py ++++ b/yummain.py +@@ -214,7 +214,8 @@ def main(args): + if base.conf.usr_w_check: + usrinstpath = base.conf.installroot + "/usr" + usrinstpath = usrinstpath.replace('//', '/') +- if not os.access(usrinstpath, os.W_OK): ++ if (os.path.exists(usrinstpath) and ++ not os.access(usrinstpath, os.W_OK)): + logger.critical(_('No write access to %s directory') % usrinstpath) + logger.critical(_(' Maybe this is an ostree image?')) + logger.critical(_(' To disable you can use --setopt=usr_w_check=false')) diff --git a/SOURCES/BZ-1102585-variable-substitution.patch b/SOURCES/BZ-1102585-variable-substitution.patch new file mode 100644 index 0000000..97c120b --- /dev/null +++ b/SOURCES/BZ-1102585-variable-substitution.patch @@ -0,0 +1,69 @@ +commit 28cc43d16664a408f7e4315767230544d7f52618 +Author: Valentina Mukhamedzhanova +Date: Mon May 19 16:21:46 2014 +0200 + + Replace vars in include lines in .repo files. BZ 977380 + +diff --git a/yum/parser.py b/yum/parser.py +index b165ef2..5110cb5 100644 +--- a/yum/parser.py ++++ b/yum/parser.py +@@ -18,6 +18,8 @@ def varReplace(raw, vars): + @return: Input raw string with substituted values. + ''' + ++ if not vars: ++ return raw + done = [] # Completed chunks to return + + while raw: +@@ -136,6 +138,7 @@ class ConfigPreProcessor: + 'Error parsing config %s: include must specify file to include.' % (self.name) + else: + # whooohoo a valid include line.. push it on the stack ++ url = varReplace(url, self._vars) + fo = self._pushfile( url ) + else: + # check if the current line starts a new section +@@ -156,9 +159,7 @@ class ConfigPreProcessor: + line = line.lstrip() + # at this point we have a line from the topmost file on the stack + # or EOF if the stack is empty +- if self._vars: +- return varReplace(line, self._vars) +- return line ++ return varReplace(line, self._vars) + + + def _absurl( self, url ): +commit 04c46c81f556e3e5ee72630f9501e243d00528a7 +Author: Valentina Mukhamedzhanova +Date: Wed Jun 11 11:13:00 2014 +0200 + + Read env vars in readStartupConfig() to make them work in yum.conf. BZ 1102575 + +diff --git a/yum/config.py b/yum/config.py +index f0f4e96..6e0ecdc 100644 +--- a/yum/config.py ++++ b/yum/config.py +@@ -1042,6 +1042,11 @@ def readStartupConfig(configfile, root, releasever=None): + startupconf.config_file_path = configfile + parser = ConfigParser() + confpp_obj = ConfigPreProcessor(configfile) ++ ++ yumvars = _getEnvVar() ++ confpp_obj._vars = yumvars ++ startupconf.yumvars = yumvars ++ + try: + parser.readfp(confpp_obj) + except ParsingError, e: +@@ -1076,7 +1081,7 @@ def readMainConfig(startupconf): + # ' xemacs syntax hack + + # Set up substitution vars +- yumvars = _getEnvVar() ++ yumvars = startupconf.yumvars + yumvars['basearch'] = startupconf.basearch + yumvars['arch'] = startupconf.arch + yumvars['releasever'] = startupconf.releasever diff --git a/SOURCES/BZ-1113395-verify-permissions-mask.patch b/SOURCES/BZ-1113395-verify-permissions-mask.patch new file mode 100644 index 0000000..c625d61 --- /dev/null +++ b/SOURCES/BZ-1113395-verify-permissions-mask.patch @@ -0,0 +1,28 @@ +commit bb6908d630966d9e385659516c2759c47c0e2ee7 +Author: Valentina Mukhamedzhanova +Date: Fri Mar 28 10:41:39 2014 +0100 + + Mask st_mode to fix verifying permissions for ghost files. BZ 1045415 + +diff --git a/yum/packages.py b/yum/packages.py +index 69c612f..9522235 100644 +--- a/yum/packages.py ++++ b/yum/packages.py +@@ -2033,11 +2033,14 @@ class YumInstalledPackage(YumHeaderPackage): + problems.append(prob) + + my_mode = my_st.st_mode ++ pf_mode = pf.mode ++ perm_mask = 0777 + if 'ghost' in ftypes: # This is what rpm does, although it +- my_mode &= 0777 # doesn't usually get here. +- if check_perms and pf.verify_mode and my_mode != pf.mode: ++ my_mode &= perm_mask # doesn't usually get here. ++ pf_mode &= perm_mask ++ if check_perms and pf.verify_mode and my_mode != pf_mode: + prob = _PkgVerifyProb('mode', 'mode does not match', ftypes) +- prob.database_value = pf.mode ++ prob.database_value = pf_mode + prob.disk_value = my_st.st_mode + problems.append(prob) + diff --git a/SOURCES/BZ-1130939-dont-create-lockdir-directories.patch b/SOURCES/BZ-1130939-dont-create-lockdir-directories.patch new file mode 100644 index 0000000..fc70f26 --- /dev/null +++ b/SOURCES/BZ-1130939-dont-create-lockdir-directories.patch @@ -0,0 +1,51 @@ +commit ffb40e6a1b9c3f4b5b08151a04a5922fc5a9b521 +Author: James Antill +Date: Wed Jan 29 16:04:18 2014 -0500 + + Don't create lockdir directories, as they are magic now. BZ 975864 + +diff --git a/yum/__init__.py b/yum/__init__.py +index 222a378..0604d63 100644 +--- a/yum/__init__.py ++++ b/yum/__init__.py +@@ -2136,7 +2136,11 @@ much more problems). + lockfile = os.path.normpath(lockfile) # get rid of silly preceding extra / + + mypid=str(os.getpid()) +- while not self._lock(lockfile, mypid, 0644): ++ while True: ++ ret = self._lock(lockfile, mypid, 0644) ++ if ret: ++ break ++ + oldpid = self._get_locker(lockfile) + if not oldpid: + # Invalid locker: unlink lockfile and retry +@@ -2147,6 +2151,13 @@ much more problems). + # Another copy seems to be running. + msg = _('Existing lock %s: another copy is running as pid %s.') % (lockfile, oldpid) + raise Errors.LockError(0, msg, oldpid) ++ ++ if ret == 2: ++ # Means lockdir isn't setup, out of bad options just run without ++ # locks. ++ return ++ ++ assert ret == 1 + # We've got the lock, store it so we can auto-unlock on __del__... + self._lockfile = lockfile + +@@ -2186,7 +2197,12 @@ much more problems). + lockdir = os.path.dirname(filename) + try: + if not os.path.exists(lockdir): +- os.makedirs(lockdir, mode=0755) ++ # We used to os.makedirs(lockdir, mode=0755) ... but that ++ # causes problems now due to /var/run being a magic systemd dir. ++ # So we now just give up and run, hopefully nobody runs N ++ # instances before the magic dir. is activate. ++ return 2 ++ + fd = os.open(filename, os.O_EXCL|os.O_CREAT|os.O_WRONLY, mode) + os.write(fd, contents) + os.close(fd) diff --git a/SOURCES/BZ-1138205-needs-restarting.patch b/SOURCES/BZ-1138205-needs-restarting.patch new file mode 100644 index 0000000..4defc36 --- /dev/null +++ b/SOURCES/BZ-1138205-needs-restarting.patch @@ -0,0 +1,75 @@ +commit 7ef0f4ad556e3d4bfe0eeebd1f110de745adec3c +Author: Valentina Mukhamedzhanova +Date: Wed Mar 19 16:24:58 2014 +0100 + + Make utils.get_process_info() respect executable names with spaces. + +diff --git a/utils.py b/utils.py +index 0b7191c..b00d312 100755 +--- a/utils.py ++++ b/utils.py +@@ -114,18 +114,20 @@ def get_process_info(pid): + break + if boot_time is None: + return +- ps_stat = open("/proc/%d/stat" % pid).read().split() +- ps['utime'] = jiffies_to_seconds(ps_stat[13]) +- ps['stime'] = jiffies_to_seconds(ps_stat[14]) +- ps['cutime'] = jiffies_to_seconds(ps_stat[15]) +- ps['cstime'] = jiffies_to_seconds(ps_stat[16]) +- ps['start_time'] = boot_time + jiffies_to_seconds(ps_stat[21]) ++ ps_stat = open("/proc/%d/stat" % pid).read().strip() ++ # Filename of the executable might contain spaces, so we throw it away ++ ps_stat = ps_stat[ps_stat.rfind(')') + 2:].split() ++ ps['utime'] = jiffies_to_seconds(ps_stat[11]) ++ ps['stime'] = jiffies_to_seconds(ps_stat[12]) ++ ps['cutime'] = jiffies_to_seconds(ps_stat[13]) ++ ps['cstime'] = jiffies_to_seconds(ps_stat[14]) ++ ps['start_time'] = boot_time + jiffies_to_seconds(ps_stat[19]) + ps['state'] = {'R' : _('Running'), + 'S' : _('Sleeping'), + 'D' : _('Uninterruptible'), + 'Z' : _('Zombie'), + 'T' : _('Traced/Stopped') +- }.get(ps_stat[2], _('Unknown')) ++ }.get(ps_stat[0], _('Unknown')) + + return ps + +commit cf0464bea74f6e8d4650afee4e66d66bff2bc9a1 +Author: Valentina Mukhamedzhanova +Date: Wed Mar 19 17:19:32 2014 +0100 + + Refactored utils.get_process_info() to make parts of it reusable. + +diff --git a/utils.py b/utils.py +index b00d312..dbcd605 100755 +--- a/utils.py ++++ b/utils.py +@@ -107,13 +107,21 @@ def get_process_info(pid): + return + if 'vmsize' not in ps: + return +- boot_time = None +- for line in open("/proc/stat"): +- if line.startswith("btime "): +- boot_time = int(line[len("btime "):-1]) +- break ++ boot_time = get_boot_time() + if boot_time is None: + return ++ ps.update(get_process_time(pid, boot_time)) ++ return ps ++ ++ ++def get_boot_time(): ++ for line in open("/proc/stat"): ++ if line.startswith("btime "): ++ return int(line[len("btime "):-1]) ++ ++ ++def get_process_time(pid, boot_time): ++ ps = {} + ps_stat = open("/proc/%d/stat" % pid).read().strip() + # Filename of the executable might contain spaces, so we throw it away + ps_stat = ps_stat[ps_stat.rfind(')') + 2:].split() diff --git a/SOURCES/BZ-1147992-debuginfo-install-dolock-exception.patch b/SOURCES/BZ-1147992-debuginfo-install-dolock-exception.patch new file mode 100644 index 0000000..24aeb0e --- /dev/null +++ b/SOURCES/BZ-1147992-debuginfo-install-dolock-exception.patch @@ -0,0 +1,18 @@ +commit 221d46dde594ca9b69915ac128fc1a9a19f984a1 +Author: Valentina Mukhamedzhanova +Date: Mon Feb 17 12:31:59 2014 +0100 + + Fix debuginfo-install doLock() traceback. BZ 1062479 + +diff --git a/yum/__init__.py b/yum/__init__.py +index 3b6ed82..37ab468 100644 +--- a/yum/__init__.py ++++ b/yum/__init__.py +@@ -2165,6 +2165,7 @@ much more problems). + self._unlock(lockfile) + continue + if oldpid == os.getpid(): # if we own the lock, we're fine ++ ret = 1 + break + # Another copy seems to be running. + msg = _('Existing lock %s: another copy is running as pid %s.') % (lockfile, oldpid) diff --git a/SOURCES/yum.conf.centos b/SOURCES/yum.conf.centos deleted file mode 100644 index 367126f..0000000 --- a/SOURCES/yum.conf.centos +++ /dev/null @@ -1,26 +0,0 @@ -[main] -cachedir=/var/cache/yum/$basearch/$releasever -keepcache=0 -debuglevel=2 -logfile=/var/log/yum.log -exactarch=1 -obsoletes=1 -gpgcheck=1 -plugins=1 -installonly_limit=5 -bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum -distroverpkg=centos-release - - -# This is the default, if you make this bigger yum won't see if the metadata -# is newer on the remote and so you'll "gain" the bandwidth of not having to -# download the new metadata and "pay" for it by yum not having correct -# information. -# It is esp. important, to have correct metadata, for distributions like -# Fedora which don't keep old packages around. If you don't like this checking -# interupting your command line usage, it's much better to have something -# manually check the metadata once an hour (yum-updatesd will do this). -# metadata_expire=90m - -# PUT YOUR REPOS HERE OR IN separate files named file.repo -# in /etc/yum.repos.d diff --git a/SPECS/yum.spec b/SPECS/yum.spec index 6dbb5b0..d34bde3 100644 --- a/SPECS/yum.spec +++ b/SPECS/yum.spec @@ -36,11 +36,11 @@ BuildRequires: bash-completion Summary: RPM package installer/updater/manager Name: yum Version: 3.4.3 -Release: 118%{?dist} +Release: 125%{?dist} License: GPLv2+ Group: System Environment/Base Source0: http://yum.baseurl.org/download/3.4/%{name}-%{version}.tar.gz -Source1: yum.conf.centos +Source1: yum.conf.fedora Source2: yum-updatesd.conf.fedora Patch1: yum-distro-configs.patch Patch5: geode-arch.patch @@ -63,6 +63,20 @@ patch39: BZ-1062959-add-fs-command.patch patch40: BZ-1052436-group-bundle-docs.patch patch41: BZ-1058297-remove-del-for-weird-anaconda-C-NULL-exception.patch +# rhel-7.1 +Patch100: BZ-1130939-dont-create-lockdir-directories.patch +Patch101: BZ-1113395-verify-permissions-mask.patch +Patch102: BZ-1097383-usr-readonly.patch +Patch103: BZ-1095161-setopt-spaces-handling.patch +Patch104: BZ-1095157-traceback-when-empty-history.patch +Patch106: BZ-1138205-needs-restarting.patch +Patch107: BZ-1102585-variable-substitution.patch +Patch108: BZ-1096147-history-search-crash.patch +Patch109: BZ-1087911-update-minimal-manpage.patch +Patch110: BZ-1063181-upgrades-for-install-only.patch +Patch111: BZ-1147992-debuginfo-install-dolock-exception.patch +Patch112: BZ-1095146-file-uris-normpath.patch + URL: http://yum.baseurl.org/ BuildArchitectures: noarch BuildRequires: python @@ -85,7 +99,6 @@ Requires: python-iniparse Requires: python-sqlite Requires: python-urlgrabber >= 3.9.0-8 Requires: yum-metadata-parser >= 1.1.0 -Requires: yum-plugin-fastestmirror Requires: pygpgme # rawhide is >= 0.5.3-7.fc18 ... as this is added. Requires: pyliblzma @@ -205,6 +218,20 @@ Install this package if you want auto yum updates nightly via cron. %patch40 -p1 %patch41 -p1 +# rhel-7.1 +%patch100 -p1 +%patch101 -p1 +%patch102 -p1 +%patch103 -p1 +%patch104 -p1 +%patch106 -p1 +%patch107 -p1 +%patch108 -p1 +%patch109 -p1 +%patch110 -p1 +%patch111 -p1 +%patch112 -p1 + # Do distro config. changes after everything else. %patch1 -p1 @@ -431,11 +458,47 @@ exit 0 %endif %changelog -* Fri Jun 27 2014 Karanbir Singh - 3.4.3-118.el7.centos -- Make yum require yum-plugin-fastestmirror -- use the CentOS bug tracker url -- retain 5 for installonlyn -- ensure distrover is always from centos-release +* Mon Jan 12 2015 Valentina Mukhamedzhanova - 3.4.3-125 +- Roll back the broken lvm patch. +- Related: bug#1047793 + +* Thu Nov 13 2014 Valentina Mukhamedzhanova - 3.4.3-124 +- normpath() file URIs. +- Resolves: bug#1095146 + +* Mon Nov 10 2014 Valentina Mukhamedzhanova - 3.4.3-123 +- Fix debuginfo-install doLock() traceback. +- Resolves: bug#1147992 + +* Mon Sep 29 2014 Valentina Mukhamedzhanova - 3.4.3-122 +- Don't look for upgrades for install only packages. +- Resolves: bug#1063181 + +* Wed Sep 24 2014 Valentina Mukhamedzhanova - 3.4.3-121 +- Fix variable substitution. +- Resolves: bug#1102585 +- Fix history searching for [abc] character lists failures. +- Resolves: bug#1096147 +- Fix update-minimal command in the man page. +- Resolves: bug#1087911 + +* Thu Sep 4 2014 Valentina Mukhamedzhanova - 3.4.3-120 +- Fix and refactor utils.get_process_info(). +- Resolves: bug#1138205 + +* Thu Sep 4 2014 Valentina Mukhamedzhanova - 3.4.3-119 +- Don't create lockdir directories. +- Resolves: rhbz#1130939 +- Mask st_mode to fix verifying permissions for ghost files. +- Resolves: rhbz#1113395 +- Check /usr for writability before running a transaction. +- Resolves: rhbz#1097383 +- Make --setopt handle spaces properly. +- Resolves: rhbz#1095161 +- Fix traceback when the history dir is empty. +- Resolves: rhbz#1095157 +- Test for lvm binary before using. +- Resolves: rhbz#1047793 * Tue Apr 15 2014 James Antill - 3.4.3-118 - Remove CHUNK argument from open() for weird anaconda C NULL exception.