Hello community,
here is the log from the commit of package dnf-plugins-core for
openSUSE:Factory checked in at 2020-02-27 16:57:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dnf-plugins-core (Old)
and /work/SRC/openSUSE:Factory/.dnf-plugins-core.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dnf-plugins-core"
Thu Feb 27 16:57:45 2020 rev:12 rq:779945 version:4.0.14
Changes:
--------
--- /work/SRC/openSUSE:Factory/dnf-plugins-core/dnf-plugins-core.changes
2020-01-19 20:58:35.864086815 +0100
+++
/work/SRC/openSUSE:Factory/.dnf-plugins-core.new.26092/dnf-plugins-core.changes
2020-02-27 16:57:46.858851981 +0100
@@ -1,0 +2,9 @@
+Thu Feb 27 14:17:50 UTC 2020 - Neal Gompa <[email protected]>
+
+- Update to version 4.0.14
+ + Fix conflict for dnf download --resolve (rh#1787908)
+ + config-manager calls parser error when without options (rh#1782822)
+ + Update reposync.py with --norepopath option
+ + Fix: don't open stdin if versionlock is missing (rh#1785563)
+
+-------------------------------------------------------------------
Old:
----
dnf-plugins-core-4.0.13.tar.gz
New:
----
dnf-plugins-core-4.0.14.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dnf-plugins-core.spec ++++++
--- /var/tmp/diff_new_pack.NAWT7T/_old 2020-02-27 16:57:48.778855190 +0100
+++ /var/tmp/diff_new_pack.NAWT7T/_new 2020-02-27 16:57:48.778855190 +0100
@@ -57,7 +57,7 @@
#global prerel rc1
Name: dnf-plugins-core
-Version: 4.0.13
+Version: 4.0.14
Release: 0
Summary: Core Plugins for DNF
License: GPL-2.0+
++++++ dnf-plugins-core-4.0.13.tar.gz -> dnf-plugins-core-4.0.14.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/dnf-plugins-core-4.0.13/dnf-plugins-core.spec
new/dnf-plugins-core-4.0.14/dnf-plugins-core.spec
--- old/dnf-plugins-core-4.0.13/dnf-plugins-core.spec 2020-01-15
10:53:42.000000000 +0100
+++ new/dnf-plugins-core-4.0.14/dnf-plugins-core.spec 2020-02-24
15:33:41.000000000 +0100
@@ -31,7 +31,7 @@
%endif
Name: dnf-plugins-core
-Version: 4.0.13
+Version: 4.0.14
Release: 1%{?dist}
Summary: Core Plugins for DNF
License: GPLv2+
@@ -740,6 +740,12 @@
%endif
%changelog
+* Mon Feb 24 2020 Aleš Matěj <[email protected]> - 4.0.14-1
+- Fix conflict for dnf download --resolve (RhBug:1787908)
+- config-manager calls parser error when without options (RhBug:1782822)
+- Update reposync.py with --norepopath option
+- Fix: don't open stdin if versionlock is missing (RhBug:1785563)
+
* Wed Jan 15 2020 Aleš Matěj <[email protected]> - 4.0.13-1
- Fix: config_manager respect config file location during save
- Redesign reposync --latest for modular system (RhBug:1775434)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/dnf-plugins-core-4.0.13/doc/release_notes.rst
new/dnf-plugins-core-4.0.14/doc/release_notes.rst
--- old/dnf-plugins-core-4.0.13/doc/release_notes.rst 2020-01-15
10:53:42.000000000 +0100
+++ new/dnf-plugins-core-4.0.14/doc/release_notes.rst 2020-02-24
15:33:41.000000000 +0100
@@ -22,6 +22,21 @@
.. contents::
====================
+4.0.14 Release Notes
+====================
+
+- Fix conflict for dnf download --resolve (RhBug:1787908)
+- config-manager calls parser error when without options (RhBug:1782822)
+- Update reposync.py with --norepopath option
+- Fix: don't open stdin if versionlock is missing (RhBug:1785563)
+
+Bugs fixed in 4.0.14:
+
+* :rhbug:`1787908`
+* :rhbug:`1782822`
+* :rhbug:`1785563`
+
+====================
4.0.13 Release Notes
====================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/dnf-plugins-core-4.0.13/doc/reposync.rst
new/dnf-plugins-core-4.0.14/doc/reposync.rst
--- old/dnf-plugins-core-4.0.13/doc/reposync.rst 2020-01-15
10:53:42.000000000 +0100
+++ new/dnf-plugins-core-4.0.14/doc/reposync.rst 2020-02-24
15:33:41.000000000 +0100
@@ -41,6 +41,9 @@
``-p <download-path>, --download-path=<download-path>``
Root path under which the downloaded repositories are stored, relative to
the current working directory. Defaults to the current working directory. Every
downloaded repository has a subdirectory named after its ID under this path.
+
+``--norepopath``
+ Don't add the reponame to the download path. Can only be used when syncing
a single repository (default is to add the reponame).
``--download-metadata``
Download all repository metadata. Downloaded copy is instantly usable as a
repository, no need to run createrepo_c on it.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/dnf-plugins-core-4.0.13/doc/summaries_cache
new/dnf-plugins-core-4.0.14/doc/summaries_cache
--- old/dnf-plugins-core-4.0.13/doc/summaries_cache 2020-01-15
10:53:42.000000000 +0100
+++ new/dnf-plugins-core-4.0.14/doc/summaries_cache 2020-02-24
15:33:41.000000000 +0100
@@ -538,5 +538,17 @@
[
1774103,
"The '--delete' option when used with reposync command deletes the
packages immediately after download."
+ ],
+ [
+ 1787908,
+ "dnf treats identical package in two repositories (testing/stable) as
conflicting request"
+ ],
+ [
+ 1782822,
+ "dnf config-manager prints nothing and exits with 0"
+ ],
+ [
+ 1785563,
+ "When using versionlock with -q option ALL outputs are dismissed"
]
]
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/dnf-plugins-core-4.0.13/plugins/config_manager.py
new/dnf-plugins-core-4.0.14/plugins/config_manager.py
--- old/dnf-plugins-core-4.0.13/plugins/config_manager.py 2020-01-15
10:53:42.000000000 +0100
+++ new/dnf-plugins-core-4.0.14/plugins/config_manager.py 2020-02-24
15:33:41.000000000 +0100
@@ -60,6 +60,19 @@
demands = self.cli.demands
demands.available_repos = True
+ # if no argument was passed then error
+ if (not (self.opts.add_repo != [] or
+ self.opts.save or
+ self.opts.dump or
+ self.opts.dump_variables or
+ self.opts.set_disabled or
+ self.opts.set_enabled) ):
+ self.cli.optparser.error(_("one of the following arguments is
required: {}")
+ .format(' '.join([
+ "--save", "--add-repo",
+ "--dump", "--dump-variables",
+ "--enable", "--disable"])))
+
if (self.opts.save or self.opts.set_enabled or
self.opts.set_disabled or self.opts.add_repo):
demands.root_user = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/dnf-plugins-core-4.0.13/plugins/copr.py
new/dnf-plugins-core-4.0.14/plugins/copr.py
--- old/dnf-plugins-core-4.0.13/plugins/copr.py 2020-01-15 10:53:42.000000000
+0100
+++ new/dnf-plugins-core-4.0.14/plugins/copr.py 2020-02-24 15:33:41.000000000
+0100
@@ -217,7 +217,7 @@
try:
chroot = self.opts.arg[1]
except IndexError:
- chroot = self._guess_chroot(self.chroot_config)
+ chroot = self._guess_chroot()
# commands without defined copr_username/copr_projectname
if subcommand == "search":
@@ -393,24 +393,23 @@
raise dnf.exceptions.Error(
_('This command has to be run under the root user.'))
- @staticmethod
- def _guess_chroot(chroot_config):
+ def _guess_chroot(self):
""" Guess which chroot is equivalent to this machine """
# FIXME Copr should generate non-specific arch repo
- dist = chroot_config
+ dist = self.chroot_config
if dist is None or (dist[0] is False) or (dist[1] is False):
dist = linux_distribution()
+ # Get distribution architecture
+ distarch = self.base.conf.substitutions['basearch']
if "Fedora" in dist:
- # x86_64 because repo-file is same for all arch
- # ($basearch is used)
if "Rawhide" in dist:
- chroot = ("fedora-rawhide-x86_64")
+ chroot = ("fedora-rawhide-" + distarch)
# workaround for enabling repos in Rawhide when VERSION in
os-release
# contains a name other than Rawhide
elif "rawhide" in
os_release_attr("redhat_support_product_version"):
- chroot = ("fedora-rawhide-x86_64")
+ chroot = ("fedora-rawhide-" + distarch)
else:
- chroot = ("fedora-{}-x86_64".format(dist[1]))
+ chroot = ("fedora-{0}-{1}".format(dist[1], distarch))
elif "Mageia" in dist:
# Get distribution architecture (Mageia does not use $basearch)
distarch = rpm.expandMacro("%{distro_arch}")
@@ -433,7 +432,7 @@
def _download_repo(self, project_name, repo_filename, chroot=None):
if chroot is None:
- chroot = self._guess_chroot(self.chroot_config)
+ chroot = self._guess_chroot()
short_chroot = '-'.join(chroot.split('-')[:2])
arch = chroot.split('-')[2]
api_path =
"/coprs/{0}/repo/{1}/dnf.repo?arch={2}".format(project_name, short_chroot, arch)
@@ -610,7 +609,7 @@
def run(self):
subcommand = self.opts.subcommand[0]
- chroot = self._guess_chroot(self.chroot_config)
+ chroot = self._guess_chroot()
if subcommand == "enable":
self._cmd_enable(chroot)
logger.info(_("Playground repositories successfully enabled."))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/dnf-plugins-core-4.0.13/plugins/download.py
new/dnf-plugins-core-4.0.14/plugins/download.py
--- old/dnf-plugins-core-4.0.13/plugins/download.py 2020-01-15
10:53:42.000000000 +0100
+++ new/dnf-plugins-core-4.0.14/plugins/download.py 2020-02-24
15:33:41.000000000 +0100
@@ -249,21 +249,20 @@
def _get_packages_with_deps(self, pkg_specs, source=False):
"""Get packages matching pkg_specs and the deps."""
pkgs = self._get_packages(pkg_specs)
- goal = hawkey.Goal(self.base.sack)
+ pkg_set = set(pkgs)
for pkg in pkgs:
+ goal = hawkey.Goal(self.base.sack)
goal.install(pkg)
- rc = goal.run()
- if rc:
- new_pkgs = goal.list_installs() + goal.list_upgrades()
- for pkg in pkgs:
- if pkg not in new_pkgs:
- new_pkgs += [pkg]
- return new_pkgs
- else:
- msg = [_('Error in resolve of packages:')]
- logger.warning("\n ".join(msg + [str(pkg) for pkg in pkgs]))
-
logger.warning(dnf.util._format_resolve_problems(goal.problem_rules()))
- return []
+ rc = goal.run()
+ if rc:
+ pkg_set.update(goal.list_installs())
+ pkg_set.update(goal.list_upgrades())
+ else:
+ msg = [_('Error in resolve of packages:')]
+ logger.warning("\n ".join(msg + [str(pkg) for pkg in pkgs]))
+
logger.warning(dnf.util._format_resolve_problems(goal.problem_rules()))
+ return []
+ return pkg_set
@staticmethod
def _get_source_packages(pkgs):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/dnf-plugins-core-4.0.13/plugins/reposync.py
new/dnf-plugins-core-4.0.14/plugins/reposync.py
--- old/dnf-plugins-core-4.0.13/plugins/reposync.py 2020-01-15
10:53:42.000000000 +0100
+++ new/dnf-plugins-core-4.0.14/plugins/reposync.py 2020-02-24
15:33:41.000000000 +0100
@@ -71,6 +71,8 @@
help=_('download only newest packages per-repo'))
parser.add_argument('-p', '--download-path', default='./',
help=_('where to store downloaded repositories'))
+ parser.add_argument('--norepopath', default=False, action='store_true',
+ help=_("Don't add the reponame to the download
path."))
parser.add_argument('--metadata-path',
help=_('where to store downloaded repository
metadata. '
'Defaults to the value of
--download-path.'))
@@ -102,6 +104,10 @@
if self.opts.source:
repos.enable_source_repos()
+ if len(list(repos.iter_enabled())) > 1 and self.opts.norepopath:
+ raise dnf.cli.CliError(
+ _("Can't use --norepopath with multiple repositories"))
+
for repo in repos.iter_enabled():
repo._repo.expire()
repo.deltarpm = False
@@ -148,7 +154,8 @@
self.delete_old_local_packages(repo, pkglist)
def repo_target(self, repo):
- return _pkgdir(self.opts.destdir or self.opts.download_path, repo.id)
+ return _pkgdir(self.opts.destdir or self.opts.download_path,
+ repo.id if not self.opts.norepopath else '')
def metadata_target(self, repo):
if self.opts.metadata_path:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/dnf-plugins-core-4.0.13/plugins/versionlock.py
new/dnf-plugins-core-4.0.14/plugins/versionlock.py
--- old/dnf-plugins-core-4.0.13/plugins/versionlock.py 2020-01-15
10:53:42.000000000 +0100
+++ new/dnf-plugins-core-4.0.14/plugins/versionlock.py 2020-02-24
15:33:41.000000000 +0100
@@ -77,9 +77,6 @@
logger.debug(NO_VERSIONLOCK)
return
- if not locklist_fn:
- raise dnf.exceptions.Error(NO_LOCKLIST)
-
excludes_query = self.base.sack.query().filter(empty=True)
locked_query = self.base.sack.query().filter(empty=True)
locked_names = set()
@@ -179,12 +176,16 @@
logger.info("%s %s", EXISTING_SPEC, entry)
elif cmd == 'list':
for pat in _read_locklist():
- logger.info(pat)
+ print(pat)
elif cmd == 'clear':
+ if not locklist_fn:
+ raise dnf.exceptions.Error(NO_LOCKLIST)
with open(locklist_fn, 'w') as f:
# open in write mode truncates file
pass
elif cmd == 'delete':
+ if not locklist_fn:
+ raise dnf.exceptions.Error(NO_LOCKLIST)
dirname = os.path.dirname(locklist_fn)
(out, tmpfilename) = tempfile.mkstemp(dir=dirname, suffix='.tmp')
locked_specs = _read_locklist()
@@ -192,7 +193,7 @@
with os.fdopen(out, 'w', -1) as out:
for ent in locked_specs:
if _match(ent, self.opts.package):
- logger.info("%s %s", DELETING_SPEC, ent)
+ print("%s %s" % (DELETING_SPEC, ent))
count += 1
continue
out.write(ent)
@@ -207,6 +208,8 @@
def _read_locklist():
locklist = []
try:
+ if not locklist_fn:
+ raise dnf.exceptions.Error(NO_LOCKLIST)
with open(locklist_fn) as llfile:
for line in llfile.readlines():
if line.startswith('#') or line.strip() == '':
@@ -243,18 +246,22 @@
pkgs = subj.get_best_query(base.sack, with_nevra=True,
with_provides=False,
with_filenames=False)
if not pkgs:
- logger.info("%s %s", NOTFOUND_SPEC, pat)
+ print("%s %s" % (NOTFOUND_SPEC, pat))
for pkg in pkgs:
specs.add(pkgtup2spec(*pkg.pkgtup))
if specs:
- with open(locklist_fn, 'a') as f:
- f.write(comment)
- for spec in specs:
- logger.info("%s %s", info, spec)
- f.write("%s%s\n" % (prefix, spec))
-
+ try:
+ if not locklist_fn:
+ raise dnf.exceptions.Error(NO_LOCKLIST)
+ with open(locklist_fn, 'a') as f:
+ f.write(comment)
+ for spec in specs:
+ print("%s %s" % (info, spec))
+ f.write("%s%s\n" % (prefix, spec))
+ except IOError as e:
+ raise dnf.exceptions.Error(NOT_READABLE % e)
def _match(ent, patterns):
ent = ent.lstrip('!')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/dnf-plugins-core-4.0.13/rel-eng/packages/dnf-plugins-core
new/dnf-plugins-core-4.0.14/rel-eng/packages/dnf-plugins-core
--- old/dnf-plugins-core-4.0.13/rel-eng/packages/dnf-plugins-core
2020-01-15 10:53:42.000000000 +0100
+++ new/dnf-plugins-core-4.0.14/rel-eng/packages/dnf-plugins-core
2020-02-24 15:33:41.000000000 +0100
@@ -1 +1 @@
-4.0.13-1 ./
+4.0.14-1 ./