From 8136a6d1fd8aedc029d39958fbc3c9f9ee84844b Mon Sep 17 00:00:00 2001 From: Valentina Mukhamedzhanova Date: Tue, 31 Mar 2015 09:59:30 +0200 Subject: [PATCH 01/31] Add 'deprecated' message to all utils. --- yum-utils-HEAD.patch | 8 +- yum-utils-deprecated.patch | 495 +++++++++++++++++++++++++++++++++++++ yum-utils.spec | 7 +- 3 files changed, 506 insertions(+), 4 deletions(-) create mode 100644 yum-utils-deprecated.patch diff --git a/yum-utils-HEAD.patch b/yum-utils-HEAD.patch index b58cb70..8e4ecc3 100644 --- a/yum-utils-HEAD.patch +++ b/yum-utils-HEAD.patch @@ -616,7 +616,7 @@ index 0000000..4d336a5 +See the Authors file included with this program. +.fi diff --git a/docs/repoquery.1 b/docs/repoquery.1 -index f5a8c5d..ead5a18 100644 +index f5a8c5d..def752f 100644 --- a/docs/repoquery.1 +++ b/docs/repoquery.1 @@ -1,11 +1,11 @@ @@ -633,11 +633,13 @@ index f5a8c5d..ead5a18 100644 .SH "DESCRIPTION" .PP \fBrepoquery\fP is a program for querying information from YUM repositories -@@ -14,11 +14,11 @@ similarly to rpm queries. +@@ -13,12 +13,12 @@ similarly to rpm queries. + .PP .SH "GENERAL OPTIONS" .IP "\fB\-\-querytags\fP" - List valid queryformat tags and exit.. +-List valid queryformat tags and exit.. -.IP "\fB\-v, \-\-version\fP" ++List valid queryformat tags and exit. +.IP "\fB\-\-version\fP" Report program version and exit. .IP "\fB\-\-repoid=\fP" diff --git a/yum-utils-deprecated.patch b/yum-utils-deprecated.patch new file mode 100644 index 0000000..8e7ffc5 --- /dev/null +++ b/yum-utils-deprecated.patch @@ -0,0 +1,495 @@ +diff --git a/debuginfo-install.py b/debuginfo-install.py +index bb61a1d..5252d72 100755 +--- a/debuginfo-install.py ++++ b/debuginfo-install.py +@@ -23,6 +23,7 @@ import yum.Errors + + from utils import YumUtilBase + from yum import _ ++from yumutils.deprecated import deprecated_warning + + import logging + import rpmUtils +@@ -196,5 +197,6 @@ if __name__ == '__main__': + import codecs + sys.stdout = codecs.getwriter(locale.getpreferredencoding())(sys.stdout) + sys.stdout.errors = 'replace' +- ++ ++ deprecated_warning() + util = DebugInfoInstall() +diff --git a/find-repos-of-install.py b/find-repos-of-install.py +index aac29ea..f4dada8 100644 +--- a/find-repos-of-install.py ++++ b/find-repos-of-install.py +@@ -19,9 +19,12 @@ import os + import os.path + + from optparse import OptionParser ++from yumutils.deprecated import deprecated_warning + + import yum + ++deprecated_warning() ++ + my = yum.YumBase() + my.conf.showdupesfromrepos = 1 + +diff --git a/needs-restarting.py b/needs-restarting.py +index b0e540b..a9ba04e 100755 +--- a/needs-restarting.py ++++ b/needs-restarting.py +@@ -45,6 +45,7 @@ import glob + import stat + from optparse import OptionParser + from yum.Errors import RepoError ++from yumutils.deprecated import deprecated_warning + sys.path.insert(0,'/usr/share/yum-cli') + import utils + +@@ -175,6 +176,7 @@ def main(args): + + if __name__ == "__main__": + try: ++ deprecated_warning() + sys.exit(main(sys.argv)) + except RepoError, e: + print >>sys.stderr, e +diff --git a/package-cleanup.py b/package-cleanup.py +index acad9f2..9c3a474 100755 +--- a/package-cleanup.py ++++ b/package-cleanup.py +@@ -34,6 +34,7 @@ import yum.depsolve # For flags + from yum.Errors import YumBaseError + from rpmUtils import miscutils, arch + from optparse import OptionGroup ++from yumutils.deprecated import deprecated_warning + + def exactlyOne(l): + return len(filter(None, l)) == 1 +@@ -397,4 +398,5 @@ class PackageCleanup(YumUtilBase): + + if __name__ == '__main__': + setup_locale() ++ deprecated_warning() + util = PackageCleanup() +diff --git a/repo-check.py b/repo-check.py +index 2aa8bde..f2ce616 100755 +--- a/repo-check.py ++++ b/repo-check.py +@@ -19,6 +19,7 @@ sys.path.insert(0,'/usr/share/yum-cli') + import logging + from utils import YumUtilBase + from yum.misc import getCacheDir, setup_locale ++from yumutils.deprecated import deprecated_warning + + import yum.Errors + +@@ -238,5 +239,6 @@ class RepoCheck(YumUtilBase): + + if __name__ == '__main__': + setup_locale() ++ deprecated_warning() + util = RepoCheck() + +diff --git a/repo-graph.py b/repo-graph.py +index bca41d0..72880fc 100755 +--- a/repo-graph.py ++++ b/repo-graph.py +@@ -23,6 +23,7 @@ import yum + import sys + from yum.misc import getCacheDir + from optparse import OptionParser ++from yumutils.deprecated import deprecated_warning + + default_header = """ + size="20.69,25.52"; +@@ -94,6 +95,7 @@ class yumQuiet(yum.YumBase): + return requires + + if __name__ == '__main__': ++ deprecated_warning() + parser = OptionParser() + parser.add_option("--repoid", default=[], action="append", + help="specify repositories to use") +diff --git a/repo-rss.py b/repo-rss.py +index 871e338..5d9c249 100755 +--- a/repo-rss.py ++++ b/repo-rss.py +@@ -20,6 +20,7 @@ import yum.Errors + from yum.misc import getCacheDir, to_unicode + from yum.comps import Comps, CompsException + from yum.Errors import RepoMDError ++from yumutils.deprecated import deprecated_warning + import sys + import os + import libxml2 +@@ -252,6 +253,7 @@ def main(options, args): + + + if __name__ == "__main__": ++ deprecated_warning() + usage = "repo-rss.py [options] repoid1 repoid2" + + parser = OptionParser(usage=usage) +diff --git a/repoclosure.py b/repoclosure.py +index f895f84..693b67d 100755 +--- a/repoclosure.py ++++ b/repoclosure.py +@@ -32,6 +32,7 @@ import rpmUtils.arch + import rpmUtils.updates + from yum.constants import * + from yum.packageSack import ListPackageSack ++from yumutils.deprecated import deprecated_warning + + def parseArgs(): + usage = """ +@@ -303,6 +304,7 @@ def main(): + + if __name__ == "__main__": + try: ++ deprecated_warning() + main() + except (yum.Errors.YumBaseError, ValueError), e: + print >> sys.stderr, str(e) +diff --git a/repodiff.py b/repodiff.py +index 5ae1d8f..44092df 100755 +--- a/repodiff.py ++++ b/repodiff.py +@@ -21,6 +21,7 @@ import os + import locale + import rpmUtils.arch + from yum.i18n import to_unicode ++from yumutils.deprecated import deprecated_warning + + from urlgrabber.progress import format_number + +@@ -371,4 +372,5 @@ def main(args): + + if __name__ == "__main__": + yum.misc.setup_locale(override_time=True) ++ deprecated_warning() + main(sys.argv[1:]) +diff --git a/repomanage.py b/repomanage.py +index bef3b03..6ffd8f5 100755 +--- a/repomanage.py ++++ b/repomanage.py +@@ -27,6 +27,7 @@ import fnmatch + import string + import rpmUtils + from yum import misc ++from yumutils.deprecated import deprecated_warning + + from optparse import OptionParser + +@@ -221,6 +222,7 @@ def usage(): + + + if __name__ == "__main__": ++ deprecated_warning() + if len(sys.argv) < 1: + usage() + sys.exit(1) +diff --git a/repoquery.py b/repoquery.py +index af70518..7b4fed3 100755 +--- a/repoquery.py ++++ b/repoquery.py +@@ -37,6 +37,7 @@ import yum.config + import yum.Errors + import yum.packages + from yum.i18n import to_unicode ++from yumutils.deprecated import deprecated_warning + from rpmUtils.arch import getArchList, getBaseArch + from rpmUtils.miscutils import formatRequire + import output +@@ -1547,6 +1548,7 @@ def main(args): + + if __name__ == "__main__": + misc.setup_locale() ++ deprecated_warning() + main(sys.argv) + + # vim:sw=4:sts=4:expandtab +diff --git a/reposync.py b/reposync.py +index 541ab9d..09133b5 100755 +--- a/reposync.py ++++ b/reposync.py +@@ -41,6 +41,7 @@ from optparse import OptionParser + from urlparse import urljoin + + from yumutils.i18n import _ ++from yumutils.deprecated import deprecated_warning + + import yum + import yum.Errors +@@ -329,4 +330,5 @@ def main(): + sys.exit(exit_code) + + if __name__ == "__main__": ++ deprecated_warning() + main() +diff --git a/repotrack.py b/repotrack.py +index 8dd8b9c..618d8f3 100755 +--- a/repotrack.py ++++ b/repotrack.py +@@ -37,6 +37,7 @@ from yum.misc import getCacheDir + from yum.constants import * + from yum.packages import parsePackages + from yum.packageSack import ListPackageSack ++from yumutils.deprecated import deprecated_warning + + class RepoTrack(yum.YumBase): + def __init__(self, opts): +@@ -243,5 +244,6 @@ def main(): + shutil.copy2(path, local) + + if __name__ == "__main__": ++ deprecated_warning() + main() + +diff --git a/show-changed-rco.py b/show-changed-rco.py +index f314ef0..0c0ed05 100755 +--- a/show-changed-rco.py ++++ b/show-changed-rco.py +@@ -22,6 +22,7 @@ import os + + from optparse import OptionParser + from optparse import SUPPRESS_HELP ++from yumutils.deprecated import deprecated_warning + + version = "1.0.0" + +@@ -306,4 +307,5 @@ def main(): + + if __name__ == "__main__": + yum.misc.setup_locale() ++ deprecated_warning() + main() +diff --git a/show-installed.py b/show-installed.py +index 65aae11..674414c 100755 +--- a/show-installed.py ++++ b/show-installed.py +@@ -7,6 +7,7 @@ TODO: + + import yum + from optparse import OptionParser ++from yumutils.deprecated import deprecated_warning + import sys + + __stateprefixes = { +@@ -406,4 +407,5 @@ def __main__(): + p.writeList() + + if __name__ == "__main__": ++ deprecated_warning() + __main__() +diff --git a/verifytree.py b/verifytree.py +index 78e8264..76fd453 100755 +--- a/verifytree.py ++++ b/verifytree.py +@@ -20,6 +20,7 @@ import os + from yum.misc import getCacheDir, checksum + import urlparse + from yum import Errors ++from yumutils.deprecated import deprecated_warning + from optparse import OptionParser + import ConfigParser + +@@ -285,5 +286,6 @@ def main(): + return retval + + if __name__ == "__main__": ++ deprecated_warning() + rc = main() + sys.exit(rc) +diff --git a/yum-builddep.py b/yum-builddep.py +index 7c40713..7b3c8a1 100755 +--- a/yum-builddep.py ++++ b/yum-builddep.py +@@ -22,6 +22,7 @@ from yum.misc import setup_locale + from yum.i18n import exception2msg + import yum.Errors + from utils import YumUtilBase ++from yumutils.deprecated import deprecated_warning + + import logging + import rpmUtils +@@ -252,6 +253,7 @@ class YumBuildDep(YumUtilBase): + + if __name__ == '__main__': + setup_locale() ++ deprecated_warning() + util = YumBuildDep() + + +diff --git a/yum-complete-transaction.py b/yum-complete-transaction.py +index 6b01e4e..0000412 100755 +--- a/yum-complete-transaction.py ++++ b/yum-complete-transaction.py +@@ -22,6 +22,7 @@ from yum.misc import setup_locale + + from utils import YumUtilBase + from yum.constants import TS_REMOVE_STATES ++from yumutils.deprecated import deprecated_warning + + import logging + import os +@@ -263,6 +264,7 @@ class YumCompleteTransaction(YumUtilBase): + + if __name__ == '__main__': + setup_locale() ++ deprecated_warning() + util = YumCompleteTransaction() + + +diff --git a/yum-config-manager.py b/yum-config-manager.py +index 380a54f..f751cb4 100755 +--- a/yum-config-manager.py ++++ b/yum-config-manager.py +@@ -14,6 +14,8 @@ import yum.config + import yum.yumRepo + + from yum.parser import varReplace ++from yumutils.deprecated import deprecated_warning ++ + + # Regular expressions to sanitise cache filenames + re_url_scheme = re.compile(r'^\w+:/*(\w+:|www\.)?') +@@ -110,6 +112,7 @@ VERSION = '1.0' + USAGE = '"yum-config-manager [options] [section]' + + yum.misc.setup_locale() ++deprecated_warning() + + yb = YumUtilBase(NAME, VERSION, USAGE) + logger = logging.getLogger("yum.verbose.cli.yum-config-manager") +diff --git a/yum-debug-dump.py b/yum-debug-dump.py +index 67d943f..fce26f7 100755 +--- a/yum-debug-dump.py ++++ b/yum-debug-dump.py +@@ -22,6 +22,7 @@ import time + import yum + from yum import Errors + from yum.misc import getCacheDir ++from yumutils.deprecated import deprecated_warning + from rpmUtils import miscutils + import gzip + import rpm +@@ -207,4 +208,5 @@ def main(): + print "Output written to: %s" % fn + + if __name__ == "__main__": ++ deprecated_warning() + main() +diff --git a/yum-debug-restore.py b/yum-debug-restore.py +index 1d827f4..f201260 100755 +--- a/yum-debug-restore.py ++++ b/yum-debug-restore.py +@@ -25,6 +25,7 @@ from optparse import OptionParser + + import yum + import rpmUtils.miscutils ++from yumutils.deprecated import deprecated_warning + + sections = ['%%%%SYSTEM INFO\n', '%%%%YUM INFO\n', + '%%%%RPMDB PROBLEMS\n', '%%%%RPMDB\n', +@@ -236,6 +237,7 @@ def main(): + os.system("yum shell %s %s" % (" ".join(xtra_args), fo.name)) + + if __name__ == "__main__": ++ deprecated_warning() + main() + + +diff --git a/yum-groups-manager.py b/yum-groups-manager.py +index c536092..300abff 100755 +--- a/yum-groups-manager.py ++++ b/yum-groups-manager.py +@@ -9,6 +9,7 @@ import gzip + + import yum + from yum.i18n import to_unicode ++from yumutils.deprecated import deprecated_warning + import yum.comps + + sys.path.insert(0, '/usr/share/yum-cli') +@@ -308,4 +309,5 @@ def main(): + print to_unicode(comps.xml()) + + if __name__ == "__main__": ++ deprecated_warning() + main() +diff --git a/yumdb.py b/yumdb.py +index c50159e..3196713 100755 +--- a/yumdb.py ++++ b/yumdb.py +@@ -9,6 +9,7 @@ import shlex + + import os + import glob ++from yumutils.deprecated import deprecated_warning + + parser = None + +@@ -247,4 +248,5 @@ def main(): + + + if __name__ == '__main__': ++ deprecated_warning() + main() +diff --git a/yumdownloader.py b/yumdownloader.py +index 1b95e8d..8b3d00a 100755 +--- a/yumdownloader.py ++++ b/yumdownloader.py +@@ -23,6 +23,7 @@ from yum.misc import setup_locale + from yum.packages import parsePackages + from yum.Errors import RepoError + from yum.i18n import exception2msg ++from yumutils.deprecated import deprecated_warning + from utils import YumUtilBase + + from urlparse import urljoin +@@ -258,5 +259,6 @@ class YumDownloader(YumUtilBase): + + if __name__ == '__main__': + setup_locale() ++ deprecated_warning() + util = YumDownloader() + sys.exit(util.exit_code) +diff --git a/yumutils/deprecated.py b/yumutils/deprecated.py +new file mode 100644 +index 0000000..d583915 +--- /dev/null ++++ b/yumutils/deprecated.py +@@ -0,0 +1,29 @@ ++#!/usr/bin/python -tt ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU Library General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ ++from __future__ import print_function ++from yumutils.i18n import _ ++ ++import sys ++ ++WARNING = _(""" ++Yum-utils package has been deprecated, use dnf instead. ++See 'man yum2dnf' for more information. ++ ++""") ++ ++def deprecated_warning(): ++ print(WARNING, file=sys.stderr) ++ +-- +1.8.3.1 diff --git a/yum-utils.spec b/yum-utils.spec index 22274eb..3e7f90f 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -10,11 +10,12 @@ Summary: Utilities based around the yum package manager Name: yum-utils Version: 1.1.31 -Release: 27%{?dist} +Release: 505%{?dist} License: GPLv2+ Group: Development/Tools Source: http://yum.baseurl.org/download/yum-utils/%{name}-%{version}.tar.gz Patch1: yum-utils-HEAD.patch +Patch2: yum-utils-deprecated.patch URL: http://yum.baseurl.org/download/yum-utils/ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch @@ -376,6 +377,7 @@ This plugin adds the command copr, for adding/listing/searching copr repos. %prep %setup -q %patch1 -p1 +%patch2 -p1 %install rm -rf $RPM_BUILD_ROOT @@ -682,6 +684,9 @@ fi %{_mandir}/man8/yum-copr.8.* %changelog +* Tue Mar 31 2015 Valentina Mukhamedzhanova - 1.1.31-505 +- Add 'deprecated' message to all utils. + * Thu Nov 13 2014 Valentina Mukhamedzhanova - 1.1.31-27 - Add python-requests to Requires of copr plugin. BZ 1158395 From ed403b499301a2e35da6b26ad737af29f1dcce86 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Fri, 19 Jun 2015 04:40:53 +0000 Subject: [PATCH 02/31] - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild --- yum-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yum-utils.spec b/yum-utils.spec index 3e7f90f..f9e2af2 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -10,7 +10,7 @@ Summary: Utilities based around the yum package manager Name: yum-utils Version: 1.1.31 -Release: 505%{?dist} +Release: 506%{?dist} License: GPLv2+ Group: Development/Tools Source: http://yum.baseurl.org/download/yum-utils/%{name}-%{version}.tar.gz @@ -684,6 +684,9 @@ fi %{_mandir}/man8/yum-copr.8.* %changelog +* Fri Jun 19 2015 Fedora Release Engineering - 1.1.31-506 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + * Tue Mar 31 2015 Valentina Mukhamedzhanova - 1.1.31-505 - Add 'deprecated' message to all utils. From 5222ac8ee35123a0e7913720444b1c4f8afe44fa Mon Sep 17 00:00:00 2001 From: James Antill Date: Mon, 10 Aug 2015 15:32:45 -0400 Subject: [PATCH 03/31] Update to latest HEAD - Add support for weak deps. to repoquery. - yum-builddep: respect --tolerant to ignore missing dependencies - Add plugin for overlayfs issue workaround. Patch by Pavel Odvody. BZ#1213602 - yum-config-manager: require \* syntax to disable all repos. BZ#1151154 - yum-config-manager: update config file specified using -c option. BZ#1075708 - Deal with gpgdir and gpgcadir keys, in keys plugin. --- yum-utils-HEAD.patch | 514 ++++++++++++++++++++++++++++++++++++------- yum-utils.spec | 149 +------------ 2 files changed, 446 insertions(+), 217 deletions(-) diff --git a/yum-utils-HEAD.patch b/yum-utils-HEAD.patch index 8e4ecc3..4c14717 100644 --- a/yum-utils-HEAD.patch +++ b/yum-utils-HEAD.patch @@ -139,6 +139,16 @@ index bc802f6..e9be2e4 100644 2008-08-04 James Antill +diff --git a/README b/README +index 8abe805..0c01d0e 100644 +--- a/README ++++ b/README +@@ -67,3 +67,5 @@ Author of the update on boot init scripts + - Tim Lauridsen + Maintainer of yum-utils - fixer of a lot of misc utils. + ++- Valentina Mukhamedzhanova ++Maintainer of yum-utils. diff --git a/debuginfo-install.py b/debuginfo-install.py index 177c6c3..bb61a1d 100755 --- a/debuginfo-install.py @@ -616,7 +626,7 @@ index 0000000..4d336a5 +See the Authors file included with this program. +.fi diff --git a/docs/repoquery.1 b/docs/repoquery.1 -index f5a8c5d..def752f 100644 +index f5a8c5d..195780d 100644 --- a/docs/repoquery.1 +++ b/docs/repoquery.1 @@ -1,11 +1,11 @@ @@ -683,7 +693,7 @@ index f5a8c5d..def752f 100644 .IP "\fB\-\-setopt=option=value\fP" Set any config option in yum config or repo files. For options in the global config just use: \-\-setopt=option=value for repo options use: \-\-setopt=repoid.option=value -@@ -64,13 +75,13 @@ config just use: \-\-setopt=option=value for repo options use: \-\-setopt=repoid +@@ -64,13 +75,21 @@ config just use: \-\-setopt=option=value for repo options use: \-\-setopt=repoid .PP .SH "PACKAGE QUERY OPTIONS" .IP "\fB\-i, \-\-info\fP" @@ -693,13 +703,21 @@ index f5a8c5d..def752f 100644 List files in package. .IP "\fB\-R, \-\-requires\fP" List package dependencies. ++.IP "\fB\-R, \-\-weak\-requires\fP" ++List package weak dependencies. ++.IP "\fB\-R, \-\-info\-requires\fP" ++List package informational dependencies. ++.IP "\fB\-R, \-\-weak\-reverse\-requires\fP" ++List package weak reverse dependencies. ++.IP "\fB\-R, \-\-info\-reverse\-requires\fP" ++List package informational reverse dependencies. .IP "\fB\-\-resolve\fP" -When used with --requires, resolve capabilities to originating packages. -+When used with \-\-requires, resolve capabilities to originating packages. ++When used with \-\-requires/\-\-weak\-requires/etc, resolve capabilities to originating packages. .IP "\fB\-\-provides\fP" List capabilities package provides. .IP "\fB\-\-obsoletes\fP" -@@ -81,7 +92,7 @@ List capabilities conflicting with package. +@@ -81,7 +100,7 @@ List capabilities conflicting with package. List package changelog. .IP "\fB\-\-location\fP" Show a location where the package could be downloaded from. @@ -708,7 +726,7 @@ index f5a8c5d..def752f 100644 .IP "\fB\-s, \-\-source\fP" Show package source RPM name. .IP "\fB\-\-srpm\fP" -@@ -95,16 +106,16 @@ Use name-epoch:version-release.architecture output format (default) +@@ -95,23 +114,26 @@ Use name-epoch:version-release.architecture output format (default) .IP "\fB\-\-envra\fP" Use epoch:name-version-release.architecture output format (easier to parse than nevra) @@ -718,17 +736,20 @@ index f5a8c5d..def752f 100644 ":isodate" to all the tags that are a time, and you can add ":k", ":m", ":g", ":t" and ":h" to sizes. You can also specify field width as in sprintf (Eg. %-20{name}) - .IP "\fB\-\-output [text|ascii-tree|dot-tree]\fP" +-.IP "\fB\-\-output [text|ascii-tree|dot-tree]\fP" -Output format which can be used with --requires/--whatrequires/--obsoletes/--conflicts. -+Output format which can be used with \-\-requires/\-\-whatrequires/\-\-obsoletes/\-\-conflicts. ++.IP "\fB\-\-output [text|ascii-tree|ascii-tree+|dot-tree|dot-tree+]\fP" ++Output format which can be used with \-\-requires/\-\-weak-requires/\-\-whatrequires/\-\-obsoletes/\-\-conflicts. The variants with a + suffix are used for weak dependencies and will merge the stronger variants into the output. Default output is 'text'. .IP "\fB\-\-level [all|any int]\fP" -In combination with --output ascii-tree|dot-tree this option specifies the -+In combination with \-\-output ascii-tree|dot-tree this option specifies the - number of level to print on the tree. Default level is 'all'. +-number of level to print on the tree. Default level is 'all'. ++In combination with \-\-output ascii-tree|dot-tree|ascii-tree+|dot-tree+ this ++option specifies the number of level to print on the tree. ++ Default level is 'all'. .PP -@@ -112,6 +123,8 @@ number of level to print on the tree. Default level is 'all'. + .SH "PACKAGE SELECTION OPTIONS" .IP "\fB\-a, \-\-all\fP" Query all available packages (for rpmquery compatibility / shorthand for repoquery '*') @@ -737,7 +758,7 @@ index f5a8c5d..def752f 100644 .IP "\fB\-f, \-\-file FILE\fP" Query package owning FILE. .IP "\fB\-\-whatobsoletes CAPABILITY\fP" -@@ -123,14 +136,15 @@ Query all packages that provide CAPABILITY. +@@ -123,14 +145,15 @@ Query all packages that provide CAPABILITY. .IP "\fB\-\-whatrequires CAPABILITY\fP" Query all packages that require CAPABILITY. .IP "\fB\-\-alldeps\fP" @@ -757,7 +778,7 @@ index f5a8c5d..def752f 100644 .IP "\fB\-\-archlist=ARCH1[,ARCH2...]\fP" Limit the query to packages of given architecture(s). Valid values are all architectures known to rpm/yum such as 'i386' and 'src' for -@@ -166,19 +180,19 @@ Query groups instead of packages. +@@ -166,19 +189,19 @@ Query groups instead of packages. .SH "EXAMPLES" .IP "List all packages whose name contains 'perl':" @@ -784,7 +805,7 @@ index f5a8c5d..def752f 100644 NB: This command will only work if you have repositories enabled which include srpms. .\"TODO: Add more examples... -@@ -204,7 +218,7 @@ of the following: +@@ -204,7 +227,7 @@ of the following: .br \fBepoch:name-ver-rel.arch\fP .IP @@ -2962,7 +2983,7 @@ index 5094881..5761e76 100644 + if create_snapshots_in_post: + create_snapshots(conduit) diff --git a/plugins/keys/keys.py b/plugins/keys/keys.py -index 3342576..4d2ca96 100644 +index 3342576..d765ef7 100644 --- a/plugins/keys/keys.py +++ b/plugins/keys/keys.py @@ -31,6 +31,15 @@ except: @@ -2981,7 +3002,21 @@ index 3342576..4d2ca96 100644 def match_keys(patterns, key, globs=True): for pat in patterns: if pat == key.keyid: -@@ -250,7 +259,7 @@ Key ID : %s +@@ -141,7 +150,12 @@ class KeysListCommand: + if gpgme is not None: + base.repos.doSetup() # Without this repo.cachedir is empty *sigh* + for repo in base.repos.listEnabled(): +- gpgdir = '%s/gpgdir' % repo.cachedir ++ if hasattr(repo, 'gpgcadir'): ++ gpgdirs = [repo.gpgcadir, repo.gpgdir] ++ else: ++ gpgdirs = ['%s/gpgdir' % repo.cachedir] ++ ++ for gpgdir in gpgdirs: + if not os.path.exists(gpgdir): + continue + +@@ -250,7 +264,7 @@ Key ID : %s time.ctime(key.createts), gpg_cert.version, gpg_cert.user_id, yum.pgpmsg.algo_pk_to_str[gpg_cert.public_key.pk_algo], @@ -3003,6 +3038,67 @@ index c45a1ce..cab69c5 100644 return conf_fname = '/etc/yum.repos.d/_local.repo' +diff --git a/plugins/ovl/ovl.conf b/plugins/ovl/ovl.conf +new file mode 100644 +index 0000000..8e4d76c +--- /dev/null ++++ b/plugins/ovl/ovl.conf +@@ -0,0 +1,2 @@ ++[main] ++enabled=1 +diff --git a/plugins/ovl/ovl.py b/plugins/ovl/ovl.py +new file mode 100644 +index 0000000..f2fbdd4 +--- /dev/null ++++ b/plugins/ovl/ovl.py +@@ -0,0 +1,47 @@ ++# Copyright (C) 2015 Red Hat, Inc. ++# ++# Authors: Pavel Odvody ++# ++# This copyrighted material is made available to anyone wishing to use, ++# modify, copy, or redistribute it subject to the terms and conditions of ++# the GNU General Public License v.2, or (at your option) any later version. ++# This program is distributed in the hope that it will be useful, but WITHOUT ++# ANY WARRANTY expressed or implied, including the implied warranties of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General ++# Public License for more details. You should have received a copy of the ++# GNU General Public License along with this program; if not, write to the ++# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++# 02110-1301, USA. Any Red Hat trademarks that are incorporated in the ++# source code or documentation are not subject to the GNU General Public ++# License and may only be used or replicated with the express permission of ++# Red Hat, Inc. ++ ++from yum.plugins import TYPE_CORE ++from os import utime, walk, path ++ ++requires_api_version = '2.3' ++plugin_type = (TYPE_CORE,) ++mtab = '/etc/mtab' ++ ++def should_touch(): ++ """ ++ Touch the files only once we've verified that ++ we're on overlay mount ++ """ ++ with open(mtab, 'r') as f: ++ line = f.readline() ++ return line and line.startswith('overlay /') ++ return False ++ ++def prereposetup_hook(conduit): ++ if not should_touch(): ++ return ++ rpmdb_path = conduit.getRpmDB()._rpmdbpath ++ try: ++ for root, _, files in walk(rpmdb_path): ++ for f in files: ++ p = path.join(root, f) ++ with open(p, 'a'): ++ utime(p, None) ++ except Exception as e: ++ conduit.error(1, "Error while doing RPMdb copy-up:\n%s" % e) diff --git a/plugins/post-transaction-actions/post-transaction-actions.py b/plugins/post-transaction-actions/post-transaction-actions.py index b4da1ce..d59dc40 100644 --- a/plugins/post-transaction-actions/post-transaction-actions.py @@ -4499,7 +4595,7 @@ index ff77e0d..bef3b03 100755 # (c) Copyright Seth Vidal 2004 diff --git a/repoquery.py b/repoquery.py -index a3bb111..af70518 100755 +index a3bb111..dd4336c 100755 --- a/repoquery.py +++ b/repoquery.py @@ -8,11 +8,11 @@ @@ -4533,9 +4629,12 @@ index a3bb111..af70518 100755 Repository : %{repoid} Summary : %{summary} Source : %{sourcerpm} -@@ -74,6 +74,15 @@ querytags = [ 'name', 'version', 'release', 'epoch', 'arch', 'summary', +@@ -73,7 +73,18 @@ querytags = [ 'name', 'version', 'release', 'epoch', 'arch', 'summary', + 'vendor', 'group', 'license', 'buildtime', 'filetime', 'installedsize', 'archivesize', 'packagesize', 'repoid', 'requires', 'provides', 'conflicts', 'obsoletes', ++ 'weak_requires', 'info_requires', ++ 'weak_reverse_requires', 'info_reverse_requires', 'relativepath', 'hdrstart', 'hdrend', 'id', + 'checksum', 'pkgid', 'committer', 'committime', + 'ui_evr', 'evr', 'ui_nevra', 'ui_envra', @@ -4549,7 +4648,7 @@ index a3bb111..af70518 100755 ] def sec2isodate(timestr): -@@ -114,7 +123,7 @@ convertmap = { 'date': sec2date, +@@ -114,7 +125,7 @@ convertmap = { 'date': sec2date, 'h': size2h, } @@ -4558,7 +4657,78 @@ index a3bb111..af70518 100755 def __init__(self, value=None): Exception.__init__(self) self.value = value -@@ -316,12 +325,13 @@ class pkgQuery: +@@ -257,18 +268,42 @@ class pkgQuery: + return self._translated_qf[self.qf] % self + + def fmt_requires(self, **kw): +- if self.yb.options.output in ("ascii-tree", "dot-tree"): ++ if self.yb.options.output in ("ascii-tree", "dot-tree", ++ "ascii-tree+", "dot-tree+"): + self.fmt_tree_requires(output = self.yb.options.output, + tree_level = self.yb.options.tree_level, + dot = self.yb.options.dot) + else: + return "\n".join(self.prco('requires')) + ++ def fmt_weak_requires(self, **kw): ++ if self.yb.options.output in ("ascii-tree", "dot-tree", ++ "ascii-tree+", "dot-tree+"): ++ self.fmt_tree_weak_requires(output = self.yb.options.output, ++ tree_level = self.yb.options.tree_level, ++ dot = self.yb.options.dot) ++ else: ++ return "\n".join(self.prco('weak_requires')) ++ def fmt_recommends(self, **kw): ++ return self.fmt_weak_requires(**kw) ++ ++ def fmt_info_requires(self, **kw): ++ if self.yb.options.output in ("ascii-tree", "dot-tree", ++ "ascii-tree+", "dot-tree+"): ++ self.fmt_tree_info_requires(output = self.yb.options.output, ++ tree_level = self.yb.options.tree_level, ++ dot = self.yb.options.dot) ++ else: ++ return "\n".join(self.prco('info_requires')) ++ def fmt_suggests(self, **kw): ++ return self.fmt_info_requires(**kw) ++ + def fmt_provides(self, **kw): + return "\n".join(self.prco('provides')) + + def fmt_conflicts(self, **kw): +- if self.yb.options.output in ("ascii-tree", "dot-tree"): ++ if self.yb.options.output in ("ascii-tree", "dot-tree", ++ "ascii-tree+", "dot-tree+"): + self.fmt_tree_conflicts(output = self.yb.options.output, + tree_level = self.yb.options.tree_level, + dot = self.yb.options.dot) +@@ -276,13 +311,24 @@ class pkgQuery: + return "\n".join(self.prco('conflicts')) + + def fmt_obsoletes(self, **kw): +- if self.yb.options.output in ("ascii-tree", "dot-tree"): ++ if self.yb.options.output in ("ascii-tree", "dot-tree", ++ "ascii-tree+", "dot-tree+"): + self.fmt_tree_obsoletes(output = self.yb.options.output, + tree_level = self.yb.options.tree_level, + dot = self.yb.options.dot) + else: + return "\n".join(self.prco('obsoletes')) + ++ def fmt_weak_reverse_requires(self, **kw): ++ return "\n".join(self.prco('weak_reverse_requires')) ++ def fmt_supplements(self, **kw): ++ return self.fmt_weak_reverse_requires(**kw) ++ ++ def fmt_info_reverse_requires(self, **kw): ++ return "\n".join(self.prco('info_reverse_requires')) ++ def fmt_enhances(self, **kw): ++ return self.fmt_info_reverse_requires(**kw) ++ + def fmt_list(self, **kw): + return "\n".join(self.files()) + +@@ -316,12 +362,13 @@ class pkgQuery: print "%s%s [%s]" % (indent, str(req), str(val)) # These are common helpers for the --tree-* options... @@ -4575,7 +4745,13 @@ index a3bb111..af70518 100755 def _tree_pkg2uniq(self, pkg): """ Turn a pkg into a "unique" req.""" if self.yb and self.yb.conf.showdupesfromrepos: -@@ -365,6 +375,7 @@ class pkgQuery: +@@ -360,11 +407,12 @@ class pkgQuery: + level = kw.get('level', 0) + all_reqs = kw.get('all_reqs', {}) + +- if kw['output'].lower() == 'dot-tree': ++ if kw['output'].lower() in ('dot-tree', 'dot-tree+'): + if 'dot' not in kw.keys() or kw['dot'] is None: kw['dot'] = DotPlot() elif 'dot' not in kw.keys() or kw['dot'] is None: kw['dot'] = None @@ -4583,7 +4759,7 @@ index a3bb111..af70518 100755 if str(kw['tree_level']).lower() != 'all': try: -@@ -375,6 +386,15 @@ class pkgQuery: +@@ -375,6 +423,15 @@ class pkgQuery: if not 'output' in kw.keys(): kw['output'] = 'ascii-tree' @@ -4599,7 +4775,7 @@ index a3bb111..af70518 100755 __req2pkgs = {} def req2pkgs(ignore, req): req = str(req) -@@ -406,6 +426,8 @@ class pkgQuery: +@@ -406,6 +463,8 @@ class pkgQuery: providers = matches.keys() @@ -4608,13 +4784,18 @@ index a3bb111..af70518 100755 except yum.Errors.YumBaseError, err: print >>sys.stderr, "No package provides %s" % req return [] -@@ -413,14 +435,9 @@ class pkgQuery: +@@ -413,14 +472,14 @@ class pkgQuery: __req2pkgs[req] = providers return providers - dot = kw['dot'] - tups = getattr(pkg, prco_type) ++ if kw['output'].lower() in ('ascii-tree+', 'dot-tree+'): ++ if prco_type in ("info_requires",): ++ tups.extend(getattr(pkg, "weak_requires")) ++ if prco_type in ("info_requires", "weak_requires"): ++ tups.extend(getattr(pkg, "requires")) rpkgs, loc_reqs = self._tree_maybe_add_pkgs(all_reqs, tups, req2pkgs) - if dot is None: - self._tree_print_req(pkg, req, level) @@ -4624,7 +4805,16 @@ index a3bb111..af70518 100755 dot.addPackage(pkg, rpkgs) lim = level + 2 nlevel = level + 1 -@@ -449,6 +466,7 @@ class pkgQuery: +@@ -444,11 +503,16 @@ class pkgQuery: + + def fmt_tree_requires(self, **kw): + return self._fmt_tree_prov('requires', **kw) ++ def fmt_tree_weak_requires(self, **kw): ++ return self._fmt_tree_prov('weak_requires', **kw) ++ def fmt_tree_info_requires(self, **kw): ++ return self._fmt_tree_prov('info_requires', **kw) + def fmt_tree_conflicts(self, **kw): + return self._fmt_tree_prov('conflicts', **kw) def fmt_tree_obsoletes(self, **kw): pkg = kw.get('pkg', self.pkg) @@ -4632,7 +4822,7 @@ index a3bb111..af70518 100755 level = kw.get('level', 0) all_reqs = kw.get('all_reqs', {}) -@@ -457,6 +475,7 @@ class pkgQuery: +@@ -457,6 +521,7 @@ class pkgQuery: kw['dot'] = DotPlot() elif 'dot' not in kw.keys() or kw['dot'] is None: kw['dot'] = None @@ -4640,7 +4830,7 @@ index a3bb111..af70518 100755 if str(kw['tree_level']).lower() != 'all': try: -@@ -467,6 +486,15 @@ class pkgQuery: +@@ -467,6 +532,15 @@ class pkgQuery: if not 'output' in kw.keys(): kw['output'] = 'ascii-tree' @@ -4656,7 +4846,7 @@ index a3bb111..af70518 100755 def obs2pkgs(): if self.yb is None: return [] -@@ -496,10 +524,7 @@ class pkgQuery: +@@ -496,10 +570,7 @@ class pkgQuery: else: reason = 'cmd line' rpkgs = obs2pkgs() @@ -4668,7 +4858,7 @@ index a3bb111..af70518 100755 dot.addPackage(pkg, rpkgs) lim = level + 2 all_reqs[pkg] = None -@@ -514,6 +539,7 @@ class pkgQuery: +@@ -514,6 +585,7 @@ class pkgQuery: self._tree_print_req(rpkg, '', nlevel) continue self.fmt_tree_obsoletes(pkg=rpkg, level=nlevel, all_reqs=all_reqs, @@ -4676,7 +4866,7 @@ index a3bb111..af70518 100755 tree_level = kw['tree_level'], output = kw['output'], dot = dot) -@@ -527,6 +553,7 @@ class pkgQuery: +@@ -527,6 +599,7 @@ class pkgQuery: if kw['output'].lower() == 'dot-tree': if 'dot' not in kw.keys() or kw['dot'] is None: kw['dot'] = DotPlot() @@ -4684,7 +4874,7 @@ index a3bb111..af70518 100755 if str(kw['tree_level']).lower() != 'all': try: -@@ -537,6 +564,15 @@ class pkgQuery: +@@ -537,6 +610,15 @@ class pkgQuery: if not 'output' in kw.keys(): kw['output'] = 'ascii-tree' @@ -4700,7 +4890,7 @@ index a3bb111..af70518 100755 __prov2pkgs = {} def prov2pkgs(prov, ignore): if str(prov) in __prov2pkgs: -@@ -562,6 +598,8 @@ class pkgQuery: +@@ -562,6 +644,8 @@ class pkgQuery: arequirers = [pkg for pkg in areqs if pkg.pkgtup not in skip] @@ -4709,7 +4899,7 @@ index a3bb111..af70518 100755 except yum.Errors.YumBaseError, err: print >>sys.stderr, "No package provides %s" % str(prov) return [] -@@ -575,12 +613,8 @@ class pkgQuery: +@@ -575,12 +659,8 @@ class pkgQuery: tups = pkg.provides + filetupes rpkgs, loc_reqs = self._tree_maybe_add_pkgs(all_reqs, tups, prov2pkgs) @@ -4723,7 +4913,19 @@ index a3bb111..af70518 100755 dot.addPackage(pkg, rpkgs) lim = level + 2 nlevel = level + 1 -@@ -719,13 +753,13 @@ class groupQuery: +@@ -671,6 +751,11 @@ class instPkgQuery(pkgQuery): + + def prco(self, what, **kw): + prcodict = {} ++ what = {"weak_requires" : "recommends", ++ "info_requires" : "suggests", ++ "weak_reverse_requires" : "supplements", ++ "info_reverse_requires" : "enhances"}.get(what, what) ++ + # rpm names are without the trailing s :) + what = what[:-1] + +@@ -719,13 +804,13 @@ class groupQuery: raise queryError("Invalid group query: %s" % method) # XXX temporary hack to make --group -a query work @@ -4740,7 +4942,7 @@ index a3bb111..af70518 100755 pkgs = [] for t in self.grouppkgs.split(','): if t == "mandatory": -@@ -741,10 +775,10 @@ class groupQuery: +@@ -741,10 +826,10 @@ class groupQuery: return pkgs @@ -4753,7 +4955,7 @@ index a3bb111..af70518 100755 return ["%s:\n\n%s\n" % (self.name, self.group.description)] -@@ -848,6 +882,8 @@ class YumBaseQuery(yum.YumBase): +@@ -848,6 +933,8 @@ class YumBaseQuery(yum.YumBase): matches = yum.YumBase.searchPackageProvides(self, [str(depstring)]) provider = matches.keys() # provider.extend(yum.YumBase.returnPackagesByDep(self, depstring)) @@ -4762,7 +4964,7 @@ index a3bb111..af70518 100755 except yum.Errors.YumBaseError, err: self.logger.error("No package provides %s" % depstring) return self.queryPkgFactory(provider) -@@ -1008,12 +1044,12 @@ class YumBaseQuery(yum.YumBase): +@@ -1008,12 +1095,12 @@ class YumBaseQuery(yum.YumBase): def fmt_whatrequires(self, name, **kw): pkgs = {} @@ -4777,18 +4979,22 @@ index a3bb111..af70518 100755 provs = [name] -@@ -1054,10 +1090,21 @@ class YumBaseQuery(yum.YumBase): +@@ -1052,14 +1139,41 @@ class YumBaseQuery(yum.YumBase): + pkgs.append(pkg) + return self.queryPkgFactory(pkgs) - def fmt_requires(self, name, **kw): +- def fmt_requires(self, name, **kw): ++ def fmt_requires(self, name, requires="requires", **kw): pkgs = {} - for pkg in self.returnByName(name): +- for req in pkg.prco("requires"): + done = set() + def require_recursive(pkg): + if pkg.name in done: + return + done.add(pkg.name) + - for req in pkg.prco("requires"): ++ for req in pkg.prco(requires): for res in self.fmt_whatprovides(req): pkgs[(res.name, res.pkg.arch)] = res + if self.options.recursive: @@ -4799,8 +5005,26 @@ index a3bb111..af70518 100755 + return pkgs.values() ++ def fmt_weak_requires(self, name, **kw): ++ return self.fmt_requires(name, requires="weak_requires", **kw) ++ def fmt_recommends(self, name, **kw): ++ return self.fmt_requires(name, requires="recommends", **kw) ++ ++ def fmt_info_requires(self, name, **kw): ++ return self.fmt_requires(name, requires="info_requires", **kw) ++ def fmt_suggests(self, name, **kw): ++ return self.fmt_requires(name, requires="suggests", **kw) ++ ++ def fmt_weak_reverse_requires(self, name, **kw): ++ return self.fmt_requires(name, requires="weak_reverse_requires", **kw) ++ ++ def fmt_info_reverse_requires(self, name, **kw): ++ return self.fmt_requires(name, requires="info_reverse_requires", **kw) ++ def fmt_location(self, name): -@@ -1070,6 +1117,44 @@ class YumBaseQuery(yum.YumBase): + loc = [] + for pkg in self.returnByName(name): +@@ -1070,6 +1184,44 @@ class YumBaseQuery(yum.YumBase): loc.append("%s/%s" % (repo.urls[0], pkg['relativepath'])) return loc @@ -4845,7 +5069,52 @@ index a3bb111..af70518 100755 def main(args): -@@ -1172,6 +1257,8 @@ def main(args): +@@ -1099,6 +1251,44 @@ def main(args): + help="query all packages/groups") + parser.add_option("-R", "--requires", action="store_true", + help="list package dependencies") ++ parser.add_option("--weak-requires", action="store_true", ++ help="list package weak dependencies") ++ parser.add_option("--recommends", action="store_true", ++ dest="weak_requires", ++ help=SUPPRESS_HELP) ++ parser.add_option("--weak-reverse-requires", action="store_true", ++ help="list package weak reverse dependencies") ++ parser.add_option("--reverse-weak-requires", action="store_true", ++ dest="weak_reverse_requires", ++ help=SUPPRESS_HELP) ++ parser.add_option("--rev-weak-requires", action="store_true", ++ dest="weak_reverse_requires", ++ help=SUPPRESS_HELP) ++ parser.add_option("--weak-rev-requires", action="store_true", ++ dest="weak_reverse_requires", ++ help=SUPPRESS_HELP) ++ parser.add_option("--supplements", action="store_true", ++ dest="weak_reverse_requires", ++ help=SUPPRESS_HELP) ++ parser.add_option("--info-requires", action="store_true", ++ help="list package informational dependencies") ++ parser.add_option("--suggests", action="store_true", ++ dest="info_requires", ++ help=SUPPRESS_HELP) ++ parser.add_option("--info-reverse-requires", action="store_true", ++ help="list package informational reverse dependencies") ++ parser.add_option("--reverse-info-requires", action="store_true", ++ dest="info_reverse_requires", ++ help=SUPPRESS_HELP) ++ parser.add_option("--rev-info-requires", action="store_true", ++ dest="info_reverse_requires", ++ help=SUPPRESS_HELP) ++ parser.add_option("--info-rev-requires", action="store_true", ++ dest="info_reverse_requires", ++ help=SUPPRESS_HELP) ++ parser.add_option("--enhances", action="store_true", ++ dest="info_reverse_requires", ++ help=SUPPRESS_HELP) + parser.add_option("--provides", action="store_true", + help="list capabilities this package provides") + parser.add_option("--obsoletes", action="store_true", +@@ -1172,6 +1362,8 @@ def main(args): help="run from cache only") parser.add_option("--tempcache", action="store_true", help="use private cache (default when used as non-root)") @@ -4854,7 +5123,15 @@ index a3bb111..af70518 100755 parser.add_option("--querytags", action="store_true", help="list available tags in queryformat queries") parser.add_option("-c", "--config", dest="conffile", -@@ -1198,6 +1285,10 @@ def main(args): +@@ -1191,13 +1383,17 @@ def main(args): + parser.add_option("--level", dest="tree_level", default="all", + help="levels to display (can be any number or 'all', default to 'all')") + parser.add_option("--output", dest="output", default="text", +- help="output format to use (can be text|ascii-tree|dot-tree, default to 'text')") ++ help="output format to use (can be text|ascii-tree|dot-tree|ascii-tree+|dot-tree+, default to 'text')") + parser.add_option("--search", action="store_true", + dest="search", default=False, + help="Use yum's search to return pkgs") parser.add_option("--search-fields", action="append", dest="searchfields", default=[], help="search fields to search using --search") @@ -4865,7 +5142,34 @@ index a3bb111..af70518 100755 (opts, regexs) = parser.parse_args() -@@ -1261,9 +1352,10 @@ def main(args): +@@ -1225,6 +1421,26 @@ def main(args): + sackops.append("requires") + else: + pkgops.append("requires") ++ if opts.info_requires: ++ if opts.resolve: ++ sackops.append("info_requires") ++ else: ++ pkgops.append("info_requires") ++ if opts.weak_requires: ++ if opts.resolve: ++ sackops.append("weak_requires") ++ else: ++ pkgops.append("weak_requires") ++ if opts.info_reverse_requires: ++ if opts.resolve: ++ sackops.append("info_reverse_requires") ++ else: ++ pkgops.append("info_reverse_requires") ++ if opts.weak_reverse_requires: ++ if opts.resolve: ++ sackops.append("weak_reverse_requires") ++ else: ++ pkgops.append("weak_reverse_requires") + if opts.provides: + pkgops.append("provides") + if opts.obsoletes: +@@ -1261,9 +1477,10 @@ def main(args): if opts.srpm: needsource = 1 if opts.whatrequires: @@ -4877,7 +5181,7 @@ index a3bb111..af70518 100755 if opts.whatprovides: sackops.append("whatprovides") if opts.whatobsoletes: -@@ -1280,7 +1372,6 @@ def main(args): +@@ -1280,7 +1497,6 @@ def main(args): needgroup = 1 if opts.installed: opts.pkgnarrow = 'installed' @@ -4885,7 +5189,7 @@ index a3bb111..af70518 100755 if opts.nevra: pkgops.append("nevra") -@@ -1303,6 +1394,13 @@ def main(args): +@@ -1303,6 +1519,13 @@ def main(args): repoq = YumBaseQuery(pkgops, sackops, opts) @@ -4899,7 +5203,7 @@ index a3bb111..af70518 100755 # silence initialisation junk from modules etc unless verbose mode initnoise = (not opts.quiet) * 2 repoq.preconf.releasever = opts.releasever -@@ -1312,7 +1410,26 @@ def main(args): +@@ -1312,7 +1535,26 @@ def main(args): repoq.preconf.fn = opts.conffile repoq.preconf.debuglevel = initnoise repoq.preconf.init_plugins = opts.plugins @@ -4927,7 +5231,7 @@ index a3bb111..af70518 100755 if opts.repofrompath: # setup the fake repos -@@ -1327,8 +1444,13 @@ def main(args): +@@ -1327,8 +1569,13 @@ def main(args): else: baseurl = repopath @@ -4943,7 +5247,7 @@ index a3bb111..af70518 100755 if not opts.quiet: repoq.logger.info( "Added %s repo from %s" % (repoid,repopath)) -@@ -1345,6 +1467,11 @@ def main(args): +@@ -1345,6 +1592,11 @@ def main(args): repoq.repos.setProgressBar(TextMeter(fo=sys.stdout)) repoq.repos.callback = output.CacheProgressCallback() repoq.repos.setFailureCallback(freport) @@ -4955,7 +5259,7 @@ index a3bb111..af70518 100755 if not repoq.setCacheDir(opts.tempcache): repoq.logger.error("Error: Could not make cachedir, exiting") -@@ -1359,6 +1486,13 @@ def main(args): +@@ -1359,6 +1611,13 @@ def main(args): if opts.show_dupes: repoq.conf.showdupesfromrepos = True @@ -4969,7 +5273,7 @@ index a3bb111..af70518 100755 if opts.repoid: found_repos = set() for repo in repoq.repos.findRepos('*'): -@@ -1380,6 +1514,14 @@ def main(args): +@@ -1380,6 +1639,14 @@ def main(args): for repo in repoq.repos.findRepos(repo_match): repo.enable() @@ -4984,7 +5288,7 @@ index a3bb111..af70518 100755 try: if not hasattr(repoq, 'arch'): repoq.doSackSetup(archlist=archlist) -@@ -1396,10 +1538,12 @@ def main(args): +@@ -1396,10 +1663,12 @@ def main(args): except (yum.Errors.RepoError, yum.Errors.GroupsError), e: repoq.logger.error(e) sys.exit(1) @@ -5630,7 +5934,7 @@ index d1fe5e2..78e8264 100755 group = my.comps.return_group('core') for pname in group.mandatory_packages: diff --git a/yum-builddep.py b/yum-builddep.py -index d7a37c3..7c40713 100755 +index d7a37c3..5f59ab8 100755 --- a/yum-builddep.py +++ b/yum-builddep.py @@ -8,17 +8,18 @@ @@ -5721,29 +6025,29 @@ index d7a37c3..7c40713 100755 - print "Could not setup repo %s: %s" % (r.id, e) - sys.exit(1) - def install_deps(self, deplist): +- def install_deps(self, deplist): ++ def install_deps(self, deplist, opts): + errors = set() for dep in deplist: self.logger.debug(' REQ: %s' % dep) if dep.startswith("rpmlib("): -@@ -152,10 +159,13 @@ class YumBuildDep(YumUtilBase): +@@ -152,9 +159,13 @@ class YumBuildDep(YumUtilBase): pkg = self.returnPackageByDep(dep) self.logger.info(' --> %s' % pkg) self.install(pkg) - except yum.Errors.YumBaseError, e: - self.logger.error("Error: %s" % e) -- sys.exit(1) + errors.add(exception2msg(e)) + + if errors: + for i in sorted(errors): + self.logger.error("Error: %s" % i) -+ sys.exit(1) ++ if not opts.tolerant: + sys.exit(1) # go through each of the pkgs, figure out what they are/where they are - # if they are not a local package then run -@@ -170,10 +180,14 @@ class YumBuildDep(YumUtilBase): +@@ -170,10 +181,14 @@ class YumBuildDep(YumUtilBase): specnames = [] srpms = [] specworks = False @@ -5758,7 +6062,7 @@ index d7a37c3..7c40713 100755 for arg in self.cmds: if arg.endswith('.src.rpm'): -@@ -192,7 +206,6 @@ class YumBuildDep(YumUtilBase): +@@ -192,7 +207,6 @@ class YumBuildDep(YumUtilBase): toActOn = [] if srcnames: @@ -5766,7 +6070,7 @@ index d7a37c3..7c40713 100755 pkgs = self.pkgSack.returnPackages(patterns=srcnames) exact, match, unmatch = yum.packages.parsePackages(pkgs, srcnames, casematch=1) srpms += exact + match -@@ -206,22 +219,30 @@ class YumBuildDep(YumUtilBase): +@@ -206,28 +220,36 @@ class YumBuildDep(YumUtilBase): sys.exit(1) toActOn = [] @@ -5780,7 +6084,8 @@ index d7a37c3..7c40713 100755 for srpm in toActOn: self.logger.info('Getting requirements for %s' % srpm) - self.install_deps(srpm.requiresList()) +- self.install_deps(srpm.requiresList()) ++ self.install_deps(srpm.requiresList(), opts) for name in specnames: + # (re)load rpm config for target if set @@ -5800,6 +6105,13 @@ index d7a37c3..7c40713 100755 buildreqs = [] for d in rpm.ds(spec.sourceHeader, 'requires'): buildreqs.append(d.DNEVR()[2:]) + + self.logger.info('Getting requirements for %s' % name) +- self.install_deps(buildreqs) ++ self.install_deps(buildreqs, opts) + + if __name__ == '__main__': + setup_locale() diff --git a/yum-complete-transaction.py b/yum-complete-transaction.py index c5074ab..6b01e4e 100755 --- a/yum-complete-transaction.py @@ -5860,7 +6172,7 @@ index c5074ab..6b01e4e 100755 diff --git a/yum-config-manager.py b/yum-config-manager.py -index 50f5123..380a54f 100755 +index 50f5123..0531c72 100755 --- a/yum-config-manager.py +++ b/yum-config-manager.py @@ -7,8 +7,11 @@ import yum @@ -5897,7 +6209,33 @@ index 50f5123..380a54f 100755 logger.error(str(e)) sys.exit(50) -@@ -153,7 +162,7 @@ if (not args and not opts.addrepo) or 'main' in args: +@@ -137,8 +146,11 @@ if opts.enable and opts.disable: + logger.error("Error: Trying to enable and disable repos.") + opts.enable = opts.disable = False + if opts.enable and not args: +- logger.error("Error: Trying to enable already enabled repos.") ++ logger.error("Error: please specify repos to enable (\* to enable all).") + opts.enable = False ++if opts.disable and not args: ++ logger.error("Error: please specify repos to disable (\* to disable all).") ++ opts.disable = False + + only = None + +@@ -146,14 +158,17 @@ if (not args and not opts.addrepo) or 'main' in args: + print yb.fmtSection('main') + print yb.conf.dump() + if opts.save and hasattr(yb, 'main_setopts') and yb.main_setopts: +- fn = '/etc/yum/yum.conf' ++ fn = opts.conffile + if not os.path.exists(fn): +- # Try the old default +- fn = '/etc/yum.conf' ++ if fn == '/etc/yum/yum.conf': ++ # Try the old default ++ fn = '/etc/yum.conf' ++ else: ++ raise yum.Errors.ConfigError("Error accessing file for config %s" % fn) ybc = yb.conf writeRawConfigFile(fn, 'main', ybc.yumvar, ybc.cfg.options, ybc.iteritems, ybc.optionobj, @@ -5906,7 +6244,7 @@ index 50f5123..380a54f 100755 if opts.enable or opts.disable: opts.save = True -@@ -161,7 +170,13 @@ if opts.enable or opts.disable: +@@ -161,7 +176,13 @@ if opts.enable or opts.disable: only = ['enabled'] if args: @@ -5921,7 +6259,7 @@ index 50f5123..380a54f 100755 else: repos = yb.repos.listEnabled() -@@ -174,7 +189,7 @@ if not opts.addrepo: +@@ -174,7 +195,7 @@ if not opts.addrepo: repo.disable() print repo.dump() if (opts.save and @@ -5930,7 +6268,7 @@ index 50f5123..380a54f 100755 writeRawConfigFile(repo.repofile, repo.id, repo.yumvar, repo.cfg.options, repo.iteritems, repo.optionobj, only) -@@ -196,13 +211,16 @@ if opts.addrepo: +@@ -196,13 +217,16 @@ if opts.addrepo: if url.endswith('.repo'): # this is a .repo file - fetch it, put it in our reposdir and enable it destname = os.path.basename(url) destname = myrepodir + '/' + destname @@ -6366,7 +6704,7 @@ index 1d37231..04b78a7 100644 # mode: shell-script # sh-basic-offset: 4 diff --git a/yum-utils.spec b/yum-utils.spec -index ce7fb64..c1d0045 100644 +index ce7fb64..142afa1 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -1,4 +1,11 @@ @@ -6467,7 +6805,7 @@ index ce7fb64..c1d0045 100644 %description -n yum-plugin-fs-snapshot When this plugin is installed it will automatically snapshot any -@@ -378,6 +363,16 @@ Requires: puppet +@@ -378,6 +363,25 @@ Requires: puppet %description -n yum-plugin-puppetverify Supplies checksums for files in packages from puppet's state file. @@ -6480,11 +6818,20 @@ index ce7fb64..c1d0045 100644 + +%description -n yum-plugin-copr +This plugin adds the command copr, for adding/listing/searching copr repos. ++ ++%package -n yum-plugin-ovl ++Summary: Yum plugin to work around overlayfs issues ++Group: System Environment/Base ++Provides: yum-ovl = %{version}-%{release} ++Requires: yum >= 3.4.3 ++ ++%description -n yum-plugin-ovl ++This plugin touches rpmdb files to work around overlayfs issues. + %prep %setup -q -@@ -395,11 +390,8 @@ plugins="\ +@@ -395,11 +399,8 @@ plugins="\ protectbase \ versionlock \ tsflags \ @@ -6496,11 +6843,12 @@ index ce7fb64..c1d0045 100644 upgrade-helper \ aliases \ list-data \ -@@ -416,16 +408,23 @@ plugins="\ +@@ -416,16 +417,24 @@ plugins="\ fs-snapshot \ ps \ puppetverify \ + copr \ ++ ovl \ +" + +%if %{package_yum_updatesd} @@ -6523,7 +6871,7 @@ index ce7fb64..c1d0045 100644 done install -m 644 aliases/aliases $RPM_BUILD_ROOT/%{_sysconfdir}/yum/aliases.conf install -m 644 versionlock/versionlock.list $RPM_BUILD_ROOT/%{_sysconfdir}/yum/pluginconf.d/ -@@ -433,6 +432,10 @@ install -m 644 versionlock/versionlock.list $RPM_BUILD_ROOT/%{_sysconfdir}/yum/p +@@ -433,6 +442,10 @@ install -m 644 versionlock/versionlock.list $RPM_BUILD_ROOT/%{_sysconfdir}/yum/p mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/yum.repos.d touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo @@ -6534,7 +6882,7 @@ index ce7fb64..c1d0045 100644 %clean rm -rf $RPM_BUILD_ROOT -@@ -469,8 +472,8 @@ fi +@@ -469,8 +482,8 @@ fi %{_bindir}/yum-builddep %{_bindir}/yum-config-manager %{_bindir}/yum-debug-dump @@ -6544,7 +6892,7 @@ index ce7fb64..c1d0045 100644 %{_bindir}/show-installed %{_bindir}/show-changed-rco %{_sbindir}/yum-complete-transaction -@@ -487,10 +490,19 @@ fi +@@ -487,10 +500,19 @@ fi %{_mandir}/man1/show-installed.1.* %{_mandir}/man1/yum-builddep.1.* %{_mandir}/man1/yum-debug-dump.1.* @@ -6564,7 +6912,7 @@ index ce7fb64..c1d0045 100644 %files -n yum-updateonboot %defattr(-, root, root) -@@ -502,7 +514,7 @@ fi +@@ -502,7 +524,7 @@ fi %defattr(-, root, root) %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/changelog.conf %doc COPYING @@ -6573,7 +6921,7 @@ index ce7fb64..c1d0045 100644 %{_mandir}/man1/yum-changelog.1.* %{_mandir}/man5/yum-changelog.conf.5.* -@@ -510,20 +522,20 @@ fi +@@ -510,20 +532,20 @@ fi %defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/fastestmirror.conf @@ -6597,7 +6945,7 @@ index ce7fb64..c1d0045 100644 %{_mandir}/man1/yum-versionlock.1.* %{_mandir}/man5/yum-versionlock.conf.5.* -@@ -531,85 +543,74 @@ fi +@@ -531,85 +553,74 @@ fi %defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/tsflags.conf @@ -6696,7 +7044,7 @@ index ce7fb64..c1d0045 100644 %files -n yum-NetworkManager-dispatcher %defattr(-, root, root) -@@ -619,13 +620,13 @@ fi +@@ -619,13 +630,13 @@ fi %files -n yum-plugin-remove-with-leaves %defattr(-, root, root) %doc COPYING @@ -6712,7 +7060,7 @@ index ce7fb64..c1d0045 100644 %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/post-transaction-actions.conf %doc plugins/post-transaction-actions/sample.action # Default *.action file dropping dir. -@@ -634,19 +635,19 @@ fi +@@ -634,19 +645,19 @@ fi %files -n yum-plugin-rpm-warm-cache %defattr(-, root, root) %doc COPYING @@ -6735,7 +7083,7 @@ index ce7fb64..c1d0045 100644 %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/show-leaves.conf %files -n yum-plugin-local -@@ -654,13 +655,13 @@ fi +@@ -654,13 +665,13 @@ fi %doc COPYING %ghost %{_sysconfdir}/yum.repos.d/_local.repo %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/local.conf @@ -6751,7 +7099,7 @@ index ce7fb64..c1d0045 100644 %{_mandir}/man1/yum-fs-snapshot.1.* %{_mandir}/man5/yum-fs-snapshot.conf.5.* -@@ -668,13 +669,20 @@ fi +@@ -668,13 +679,26 @@ fi %defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/ps.conf @@ -6771,6 +7119,12 @@ index ce7fb64..c1d0045 100644 +%config(noreplace) %{_sysconfdir}/yum/pluginconf.d/copr.conf +%{pluginhome}/copr.* +%{_mandir}/man8/yum-copr.8.* ++ ++%files -n yum-plugin-ovl ++%defattr(-, root, root) ++%doc COPYING ++%config(noreplace) %{_sysconfdir}/yum/pluginconf.d/ovl.conf ++%{pluginhome}/ovl.* %changelog * Thu Aug 10 2011 Tim Lauridsen diff --git a/yum-utils.spec b/yum-utils.spec index f9e2af2..bca5500 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -10,7 +10,7 @@ Summary: Utilities based around the yum package manager Name: yum-utils Version: 1.1.31 -Release: 506%{?dist} +Release: 508%{?dist} License: GPLv2+ Group: Development/Tools Source: http://yum.baseurl.org/download/yum-utils/%{name}-%{version}.tar.gz @@ -684,6 +684,15 @@ fi %{_mandir}/man8/yum-copr.8.* %changelog +* Mon Aug 10 2015 James Antill - 1.1.31-508 +- Update to latest HEAD +- Add support for weak deps. to repoquery. +- yum-builddep: respect --tolerant to ignore missing dependencies +- Add plugin for overlayfs issue workaround. Patch by Pavel Odvody. BZ#1213602 +- yum-config-manager: require \* syntax to disable all repos. BZ#1151154 +- yum-config-manager: update config file specified using -c option. BZ#1075708 +- Deal with gpgdir and gpgcadir keys, in keys plugin. + * Fri Jun 19 2015 Fedora Release Engineering - 1.1.31-506 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild @@ -848,10 +857,10 @@ fi * Sat Jan 14 2012 Fedora Release Engineering - 1.1.31-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild -* Thu Aug 13 2011 Tim Lauridsen +* Sat Aug 13 2011 Tim Lauridsen - fix traceback in auto-update-debuginfo plugin (rhbz #729982) -* Thu Aug 10 2011 Tim Lauridsen +* Wed Aug 10 2011 Tim Lauridsen - mark as 1.1.31 - remove patches @@ -867,137 +876,3 @@ fi * Mon Jan 3 2011 Tim Lauridsen - Added yumutils python module - -* Thu Dec 30 2010 Tim Lauridsen -- Added Translation support and need Requires, BuildRequires - -* Sun Nov 7 2010 Tim Lauridsen -- mark as 1.1.29 - -* Tue Aug 3 2010 Seth Vidal -- add COPYING docs to all the plugins to make fedora(and Tim) happy. :) - -* Tue Aug 3 2010 Tim Lauridsen -- mark as 1.1.28 - -* Sun Jun 6 2010 Tim Lauridsen -- mark as 1.1.27 - -* Wed Feb 10 2010 Tim Lauridsen -- mark as 1.1.26 - -* Wed Jan 27 2010 Tim Lauridsen -- mark as 1.1.25 -- add touch /etc/yum.repos.d/_local.repo to install section -- this need for for the ghost in files section of yum-plugin-local - -* Sun Nov 8 2009 Tim Lauridsen -- remove basearchonly since all versions of yum for quite some time obsolete it -- truncate changelog to last 2 years - -* Sat Nov 7 2009 Tim Lauridsen -- mark as 1.1.24 - -* Wed Nov 4 2009 Seth Vidal -- add needs-restarting - -* Mon Oct 12 2009 Seth Vidal -- add python compileall to all plugins so we get .pyc/.pyo files in them -- fixes https://bugzilla.redhat.com/show_bug.cgi?id=493174 - -* Wed Sep 2 2009 Tim Lauridsen -- mark as 1.1.23 - -* Tue May 19 2009 Tim Lauridsen -- mark as 1.1.22 - -* Mon May 18 2009 Seth Vidal -- add show-leaves plugin from Ville Skyttä - -* Wed Mar 25 2009 Tim Lauridsen -- mark as 1.1.21 - -* Mon Mar 2 2009 Tim Lauridsen -- set yum require to 3.2.21 (the 3.2.21 in rawhide is patched to yum head, so it matches the need yum 3.2.22 code) -- Added versioned Provides: yum- to make rpm/yum happy. -- yum-updateonboot is not renamed and dont need Obsoletes/Conflicts/Provides - -* Sun Mar 1 2009 Tim Lauridsen -- mark as 1.1.20 -- rename plugins from yum-name to yum-plugin-name - -* Wed Feb 25 2009 Tim Lauridsen -- Remove yum-kernel-module & yum-fedorakmod plugins (no obsoleting yet) -- Remove yum-skip-broken plugin leftovers - -* Tue Feb 3 2009 James Antill -- add auto-update-debuginfo plugin - -* Wed Dec 17 2008 Tim Lauridsen -- mark as 1.1.19 - -* Wed Dec 10 2008 Seth Vidal -- add find-repos-of-install from James' stash of misc stuff - -* Wed Oct 29 2008 Tim Lauridsen -- mark as 1.1.18 - -* Mon Oct 27 2008 Seth Vidal -- add rpm-warm-cache plugin - -* Fri Sep 19 2008 Tim Lauridsen -- removed skip-broken plugin - -* Wed Sep 17 2008 Tim Lauridsen -- mark as 1.1.17 - -* Mon Sep 8 2008 Seth Vidal -- add yum-remove-with-leaves plugin - -* Wed Aug 27 2008 Tim Lauridsen -- mark as 1.1.16 -* Wed Aug 20 2008 James Antill -- add yum-groups-manager - -* Thu Aug 7 2008 Tim Lauridsen -- mark as 1.1.15 -* Wed May 21 2008 Tim Lauridsen -- add verifytree - -* Wed May 21 2008 Tim Lauridsen - Make yum-fastestmirror %%files handle the fastestmirror-asyncore.py file -* Wed May 21 2008 Tim Lauridsen -- mark as 1.1.14 -* Fri Apr 10 2008 James Antill -- Add keys plugin - -* Fri Mar 31 2008 James Antill -- Add yum-aliases man page - -* Fri Mar 21 2008 Tim Lauridsen -- mark as 1.1.13 -* Fri Mar 21 2008 Tim Lauridsen -- mark as 1.1.12 -* Tue Mar 18 2008 Shawn Starr -- Add yum-utils.1 manual page -- Rename yum-complete-transaction manual page to 8 -- Move yum-complete-transaction to /usr/sbin - -* Sat Mar 1 2008 James Antill -- Add verify plugin - -* Wed Feb 20 2008 James Antill -- Add empty versionlock file - -* Fri Feb 1 2008 James Antill -- Add filter-data plugin - -* Wed Jan 30 2008 Tim Lauridsen -- mark as 1.1.11 - -* Sun Jan 13 2008 Seth Vidal -- add repodiff - -* Thu Jan 3 2008 Tim Lauridsen -- mark as 1.1.10 - From b43977c1fd00637949753721b8db65cdca8184cf Mon Sep 17 00:00:00 2001 From: James Antill Date: Mon, 10 Aug 2015 15:42:48 -0400 Subject: [PATCH 04/31] Update to latest HEAD - Add support for weak deps. to repoquery. - yum-builddep: respect --tolerant to ignore missing dependencies - Add plugin for overlayfs issue workaround. Patch by Pavel Odvody. BZ#1213602 - yum-config-manager: require \* syntax to disable all repos. BZ#1151154 - yum-config-manager: update config file specified using -c option. BZ#1075708 - Deal with gpgdir and gpgcadir keys, in keys plugin. --- yum-utils.spec | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/yum-utils.spec b/yum-utils.spec index bca5500..1bd4e2f 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -374,6 +374,15 @@ Requires: python-requests %description -n yum-plugin-copr This plugin adds the command copr, for adding/listing/searching copr repos. +%package -n yum-plugin-ovl +Summary: Yum plugin to work around overlayfs issues +Group: System Environment/Base +Provides: yum-ovl = %{version}-%{release} +Requires: yum >= 3.4.3 + +%description -n yum-plugin-ovl +This plugin touches rpmdb files to work around overlayfs issues. + %prep %setup -q %patch1 -p1 @@ -412,6 +421,7 @@ plugins="\ ps \ puppetverify \ copr \ + ovl \ " %if %{package_yum_updatesd} @@ -436,6 +446,11 @@ mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/yum.repos.d touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo +%check +# To execute: ./test/test-all +# Tests are not suitable for running at build time +# because they require networking and a populated /var/cache/yum + %clean rm -rf $RPM_BUILD_ROOT @@ -683,6 +698,12 @@ fi %{pluginhome}/copr.* %{_mandir}/man8/yum-copr.8.* +%files -n yum-plugin-ovl +%defattr(-, root, root) +%doc COPYING +%config(noreplace) %{_sysconfdir}/yum/pluginconf.d/ovl.conf +%{pluginhome}/ovl.* + %changelog * Mon Aug 10 2015 James Antill - 1.1.31-508 - Update to latest HEAD From 3f29fc65b42f5d91adadb9cf42ba2cb27100c3bc Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 5 Feb 2016 04:01:19 +0000 Subject: [PATCH 05/31] - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild --- yum-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yum-utils.spec b/yum-utils.spec index 1bd4e2f..d5270e4 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -10,7 +10,7 @@ Summary: Utilities based around the yum package manager Name: yum-utils Version: 1.1.31 -Release: 508%{?dist} +Release: 509%{?dist} License: GPLv2+ Group: Development/Tools Source: http://yum.baseurl.org/download/yum-utils/%{name}-%{version}.tar.gz @@ -705,6 +705,9 @@ fi %{pluginhome}/ovl.* %changelog +* Fri Feb 05 2016 Fedora Release Engineering - 1.1.31-509 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + * Mon Aug 10 2015 James Antill - 1.1.31-508 - Update to latest HEAD - Add support for weak deps. to repoquery. From 145529731df4345bfdd37b5e0e574d3c5d218445 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 19 Jul 2016 13:14:29 +0000 Subject: [PATCH 06/31] - https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages --- yum-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yum-utils.spec b/yum-utils.spec index d5270e4..42f5ce2 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -10,7 +10,7 @@ Summary: Utilities based around the yum package manager Name: yum-utils Version: 1.1.31 -Release: 509%{?dist} +Release: 510%{?dist} License: GPLv2+ Group: Development/Tools Source: http://yum.baseurl.org/download/yum-utils/%{name}-%{version}.tar.gz @@ -705,6 +705,9 @@ fi %{pluginhome}/ovl.* %changelog +* Tue Jul 19 2016 Fedora Release Engineering - 1.1.31-510 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + * Fri Feb 05 2016 Fedora Release Engineering - 1.1.31-509 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild From 16aefa4f29ad2206707cc328bfb8b0de44ab7e89 Mon Sep 17 00:00:00 2001 From: Parag A Nemade Date: Sat, 13 Aug 2016 07:38:02 +0530 Subject: [PATCH 07/31] As per FESCo ticket 1605, remove subpackage yum-updateonboot - Reason it still uses init file and not systemd unit file - Also, decided don't add Obsolete for this removal --- yum-utils.spec | 35 ++++++----------------------------- 1 file changed, 6 insertions(+), 29 deletions(-) diff --git a/yum-utils.spec b/yum-utils.spec index 42f5ce2..94df554 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -10,7 +10,7 @@ Summary: Utilities based around the yum package manager Name: yum-utils Version: 1.1.31 -Release: 510%{?dist} +Release: 511%{?dist} License: GPLv2+ Group: Development/Tools Source: http://yum.baseurl.org/download/yum-utils/%{name}-%{version}.tar.gz @@ -37,18 +37,6 @@ repotrack, show-installed, show-changed-rco, verifytree, yumdownloader, yum-builddep, yum-complete-transaction, yum-config-manager, yum-debug-dump, yum-debug-restore and yum-groups-manager. -%package -n yum-updateonboot -Summary: Run yum update on system boot -Group: System Environment/Base -Requires: python, yum >= 2.4 -Requires(pre): chkconfig -Requires(post): chkconfig - -%description -n yum-updateonboot -Runs yum update on system boot. This allows machines that have been turned -off for an extended amount of time to become secure immediately, instead of -waiting until the next early morning cron job. - %package -n yum-plugin-changelog Summary: Yum plugin for viewing package changelogs before/after updating Group: System Environment/Base @@ -391,7 +379,6 @@ This plugin touches rpmdb files to work around overlayfs issues. %install rm -rf $RPM_BUILD_ROOT make DESTDIR=$RPM_BUILD_ROOT install -make -C updateonboot DESTDIR=$RPM_BUILD_ROOT install %find_lang %name @@ -454,15 +441,6 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo %clean rm -rf $RPM_BUILD_ROOT -%post -n yum-updateonboot -/sbin/chkconfig --add yum-updateonboot >/dev/null 2>&1 || :; - -%preun -n yum-updateonboot -if [ $1 = 0 ]; then - /sbin/service yum-updateonboot stop >/dev/null 2>&1 || :; - /sbin/chkconfig --del yum-updateonboot >/dev/null 2>&1 || :; -fi - %files -f %{name}.lang %defattr(-, root, root) %doc README yum-util-cli-template @@ -518,12 +496,6 @@ fi %{_mandir}/man1/verifytree.1.* %{_mandir}/man1/yum-config-manager.1.* -%files -n yum-updateonboot -%defattr(-, root, root) -%doc updateonboot/README COPYING -%config(noreplace) %{_sysconfdir}/sysconfig/yum-updateonboot -%{_initrddir}/yum-updateonboot - %files -n yum-plugin-changelog %defattr(-, root, root) %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/changelog.conf @@ -705,6 +677,11 @@ fi %{pluginhome}/ovl.* %changelog +* Sat Aug 13 2016 Parag Nemade - 1.1.31-511 +- As per FESCo ticket 1605, remove subpackage yum-updateonboot +- Reason it still uses init file and not systemd unit file +- Also, decided don't add Obsolete for this removal + * Tue Jul 19 2016 Fedora Release Engineering - 1.1.31-510 - https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages From 6f82df1f6bd6fde9b1ae72a274ab7848f4c96cbc Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 11 Feb 2017 18:19:51 +0000 Subject: [PATCH 08/31] - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild --- yum-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yum-utils.spec b/yum-utils.spec index 94df554..de93a02 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -10,7 +10,7 @@ Summary: Utilities based around the yum package manager Name: yum-utils Version: 1.1.31 -Release: 511%{?dist} +Release: 512%{?dist} License: GPLv2+ Group: Development/Tools Source: http://yum.baseurl.org/download/yum-utils/%{name}-%{version}.tar.gz @@ -677,6 +677,9 @@ rm -rf $RPM_BUILD_ROOT %{pluginhome}/ovl.* %changelog +* Sat Feb 11 2017 Fedora Release Engineering - 1.1.31-512 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + * Sat Aug 13 2016 Parag Nemade - 1.1.31-511 - As per FESCo ticket 1605, remove subpackage yum-updateonboot - Reason it still uses init file and not systemd unit file From bb491372dc6421e907c3817dbe8981d1b876be4a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 27 Jul 2017 22:38:30 +0000 Subject: [PATCH 09/31] - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild --- yum-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yum-utils.spec b/yum-utils.spec index de93a02..59f8ecc 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -10,7 +10,7 @@ Summary: Utilities based around the yum package manager Name: yum-utils Version: 1.1.31 -Release: 512%{?dist} +Release: 513%{?dist} License: GPLv2+ Group: Development/Tools Source: http://yum.baseurl.org/download/yum-utils/%{name}-%{version}.tar.gz @@ -677,6 +677,9 @@ rm -rf $RPM_BUILD_ROOT %{pluginhome}/ovl.* %changelog +* Thu Jul 27 2017 Fedora Release Engineering - 1.1.31-513 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + * Sat Feb 11 2017 Fedora Release Engineering - 1.1.31-512 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild From 1b4f292d8557aa23de9e20f91ffb06fcd7cf0916 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 9 Feb 2018 22:21:38 +0000 Subject: [PATCH 10/31] - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- yum-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yum-utils.spec b/yum-utils.spec index 59f8ecc..e4ee76c 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -10,7 +10,7 @@ Summary: Utilities based around the yum package manager Name: yum-utils Version: 1.1.31 -Release: 513%{?dist} +Release: 514%{?dist} License: GPLv2+ Group: Development/Tools Source: http://yum.baseurl.org/download/yum-utils/%{name}-%{version}.tar.gz @@ -677,6 +677,9 @@ rm -rf $RPM_BUILD_ROOT %{pluginhome}/ovl.* %changelog +* Fri Feb 09 2018 Fedora Release Engineering - 1.1.31-514 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + * Thu Jul 27 2017 Fedora Release Engineering - 1.1.31-513 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild From 450a0190e7bddfe0acaa83f84ddba7bd246b8edb Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Wed, 14 Feb 2018 00:52:26 +0100 Subject: [PATCH 11/31] Remove BuildRoot definition None of currently supported distributions need that. It was needed last for EL5 which is EOL now Signed-off-by: Igor Gnatenko --- yum-utils.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/yum-utils.spec b/yum-utils.spec index e4ee76c..ff1a198 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -17,7 +17,6 @@ Source: http://yum.baseurl.org/download/yum-utils/%{name}-%{version}.tar.gz Patch1: yum-utils-HEAD.patch Patch2: yum-utils-deprecated.patch URL: http://yum.baseurl.org/download/yum-utils/ -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch Requires: yum >= 3.4.3-148 Requires: python-kitchen From 696588ffe1a837235d5615596cba17459d3d5138 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Wed, 14 Feb 2018 09:02:44 +0100 Subject: [PATCH 12/31] Remove %clean section None of currently supported distributions need that. Last one was EL5 which is EOL for a while. Signed-off-by: Igor Gnatenko --- yum-utils.spec | 3 --- 1 file changed, 3 deletions(-) diff --git a/yum-utils.spec b/yum-utils.spec index ff1a198..6a0feee 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -437,9 +437,6 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo # Tests are not suitable for running at build time # because they require networking and a populated /var/cache/yum -%clean -rm -rf $RPM_BUILD_ROOT - %files -f %{name}.lang %defattr(-, root, root) %doc README yum-util-cli-template From 8e3948353caaefd345a6bb815323fecf7bad69fb Mon Sep 17 00:00:00 2001 From: Iryna Shcherbina Date: Wed, 14 Feb 2018 17:27:47 +0100 Subject: [PATCH 13/31] Update Python 2 dependency declarations to new packaging standards --- yum-utils.spec | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/yum-utils.spec b/yum-utils.spec index 6a0feee..db91ca1 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -10,7 +10,7 @@ Summary: Utilities based around the yum package manager Name: yum-utils Version: 1.1.31 -Release: 514%{?dist} +Release: 515%{?dist} License: GPLv2+ Group: Development/Tools Source: http://yum.baseurl.org/download/yum-utils/%{name}-%{version}.tar.gz @@ -19,8 +19,8 @@ Patch2: yum-utils-deprecated.patch URL: http://yum.baseurl.org/download/yum-utils/ BuildArch: noarch Requires: yum >= 3.4.3-148 -Requires: python-kitchen -BuildRequires: python-devel >= 2.4 +Requires: python2-kitchen +BuildRequires: python2-devel >= 2.4 BuildRequires: gettext BuildRequires: intltool Provides: yum-utils-translations = %{version}-%{release} @@ -44,7 +44,7 @@ Obsoletes: yum-changelog < 1.1.20-0 Conflicts: yum-changelog < 1.1.20-0 # changelog requires new update_md.UpdateMetadata() API in 3.2.23 Requires: yum >= 3.2.23 -Requires: python-dateutil +Requires: python2-dateutil %description -n yum-plugin-changelog This plugin adds a command line option to allow viewing package changelog @@ -345,7 +345,7 @@ Summary: Yum plugin to add puppet checksums to verify data Group: System Environment/Base Provides: yum-puppetverify = %{version}-%{release} Requires: yum >= 3.2.12 -Requires: PyYAML >= 3.09 +Requires: python2-pyyaml >= 3.09 Requires: puppet %description -n yum-plugin-puppetverify @@ -356,7 +356,7 @@ Summary: Yum plugin to add copr command Group: System Environment/Base Provides: yum-copr = %{version}-%{release} Requires: yum >= 3.4.3 -Requires: python-requests +Requires: python2-requests %description -n yum-plugin-copr This plugin adds the command copr, for adding/listing/searching copr repos. @@ -673,6 +673,10 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo %{pluginhome}/ovl.* %changelog +* Wed Feb 14 2018 Iryna Shcherbina - 1.1.31-515 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + * Fri Feb 09 2018 Fedora Release Engineering - 1.1.31-514 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild From 1986b08ca21e6ab34b3edcca84eaf5bfdfe2d8ad Mon Sep 17 00:00:00 2001 From: Jason Tibbitts Date: Mon, 9 Jul 2018 23:44:16 -0500 Subject: [PATCH 14/31] Remove needless use of %defattr --- yum-utils.spec | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/yum-utils.spec b/yum-utils.spec index db91ca1..a3cbd5e 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -438,7 +438,6 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo # because they require networking and a populated /var/cache/yum %files -f %{name}.lang -%defattr(-, root, root) %doc README yum-util-cli-template %doc COPYING %doc plugins/README @@ -493,7 +492,6 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo %{_mandir}/man1/yum-config-manager.1.* %files -n yum-plugin-changelog -%defattr(-, root, root) %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/changelog.conf %doc COPYING %{pluginhome}/changelog.* @@ -501,19 +499,16 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo %{_mandir}/man5/yum-changelog.conf.5.* %files -n yum-plugin-fastestmirror -%defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/fastestmirror.conf %{pluginhome}/fastestmirror*.* %files -n yum-plugin-protectbase -%defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/protectbase.conf %{pluginhome}/protectbase.* %files -n yum-plugin-versionlock -%defattr(-, root, root) %doc plugins/versionlock/README COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/versionlock.conf %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/versionlock.list @@ -522,39 +517,33 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo %{_mandir}/man5/yum-versionlock.conf.5.* %files -n yum-plugin-tsflags -%defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/tsflags.conf %{pluginhome}/tsflags.* %files -n yum-plugin-priorities -%defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/priorities.conf %{pluginhome}/priorities.* %if %{package_yum_updatesd} %files -n yum-plugin-refresh-updatesd -%defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/refresh-updatesd.conf %{pluginhome}/refresh-updatesd.* %endif %files -n yum-plugin-merge-conf -%defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/merge-conf.conf %{pluginhome}/merge-conf.* %files -n yum-plugin-upgrade-helper -%defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/upgrade-helper.conf %{pluginhome}/upgrade-helper.* %files -n yum-plugin-aliases -%defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/aliases.conf %config(noreplace) %{_sysconfdir}/yum/aliases.conf @@ -562,51 +551,43 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo %{_mandir}/man1/yum-aliases.1.* %files -n yum-plugin-list-data -%defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/list-data.conf %{pluginhome}/list-data.* %{_mandir}/man1/yum-list-data.1.* %files -n yum-plugin-filter-data -%defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/filter-data.conf %{pluginhome}/filter-data.* %{_mandir}/man1/yum-filter-data.1.* %files -n yum-plugin-tmprepo -%defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/tmprepo.conf %{pluginhome}/tmprepo.* %files -n yum-plugin-verify -%defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/verify.conf %{pluginhome}/verify.* %{_mandir}/man1/yum-verify.1.* %files -n yum-plugin-keys -%defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/keys.conf %{pluginhome}/keys.* %files -n yum-NetworkManager-dispatcher -%defattr(-, root, root) %doc COPYING /etc/NetworkManager/dispatcher.d/* %files -n yum-plugin-remove-with-leaves -%defattr(-, root, root) %doc COPYING %{pluginhome}/remove-with-leaves.* %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/remove-with-leaves.conf %files -n yum-plugin-post-transaction-actions -%defattr(-, root, root) %doc COPYING %{pluginhome}/post-transaction-actions.* %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/post-transaction-actions.conf @@ -615,32 +596,27 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo %dir %{_sysconfdir}/yum/post-actions %files -n yum-plugin-rpm-warm-cache -%defattr(-, root, root) %doc COPYING %{pluginhome}/rpm-warm-cache.* %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/rpm-warm-cache.conf %files -n yum-plugin-auto-update-debug-info -%defattr(-, root, root) %doc COPYING %{pluginhome}/auto-update-debuginfo.* %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/auto-update-debuginfo.conf %files -n yum-plugin-show-leaves -%defattr(-, root, root) %doc COPYING %{pluginhome}/show-leaves.* %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/show-leaves.conf %files -n yum-plugin-local -%defattr(-, root, root) %doc COPYING %ghost %{_sysconfdir}/yum.repos.d/_local.repo %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/local.conf %{pluginhome}/local.* %files -n yum-plugin-fs-snapshot -%defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/fs-snapshot.conf %{pluginhome}/fs-snapshot.* @@ -648,26 +624,22 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo %{_mandir}/man5/yum-fs-snapshot.conf.5.* %files -n yum-plugin-ps -%defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/ps.conf %{pluginhome}/ps.* %files -n yum-plugin-puppetverify -%defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/puppetverify.conf %{pluginhome}/puppetverify.* %files -n yum-plugin-copr -%defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/copr.conf %{pluginhome}/copr.* %{_mandir}/man8/yum-copr.8.* %files -n yum-plugin-ovl -%defattr(-, root, root) %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/ovl.conf %{pluginhome}/ovl.* From e0e80b57de71108ac9d930e6c6e0ac32109c05c1 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 14 Jul 2018 09:46:05 +0000 Subject: [PATCH 15/31] - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- yum-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yum-utils.spec b/yum-utils.spec index a3cbd5e..a094525 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -10,7 +10,7 @@ Summary: Utilities based around the yum package manager Name: yum-utils Version: 1.1.31 -Release: 515%{?dist} +Release: 516%{?dist} License: GPLv2+ Group: Development/Tools Source: http://yum.baseurl.org/download/yum-utils/%{name}-%{version}.tar.gz @@ -645,6 +645,9 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo %{pluginhome}/ovl.* %changelog +* Sat Jul 14 2018 Fedora Release Engineering - 1.1.31-516 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + * Wed Feb 14 2018 Iryna Shcherbina - 1.1.31-515 - Update Python 2 dependency declarations to new packaging standards (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) From 813a4eb6314d82a70edee7cd8267cc92880ea055 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Sun, 29 Jul 2018 23:11:46 +0200 Subject: [PATCH 16/31] =?UTF-8?q?%{python=5Fsitelib}=20=E2=86=92=20%{pytho?= =?UTF-8?q?n2=5Fsitelib}?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Igor Gnatenko --- yum-utils.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yum-utils.spec b/yum-utils.spec index a094525..3f512f9 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -465,7 +465,7 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo %{_bindir}/show-changed-rco %{_sbindir}/yum-complete-transaction %{_sbindir}/yumdb -%{python_sitelib}/yumutils/ +%{python2_sitelib}/yumutils/ %{_mandir}/man1/yum-utils.1.* %{_mandir}/man1/debuginfo-install.1.* %{_mandir}/man1/package-cleanup.1.* From a9004bdf51093109a1d6b42876503fe1bdedacc9 Mon Sep 17 00:00:00 2001 From: Michal Domonkos Date: Fri, 31 Aug 2018 17:59:46 +0200 Subject: [PATCH 17/31] Use explicit python2 executable at build time --- explicit-python2-at-build.patch | 9 +++++++++ yum-utils.spec | 11 ++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 explicit-python2-at-build.patch diff --git a/explicit-python2-at-build.patch b/explicit-python2-at-build.patch new file mode 100644 index 0000000..48f7e59 --- /dev/null +++ b/explicit-python2-at-build.patch @@ -0,0 +1,9 @@ +diff -up yum-utils-1.1.31/yumutils/Makefile.orig yum-utils-1.1.31/yumutils/Makefile +--- yum-utils-1.1.31/yumutils/Makefile.orig 2011-08-10 17:20:19.000000000 +0200 ++++ yum-utils-1.1.31/yumutils/Makefile 2018-08-31 17:49:34.965067361 +0200 +@@ -1,4 +1,4 @@ +-PYTHON=python ++PYTHON=/usr/bin/python2 + PACKAGE = $(shell basename `pwd`) + PYFILES = $(wildcard *.py) + PYVER := $(shell $(PYTHON) -c 'import sys; print "%.3s" %(sys.version)') diff --git a/yum-utils.spec b/yum-utils.spec index 3f512f9..cea2141 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -4,18 +4,19 @@ %define package_yum_updatesd 1 %endif -%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} +%{!?python_sitelib: %define python_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} %define pluginhome /usr/lib/yum-plugins Summary: Utilities based around the yum package manager Name: yum-utils Version: 1.1.31 -Release: 516%{?dist} +Release: 517%{?dist} License: GPLv2+ Group: Development/Tools Source: http://yum.baseurl.org/download/yum-utils/%{name}-%{version}.tar.gz Patch1: yum-utils-HEAD.patch Patch2: yum-utils-deprecated.patch +Patch3: explicit-python2-at-build.patch URL: http://yum.baseurl.org/download/yum-utils/ BuildArch: noarch Requires: yum >= 3.4.3-148 @@ -374,6 +375,7 @@ This plugin touches rpmdb files to work around overlayfs issues. %setup -q %patch1 -p1 %patch2 -p1 +%patch3 -p1 %install rm -rf $RPM_BUILD_ROOT @@ -423,7 +425,7 @@ cd plugins for plug in $plugins; do install -m 644 $plug/*.conf $RPM_BUILD_ROOT/%{_sysconfdir}/yum/pluginconf.d/ install -m 644 $plug/*.py $RPM_BUILD_ROOT/%pluginhome - %{__python} -c "import compileall; compileall.compile_dir('$RPM_BUILD_ROOT/%pluginhome', 1)" + %{__python2} -c "import compileall; compileall.compile_dir('$RPM_BUILD_ROOT/%pluginhome', 1)" done install -m 644 aliases/aliases $RPM_BUILD_ROOT/%{_sysconfdir}/yum/aliases.conf install -m 644 versionlock/versionlock.list $RPM_BUILD_ROOT/%{_sysconfdir}/yum/pluginconf.d/ @@ -645,6 +647,9 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo %{pluginhome}/ovl.* %changelog +* Fri Aug 31 2018 Michal Domonkos - 1.1.31-517 +- Use explicit python2 executable at build time + * Sat Jul 14 2018 Fedora Release Engineering - 1.1.31-516 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild From 20f83a7c326451844559b1415fbdb8173dc59d8d Mon Sep 17 00:00:00 2001 From: Michal Domonkos Date: Fri, 31 Aug 2018 18:06:09 +0200 Subject: [PATCH 18/31] reposync: prevent path traversal (CVE-2018-10897) Resolves: bug#1600454 --- reposync-prevent-path-traversal.patch | 119 ++++++++++++++++++++++++++ yum-utils.spec | 4 + 2 files changed, 123 insertions(+) create mode 100644 reposync-prevent-path-traversal.patch diff --git a/reposync-prevent-path-traversal.patch b/reposync-prevent-path-traversal.patch new file mode 100644 index 0000000..026778d --- /dev/null +++ b/reposync-prevent-path-traversal.patch @@ -0,0 +1,119 @@ +diff -up yum-utils-1.1.31/docs/reposync.1.orig yum-utils-1.1.31/docs/reposync.1 +--- yum-utils-1.1.31/docs/reposync.1.orig 2018-08-31 15:14:08.100322216 +0200 ++++ yum-utils-1.1.31/docs/reposync.1 2018-08-31 15:14:14.680403500 +0200 +@@ -47,6 +47,16 @@ Download all the non-default metadata + Download only newest packages per-repo. + .IP "\fB\-q, \-\-quiet\fP" + Output as little information as possible. ++.IP "\fB\-\-allow-path-traversal\fP" ++Allow packages stored outside their repo directory to be synced. ++These are packages that are referenced in metadata by using absolute paths or ++up-level ".." symbols, and are normally skipped by \fBreposync\fR for security ++reasons. ++ ++\fBCAUTION:\fR Using this option has potential security implications since, by ++providing malicious repodata, an attacker could make \fBreposync\fR write to ++arbitrary locations on the file system that are accessible by the user running ++it. + .SH "EXAMPLES" + .IP "Sync all packages from the 'updates' repo to the current directory:" + \fB reposync \-\-repoid=updates\fP +diff -up yum-utils-1.1.31/reposync.py.orig yum-utils-1.1.31/reposync.py +--- yum-utils-1.1.31/reposync.py.orig 2018-08-31 15:14:08.112322364 +0200 ++++ yum-utils-1.1.31/reposync.py 2018-08-31 15:14:14.680403500 +0200 +@@ -75,6 +75,12 @@ def localpkgs(directory): + cache[name] = {'path': fn, 'size': st.st_size, 'device': st.st_dev} + return cache + ++def is_subpath(path, root): ++ root = os.path.realpath(root) ++ path = os.path.realpath(os.path.join(root, path)) ++ # join() is used below to ensure root ends with a slash ++ return path.startswith(os.path.join(root, '')) ++ + def parseArgs(): + usage = _(""" + Reposync is used to synchronize a remote yum repository to a local +@@ -117,6 +123,10 @@ def parseArgs(): + parser.add_option("", "--download-metadata", dest="downloadmd", + default=False, action="store_true", + help=_("download all the non-default metadata")) ++ parser.add_option("", "--allow-path-traversal", default=False, ++ action="store_true", ++ help=_("Allow packages stored outside their repo directory to be synced " ++ "(UNSAFE, USE WITH CAUTION!)")) + (opts, args) = parser.parse_args() + return (opts, args) + +@@ -217,13 +227,36 @@ def main(): + else: + local_repo_path = opts.destdir + '/' + repo.id + ++ # Ensure we don't traverse out of local_repo_path by dropping any ++ # packages whose remote_path is absolute or contains up-level ++ # references (unless explicitly allowed). ++ # See RHBZ#1600221 for details. ++ if not opts.allow_path_traversal: ++ newlist = [] ++ skipped = False ++ for pkg in download_list: ++ if is_subpath(pkg.remote_path, local_repo_path): ++ newlist.append(pkg) ++ continue ++ my.logger.warning( ++ _('WARNING: skipping package %s: remote path "%s" not ' ++ 'within repodir, unsafe to mirror locally') ++ % (pkg, pkg.remote_path) ++ ) ++ skipped = True ++ if skipped: ++ my.logger.info( ++ _('You can enable unsafe remote paths by using ' ++ '--allow-path-traversal (see reposync(1) for details)') ++ ) ++ download_list = newlist ++ + if opts.delete and os.path.exists(local_repo_path): + current_pkgs = localpkgs(local_repo_path) + + download_set = {} + for pkg in download_list: +- remote = pkg.returnSimple('relativepath') +- rpmname = os.path.basename(remote) ++ rpmname = os.path.basename(pkg.remote_path) + download_set[rpmname] = 1 + + for pkg in current_pkgs: +@@ -270,8 +303,7 @@ def main(): + remote_size = 0 + if not opts.urls: + for pkg in download_list: +- remote = pkg.returnSimple('relativepath') +- local = local_repo_path + '/' + remote ++ local = os.path.join(local_repo_path, pkg.remote_path) + sz = int(pkg.returnSimple('packagesize')) + if os.path.exists(local) and os.path.getsize(local) == sz: + continue +@@ -283,10 +315,9 @@ def main(): + download_list.sort(key=lambda pkg: pkg.name) + if opts.urls: + for pkg in download_list: +- remote = pkg.returnSimple('relativepath') +- local = os.path.join(local_repo_path, remote) ++ local = os.path.join(local_repo_path, pkg.remote_path) + if not (os.path.exists(local) and my.verifyPkg(local, pkg, False)): +- print urljoin(pkg.repo.urls[0], pkg.relativepath) ++ print urljoin(pkg.repo.urls[0], pkg.remote_path) + continue + + # create dest dir +@@ -295,8 +326,7 @@ def main(): + + # set localpaths + for pkg in download_list: +- rpmfn = pkg.remote_path +- pkg.localpath = os.path.join(local_repo_path, rpmfn) ++ pkg.localpath = os.path.join(local_repo_path, pkg.remote_path) + pkg.repo.copy_local = True + pkg.repo.cache = 0 + localdir = os.path.dirname(pkg.localpath) diff --git a/yum-utils.spec b/yum-utils.spec index cea2141..37d2d5c 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -17,6 +17,7 @@ Source: http://yum.baseurl.org/download/yum-utils/%{name}-%{version}.tar.gz Patch1: yum-utils-HEAD.patch Patch2: yum-utils-deprecated.patch Patch3: explicit-python2-at-build.patch +Patch4: reposync-prevent-path-traversal.patch URL: http://yum.baseurl.org/download/yum-utils/ BuildArch: noarch Requires: yum >= 3.4.3-148 @@ -376,6 +377,7 @@ This plugin touches rpmdb files to work around overlayfs issues. %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 %install rm -rf $RPM_BUILD_ROOT @@ -649,6 +651,8 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo %changelog * Fri Aug 31 2018 Michal Domonkos - 1.1.31-517 - Use explicit python2 executable at build time +- reposync: prevent path traversal (CVE-2018-10897) +- Resolves: bug#1600454 * Sat Jul 14 2018 Fedora Release Engineering - 1.1.31-516 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild From 2ab7f48ba5f3d42b66878e2c93b0e51581236ed6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Wed, 17 Oct 2018 18:51:15 +0200 Subject: [PATCH 19/31] Replace %%define with %%global --- yum-utils.spec | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/yum-utils.spec b/yum-utils.spec index 37d2d5c..8b09095 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -1,16 +1,16 @@ %if 0%{?rhel} -%define package_yum_updatesd 0 +%global package_yum_updatesd 0 %else -%define package_yum_updatesd 1 +%global package_yum_updatesd 1 %endif -%{!?python_sitelib: %define python_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} -%define pluginhome /usr/lib/yum-plugins +%{!?python_sitelib: %global python_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} +%global pluginhome /usr/lib/yum-plugins Summary: Utilities based around the yum package manager Name: yum-utils Version: 1.1.31 -Release: 517%{?dist} +Release: 518%{?dist} License: GPLv2+ Group: Development/Tools Source: http://yum.baseurl.org/download/yum-utils/%{name}-%{version}.tar.gz @@ -649,6 +649,9 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo %{pluginhome}/ovl.* %changelog +* Wed Oct 17 2018 Björn Esser - 1.1.31-518 +- Replace %%define with %%global + * Fri Aug 31 2018 Michal Domonkos - 1.1.31-517 - Use explicit python2 executable at build time - reposync: prevent path traversal (CVE-2018-10897) From ee9bb2d244955a92fe6842eb5c969b6e16ab2847 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Wed, 17 Oct 2018 18:53:14 +0200 Subject: [PATCH 20/31] Use explicit python2 shebang --- yum-utils.spec | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/yum-utils.spec b/yum-utils.spec index 8b09095..5793f5d 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -4,6 +4,7 @@ %global package_yum_updatesd 1 %endif +%global __python %{__python2} %{!?python_sitelib: %global python_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} %global pluginhome /usr/lib/yum-plugins @@ -435,6 +436,9 @@ install -m 644 versionlock/versionlock.list $RPM_BUILD_ROOT/%{_sysconfdir}/yum/p mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/yum.repos.d touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo +# use explicit python2 shebang. +grep -Rl '#!.*/usr/bin/python' $RPM_BUILD_ROOT | \ +xargs sed -i -e 's~#!.*/usr/bin/python~#!%{__python2}~g' %check # To execute: ./test/test-all @@ -651,6 +655,7 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo %changelog * Wed Oct 17 2018 Björn Esser - 1.1.31-518 - Replace %%define with %%global +- Use explicit python2 shebang * Fri Aug 31 2018 Michal Domonkos - 1.1.31-517 - Use explicit python2 executable at build time From e6207805fd716a17d451acf890cf5f94c5d7e723 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Wed, 17 Oct 2018 19:03:02 +0200 Subject: [PATCH 21/31] Move COPYING to %%license --- yum-utils.spec | 55 +++++++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/yum-utils.spec b/yum-utils.spec index 5793f5d..1a966e3 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -447,7 +447,7 @@ xargs sed -i -e 's~#!.*/usr/bin/python~#!%{__python2}~g' %files -f %{name}.lang %doc README yum-util-cli-template -%doc COPYING +%license COPYING %doc plugins/README %{_sysconfdir}/bash_completion.d %{_bindir}/debuginfo-install @@ -501,18 +501,18 @@ xargs sed -i -e 's~#!.*/usr/bin/python~#!%{__python2}~g' %files -n yum-plugin-changelog %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/changelog.conf -%doc COPYING +%license COPYING %{pluginhome}/changelog.* %{_mandir}/man1/yum-changelog.1.* %{_mandir}/man5/yum-changelog.conf.5.* %files -n yum-plugin-fastestmirror -%doc COPYING +%license COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/fastestmirror.conf %{pluginhome}/fastestmirror*.* %files -n yum-plugin-protectbase -%doc COPYING +%license COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/protectbase.conf %{pluginhome}/protectbase.* @@ -525,78 +525,78 @@ xargs sed -i -e 's~#!.*/usr/bin/python~#!%{__python2}~g' %{_mandir}/man5/yum-versionlock.conf.5.* %files -n yum-plugin-tsflags -%doc COPYING +%license COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/tsflags.conf %{pluginhome}/tsflags.* %files -n yum-plugin-priorities -%doc COPYING +%license COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/priorities.conf %{pluginhome}/priorities.* %if %{package_yum_updatesd} %files -n yum-plugin-refresh-updatesd -%doc COPYING +%license COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/refresh-updatesd.conf %{pluginhome}/refresh-updatesd.* %endif %files -n yum-plugin-merge-conf -%doc COPYING +%license COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/merge-conf.conf %{pluginhome}/merge-conf.* %files -n yum-plugin-upgrade-helper -%doc COPYING +%license COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/upgrade-helper.conf %{pluginhome}/upgrade-helper.* %files -n yum-plugin-aliases -%doc COPYING +%license COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/aliases.conf %config(noreplace) %{_sysconfdir}/yum/aliases.conf %{pluginhome}/aliases.* %{_mandir}/man1/yum-aliases.1.* %files -n yum-plugin-list-data -%doc COPYING +%license COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/list-data.conf %{pluginhome}/list-data.* %{_mandir}/man1/yum-list-data.1.* %files -n yum-plugin-filter-data -%doc COPYING +%license COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/filter-data.conf %{pluginhome}/filter-data.* %{_mandir}/man1/yum-filter-data.1.* %files -n yum-plugin-tmprepo -%doc COPYING +%license COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/tmprepo.conf %{pluginhome}/tmprepo.* %files -n yum-plugin-verify -%doc COPYING +%license COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/verify.conf %{pluginhome}/verify.* %{_mandir}/man1/yum-verify.1.* %files -n yum-plugin-keys -%doc COPYING +%license COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/keys.conf %{pluginhome}/keys.* %files -n yum-NetworkManager-dispatcher -%doc COPYING +%license COPYING /etc/NetworkManager/dispatcher.d/* %files -n yum-plugin-remove-with-leaves -%doc COPYING +%license COPYING %{pluginhome}/remove-with-leaves.* %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/remove-with-leaves.conf %files -n yum-plugin-post-transaction-actions -%doc COPYING +%license COPYING %{pluginhome}/post-transaction-actions.* %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/post-transaction-actions.conf %doc plugins/post-transaction-actions/sample.action @@ -604,51 +604,51 @@ xargs sed -i -e 's~#!.*/usr/bin/python~#!%{__python2}~g' %dir %{_sysconfdir}/yum/post-actions %files -n yum-plugin-rpm-warm-cache -%doc COPYING +%license COPYING %{pluginhome}/rpm-warm-cache.* %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/rpm-warm-cache.conf %files -n yum-plugin-auto-update-debug-info -%doc COPYING +%license COPYING %{pluginhome}/auto-update-debuginfo.* %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/auto-update-debuginfo.conf %files -n yum-plugin-show-leaves -%doc COPYING +%license COPYING %{pluginhome}/show-leaves.* %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/show-leaves.conf %files -n yum-plugin-local -%doc COPYING +%license COPYING %ghost %{_sysconfdir}/yum.repos.d/_local.repo %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/local.conf %{pluginhome}/local.* %files -n yum-plugin-fs-snapshot -%doc COPYING +%license COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/fs-snapshot.conf %{pluginhome}/fs-snapshot.* %{_mandir}/man1/yum-fs-snapshot.1.* %{_mandir}/man5/yum-fs-snapshot.conf.5.* %files -n yum-plugin-ps -%doc COPYING +%license COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/ps.conf %{pluginhome}/ps.* %files -n yum-plugin-puppetverify -%doc COPYING +%license COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/puppetverify.conf %{pluginhome}/puppetverify.* %files -n yum-plugin-copr -%doc COPYING +%license COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/copr.conf %{pluginhome}/copr.* %{_mandir}/man8/yum-copr.8.* %files -n yum-plugin-ovl -%doc COPYING +%license COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/ovl.conf %{pluginhome}/ovl.* @@ -656,6 +656,7 @@ xargs sed -i -e 's~#!.*/usr/bin/python~#!%{__python2}~g' * Wed Oct 17 2018 Björn Esser - 1.1.31-518 - Replace %%define with %%global - Use explicit python2 shebang +- Move COPYING to %%license * Fri Aug 31 2018 Michal Domonkos - 1.1.31-517 - Use explicit python2 executable at build time From 17bddd0bce729456c9f5369d82ea582ad19fec0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Wed, 17 Oct 2018 19:11:09 +0200 Subject: [PATCH 22/31] Use %%py_byte_compile for %%pluginhome --- yum-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yum-utils.spec b/yum-utils.spec index 1a966e3..6b3c308 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -428,7 +428,6 @@ cd plugins for plug in $plugins; do install -m 644 $plug/*.conf $RPM_BUILD_ROOT/%{_sysconfdir}/yum/pluginconf.d/ install -m 644 $plug/*.py $RPM_BUILD_ROOT/%pluginhome - %{__python2} -c "import compileall; compileall.compile_dir('$RPM_BUILD_ROOT/%pluginhome', 1)" done install -m 644 aliases/aliases $RPM_BUILD_ROOT/%{_sysconfdir}/yum/aliases.conf install -m 644 versionlock/versionlock.list $RPM_BUILD_ROOT/%{_sysconfdir}/yum/pluginconf.d/ @@ -440,6 +439,9 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo grep -Rl '#!.*/usr/bin/python' $RPM_BUILD_ROOT | \ xargs sed -i -e 's~#!.*/usr/bin/python~#!%{__python2}~g' +# Python byte compilation for %%pluginhome. +%py_byte_compile %{__python2} $RPM_BUILD_ROOT/%pluginhome + %check # To execute: ./test/test-all # Tests are not suitable for running at build time @@ -657,6 +659,7 @@ xargs sed -i -e 's~#!.*/usr/bin/python~#!%{__python2}~g' - Replace %%define with %%global - Use explicit python2 shebang - Move COPYING to %%license +- Use %%py_byte_compile for %%pluginhome * Fri Aug 31 2018 Michal Domonkos - 1.1.31-517 - Use explicit python2 executable at build time From 87c18a342e9442aadd2b0ce7ce62f63d50a54b92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Wed, 17 Oct 2018 19:15:25 +0200 Subject: [PATCH 23/31] Clean trailing white-space --- yum-utils.spec | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/yum-utils.spec b/yum-utils.spec index 6b3c308..aa19be4 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -32,8 +32,8 @@ Provides: yum-utils-translations = %{version}-%{release} %description yum-utils is a collection of utilities and examples for the yum package manager. It includes utilities by different authors that make yum easier and -more powerful to use. These tools include: debuginfo-install, -find-repos-of-install, needs-restarting, package-cleanup, repoclosure, +more powerful to use. These tools include: debuginfo-install, +find-repos-of-install, needs-restarting, package-cleanup, repoclosure, repodiff, repo-graph, repomanage, repoquery, repo-rss, reposync, repotrack, show-installed, show-changed-rco, verifytree, yumdownloader, yum-builddep, yum-complete-transaction, yum-config-manager, yum-debug-dump, @@ -276,7 +276,7 @@ no checking of previous data, so if your WiFi keeps going up and down (or you suspend/resume a lot) yum will recheck its cached data a lot. %package -n yum-plugin-rpm-warm-cache -Summary: Yum plugin to access the rpmdb files early to warm up access to the db +Summary: Yum plugin to access the rpmdb files early to warm up access to the db Group: System Environment/Base Provides: yum-rpm-warm-cache = %{version}-%{release} Obsoletes: yum-rpm-warm-cache < 1.1.20-0 @@ -352,7 +352,7 @@ Requires: python2-pyyaml >= 3.09 Requires: puppet %description -n yum-plugin-puppetverify -Supplies checksums for files in packages from puppet's state file. +Supplies checksums for files in packages from puppet's state file. %package -n yum-plugin-copr Summary: Yum plugin to add copr command @@ -660,6 +660,7 @@ xargs sed -i -e 's~#!.*/usr/bin/python~#!%{__python2}~g' - Use explicit python2 shebang - Move COPYING to %%license - Use %%py_byte_compile for %%pluginhome +- Clean trailing white-space * Fri Aug 31 2018 Michal Domonkos - 1.1.31-517 - Use explicit python2 executable at build time @@ -866,10 +867,10 @@ xargs sed -i -e 's~#!.*/usr/bin/python~#!%{__python2}~g' * Sat Jan 14 2012 Fedora Release Engineering - 1.1.31-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild -* Sat Aug 13 2011 Tim Lauridsen +* Sat Aug 13 2011 Tim Lauridsen - fix traceback in auto-update-debuginfo plugin (rhbz #729982) -* Wed Aug 10 2011 Tim Lauridsen +* Wed Aug 10 2011 Tim Lauridsen - mark as 1.1.31 - remove patches @@ -880,8 +881,8 @@ xargs sed -i -e 's~#!.*/usr/bin/python~#!%{__python2}~g' * Tue Feb 08 2011 Fedora Release Engineering - 1.1.30-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild -* Thu Jan 13 2011 Tim Lauridsen -- mark as 1.1.30 - +* Thu Jan 13 2011 Tim Lauridsen +- mark as 1.1.30 + * Mon Jan 3 2011 Tim Lauridsen - Added yumutils python module From 4805f3079ab3fac9c1a5fb102ae9e4a6843af4f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Wed, 17 Oct 2018 19:17:24 +0200 Subject: [PATCH 24/31] Remove obsolete Group tag --- yum-utils.spec | 29 +---------------------------- 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/yum-utils.spec b/yum-utils.spec index aa19be4..261d09f 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -13,7 +13,6 @@ Name: yum-utils Version: 1.1.31 Release: 518%{?dist} License: GPLv2+ -Group: Development/Tools Source: http://yum.baseurl.org/download/yum-utils/%{name}-%{version}.tar.gz Patch1: yum-utils-HEAD.patch Patch2: yum-utils-deprecated.patch @@ -41,7 +40,6 @@ yum-debug-restore and yum-groups-manager. %package -n yum-plugin-changelog Summary: Yum plugin for viewing package changelogs before/after updating -Group: System Environment/Base Provides: yum-changelog = %{version}-%{release} Obsoletes: yum-changelog < 1.1.20-0 Conflicts: yum-changelog < 1.1.20-0 @@ -55,7 +53,6 @@ deltas before or after updating packages. %package -n yum-plugin-fastestmirror Summary: Yum plugin which chooses fastest repository from a mirrorlist -Group: System Environment/Base Provides: yum-fastestmirror = %{version}-%{release} Obsoletes: yum-fastestmirror < 1.1.20-0 Conflicts: yum-fastestmirror < 1.1.20-0 @@ -67,7 +64,6 @@ prior to downloading packages. %package -n yum-plugin-protectbase Summary: Yum plugin to protect packages from certain repositories. -Group: System Environment/Base Provides: yum-protectbase = %{version}-%{release} Obsoletes: yum-protectbase < 1.1.20-0 Conflicts: yum-protectbase < 1.1.20-0 @@ -80,7 +76,6 @@ repositories even if the non-protected repo has a later version. %package -n yum-plugin-versionlock Summary: Yum plugin to lock specified packages from being updated -Group: System Environment/Base Provides: yum-versionlock = %{version}-%{release} Obsoletes: yum-versionlock < 1.1.20-0 Conflicts: yum-versionlock < 1.1.20-0 @@ -94,7 +89,6 @@ for example. %package -n yum-plugin-tsflags Summary: Yum plugin to add tsflags by a commandline option -Group: System Environment/Base Provides: yum-tsflags = %{version}-%{release} Obsoletes: yum-tsflags < 1.1.20-0 Conflicts: yum-tsflags < 1.1.20-0 @@ -106,7 +100,6 @@ command line %package -n yum-plugin-priorities Summary: plugin to give priorities to packages from different repos -Group: System Environment/Base Provides: yum-priorities = %{version}-%{release} Obsoletes: yum-priorities < 1.1.20-0 Conflicts: yum-priorities < 1.1.20-0 @@ -120,7 +113,6 @@ from a repository with a higher priority even if repo has a later version. %if %{package_yum_updatesd} %package -n yum-plugin-refresh-updatesd Summary: Tell yum-updatesd to check for updates when yum exits -Group: System Environment/Base Provides: yum-refresh-updatesd = %{version}-%{release} Obsoletes: yum-refresh-updatesd < 1.1.20-0 Conflicts: yum-refresh-updatesd < 1.1.20-0 @@ -135,7 +127,6 @@ will almost instantly update itself to reflect this. %package -n yum-plugin-merge-conf Summary: Yum plugin to merge configuration changes when installing packages -Group: System Environment/Base Provides: yum-merge-conf = %{version}-%{release} Obsoletes: yum-merge-conf < 1.1.20-0 Conflicts: yum-merge-conf < 1.1.20-0 @@ -148,7 +139,6 @@ package. %package -n yum-plugin-upgrade-helper Summary: Yum plugin to help upgrades to the next distribution version -Group: System Environment/Base Provides: yum-upgrade-helper = %{version}-%{release} Obsoletes: yum-upgrade-helper < 1.1.20-0 Conflicts: yum-upgrade-helper < 1.1.20-0 @@ -160,7 +150,6 @@ metadata file in repositories. It is used to simplify distribution upgrade hangu %package -n yum-plugin-aliases Summary: Yum plugin to enable aliases filters -Group: System Environment/Base Provides: yum-aliases = %{version}-%{release} Obsoletes: yum-aliases < 1.1.20-0 Conflicts: yum-aliases < 1.1.20-0 @@ -174,7 +163,6 @@ enable aliases. %package -n yum-plugin-list-data Summary: Yum plugin to list aggregate package data -Group: System Environment/Base Provides: yum-list-data = %{version}-%{release} Obsoletes: yum-list-data < 1.1.20-0 Conflicts: yum-list-data < 1.1.20-0 @@ -187,7 +175,6 @@ installed-sizes. %package -n yum-plugin-filter-data Summary: Yum plugin to list filter based on package data -Group: System Environment/Base Provides: yum-filter-data = %{version}-%{release} Obsoletes: yum-filter-data < 1.1.20-0 Conflicts: yum-filter-data < 1.1.20-0 @@ -201,7 +188,6 @@ each category, if any were specified. %package -n yum-plugin-tmprepo Summary: Yum plugin to add temporary repositories -Group: System Environment/Base Provides: yum-tmprepo = %{version}-%{release} Obsoletes: yum-tmprepo < 1.1.20-0 Conflicts: yum-tmprepo < 1.1.20-0 @@ -216,7 +202,6 @@ gpg checking to be disabled. %package -n yum-plugin-verify Summary: Yum plugin to add verify command, and options -Group: System Environment/Base Provides: yum-verify = %{version}-%{release} Obsoletes: yum-verify < 1.1.20-0 Conflicts: yum-verify < 1.1.20-0 @@ -229,7 +214,6 @@ installation. %package -n yum-plugin-keys Summary: Yum plugin to deal with signing keys -Group: System Environment/Base Provides: yum-keys = %{version}-%{release} Obsoletes: yum-keys < 1.1.20-0 Conflicts: yum-keys < 1.1.20-0 @@ -241,7 +225,6 @@ allow you to query and remove signing keys. %package -n yum-plugin-remove-with-leaves Summary: Yum plugin to remove dependencies which are no longer used because of a removal -Group: System Environment/Base Provides: yum-remove-with-leaves = %{version}-%{release} Obsoletes: yum-remove-with-leaves < 1.1.20-0 Conflicts: yum-remove-with-leaves < 1.1.20-0 @@ -254,7 +237,6 @@ libraries and packages. %package -n yum-plugin-post-transaction-actions Summary: Yum plugin to run arbitrary commands when certain pkgs are acted on -Group: System Environment/Base Provides: yum-post-transaction-actions = %{version}-%{release} Obsoletes: yum-post-transaction-actions < 1.1.20-0 Conflicts: yum-post-transaction-actions < 1.1.20-0 @@ -266,7 +248,6 @@ transaction when specified packages are changed. %package -n yum-NetworkManager-dispatcher Summary: NetworkManager script which tells yum to check its cache on network change -Group: System Environment/Base Requires: yum >= 3.2.17 %description -n yum-NetworkManager-dispatcher @@ -277,7 +258,6 @@ suspend/resume a lot) yum will recheck its cached data a lot. %package -n yum-plugin-rpm-warm-cache Summary: Yum plugin to access the rpmdb files early to warm up access to the db -Group: System Environment/Base Provides: yum-rpm-warm-cache = %{version}-%{release} Obsoletes: yum-rpm-warm-cache < 1.1.20-0 Conflicts: yum-rpm-warm-cache < 1.1.20-0 @@ -290,7 +270,6 @@ rpmdb directly. In some cases this should speed up access to rpmdb information %package -n yum-plugin-auto-update-debug-info # Works by searching for *-debuginfo ... so it shouldn't trigger on itself. Summary: Yum plugin to enable automatic updates to installed debuginfo packages -Group: System Environment/Base Obsoletes: yum-plugin-auto-update-debuginfo < 1.1.21-0 Conflicts: yum-plugin-auto-update-debuginfo < 1.1.21-0 Provides: yum-plugin-auto-update-debuginfo = %{version}-%{release} @@ -303,7 +282,6 @@ repositories. %package -n yum-plugin-show-leaves Summary: Yum plugin which shows newly installed leaf packages -Group: System Environment/Base Requires: yum >= 3.2.23 %description -n yum-plugin-show-leaves @@ -312,7 +290,6 @@ and packages that became leaves after a transaction %package -n yum-plugin-local Summary: Yum plugin to automatically manage a local repo. of downloaded packages -Group: System Environment/Base # Who the hell knows what version :) Requires: yum >= 3.2.22 Requires: createrepo @@ -325,7 +302,6 @@ repo. removes it (and can thus. be reinstalled/downgraded/etc.). %package -n yum-plugin-fs-snapshot Summary: Yum plugin to automatically snapshot your filesystems during updates -Group: System Environment/Base Requires: yum >= 3.2.22 Requires: btrfs-progs @@ -335,7 +311,6 @@ filesystem that is touched by the packages in a yum update or yum remove. %package -n yum-plugin-ps Summary: Yum plugin to look at processes, with respect to packages -Group: System Environment/Base Requires: yum >= 3.2.27 %description -n yum-plugin-ps @@ -345,7 +320,6 @@ need rebooting, or have updates, etc.) %package -n yum-plugin-puppetverify Summary: Yum plugin to add puppet checksums to verify data -Group: System Environment/Base Provides: yum-puppetverify = %{version}-%{release} Requires: yum >= 3.2.12 Requires: python2-pyyaml >= 3.09 @@ -356,7 +330,6 @@ Supplies checksums for files in packages from puppet's state file. %package -n yum-plugin-copr Summary: Yum plugin to add copr command -Group: System Environment/Base Provides: yum-copr = %{version}-%{release} Requires: yum >= 3.4.3 Requires: python2-requests @@ -366,7 +339,6 @@ This plugin adds the command copr, for adding/listing/searching copr repos. %package -n yum-plugin-ovl Summary: Yum plugin to work around overlayfs issues -Group: System Environment/Base Provides: yum-ovl = %{version}-%{release} Requires: yum >= 3.4.3 @@ -661,6 +633,7 @@ xargs sed -i -e 's~#!.*/usr/bin/python~#!%{__python2}~g' - Move COPYING to %%license - Use %%py_byte_compile for %%pluginhome - Clean trailing white-space +- Remove obsolete Group tag * Fri Aug 31 2018 Michal Domonkos - 1.1.31-517 - Use explicit python2 executable at build time From 0ef80740aeb910b5cd9a5237f0af888e16814efe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Wed, 17 Oct 2018 19:22:17 +0200 Subject: [PATCH 25/31] Replace $RPM_BUILD_ROOT with %%{buildroot} --- yum-utils.spec | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/yum-utils.spec b/yum-utils.spec index 261d09f..45f08f6 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -353,8 +353,8 @@ This plugin touches rpmdb files to work around overlayfs issues. %patch4 -p1 %install -rm -rf $RPM_BUILD_ROOT -make DESTDIR=$RPM_BUILD_ROOT install +rm -rf %{buildroot} +make DESTDIR=%{buildroot} install %find_lang %name @@ -393,26 +393,26 @@ plugins="$plugins \ " %endif -mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/yum/pluginconf.d/ $RPM_BUILD_ROOT/%pluginhome -mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/yum/post-actions +mkdir -p %{buildroot}%{_sysconfdir}/yum/pluginconf.d/ %{buildroot}%pluginhome +mkdir -p %{buildroot}%{_sysconfdir}/yum/post-actions cd plugins for plug in $plugins; do - install -m 644 $plug/*.conf $RPM_BUILD_ROOT/%{_sysconfdir}/yum/pluginconf.d/ - install -m 644 $plug/*.py $RPM_BUILD_ROOT/%pluginhome + install -m 644 $plug/*.conf %{buildroot}%{_sysconfdir}/yum/pluginconf.d/ + install -m 644 $plug/*.py %{buildroot}%pluginhome done -install -m 644 aliases/aliases $RPM_BUILD_ROOT/%{_sysconfdir}/yum/aliases.conf -install -m 644 versionlock/versionlock.list $RPM_BUILD_ROOT/%{_sysconfdir}/yum/pluginconf.d/ +install -m 644 aliases/aliases %{buildroot}%{_sysconfdir}/yum/aliases.conf +install -m 644 versionlock/versionlock.list %{buildroot}%{_sysconfdir}/yum/pluginconf.d/ # need for for the ghost in files section of yum-plugin-local -mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/yum.repos.d -touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo +mkdir -p %{buildroot}%{_sysconfdir}/yum.repos.d +touch %{buildroot}%{_sysconfdir}/yum.repos.d/_local.repo # use explicit python2 shebang. -grep -Rl '#!.*/usr/bin/python' $RPM_BUILD_ROOT | \ +grep -Rl '#!.*/usr/bin/python' %{buildroot} | \ xargs sed -i -e 's~#!.*/usr/bin/python~#!%{__python2}~g' # Python byte compilation for %%pluginhome. -%py_byte_compile %{__python2} $RPM_BUILD_ROOT/%pluginhome +%py_byte_compile %{__python2} %{buildroot}%pluginhome %check # To execute: ./test/test-all @@ -634,6 +634,7 @@ xargs sed -i -e 's~#!.*/usr/bin/python~#!%{__python2}~g' - Use %%py_byte_compile for %%pluginhome - Clean trailing white-space - Remove obsolete Group tag +- Replace $RPM_BUILD_ROOT with %%{buildroot} * Fri Aug 31 2018 Michal Domonkos - 1.1.31-517 - Use explicit python2 executable at build time From 2b7f3fd6cd0b50c2d0d5fee231ec64578865780b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Wed, 17 Oct 2018 19:24:10 +0200 Subject: [PATCH 26/31] Use %%autosetup --- yum-utils.spec | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/yum-utils.spec b/yum-utils.spec index 45f08f6..051f3c9 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -346,11 +346,7 @@ Requires: yum >= 3.4.3 This plugin touches rpmdb files to work around overlayfs issues. %prep -%setup -q -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 +%autosetup -p1 %install rm -rf %{buildroot} @@ -635,6 +631,7 @@ xargs sed -i -e 's~#!.*/usr/bin/python~#!%{__python2}~g' - Clean trailing white-space - Remove obsolete Group tag - Replace $RPM_BUILD_ROOT with %%{buildroot} +- Use %%autosetup * Fri Aug 31 2018 Michal Domonkos - 1.1.31-517 - Use explicit python2 executable at build time From 881f03ae9ea76d4637bc6ecaab9defa28fadb1df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Wed, 17 Oct 2018 19:24:50 +0200 Subject: [PATCH 27/31] Drop rm -rf %%{buildroot} --- yum-utils.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yum-utils.spec b/yum-utils.spec index 051f3c9..f88cebb 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -349,7 +349,6 @@ This plugin touches rpmdb files to work around overlayfs issues. %autosetup -p1 %install -rm -rf %{buildroot} make DESTDIR=%{buildroot} install %find_lang %name @@ -632,6 +631,7 @@ xargs sed -i -e 's~#!.*/usr/bin/python~#!%{__python2}~g' - Remove obsolete Group tag - Replace $RPM_BUILD_ROOT with %%{buildroot} - Use %%autosetup +- Drop rm -rf %%{buildroot} * Fri Aug 31 2018 Michal Domonkos - 1.1.31-517 - Use explicit python2 executable at build time From d9e63e37472ce9cd9a3df1385c214f1e013a3817 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Wed, 17 Oct 2018 19:25:30 +0200 Subject: [PATCH 28/31] Use %%make_install --- yum-utils.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yum-utils.spec b/yum-utils.spec index f88cebb..7755c4c 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -349,8 +349,7 @@ This plugin touches rpmdb files to work around overlayfs issues. %autosetup -p1 %install -make DESTDIR=%{buildroot} install - +%make_install %find_lang %name # Plugins to install @@ -632,6 +631,7 @@ xargs sed -i -e 's~#!.*/usr/bin/python~#!%{__python2}~g' - Replace $RPM_BUILD_ROOT with %%{buildroot} - Use %%autosetup - Drop rm -rf %%{buildroot} +- Use %%make_install * Fri Aug 31 2018 Michal Domonkos - 1.1.31-517 - Use explicit python2 executable at build time From 814878d86d85c9c37b81a95366fe549898a92eab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Wed, 17 Oct 2018 19:41:15 +0200 Subject: [PATCH 29/31] Drop unused definition of %%python_sitelib --- yum-utils.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yum-utils.spec b/yum-utils.spec index 7755c4c..cdd533a 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -5,7 +5,6 @@ %endif %global __python %{__python2} -%{!?python_sitelib: %global python_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} %global pluginhome /usr/lib/yum-plugins Summary: Utilities based around the yum package manager @@ -632,6 +631,7 @@ xargs sed -i -e 's~#!.*/usr/bin/python~#!%{__python2}~g' - Use %%autosetup - Drop rm -rf %%{buildroot} - Use %%make_install +- Drop unused definition of %%python_sitelib * Fri Aug 31 2018 Michal Domonkos - 1.1.31-517 - Use explicit python2 executable at build time From 0e5e6c9eb8ad0109282e1a0e5915bd6161f9be63 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 3 Feb 2019 13:05:13 +0000 Subject: [PATCH 30/31] - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- yum-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yum-utils.spec b/yum-utils.spec index cdd533a..7a9617b 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -10,7 +10,7 @@ Summary: Utilities based around the yum package manager Name: yum-utils Version: 1.1.31 -Release: 518%{?dist} +Release: 519%{?dist} License: GPLv2+ Source: http://yum.baseurl.org/download/yum-utils/%{name}-%{version}.tar.gz Patch1: yum-utils-HEAD.patch @@ -620,6 +620,9 @@ xargs sed -i -e 's~#!.*/usr/bin/python~#!%{__python2}~g' %{pluginhome}/ovl.* %changelog +* Sun Feb 03 2019 Fedora Release Engineering - 1.1.31-519 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + * Wed Oct 17 2018 Björn Esser - 1.1.31-518 - Replace %%define with %%global - Use explicit python2 shebang From f30a17f6dccb700b3493b935d2cfc23bfa7ec7b9 Mon Sep 17 00:00:00 2001 From: Michal Domonkos Date: Tue, 26 Feb 2019 12:48:00 +0100 Subject: [PATCH 31/31] Superseded by DNF. For details, see: https://fedoraproject.org/wiki/Changes/Retire_YUM_3 --- .gitignore | 5 - commit-build.sh | 6 - dead.package | 1 + diff-specs.sh | 7 - explicit-python2-at-build.patch | 9 - reposync-prevent-path-traversal.patch | 119 - sources | 1 - yum-utils-HEAD.patch | 7480 ------------------------- yum-utils-deprecated.patch | 495 -- yum-utils.spec | 862 --- 10 files changed, 1 insertion(+), 8984 deletions(-) delete mode 100644 .gitignore delete mode 100755 commit-build.sh create mode 100644 dead.package delete mode 100755 diff-specs.sh delete mode 100644 explicit-python2-at-build.patch delete mode 100644 reposync-prevent-path-traversal.patch delete mode 100644 sources delete mode 100644 yum-utils-HEAD.patch delete mode 100644 yum-utils-deprecated.patch delete mode 100644 yum-utils.spec diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 137fcee..0000000 --- a/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -yum-utils-1.1.27.tar.gz -yum-utils-1.1.28.tar.gz -/yum-utils-1.1.29.tar.gz -/yum-utils-1.1.30.tar.gz -/yum-utils-1.1.31.tar.gz diff --git a/commit-build.sh b/commit-build.sh deleted file mode 100755 index 7094099..0000000 --- a/commit-build.sh +++ /dev/null @@ -1,6 +0,0 @@ -#! /bin/sh -e - -fedpkg clog -git commit -a -F clog -git push -fedpkg build diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..85a5025 --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +Superseded by DNF. For details, see: https://fedoraproject.org/wiki/Changes/Retire_YUM_3 diff --git a/diff-specs.sh b/diff-specs.sh deleted file mode 100755 index fd23347..0000000 --- a/diff-specs.sh +++ /dev/null @@ -1,7 +0,0 @@ -#! /bin/sh -e - -# yum-utils-3.4.3-44.fc19 -ver=$(/usr/bin/fedpkg verrel | perl -lpe 's/-[^-]+$//') - -fedpkg prep > /dev/null -diff -u yum-utils.spec $ver/yum-utils.spec diff --git a/explicit-python2-at-build.patch b/explicit-python2-at-build.patch deleted file mode 100644 index 48f7e59..0000000 --- a/explicit-python2-at-build.patch +++ /dev/null @@ -1,9 +0,0 @@ -diff -up yum-utils-1.1.31/yumutils/Makefile.orig yum-utils-1.1.31/yumutils/Makefile ---- yum-utils-1.1.31/yumutils/Makefile.orig 2011-08-10 17:20:19.000000000 +0200 -+++ yum-utils-1.1.31/yumutils/Makefile 2018-08-31 17:49:34.965067361 +0200 -@@ -1,4 +1,4 @@ --PYTHON=python -+PYTHON=/usr/bin/python2 - PACKAGE = $(shell basename `pwd`) - PYFILES = $(wildcard *.py) - PYVER := $(shell $(PYTHON) -c 'import sys; print "%.3s" %(sys.version)') diff --git a/reposync-prevent-path-traversal.patch b/reposync-prevent-path-traversal.patch deleted file mode 100644 index 026778d..0000000 --- a/reposync-prevent-path-traversal.patch +++ /dev/null @@ -1,119 +0,0 @@ -diff -up yum-utils-1.1.31/docs/reposync.1.orig yum-utils-1.1.31/docs/reposync.1 ---- yum-utils-1.1.31/docs/reposync.1.orig 2018-08-31 15:14:08.100322216 +0200 -+++ yum-utils-1.1.31/docs/reposync.1 2018-08-31 15:14:14.680403500 +0200 -@@ -47,6 +47,16 @@ Download all the non-default metadata - Download only newest packages per-repo. - .IP "\fB\-q, \-\-quiet\fP" - Output as little information as possible. -+.IP "\fB\-\-allow-path-traversal\fP" -+Allow packages stored outside their repo directory to be synced. -+These are packages that are referenced in metadata by using absolute paths or -+up-level ".." symbols, and are normally skipped by \fBreposync\fR for security -+reasons. -+ -+\fBCAUTION:\fR Using this option has potential security implications since, by -+providing malicious repodata, an attacker could make \fBreposync\fR write to -+arbitrary locations on the file system that are accessible by the user running -+it. - .SH "EXAMPLES" - .IP "Sync all packages from the 'updates' repo to the current directory:" - \fB reposync \-\-repoid=updates\fP -diff -up yum-utils-1.1.31/reposync.py.orig yum-utils-1.1.31/reposync.py ---- yum-utils-1.1.31/reposync.py.orig 2018-08-31 15:14:08.112322364 +0200 -+++ yum-utils-1.1.31/reposync.py 2018-08-31 15:14:14.680403500 +0200 -@@ -75,6 +75,12 @@ def localpkgs(directory): - cache[name] = {'path': fn, 'size': st.st_size, 'device': st.st_dev} - return cache - -+def is_subpath(path, root): -+ root = os.path.realpath(root) -+ path = os.path.realpath(os.path.join(root, path)) -+ # join() is used below to ensure root ends with a slash -+ return path.startswith(os.path.join(root, '')) -+ - def parseArgs(): - usage = _(""" - Reposync is used to synchronize a remote yum repository to a local -@@ -117,6 +123,10 @@ def parseArgs(): - parser.add_option("", "--download-metadata", dest="downloadmd", - default=False, action="store_true", - help=_("download all the non-default metadata")) -+ parser.add_option("", "--allow-path-traversal", default=False, -+ action="store_true", -+ help=_("Allow packages stored outside their repo directory to be synced " -+ "(UNSAFE, USE WITH CAUTION!)")) - (opts, args) = parser.parse_args() - return (opts, args) - -@@ -217,13 +227,36 @@ def main(): - else: - local_repo_path = opts.destdir + '/' + repo.id - -+ # Ensure we don't traverse out of local_repo_path by dropping any -+ # packages whose remote_path is absolute or contains up-level -+ # references (unless explicitly allowed). -+ # See RHBZ#1600221 for details. -+ if not opts.allow_path_traversal: -+ newlist = [] -+ skipped = False -+ for pkg in download_list: -+ if is_subpath(pkg.remote_path, local_repo_path): -+ newlist.append(pkg) -+ continue -+ my.logger.warning( -+ _('WARNING: skipping package %s: remote path "%s" not ' -+ 'within repodir, unsafe to mirror locally') -+ % (pkg, pkg.remote_path) -+ ) -+ skipped = True -+ if skipped: -+ my.logger.info( -+ _('You can enable unsafe remote paths by using ' -+ '--allow-path-traversal (see reposync(1) for details)') -+ ) -+ download_list = newlist -+ - if opts.delete and os.path.exists(local_repo_path): - current_pkgs = localpkgs(local_repo_path) - - download_set = {} - for pkg in download_list: -- remote = pkg.returnSimple('relativepath') -- rpmname = os.path.basename(remote) -+ rpmname = os.path.basename(pkg.remote_path) - download_set[rpmname] = 1 - - for pkg in current_pkgs: -@@ -270,8 +303,7 @@ def main(): - remote_size = 0 - if not opts.urls: - for pkg in download_list: -- remote = pkg.returnSimple('relativepath') -- local = local_repo_path + '/' + remote -+ local = os.path.join(local_repo_path, pkg.remote_path) - sz = int(pkg.returnSimple('packagesize')) - if os.path.exists(local) and os.path.getsize(local) == sz: - continue -@@ -283,10 +315,9 @@ def main(): - download_list.sort(key=lambda pkg: pkg.name) - if opts.urls: - for pkg in download_list: -- remote = pkg.returnSimple('relativepath') -- local = os.path.join(local_repo_path, remote) -+ local = os.path.join(local_repo_path, pkg.remote_path) - if not (os.path.exists(local) and my.verifyPkg(local, pkg, False)): -- print urljoin(pkg.repo.urls[0], pkg.relativepath) -+ print urljoin(pkg.repo.urls[0], pkg.remote_path) - continue - - # create dest dir -@@ -295,8 +326,7 @@ def main(): - - # set localpaths - for pkg in download_list: -- rpmfn = pkg.remote_path -- pkg.localpath = os.path.join(local_repo_path, rpmfn) -+ pkg.localpath = os.path.join(local_repo_path, pkg.remote_path) - pkg.repo.copy_local = True - pkg.repo.cache = 0 - localdir = os.path.dirname(pkg.localpath) diff --git a/sources b/sources deleted file mode 100644 index 09a2534..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -b2859b89321b98f2581243536e1b4993 yum-utils-1.1.31.tar.gz diff --git a/yum-utils-HEAD.patch b/yum-utils-HEAD.patch deleted file mode 100644 index 4c14717..0000000 --- a/yum-utils-HEAD.patch +++ /dev/null @@ -1,7480 +0,0 @@ -diff --git a/COPYING b/COPYING -index e77696a..d159169 100644 ---- a/COPYING -+++ b/COPYING -@@ -1,12 +1,12 @@ -- GNU GENERAL PUBLIC LICENSE -- Version 2, June 1991 -+ GNU GENERAL PUBLIC LICENSE -+ Version 2, June 1991 - -- Copyright (C) 1989, 1991 Free Software Foundation, Inc. -- 675 Mass Ave, Cambridge, MA 02139, USA -+ Copyright (C) 1989, 1991 Free Software Foundation, Inc., -+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -- Preamble -+ Preamble - - The licenses for most software are designed to take away your - freedom to share and change it. By contrast, the GNU General Public -@@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This - General Public License applies to most of the Free Software - Foundation's software and to any other program whose authors commit to - using it. (Some other Free Software Foundation software is covered by --the GNU Library General Public License instead.) You can apply it to -+the GNU Lesser General Public License instead.) You can apply it to - your programs, too. - - When we speak of free software, we are referring to freedom, not -@@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and - modification follow. -- -- GNU GENERAL PUBLIC LICENSE -+ -+ GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -@@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions: - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) -- -+ - These requirements apply to the modified work as a whole. If - identifiable sections of that work are not derived from the Program, - and can be reasonably considered independent and separate works in -@@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent - access to copy the source code from the same place counts as - distribution of the source code, even though third parties are not - compelled to copy the source along with the object code. -- -+ - 4. You may not copy, modify, sublicense, or distribute the Program - except as expressly provided under this License. Any attempt - otherwise to copy, modify, sublicense or distribute the Program is -@@ -225,7 +225,7 @@ impose that choice. - - This section is intended to make thoroughly clear what is believed to - be a consequence of the rest of this License. -- -+ - 8. If the distribution and/or use of the Program is restricted in - certain countries either by patents or by copyrighted interfaces, the - original copyright holder who places the Program under this License -@@ -255,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals - of preserving the free status of all derivatives of our free software and - of promoting the sharing and reuse of software generally. - -- NO WARRANTY -+ NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY - FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -@@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER - PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE - POSSIBILITY OF SUCH DAMAGES. - -- END OF TERMS AND CONDITIONS -- -- How to Apply These Terms to Your New Programs -+ END OF TERMS AND CONDITIONS -+ -+ How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest - possible use to the public, the best way to achieve this is to make it -@@ -291,7 +291,7 @@ convey the exclusion of warranty; and each file should have at least - the "copyright" line and a pointer to where the full notice is found. - - -- Copyright (C) 19yy -+ Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by -@@ -303,16 +303,16 @@ the "copyright" line and a pointer to where the full notice is found. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+ You should have received a copy of the GNU General Public License along -+ with this program; if not, write to the Free Software Foundation, Inc., -+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - - Also add information on how to contact you by electronic and paper mail. - - If the program is interactive, make it output a short notice like this - when it starts in an interactive mode: - -- Gnomovision version 69, Copyright (C) 19yy name of author -+ Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. -@@ -335,5 +335,5 @@ necessary. Here is a sample; alter the names: - This General Public License does not permit incorporating your program into - proprietary programs. If your program is a subroutine library, you may - consider it more useful to permit linking proprietary applications with the --library. If this is what you want to do, use the GNU Library General -+library. If this is what you want to do, use the GNU Lesser General - Public License instead of this License. -diff --git a/ChangeLog b/ChangeLog -index bc802f6..e9be2e4 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -3370,7 +3370,7 @@ - 2008-08-04 James Antill - - * yum-builddep.py: Allow yum-builddep to use "extras" -- (installed/not-available pacakges -+ (installed/not-available packages - - 2008-08-04 James Antill - -diff --git a/README b/README -index 8abe805..0c01d0e 100644 ---- a/README -+++ b/README -@@ -67,3 +67,5 @@ Author of the update on boot init scripts - - Tim Lauridsen - Maintainer of yum-utils - fixer of a lot of misc utils. - -+- Valentina Mukhamedzhanova -+Maintainer of yum-utils. -diff --git a/debuginfo-install.py b/debuginfo-install.py -index 177c6c3..bb61a1d 100755 ---- a/debuginfo-install.py -+++ b/debuginfo-install.py -@@ -7,11 +7,11 @@ - # This program is distributed in the hope that it will be useful, - # but WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --# GNU Library General Public License for more details. -+# GNU General Public License for more details. - # - # You should have received a copy of the GNU General Public License --# along with this program; if not, write to the Free Software --# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+# along with this program; if not, write to the Free Software Foundation, -+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - # Copyright 2007 Seth Vidal - - import sys -@@ -52,7 +52,12 @@ class DebugInfoInstall(YumUtilBase): - action="store_true", - help="Turn off automatic installation/update of the yum debuginfo plugin") - -- self.main() -+ self.done = set() -+ try: -+ self.main() -+ except yum.Errors.YumBaseError, e: -+ print e -+ sys.exit(1) - - def doUtilConfigSetup(self, *args, **kwargs): - """ We override this to get our extra option out. """ -@@ -81,7 +86,10 @@ class DebugInfoInstall(YumUtilBase): - for repo in self.repos.listEnabled(): - repos[repo.id] = repo - for repoid in repos: -- di = '%s-debuginfo' % repoid -+ if repoid.endswith('-rpms'): -+ di = repoid[:-5] + '-debug-rpms' -+ else: -+ di = '%s-debuginfo' % repoid - if di in repos: - continue - repo = repos[repoid] -@@ -117,6 +125,9 @@ class DebugInfoInstall(YumUtilBase): - sys.exit(self.doUtilTransaction()) - - def di_try_install(self, po): -+ if po in self.done: -+ return -+ self.done.add(po) - if po.name.endswith('-debuginfo'): # Wildcard matches produce this - return - di_name = '%s-debuginfo' % po.name -@@ -156,6 +167,10 @@ class DebugInfoInstall(YumUtilBase): - self.di_try_install(deppo) - except yum.Errors.InstallError, e: - self.logger.critical('Could not find debuginfo pkg for dependency package %s' % deppo) -+ -+ for pkgname in u: -+ self.logger.critical('Could not find a package for: %s' % pkgname) -+ - # This is kinda hacky, accessing the option from the plugins code - # but I'm not sure of a better way of doing it - if not self.no_debuginfo_plugin and self.tsInfo: -diff --git a/docs/Makefile b/docs/Makefile -index d01c1e4..79d8a1b 100644 ---- a/docs/Makefile -+++ b/docs/Makefile -@@ -1,9 +1,11 @@ - DOCS = repoquery package-cleanup repo-rss yumdownloader yum-builddep yum-changelog reposync \ - yum-list-data yum-filter-data yum-verify yum-utils yum-aliases yum-debug-dump yum-versionlock \ - yum-groups-manager debuginfo-install repodiff yum-fs-snapshot \ -- show-installed show-changed-rco -+ show-installed show-changed-rco yum-debug-restore \ -+ find-repos-of-install needs-restarting repo-graph repoclosure \ -+ repomanage repotrack verifytree yum-config-manager - DOCS5 = yum-changelog.conf yum-versionlock.conf yum-fs-snapshot.conf --DOCS8 = yum-security yum-complete-transaction yumdb -+DOCS8 = yum-complete-transaction yumdb yum-copr - - all: - echo "Nothing to do" -diff --git a/docs/debuginfo-install.1 b/docs/debuginfo-install.1 -index a47e28a..a829869 100644 ---- a/docs/debuginfo-install.1 -+++ b/docs/debuginfo-install.1 -@@ -1,7 +1,7 @@ - .\" debuginfo-install - .TH "debuginfo-install" "1" "21 October 2008" "James Antill" "" - .SH "NAME" --debuginfo-install -+debuginfo-install \- install debuginfo packages and their dependencies - .SH "SYNOPSIS" - \fBdebuginfo-install\fP package - .SH "DESCRIPTION" -diff --git a/docs/find-repos-of-install.1 b/docs/find-repos-of-install.1 -new file mode 100644 -index 0000000..77be909 ---- /dev/null -+++ b/docs/find-repos-of-install.1 -@@ -0,0 +1,51 @@ -+.\" find-repos-of-install -+.TH "find-repos-of-install" "1" "13 January 2013" "" "" -+.SH "NAME" -+find-repos-of-install \- report which Yum repository a package was installed from -+.SH "SYNOPSIS" -+\fBfind-repos-of-install\fP [options] package1 [package2...] -+.SH "DESCRIPTION" -+.PP -+\fBfind-repos-of-install\fP is a program which reports the Yum repository that -+a specified package was installed from. -+.PP -+.SH "OPTIONS" -+.IP "\fB\-\-version\fP" -+Report program version and exit. -+.IP "\fB\-h, \-\-help\fP" -+Display a help message, and then quit. -+.IP "\fB\-\-repoid=REPOID\fP" -+Specify repo ids to query, can be specified multiple times (default is -+all enabled). -+.IP "\fB\-\-enablerepo=ENABLEREPOS\fP" -+In addition to the default set, query the given additional repository, even if -+it is disabled in YUM configuration. Can be used multiple times. -+.IP "\fB\-\-disablerepo=DISABLEREPOS\fP" -+Do not query the given repository, even if it is enabled in YUM -+configuration. Can be used multiple times. -+.IP "\fB\-\-repofrompath=REPOID,PATH/URL\fP" -+Specify a path or url to a repository (same path as in a baseurl) to add to -+the repositories for this query. This option can be used multiple times. If -+you want to view only the pkgs from this repository combine this with -+\-\-repoid. The repoid for the repository is specified by REPOID. -+.IP "\fB\-C, \-\-cache\fP" -+Tells repoquery to run entirely from YUM cache - does not download any metadata -+or update the cache. Queries in this mode can fail or give partial/incorrect -+results if the cache isn't fully populated beforehand with eg "yum makecache". -+.IP "\fB\-\-tempcache\fP" -+Use a temp dir for storing/accessing yum-cache. -+.IP "\fB\-\-sync2yumdb\fP" -+Sync anything that is found to the yumdb, if available. -+ -+.PP -+.SH "SEE ALSO" -+.nf -+.I yum.conf (5) -+http://yum.baseurl.org/ -+.fi -+ -+.PP -+.SH AUTHORS -+.nf -+See the Authors file included with this program. -+.fi -diff --git a/docs/needs-restarting.1 b/docs/needs-restarting.1 -new file mode 100644 -index 0000000..74b1904 ---- /dev/null -+++ b/docs/needs-restarting.1 -@@ -0,0 +1,29 @@ -+.\" needs-restarting -+.TH "needs-restarting" "1" "13 January 2013" "" "" -+.SH "NAME" -+needs-restarting \- report running processes that have been updated -+.SH "SYNOPSIS" -+\fBneeds-restarting\fP [options] -+.SH "DESCRIPTION" -+.PP -+\fBneeds-restarting\fP is a program that reports a list of process ids that -+started running before they or some component that they use were updated. -+.PP -+.SH "OPTIONS" -+.IP "\fB\-h, \-\-help\fP" -+Display a help message, and then quit. -+.IP "\fB\-u, \-\-useronly\fP" -+Show processes for my userid only. -+ -+.PP -+.SH "SEE ALSO" -+.nf -+.I yum.conf (5) -+http://yum.baseurl.org/ -+.fi -+ -+.PP -+.SH "AUTHORS" -+.nf -+See the Authors file included with this program. -+.fi -diff --git a/docs/package-cleanup.1 b/docs/package-cleanup.1 -index 867cf4d..61959ac 100644 ---- a/docs/package-cleanup.1 -+++ b/docs/package-cleanup.1 -@@ -1,7 +1,7 @@ - .\" package-cleanup - .TH "package-cleanup" "1" "03 November 2005" "Gijs Hollestelle" "" - .SH "NAME" --package-cleanup -+package-cleanup \- clean up locally installed, duplicate, or orphaned packages - .SH "SYNOPSIS" - \fBpackage-cleanup\fP [options] - .SH "DESCRIPTION" -@@ -14,7 +14,7 @@ Use alternative config file (default is /etc/yum.conf). - .IP "\fB\-h, \-\-help\fP" - Help; display a help message and then quit\&. - .IP "\fB\-q, \-\-quiet\fP" --Print out nothing unecessary. -+Print out nothing unnecessary. - .IP "\fB\-v, \-\-version\fP" - Report program version and exit. - .IP "\fB\-y\fP" -@@ -36,6 +36,8 @@ Scan for duplicates in the local RPM database. - .IP "\fB\-\-cleandupes\fP" - Scan for duplicates in the local RPM database and clean out the - older versions. -+.IP "\fB\-\-count \fP" -+Number of duplicate/kernel packages to keep on the system (default 2) - .PP - .SH "LEAVES OPTIONS" - .IP "\fB\-\-all\fP" -@@ -49,21 +51,19 @@ When listing leaf nodes do not list development packages. - When listing leaf nodes do not list packages with files in bin directories. - .PP - .SH "OLDKERNELS OPTIONS" --.IP "\fB\-\-count \fP" --Number of kernel packages to keep on the system (default 2) - .IP "\fB\-\-keepdevel\fP" - Do not remove kernel-devel packages when removing kernels - - .SH "EXAMPLES" - .IP "List all dependency problems:" --\fBpackage-cleanup --problems\fP -+\fBpackage-cleanup \-\-problems\fP - .IP "List all packages that are not in any Yum repository:" --\fBpackage-cleanup --orphans\fP -+\fBpackage-cleanup \-\-orphans\fP - .IP "Remove old kernels keeping 3 and leaving old kernel-devel packages installed:" --\fBpackage-cleanup --oldkernels --count=3 --keepdevel\fP -+\fBpackage-cleanup \-\-oldkernels \-\-count=3 \-\-keepdevel\fP - .PP - .IP "List all leaf packages with no files in a bin directory whose name begins with either 'perl' or 'python':" --\fBpackage-cleanup --leaves --exclude-bin --leaf-regex="^(perl)|(python)"\fP -+\fBpackage-cleanup \-\-leaves \-\-exclude\-bin \-\-leaf\-regex="^(perl)|(python)"\fP - .PP - .SH "FILES" - As package-cleanup uses YUM libraries for retrieving all the information, it -diff --git a/docs/repo-graph.1 b/docs/repo-graph.1 -new file mode 100644 -index 0000000..9bdbb20 ---- /dev/null -+++ b/docs/repo-graph.1 -@@ -0,0 +1,32 @@ -+.\" repo-graph -+.TH "repo-graph" "1" "13 January 2013" "" "" -+.SH "NAME" -+repo-graph \- output a full package dependency graph in dot format -+.SH "SYNOPSIS" -+\fBrepo-graph\fP [options] -+.SH "DESCRIPTION" -+.PP -+\fBrepo-graph\fP is a program that generates a full package dependency list -+from a yum repository and outputs it in dot format. -+.PP -+.SH "OPTIONS" -+.IP "\fB\-h, \-\-help\fP" -+Display a help message, and then quit. -+.IP "\fB\-\-repoid=REPOID\fP" -+Specify repo ids to query, can be specified multiple times (default is -+all enabled). -+.IP "\fB\-c CONFIG\fP" -+Config file to use (defaults to /etc/yum.conf). -+ -+.PP -+.SH "SEE ALSO" -+.nf -+.I yum.conf (5) -+http://yum.baseurl.org/ -+.fi -+ -+.PP -+.SH "AUTHORS" -+.nf -+See the Authors file included with this program. -+.fi -diff --git a/docs/repo-rss.1 b/docs/repo-rss.1 -index 90788b8..62e00cc 100644 ---- a/docs/repo-rss.1 -+++ b/docs/repo-rss.1 -@@ -1,7 +1,7 @@ - .\" repo-rss - .TH "repo-rss" "1" "2005" "Seth Vidal" "" - .SH "NAME" --repo-rss -+repo-rss \- generates an RSS feed from one or more Yum repositories - .SH "SYNOPSIS" - \fBrepo-rss\fP [options] repoid1 [repoid2...] - .SH "DESCRIPTION" -@@ -28,7 +28,7 @@ default for non-root users. - - .SH "EXAMPLES" - .IP "Generate an RSS for the updates-released repository and save it as updates-release.xml:" --\fBrepo-rss -f updates-released.xml updates-released\fP -+\fBrepo-rss \-f updates-released.xml updates-released\fP - .PP - .SH "FILES" - As repo-rss uses YUM libraries for retrieving all the information, it -diff --git a/docs/repoclosure.1 b/docs/repoclosure.1 -new file mode 100644 -index 0000000..e0f7091 ---- /dev/null -+++ b/docs/repoclosure.1 -@@ -0,0 +1,57 @@ -+.\" repoclosure -+.TH "repoclosure" "1" "13 January 2013" "" "" -+.SH "NAME" -+repoclosure \- display a list of unresolved dependencies for a yum repository -+.SH "SYNOPSIS" -+\fBrepoclosure\fP [options] -+.SH "DESCRIPTION" -+.PP -+\fBrepoclosure\fP is a program that reads package metadata from one or more yum -+repositories, checks all dependencies, and displays a list of packages with -+unresolved dependencies. -+.PP -+.SH "OPTIONS" -+.IP "\fB\-h, \-\-help\fP" -+Display a help message, and then quit. -+.IP "\fB\-c CONFIG, \-\-config=CONFIG\fP" -+Config file to use (defaults to /etc/yum.conf). -+.IP "\fB\-a ARCH, \-\-arch=ARCH\fP" -+Check packages of the given archs, can be specified multiple times (default: -+current arch). -+.IP "\fB\-\-basearch=BASEARCH\fP" -+Set the basearch for yum to run as. -+.IP "\fB\-b, \-\-builddeps\fP" -+Check build dependencies only (needs source repos enabled). -+.IP "\fB\-l LOOKASIDE, \-\-lookaside=LOOKASIDE\fP" -+Specify a lookaside repo id to query, can be specified multiple times. -+.IP "\fB\-r REPOID, \-\-repoid=REPOID\fP" -+Specify repo ids to query, can be specified multiple times (default is -+all enabled). -+.IP "\fB\-t, \-\-tempcache\fP" -+Use a temp dir for storing/accessing yum-cache. -+.IP "\fB\-q, \-\-quiet\fP" -+Run quietly: no warnings printed to stderr. -+.IP "\fB\-n, \-\-newest\fP" -+Check only the newest packages in the repos. -+.IP "\fB\-\-repofrompath=REPOID,PATH/URL\fP" -+Specify a path or url to a repository (same path as in a baseurl) to add to -+the repositories for this query. This option can be used multiple times. If -+you want to view only the pkgs from this repository combine this with -+\-\-repoid. The repoid for the repository is specified by REPOID. -+.IP "\fB\-p PKG, \-\-pkg=PKG\fP" -+Check closure for this package only -+.IP "\fB\-g GROUP, \-\-group=GROUP\fP" -+Check closure for packages in this group only -+ -+.PP -+.SH "SEE ALSO" -+.nf -+.I yum.conf (5) -+http://yum.baseurl.org/ -+.fi -+ -+.PP -+.SH "AUTHORS" -+.nf -+See the Authors file included with this program. -+.fi -diff --git a/docs/repodiff.1 b/docs/repodiff.1 -index c421c5d..75a8860 100644 ---- a/docs/repodiff.1 -+++ b/docs/repodiff.1 -@@ -1,37 +1,45 @@ - .\" repodiff - .TH "repodiff" "1" "21 October 2008" "James Antill" "" - .SH "NAME" --repodiff -+repodiff \- list differences between two or more Yum repositories - .SH "SYNOPSIS" --\fBrepodiff\fP --old=old_repo_baseurl --new=new_repo_baseurl -+\fBrepodiff\fP \-\-old=old_repo_baseurl \-\-new=new_repo_baseurl - .SH "DESCRIPTION" - .PP - \fBrepodiff\fP is a program which will list differences between two sets of - repositories. \fBNote\fP that by default only source packages are compared. - .PP - .SH "GENERAL OPTIONS" --.IP "\fB\-\-old, -o\fP" --Add a repo. as an old repo. --.IP "\fB\-\-new, -n\fP" --Add a repo. as an new repo. --.IP "\fB\-\-archlist, -a\fP" -+.IP "\fB\-\-old, \-o\fP" -+Add a repo. as an old repo. Note that if you prefix the url with "mirror:" then -+the following url is treated as a mirror and not a baseurl. -+.IP "\fB\-\-new, \-n\fP" -+Add a repo. as an new repo. Note that if you prefix the url with "mirror:" then -+the following url is treated as a mirror and not a baseurl. -+.IP "\fB\-\-archlist, \-a\fP" - Add architectures to change the default from just comparing source packages. - Note that if you want the same as a native - "x86_64" architecture machine you just need to pass "x86_64" (this is different - from earlier versions where you needed to specify - "x86_64,athlon,i686,i586,i486,i386,noarch" and you still got "src"). --.IP "\fB\-\-size, -s\fP" --Ouput additional data about the size of the changes. --.IP "\fB\-\-compare-arch\fP" -+.IP "\fB\-\-size, \-s\fP" -+Output additional data about the size of the changes. -+.IP "\fB\-\-compare\-arch\fP" - Normally packages are just compared based on their name, this flag makes the - comparison also use the arch. So foo.i386 and foo.x86_64 are different. -+.IP "\fB\-\-simple\fP" -+Output a simple one line message for modified packages. -+.IP "\fB\-\-downgrade\fP" -+Split the data for modified packages between upgraded and downgraded packages. - .SH "EXAMPLES" - .IP "Compare source pkgs in two local repos:" --\fBrepodiff --old=/tmp/repo-old --new=/tmp/repo-new\fP -+\fBrepodiff \-\-old=/tmp/repo-old \-\-new=/tmp/repo-new\fP - .IP "Compare x86_64 compat. binary pkgs in two remote repos, and two local one:" --\fBrepodiff -a x86_64 --old=http://example.com/repo1-old --old=/tmp/repo-old --new=http://example.com/repo1-new --new=/tmp/repo-new\fP -+\fBrepodiff \-a x86_64 \-\-old=http://example.com/repo1-old \-\-old=/tmp/repo-old \-\-new=http://example.com/repo1-new \-\-new=/tmp/repo-new\fP - .IP "Compare x86_64 compat. binary pkgs, but also compare arch:" --\fBrepodiff -a x86_64 --compare-arch --old=http://example.com/repo1-old --old=/tmp/repo-old --new=http://example.com/repo1-new --new=/tmp/repo-new\fP -+\fBrepodiff \-a x86_64 \-\-compare\-arch \-\-old=http://example.com/repo1-old \-\-old=/tmp/repo-old \-\-new=http://example.com/repo1-new \-\-new=/tmp/repo-new\fP -+.IP "Compare two releases of Fedora (15 => 16):" -+\fBrepodiff \-\-old='mirror:https://mirrors.fedoraproject.org/metalink?repo=fedora-source-15&arch=i386' \-\-new='mirror:https://mirrors.fedoraproject.org/metalink?repo=fedora-source-16&arch=i386' \-\-size \-\-simple \-\-downgrade\fP - .PP - - .SH "SEE ALSO" -diff --git a/docs/repomanage.1 b/docs/repomanage.1 -new file mode 100644 -index 0000000..4d336a5 ---- /dev/null -+++ b/docs/repomanage.1 -@@ -0,0 +1,38 @@ -+.\" repomanage -+.TH "repomanage" "1" "13 January 2013" "" "" -+.SH "NAME" -+repomanage \- list the newest or oldest RPM packages in a directory -+.SH "SYNOPSIS" -+\fBrepomanage\fP [options] directory -+.SH "DESCRIPTION" -+.PP -+\fBrepomanage\fP is a program to manage a directory of RPM packages. It -+displays a list of the newest or oldest packages in a directory for easy -+piping to xargs or similar programs. -+.PP -+.SH "OPTIONS" -+.IP "\fB\-h, \-\-help\fP" -+Display a help message, and then quit. -+.IP "\fB\-o, \-\-old\fP" -+Print the oldest packages. -+.IP "\fB\-n, \-\-new\fP" -+Print the newest packages. -+.IP "\fB\-s, \-\-space\fP" -+Space-separated instead of newline-separated output. -+.IP "\fB\-k KEEP, \-\-keep=KEEP\fP" -+Newest N packages to keep - defaults to 1. -+.IP "\fB\-c, \-\-nocheck\fP" -+Do not check package payload signatures/digests. -+ -+.PP -+.SH "SEE ALSO" -+.nf -+.I yum.conf (5) -+http://yum.baseurl.org/ -+.fi -+ -+.PP -+.SH "AUTHORS" -+.nf -+See the Authors file included with this program. -+.fi -diff --git a/docs/repoquery.1 b/docs/repoquery.1 -index f5a8c5d..195780d 100644 ---- a/docs/repoquery.1 -+++ b/docs/repoquery.1 -@@ -1,11 +1,11 @@ - .\" repoquery - .TH "repoquery" "1" "17 October 2005" "Panu Matilainen" "" - .SH "NAME" --repoquery -+repoquery \- query information from Yum repositories - .SH "SYNOPSIS" - \fBrepoquery\fP [options] - .br --\fBrepoquery\fP -a [options] -+\fBrepoquery\fP \-a [options] - .SH "DESCRIPTION" - .PP - \fBrepoquery\fP is a program for querying information from YUM repositories -@@ -13,12 +13,12 @@ similarly to rpm queries. - .PP - .SH "GENERAL OPTIONS" - .IP "\fB\-\-querytags\fP" --List valid queryformat tags and exit.. --.IP "\fB\-v, \-\-version\fP" -+List valid queryformat tags and exit. -+.IP "\fB\-\-version\fP" - Report program version and exit. - .IP "\fB\-\-repoid=\fP" - Specify which repository to query. Using this option disables all repositories --not explicitly enabled with --repoid option (can be used multiple times). By -+not explicitly enabled with \-\-repoid option (can be used multiple times). By - default repoquery uses whatever repositories are enabled in YUM configuration. - .IP "\fB\-\-enablerepo=\fP" - In addition to the default set, query the given additional repository, even if -@@ -30,7 +30,7 @@ configuration. Can be used multiple times. - Specify a path or url to a repository (same path as in a baseurl) to add to - the repositories for this query. This option can be used multiple times. If - you want to view only the pkgs from this repository combine this with ----repoid. The repoid for the repository is specified by . -+\-\-repoid. The repoid for the repository is specified by . - .IP "\fB\-\-plugins\fP" - Enable YUM plugin support. - .IP "\fB\-q, \-\-query\fP" -@@ -45,6 +45,10 @@ Produce verbose output. - Tells repoquery to run entirely from YUM cache - does not download any metadata - or update the cache. Queries in this mode can fail or give partial/incorrect - results if the cache isn't fully populated beforehand with eg "yum makecache". -+.IP "\fB\-\-nolock\fP" -+Disable locking the yum cache. This is needed as any yum API caller can alter -+the repo. metadata cache, unless it is locked. This automatically enables the -+--cache and --tempcache options, to try to lower the riskiness. - .IP "\fB\-\-tempcache\fP" - Create and use a private cache instead of the main YUM cache. This is used - by default when run as non-root user. -@@ -57,6 +61,13 @@ the releasever information from outside the installroot. - Note that with the default upstream cachedir, of /var/cache/yum, using this - option will corrupt your cache (and you can use $releasever in your cachedir - configuration to stop this). -+.IP "\fB\-\-installroot=root\fP" -+Specifies an alternative installroot, relative to which all packages will be -+installed. Think of this like doing "chroot yum" except using -+\-\-installroot allows yum to work before the chroot is created. -+Note: You may also want to use the option \-\-releasever=/ when creating the -+installroot as otherwise the $releasever value is taken from the rpmdb within -+the installroot (and thus. will be empty, before creation). - .IP "\fB\-\-setopt=option=value\fP" - Set any config option in yum config or repo files. For options in the global - config just use: \-\-setopt=option=value for repo options use: \-\-setopt=repoid.option=value -@@ -64,13 +75,21 @@ config just use: \-\-setopt=option=value for repo options use: \-\-setopt=repoid - .PP - .SH "PACKAGE QUERY OPTIONS" - .IP "\fB\-i, \-\-info\fP" --Show general information about package similarly to "rpm -qi" -+Show general information about package similarly to "rpm \-qi" - .IP "\fB\-l, \-\-list\fP" - List files in package. - .IP "\fB\-R, \-\-requires\fP" - List package dependencies. -+.IP "\fB\-R, \-\-weak\-requires\fP" -+List package weak dependencies. -+.IP "\fB\-R, \-\-info\-requires\fP" -+List package informational dependencies. -+.IP "\fB\-R, \-\-weak\-reverse\-requires\fP" -+List package weak reverse dependencies. -+.IP "\fB\-R, \-\-info\-reverse\-requires\fP" -+List package informational reverse dependencies. - .IP "\fB\-\-resolve\fP" --When used with --requires, resolve capabilities to originating packages. -+When used with \-\-requires/\-\-weak\-requires/etc, resolve capabilities to originating packages. - .IP "\fB\-\-provides\fP" - List capabilities package provides. - .IP "\fB\-\-obsoletes\fP" -@@ -81,7 +100,7 @@ List capabilities conflicting with package. - List package changelog. - .IP "\fB\-\-location\fP" - Show a location where the package could be downloaded from. --For example: \fBwget `repoquery --location yum`\fP -+For example: \fBwget `repoquery \-\-location yum`\fP - .IP "\fB\-s, \-\-source\fP" - Show package source RPM name. - .IP "\fB\-\-srpm\fP" -@@ -95,23 +114,26 @@ Use name-epoch:version-release.architecture output format (default) - .IP "\fB\-\-envra\fP" - Use epoch:name-version-release.architecture output format - (easier to parse than nevra) --.IP "\fB\--qf=FORMAT, \-\-queryformat=FORMAT\fP" -+.IP "\fB\-\-qf=FORMAT, \-\-queryformat=FORMAT\fP" - Specify custom output format for queries. You can add ":date", ":day" and - ":isodate" to all the tags that are a time, and you can add ":k", ":m", ":g", - ":t" and ":h" to sizes. You can also specify field width as in - sprintf (Eg. %-20{name}) --.IP "\fB\-\-output [text|ascii-tree|dot-tree]\fP" --Output format which can be used with --requires/--whatrequires/--obsoletes/--conflicts. -+.IP "\fB\-\-output [text|ascii-tree|ascii-tree+|dot-tree|dot-tree+]\fP" -+Output format which can be used with \-\-requires/\-\-weak-requires/\-\-whatrequires/\-\-obsoletes/\-\-conflicts. The variants with a + suffix are used for weak dependencies and will merge the stronger variants into the output. - Default output is 'text'. - .IP "\fB\-\-level [all|any int]\fP" --In combination with --output ascii-tree|dot-tree this option specifies the --number of level to print on the tree. Default level is 'all'. -+In combination with \-\-output ascii-tree|dot-tree|ascii-tree+|dot-tree+ this -+option specifies the number of level to print on the tree. -+ Default level is 'all'. - .PP - - .SH "PACKAGE SELECTION OPTIONS" - .IP "\fB\-a, \-\-all\fP" - Query all available packages (for rpmquery compatibility / shorthand for - repoquery '*') -+.IP "\fB\--show-duplicates\fP" -+Query all versions of packages. - .IP "\fB\-f, \-\-file FILE\fP" - Query package owning FILE. - .IP "\fB\-\-whatobsoletes CAPABILITY\fP" -@@ -123,14 +145,15 @@ Query all packages that provide CAPABILITY. - .IP "\fB\-\-whatrequires CAPABILITY\fP" - Query all packages that require CAPABILITY. - .IP "\fB\-\-alldeps\fP" --When used with --whatrequires, look for non-explicit dependencies in -+When used with \-\-whatrequires, look for non-explicit dependencies in - addition to explicit ones (e.g. files and Provides in addition to - package names). This is the default. - .IP "\fB\-\-exactdeps\fP" --When used with --whatrequires, search for dependencies only exactly as given. --This is effectively the opposite of --alldeps. -+When used with \-\-whatrequires, search for dependencies only exactly as given. -+This is effectively the opposite of \-\-alldeps. - .IP "\fB\-\-recursive\fP" --When used with --whatrequires, query packages recursively. -+When used with \-\-whatrequires, and \-\-requires \-\-resolve, query packages -+recursively. - .IP "\fB\-\-archlist=ARCH1[,ARCH2...]\fP" - Limit the query to packages of given architecture(s). Valid values are all - architectures known to rpm/yum such as 'i386' and 'src' for -@@ -166,19 +189,19 @@ Query groups instead of packages. - - .SH "EXAMPLES" - .IP "List all packages whose name contains 'perl':" --\fBrepoquery '*perl*'\fP -+\fBrepoquery \(aq*perl*\(aq\fP - .IP "List all packages depending on openssl:" --\fBrepoquery --whatrequires openssl\fP -+\fBrepoquery \-\-whatrequires openssl\fP - .IP "List all package names and the repository they come from, nicely formatted:" --\fBrepoquery -a --qf "%-20{repoid} %{name}"\fP -+\fBrepoquery \-a \-\-qf "%-20{repoid} %{name}"\fP - .IP "List name and summary of all available updates (if any), nicely formatted:" --\fBrepoquery -a --pkgnarrow=updates --qf "%{name}:\\n%{summary}\\n"\fP -+\fBrepoquery \-a \-\-pkgnarrow=updates \-\-qf "%{name}:\\n%{summary}\\n"\fP - .IP "List optional packages in base group:" --\fBrepoquery -g --grouppkgs=optional -l base\fP -+\fBrepoquery \-g \-\-grouppkgs=optional \-l base\fP - .IP "List build requirements from 'anaconda' source rpm:" --\fBrepoquery --requires anaconda.src\fP -+\fBrepoquery \-\-requires anaconda.src\fP - .IP "List packages which BuildRequire gail-devel" --\fBrepoquery --archlist=src --whatrequires gail-devel\fP -+\fBrepoquery \-\-archlist=src \-\-whatrequires gail-devel\fP - NB: This command will only work if you have repositories enabled which include srpms. - - .\"TODO: Add more examples... -@@ -204,7 +227,7 @@ of the following: - .br - \fBepoch:name-ver-rel.arch\fP - .IP --For example: \fBrepoquery -l kernel-2.4.1-10.i686\fP -+For example: \fBrepoquery \-l kernel-2.4.1-10.i686\fP - .br - Additionally wildcards (shell-style globs) can be used. - -diff --git a/docs/reposync.1 b/docs/reposync.1 -index c1bc818..5a5b092 100644 ---- a/docs/reposync.1 -+++ b/docs/reposync.1 -@@ -1,7 +1,7 @@ - .\" reposync - .TH "reposync" "1" "27 April 2007" "" "" - .SH "NAME" --reposync - synchronize yum repositories to a local directory -+reposync \- synchronize yum repositories to a local directory - .SH "SYNOPSIS" - \fBreposync\fP [options] - .SH "DESCRIPTION" -@@ -14,33 +14,50 @@ Display a help message, and then quit. - Config file to use (defaults to /etc/yum.conf). - .IP "\fB\-a ARCH, \-\-arch=ARCH\fP" - Act as if running the specified arch (default: current arch, note: does --not override $releasever). -+not override $releasever. x86_64 is a superset for i*86.). - .IP "\fB\-\-source\fP" - Also download .src.rpm files. - .IP "\fB\-r REPOID, \-\-repoid=REPOID\fP" - Specify repo ids to query, can be specified multiple times (default is - all enabled). -+.IP "\fB\-e\ CACHEDIR, \-\-cachedir CACHEDIR\fP" -+Directory in which to store metadata. - .IP "\fB\-t, \-\-tempcache\fP" - Use a temp dir for storing/accessing yum-cache. -+.IP "\fB\-d, \-\-delete\fP" -+Delete local packages no longer present in repository. - .IP "\fB\-p DESTDIR, \-\-download_path=DESTDIR\fP" - Path to download packages to: defaults to current directory. -+.IP "\fB\-\-norepopath\fP" -+Don't add the reponame to the download path. -+Can only be used when syncing a single repository (default is -+to add the reponame). - .IP "\fB\-g, \-\-gpgcheck\fP" - Remove packages that fail GPG signature checking after downloading. -+exit status is '1' if at least one package was removed. - .IP "\fB\-u, \-\-urls\fP" - Just list urls of what would be downloaded, don't download. --.IP "\fB\-n, \-\-newest-only\fP" -+.IP "\fB\-l, \-\-plugins\fP" -+Enable yum plugin support. -+.IP "\fB\-m, \-\-downloadcomps\fP" -+Also download comps.xml. -+.IP "\fB\-\-download-metadata\fP" -+Download all the non-default metadata -+.IP "\fB\-n, \-\-newest\-only\fP" - Download only newest packages per-repo. - .IP "\fB\-q, \-\-quiet\fP" - Output as little information as possible. - .SH "EXAMPLES" - .IP "Sync all packages from the 'updates' repo to the current directory:" --\fB reposync --repoid=updates\fP -+\fB reposync \-\-repoid=updates\fP - .IP "Sync only the newest packages from the 'updates' repo to the current directory:" --\fB reposync -n --repoid=updates\fP -+\fB reposync \-n \-\-repoid=updates\fP - .IP "Sync packages from the 'updates' and 'extras' repos to the current directory:" --\fB reposync --repoid=updates --repoid=extras\fP -+\fB reposync \-\-repoid=updates \-\-repoid=extras\fP - .IP "Sync all packages from the 'updates' repo to the \fBrepos\fP directory:" --\fB reposync -p repos --repoid=updates\fP -+\fB reposync \-p repos \-\-repoid=updates\fP -+.IP "Sync all packages from the 'updates' repo to the \fBrepos\fP directory excluding x86_64 arch. Edit \fI/etc/yum.conf\fR adding option \fBexclude=*.x86_64\fR. Then: -+\fBreposync \-p repos \-\-repoid=updates\fP - .SH "FILES" - \fBreposync\fP uses the yum libraries for retrieving information and - packages. If no configuration file is specified, the default yum -diff --git a/docs/repotrack.1 b/docs/repotrack.1 -new file mode 100644 -index 0000000..6b46ed0 ---- /dev/null -+++ b/docs/repotrack.1 -@@ -0,0 +1,44 @@ -+.\" repotrack -+.TH "repotrack" "1" "13 January 2013" "" "" -+.SH "NAME" -+repotrack \- track a package and its dependencies and download them -+.SH "SYNOPSIS" -+\fBrepotrack\fP [options] package1 [package2...] -+.SH "DESCRIPTION" -+.PP -+\fBrepotrack\fP is a program for keeping track of a particular package and its -+dependencies. It will download one or more packages and all dependencies. -+.PP -+.SH "OPTIONS" -+.IP "\fB\-h, \-\-help\fP" -+Display a help message, and then quit. -+.IP "\fB\-c CONFIG, \-\-config=CONFIG\fP" -+Config file to use (defaults to /etc/yum.conf). -+.IP "\fB\-a ARCH, \-\-arch=ARCH\fP" -+Act as if running the specified arch (default: current arch). -+.IP "\fB\-r REPOID, \-\-repoid=REPOID\fP" -+Specify repo ids to query, can be specified multiple times (default is -+all enabled). -+.IP "\fB\-t, \-\-tempcache\fP" -+Use a temp dir for storing/accessing yum-cache. -+.IP "\fB\-p DESTDIR, \-\-download_path=DESTDIR\fP" -+Path to download packages to. -+.IP "\fB\-u, \-\-urls\fP" -+Instead of downloading RPMs, list the URLs that would be downloaded. -+.IP "\fB\-n, \-\-newest\fP" -+Toggle downloading only the newest packages (defaults to newest-only). -+.IP "\fB\-q, \-\-quiet\fP" -+Output as little information as possible. -+ -+.PP -+.SH "SEE ALSO" -+.nf -+.I yum.conf (5) -+http://yum.baseurl.org/ -+.fi -+ -+.PP -+.SH "AUTHORS" -+.nf -+See the Authors file included with this program. -+.fi -diff --git a/docs/show-changed-rco.1 b/docs/show-changed-rco.1 -index 3e3b62c..a88c942 100644 ---- a/docs/show-changed-rco.1 -+++ b/docs/show-changed-rco.1 -@@ -1,17 +1,17 @@ - .\" show-changed-rco - .TH "show-installed" "1" "30 March 2011" "James Antill" "" - .SH "NAME" --show\-changed-\-rco -+show\-changed\-rco \- show changes in an RPM package - .SH "SYNOPSIS" --\fBshow\-changed-\-rco\fP [options] -+\fBshow\-changed\-rco\fP [options] - .SH "DESCRIPTION" - .PP --\fBshow\-changed-\-rco\fP gives a compact description of the changes to a -+\fBshow\-changed\-rco\fP gives a compact description of the changes to a - packages Requires, Conflicts and Obsoletes data from the installed (or old) to - a specified rpm file. - .SH OPTIONS - .TP --.IP \-h, \-\-help -+.IP "\fB\-h, \-\-help\fP" - show this help message and exit - .IP "\fB\-C, \-\-cache\fP" - Tells repoquery to run entirely from YUM cache - does not download any metadata -@@ -22,7 +22,7 @@ Use alternative config file (default is /etc/yum.conf). - - .IP "\fB\-\-repoid=\fP" - Specify which repository to query. Using this option disables all repositories --not explicitly enabled with --repoid option (can be used multiple times). By -+not explicitly enabled with \-\-repoid option (can be used multiple times). By - default repoquery uses whatever repositories are enabled in YUM configuration. - .IP "\fB\-\-enablerepo=\fP" - In addition to the default set, query the given additional repository, even if -@@ -34,13 +34,13 @@ configuration. Can be used multiple times. - Specify a path or url to a repository (same path as in a baseurl) to add to - the repositories for this query. This option can be used multiple times. If - you want to view only the pkgs from this repository combine this with ----repoid. The repoid for the repository is specified by . -+\-\-repoid. The repoid for the repository is specified by . - --.IP "\fB\-\-old-packages=\fP" -+.IP "\fB\-\-old\-packages=\fP" - Explicitly list the valid old packages to match the new packages against. --.IP "\fB\-\-ignore-arch\fP" -+.IP "\fB\-\-ignore\-arch\fP" - Ignore arch. so you can compare foo-2.i686 to foo-1.x86_64. --.IP "\fB\-\-skip-new\fP" -+.IP "\fB\-\-skip\-new\fP" - Only give output for packages which we've found an old package for. - - .PP -diff --git a/docs/show-installed.1 b/docs/show-installed.1 -index 7072b63..0907ea2 100644 ---- a/docs/show-installed.1 -+++ b/docs/show-installed.1 -@@ -1,7 +1,7 @@ - .\" show-installed - .TH "show-installed" "1" "21 October 2010" "Florian Festi" "" - .SH "NAME" --show\-installed -+show\-installed \- show installed RPM packages and descriptions - .SH "SYNOPSIS" - \fBshow\-installed\fP [options] - .SH "DESCRIPTION" -@@ -16,10 +16,10 @@ show this help message and exit - yum, kickstart or human; yum gives the result as a yum command line; kickstart the content of a %packages section; "human" readable is default. - .TP - .B \-i INPUT, \-\-input=INPUT --File to read the package list from instead of using the rpmdb. \- for stdin. The file must contain package names only separated by white space (including newlines). rpm \-qa \-\-qf='%{name}\\n' produces proper output. -+File to read the package list from instead of using the rpmdb. \- for stdin. The file must contain package names only separated by white space (including newlines). rpm \-qa \-\-qf=\(aq%{name}\\n\(aq produces proper output. - .TP - .B \-o OUTPUT, \-\-output=OUTPUT --File to write the result to. Stdout is used if option is omited. -+File to write the result to. Stdout is used if option is omitted. - .TP - .B \-q, \-\-quiet - Do not show warnings. -diff --git a/docs/verifytree.1 b/docs/verifytree.1 -new file mode 100644 -index 0000000..1389e0f ---- /dev/null -+++ b/docs/verifytree.1 -@@ -0,0 +1,33 @@ -+.\" verifytree -+.TH "verifytree" "1" "13 January 2013" "" "" -+.SH "NAME" -+verifytree \- verify that a local yum repository is consistent -+.SH "SYNOPSIS" -+\fBverifytree\fP [options] directory -+.SH "DESCRIPTION" -+.PP -+\fBverifytree\fP is a program that verifies whether a local yum repository is -+consistent. -+.PP -+.SH "OPTIONS" -+.IP "\fB\-h, \-\-help\fP" -+Display a help message, and then quit. -+.IP "\fB\-a, \-\-checkall\fP" -+Check all packages in the repository. -+.IP "\fB\-t TESTOPIA, \-\-testopia=TESTOPIA\fP" -+Report results to the given testopia run number. -+.IP "\fB\-r, \-\-treeinfo\fP" -+Check the checksums of listed files in a .treeinfo file, if available. -+ -+.PP -+.SH "SEE ALSO" -+.nf -+.I yum.conf (5) -+http://yum.baseurl.org/ -+.fi -+ -+.PP -+.SH "AUTHORS" -+.nf -+See the Authors file included with this program. -+.fi -diff --git a/docs/yum-aliases.1 b/docs/yum-aliases.1 -index c0f148d..62fae3e 100644 ---- a/docs/yum-aliases.1 -+++ b/docs/yum-aliases.1 -@@ -26,9 +26,9 @@ last form creates a new alias. - .PP - .SH Explanation of alias to final result conversion - .PP --When you type an aliased command, like "yum --disableexcludes UPT lsu" using -+When you type an aliased command, like "yum \-\-disableexcludes UPT lsu" using - the default aliases, the yum-aliases plugin first takes the first "command", by --skiping over any options, and then looks up the result (in this case "UPT" is converted to "--enablerepo=updates-tesintg"). If there is a match, then it will -+skipping over any options, and then looks up the result (in this case "UPT" is converted to "\-\-enablerepo=updates-testing"). If there is a match, then it will - replace the aliased "command" in the argument list and try again (again - skipping over any options). By convention, in the default aliases list, alias - "commands" that are in all CAPS only add options so you can join together a -@@ -49,19 +49,19 @@ yum - .B alias - rm remove - .PP --To always add the --skip-broken --disableexcludes=all --obsoletes options to -+To always add the \-\-skip\-broken \-\-disableexcludes=all \-\-obsoletes options to - the update command (but leaving the upgrade option alone), you could use: - .IP - yum - .B alias --update \\update --skip-broken --disableexcludes=all --obsoletes -+update \\update \-\-skip\-broken \-\-disableexcludes=all \-\-obsoletes - .PP - To override the default "up" alias to use the above update command, and never - ask for confirmation, you could use: - .IP - yum - .B alias --up update -y -+up update \-y - .br - - -diff --git a/docs/yum-builddep.1 b/docs/yum-builddep.1 -index 4e6c1d7..6cad8a6 100644 ---- a/docs/yum-builddep.1 -+++ b/docs/yum-builddep.1 -@@ -1,7 +1,7 @@ - .\" yum-builddep - .TH "yum-builddep" "1" "17 July 2005 " "Panu Matilainen" "" - .SH "NAME" --yum-builddep -+yum-builddep \- install missing dependencies for building an RPM package - .SH "SYNOPSIS" - \fByum-builddep\fP package - .SH "DESCRIPTION" -@@ -9,7 +9,7 @@ yum-builddep - \fByum-builddep\fP is a program which installs the RPMs needed to build - the specified package. The source RPM for the specified package must - be available in a Yum repository (which will be automatically enabled, if it is --disabled) or it can be a local source RPM file. -+disabled) or it can be a local source RPM or a spec file. - .PP - .SH "EXAMPLES" - .IP "Download and install all the RPMs needed to build the kernel RPM:" -diff --git a/docs/yum-changelog.1 b/docs/yum-changelog.1 -index 64910dc..c7b5486 100644 ---- a/docs/yum-changelog.1 -+++ b/docs/yum-changelog.1 -@@ -14,12 +14,12 @@ is a Yum plugin for viewing package changelogs before/after updating. - yum will invoke - .BR yum-changelog(1) - plugin if the --.B --changelog -+.B \-\-changelog - option or the - .B changelog - command is used with yum. - .SH OPTIONS --.IP --changelog -+.IP \-\-changelog - Show changelog delta of updated packages - .SH COMMANDS - .IP changelog -@@ -53,7 +53,7 @@ changelog stats. 33 pkgs, 12 source pkgs, 1 changelog - .br - .br - # yum update ktechlab --.B --changelog -+.B \-\-changelog - .br - Loading "changelog" plugin - .br -diff --git a/docs/yum-complete-transaction.8 b/docs/yum-complete-transaction.8 -index 945eee8..965c0b1 100644 ---- a/docs/yum-complete-transaction.8 -+++ b/docs/yum-complete-transaction.8 -@@ -1,13 +1,13 @@ - .\" yum-complete-transaction - .TH "yum-complete-transaction" "8" "10 December 2007" "Seth Vidal" "" - .SH "NAME" --yum-complete-transaction -+yum-complete-transaction \- attempt to complete failed or aborted Yum transactions - .SH "SYNOPSIS" - \fByum-complete-transaction\fP [options] - .SH "GENERAL OPTIONS" - .IP "\fB\-h, \-\-help\fP" - Help; display a help message and then quit\&. --.IP "\fB\-\-cleanup-only\fP" -+.IP "\fB\-\-cleanup\-only\fP" - Only clean up only transaction journal files and exit\&. - - .SH "DESCRIPTION" -diff --git a/docs/yum-config-manager.1 b/docs/yum-config-manager.1 -new file mode 100644 -index 0000000..81b895b ---- /dev/null -+++ b/docs/yum-config-manager.1 -@@ -0,0 +1,39 @@ -+.\" yum-config-manager -+.TH "yum-config-manager" "1" "13 January 2013" "" "" -+.SH "NAME" -+yum-config-manager \- manage yum configuration options and yum repositories -+.SH "SYNOPSIS" -+\fByum-config-manager\fP [options] -+.SH "DESCRIPTION" -+.PP -+\fByum-config-manager\fP is a program that can manage main yum configuration -+options, toggle which repositories are enabled or disabled, and add new -+repositories. -+.PP -+.SH "OPTIONS" -+.IP "\fB\-h, \-\-help\fP" -+Display a help message, and then quit. -+.IP "\fB\-\-save\fP" -+Save the current options (useful with \-\-setopt). -+.IP "\fB\-\-enable\fP" -+Enable the specified repos (automatically saves). -+.IP "\fB\-\-disable\fP" -+Disable the specified repos (automatically saves). -+.IP "\fB\-\-add\-repo=ADDREPO\fP" -+Add (and enable) the repo from the specified file or url. -+.SH "ADDITIONAL OPTIONS" -+Yum-config-manager inherits all other options from yum. See the yum(8) -+man page for more information. -+ -+.PP -+.SH "SEE ALSO" -+.nf -+.I yum.conf (5) -+http://yum.baseurl.org/ -+.fi -+ -+.PP -+.SH "AUTHORS" -+.nf -+See the Authors file included with this program. -+.fi -diff --git a/docs/yum-copr.8 b/docs/yum-copr.8 -new file mode 100644 -index 0000000..11afc83 ---- /dev/null -+++ b/docs/yum-copr.8 -@@ -0,0 +1,120 @@ -+.\" Man page generated from reStructuredText. -+. -+.TH "YUM-COPR" "8" "July 29, 2014" "0.1.1" "yum-plugin-copr" -+.SH NAME -+yum-plugin-copr \- YUM copr Plugin -+. -+.nr rst2man-indent-level 0 -+. -+.de1 rstReportMargin -+\\$1 \\n[an-margin] -+level \\n[rst2man-indent-level] -+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] -+- -+\\n[rst2man-indent0] -+\\n[rst2man-indent1] -+\\n[rst2man-indent2] -+.. -+.de1 INDENT -+.\" .rstReportMargin pre: -+. RS \\$1 -+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] -+. nr rst2man-indent-level +1 -+.\" .rstReportMargin post: -+.. -+.de UNINDENT -+. RE -+.\" indent \\n[an-margin] -+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] -+.nr rst2man-indent-level -1 -+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] -+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u -+.. -+. -+.nr rst2man-indent-level 0 -+. -+.de1 rstReportMargin -+\\$1 \\n[an-margin] -+level \\n[rst2man-indent-level] -+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] -+- -+\\n[rst2man-indent0] -+\\n[rst2man-indent1] -+\\n[rst2man-indent2] -+.. -+.de1 INDENT -+.\" .rstReportMargin pre: -+. RS \\$1 -+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] -+. nr rst2man-indent-level +1 -+.\" .rstReportMargin post: -+.. -+.de UNINDENT -+. RE -+.\" indent \\n[an-margin] -+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] -+.nr rst2man-indent-level -1 -+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] -+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u -+.. -+.sp -+Work with Copr & Playground repositories on the local system. -+.INDENT 0.0 -+.IP \(bu 2 -+The \fBcopr\fP command is used to add or remove Copr repositories to the local system -+.IP \(bu 2 -+The \fBplayground\fP is used to enable or disable the Playground repository -+.UNINDENT -+.SH SYNOPSIS -+.sp -+\fByum copr [enable|disable|list|search] \fP -+.sp -+\fByum playground [enable|disable|upgrade]\fP -+.SH ARGUMENTS (COPR) -+.INDENT 0.0 -+.TP -+.B \fBenable name/project [chroot]\fP -+Enable the \fBname/project\fP Copr repository with the optional \fBchroot\fP\&. -+.TP -+.B \fBdisable name/project\fP -+Disable the \fBname/project\fP Copr repository. -+.TP -+.B \fBlist name\fP -+List available Copr repositories for a given \fBname\fP\&. -+.TP -+.B \fBsearch project\fP -+Search for a given \fBproject\fP\&. -+.UNINDENT -+.SH ARGUMENTS (PLAYGROUND) -+.INDENT 0.0 -+.TP -+.B \fBenable\fP -+Enable the Playground repository. -+.TP -+.B \fBdisable\fP -+Disable the Playground repository. -+.TP -+.B \fBupgrade\fP -+Upgrade the Playground repository settings (same as \fBdisable\fP and then \fBenable\fP). -+.UNINDENT -+.SH EXAMPLES -+.INDENT 0.0 -+.TP -+.B \fBcopr enable rhscl/perl516 epel\-6\-x86_64\fP -+Enable the \fBrhscl/perl516\fP Copr repository, using the \fBepel\-6\-x86_64\fP chroot. -+.TP -+.B \fBcopr disable rhscl/perl516\fP -+Disable the \fBrhscl/perl516\fP Copr repository -+.TP -+.B \fBcopr list rita\fP -+List available Copr projects for user \fBrita\fP\&. -+.TP -+.B \fBcopr search tests\fP -+Search for Copr projects named \fBtests\fP\&. -+.UNINDENT -+.SH AUTHOR -+See AUTHORS in the Core DNF Plugins distribution -+.SH COPYRIGHT -+2014, Red Hat, Licensed under GPLv2+ -+.\" Generated by docutils manpage writer. -+. -diff --git a/docs/yum-debug-dump.1 b/docs/yum-debug-dump.1 -index 0e65a07..3f1e2e5 100644 ---- a/docs/yum-debug-dump.1 -+++ b/docs/yum-debug-dump.1 -@@ -1,7 +1,7 @@ - .\" yum-debug-dump - .TH "yum-debug-dump" "1" "28 April 2008" "Seth Vidal" "" - .SH "NAME" --yum-debug-dump -+yum-debug-dump \- write system RPM configuration to a debug-dump file - .SH "SYNOPSIS" - \fByum-debug-dump\fP - .SH "DESCRIPTION" -@@ -10,11 +10,15 @@ yum-debug-dump - lot of information useful to developers trying to debug a problem. - .PP - By default it will output a file to the current working directory named --yum_debug_dump.txt.gz. This file contains no private information but does -+yum_debug_dump--