From 2a0a3f644cda295c2b354abf1422e7a4b7949b22 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: May 17 2022 10:28:35 +0000 Subject: import dnf-4.10.0-5.el9_0 --- diff --git a/.dnf.metadata b/.dnf.metadata new file mode 100644 index 0000000..1976ca8 --- /dev/null +++ b/.dnf.metadata @@ -0,0 +1 @@ +cad8de377a20b5cf6668eb4c4150248bfaa1ed20 SOURCES/dnf-4.10.0.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..133a3d1 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/dnf-4.10.0.tar.gz diff --git a/SOURCES/0001-doc-Improve-description-of-multilib_policyall-RhBug19966811995630.patch b/SOURCES/0001-doc-Improve-description-of-multilib_policyall-RhBug19966811995630.patch new file mode 100644 index 0000000..0d1b07a --- /dev/null +++ b/SOURCES/0001-doc-Improve-description-of-multilib_policyall-RhBug19966811995630.patch @@ -0,0 +1,29 @@ +From 39e759ae6afb046cf6d60fb91b3ee208cb150a2f Mon Sep 17 00:00:00 2001 +From: Jaroslav Mracek +Date: Mon, 6 Sep 2021 12:40:59 +0200 +Subject: [PATCH] [doc] Improve description of multilib_policy=all (RhBug:1996681,1995630) + +https://bugzilla.redhat.com/show_bug.cgi?id=1996681 +https://bugzilla.redhat.com/show_bug.cgi?id=1995630 +--- + doc/conf_ref.rst | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/doc/conf_ref.rst b/doc/conf_ref.rst +index fa310e3..60afc86 100644 +--- a/doc/conf_ref.rst ++++ b/doc/conf_ref.rst +@@ -403,7 +403,9 @@ configuration file by your distribution to override the DNF defaults. + ``multilib_policy`` + :ref:`string ` + +- Controls how multilib packages are treated during install operations. Can either be ``"best"`` (the default) for the depsolver to prefer packages which best match the system's architecture, or ``"all"`` to install all available packages with compatible architectures. ++ Controls how multilib packages are treated during install operations. Can either be ``"best"`` (the default) for ++ the depsolver to prefer packages which best match the system's architecture, or ``"all"`` to install packages for ++ all available architectures. + + .. _obsoletes_conf_option-label: + +-- +libgit2 1.1.0 + diff --git a/SOURCES/0002-Fix-Python-dnf-API-does-not-respect-cacheonly-RhBug1862970.patch b/SOURCES/0002-Fix-Python-dnf-API-does-not-respect-cacheonly-RhBug1862970.patch new file mode 100644 index 0000000..30c4395 --- /dev/null +++ b/SOURCES/0002-Fix-Python-dnf-API-does-not-respect-cacheonly-RhBug1862970.patch @@ -0,0 +1,33 @@ +From 9ce65d8575494887a08506583d9d4f05df404fac Mon Sep 17 00:00:00 2001 +From: Jaroslav Rohel +Date: Wed, 20 Oct 2021 09:20:03 +0200 +Subject: [PATCH] Fix: Python dnf API does not respect cacheonly (RhBug:1862970) + +`Repo` object has always been constructed with default synchronization +strategy. The configuration option `cacheonly` was ignored. DNF +application set synchronization strategy later in the `Cli` object +during processing demands. + +The fix takes into account the `cacheonly` option during the construction +of the `Repo` object. Synchronization strategy may still be overriden +during demand processing. +--- + dnf/repo.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dnf/repo.py b/dnf/repo.py +index bb42230..1822cf0 100644 +--- a/dnf/repo.py ++++ b/dnf/repo.py +@@ -434,7 +434,7 @@ class Repo(dnf.conf.RepoConf): + self._pkgdir = None + self._key_import = _NullKeyImport() + self.metadata = None # :api +- self._repo.setSyncStrategy(self.DEFAULT_SYNC) ++ self._repo.setSyncStrategy(SYNC_ONLY_CACHE if parent_conf and parent_conf.cacheonly else self.DEFAULT_SYNC) + if parent_conf: + self._repo.setSubstitutions(parent_conf.substitutions) + self._substitutions = dnf.conf.substitutions.Substitutions() +-- +libgit2 1.1.0 + diff --git a/SOURCES/0003-Documentation-API-notes-for-cacheonly.patch b/SOURCES/0003-Documentation-API-notes-for-cacheonly.patch new file mode 100644 index 0000000..6628678 --- /dev/null +++ b/SOURCES/0003-Documentation-API-notes-for-cacheonly.patch @@ -0,0 +1,26 @@ +From 5c598df3541c21d5c2758c42bd2eb0df8c74eddc Mon Sep 17 00:00:00 2001 +From: Jaroslav Rohel +Date: Fri, 5 Nov 2021 08:52:56 +0100 +Subject: [PATCH] Documentation: API notes for cacheonly + +--- + doc/conf_ref.rst | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/doc/conf_ref.rst b/doc/conf_ref.rst +index 60afc86..1a593a1 100644 +--- a/doc/conf_ref.rst ++++ b/doc/conf_ref.rst +@@ -137,6 +137,9 @@ configuration file by your distribution to override the DNF defaults. + If set to ``True`` DNF will run entirely from system cache, will not update + the cache and will use it even in case it is expired. Default is ``False``. + ++ API Notes: Must be set before repository objects are created. Plugins must set ++ this in the pre_config hook. Later changes are ignored. ++ + .. _check_config_file_age-label: + + ``check_config_file_age`` +-- +libgit2 1.1.0 + diff --git a/SOURCES/0004-Use-rpm.TransactionSet.dbCookie-to-determining-if-rp.patch b/SOURCES/0004-Use-rpm.TransactionSet.dbCookie-to-determining-if-rp.patch new file mode 100644 index 0000000..b5d94c9 --- /dev/null +++ b/SOURCES/0004-Use-rpm.TransactionSet.dbCookie-to-determining-if-rp.patch @@ -0,0 +1,169 @@ +From 087ad3d12ba307355dd66aba54faea97d227a3dd Mon Sep 17 00:00:00 2001 +From: zhanghaolian <65838930+iWhy98@users.noreply.github.com> +Date: Tue, 25 Jan 2022 15:41:16 +0800 +Subject: [PATCH 1/2] dnf:fix dnf mark error when history sqlite missing + +--- + dnf/cli/commands/mark.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dnf/cli/commands/mark.py b/dnf/cli/commands/mark.py +index ec16b738d..cb1f91c13 100644 +--- a/dnf/cli/commands/mark.py ++++ b/dnf/cli/commands/mark.py +@@ -89,7 +89,7 @@ class MarkCommand(commands.Command): + + old = self.base.history.last() + if old is None: +- rpmdb_version = self.sack._rpmdb_version() ++ rpmdb_version = self.base.sack._rpmdb_version() + else: + rpmdb_version = old.end_rpmdb_version + +-- +2.34.1 + + +From bee5b97ad159af019deda4de0d80d0011dba4f7a Mon Sep 17 00:00:00 2001 +From: Jaroslav Rohel +Date: Fri, 28 Jan 2022 16:53:50 +0100 +Subject: [PATCH 2/2] Use rpm.TransactionSet.dbCookie() to determining if rpmdb + has changed + +DNF was using private method `hawkey.Sack._rpmdb_version()` from libdnf. +The method computes SHA1 hash from sorted list of hashes stored in +the headers of the instaled packages. And it adds prefix of the number +of installed packages to the computed hash. The result was stored +to the history database and used to detect changes in the rpm database. + +The patch uses new oficial librpm API function +`rpm.TransactionSet.dbCookie()`. This is a cleaner solution. +It is also a step to remove the `._rpmdb_version()` method from libdnf. +It is an attempt to remove SHA1 calculations from libdnf. +Troubleshooting FIPS compatibility. + += changelog = +msg: Use rpm.TransactionSet.dbCookie() to determining if rpmdb has changed +type: bugfix +resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2043476 +--- + dnf/base.py | 6 +++--- + dnf/cli/commands/mark.py | 2 +- + dnf/cli/output.py | 2 +- + dnf/rpm/transaction.py | 16 ++++++++++++++++ + tests/test_sack.py | 6 ------ + 5 files changed, 21 insertions(+), 11 deletions(-) + +diff --git a/dnf/base.py b/dnf/base.py +index b0a536f7f..574e80f66 100644 +--- a/dnf/base.py ++++ b/dnf/base.py +@@ -907,7 +907,7 @@ class Base(object): + cmdline = ' '.join(self.cmds) + old = self.history.last() + if old is None: +- rpmdb_version = self.sack._rpmdb_version() ++ rpmdb_version = self._ts.dbCookie() + else: + rpmdb_version = old.end_rpmdb_version + +@@ -1046,7 +1046,7 @@ class Base(object): + using_pkgs_pats = list(self.conf.history_record_packages) + installed_query = self.sack.query().installed() + using_pkgs = installed_query.filter(name=using_pkgs_pats).run() +- rpmdbv = self.sack._rpmdb_version() ++ rpmdbv = self._ts.dbCookie() + lastdbv = self.history.last() + if lastdbv is not None: + lastdbv = lastdbv.end_rpmdb_version +@@ -1163,7 +1163,7 @@ class Base(object): + for tsi in transaction_items: + count = display_banner(tsi.pkg, count) + +- rpmdbv = rpmdb_sack._rpmdb_version() ++ rpmdbv = self._ts.dbCookie() + self.history.end(rpmdbv) + + timer() +diff --git a/dnf/cli/commands/mark.py b/dnf/cli/commands/mark.py +index cb1f91c13..36bf9d436 100644 +--- a/dnf/cli/commands/mark.py ++++ b/dnf/cli/commands/mark.py +@@ -89,7 +89,7 @@ class MarkCommand(commands.Command): + + old = self.base.history.last() + if old is None: +- rpmdb_version = self.base.sack._rpmdb_version() ++ rpmdb_version = self.base._ts.dbCookie() + else: + rpmdb_version = old.end_rpmdb_version + +diff --git a/dnf/cli/output.py b/dnf/cli/output.py +index a4e9f6c8e..ecf05c2b0 100644 +--- a/dnf/cli/output.py ++++ b/dnf/cli/output.py +@@ -1607,7 +1607,7 @@ Transaction Summary + if lastdbv is not None and trans.tid == lasttid: + # If this is the last transaction, is good and it doesn't + # match the current rpmdb ... then mark it as bad. +- rpmdbv = self.sack._rpmdb_version() ++ rpmdbv = self.base._ts.dbCookie() + trans.compare_rpmdbv(str(rpmdbv)) + lastdbv = None + +diff --git a/dnf/rpm/transaction.py b/dnf/rpm/transaction.py +index bcc2a7024..a11f36e7e 100644 +--- a/dnf/rpm/transaction.py ++++ b/dnf/rpm/transaction.py +@@ -12,8 +12,10 @@ + from __future__ import absolute_import + from __future__ import unicode_literals + from dnf.i18n import _ ++import logging + import rpm + ++_logger = logging.getLogger('dnf') + read_ts = None + ts = None + +@@ -61,6 +63,20 @@ class TransactionWrapper(object): + mi.pattern(tag, tp, pat) + return mi + ++ def dbCookie(self): ++ # dbCookie() does not support lazy opening of rpm database. ++ # The following line opens the database if it is not already open. ++ if self.ts.openDB() != 0: ++ _logger.error(_('The openDB() function connot open rpm database.')) ++ return '' ++ ++ cookie = self.ts.dbCookie() ++ if not cookie: ++ _logger.error(_('The dbCookie() function did not return cookie of rpm database.')) ++ return '' ++ ++ return cookie ++ + def __getattr__(self, attr): + if attr in self._methods: + return self.getMethod(attr) +diff --git a/tests/test_sack.py b/tests/test_sack.py +index 49a715924..2c6fe8e01 100644 +--- a/tests/test_sack.py ++++ b/tests/test_sack.py +@@ -32,12 +32,6 @@ class SackTest(tests.support.DnfBaseTestCase): + + REPOS = [] + +- def test_rpmdb_version(self): +- version = self.sack._rpmdb_version() +- self.assertIsNotNone(version) +- expected = "%s:%s" % (tests.support.TOTAL_RPMDB_COUNT, tests.support.RPMDB_CHECKSUM) +- self.assertEqual(version, expected) +- + def test_excludepkgs(self): + self.base.conf.excludepkgs = ['pepper'] + self.base._setup_excludes_includes() +-- +2.34.1 + diff --git a/SOURCES/0005-Update-translations-RhBug-2017347.patch b/SOURCES/0005-Update-translations-RhBug-2017347.patch new file mode 100644 index 0000000..e071bf5 --- /dev/null +++ b/SOURCES/0005-Update-translations-RhBug-2017347.patch @@ -0,0 +1,7726 @@ +From 8b7fb547e6938b91e5e158cfe21813bc59eff704 Mon Sep 17 00:00:00 2001 +From: Marek Blaha +Date: Mon, 21 Mar 2022 10:28:46 +0100 +Subject: [PATCH] Update translations (RhBug:2017347) + +--- + po/dnf.pot | 204 +++++++------ + po/fr.po | 513 ++++++++++++++++--------------- + po/ja.po | 867 ++++++++++++++++++++++++++++++---------------------- + po/ko.po | 590 ++++++++++++++++++++--------------- + po/zh_CN.po | 449 +++++++++++++++------------ + po/zh_TW.po | 358 ++++++++++++---------- + 6 files changed, 1669 insertions(+), 1312 deletions(-) + +diff --git a/po/dnf.pot b/po/dnf.pot +index d7612013..8d98a664 100644 +--- a/po/dnf.pot ++++ b/po/dnf.pot +@@ -8,7 +8,7 @@ msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2021-06-13 09:18-0400\n" ++"POT-Creation-Date: 2022-02-28 11:37+0100\n" + "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" + "Last-Translator: FULL NAME \n" + "Language-Team: LANGUAGE \n" +@@ -191,155 +191,155 @@ msgstr "" + msgid "Failed to add groups file for repository: %s - %s" + msgstr "" + +-#: dnf/base.py:904 ++#: dnf/base.py:922 + msgid "Running transaction check" + msgstr "" + +-#: dnf/base.py:912 ++#: dnf/base.py:930 + msgid "Error: transaction check vs depsolve:" + msgstr "" + +-#: dnf/base.py:918 ++#: dnf/base.py:936 + msgid "Transaction check succeeded." + msgstr "" + +-#: dnf/base.py:921 ++#: dnf/base.py:939 + msgid "Running transaction test" + msgstr "" + +-#: dnf/base.py:931 dnf/base.py:1082 ++#: dnf/base.py:949 dnf/base.py:1100 + msgid "RPM: {}" + msgstr "" + +-#: dnf/base.py:932 ++#: dnf/base.py:950 + msgid "Transaction test error:" + msgstr "" + +-#: dnf/base.py:943 ++#: dnf/base.py:961 + msgid "Transaction test succeeded." + msgstr "" + +-#: dnf/base.py:964 ++#: dnf/base.py:982 + msgid "Running transaction" + msgstr "" + +-#: dnf/base.py:1001 ++#: dnf/base.py:1019 + msgid "Disk Requirements:" + msgstr "" + +-#: dnf/base.py:1004 ++#: dnf/base.py:1022 + #, python-brace-format + msgid "At least {0}MB more space needed on the {1} filesystem." + msgid_plural "At least {0}MB more space needed on the {1} filesystem." + msgstr[0] "" + msgstr[1] "" + +-#: dnf/base.py:1011 ++#: dnf/base.py:1029 + msgid "Error Summary" + msgstr "" + +-#: dnf/base.py:1037 ++#: dnf/base.py:1055 + #, python-brace-format + msgid "RPMDB altered outside of {prog}." + msgstr "" + +-#: dnf/base.py:1083 dnf/base.py:1091 ++#: dnf/base.py:1101 dnf/base.py:1109 + msgid "Could not run transaction." + msgstr "" + +-#: dnf/base.py:1086 ++#: dnf/base.py:1104 + msgid "Transaction couldn't start:" + msgstr "" + +-#: dnf/base.py:1100 ++#: dnf/base.py:1118 + #, python-format + msgid "Failed to remove transaction file %s" + msgstr "" + +-#: dnf/base.py:1182 ++#: dnf/base.py:1200 + msgid "Some packages were not downloaded. Retrying." + msgstr "" + +-#: dnf/base.py:1212 ++#: dnf/base.py:1230 + #, python-format + msgid "Delta RPMs reduced %.1f MB of updates to %.1f MB (%.1f%% saved)" + msgstr "" + +-#: dnf/base.py:1216 ++#: dnf/base.py:1234 + #, python-format + msgid "" + "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%.1f%% wasted)" + msgstr "" + +-#: dnf/base.py:1258 ++#: dnf/base.py:1276 + msgid "Cannot add local packages, because transaction job already exists" + msgstr "" + +-#: dnf/base.py:1272 ++#: dnf/base.py:1290 + msgid "Could not open: {}" + msgstr "" + +-#: dnf/base.py:1310 ++#: dnf/base.py:1328 + #, python-format + msgid "Public key for %s is not installed" + msgstr "" + +-#: dnf/base.py:1314 ++#: dnf/base.py:1332 + #, python-format + msgid "Problem opening package %s" + msgstr "" + +-#: dnf/base.py:1322 ++#: dnf/base.py:1340 + #, python-format + msgid "Public key for %s is not trusted" + msgstr "" + +-#: dnf/base.py:1326 ++#: dnf/base.py:1344 + #, python-format + msgid "Package %s is not signed" + msgstr "" + +-#: dnf/base.py:1356 ++#: dnf/base.py:1374 + #, python-format + msgid "Cannot remove %s" + msgstr "" + +-#: dnf/base.py:1360 ++#: dnf/base.py:1378 + #, python-format + msgid "%s removed" + msgstr "" + +-#: dnf/base.py:1640 ++#: dnf/base.py:1658 + msgid "No match for group package \"{}\"" + msgstr "" + +-#: dnf/base.py:1726 ++#: dnf/base.py:1740 + #, python-format + msgid "Adding packages from group '%s': %s" + msgstr "" + +-#: dnf/base.py:1749 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 ++#: dnf/base.py:1763 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 + #: dnf/cli/commands/__init__.py:494 dnf/cli/commands/__init__.py:587 + #: dnf/cli/commands/__init__.py:636 dnf/cli/commands/install.py:80 + #: dnf/cli/commands/install.py:103 dnf/cli/commands/install.py:110 + msgid "Nothing to do." + msgstr "" + +-#: dnf/base.py:1767 ++#: dnf/base.py:1781 + msgid "No groups marked for removal." + msgstr "" + +-#: dnf/base.py:1801 ++#: dnf/base.py:1815 + msgid "No group marked for upgrade." + msgstr "" + +-#: dnf/base.py:2015 ++#: dnf/base.py:2029 + #, python-format + msgid "Package %s not installed, cannot downgrade it." + msgstr "" + +-#: dnf/base.py:2017 dnf/base.py:2036 dnf/base.py:2049 dnf/base.py:2076 +-#: dnf/base.py:2129 dnf/base.py:2137 dnf/base.py:2271 dnf/cli/cli.py:417 ++#: dnf/base.py:2031 dnf/base.py:2050 dnf/base.py:2063 dnf/base.py:2090 ++#: dnf/base.py:2143 dnf/base.py:2151 dnf/base.py:2285 dnf/cli/cli.py:417 + #: dnf/cli/commands/__init__.py:420 dnf/cli/commands/__init__.py:477 + #: dnf/cli/commands/__init__.py:581 dnf/cli/commands/__init__.py:628 + #: dnf/cli/commands/__init__.py:706 dnf/cli/commands/install.py:147 +@@ -349,127 +349,127 @@ msgstr "" + msgid "No match for argument: %s" + msgstr "" + +-#: dnf/base.py:2024 ++#: dnf/base.py:2038 + #, python-format + msgid "Package %s of lower version already installed, cannot downgrade it." + msgstr "" + +-#: dnf/base.py:2047 ++#: dnf/base.py:2061 + #, python-format + msgid "Package %s not installed, cannot reinstall it." + msgstr "" + +-#: dnf/base.py:2062 ++#: dnf/base.py:2076 + #, python-format + msgid "File %s is a source package and cannot be updated, ignoring." + msgstr "" + +-#: dnf/base.py:2073 ++#: dnf/base.py:2087 + #, python-format + msgid "Package %s not installed, cannot update it." + msgstr "" + +-#: dnf/base.py:2083 ++#: dnf/base.py:2097 + #, python-format + msgid "" + "The same or higher version of %s is already installed, cannot update it." + msgstr "" + +-#: dnf/base.py:2126 dnf/cli/commands/reinstall.py:81 ++#: dnf/base.py:2140 dnf/cli/commands/reinstall.py:81 + #, python-format + msgid "Package %s available, but not installed." + msgstr "" + +-#: dnf/base.py:2132 ++#: dnf/base.py:2146 + #, python-format + msgid "Package %s available, but installed for different architecture." + msgstr "" + +-#: dnf/base.py:2157 ++#: dnf/base.py:2171 + #, python-format + msgid "No package %s installed." + msgstr "" + +-#: dnf/base.py:2175 dnf/cli/commands/install.py:136 ++#: dnf/base.py:2189 dnf/cli/commands/install.py:136 + #: dnf/cli/commands/remove.py:133 + #, python-format + msgid "Not a valid form: %s" + msgstr "" + +-#: dnf/base.py:2190 dnf/cli/commands/__init__.py:676 ++#: dnf/base.py:2204 dnf/cli/commands/__init__.py:676 + #: dnf/cli/commands/remove.py:162 + msgid "No packages marked for removal." + msgstr "" + +-#: dnf/base.py:2278 dnf/cli/cli.py:428 ++#: dnf/base.py:2292 dnf/cli/cli.py:428 + #, python-format + msgid "Packages for argument %s available, but not installed." + msgstr "" + +-#: dnf/base.py:2283 ++#: dnf/base.py:2297 + #, python-format + msgid "Package %s of lowest version already installed, cannot downgrade it." + msgstr "" + +-#: dnf/base.py:2383 ++#: dnf/base.py:2397 + msgid "No security updates needed, but {} update available" + msgstr "" + +-#: dnf/base.py:2385 ++#: dnf/base.py:2399 + msgid "No security updates needed, but {} updates available" + msgstr "" + +-#: dnf/base.py:2389 ++#: dnf/base.py:2403 + msgid "No security updates needed for \"{}\", but {} update available" + msgstr "" + +-#: dnf/base.py:2391 ++#: dnf/base.py:2405 + msgid "No security updates needed for \"{}\", but {} updates available" + msgstr "" + + #. raise an exception, because po.repoid is not in self.repos +-#: dnf/base.py:2412 ++#: dnf/base.py:2426 + #, python-format + msgid "Unable to retrieve a key for a commandline package: %s" + msgstr "" + +-#: dnf/base.py:2420 ++#: dnf/base.py:2434 + #, python-format + msgid ". Failing package is: %s" + msgstr "" + +-#: dnf/base.py:2421 ++#: dnf/base.py:2435 + #, python-format + msgid "GPG Keys are configured as: %s" + msgstr "" + +-#: dnf/base.py:2433 ++#: dnf/base.py:2447 + #, python-format + msgid "GPG key at %s (0x%s) is already installed" + msgstr "" + +-#: dnf/base.py:2469 ++#: dnf/base.py:2483 + msgid "The key has been approved." + msgstr "" + +-#: dnf/base.py:2472 ++#: dnf/base.py:2486 + msgid "The key has been rejected." + msgstr "" + +-#: dnf/base.py:2505 ++#: dnf/base.py:2519 + #, python-format + msgid "Key import failed (code %d)" + msgstr "" + +-#: dnf/base.py:2507 ++#: dnf/base.py:2521 + msgid "Key imported successfully" + msgstr "" + +-#: dnf/base.py:2511 ++#: dnf/base.py:2525 + msgid "Didn't install any keys" + msgstr "" + +-#: dnf/base.py:2514 ++#: dnf/base.py:2528 + #, python-format + msgid "" + "The GPG keys listed for the \"%s\" repository are already installed but they " +@@ -477,49 +477,49 @@ msgid "" + "Check that the correct key URLs are configured for this repository." + msgstr "" + +-#: dnf/base.py:2525 ++#: dnf/base.py:2539 + msgid "Import of key(s) didn't help, wrong key(s)?" + msgstr "" + +-#: dnf/base.py:2578 ++#: dnf/base.py:2592 + msgid " * Maybe you meant: {}" + msgstr "" + +-#: dnf/base.py:2610 ++#: dnf/base.py:2624 + msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" + msgstr "" + +-#: dnf/base.py:2613 ++#: dnf/base.py:2627 + msgid "Some packages from local repository have incorrect checksum" + msgstr "" + +-#: dnf/base.py:2616 ++#: dnf/base.py:2630 + msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" + msgstr "" + +-#: dnf/base.py:2619 ++#: dnf/base.py:2633 + msgid "" + "Some packages have invalid cache, but cannot be downloaded due to \"--" + "cacheonly\" option" + msgstr "" + +-#: dnf/base.py:2637 dnf/base.py:2657 ++#: dnf/base.py:2651 dnf/base.py:2671 + msgid "No match for argument" + msgstr "" + +-#: dnf/base.py:2645 dnf/base.py:2665 ++#: dnf/base.py:2659 dnf/base.py:2679 + msgid "All matches were filtered out by exclude filtering for argument" + msgstr "" + +-#: dnf/base.py:2647 ++#: dnf/base.py:2661 + msgid "All matches were filtered out by modular filtering for argument" + msgstr "" + +-#: dnf/base.py:2663 ++#: dnf/base.py:2677 + msgid "All matches were installed from a different repository for argument" + msgstr "" + +-#: dnf/base.py:2710 ++#: dnf/base.py:2724 + #, python-format + msgid "Package %s is already installed." + msgstr "" +@@ -529,7 +529,7 @@ msgstr "" + msgid "Unexpected value of environment variable: DNF_DISABLE_ALIASES=%s" + msgstr "" + +-#: dnf/cli/aliases.py:105 dnf/conf/config.py:457 ++#: dnf/cli/aliases.py:105 dnf/conf/config.py:475 + #, python-format + msgid "Parsing file \"%s\" failed: %s" + msgstr "" +@@ -3354,10 +3354,6 @@ msgstr "" + msgid " State : %s" + msgstr "" + +-#: dnf/comps.py:104 +-msgid "skipping." +-msgstr "" +- + #: dnf/comps.py:196 dnf/comps.py:692 dnf/comps.py:706 + #, python-format + msgid "Module or Group '%s' is not installed." +@@ -3408,41 +3404,45 @@ msgstr "" + msgid "Invalid configuration value: %s=%s in %s; %s" + msgstr "" + +-#: dnf/conf/config.py:226 ++#: dnf/conf/config.py:194 ++msgid "Cannot set \"{}\" to \"{}\": {}" ++msgstr "" ++ ++#: dnf/conf/config.py:244 + msgid "Could not set cachedir: {}" + msgstr "" + +-#: dnf/conf/config.py:275 ++#: dnf/conf/config.py:293 + msgid "" + "Configuration file URL \"{}\" could not be downloaded:\n" + " {}" + msgstr "" + +-#: dnf/conf/config.py:355 dnf/conf/config.py:391 ++#: dnf/conf/config.py:373 dnf/conf/config.py:409 + #, python-format + msgid "Unknown configuration option: %s = %s" + msgstr "" + +-#: dnf/conf/config.py:372 ++#: dnf/conf/config.py:390 + #, python-format + msgid "Error parsing --setopt with key '%s', value '%s': %s" + msgstr "" + +-#: dnf/conf/config.py:380 ++#: dnf/conf/config.py:398 + #, python-format + msgid "Main config did not have a %s attr. before setopt" + msgstr "" + +-#: dnf/conf/config.py:427 dnf/conf/config.py:445 ++#: dnf/conf/config.py:445 dnf/conf/config.py:463 + msgid "Incorrect or unknown \"{}\": {}" + msgstr "" + +-#: dnf/conf/config.py:501 ++#: dnf/conf/config.py:519 + #, python-format + msgid "Error parsing --setopt with key '%s.%s', value '%s': %s" + msgstr "" + +-#: dnf/conf/config.py:504 ++#: dnf/conf/config.py:522 + #, python-format + msgid "Repo %s did not have a %s attr. before setopt" + msgstr "" +@@ -3523,32 +3523,32 @@ msgstr "" + msgid "Will not install a source rpm package (%s)." + msgstr "" + +-#: dnf/dnssec.py:168 ++#: dnf/dnssec.py:171 + msgid "" + "Configuration option 'gpgkey_dns_verification' requires python3-unbound ({})" + msgstr "" + +-#: dnf/dnssec.py:239 ++#: dnf/dnssec.py:243 + msgid "DNSSEC extension: Key for user " + msgstr "" + +-#: dnf/dnssec.py:241 ++#: dnf/dnssec.py:245 + msgid "is valid." + msgstr "" + +-#: dnf/dnssec.py:243 ++#: dnf/dnssec.py:247 + msgid "has unknown status." + msgstr "" + +-#: dnf/dnssec.py:251 ++#: dnf/dnssec.py:255 + msgid "DNSSEC extension: " + msgstr "" + +-#: dnf/dnssec.py:283 ++#: dnf/dnssec.py:287 + msgid "Testing already imported keys for their validity." + msgstr "" + +-#: dnf/drpm.py:62 dnf/repo.py:268 ++#: dnf/drpm.py:62 dnf/repo.py:267 + #, python-format + msgid "unsupported checksum type: %s" + msgstr "" +@@ -3591,7 +3591,7 @@ msgid_plural "Modular dependency problems with Defaults:" + msgstr[0] "" + msgstr[1] "" + +-#: dnf/exceptions.py:131 dnf/module/module_base.py:854 ++#: dnf/exceptions.py:131 dnf/module/module_base.py:857 + msgid "Modular dependency problem:" + msgid_plural "Modular dependency problems:" + msgstr[0] "" +@@ -3680,7 +3680,7 @@ msgid "" + msgstr "" + + #: dnf/module/module_base.py:56 dnf/module/module_base.py:556 +-#: dnf/module/module_base.py:615 dnf/module/module_base.py:681 ++#: dnf/module/module_base.py:615 dnf/module/module_base.py:684 + msgid "Ignoring unnecessary profile: '{}/{}'" + msgstr "" + +@@ -3736,7 +3736,7 @@ msgstr "" + #: dnf/module/module_base.py:310 dnf/module/module_base.py:461 + #: dnf/module/module_base.py:486 dnf/module/module_base.py:505 + #: dnf/module/module_base.py:552 dnf/module/module_base.py:611 +-#: dnf/module/module_base.py:677 dnf/module/module_base.py:840 ++#: dnf/module/module_base.py:680 dnf/module/module_base.py:843 + msgid "Unable to resolve argument {}" + msgstr "" + +@@ -3765,7 +3765,7 @@ msgid "" + "Only module name is required. Ignoring unneeded information in argument: '{}'" + msgstr "" + +-#: dnf/module/module_base.py:841 ++#: dnf/module/module_base.py:844 + msgid "No match for package {}" + msgstr "" + +@@ -3826,7 +3826,7 @@ msgid "Already downloaded" + msgstr "" + + #. pinging mirrors, this might take a while +-#: dnf/repo.py:347 ++#: dnf/repo.py:346 + #, python-format + msgid "determining the fastest mirror (%s hosts).. " + msgstr "" +@@ -3850,7 +3850,15 @@ msgstr "" + msgid "Cannot find rpmkeys executable to verify signatures." + msgstr "" + +-#: dnf/rpm/transaction.py:119 ++#: dnf/rpm/transaction.py:70 ++msgid "The openDB() function connot open rpm database." ++msgstr "" ++ ++#: dnf/rpm/transaction.py:75 ++msgid "The dbCookie() function did not return cookie of rpm database." ++msgstr "" ++ ++#: dnf/rpm/transaction.py:135 + msgid "Errors occurred during test transaction." + msgstr "" + +diff --git a/po/fr.po b/po/fr.po +index 15841a45..a1a64a39 100644 +--- a/po/fr.po ++++ b/po/fr.po +@@ -9,32 +9,34 @@ + # dominique bribanick , 2011 + # Jérôme Fenal , 2014 + # Kévin Raymond , 2011 +-# Jean-Baptiste Holcroft , 2016. #zanata, 2020, 2021. ++# Jean-Baptiste Holcroft , 2016. #zanata, 2020. + # José Fournier , 2016. #zanata +-# Jean-Baptiste Holcroft , 2017. #zanata, 2020, 2021. ++# Jean-Baptiste Holcroft , 2017. #zanata, 2020. + # José Fournier , 2017. #zanata + # Jérôme Fenal , 2017. #zanata +-# Jean-Baptiste Holcroft , 2018. #zanata, 2020, 2021. ++# Jean-Baptiste Holcroft , 2018. #zanata, 2020. + # Ludek Janda , 2018. #zanata +-# Jean-Baptiste Holcroft , 2019. #zanata, 2020, 2021. ++# Jean-Baptiste Holcroft , 2019. #zanata, 2020. + # Julien Humbert , 2020, 2021. +-# Karim ALI ABDELMAKSOU ABDELHAMID , 2020. +-# Arnaud T. , 2020, 2021. ++# Sundeep Anand , 2021. + # Guillaume Jacob , 2021. ++# Titouan Bénard , 2021. ++# Transtats , 2022. + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2021-06-13 09:18-0400\n" +-"PO-Revision-Date: 2021-05-17 03:02+0000\n" +-"Last-Translator: Julien Humbert \n" +-"Language-Team: French \n" ++"POT-Creation-Date: 2022-02-28 11:37+0100\n" ++"PO-Revision-Date: 2022-03-09 12:39+0000\n" ++"Last-Translator: Transtats \n" ++"Language-Team: French \n" + "Language: fr\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=2; plural=n > 1;\n" +-"X-Generator: Weblate 4.6.2\n" ++"X-Generator: Weblate 4.11.2\n" + + #: dnf/automatic/emitter.py:32 + #, python-format +@@ -97,7 +99,7 @@ msgstr "La vérification GPG a ÉCHOUÉ" + + #: dnf/automatic/main.py:274 + msgid "Waiting for internet connection..." +-msgstr "En attente d'une connexion Internet…" ++msgstr "En attente d'une connexion Internet..." + + #: dnf/automatic/main.py:304 + msgid "Started dnf-automatic." +@@ -193,8 +195,8 @@ msgstr "Dépôts ignorés : %s" + #, python-format + msgid "Last metadata expiration check: %s ago on %s." + msgstr "" +-"Dernière vérification de l’expiration des métadonnées effectuée il y a %s le" +-" %s." ++"Dernière vérification de l’expiration des métadonnées effectuée il y a %s le " ++"%s." + + #: dnf/base.py:512 + msgid "" +@@ -219,44 +221,44 @@ msgstr "tsflag invalide dans le fichier de configuration : %s" + msgid "Failed to add groups file for repository: %s - %s" + msgstr "Échec d’ajout du fichier de groupes pour le dépôt : %s - %s" + +-#: dnf/base.py:904 ++#: dnf/base.py:922 + msgid "Running transaction check" + msgstr "Test de la transaction" + +-#: dnf/base.py:912 ++#: dnf/base.py:930 + msgid "Error: transaction check vs depsolve:" + msgstr "" + "Erreur : vérification de transaction contre résolution des dépendances :" + +-#: dnf/base.py:918 ++#: dnf/base.py:936 + msgid "Transaction check succeeded." + msgstr "La vérification de la transaction a réussi." + +-#: dnf/base.py:921 ++#: dnf/base.py:939 + msgid "Running transaction test" + msgstr "Lancement de la transaction de test" + +-#: dnf/base.py:931 dnf/base.py:1082 ++#: dnf/base.py:949 dnf/base.py:1100 + msgid "RPM: {}" + msgstr "RPM : {}" + +-#: dnf/base.py:932 ++#: dnf/base.py:950 + msgid "Transaction test error:" + msgstr "Erreur de la transaction de test :" + +-#: dnf/base.py:943 ++#: dnf/base.py:961 + msgid "Transaction test succeeded." + msgstr "Transaction de test réussie." + +-#: dnf/base.py:964 ++#: dnf/base.py:982 + msgid "Running transaction" + msgstr "Exécution de la transaction" + +-#: dnf/base.py:1001 ++#: dnf/base.py:1019 + msgid "Disk Requirements:" + msgstr "Besoins en espace disque :" + +-#: dnf/base.py:1004 ++#: dnf/base.py:1022 + #, python-brace-format + msgid "At least {0}MB more space needed on the {1} filesystem." + msgid_plural "At least {0}MB more space needed on the {1} filesystem." +@@ -264,125 +266,121 @@ msgstr[0] "" + "Au moins {0} Mio supplémentaire est nécessaire sur le système de fichiers " + "{1}." + msgstr[1] "" +-"Au moins {0} Mio supplémentaires sont nécessaires sur le système de fichiers" +-" {1}." ++"Au moins {0} Mio supplémentaires sont nécessaires sur le système de fichiers " ++"{1}." + +-#: dnf/base.py:1011 ++#: dnf/base.py:1029 + msgid "Error Summary" + msgstr "Résumé des erreurs" + +-#: dnf/base.py:1037 ++#: dnf/base.py:1055 + #, python-brace-format + msgid "RPMDB altered outside of {prog}." + msgstr "RPMDB modifié en dehors de {prog}." + +-#: dnf/base.py:1083 dnf/base.py:1091 ++#: dnf/base.py:1101 dnf/base.py:1109 + msgid "Could not run transaction." + msgstr "Impossible d’exécuter la transaction." + +-#: dnf/base.py:1086 ++#: dnf/base.py:1104 + msgid "Transaction couldn't start:" + msgstr "La transaction n’a pas pu démarrer :" + +-#: dnf/base.py:1100 ++#: dnf/base.py:1118 + #, python-format + msgid "Failed to remove transaction file %s" + msgstr "Échec de la suppression du fichier de transaction %s" + +-#: dnf/base.py:1182 ++#: dnf/base.py:1200 + msgid "Some packages were not downloaded. Retrying." + msgstr "Certains paquets n’ont pas été téléchargés. Nouvel essai." + +-#: dnf/base.py:1212 +-#, fuzzy, python-format +-#| msgid "" +-#| "Delta RPMs reduced %.1f MB of updates to %.1f MB (%d.1%% saved)" ++#: dnf/base.py:1230 ++#, python-format + msgid "Delta RPMs reduced %.1f MB of updates to %.1f MB (%.1f%% saved)" + msgstr "" +-"Les Delta RPM ont réduit la taille des mises à jour de %.1f Mio à %.1f Mio " +-"(%d.1%% économisés)" ++"Les RPM Delta ont réduit les mises à jour de %.1f Mo à %.1f Mo (%.1f%% " ++"économisé)" + +-#: dnf/base.py:1216 +-#, fuzzy, python-format +-#| msgid "" +-#| "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%d.1%% wasted)" ++#: dnf/base.py:1234 ++#, python-format + msgid "" + "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%.1f%% wasted)" + msgstr "" +-"Les Delta RPMs en échec ont fait augmenter la taille des mises à jour de " +-"%.1f Mio à %.1f Mio (%d.1%% gaspillés)" ++"Les échecs des RPM Delta ont augmenté les mises à jour de %.1f Mo à %.1f Mo (" ++"%.1f%% gaspillés)" + +-#: dnf/base.py:1258 ++#: dnf/base.py:1276 + msgid "Cannot add local packages, because transaction job already exists" + msgstr "" + "Impossible d’ajouter des paquets locaux, car un travail de transaction " + "existe déjà" + +-#: dnf/base.py:1272 ++#: dnf/base.py:1290 + msgid "Could not open: {}" + msgstr "Impossible d’ouvrir : {}" + +-#: dnf/base.py:1310 ++#: dnf/base.py:1328 + #, python-format + msgid "Public key for %s is not installed" + msgstr "La clé publique pour %s n’est pas installée" + +-#: dnf/base.py:1314 ++#: dnf/base.py:1332 + #, python-format + msgid "Problem opening package %s" + msgstr "Problème à l’ouverture du paquet %s" + +-#: dnf/base.py:1322 ++#: dnf/base.py:1340 + #, python-format + msgid "Public key for %s is not trusted" + msgstr "La clé publique pour %s n’est pas de confiance" + +-#: dnf/base.py:1326 ++#: dnf/base.py:1344 + #, python-format + msgid "Package %s is not signed" + msgstr "Le paquet %s n’est pas signé" + +-#: dnf/base.py:1356 ++#: dnf/base.py:1374 + #, python-format + msgid "Cannot remove %s" + msgstr "Impossible de supprimer %s" + +-#: dnf/base.py:1360 ++#: dnf/base.py:1378 + #, python-format + msgid "%s removed" + msgstr "%s supprimé" + +-#: dnf/base.py:1640 ++#: dnf/base.py:1658 + msgid "No match for group package \"{}\"" + msgstr "Aucune correspondance pour le paquet du groupe « {} »" + +-#: dnf/base.py:1726 ++#: dnf/base.py:1740 + #, python-format + msgid "Adding packages from group '%s': %s" + msgstr "Ajout de paquets en provenance du groupe « %s » : %s" + +-#: dnf/base.py:1749 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 ++#: dnf/base.py:1763 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 + #: dnf/cli/commands/__init__.py:494 dnf/cli/commands/__init__.py:587 + #: dnf/cli/commands/__init__.py:636 dnf/cli/commands/install.py:80 + #: dnf/cli/commands/install.py:103 dnf/cli/commands/install.py:110 + msgid "Nothing to do." + msgstr "Rien à faire." + +-#: dnf/base.py:1767 ++#: dnf/base.py:1781 + msgid "No groups marked for removal." + msgstr "Aucun groupe marqué pour suppression." + +-#: dnf/base.py:1801 ++#: dnf/base.py:1815 + msgid "No group marked for upgrade." + msgstr "Aucun groupe marqué pour mise à jour." + +-#: dnf/base.py:2015 ++#: dnf/base.py:2029 + #, python-format + msgid "Package %s not installed, cannot downgrade it." + msgstr "Le paquet %s n’est pas installé, impossible de le rétrograder." + +-#: dnf/base.py:2017 dnf/base.py:2036 dnf/base.py:2049 dnf/base.py:2076 +-#: dnf/base.py:2129 dnf/base.py:2137 dnf/base.py:2271 dnf/cli/cli.py:417 ++#: dnf/base.py:2031 dnf/base.py:2050 dnf/base.py:2063 dnf/base.py:2090 ++#: dnf/base.py:2143 dnf/base.py:2151 dnf/base.py:2285 dnf/cli/cli.py:417 + #: dnf/cli/commands/__init__.py:420 dnf/cli/commands/__init__.py:477 + #: dnf/cli/commands/__init__.py:581 dnf/cli/commands/__init__.py:628 + #: dnf/cli/commands/__init__.py:706 dnf/cli/commands/install.py:147 +@@ -392,30 +390,30 @@ msgstr "Le paquet %s n’est pas installé, impossible de le rétrograder." + msgid "No match for argument: %s" + msgstr "Aucune correspondance pour l’argument : %s" + +-#: dnf/base.py:2024 ++#: dnf/base.py:2038 + #, python-format + msgid "Package %s of lower version already installed, cannot downgrade it." + msgstr "" +-"Le paquet %s est déjà installé dans une version inférieure, impossible de le" +-" rétrograder." ++"Le paquet %s est déjà installé dans une version inférieure, impossible de le " ++"rétrograder." + +-#: dnf/base.py:2047 ++#: dnf/base.py:2061 + #, python-format + msgid "Package %s not installed, cannot reinstall it." + msgstr "Le paquet %s n’est pas installé, impossible de le réinstaller." + +-#: dnf/base.py:2062 ++#: dnf/base.py:2076 + #, python-format + msgid "File %s is a source package and cannot be updated, ignoring." + msgstr "" + "Le fichier %s est un paquet source et ne peut pas être mis à jour, ignoré." + +-#: dnf/base.py:2073 ++#: dnf/base.py:2087 + #, python-format + msgid "Package %s not installed, cannot update it." + msgstr "Le paquet %s n’est pas installé, impossible de le mettre à jour." + +-#: dnf/base.py:2083 ++#: dnf/base.py:2097 + #, python-format + msgid "" + "The same or higher version of %s is already installed, cannot update it." +@@ -423,173 +421,176 @@ msgstr "" + "La même une ou version supérieure de %s est déjà installée, mise à jour " + "impossible." + +-#: dnf/base.py:2126 dnf/cli/commands/reinstall.py:81 ++#: dnf/base.py:2140 dnf/cli/commands/reinstall.py:81 + #, python-format + msgid "Package %s available, but not installed." + msgstr "Le paquet %s est disponible mais n’est pas installé." + +-#: dnf/base.py:2132 ++#: dnf/base.py:2146 + #, python-format + msgid "Package %s available, but installed for different architecture." + msgstr "" + "Le paquet %s est disponible mais est installé pour une autre architecture." + +-#: dnf/base.py:2157 ++#: dnf/base.py:2171 + #, python-format + msgid "No package %s installed." + msgstr "Aucun paquet %s installé." + +-#: dnf/base.py:2175 dnf/cli/commands/install.py:136 ++#: dnf/base.py:2189 dnf/cli/commands/install.py:136 + #: dnf/cli/commands/remove.py:133 + #, python-format + msgid "Not a valid form: %s" + msgstr "Format invalide : %s" + +-#: dnf/base.py:2190 dnf/cli/commands/__init__.py:676 ++#: dnf/base.py:2204 dnf/cli/commands/__init__.py:676 + #: dnf/cli/commands/remove.py:162 + msgid "No packages marked for removal." + msgstr "Aucun paquet marqué pour suppression." + +-#: dnf/base.py:2278 dnf/cli/cli.py:428 ++#: dnf/base.py:2292 dnf/cli/cli.py:428 + #, python-format + msgid "Packages for argument %s available, but not installed." + msgstr "Les paquets pour le paramètre %s sont disponibles mais pas installés." + +-#: dnf/base.py:2283 ++#: dnf/base.py:2297 + #, python-format + msgid "Package %s of lowest version already installed, cannot downgrade it." + msgstr "" + "La version la plus ancienne du paquet %s est déjà installée, impossible de " + "le rétrograder." + +-#: dnf/base.py:2383 ++#: dnf/base.py:2397 + msgid "No security updates needed, but {} update available" + msgstr "" + "Aucune mise à jour de sécurité n’est nécessaire, mais la mise à jour {} est " + "disponible" + +-#: dnf/base.py:2385 ++#: dnf/base.py:2399 + msgid "No security updates needed, but {} updates available" + msgstr "" + "Aucune mise à jour de sécurité n’est nécessaire, mais les mises à jour {} " + "sont disponibles" + +-#: dnf/base.py:2389 ++#: dnf/base.py:2403 + msgid "No security updates needed for \"{}\", but {} update available" + msgstr "" + "Aucune mise à jour de sécurité n’est nécessaire pour « {} », mais la mise à " + "jour {} est disponible" + +-#: dnf/base.py:2391 ++#: dnf/base.py:2405 + msgid "No security updates needed for \"{}\", but {} updates available" + msgstr "" + "Aucune mise à jour de sécurité n’est nécessaire pour « {} », mais les mises " + "à jour {} sont disponibles" + + #. raise an exception, because po.repoid is not in self.repos +-#: dnf/base.py:2412 ++#: dnf/base.py:2426 + #, python-format + msgid "Unable to retrieve a key for a commandline package: %s" + msgstr "" + "Impossible de récupérer une clé pour un paquet en ligne de commande : %s" + +-#: dnf/base.py:2420 ++#: dnf/base.py:2434 + #, python-format + msgid ". Failing package is: %s" + msgstr ". Le paquet en erreur est : %s" + +-#: dnf/base.py:2421 ++#: dnf/base.py:2435 + #, python-format + msgid "GPG Keys are configured as: %s" + msgstr "Les clés GPG sont configurées comme : %s" + +-#: dnf/base.py:2433 ++#: dnf/base.py:2447 + #, python-format + msgid "GPG key at %s (0x%s) is already installed" + msgstr "La clé GPG %s (0x%s) est déjà installée" + +-#: dnf/base.py:2469 ++#: dnf/base.py:2483 + msgid "The key has been approved." + msgstr "La clef a été approuvée." + +-#: dnf/base.py:2472 ++#: dnf/base.py:2486 + msgid "The key has been rejected." + msgstr "La clef a été rejetée." + +-#: dnf/base.py:2505 ++#: dnf/base.py:2519 + #, python-format + msgid "Key import failed (code %d)" + msgstr "L’import de la clé a échoué (code %d)" + +-#: dnf/base.py:2507 ++#: dnf/base.py:2521 + msgid "Key imported successfully" + msgstr "La clé a bien été importée" + +-#: dnf/base.py:2511 ++#: dnf/base.py:2525 + msgid "Didn't install any keys" + msgstr "Toutes les clés n’ont pas été installées" + +-#: dnf/base.py:2514 ++#: dnf/base.py:2528 + #, python-format + msgid "" +-"The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n" ++"The GPG keys listed for the \"%s\" repository are already installed but they " ++"are not correct for this package.\n" + "Check that the correct key URLs are configured for this repository." + msgstr "" +-"Les clés GPG listées pour le dépôt « %s » sont déjà installées mais sont incorrectes pour ce paquet.\n" ++"Les clés GPG listées pour le dépôt « %s » sont déjà installées mais sont " ++"incorrectes pour ce paquet.\n" + "Vérifiez que les URL des clés pour ce dépôt soient correctes." + +-#: dnf/base.py:2525 ++#: dnf/base.py:2539 + msgid "Import of key(s) didn't help, wrong key(s)?" + msgstr "" + "L’import de la ou des clés n’a pas résolu le problème, clés incorrectes ?" + +-#: dnf/base.py:2578 ++#: dnf/base.py:2592 + msgid " * Maybe you meant: {}" + msgstr " * Peut-être vouliez-vous dire : {}" + +-#: dnf/base.py:2610 ++#: dnf/base.py:2624 + msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" +-msgstr "Le paquet \"{}\" du dépôt local \"{}\" a une somme de contrôle incorrecte" ++msgstr "" ++"Le paquet \"{}\" du dépôt local \"{}\" a une somme de contrôle incorrecte" + +-#: dnf/base.py:2613 ++#: dnf/base.py:2627 + msgid "Some packages from local repository have incorrect checksum" + msgstr "Certains paquets du dépôt local ont une somme de contrôle incorrecte" + +-#: dnf/base.py:2616 ++#: dnf/base.py:2630 + msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" + msgstr "Le paquet \"{}\" du dépôt \"{}\" a une somme de contrôle incorrecte" + +-#: dnf/base.py:2619 ++#: dnf/base.py:2633 + msgid "" + "Some packages have invalid cache, but cannot be downloaded due to \"--" + "cacheonly\" option" + msgstr "" +-"Certains paquets ont un cache invalide, mais ne peuvent pas être téléchargés" +-" à cause de l’option « --cacheonly »" ++"Certains paquets ont un cache invalide, mais ne peuvent pas être téléchargés " ++"à cause de l’option « --cacheonly »" + +-#: dnf/base.py:2637 dnf/base.py:2657 ++#: dnf/base.py:2651 dnf/base.py:2671 + msgid "No match for argument" + msgstr "Aucune correspondance pour le paramètre" + +-#: dnf/base.py:2645 dnf/base.py:2665 ++#: dnf/base.py:2659 dnf/base.py:2679 + msgid "All matches were filtered out by exclude filtering for argument" + msgstr "" + "Toutes les correspondances ont été filtrées en excluant le filtrage pour " + "l’argument" + +-#: dnf/base.py:2647 ++#: dnf/base.py:2661 + msgid "All matches were filtered out by modular filtering for argument" + msgstr "" + "Toutes les correspondances ont été filtrées par filtrage modulaire pour les " + "arguments" + +-#: dnf/base.py:2663 ++#: dnf/base.py:2677 + msgid "All matches were installed from a different repository for argument" + msgstr "" + "Toutes les correspondances ont été installées à partir d’un dépôt différent " + "pour le paramètre" + +-#: dnf/base.py:2710 ++#: dnf/base.py:2724 + #, python-format + msgid "Package %s is already installed." + msgstr "Le paquet %s est déjà installé." +@@ -600,7 +601,7 @@ msgid "Unexpected value of environment variable: DNF_DISABLE_ALIASES=%s" + msgstr "" + "Valeur inattendue de la variable d’environnement : DNF_DISABLE_ALIASES=%s" + +-#: dnf/cli/aliases.py:105 dnf/conf/config.py:457 ++#: dnf/cli/aliases.py:105 dnf/conf/config.py:475 + #, python-format + msgid "Parsing file \"%s\" failed: %s" + msgstr "La lecture du fichier « %s » a échoué : %s" +@@ -641,17 +642,25 @@ msgid "" + "The operation would result in switching of module '{0}' stream '{1}' to " + "stream '{2}'" + msgstr "" +-"Le résulta de l’opération sera le basculement du flux« {1} » du module « {0}" +-" » vers le flux« {2} »" ++"Le résulta de l’opération sera le basculement du flux« {1} » du module « {0} " ++"» vers le flux« {2} »" + + #: dnf/cli/cli.py:173 + #, python-brace-format + msgid "" +-"It is not possible to switch enabled streams of a module unless explicitly enabled via configuration option module_stream_switch.\n" +-"It is recommended to rather remove all installed content from the module, and reset the module using '{prog} module reset ' command. After you reset the module, you can install the other stream." +-msgstr "" +-"Il n’est pas possible de basculer les flux actifs d’un module sauf si cela est explicitement activé par l’option de configuration module_stream_switch.\n" +-"Il est plutôt recommandé de retirer tout contenu installé par le module, et de réinitialiser le mode en utilisant la commande « {prog} module reset ». Après la réinitialisation, vous pouvez installer les autres flux." ++"It is not possible to switch enabled streams of a module unless explicitly " ++"enabled via configuration option module_stream_switch.\n" ++"It is recommended to rather remove all installed content from the module, " ++"and reset the module using '{prog} module reset ' command. " ++"After you reset the module, you can install the other stream." ++msgstr "" ++"Il n’est pas possible de basculer les flux actifs d’un module sauf si cela " ++"est explicitement activé par l’option de configuration " ++"module_stream_switch.\n" ++"Il est plutôt recommandé de retirer tout contenu installé par le module, et " ++"de réinitialiser le mode en utilisant la commande « {prog} module reset " ++" ». Après la réinitialisation, vous pouvez installer les " ++"autres flux." + + #: dnf/cli/cli.py:212 + #, python-brace-format +@@ -688,7 +697,8 @@ msgid "" + "Refusing to automatically import keys when running unattended.\n" + "Use \"-y\" to override." + msgstr "" +-"Refus de l’importation automatique des clés lors d’une exécution sans surveillance.\n" ++"Refus de l’importation automatique des clés lors d’une exécution sans " ++"surveillance.\n" + "Utilisez l’option « -y » pour passer outre." + + #: dnf/cli/cli.py:337 +@@ -756,8 +766,8 @@ msgstr "Aucun dépôt ne correspond à %s" + + #: dnf/cli/cli.py:719 + msgid "" +-"This command has to be run with superuser privileges (under the root user on" +-" most systems)." ++"This command has to be run with superuser privileges (under the root user on " ++"most systems)." + msgstr "" + "Cette commande doit être exécutée avec les privilèges super-utilisateur " + "(sous l’utilisateur root sur la plupart des systèmes)." +@@ -790,8 +800,8 @@ msgid "" + "--destdir or --downloaddir must be used with --downloadonly or download or " + "system-upgrade command." + msgstr "" +-"--destdir ou --downloaddir doit être utilisé avec la commande --downloadonly" +-" ou download ou system-upgrade command." ++"--destdir ou --downloaddir doit être utilisé avec la commande --downloadonly " ++"ou download ou system-upgrade command." + + #: dnf/cli/cli.py:820 + msgid "" +@@ -863,7 +873,8 @@ msgstr "" + #, python-brace-format + msgid "" + "You have enabled checking of packages via GPG keys. This is a good thing.\n" +-"However, you do not have any GPG public keys installed. You need to download\n" ++"However, you do not have any GPG public keys installed. You need to " ++"download\n" + "the keys for packages you wish to install and install them.\n" + "You can do that by running the command:\n" + " rpm --import public.gpg.key\n" +@@ -875,8 +886,10 @@ msgid "" + "\n" + "For more information contact your distribution or package provider." + msgstr "" +-"Vous avez activé la vérification des paquets par clés GPG. C’est une bonne chose.\n" +-"Cependant, vous n’avez aucune clé GPG publique installée. Vous devez télécharger\n" ++"Vous avez activé la vérification des paquets par clés GPG. C’est une bonne " ++"chose.\n" ++"Cependant, vous n’avez aucune clé GPG publique installée. Vous devez " ++"télécharger\n" + "et installer les clés pour les paquets que vous souhaitez installer..\n" + "Vous pouvez le faire en lançant la commande :\n" + "rpm --import public. gpg. key\n" +@@ -886,7 +899,8 @@ msgstr "" + "pour un dépôt dans l’option « gpgkey » dans une section de configuration du\n" + "dépôt et {prog} l’installera pour vous.\n" + "\n" +-"Pour plus de renseignements, contactez votre distribution ou le fournisseur du paquet." ++"Pour plus de renseignements, contactez votre distribution ou le fournisseur " ++"du paquet." + + #: dnf/cli/commands/__init__.py:71 + #, python-format +@@ -1318,8 +1332,8 @@ msgstr "" + + #: dnf/cli/commands/history.py:68 + msgid "" +-"For the replay command, don't check for installed packages matching those in" +-" transaction" ++"For the replay command, don't check for installed packages matching those in " ++"transaction" + msgstr "" + "Pour la commande replay, ne vérifie pas si les paquets installés " + "correspondent à ceux en transaction" +@@ -1334,8 +1348,8 @@ msgstr "" + + #: dnf/cli/commands/history.py:74 + msgid "" +-"For the replay command, skip packages that are not available or have missing" +-" dependencies" ++"For the replay command, skip packages that are not available or have missing " ++"dependencies" + msgstr "" + "Pour la commande replay, saute les paquets qui ne sont pas disponibles ou " + "qui ont des dépendances manquantes" +@@ -1368,8 +1382,8 @@ msgstr "Vous n’avez pas accès à la base de données de l’historique : %s" + #: dnf/cli/commands/history.py:151 + #, python-format + msgid "" +-"Cannot undo transaction %s, doing so would result in an inconsistent package" +-" database." ++"Cannot undo transaction %s, doing so would result in an inconsistent package " ++"database." + msgstr "" + "Impossible de défaire la transaction %s ; cela aboutirait à une base de " + "données des paquets incohérente." +@@ -1415,7 +1429,8 @@ msgid "" + "Invalid transaction ID range definition '{}'.\n" + "Use '..'." + msgstr "" +-"La définition de la plage d’identifiants de transaction est invalide « {} ».\n" ++"La définition de la plage d’identifiants de transaction est invalide « {} " ++"».\n" + "Utilisez « .. »." + + #: dnf/cli/commands/history.py:283 +@@ -1485,8 +1500,7 @@ msgstr "Création des fichiers de cache pour tous les fichiers de métadonnées. + #: dnf/cli/commands/mark.py:39 + msgid "mark or unmark installed packages as installed by user." + msgstr "" +-"marquer ou démarquer les paquets installés comme installés par " +-"l’utilisateur." ++"marquer ou démarquer les paquets installés comme installés par l’utilisateur." + + #: dnf/cli/commands/mark.py:44 + msgid "" +@@ -1525,11 +1539,11 @@ msgstr "Le paquet %s n’est pas installé." + + #: dnf/cli/commands/module.py:54 + msgid "" +-"Only module name, stream, architecture or profile is used. Ignoring unneeded" +-" information in argument: '{}'" ++"Only module name, stream, architecture or profile is used. Ignoring unneeded " ++"information in argument: '{}'" + msgstr "" +-"Seul le nom, le flux, l’architecture ou le profil du module est utilisé. Les" +-" paramètres inutiles ont été ignorés dans le paramètre : « {} »" ++"Seul le nom, le flux, l’architecture ou le profil du module est utilisé. Les " ++"paramètres inutiles ont été ignorés dans le paramètre : « {} »" + + #: dnf/cli/commands/module.py:80 + msgid "list all module streams, profiles and states" +@@ -1864,8 +1878,8 @@ msgstr "" + #: dnf/cli/commands/repoquery.py:162 + msgid "check dependencies exactly as given, opposite of --alldeps" + msgstr "" +-"vérifie les dépendances exactement telles qu’indiquées, le contraire de " +-"--alldeps" ++"vérifie les dépendances exactement telles qu’indiquées, le contraire de --" ++"alldeps" + + #: dnf/cli/commands/repoquery.py:164 + msgid "" +@@ -1923,8 +1937,8 @@ msgstr "affiche les changelogs du paquet" + #: dnf/cli/commands/repoquery.py:194 + #, python-format, python-brace-format + msgid "" +-"display format for listing packages: \"%%{name} %%{version} ...\", use " +-"--querytags to view full tag list" ++"display format for listing packages: \"%%{name} %%{version} ...\", use --" ++"querytags to view full tag list" + msgstr "" + "format d'affichage pour la liste des paquets : « %%{name} %%{version}… », " + "utilisez --querytags pour voir la liste complète des étiquettes" +@@ -2072,23 +2086,23 @@ msgstr "la clé à chercher" + + #: dnf/cli/commands/repoquery.py:295 + msgid "" +-"Option '--resolve' has to be used together with one of the '--conflicts', '" +-"--depends', '--enhances', '--provides', '--recommends', '--requires', '--" ++"Option '--resolve' has to be used together with one of the '--conflicts', '--" ++"depends', '--enhances', '--provides', '--recommends', '--requires', '--" + "requires-pre', '--suggests' or '--supplements' options" + msgstr "" +-"Option « --resolve » doit être utilisée en conjonction avec « --conflicts »," +-" « --depends », « --enhances », « --provides », « --recommends », « " +-"--requires », « --requires-pre », « --suggests » ou « --supplements" ++"Option « --resolve » doit être utilisée en conjonction avec « --conflicts », " ++"« --depends », « --enhances », « --provides », « --recommends », « --" ++"requires », « --requires-pre », « --suggests » ou « --supplements" + + #: dnf/cli/commands/repoquery.py:305 + msgid "" + "Option '--recursive' has to be used with '--whatrequires ' (optionally " +-"with '--alldeps', but not with '--exactdeps'), or with '--requires " +-"--resolve'" ++"with '--alldeps', but not with '--exactdeps'), or with '--requires --" ++"resolve'" + msgstr "" +-"Option « --recursive » doit être utilisée avec « --whatrequires » " +-"(optionnellement avec « --alldeps », mais pas avec « --exactdeps »), ou avec" +-" « --requires --resolve »" ++"Option « --recursive » doit être utilisée avec « --whatrequires " ++"» (optionnellement avec « --alldeps », mais pas avec « --exactdeps »), ou " ++"avec « --requires --resolve »" + + #: dnf/cli/commands/repoquery.py:312 + msgid "argument {} requires --whatrequires or --whatdepends option" +@@ -2102,13 +2116,17 @@ msgstr "Le paquet {} ne contient aucun fichier" + #, python-brace-format + msgid "" + "No valid switch specified\n" +-"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" ++"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" ++"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" ++"tree]\n" + "\n" + "description:\n" + " For the given packages print a tree of thepackages." + msgstr "" + "Aucune option valide spécifiée\n" +-"utilisation : {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" ++"utilisation : {prog} repoquery [--conflicts|--enhances|--obsoletes|--" ++"provides|--recommends|--requires|--suggest|--supplements|--whatrequires] " ++"[key] [--tree]\n" + "\n" + "description :\n" + " Afficher une arborescence des paquets pour le paquet donné." +@@ -2148,8 +2166,7 @@ msgstr "Description" + msgid "URL" + msgstr "URL" + +-#. TRANSLATORS: separator used between package attributes (eg. Name & Summary +-#. & URL) ++#. TRANSLATORS: separator used between package attributes (eg. Name & Summary & URL) + #: dnf/cli/commands/search.py:76 + msgid " & " + msgstr " & " +@@ -2283,7 +2300,8 @@ msgstr "" + "help affiche l’aide\n" + "repository (ou repo) active, désactive ou liste les dépôts\n" + "resolvedep résout l’ensemble de transactions\n" +-"transaction (ou ts) liste, réinitialise ou exécute l’ensemble de transactions\n" ++"transaction (ou ts) liste, réinitialise ou exécute l’ensemble de " ++"transactions\n" + "run résoud et exécute l’ensemble de transactions\n" + "exit (ou quit) quitte l’interpréteur de commandes" + +@@ -2333,19 +2351,19 @@ msgstr "nouveau paquet" + + #: dnf/cli/commands/updateinfo.py:50 + msgid "Critical/Sec." +-msgstr "Sécurité/Niveau critique" ++msgstr "Sécurité/Niveau critique." + + #: dnf/cli/commands/updateinfo.py:51 + msgid "Important/Sec." +-msgstr "Sécurité/Niveau important" ++msgstr "Sécurité/Niveau important." + + #: dnf/cli/commands/updateinfo.py:52 + msgid "Moderate/Sec." +-msgstr "Sécurité/niveau modéré" ++msgstr "Sécurité/niveau modéré." + + #: dnf/cli/commands/updateinfo.py:53 + msgid "Low/Sec." +-msgstr "Sécurité/Niveau bas" ++msgstr "Sécurité/Niveau bas." + + #: dnf/cli/commands/updateinfo.py:63 + msgid "display advisories about packages" +@@ -2358,8 +2376,7 @@ msgstr "alertes pour les nouvelles versions de paquets installés (par défaut)" + #: dnf/cli/commands/updateinfo.py:80 + msgid "advisories about equal and older versions of installed packages" + msgstr "" +-"alertes pour des versions équivalentes ou plus anciennes de paquets " +-"installés" ++"alertes pour des versions équivalentes ou plus anciennes de paquets installés" + + #: dnf/cli/commands/updateinfo.py:83 + msgid "" +@@ -2455,7 +2472,7 @@ msgstr "autre(s) alertes)" + + #: dnf/cli/commands/updateinfo.py:316 + msgid "Unknown/Sec." +-msgstr "Sécurité/Niveau inconnu" ++msgstr "Sécurité/Niveau inconnu." + + #: dnf/cli/commands/updateinfo.py:357 + msgid "Bugs" +@@ -2529,8 +2546,8 @@ msgstr "Terminé." + #: dnf/cli/main.py:116 + msgid "No read/execute access in current directory, moving to /" + msgstr "" +-"Pas d’accès en lecture/exécution sur le répertoire courant, déplacement dans" +-" /" ++"Pas d’accès en lecture/exécution sur le répertoire courant, déplacement " ++"dans /" + + #: dnf/cli/main.py:135 + msgid "try to add '{}' to command line to replace conflicting packages" +@@ -2673,8 +2690,7 @@ msgstr "niveau de déboguage pour la sortie" + + #: dnf/cli/option_parser.py:236 + msgid "dumps detailed solving results into files" +-msgstr "" +-"détaille les résultats de résolution des dépendances dans des fichiers" ++msgstr "détaille les résultats de résolution des dépendances dans des fichiers" + + #: dnf/cli/option_parser.py:240 + msgid "show duplicates, in repos, in list/search commands" +@@ -2691,8 +2707,8 @@ msgid "" + "capabilities that the package obsoletes for info, list and repoquery" + msgstr "" + "active la mécanique de traitement des paquets obsolètes de {prog} pour les " +-"mises à jour ou affiche les fonctionnalités qu’un paquet rend obsolètes pour" +-" les commandes « info », « list » et « repoquery »" ++"mises à jour ou affiche les fonctionnalités qu’un paquet rend obsolètes pour " ++"les commandes « info », « list » et « repoquery »" + + #: dnf/cli/option_parser.py:251 + msgid "debugging output level for rpm" +@@ -2716,8 +2732,8 @@ msgstr "" + + #: dnf/cli/option_parser.py:266 + msgid "" +-"Disable repositories. List option. Supports globs, can be specified multiple" +-" times." ++"Disable repositories. List option. Supports globs, can be specified multiple " ++"times." + msgstr "" + "Désactive les dépôts. Option de liste. Prend en charge les globs, peut être " + "renseigné plusieurs fois." +@@ -2727,8 +2743,8 @@ msgid "" + "enable just specific repositories by an id or a glob, can be specified " + "multiple times" + msgstr "" +-"active seulement des dépôts spécifiques par id ou par le caractère générique" +-" (*), peut être spécifié plusieurs fois" ++"active seulement des dépôts spécifiques par id ou par le caractère générique " ++"(*), peut être spécifié plusieurs fois" + + #: dnf/cli/option_parser.py:275 + msgid "enable repos with config-manager command (automatically saves)" +@@ -2823,8 +2839,8 @@ msgstr "" + #: dnf/cli/option_parser.py:339 + msgid "Include packages needed to fix the given BZ, in updates" + msgstr "" +-"Inclut dans les mises à jour les paquets nécessaires pour résoudre le ticket" +-" BugZilla cité" ++"Inclut dans les mises à jour les paquets nécessaires pour résoudre le ticket " ++"BugZilla cité" + + #: dnf/cli/option_parser.py:342 + msgid "Include packages needed to fix the given CVE, in updates" +@@ -3094,7 +3110,7 @@ msgstr "Licence  : %s" + #: dnf/cli/output.py:871 + #, python-format + msgid "Provide : %s" +-msgstr "Provide : %s" ++msgstr "Fournir : %s" + + #: dnf/cli/output.py:891 + #, python-format +@@ -3125,8 +3141,7 @@ msgstr "Taille des paquets installés : %s" + #: dnf/cli/output.py:970 + msgid "There was an error calculating installed size" + msgstr "" +-"Une erreur est survenue pendant le calcul de la taille des paquets " +-"installées" ++"Une erreur est survenue pendant le calcul de la taille des paquets installées" + + #: dnf/cli/output.py:974 + #, python-format +@@ -3471,7 +3486,7 @@ msgstr "Échec :" + + #: dnf/cli/output.py:1764 dnf/cli/output.py:1766 + msgid "Releasever :" +-msgstr "Releasever :" ++msgstr "Version :" + + #: dnf/cli/output.py:1771 dnf/cli/output.py:1773 + msgid "Command Line :" +@@ -3606,8 +3621,8 @@ msgstr "Inconnu" + #, python-format + msgid "Unable to find information about the locking process (PID %d)" + msgstr "" +-"Impossible de trouver des informations sur le processus de verrouillage (PID" +-" %d)" ++"Impossible de trouver des informations sur le processus de verrouillage (PID " ++"%d)" + + #: dnf/cli/utils.py:117 + #, python-format +@@ -3629,10 +3644,6 @@ msgstr " A débuté  : %s - il y a %s" + msgid " State : %s" + msgstr " État : %s" + +-#: dnf/comps.py:104 +-msgid "skipping." +-msgstr "ignorer." +- + #: dnf/comps.py:196 dnf/comps.py:692 dnf/comps.py:706 + #, python-format + msgid "Module or Group '%s' is not installed." +@@ -3683,11 +3694,15 @@ msgstr "Erreur lors l’analyse de « %s » : %s" + msgid "Invalid configuration value: %s=%s in %s; %s" + msgstr "Valeur de configuration non valide : %s=%s dans %s ; %s" + +-#: dnf/conf/config.py:226 ++#: dnf/conf/config.py:194 ++msgid "Cannot set \"{}\" to \"{}\": {}" ++msgstr "Impossible de définir \"{}\" à \"{}\" : {}" ++ ++#: dnf/conf/config.py:244 + msgid "Could not set cachedir: {}" + msgstr "N’a pas pu définir cachedir : {}" + +-#: dnf/conf/config.py:275 ++#: dnf/conf/config.py:293 + msgid "" + "Configuration file URL \"{}\" could not be downloaded:\n" + " {}" +@@ -3695,33 +3710,33 @@ msgstr "" + "L’URL du fichier de configuration « {} » n’a pas pu être téléchargée :\n" + " {}" + +-#: dnf/conf/config.py:355 dnf/conf/config.py:391 ++#: dnf/conf/config.py:373 dnf/conf/config.py:409 + #, python-format + msgid "Unknown configuration option: %s = %s" + msgstr "Option de configuration inconnue : %s=%s" + +-#: dnf/conf/config.py:372 ++#: dnf/conf/config.py:390 + #, python-format + msgid "Error parsing --setopt with key '%s', value '%s': %s" + msgstr "" + "Erreur lors l’analyse de --setopt avec la clef « %s », valeur « %s » : %s" + +-#: dnf/conf/config.py:380 ++#: dnf/conf/config.py:398 + #, python-format + msgid "Main config did not have a %s attr. before setopt" + msgstr "La config principale n’avait pas d’attr. %s avant setopt" + +-#: dnf/conf/config.py:427 dnf/conf/config.py:445 ++#: dnf/conf/config.py:445 dnf/conf/config.py:463 + msgid "Incorrect or unknown \"{}\": {}" + msgstr "Incorrect ou inconnu « {} » : {}" + +-#: dnf/conf/config.py:501 ++#: dnf/conf/config.py:519 + #, python-format + msgid "Error parsing --setopt with key '%s.%s', value '%s': %s" + msgstr "" + "Erreur lors l’analyse de --setopt avec la clef « %s.%s », valeur « %s » : %s" + +-#: dnf/conf/config.py:504 ++#: dnf/conf/config.py:522 + #, python-format + msgid "Repo %s did not have a %s attr. before setopt" + msgstr "Le dépôt « %s » n’avait pas d’attr. %s avant setopt" +@@ -3796,7 +3811,7 @@ msgstr "" + #: dnf/db/group.py:353 + #, python-format + msgid "An rpm exception occurred: %s" +-msgstr "Une exception rpm s’est produite : %s" ++msgstr "Une exception rpm s'est produite : %s" + + #: dnf/db/group.py:355 + msgid "No available modular metadata for modular package" +@@ -3807,34 +3822,34 @@ msgstr "Aucune métadonnée de module disponible pour le paquet modulaire" + msgid "Will not install a source rpm package (%s)." + msgstr "Un paquet source rpm ne sera pas installé (%s)." + +-#: dnf/dnssec.py:168 ++#: dnf/dnssec.py:171 + msgid "" + "Configuration option 'gpgkey_dns_verification' requires python3-unbound ({})" + msgstr "" +-"L’option de configuration « gpgkey_dns_verification » nécessite " +-"python3-unbound({})" ++"L’option de configuration « gpgkey_dns_verification » nécessite python3-" ++"unbound({})" + +-#: dnf/dnssec.py:239 ++#: dnf/dnssec.py:243 + msgid "DNSSEC extension: Key for user " + msgstr "Extension DNSSEC : clef pour l’utilisateur " + +-#: dnf/dnssec.py:241 ++#: dnf/dnssec.py:245 + msgid "is valid." + msgstr "est valide." + +-#: dnf/dnssec.py:243 ++#: dnf/dnssec.py:247 + msgid "has unknown status." + msgstr "a un statut inconnu." + +-#: dnf/dnssec.py:251 ++#: dnf/dnssec.py:255 + msgid "DNSSEC extension: " + msgstr "extension DNSSEC : " + +-#: dnf/dnssec.py:283 ++#: dnf/dnssec.py:287 + msgid "Testing already imported keys for their validity." + msgstr "Test de validité des clefs déjà importées." + +-#: dnf/drpm.py:62 dnf/repo.py:268 ++#: dnf/drpm.py:62 dnf/repo.py:267 + #, python-format + msgid "unsupported checksum type: %s" + msgstr "type de somme de contrôle non pris en charge : %s" +@@ -3877,7 +3892,7 @@ msgid_plural "Modular dependency problems with Defaults:" + msgstr[0] "Problème de dépendance modulaire avec les valeurs par défaut :" + msgstr[1] "Problèmes de dépendance modulaire avec les valeurs par défaut :" + +-#: dnf/exceptions.py:131 dnf/module/module_base.py:854 ++#: dnf/exceptions.py:131 dnf/module/module_base.py:857 + msgid "Modular dependency problem:" + msgid_plural "Modular dependency problems:" + msgstr[0] "Problème de dépendance modulaire :" +@@ -3887,10 +3902,12 @@ msgstr[1] "Problèmes de dépendance modulaire :" + #, python-format + msgid "" + "Malformed lock file found: %s.\n" +-"Ensure no other dnf/yum process is running and remove the lock file manually or run systemd-tmpfiles --remove dnf.conf." ++"Ensure no other dnf/yum process is running and remove the lock file manually " ++"or run systemd-tmpfiles --remove dnf.conf." + msgstr "" + "Fichier verrou malformé trouvé : %s.\n" +-"Assurez-vous qu’aucun autre processus {prog} n’est en cours d’exécution et supprimez le fichier verrou, ou exécutez systemd-tmpfiles --remove dnf.conf." ++"Assurez-vous qu’aucun autre processus {prog} n’est en cours d’exécution et " ++"supprimez le fichier verrou, ou exécutez systemd-tmpfiles --remove dnf.conf." + + #: dnf/module/__init__.py:26 + msgid "Enabling different stream for '{}'." +@@ -3975,7 +3992,7 @@ msgstr "" + "Aide : [d]éfaut, [e]activé, [x]désactivé, [i]nstallé, [a]ctivé" + + #: dnf/module/module_base.py:56 dnf/module/module_base.py:556 +-#: dnf/module/module_base.py:615 dnf/module/module_base.py:681 ++#: dnf/module/module_base.py:615 dnf/module/module_base.py:684 + msgid "Ignoring unnecessary profile: '{}/{}'" + msgstr "Profil inutile ignoré : {}/{}" + +@@ -3983,8 +4000,8 @@ msgstr "Profil inutile ignoré : {}/{}" + #, python-brace-format + msgid "All matches for argument '{0}' in module '{1}:{2}' are not active" + msgstr "" +-"Toutes les correspondances pour le paramètre « {0} » dans le mode module « " +-"{1}:{2} » ne sont pas actives" ++"Toutes les correspondances pour le paramètre « {0} » dans le mode module " ++"« {1}:{2} » ne sont pas actives" + + #: dnf/module/module_base.py:94 dnf/module/module_base.py:204 + #, python-brace-format +@@ -4006,8 +4023,7 @@ msgstr "Impossible de faire correspondre le profil pour l’argument {}" + + #: dnf/module/module_base.py:120 + msgid "No default profiles for module {}:{}. Available profiles: {}" +-msgstr "" +-"Aucun profil par défaut pour le module {}:{}. Profils disponibles : {}" ++msgstr "Aucun profil par défaut pour le module {}:{}. Profils disponibles : {}" + + #: dnf/module/module_base.py:124 + msgid "No profiles for module {}:{}" +@@ -4019,15 +4035,14 @@ msgstr "Le profil par défaut {} n’est pas disponible dans le module {} : {}" + + #: dnf/module/module_base.py:144 dnf/module/module_base.py:247 + msgid "Installing module from Fail-Safe repository is not allowed" +-msgstr "" +-"L’installation du module à partir du dépôt Fail-Safe n’est pas permise" ++msgstr "L’installation du module à partir du dépôt Fail-Safe n’est pas permise" + + #: dnf/module/module_base.py:196 + #, python-brace-format + msgid "No active matches for argument '{0}' in module '{1}:{2}'" + msgstr "" +-"Aucune correspondance active pour le paramètre « {0} » dans le module « " +-"{1}:{2} »" ++"Aucune correspondance active pour le paramètre « {0} » dans le module « {1}:" ++"{2} »" + + #: dnf/module/module_base.py:228 + #, python-brace-format +@@ -4043,7 +4058,7 @@ msgstr "Aucun paquet distrosync disponible pour le nom de paquet « {} »" + #: dnf/module/module_base.py:310 dnf/module/module_base.py:461 + #: dnf/module/module_base.py:486 dnf/module/module_base.py:505 + #: dnf/module/module_base.py:552 dnf/module/module_base.py:611 +-#: dnf/module/module_base.py:677 dnf/module/module_base.py:840 ++#: dnf/module/module_base.py:680 dnf/module/module_base.py:843 + msgid "Unable to resolve argument {}" + msgstr "Impossible de résoudre le paramètre {}" + +@@ -4051,8 +4066,8 @@ msgstr "Impossible de résoudre le paramètre {}" + #, python-brace-format + msgid "Upgrading module '{0}' from Fail-Safe repository {1} is not allowed" + msgstr "" +-"La mise à niveau du module « {0} » à partir du dépôt Fail-Safe {1} n’est pas" +-" permise" ++"La mise à niveau du module « {0} » à partir du dépôt Fail-Safe {1} n’est pas " ++"permise" + + #: dnf/module/module_base.py:340 dnf/module/module_base.py:368 + msgid "Unable to match profile in argument {}" +@@ -4066,21 +4081,20 @@ msgstr "" + #: dnf/module/module_base.py:422 + #, python-brace-format + msgid "" +-"Argument '{argument}' matches {stream_count} streams ('{streams}') of module" +-" '{module}', but none of the streams are enabled or default" ++"Argument '{argument}' matches {stream_count} streams ('{streams}') of module " ++"'{module}', but none of the streams are enabled or default" + msgstr "" + "L'argument « {argument} » correspond à {stream_count} flux (« {streams} ») " + "du module « {module} », mais aucun des flux n'est activé ou par défaut" + + #: dnf/module/module_base.py:509 + msgid "" +-"Only module name is required. Ignoring unneeded information in argument: " +-"'{}'" ++"Only module name is required. Ignoring unneeded information in argument: '{}'" + msgstr "" + "Seul le nom du module est nécessaire. Les paramètres inutiles ont été " + "ignorés : « {} »" + +-#: dnf/module/module_base.py:841 ++#: dnf/module/module_base.py:844 + msgid "No match for package {}" + msgstr "Aucune correspondance pour le paquet {}" + +@@ -4131,8 +4145,8 @@ msgstr "" + #: dnf/plugin.py:247 + msgid "No matches found for the following disable plugin patterns: {}" + msgstr "" +-"Aucun élément correspondant aux modèles de plugin de désactivation suivants " +-": {}" ++"Aucun élément correspondant aux modèles de plugin de désactivation " ++"suivants : {}" + + #: dnf/repo.py:84 + #, python-format +@@ -4144,7 +4158,7 @@ msgid "Already downloaded" + msgstr "Déjà téléchargé" + + #. pinging mirrors, this might take a while +-#: dnf/repo.py:347 ++#: dnf/repo.py:346 + #, python-format + msgid "determining the fastest mirror (%s hosts).. " + msgstr "détermination du miroir le plus rapide (%s hôtes).. " +@@ -4160,18 +4174,26 @@ msgid "Added %s repo from %s" + msgstr "Ajout du dépôt %s depuis le %s" + + #: dnf/rpm/miscutils.py:32 +-#, fuzzy, python-format +-#| msgid "Cannot find rpmkeys executable to verify signatures." ++#, python-format + msgid "Using rpmkeys executable at %s to verify signatures" + msgstr "" +-"Impossible de trouver l’exécutable rpmkeys pour vérifier les signatures." ++"Utilisation de l'exécutable rpmkeys dans %s pour vérifier les signatures" + + #: dnf/rpm/miscutils.py:66 + msgid "Cannot find rpmkeys executable to verify signatures." + msgstr "" + "Impossible de trouver l’exécutable rpmkeys pour vérifier les signatures." + +-#: dnf/rpm/transaction.py:119 ++#: dnf/rpm/transaction.py:70 ++msgid "The openDB() function connot open rpm database." ++msgstr "La fonction openDB() n'ouvre pas de base de données rpm." ++ ++#: dnf/rpm/transaction.py:75 ++msgid "The dbCookie() function did not return cookie of rpm database." ++msgstr "" ++"La fonction dbCookie() n'a pas retourné le cookie de la base de données rpm." ++ ++#: dnf/rpm/transaction.py:135 + msgid "Errors occurred during test transaction." + msgstr "Des erreurs sont survenues lors de la transaction de test." + +@@ -4180,8 +4202,8 @@ msgid "" + "allow_vendor_change is disabled. This option is currently not supported for " + "downgrade and distro-sync commands" + msgstr "" +-"allow_vendor_change est désactivé. Cette option n’est actuellement pas prise" +-" en charge pour les commandes downgrade et distro-sync" ++"allow_vendor_change est désactivé. Cette option n’est actuellement pas prise " ++"en charge pour les commandes downgrade et distro-sync" + + #. TRANSLATORS: This is for a single package currently being downgraded. + #: dnf/transaction.py:80 +@@ -4259,8 +4281,8 @@ msgid "" + "Incompatible major version \"{major}\", supported major version is " + "\"{major_supp}\"." + msgstr "" +-"Version majeure incompatible « {major} », la version majeure prise en charge" +-" est « {major_supp} »." ++"Version majeure incompatible « {major} », la version majeure prise en charge " ++"est « {major_supp} »." + + #: dnf/transaction_sr.py:224 + msgid "" +@@ -4286,7 +4308,8 @@ msgstr "Clé objet « {key} » manquante dans un rpm." + + #: dnf/transaction_sr.py:289 + #, python-brace-format +-msgid "Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." ++msgid "" ++"Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." + msgstr "" + "Valeur inattendue pour le paquet de raison « {reason} » pour le rpm nevra " + "« {nevra} »." +@@ -4323,7 +4346,8 @@ msgstr "" + + #: dnf/transaction_sr.py:370 + #, python-brace-format +-msgid "Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." ++msgid "" ++"Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." + msgstr "" + "Valeur inattendue pour l’action de paquet « {action} » pour le rpm nevra " + "« {nevra} »." +@@ -4376,7 +4400,9 @@ msgstr "Clé d’objet « {key} » manquante dans un groupe." + + #: dnf/transaction_sr.py:571 + #, python-brace-format +-msgid "Unexpected value of environment action \"{action}\" for environment \"{env}\"." ++msgid "" ++"Unexpected value of environment action \"{action}\" for environment " ++"\"{env}\"." + msgstr "" + "Valeur inattendue pour l’action d’environnement « {action} » pour " + "l’environnement « {env} »." +@@ -4389,8 +4415,8 @@ msgstr "Clé d’objet « {key} » manquante dans un environnement." + #: dnf/transaction_sr.py:615 + #, python-brace-format + msgid "" +-"Package nevra \"{nevra}\", which is not present in the transaction file, was" +-" pulled into the transaction." ++"Package nevra \"{nevra}\", which is not present in the transaction file, was " ++"pulled into the transaction." + msgstr "" + "Le paquet nevra « {nevra} », qui n’est pas présent dans le fichier de " + "transaction, a été retiré de la transaction." +@@ -4432,12 +4458,15 @@ msgstr "Échec" + msgid "" + msgstr "" + ++#~ msgid "skipping." ++#~ msgstr "ignorer." ++ + #~ msgid "" + #~ "Using rpmkeys executable from {path} to verify signature for package: " + #~ "{package}." + #~ msgstr "" +-#~ "Utilisation de l’exécutable rpmkeys de {path} pour vérifier la signature du " +-#~ "paquet : {package}." ++#~ "Utilisation de l'exécutable rpmkeys de {path} pour vérifier la signature " ++#~ "du package : {package}." + + #~ msgid "%s: %s check failed: %s vs %s" + #~ msgstr "%s : %s vérification a échoué : %s vs %s" +@@ -4452,7 +4481,7 @@ msgstr "" + #~ msgstr "L’identifiant de transaction fourni est introuvable" + + #~ msgid "Undoing transaction {}, from {}" +-#~ msgstr "Révocation de la transaction {}, de {}" ++#~ msgstr "Révocation de lla transaction {}, de {}" + + #~ msgid "Errors in \"{filename}\":" + #~ msgstr "Erreurs dans « {filename} » :" +@@ -4464,13 +4493,15 @@ msgstr "" + #~ msgstr "format d’affichage des paquets trouvés" + + #~ msgid "Available query-tags: use --queryformat \".. %{tag} ..\"" +-#~ msgstr "Balises de requêtes disponibles : utiliser --queryformat \"..%{tag}..\"" ++#~ msgstr "" ++#~ "Balises de requêtes disponibles : utiliser --queryformat \"..%{tag}..\"" + + #~ msgid "Bad transaction IDs, or package(s), given" + #~ msgstr "Des paquets ou identifiants de transaction fournis sont erronés" + + #~ msgid "" +-#~ "Display capabilities that the package depends on for running a %%pre script." ++#~ "Display capabilities that the package depends on for running a %%pre " ++#~ "script." + #~ msgstr "" + #~ "Affiche les fonctionnalités dont le paquet dépend pour le lancement d’un " + #~ "script %%pre." +diff --git a/po/ja.po b/po/ja.po +index e81d5ceb..e1f463ce 100644 +--- a/po/ja.po ++++ b/po/ja.po +@@ -14,7 +14,7 @@ + # Hajime Taira , 2017. #zanata + # Ooyama Yosiyuki , 2017. #zanata + # Casey Jones , 2018. #zanata +-# Ludek Janda , 2018. #zanata ++# Ludek Janda , 2018. #zanata, 2021. + # Noriko Mizumoto , 2018. #zanata + # Ooyama Yosiyuki , 2018. #zanata + # Hajime Taira , 2019. #zanata +@@ -22,20 +22,23 @@ + # Julien Humbert , 2020. + # Casey Jones , 2020. + # Hajime Taira , 2020. ++# Sundeep Anand , 2021. ++# Transtats , 2022. + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2021-06-13 09:18-0400\n" +-"PO-Revision-Date: 2020-07-27 05:29+0000\n" +-"Last-Translator: Hajime Taira \n" +-"Language-Team: Japanese \n" ++"POT-Creation-Date: 2022-02-28 11:37+0100\n" ++"PO-Revision-Date: 2022-03-09 12:39+0000\n" ++"Last-Translator: Transtats \n" ++"Language-Team: Japanese \n" + "Language: ja\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=1; plural=0;\n" +-"X-Generator: Weblate 4.1.1\n" ++"X-Generator: Weblate 4.11.2\n" + + #: dnf/automatic/emitter.py:32 + #, python-format +@@ -45,7 +48,7 @@ msgstr "'%s' に以下の更新が適用されました:" + #: dnf/automatic/emitter.py:33 + #, python-format + msgid "Updates completed at %s" +-msgstr "'%s' に更新が適用されました。" ++msgstr "'%s' に更新が適用されました" + + #: dnf/automatic/emitter.py:34 + #, python-format +@@ -105,11 +108,9 @@ msgid "Started dnf-automatic." + msgstr "dnf-automatic を開始しました。" + + #: dnf/automatic/main.py:308 +-#, fuzzy +-#| msgid "Sleep for %s seconds" + msgid "Sleep for {} second" + msgid_plural "Sleep for {} seconds" +-msgstr[0] "%s 秒スリープします" ++msgstr[0] "{} 秒スリープします" + + #: dnf/automatic/main.py:315 + msgid "System is off-line." +@@ -131,11 +132,13 @@ msgstr "repository '{}' のロードに失敗しました" + + #: dnf/base.py:327 + msgid "Metadata timer caching disabled when running on metered connection." +-msgstr "metered 接続で実行する際、メタデータタイマーキャッシュは無効化されました。" ++msgstr "" ++"metered 接続で実行する際、メタデータタイマーキャッシュは無効化されました。" + + #: dnf/base.py:332 + msgid "Metadata timer caching disabled when running on a battery." +-msgstr "バッテリーで実行する際、メタデータタイマーキャッシュは無効化されました。" ++msgstr "" ++"バッテリーで実行する際、メタデータタイマーキャッシュは無効化されました。" + + #: dnf/base.py:337 + msgid "Metadata timer caching disabled." +@@ -178,7 +181,7 @@ msgstr "メタデータキャッシュを作成しました。" + #: dnf/base.py:404 dnf/base.py:471 + #, python-format + msgid "%s: using metadata from %s." +-msgstr "%s: は %s から取得したメタデータを使用中" ++msgstr "%s: は %s から取得したメタデータを使用中。" + + #: dnf/base.py:416 dnf/base.py:484 + #, python-format +@@ -194,7 +197,9 @@ msgstr "メタデータの期限切れの最終確認: %s 時間前の %s に実 + msgid "" + "The downloaded packages were saved in cache until the next successful " + "transaction." +-msgstr "ダウンロード済みのパッケージは、次の正常なトランザクションまでキャッシュに保存されました。" ++msgstr "" ++"ダウンロード済みのパッケージは、次の正常なトランザクションまでキャッシュに保" ++"存されました。" + + #: dnf/base.py:514 + #, python-format +@@ -211,158 +216,159 @@ msgstr "設定ファイルの tsflag が無効です: %s" + msgid "Failed to add groups file for repository: %s - %s" + msgstr "リポジトリーのグループファイルを追加できませんでした: %s - %s" + +-#: dnf/base.py:904 ++#: dnf/base.py:922 + msgid "Running transaction check" + msgstr "トランザクションの確認を実行中" + +-#: dnf/base.py:912 ++#: dnf/base.py:930 + msgid "Error: transaction check vs depsolve:" + msgstr "エラー: トランザクションの確認 vs depsolve:" + +-#: dnf/base.py:918 ++#: dnf/base.py:936 + msgid "Transaction check succeeded." + msgstr "トランザクションの確認に成功しました。" + +-#: dnf/base.py:921 ++#: dnf/base.py:939 + msgid "Running transaction test" + msgstr "トランザクションのテストを実行中" + +-#: dnf/base.py:931 dnf/base.py:1082 ++#: dnf/base.py:949 dnf/base.py:1100 + msgid "RPM: {}" + msgstr "RPM: {}" + +-#: dnf/base.py:932 ++#: dnf/base.py:950 + msgid "Transaction test error:" + msgstr "トランザクションテストエラー:" + +-#: dnf/base.py:943 ++#: dnf/base.py:961 + msgid "Transaction test succeeded." + msgstr "トランザクションのテストに成功しました。" + +-#: dnf/base.py:964 ++#: dnf/base.py:982 + msgid "Running transaction" + msgstr "トランザクションを実行中" + +-#: dnf/base.py:1001 ++#: dnf/base.py:1019 + msgid "Disk Requirements:" +-msgstr "ディスク要件" ++msgstr "ディスク要件:" + +-#: dnf/base.py:1004 ++#: dnf/base.py:1022 + #, python-brace-format + msgid "At least {0}MB more space needed on the {1} filesystem." + msgid_plural "At least {0}MB more space needed on the {1} filesystem." + msgstr[0] "{1} ファイルシステムに最低 {0}MB の追加スペースが必要です。" + +-#: dnf/base.py:1011 ++#: dnf/base.py:1029 + msgid "Error Summary" + msgstr "エラーの概要" + +-#: dnf/base.py:1037 ++#: dnf/base.py:1055 + #, python-brace-format + msgid "RPMDB altered outside of {prog}." + msgstr "RPMDBは {prog} のサポート外に変更されました。" + +-#: dnf/base.py:1083 dnf/base.py:1091 ++#: dnf/base.py:1101 dnf/base.py:1109 + msgid "Could not run transaction." + msgstr "トランザクションを実行できませんでした。" + +-#: dnf/base.py:1086 ++#: dnf/base.py:1104 + msgid "Transaction couldn't start:" + msgstr "トランザクションを開始できませんでした:" + +-#: dnf/base.py:1100 ++#: dnf/base.py:1118 + #, python-format + msgid "Failed to remove transaction file %s" + msgstr "トランザクションファイル %s の削除に失敗しました" + +-#: dnf/base.py:1182 ++#: dnf/base.py:1200 + msgid "Some packages were not downloaded. Retrying." + msgstr "一部のパッケージはダウンロードされませんでした。再試行中です。" + +-#: dnf/base.py:1212 +-#, fuzzy, python-format +-#| msgid "" +-#| "Delta RPMs reduced %.1f MB of updates to %.1f MB (%d.1%% saved)" ++#: dnf/base.py:1230 ++#, python-format + msgid "Delta RPMs reduced %.1f MB of updates to %.1f MB (%.1f%% saved)" +-msgstr "Delta RPM により %.1f MB の更新を %.1f MB に削減できました。(%d.1%% がキャッシュされていました)" ++msgstr "デルタ RPM は、更新の %.1f MB を %.1f MB に削減しました (%.1f%% " ++"節約しました)。" + +-#: dnf/base.py:1216 +-#, fuzzy, python-format +-#| msgid "" +-#| "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%d.1%% wasted)" ++#: dnf/base.py:1234 ++#, python-format + msgid "" + "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%.1f%% wasted)" +-msgstr "非効率な Delta RPM により %.1f MB の更新が増加し、%.1f MB となりました。(%d.1%% が無駄になりました)" ++msgstr "失敗した Delta RPMs は、更新の %.1f MB を %.1f MB に増加しました (%.1f%% " ++"は無駄になりました)" + +-#: dnf/base.py:1258 ++#: dnf/base.py:1276 + msgid "Cannot add local packages, because transaction job already exists" +-msgstr "ローカルパッケージを追加できません、トランザクションジョブがすでに存在するためです" ++msgstr "" ++"ローカルパッケージを追加できません、トランザクションジョブがすでに存在するた" ++"めです" + +-#: dnf/base.py:1272 ++#: dnf/base.py:1290 + msgid "Could not open: {}" + msgstr "開くことができませんでした: {}" + +-#: dnf/base.py:1310 ++#: dnf/base.py:1328 + #, python-format + msgid "Public key for %s is not installed" + msgstr "%s の公開鍵がインストールされていません" + +-#: dnf/base.py:1314 ++#: dnf/base.py:1332 + #, python-format + msgid "Problem opening package %s" + msgstr "パッケージ %s を開くことができません" + +-#: dnf/base.py:1322 ++#: dnf/base.py:1340 + #, python-format + msgid "Public key for %s is not trusted" + msgstr "%s の公開鍵は信頼されていません" + +-#: dnf/base.py:1326 ++#: dnf/base.py:1344 + #, python-format + msgid "Package %s is not signed" + msgstr "パッケージ %s は署名されていません" + +-#: dnf/base.py:1356 ++#: dnf/base.py:1374 + #, python-format + msgid "Cannot remove %s" + msgstr "%s を削除できません" + +-#: dnf/base.py:1360 ++#: dnf/base.py:1378 + #, python-format + msgid "%s removed" + msgstr "%s を削除しました" + +-#: dnf/base.py:1640 ++#: dnf/base.py:1658 + msgid "No match for group package \"{}\"" +-msgstr "グループパッケージ \"{}\" に一致するものはありません" ++msgstr "グループパッケージ \"{}\" に一致するものはありません" + +-#: dnf/base.py:1726 ++#: dnf/base.py:1740 + #, python-format + msgid "Adding packages from group '%s': %s" + msgstr "グループ '%s' からのパッケージを追加します: %s" + +-#: dnf/base.py:1749 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 ++#: dnf/base.py:1763 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 + #: dnf/cli/commands/__init__.py:494 dnf/cli/commands/__init__.py:587 + #: dnf/cli/commands/__init__.py:636 dnf/cli/commands/install.py:80 + #: dnf/cli/commands/install.py:103 dnf/cli/commands/install.py:110 + msgid "Nothing to do." + msgstr "行うべきことはありません。" + +-#: dnf/base.py:1767 ++#: dnf/base.py:1781 + msgid "No groups marked for removal." + msgstr "削除対象のパッケージはありません。" + +-#: dnf/base.py:1801 ++#: dnf/base.py:1815 + msgid "No group marked for upgrade." + msgstr "アップグレード対象のグループはありません。" + +-#: dnf/base.py:2015 ++#: dnf/base.py:2029 + #, python-format + msgid "Package %s not installed, cannot downgrade it." +-msgstr "パッケージ %s はインストールされていないので、ダウングレードできません。" ++msgstr "" ++"パッケージ %s はインストールされていないので、ダウングレードできません。" + +-#: dnf/base.py:2017 dnf/base.py:2036 dnf/base.py:2049 dnf/base.py:2076 +-#: dnf/base.py:2129 dnf/base.py:2137 dnf/base.py:2271 dnf/cli/cli.py:417 ++#: dnf/base.py:2031 dnf/base.py:2050 dnf/base.py:2063 dnf/base.py:2090 ++#: dnf/base.py:2143 dnf/base.py:2151 dnf/base.py:2285 dnf/cli/cli.py:417 + #: dnf/cli/commands/__init__.py:420 dnf/cli/commands/__init__.py:477 + #: dnf/cli/commands/__init__.py:581 dnf/cli/commands/__init__.py:628 + #: dnf/cli/commands/__init__.py:706 dnf/cli/commands/install.py:147 +@@ -372,178 +378,197 @@ msgstr "パッケージ %s はインストールされていないので、ダ + msgid "No match for argument: %s" + msgstr "一致した引数がありません: %s" + +-#: dnf/base.py:2024 ++#: dnf/base.py:2038 + #, python-format + msgid "Package %s of lower version already installed, cannot downgrade it." +-msgstr "下位バージョンのパッケージ %s はインストール済みなので、ダウングレードできません。" ++msgstr "" ++"下位バージョンのパッケージ %s はインストール済みなので、ダウングレードできま" ++"せん。" + +-#: dnf/base.py:2047 ++#: dnf/base.py:2061 + #, python-format + msgid "Package %s not installed, cannot reinstall it." +-msgstr "パッケージ %s はインストールされていないのでの、再インストールできません。" ++msgstr "" ++"パッケージ %s はインストールされていないのでの、再インストールできません。" + +-#: dnf/base.py:2062 ++#: dnf/base.py:2076 + #, python-format + msgid "File %s is a source package and cannot be updated, ignoring." + msgstr "ファイル %s はソースパッケージで更新できません。無視します。" + +-#: dnf/base.py:2073 ++#: dnf/base.py:2087 + #, python-format + msgid "Package %s not installed, cannot update it." + msgstr "パッケージ %s はインストールされていないので、更新できません。" + +-#: dnf/base.py:2083 ++#: dnf/base.py:2097 + #, python-format + msgid "" + "The same or higher version of %s is already installed, cannot update it." +-msgstr "同じまたはさらに新しいバージョンの %s が既にインストールされています、アップデートできません。" ++msgstr "" ++"同じまたはさらに新しいバージョンの %s が既にインストールされています、アップ" ++"デートできません。" + +-#: dnf/base.py:2126 dnf/cli/commands/reinstall.py:81 ++#: dnf/base.py:2140 dnf/cli/commands/reinstall.py:81 + #, python-format + msgid "Package %s available, but not installed." + msgstr "パッケージ %s は利用可能ですが、インストールされていません。" + +-#: dnf/base.py:2132 ++#: dnf/base.py:2146 + #, python-format + msgid "Package %s available, but installed for different architecture." +-msgstr "パッケージ %s は利用可能ですが、他のアーキテクチャー用にインストールされています。" ++msgstr "" ++"パッケージ %s は利用可能ですが、他のアーキテクチャー用にインストールされてい" ++"ます。" + +-#: dnf/base.py:2157 ++#: dnf/base.py:2171 + #, python-format + msgid "No package %s installed." + msgstr "パッケージ %s はインストールされていません。" + +-#: dnf/base.py:2175 dnf/cli/commands/install.py:136 ++#: dnf/base.py:2189 dnf/cli/commands/install.py:136 + #: dnf/cli/commands/remove.py:133 + #, python-format + msgid "Not a valid form: %s" + msgstr "有効な形式ではありません: %s" + +-#: dnf/base.py:2190 dnf/cli/commands/__init__.py:676 ++#: dnf/base.py:2204 dnf/cli/commands/__init__.py:676 + #: dnf/cli/commands/remove.py:162 + msgid "No packages marked for removal." + msgstr "削除対象のパッケージはありません。" + +-#: dnf/base.py:2278 dnf/cli/cli.py:428 ++#: dnf/base.py:2292 dnf/cli/cli.py:428 + #, python-format + msgid "Packages for argument %s available, but not installed." +-msgstr "引数 %s のパッケージは利用可能ですが、インストールされていません。" ++msgstr "引数 %s のパッケージは利用可能ですが、インストールされていません。" + +-#: dnf/base.py:2283 ++#: dnf/base.py:2297 + #, python-format + msgid "Package %s of lowest version already installed, cannot downgrade it." +-msgstr "最下位バージョンのパッケージ %s はインストール済みなので、ダウングレードできません。" ++msgstr "" ++"最下位バージョンのパッケージ %s はインストール済みなので、ダウングレードでき" ++"ません。" + +-#: dnf/base.py:2383 ++#: dnf/base.py:2397 + msgid "No security updates needed, but {} update available" + msgstr "セキュリティー更新は必要ありませんが、{} 更新が利用可能です" + +-#: dnf/base.py:2385 ++#: dnf/base.py:2399 + msgid "No security updates needed, but {} updates available" + msgstr "セキュリティー更新は必要ありませんが、{} 更新が利用可能です" + +-#: dnf/base.py:2389 ++#: dnf/base.py:2403 + msgid "No security updates needed for \"{}\", but {} update available" + msgstr "\"{}\" のセキュリティー更新は必要ありませんが、{} 更新が利用可能です" + +-#: dnf/base.py:2391 ++#: dnf/base.py:2405 + msgid "No security updates needed for \"{}\", but {} updates available" + msgstr "\"{}\" のセキュリティー更新は必要ありませんが、{} 更新が利用可能です" + + #. raise an exception, because po.repoid is not in self.repos +-#: dnf/base.py:2412 ++#: dnf/base.py:2426 + #, python-format + msgid "Unable to retrieve a key for a commandline package: %s" +-msgstr "" ++msgstr "コマンドラインパッケージのキーを取得できません: %s" + +-#: dnf/base.py:2420 ++#: dnf/base.py:2434 + #, python-format + msgid ". Failing package is: %s" + msgstr ". 失敗したパッケージは: %s" + +-#: dnf/base.py:2421 ++#: dnf/base.py:2435 + #, python-format + msgid "GPG Keys are configured as: %s" + msgstr "GPG 鍵が設定されています: %s" + +-#: dnf/base.py:2433 ++#: dnf/base.py:2447 + #, python-format + msgid "GPG key at %s (0x%s) is already installed" + msgstr "%s (0x%s) の GPG 鍵はインストール済みです" + +-#: dnf/base.py:2469 ++#: dnf/base.py:2483 + msgid "The key has been approved." + msgstr "鍵が承認されました。" + +-#: dnf/base.py:2472 ++#: dnf/base.py:2486 + msgid "The key has been rejected." + msgstr "鍵が拒否されました。" + +-#: dnf/base.py:2505 ++#: dnf/base.py:2519 + #, python-format + msgid "Key import failed (code %d)" + msgstr "鍵のインポートに失敗しました (コード: %d)" + +-#: dnf/base.py:2507 ++#: dnf/base.py:2521 + msgid "Key imported successfully" + msgstr "鍵のインポートに成功しました" + +-#: dnf/base.py:2511 ++#: dnf/base.py:2525 + msgid "Didn't install any keys" + msgstr "鍵を 1 つもインストールしませんでした" + +-#: dnf/base.py:2514 ++#: dnf/base.py:2528 + #, python-format + msgid "" +-"The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n" ++"The GPG keys listed for the \"%s\" repository are already installed but they " ++"are not correct for this package.\n" + "Check that the correct key URLs are configured for this repository." + msgstr "" +-"\"%s\" リポジトリーに一覧表示されている GPG 鍵はインストール済みですが、このパッケージには適切ではありません。\n" ++"\"%s\" リポジトリーに一覧表示されている GPG 鍵はインストール済みですが、この" ++"パッケージには適切ではありません。\n" + "正しい鍵 URL がこのリポジトリー用に設定されているか確認してください。" + +-#: dnf/base.py:2525 ++#: dnf/base.py:2539 + msgid "Import of key(s) didn't help, wrong key(s)?" + msgstr "鍵をインポートしても役に立ちませんでした。鍵が間違っていませんか?" + +-#: dnf/base.py:2578 ++#: dnf/base.py:2592 + msgid " * Maybe you meant: {}" + msgstr " * おそらく: {}" + +-#: dnf/base.py:2610 ++#: dnf/base.py:2624 + msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" +-msgstr "ローカルリポジトリー \"{}\" のパッケージ \"{}\" のチェックサムは正しくありません" ++msgstr "" ++"ローカルリポジトリー \"{}\" のパッケージ \"{}\" のチェックサムは正しくありま" ++"せん" + +-#: dnf/base.py:2613 ++#: dnf/base.py:2627 + msgid "Some packages from local repository have incorrect checksum" +-msgstr "ローカルリポジトリーのいくつかのパッケージのチェックサムは正しくありません" ++msgstr "" ++"ローカルリポジトリーのいくつかのパッケージのチェックサムは正しくありません" + +-#: dnf/base.py:2616 ++#: dnf/base.py:2630 + msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" +-msgstr "リポジトリー \"{}\" のパッケージ \"{}\" のチェックサムは正しくありません" ++msgstr "" ++"リポジトリー \"{}\" のパッケージ \"{}\" のチェックサムは正しくありません" + +-#: dnf/base.py:2619 ++#: dnf/base.py:2633 + msgid "" + "Some packages have invalid cache, but cannot be downloaded due to \"--" + "cacheonly\" option" +-msgstr "いくつかのパッケージには無効なキャッシュがありますが、\"--cacheonly\" オプションによりダウンロードできません" ++msgstr "" ++"いくつかのパッケージには無効なキャッシュがありますが、\"--cacheonly\" オプ" ++"ションによりダウンロードできません" + +-#: dnf/base.py:2637 dnf/base.py:2657 ++#: dnf/base.py:2651 dnf/base.py:2671 + msgid "No match for argument" + msgstr "一致した引数がありません" + +-#: dnf/base.py:2645 dnf/base.py:2665 ++#: dnf/base.py:2659 dnf/base.py:2679 + msgid "All matches were filtered out by exclude filtering for argument" +-msgstr "すべての検索結果は引数の除外フィルタリングに一致しません(filter out)" ++msgstr "すべての検索結果は引数の除外フィルタリングに一致しません (filter out)" + +-#: dnf/base.py:2647 ++#: dnf/base.py:2661 + msgid "All matches were filtered out by modular filtering for argument" +-msgstr "すべての検出結果は引数のモジュラーフィルタリングに一致しません(filter out)" ++msgstr "" ++"すべての検出結果は引数のモジュラーフィルタリングに一致しません (filter out)" + +-#: dnf/base.py:2663 ++#: dnf/base.py:2677 + msgid "All matches were installed from a different repository for argument" +-msgstr "すべての検索結果は引数に対し異なるレポジトリからインストールされたものです" ++msgstr "" ++"すべての検索結果は引数に対し異なるレポジトリからインストールされたものです" + +-#: dnf/base.py:2710 ++#: dnf/base.py:2724 + #, python-format + msgid "Package %s is already installed." + msgstr "パッケージ %s は既にインストールされています。" +@@ -553,7 +578,7 @@ msgstr "パッケージ %s は既にインストールされています。" + msgid "Unexpected value of environment variable: DNF_DISABLE_ALIASES=%s" + msgstr "環境変数の予期しない値: DNF_DISABLE_ALIASES=%s" + +-#: dnf/cli/aliases.py:105 dnf/conf/config.py:457 ++#: dnf/cli/aliases.py:105 dnf/conf/config.py:475 + #, python-format + msgid "Parsing file \"%s\" failed: %s" + msgstr "ファイル \"%s\" の解析に失敗しました: %s" +@@ -593,19 +618,24 @@ msgstr " ビルド : %s (日時: %s)" + msgid "" + "The operation would result in switching of module '{0}' stream '{1}' to " + "stream '{2}'" +-msgstr "オペレーションは、モジュール '{0}' ストリーム '{1}' を ストリーム '{2}' へと切り替える結果となります" ++msgstr "" ++"オペレーションは、モジュール '{0}' ストリーム '{1}' を ストリーム '{2}' へと" ++"切り替える結果となります" + + #: dnf/cli/cli.py:173 +-#, fuzzy, python-brace-format +-#| msgid "" +-#| "It is not possible to switch enabled streams of a module.\n" +-#| "It is recommended to remove all installed content from the module, and reset the module using '{prog} module reset ' command. After you reset the module, you can install the other stream." ++#, python-brace-format + msgid "" +-"It is not possible to switch enabled streams of a module unless explicitly enabled via configuration option module_stream_switch.\n" +-"It is recommended to rather remove all installed content from the module, and reset the module using '{prog} module reset ' command. After you reset the module, you can install the other stream." ++"It is not possible to switch enabled streams of a module unless explicitly " ++"enabled via configuration option module_stream_switch.\n" ++"It is recommended to rather remove all installed content from the module, " ++"and reset the module using '{prog} module reset ' command. " ++"After you reset the module, you can install the other stream." + msgstr "" +-"モジュールの有効なストリームを切り替えることはできません。\n" +-"モジュールからインストールされた全てのコンテンツを削除し、 '{prog} module reset ' コマンドを使用してリセットすることが推奨されます。モジュールのリセット後、他のストリームをインストール可能です。" ++"設定オプション module_stream_switch から明示的に有効化されていない限り、モ" ++"ジュールの有効なストリームを切り替えることはできません。\n" ++"モジュールからインストールされた全てのコンテンツを削除し、'{prog} module " ++"reset ' コマンドを使用してリセットすることが推奨されます。モ" ++"ジュールのリセット後、他のストリームをインストール可能です。" + + #: dnf/cli/cli.py:212 + #, python-brace-format +@@ -617,7 +647,9 @@ msgstr "{prog} はトランザクションでパッケージのダウンロー + msgid "" + "{prog} will only download packages, install gpg keys, and check the " + "transaction." +-msgstr "{prog} はパッケージのダウンロード、gpgキーのインストール、トランザクションのチェックのみ行います。" ++msgstr "" ++"{prog} はパッケージのダウンロード、gpgキーのインストール、トランザクションの" ++"チェックのみ行います。" + + #: dnf/cli/cli.py:219 + msgid "Operation aborted." +@@ -653,12 +685,12 @@ msgstr "パッケージの廃止" + + #: dnf/cli/cli.py:399 + msgid "No packages marked for distribution synchronization." +-msgstr "ディストリビューション同期対象のパッケージがありません" ++msgstr "ディストリビューション同期対象のパッケージがありません。" + + #: dnf/cli/cli.py:425 dnf/cli/commands/group.py:395 + #, python-format + msgid "No package %s available." +-msgstr "利用可能なパッケージ %s がありません。" ++msgstr "利用可能なパッケージ %s はありません。" + + #: dnf/cli/cli.py:434 + msgid "No packages marked for downgrade." +@@ -708,52 +740,59 @@ msgstr "一致するリポジトリーがありません: %s" + + #: dnf/cli/cli.py:719 + msgid "" +-"This command has to be run with superuser privileges (under the root user on" +-" most systems)." +-msgstr "このコマンドはスーパーユーザー特権(大概のシステムではrootユーザー)で実行しなければいけません。" ++"This command has to be run with superuser privileges (under the root user on " ++"most systems)." ++msgstr "" ++"このコマンドはスーパーユーザー特権(大概のシステムではrootユーザー)で実行しな" ++"ければいけません。" + + #: dnf/cli/cli.py:749 + #, python-format + msgid "No such command: %s. Please use %s --help" +-msgstr "そのようなコマンドはありません: %s. %s --help を使用してください。" ++msgstr "そのようなコマンドはありません: %s. %s --help を使用してください" + + #: dnf/cli/cli.py:752 + #, python-format, python-brace-format + msgid "" + "It could be a {PROG} plugin command, try: \"{prog} install 'dnf-" + "command(%s)'\"" +-msgstr "{PROG} プラグインコマンドを実行できません、試してください: \"{prog} install 'dnf-command(%s)'\"" ++msgstr "" ++"{PROG} プラグインコマンドを実行できません、試してください: \"{prog} install " ++"'dnf-command(%s)'\"" + + #: dnf/cli/cli.py:756 + #, python-brace-format + msgid "" + "It could be a {prog} plugin command, but loading of plugins is currently " + "disabled." +-msgstr "{prog} プラグインコマンドを実行できません、プラグインのロードが現在無効になっているようです。" ++msgstr "" ++"{prog} プラグインコマンドを実行できません、プラグインのロードが現在無効になっ" ++"ているようです。" + + #: dnf/cli/cli.py:814 + msgid "" + "--destdir or --downloaddir must be used with --downloadonly or download or " + "system-upgrade command." + msgstr "" +-"--destdir または --downloaddir は、--downloadonly、download あるいは system-upgrade " +-"コマンドと共に使用する必要があります。" ++"--destdir または --downloaddir は、--downloadonly、download あるいは system-" ++"upgrade コマンドと共に使用する必要があります。" + + #: dnf/cli/cli.py:820 + msgid "" + "--enable, --set-enabled and --disable, --set-disabled must be used with " + "config-manager command." + msgstr "" +-"--enable と --set-enabled および --disable と --set-disabled は、config-manager " +-"コマンドと共に使用しなければなりません。" ++"--enable と --set-enabled および --disable と --set-disabled は、config-" ++"manager コマンドと共に使用しなければなりません。" + + #: dnf/cli/cli.py:902 + msgid "" + "Warning: Enforcing GPG signature check globally as per active RPM security " + "policy (see 'gpgcheck' in dnf.conf(5) for how to squelch this message)" + msgstr "" +-"警告: アクティブな RPM セキュリティーポリシーにより、GPG 署名の確認をグローバルに強制します " +-"(このメッセージをスケルチするには、dnf.conf(5) の 'gpgcheck' を参照してください)" ++"警告: アクティブな RPM セキュリティーポリシーにより、GPG 署名の確認をグローバ" ++"ルに強制します (このメッセージをスケルチするには、dnf.conf(5) の 'gpgcheck' " ++"を参照してください)" + + #: dnf/cli/cli.py:922 + msgid "Config file \"{}\" does not exist" +@@ -763,7 +802,9 @@ msgstr "設定ファイル \"{}\" は存在しません" + msgid "" + "Unable to detect release version (use '--releasever' to specify release " + "version)" +-msgstr "リリースバージョンを検出できません (リリースバージョンを指定するには '--releasever' を使用してください)" ++msgstr "" ++"リリースバージョンを検出できません (リリースバージョンを指定するには '--" ++"releasever' を使用してください)" + + #: dnf/cli/cli.py:1016 dnf/cli/commands/repoquery.py:471 + msgid "argument {}: not allowed with argument {}" +@@ -798,13 +839,16 @@ msgstr "問題を診断するには実行してみてください: '%s'." + #: dnf/cli/commands/__init__.py:40 + #, python-format + msgid "You probably have corrupted RPMDB, running '%s' might fix the issue." +-msgstr "RPMDB を破損させたかもしれませんが、'%s' を実行することでこの問題を解決できる可能性があります。" ++msgstr "" ++"RPMDB を破損させたかもしれませんが、'%s' を実行することでこの問題を解決できる" ++"可能性があります。" + + #: dnf/cli/commands/__init__.py:44 + #, python-brace-format + msgid "" + "You have enabled checking of packages via GPG keys. This is a good thing.\n" +-"However, you do not have any GPG public keys installed. You need to download\n" ++"However, you do not have any GPG public keys installed. You need to " ++"download\n" + "the keys for packages you wish to install and install them.\n" + "You can do that by running the command:\n" + " rpm --import public.gpg.key\n" +@@ -823,11 +867,13 @@ msgstr "" + " rpm --import public.gpg.key\n" + "\n" + "\n" +-"代わりにレポジトリーセクションの 'gpgkey' オプションにあるレポジトリーを使用し\n" ++"代わりにレポジトリーセクションの 'gpgkey' オプションにあるレポジトリーを使用" ++"し\n" + "キーのurlを特定したのち、 {prog} がインストールされます。\n" + "\n" + "\n" +-"詳細情報はディストリビューションまたはパッケージプロバイダーにコンタクトしてください。" ++"詳細情報はディストリビューションまたはパッケージプロバイダーにコンタクトして" ++"ください。" + + #: dnf/cli/commands/__init__.py:71 + #, python-format +@@ -1062,7 +1108,8 @@ msgstr "一致するエイリアスがありません: %s" + #: dnf/cli/commands/autoremove.py:41 + msgid "" + "remove all unneeded packages that were originally installed as dependencies" +-msgstr "当初は依存関係としてインストールされた不要なパッケージをすべて削除します" ++msgstr "" ++"当初は依存関係としてインストールされた不要なパッケージをすべて削除します" + + #: dnf/cli/commands/autoremove.py:46 dnf/cli/commands/remove.py:59 + msgid "Package to remove" +@@ -1141,12 +1188,12 @@ msgid "Waiting for process with pid %d to finish." + msgstr "pid %d のプロセスが終了するのを待ちます。" + + #: dnf/cli/commands/deplist.py:32 +-#, fuzzy +-#| msgid "List package's dependencies and what packages provide them" + msgid "" + "[deprecated, use repoquery --deplist] List package's dependencies and what " + "packages provide them" +-msgstr "パッケージの依存関係とこれを提供するパッケージがどれかを一覧表示します" ++msgstr "" ++"[非推奨、epoquery --deplist を使用] パッケージの依存関係とこれを提供するパッ" ++"ケージがどれかを一覧表示します" + + #: dnf/cli/commands/distrosync.py:32 + msgid "synchronize installed packages to the latest available versions" +@@ -1236,7 +1283,7 @@ msgstr "グループサブコマンドの引数" + #: dnf/cli/commands/group.py:343 + #, python-format + msgid "Invalid groups sub-command, use: %s." +-msgstr "groups のサブコマンドが無効です: %s. を使用します" ++msgstr "groups のサブコマンドが無効です: %s を使用します。" + + #: dnf/cli/commands/group.py:398 + msgid "Unable to find a mandatory group package." +@@ -1248,25 +1295,31 @@ msgstr "トランザクション履歴を表示、または使用します" + + #: dnf/cli/commands/history.py:66 + msgid "For the store command, file path to store the transaction to" +-msgstr "" ++msgstr "store コマンドの場合は、トランザクションを保存するファイルパス" + + #: dnf/cli/commands/history.py:68 + msgid "" +-"For the replay command, don't check for installed packages matching those in" +-" transaction" ++"For the replay command, don't check for installed packages matching those in " ++"transaction" + msgstr "" ++"replay コマンドの場合は、トランザクション内のパッケージに一致するインストール" ++"済みパッケージを確認しない" + + #: dnf/cli/commands/history.py:71 + msgid "" + "For the replay command, don't check for extra packages pulled into the " + "transaction" + msgstr "" ++"replay コマンドの場合は、トランザクションにプルされた追加パッケージを確認しな" ++"い" + + #: dnf/cli/commands/history.py:74 + msgid "" +-"For the replay command, skip packages that are not available or have missing" +-" dependencies" ++"For the replay command, skip packages that are not available or have missing " ++"dependencies" + msgstr "" ++"replay コマンドの場合は、利用できないパッケージや、依存関係が不足しているパッ" ++"ケージをスキップ" + + #: dnf/cli/commands/history.py:94 + msgid "" +@@ -1277,16 +1330,12 @@ msgstr "" + "'{}' は 1 つのトランザクション ID またはパッケージ名が必要です。" + + #: dnf/cli/commands/history.py:101 +-#, fuzzy +-#| msgid "No transaction ID or package name given." + msgid "No transaction file name given." +-msgstr "トランザクション ID、またはパッケージ名が指定されていません。" ++msgstr "トランザクションファイル名が指定されていません。" + + #: dnf/cli/commands/history.py:103 +-#, fuzzy +-#| msgid "Failed to remove transaction file %s" + msgid "More than one argument given as transaction file name." +-msgstr "トランザクションファイル %s の削除に失敗しました" ++msgstr "トランザクションファイル名として指定された複数の引数。" + + #: dnf/cli/commands/history.py:122 dnf/cli/commands/history.py:130 + msgid "No transaction ID or package name given." +@@ -1300,26 +1349,29 @@ msgstr "履歴 DB にアクセスできません: %s" + #: dnf/cli/commands/history.py:151 + #, python-format + msgid "" +-"Cannot undo transaction %s, doing so would result in an inconsistent package" +-" database." +-msgstr "トランザクション %s を取り消すことはできません。取り消すことで、パッケージデータベースに矛盾が生じます。" ++"Cannot undo transaction %s, doing so would result in an inconsistent package " ++"database." ++msgstr "" ++"トランザクション %s を取り消すことはできません。取り消すことで、パッケージ" ++"データベースに矛盾が生じます。" + + #: dnf/cli/commands/history.py:156 + #, python-format + msgid "" + "Cannot rollback transaction %s, doing so would result in an inconsistent " + "package database." +-msgstr "トランザクション %s をロールバックすることはできません。ロールバックすることで、パッケージデータベースに矛盾が生じます。" ++msgstr "" ++"トランザクション %s をロールバックすることはできません。ロールバックすること" ++"で、パッケージデータベースに矛盾が生じます。" + + #: dnf/cli/commands/history.py:175 + msgid "No transaction ID given" + msgstr "トランザクション ID は指定されていません" + + #: dnf/cli/commands/history.py:179 +-#, fuzzy, python-brace-format +-#| msgid "TransactionItem not found for key: {}" ++#, python-brace-format + msgid "Transaction ID \"{0}\" not found." +-msgstr "TransactionItemが見つかりません鍵: {}" ++msgstr "トランザクション ID \"{0}\" が見つかりません。" + + #: dnf/cli/commands/history.py:185 + msgid "Found more than one transaction ID!" +@@ -1361,27 +1413,23 @@ msgstr "パッケージ '{}' を操作するトランザクションが見つか + + #: dnf/cli/commands/history.py:357 + msgid "{} exists, overwrite?" +-msgstr "" ++msgstr "{} は存在します。上書きしますか?" + + #: dnf/cli/commands/history.py:360 + msgid "Not overwriting {}, exiting." +-msgstr "" ++msgstr "{} は存在するため上書きしません。" + + #: dnf/cli/commands/history.py:367 +-#, fuzzy +-#| msgid "Transaction failed" + msgid "Transaction saved to {}." +-msgstr "トランザクションが失敗しました" ++msgstr "{} に保存されているトランザクション。" + + #: dnf/cli/commands/history.py:370 +-#, fuzzy +-#| msgid "Errors occurred during transaction." + msgid "Error storing transaction: {}" +-msgstr "トランザクション中にエラーが発生しました。" ++msgstr "トランザクションの保存エラー: {}" + + #: dnf/cli/commands/history.py:386 + msgid "Warning, the following problems occurred while running a transaction:" +-msgstr "" ++msgstr "警告: トランザクションの実行中に以下の問題が発生しました:" + + #: dnf/cli/commands/install.py:47 + msgid "install a package or packages on your system" +@@ -1415,7 +1463,9 @@ msgstr "すべてのメタデータファイルのキャッシュファイルを + + #: dnf/cli/commands/mark.py:39 + msgid "mark or unmark installed packages as installed by user." +-msgstr "インストール済みパッケージをユーザーがインストールしたとマークするか、またはマークをはずします。" ++msgstr "" ++"インストール済みパッケージをユーザーがインストールしたとマークするか、または" ++"マークをはずします。" + + #: dnf/cli/commands/mark.py:44 + msgid "" +@@ -1454,9 +1504,11 @@ msgstr "パッケージ %s はインストールされていません。" + + #: dnf/cli/commands/module.py:54 + msgid "" +-"Only module name, stream, architecture or profile is used. Ignoring unneeded" +-" information in argument: '{}'" +-msgstr "モジュール名、ストリーム、アーキテクチャーまたはプロファイルのみが使用されています。引数: '{}' の不要な情報は無視します" ++"Only module name, stream, architecture or profile is used. Ignoring unneeded " ++"information in argument: '{}'" ++msgstr "" ++"モジュール名、ストリーム、アーキテクチャーまたはプロファイルのみが使用されて" ++"います。引数: '{}' の不要な情報は無視します" + + #: dnf/cli/commands/module.py:80 + msgid "list all module streams, profiles and states" +@@ -1500,7 +1552,7 @@ msgstr "パッケージ {} は複数のモジュールに属しています、 + + #: dnf/cli/commands/module.py:280 + msgid "switch a module to a stream and distrosync rpm packages" +-msgstr "" ++msgstr "モジュールをストリームに切り替え、rpm パッケージを distrosync します" + + #: dnf/cli/commands/module.py:302 + msgid "list modular packages" +@@ -1727,7 +1779,9 @@ msgstr "キーワードに一致するパッケージを検索します" + msgid "" + "Query all packages (shorthand for repoquery '*' or repoquery without " + "argument)" +-msgstr "すべてのパッケージをクエリーします (repoquery '*' の短縮形、または引数なしの repoquery)" ++msgstr "" ++"すべてのパッケージをクエリーします (repoquery '*' の短縮形、または引数なしの " ++"repoquery)" + + #: dnf/cli/commands/repoquery.py:124 + msgid "Query all versions of packages (default)" +@@ -1749,7 +1803,9 @@ msgstr "REQ と競合する結果のみを表示します" + msgid "" + "shows results that requires, suggests, supplements, enhances,or recommends " + "package provides and files REQ" +-msgstr "REQ を提供およびファイルするパッケージを必要、提案、補完、機能強化、または推奨する結果を表示します" ++msgstr "" ++"REQ を提供およびファイルするパッケージを必要、提案、補完、機能強化、または推" ++"奨する結果を表示します" + + #: dnf/cli/commands/repoquery.py:139 + msgid "show only results that obsolete REQ" +@@ -1791,7 +1847,9 @@ msgstr "指定されたとおりに依存関係を確認します。--alldeps + msgid "" + "used with --whatrequires, and --requires --resolve, query packages " + "recursively." +-msgstr "--whatrequires および --requires --resolve と共に使用し、パッケージを再帰的にクエリーします。" ++msgstr "" ++"--whatrequires および --requires --resolve と共に使用し、パッケージを再帰的に" ++"クエリーします。" + + #: dnf/cli/commands/repoquery.py:166 + msgid "show a list of all dependencies and what packages provide them" +@@ -1813,7 +1871,9 @@ msgstr "対応するソース RPM で操作します" + msgid "" + "show N latest packages for a given name.arch (or latest but N if N is " + "negative)" +-msgstr "特定の name.arch に最新パッケージ N を表示します (または N がネガティブな場合は N 以外の最新のもの)" ++msgstr "" ++"特定の name.arch に最新パッケージ N を表示します (または N がネガティブな場合" ++"は N 以外の最新のもの)" + + #: dnf/cli/commands/repoquery.py:177 + msgid "list also packages of inactive module streams" +@@ -1838,9 +1898,11 @@ msgstr "パッケージの changelogs を表示します" + #: dnf/cli/commands/repoquery.py:194 + #, python-format, python-brace-format + msgid "" +-"display format for listing packages: \"%%{name} %%{version} ...\", use " +-"--querytags to view full tag list" ++"display format for listing packages: \"%%{name} %%{version} ...\", use --" ++"querytags to view full tag list" + msgstr "" ++"パッケージを一覧表示するための形式の表示: \"%%{name} %%{version} ...\"。--" ++"querytags を指定して完全なタグリストを表示" + + #: dnf/cli/commands/repoquery.py:198 + msgid "show available tags to use with --queryformat" +@@ -1851,19 +1913,24 @@ msgid "" + "use name-epoch:version-release.architecture format for displaying found " + "packages (default)" + msgstr "" +-"見つかったパッケージを表示するには name-epoch:version-release.architecture 形式を使用します (デフォルト)" ++"見つかったパッケージを表示するには name-epoch:version-release.architecture 形" ++"式を使用します (デフォルト)" + + #: dnf/cli/commands/repoquery.py:205 + msgid "" + "use name-version-release format for displaying found packages (rpm query " + "default)" +-msgstr "見つかったパッケージを表示するには name-version-release 形式を使用します (rpm クエリーデフォルト)" ++msgstr "" ++"見つかったパッケージを表示するには name-version-release 形式を使用します " ++"(rpm クエリーデフォルト)" + + #: dnf/cli/commands/repoquery.py:211 + msgid "" + "use epoch:name-version-release.architecture format for displaying found " + "packages" +-msgstr "見つかったパッケージを表示するには epoch:name-version-release.architecture 形式を使用します" ++msgstr "" ++"見つかったパッケージを表示するには epoch:name-version-release.architecture 形" ++"式を使用します" + + #: dnf/cli/commands/repoquery.py:214 + msgid "Display in which comps groups are presented selected packages" +@@ -1879,7 +1946,8 @@ msgstr "インストール済みの installonly パッケージへのクエリ + + #: dnf/cli/commands/repoquery.py:228 + msgid "limit the query to installed packages with unsatisfied dependencies" +-msgstr "未充足な依存関係があるインストール済みパッケージへのクエリーを制限します" ++msgstr "" ++"未充足な依存関係があるインストール済みパッケージへのクエリーを制限します" + + #: dnf/cli/commands/repoquery.py:230 + msgid "show a location from where packages can be downloaded" +@@ -1893,7 +1961,8 @@ msgstr "パッケージが競合する機能を表示します。" + msgid "" + "Display capabilities that the package can depend on, enhance, recommend, " + "suggest, and supplement." +-msgstr "パッケージが依存、機能強化、推奨、提案、および補完できる機能を表示します。" ++msgstr "" ++"パッケージが依存、機能強化、推奨、提案、および補完できる機能を表示します。" + + #: dnf/cli/commands/repoquery.py:236 + msgid "Display capabilities that the package can enhance." +@@ -1918,9 +1987,10 @@ msgid "" + "running %%pre and %%post scriptlets. If the package is installed display " + "capabilities that is depends for %%pre, %%post, %%preun and %%postun." + msgstr "" +-"このパッケージがインストールされていない場合、 %%pre と %%post " +-"スクリプトレット実行に依存するケイパビリティを表示します。このパッケージがインストールされている場合、 %%pre, %%post, %%preun と" +-" %%postun に依存するケイパビリティを表示します。" ++"このパッケージがインストールされていない場合、 %%pre と %%post スクリプトレッ" ++"ト実行に依存するケイパビリティを表示します。このパッケージがインストールされ" ++"ている場合、 %%pre, %%post, %%preun と %%postun に依存するケイパビリティを表" ++"示します。" + + #: dnf/cli/commands/repoquery.py:243 + msgid "Display capabilities that the package suggests." +@@ -1947,7 +2017,9 @@ msgstr "利用可能なリポジトリーに存在しないパッケージのみ + msgid "" + "Display only packages that provide an upgrade for some already installed " + "package." +-msgstr "インストール済みのパッケージの一部にアップグレードを提供するパッケージのみを表示します。" ++msgstr "" ++"インストール済みのパッケージの一部にアップグレードを提供するパッケージのみを" ++"表示します。" + + #: dnf/cli/commands/repoquery.py:256 + #, python-brace-format +@@ -1969,26 +2041,28 @@ msgstr "検索するための鍵" + + #: dnf/cli/commands/repoquery.py:295 + msgid "" +-"Option '--resolve' has to be used together with one of the '--conflicts', '" +-"--depends', '--enhances', '--provides', '--recommends', '--requires', '--" ++"Option '--resolve' has to be used together with one of the '--conflicts', '--" ++"depends', '--enhances', '--provides', '--recommends', '--requires', '--" + "requires-pre', '--suggests' or '--supplements' options" + msgstr "" +-"オプションの '--resolve' は、'--conflicts'、'--depends'、'--enhances'、'--provides'、'--" +-"recommends'、'--requires'、'--requires-pre'、'--suggests' または '--supplements' " +-"オプションのいずれか 1 つと使用する必要があります。" ++"オプションの '--resolve' は、'--conflicts'、'--depends'、'--enhances'、'--" ++"provides'、'--recommends'、'--requires'、'--requires-pre'、'--suggests' また" ++"は '--supplements' オプションのいずれか 1 つと使用する必要があります" + + #: dnf/cli/commands/repoquery.py:305 + msgid "" + "Option '--recursive' has to be used with '--whatrequires ' (optionally " +-"with '--alldeps', but not with '--exactdeps'), or with '--requires " +-"--resolve'" ++"with '--alldeps', but not with '--exactdeps'), or with '--requires --" ++"resolve'" + msgstr "" +-"オプションの '--recursive' は、'--whatrequires ' (オプションでは '--exactdeps' ではなく、'" +-"--alldeps' と共に使用) または '--requires --resolve' と共に使用する必要があります。" ++"オプションの '--recursive' は、'--whatrequires ' (オプションでは '--" ++"exactdeps' ではなく、'--alldeps' と共に使用) または '--requires --" ++"resolve' と共に使用する必要があります" + + #: dnf/cli/commands/repoquery.py:312 + msgid "argument {} requires --whatrequires or --whatdepends option" +-msgstr "引数 {} は --whatrequires または --whatdepends オプションを必要とします" ++msgstr "" ++"引数 {} は --whatrequires または --whatdepends オプションを必要とします" + + #: dnf/cli/commands/repoquery.py:344 + msgid "Package {} contains no files" +@@ -1998,13 +2072,17 @@ msgstr "パッケージ {} はファイルを含んでいません" + #, python-brace-format + msgid "" + "No valid switch specified\n" +-"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" ++"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" ++"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" ++"tree]\n" + "\n" + "description:\n" + " For the given packages print a tree of thepackages." + msgstr "" + "正規のスイッチが特定されません\n" +-"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" ++"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" ++"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" ++"tree]\n" + "\n" + "説明:\n" + " 与えられたパッケージではパッケージのツリーを表示します。" +@@ -2044,8 +2122,7 @@ msgstr "説明" + msgid "URL" + msgstr "URL" + +-#. TRANSLATORS: separator used between package attributes (eg. Name & Summary +-#. & URL) ++#. TRANSLATORS: separator used between package attributes (eg. Name & Summary & URL) + #: dnf/cli/commands/search.py:76 + msgid " & " + msgstr " & " +@@ -2121,7 +2198,8 @@ msgid "" + " disable: disable repositories. option = repository id" + msgstr "" + "{} arg [オプション]\n" +-" 一覧: リポジトリーとその状態を一覧表示します。オプション = [all | id | glob]\n" ++" 一覧: リポジトリーとその状態を一覧表示します。オプション = [all | id | " ++"glob]\n" + " 有効化: リポジトリーの有効化。オプション = リポジトリー id\n" + " 無効化: リポジトリーの無効化。オプション = リポジトリー id" + +@@ -2179,7 +2257,8 @@ msgstr "" + "ヘルプ ヘルプの印刷\n" + "リポジトリー (または repo) リポジトリーの有効化、無効化、または一覧表示\n" + "resolvedep トランザクションセットの解決\n" +-"トランザクション (または ts) トランザクションセットの一覧表示、再設定、または実行\n" ++"トランザクション (または ts) トランザクションセットの一覧表示、再設定、" ++"または実行\n" + "実行 トランザクションセットの解決および実行\n" + "終了 (または 中止) シェルの終了" + +@@ -2199,7 +2278,9 @@ msgstr "シェルを終了します" + #: dnf/cli/commands/swap.py:35 + #, python-brace-format + msgid "run an interactive {prog} mod for remove and install one spec" +-msgstr "一つのspecを削除またはインストールするためインタラクティブ {prog} モジュールを実行" ++msgstr "" ++"一つのspecを削除またはインストールするためインタラクティブ {prog} モジュール" ++"を実行" + + #: dnf/cli/commands/swap.py:40 + msgid "The specs that will be removed" +@@ -2251,13 +2332,16 @@ msgstr "インストール済みパッケージの新しいバージョンに関 + + #: dnf/cli/commands/updateinfo.py:80 + msgid "advisories about equal and older versions of installed packages" +-msgstr "インストール済みパッケージの同じバージョンおよび古いバージョンに関する勧告" ++msgstr "" ++"インストール済みパッケージの同じバージョンおよび古いバージョンに関する勧告" + + #: dnf/cli/commands/updateinfo.py:83 + msgid "" + "advisories about newer versions of those installed packages for which a " + "newer version is available" +-msgstr "最新バージョンが利用可能なインストール済みパッケージの最新バージョンに関する勧告" ++msgstr "" ++"最新バージョンが利用可能なインストール済みパッケージの最新バージョンに関する" ++"勧告" + + #: dnf/cli/commands/updateinfo.py:87 + msgid "advisories about any versions of installed packages" +@@ -2398,7 +2482,8 @@ msgstr "正" + + #: dnf/cli/commands/upgrade.py:40 + msgid "upgrade a package or packages on your system" +-msgstr "システム上の 1 つのパッケージまたは複数のパッケージをアップグレードします" ++msgstr "" ++"システム上の 1 つのパッケージまたは複数のパッケージをアップグレードします" + + #: dnf/cli/commands/upgrade.py:44 + msgid "Package to upgrade" +@@ -2408,7 +2493,9 @@ msgstr "アップグレードするパッケージ" + msgid "" + "upgrade, but only 'newest' package match which fixes a problem that affects " + "your system" +-msgstr "システムに影響する問題を修正する「最新の」パッケージに一致したもののみをアップグレードします" ++msgstr "" ++"システムに影響する問題を修正する「最新の」パッケージに一致したもののみをアッ" ++"プグレードします" + + #: dnf/cli/main.py:88 + msgid "Terminated." +@@ -2420,23 +2507,29 @@ msgstr "現在のディレクトリーには読み取り/実行権限があり + + #: dnf/cli/main.py:135 + msgid "try to add '{}' to command line to replace conflicting packages" +-msgstr "競合するパッケージを置き換えるには、コマンドラインに '{}' を追加してみてください" ++msgstr "" ++"競合するパッケージを置き換えるには、コマンドラインに '{}' を追加してみてくだ" ++"さい" + + #: dnf/cli/main.py:139 + msgid "try to add '{}' to skip uninstallable packages" +-msgstr "インストール不可のパッケージをスキップするには、'{}' を追加してみてください" ++msgstr "" ++"インストール不可のパッケージをスキップするには、'{}' を追加してみてください" + + #: dnf/cli/main.py:142 + msgid " or '{}' to skip uninstallable packages" +-msgstr " または、'{}' を追加して、インストール不可のパッケージをスキップしてください" ++msgstr "" ++" または、'{}' を追加して、インストール不可のパッケージをスキップしてください" + + #: dnf/cli/main.py:147 + msgid "try to add '{}' to use not only best candidate packages" +-msgstr "最適候補のパッケージのみを使用しないためには、'{}' を追加してみてください" ++msgstr "" ++"最適候補のパッケージのみを使用しないためには、'{}' を追加してみてください" + + #: dnf/cli/main.py:150 + msgid " or '{}' to use not only best candidate packages" +-msgstr " または、'{}' を追加して、最適候補のパッケージのみを使用しないでください" ++msgstr "" ++" または、'{}' を追加して、最適候補のパッケージのみを使用しないでください" + + #: dnf/cli/main.py:167 + msgid "Dependencies resolved." +@@ -2528,7 +2621,9 @@ msgstr "依存関係を解決するために、インストール済みパッケ + + #: dnf/cli/option_parser.py:221 + msgid "try the best available package versions in transactions." +-msgstr "トランザクションにおいて利用可能な最適なパッケージバージョンを試してください。" ++msgstr "" ++"トランザクションにおいて利用可能な最適なパッケージバージョンを試してくださ" ++"い。" + + #: dnf/cli/option_parser.py:223 + msgid "do not limit the transaction to the best candidate" +@@ -2564,8 +2659,8 @@ msgid "" + "enables {prog}'s obsoletes processing logic for upgrade or display " + "capabilities that the package obsoletes for info, list and repoquery" + msgstr "" +-"アップグレードまたは、info, list, repoquery で旧パッケージのケイパビリティを表示するため、 {prog} " +-"の旧プロセスロジックを有効化" ++"アップグレードまたは、info, list, repoquery で旧パッケージのケイパビリティを" ++"表示するため、 {prog} の旧プロセスロジックを有効化" + + #: dnf/cli/option_parser.py:251 + msgid "debugging output level for rpm" +@@ -2583,19 +2678,25 @@ msgstr "すべての質問に「いいえ」(no) と自動的に答えます" + msgid "" + "Enable additional repositories. List option. Supports globs, can be " + "specified multiple times." +-msgstr "追加レポジトリを有効化、オプションのリスト、globsのサポートは何度でも指定可能です。" ++msgstr "" ++"追加レポジトリを有効化、オプションのリスト、globsのサポートは何度でも指定可能" ++"です。" + + #: dnf/cli/option_parser.py:266 + msgid "" +-"Disable repositories. List option. Supports globs, can be specified multiple" +-" times." +-msgstr "追加レポジトリを無効化、オプションのリスト、globsのサポートは何度でも指定可能です。" ++"Disable repositories. List option. Supports globs, can be specified multiple " ++"times." ++msgstr "" ++"追加レポジトリを無効化、オプションのリスト、globsのサポートは何度でも指定可能" ++"です。" + + #: dnf/cli/option_parser.py:270 + msgid "" + "enable just specific repositories by an id or a glob, can be specified " + "multiple times" +-msgstr "id または glob により特定のリポジトリーだけを有効にします。複数回指定することが可能です" ++msgstr "" ++"id または glob により特定のリポジトリーだけを有効にします。複数回指定すること" ++"が可能です" + + #: dnf/cli/option_parser.py:275 + msgid "enable repos with config-manager command (automatically saves)" +@@ -2617,7 +2718,9 @@ msgstr "excludepkgs を無効にします" + msgid "" + "label and path to an additional repository to use (same path as in a " + "baseurl), can be specified multiple times." +-msgstr "利用する追加レポジトリ(baseurlと同じパス)のラベルとパスは何度でも指定可能です。" ++msgstr "" ++"利用する追加レポジトリ(baseurlと同じパス)のラベルとパスは何度でも指定可能で" ++"す。" + + #: dnf/cli/option_parser.py:297 + msgid "disable removal of dependencies that are no longer used" +@@ -2697,7 +2800,7 @@ msgstr "主要コマンドの一覧:" + + #: dnf/cli/option_parser.py:376 + msgid "List of Plugin Commands:" +-msgstr "プラグインコマンドの一覧" ++msgstr "プラグインコマンドの一覧:" + + #: dnf/cli/option_parser.py:413 + #, python-format +@@ -2928,7 +3031,7 @@ msgstr "Repo : %s" + + #: dnf/cli/output.py:857 + msgid "Description : " +-msgstr "説明 : " ++msgstr "説明: " + + #: dnf/cli/output.py:861 + #, python-format +@@ -3470,10 +3573,6 @@ msgstr " 開始しました : %s - %s 秒経過" + msgid " State : %s" + msgstr " 状態 : %s" + +-#: dnf/comps.py:104 +-msgid "skipping." +-msgstr "スキップします。" +- + #: dnf/comps.py:196 dnf/comps.py:692 dnf/comps.py:706 + #, python-format + msgid "Module or Group '%s' is not installed." +@@ -3490,16 +3589,14 @@ msgid "Module or Group '%s' does not exist." + msgstr "モジュールまたはグループ '%s' は存在しません。" + + #: dnf/comps.py:599 +-#, fuzzy, python-format +-#| msgid "Environment '%s' is not installed." ++#, python-format + msgid "Environment id '%s' does not exist." +-msgstr "環境 '%s' はインストールされていません。" ++msgstr "環境 id '%s' は存在しません。" + + #: dnf/comps.py:622 dnf/transaction_sr.py:477 dnf/transaction_sr.py:487 +-#, fuzzy, python-format +-#| msgid "Environment '%s' is not installed." ++#, python-format + msgid "Environment id '%s' is not installed." +-msgstr "環境 '%s' はインストールされていません。" ++msgstr "環境 id '%s' はインストールされていません。" + + #: dnf/comps.py:639 + #, python-format +@@ -3512,10 +3609,9 @@ msgid "Environment '%s' is not available." + msgstr "環境 '%s' は利用不可です。" + + #: dnf/comps.py:673 +-#, fuzzy, python-format +-#| msgid "Group_id '%s' does not exist." ++#, python-format + msgid "Group id '%s' does not exist." +-msgstr "Group_id '%s' は存在しません。" ++msgstr "グループ id '%s' は存在しません。" + + #: dnf/conf/config.py:136 + #, python-format +@@ -3523,16 +3619,19 @@ msgid "Error parsing '%s': %s" + msgstr "'%s' の解析中にエラーが発生しました: %s" + + #: dnf/conf/config.py:151 +-#, fuzzy, python-format +-#| msgid "Unknown configuration value: %s=%s in %s; %s" ++#, python-format + msgid "Invalid configuration value: %s=%s in %s; %s" +-msgstr "不明な設定値: %s=%s in %s; %s" ++msgstr "正しくない設定値: %s=%s in %s; %s" ++ ++#: dnf/conf/config.py:194 ++msgid "Cannot set \"{}\" to \"{}\": {}" ++msgstr "\"{}\" を \"{}\": {} に設定できません。" + +-#: dnf/conf/config.py:226 ++#: dnf/conf/config.py:244 + msgid "Could not set cachedir: {}" + msgstr "cachedir を設定できませんでした: {}" + +-#: dnf/conf/config.py:275 ++#: dnf/conf/config.py:293 + msgid "" + "Configuration file URL \"{}\" could not be downloaded:\n" + " {}" +@@ -3540,31 +3639,31 @@ msgstr "" + "設定ファイル URL \"{}\" はダウンロードできませんでした:\n" + " {}" + +-#: dnf/conf/config.py:355 dnf/conf/config.py:391 ++#: dnf/conf/config.py:373 dnf/conf/config.py:409 + #, python-format + msgid "Unknown configuration option: %s = %s" + msgstr "不明な設定オプション: %s = %s" + +-#: dnf/conf/config.py:372 ++#: dnf/conf/config.py:390 + #, python-format + msgid "Error parsing --setopt with key '%s', value '%s': %s" + msgstr "鍵 '%s'、値 '%s' の --setopt を解析中にエラーが発生しました: %s" + +-#: dnf/conf/config.py:380 ++#: dnf/conf/config.py:398 + #, python-format + msgid "Main config did not have a %s attr. before setopt" + msgstr "主要設定には setopt の前に %s attr. がありませんでした" + +-#: dnf/conf/config.py:427 dnf/conf/config.py:445 ++#: dnf/conf/config.py:445 dnf/conf/config.py:463 + msgid "Incorrect or unknown \"{}\": {}" + msgstr "誤りかまたは不明な \"{}\": {}" + +-#: dnf/conf/config.py:501 ++#: dnf/conf/config.py:519 + #, python-format + msgid "Error parsing --setopt with key '%s.%s', value '%s': %s" + msgstr "鍵 '%s.%s'、値 '%s' の --setopt を解析中にエラーが発生しました: %s" + +-#: dnf/conf/config.py:504 ++#: dnf/conf/config.py:522 + #, python-format + msgid "Repo %s did not have a %s attr. before setopt" + msgstr "repo %s には setopt の前に %s attr. がありませんでした" +@@ -3572,7 +3671,7 @@ msgstr "repo %s には setopt の前に %s attr. がありませんでした" + #: dnf/conf/read.py:60 + #, python-format + msgid "Warning: failed loading '%s', skipping." +-msgstr "警告: '%s' のロードに失敗、スキップします。" ++msgstr "警告: '%s' のロードに失敗、スキップします。" + + #: dnf/conf/read.py:72 + msgid "Bad id for repo: {} ({}), byte = {} {}" +@@ -3610,31 +3709,33 @@ msgstr "repo %s: 0x%s はインポート済みです" + #: dnf/crypto.py:115 + #, python-format + msgid "repo %s: imported key 0x%s." +-msgstr "repo %s: インポート済みの鍵 0x%s。" ++msgstr "repo %s: インポート済みのキー 0x%s。" + + #: dnf/crypto.py:145 + msgid "Verified using DNS record with DNSSEC signature." +-msgstr "" ++msgstr "DNSSEC 署名付きの DNS レコードを使用して検証しました。" + + #: dnf/crypto.py:147 + msgid "NOT verified using DNS record." +-msgstr "" ++msgstr "DNS レコードを使用して検証されませんでした。" + + #: dnf/crypto.py:184 + #, python-format + msgid "retrieving repo key for %s unencrypted from %s" +-msgstr "" ++msgstr "%s から暗号化されていない %s の repo キーを取得しています" + + #: dnf/db/group.py:302 + msgid "" + "No available modular metadata for modular package '{}', it cannot be " + "installed on the system" +-msgstr "モジュラーパッケージ '{}' のモジュラーメタデータは利用不可です、システムにインストールはできません" ++msgstr "" ++"モジュラーパッケージ '{}' のモジュラーメタデータは利用不可です、システムにイ" ++"ンストールはできません" + + #: dnf/db/group.py:353 + #, python-format + msgid "An rpm exception occurred: %s" +-msgstr "" ++msgstr "rpm 例外が発生しました: %s" + + #: dnf/db/group.py:355 + msgid "No available modular metadata for modular package" +@@ -3645,35 +3746,33 @@ msgstr "モジュラーパッケージ のモジュラーメタデータは利 + msgid "Will not install a source rpm package (%s)." + msgstr "ソース rpm パッケージ (%s) をインストールしません。" + +-#: dnf/dnssec.py:168 +-#, fuzzy +-#| msgid "" +-#| "Configuration option 'gpgkey_dns_verification' requires libunbound ({})" ++#: dnf/dnssec.py:171 + msgid "" + "Configuration option 'gpgkey_dns_verification' requires python3-unbound ({})" +-msgstr "設定オプション 'gpgkey_dns_verification' は libunbound ({}) が必要です" ++msgstr "" ++"設定オプション 'gpgkey_dns_verification' は python3-unbound ({}) が必要です" + +-#: dnf/dnssec.py:239 ++#: dnf/dnssec.py:243 + msgid "DNSSEC extension: Key for user " + msgstr "DNSSEC 拡張: ユーザー用の鍵 " + +-#: dnf/dnssec.py:241 ++#: dnf/dnssec.py:245 + msgid "is valid." + msgstr "は有効です。" + +-#: dnf/dnssec.py:243 ++#: dnf/dnssec.py:247 + msgid "has unknown status." + msgstr "の状態は不明です。" + +-#: dnf/dnssec.py:251 ++#: dnf/dnssec.py:255 + msgid "DNSSEC extension: " + msgstr "DNSSEC 拡張: " + +-#: dnf/dnssec.py:283 ++#: dnf/dnssec.py:287 + msgid "Testing already imported keys for their validity." + msgstr "すでにインポートされた鍵の有効性をテストします。" + +-#: dnf/drpm.py:62 dnf/repo.py:268 ++#: dnf/drpm.py:62 dnf/repo.py:267 + #, python-format + msgid "unsupported checksum type: %s" + msgstr "サポートされていないチェックサム形式: %s" +@@ -3715,7 +3814,7 @@ msgid "Modular dependency problem with Defaults:" + msgid_plural "Modular dependency problems with Defaults:" + msgstr[0] "デフォルトのモジュラー依存問題:" + +-#: dnf/exceptions.py:131 dnf/module/module_base.py:854 ++#: dnf/exceptions.py:131 dnf/module/module_base.py:857 + msgid "Modular dependency problem:" + msgid_plural "Modular dependency problems:" + msgstr[0] "モジュラーの依存に関する問題:" +@@ -3724,10 +3823,12 @@ msgstr[0] "モジュラーの依存に関する問題:" + #, python-format + msgid "" + "Malformed lock file found: %s.\n" +-"Ensure no other dnf/yum process is running and remove the lock file manually or run systemd-tmpfiles --remove dnf.conf." ++"Ensure no other dnf/yum process is running and remove the lock file manually " ++"or run systemd-tmpfiles --remove dnf.conf." + msgstr "" + "不正な形式のロックファイル: %s 。\n" +-"他のdnf/yum プロセスが実行されていないことを確認し、ロックファイルを手動削除するかsystemd-tmpfiles --remove dnf.conf を実行してください。" ++"他のdnf/yum プロセスが実行されていないことを確認し、ロックファイルを手動削除" ++"するかsystemd-tmpfiles --remove dnf.conf を実行してください。" + + #: dnf/module/__init__.py:26 + msgid "Enabling different stream for '{}'." +@@ -3739,7 +3840,8 @@ msgstr "表示するものがありません。" + + #: dnf/module/__init__.py:28 + msgid "Installing newer version of '{}' than specified. Reason: {}" +-msgstr "指定されたものよりも新しいバージョンの '{}' をインストールします。理由: {}" ++msgstr "" ++"指定されたものよりも新しいバージョンの '{}' をインストールします。理由: {}" + + #: dnf/module/__init__.py:29 + msgid "Enabled modules: {}." +@@ -3747,57 +3849,49 @@ msgstr "有効なモジュール: {}." + + #: dnf/module/__init__.py:30 + msgid "No profile specified for '{}', please specify profile." +-msgstr "'{}' に指定したプロファイルはありません。プロファイルを指定してください。" ++msgstr "" ++"'{}' に指定したプロファイルはありません。プロファイルを指定してください。" + + #: dnf/module/exceptions.py:27 +-#, fuzzy +-#| msgid "No profiles for module {}:{}" + msgid "No such module: {}" +-msgstr "モジュール {}:{} にプロファイルがありません" ++msgstr "次のようなモジュールはありません: {}" + + #: dnf/module/exceptions.py:33 + msgid "No such stream: {}" +-msgstr "" ++msgstr "次のようなストリームはありません: {}" + + #: dnf/module/exceptions.py:39 +-#, fuzzy +-#| msgid "No profiles for module {}:{}" + msgid "No enabled stream for module: {}" +-msgstr "モジュール {}:{} にプロファイルがありません" ++msgstr "次のモジュールに有効化されたストリームはありません: {}" + + #: dnf/module/exceptions.py:46 + msgid "Cannot enable more streams from module '{}' at the same time" +-msgstr "" ++msgstr "モジュール '{}' から、さらにストリームを同時に有効にできません" + + #: dnf/module/exceptions.py:52 + msgid "Different stream enabled for module: {}" +-msgstr "" ++msgstr "次のモジュールに有効化された異なるストリーム: {}" + + #: dnf/module/exceptions.py:58 + msgid "No such profile: {}" +-msgstr "" ++msgstr "次ようなプロファイルはありません: {}" + + #: dnf/module/exceptions.py:64 + msgid "Specified profile not installed for {}" +-msgstr "" ++msgstr "指定のプロファイルは次にインストールされていません: {}" + + #: dnf/module/exceptions.py:70 +-#, fuzzy +-#| msgid "No profile specified for '{}', please specify profile." + msgid "No stream specified for '{}', please specify stream" +-msgstr "'{}' に指定したプロファイルはありません。プロファイルを指定してください。" ++msgstr "'{}' に指定したストリームはありません。ストリームを指定してください" + + #: dnf/module/exceptions.py:82 +-#, fuzzy +-#| msgid "No repositories available" + msgid "No such profile: {}. No profiles available" +-msgstr "利用できるリポジトリーがありません" ++msgstr "" ++"次のようなプロファイルはありません: {}。利用できるプロファイルはありません" + + #: dnf/module/exceptions.py:88 +-#, fuzzy +-#| msgid "No profiles for module {}:{}" + msgid "No profile to remove for '{}'" +-msgstr "モジュール {}:{} にプロファイルがありません" ++msgstr "'{}' の削除するプロファイルがありません" + + #: dnf/module/module_base.py:35 + msgid "" +@@ -3820,24 +3914,28 @@ msgstr "" + "ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled, [a]ctive" + + #: dnf/module/module_base.py:56 dnf/module/module_base.py:556 +-#: dnf/module/module_base.py:615 dnf/module/module_base.py:681 ++#: dnf/module/module_base.py:615 dnf/module/module_base.py:684 + msgid "Ignoring unnecessary profile: '{}/{}'" + msgstr "不要なプロファイルを無視します: '{}/{}'" + + #: dnf/module/module_base.py:86 + #, python-brace-format + msgid "All matches for argument '{0}' in module '{1}:{2}' are not active" +-msgstr "モジュール '{1}:{2}' の引数 '{0}' に一致するものはすべて非アクティブです" ++msgstr "" ++"モジュール '{1}:{2}' の引数 '{0}' に一致するものはすべて非アクティブです" + + #: dnf/module/module_base.py:94 dnf/module/module_base.py:204 + #, python-brace-format + msgid "Installing module '{0}' from Fail-Safe repository {1} is not allowed" +-msgstr "フェイルセーフレポジトリー {1} からのモジュール '{0}' インストールは許可されていません" ++msgstr "" ++"フェイルセーフレポジトリー {1} からのモジュール '{0}' インストールは許可され" ++"ていません" + + #: dnf/module/module_base.py:104 dnf/module/module_base.py:214 + msgid "" + "Unable to match profile for argument {}. Available profiles for '{}:{}': {}" +-msgstr "引数 {} でプロファイルが見つかりません。利用可能プロファイル '{}:{}': {}" ++msgstr "" ++"引数 {} でプロファイルが見つかりません。利用可能プロファイル '{}:{}': {}" + + #: dnf/module/module_base.py:108 dnf/module/module_base.py:218 + msgid "Unable to match profile for argument {}" +@@ -3845,7 +3943,9 @@ msgstr "引数 {} でプロファイルが見つかりません" + + #: dnf/module/module_base.py:120 + msgid "No default profiles for module {}:{}. Available profiles: {}" +-msgstr "モジュール {}:{} にデフォルトのプロファイルがありません。利用可能プロファイル: {}" ++msgstr "" ++"モジュール {}:{} にデフォルトのプロファイルがありません。利用可能プロファイ" ++"ル: {}" + + #: dnf/module/module_base.py:124 + msgid "No profiles for module {}:{}" +@@ -3857,36 +3957,38 @@ msgstr "デフォルトのプロファイル {} はモジュール {}:{} で利 + + #: dnf/module/module_base.py:144 dnf/module/module_base.py:247 + msgid "Installing module from Fail-Safe repository is not allowed" +-msgstr "フェイルセーフレポジトリーからのモジュールインストールは許可されていません" ++msgstr "" ++"フェイルセーフレポジトリーからのモジュールインストールは許可されていません" + + #: dnf/module/module_base.py:196 +-#, fuzzy, python-brace-format +-#| msgid "" +-#| "All matches for argument '{0}' in module '{1}:{2}' are not active" ++#, python-brace-format + msgid "No active matches for argument '{0}' in module '{1}:{2}'" +-msgstr "モジュール '{1}:{2}' の引数 '{0}' に一致するものはすべて非アクティブです" ++msgstr "モジュール '{1}:{2}' の引数 '{0}' には、アクティブな一致がありません" + + #: dnf/module/module_base.py:228 +-#, fuzzy, python-brace-format +-#| msgid "Default profile {} not available in module {}:{}" ++#, python-brace-format + msgid "Installed profile '{0}' is not available in module '{1}' stream '{2}'" +-msgstr "デフォルトのプロファイル {} はモジュール {}:{} で利用不可です" ++msgstr "" ++"インストールされたプロファイル '{0}' は、モジュール '{1}' ストリーム '{2}' で" ++"は利用できません" + + #: dnf/module/module_base.py:267 + msgid "No packages available to distrosync for package name '{}'" +-msgstr "" ++msgstr "パッケージ名 '{}' 向けに distrosync するパッケージはありません" + + #: dnf/module/module_base.py:310 dnf/module/module_base.py:461 + #: dnf/module/module_base.py:486 dnf/module/module_base.py:505 + #: dnf/module/module_base.py:552 dnf/module/module_base.py:611 +-#: dnf/module/module_base.py:677 dnf/module/module_base.py:840 ++#: dnf/module/module_base.py:680 dnf/module/module_base.py:843 + msgid "Unable to resolve argument {}" + msgstr "引数 {} を解決できません" + + #: dnf/module/module_base.py:321 + #, python-brace-format + msgid "Upgrading module '{0}' from Fail-Safe repository {1} is not allowed" +-msgstr "フェイルセーフレポジトリー {1} からのモジュール '{0}' アップグレードは許可されていません" ++msgstr "" ++"フェイルセーフレポジトリー {1} からのモジュール '{0}' アップグレードは許可さ" ++"れていません" + + #: dnf/module/module_base.py:340 dnf/module/module_base.py:368 + msgid "Unable to match profile in argument {}" +@@ -3894,22 +3996,25 @@ msgstr "引数 {} でプロファイルを一致できません" + + #: dnf/module/module_base.py:348 + msgid "Upgrading module from Fail-Safe repository is not allowed" +-msgstr "フェイルセーフレポジトリーからのモジュールアップグレードは許可されていません" ++msgstr "" ++"フェイルセーフレポジトリーからのモジュールアップグレードは許可されていません" + + #: dnf/module/module_base.py:422 + #, python-brace-format + msgid "" +-"Argument '{argument}' matches {stream_count} streams ('{streams}') of module" +-" '{module}', but none of the streams are enabled or default" ++"Argument '{argument}' matches {stream_count} streams ('{streams}') of module " ++"'{module}', but none of the streams are enabled or default" + msgstr "" ++"引数 '{argument}' は、モジュール '{module}' の {stream_count} ストリーム " ++"('{streams}' と一致しますが、有効化されている、あるいはデフォルトのストリーム" ++"はありません" + + #: dnf/module/module_base.py:509 + msgid "" +-"Only module name is required. Ignoring unneeded information in argument: " +-"'{}'" ++"Only module name is required. Ignoring unneeded information in argument: '{}'" + msgstr "モジュール名のみが必要です。引数で不必要な情報を無視します: '{}'" + +-#: dnf/module/module_base.py:841 ++#: dnf/module/module_base.py:844 + msgid "No match for package {}" + msgstr "パッケージ {} に一致するものはありません" + +@@ -3922,12 +4027,12 @@ msgstr "%s は空のファイルです" + #: dnf/persistor.py:90 + #, python-format + msgid "Failed to load expired repos cache: %s" +-msgstr "" ++msgstr "期限切れのリポジトリーキャッシュのロードに失敗しました: %s" + + #: dnf/persistor.py:98 + #, python-format + msgid "Failed to store expired repos cache: %s" +-msgstr "" ++msgstr "期限切れのリポジトリーキャッシュの保存に失敗しました: %s" + + #: dnf/persistor.py:105 + msgid "Failed storing last makecache time." +@@ -3970,7 +4075,7 @@ msgid "Already downloaded" + msgstr "ダウンロード済み" + + #. pinging mirrors, this might take a while +-#: dnf/repo.py:347 ++#: dnf/repo.py:346 + #, python-format + msgid "determining the fastest mirror (%s hosts).. " + msgstr "最速のミラーを確定しています (%s hosts).. " +@@ -3988,13 +4093,21 @@ msgstr "%s から %s repo を追加しました" + #: dnf/rpm/miscutils.py:32 + #, python-format + msgid "Using rpmkeys executable at %s to verify signatures" +-msgstr "" ++msgstr "%s で rpmkeys 実行可能ファイルを使用して、署名を検証します" + + #: dnf/rpm/miscutils.py:66 + msgid "Cannot find rpmkeys executable to verify signatures." +-msgstr "" ++msgstr "署名を検証する rpmkeys 実行ファイルが見つかりません。" + +-#: dnf/rpm/transaction.py:119 ++#: dnf/rpm/transaction.py:70 ++msgid "The openDB() function connot open rpm database." ++msgstr "openDB() 関数は rpm データベースを開けません。" ++ ++#: dnf/rpm/transaction.py:75 ++msgid "The dbCookie() function did not return cookie of rpm database." ++msgstr "dbCookie() 関数は rpm データベースのクッキーを返しませんでした。" ++ ++#: dnf/rpm/transaction.py:135 + msgid "Errors occurred during test transaction." + msgstr "テストトランザクション中にエラーが発生しました。" + +@@ -4003,6 +4116,8 @@ msgid "" + "allow_vendor_change is disabled. This option is currently not supported for " + "downgrade and distro-sync commands" + msgstr "" ++"allow_vendor_change は無効になっています。このオプションは、downgrade コマン" ++"ドおよび distro-sync コマンドではサポートされていません" + + #. TRANSLATORS: This is for a single package currently being downgraded. + #: dnf/transaction.py:80 +@@ -4056,22 +4171,22 @@ msgid "" + "The following problems occurred while replaying the transaction from file " + "\"{filename}\":" + msgstr "" ++"ファイル \"{filename}\" からのトランザクションの再生中に以下の問題が発生しま" ++"した:" + + #: dnf/transaction_sr.py:68 +-#, fuzzy +-#| msgid "Errors occurred during transaction." + msgid "The following problems occurred while running a transaction:" +-msgstr "トランザクション中にエラーが発生しました。" ++msgstr "トランザクションの実行中に以下の問題が発生しました:" + + #: dnf/transaction_sr.py:89 + #, python-brace-format + msgid "Invalid major version \"{major}\", number expected." +-msgstr "" ++msgstr "無効なメジャーバージョン \"{major}\"。数字が必要です。" + + #: dnf/transaction_sr.py:97 + #, python-brace-format + msgid "Invalid minor version \"{minor}\", number expected." +-msgstr "" ++msgstr "無効なマイナーバージョン \"{minor}\"。数字が必要です。" + + #: dnf/transaction_sr.py:103 + #, python-brace-format +@@ -4079,47 +4194,51 @@ msgid "" + "Incompatible major version \"{major}\", supported major version is " + "\"{major_supp}\"." + msgstr "" ++"互換性のないメジャーバージョン \"{major}\"。サポートされているメジャーバー" ++"ジョンは \"{major_supp}\" です。" + + #: dnf/transaction_sr.py:224 + msgid "" + "Conflicting TransactionReplay arguments have been specified: filename, data" +-msgstr "" ++msgstr "競合する TransactionReplay 引数が指定されています。filename, data" + + #: dnf/transaction_sr.py:265 + #, python-brace-format + msgid "Unexpected type of \"{id}\", {exp} expected." +-msgstr "" ++msgstr "予期しない {id}\" のタイプ。{exp} が必要です。" + + #: dnf/transaction_sr.py:271 + #, python-brace-format + msgid "Missing key \"{key}\"." +-msgstr "" ++msgstr "\"{key}\" キーがありません。" + + #: dnf/transaction_sr.py:285 + #, python-brace-format + msgid "Missing object key \"{key}\" in an rpm." +-msgstr "" ++msgstr "オブジェクトキー \"{key}\" が rpm にありません。" + + #: dnf/transaction_sr.py:289 + #, python-brace-format +-msgid "Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." +-msgstr "" ++msgid "" ++"Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." ++msgstr "rpm nevra \"{nevra}\" の予期しないパッケージ理由 \"{reason}\" の値。" + + #: dnf/transaction_sr.py:297 + #, python-brace-format + msgid "Cannot parse NEVRA for package \"{nevra}\"." +-msgstr "" ++msgstr "パッケージ \"{nevra}\" の NEVRA を解析できません。" + + #: dnf/transaction_sr.py:321 + #, python-brace-format + msgid "Cannot find rpm nevra \"{nevra}\"." +-msgstr "" ++msgstr "rpm nevra \"{nevra}\" を見つけることはできません。" + + #: dnf/transaction_sr.py:336 +-#, fuzzy, python-brace-format +-#| msgid "Package %s is already installed." ++#, python-brace-format + msgid "Package \"{na}\" is already installed for action \"{action}\"." +-msgstr "パッケージ %s は既にインストールされています。" ++msgstr "" ++"パッケージ \"{na}\" は、アクション \"{action}\" 用に既にインストールされてい" ++"ます。" + + #: dnf/transaction_sr.py:345 + #, python-brace-format +@@ -4127,39 +4246,42 @@ msgid "" + "Package nevra \"{nevra}\" not available in repositories for action " + "\"{action}\"." + msgstr "" ++"アクション \"{action}\" に利用できる パッケージ nevra \"{nevra}\" はレポジト" ++"リーにありません。" + + #: dnf/transaction_sr.py:356 + #, python-brace-format + msgid "Package nevra \"{nevra}\" not installed for action \"{action}\"." + msgstr "" ++"アクション \"{action}\" には、パッケージ nevra \"{nevra}\" インストールされて" ++"いません。" + + #: dnf/transaction_sr.py:370 + #, python-brace-format +-msgid "Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." ++msgid "" ++"Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." + msgstr "" ++"rpm nevra \"{nevra}\" の、パッケージアクション \"{action}\" の予期しない値。" + + #: dnf/transaction_sr.py:377 +-#, fuzzy, python-format +-#| msgid "Module or Group '%s' is not available." ++#, python-format + msgid "Group id '%s' is not available." +-msgstr "モジュールまたはグループ '%s' は利用不可です。" ++msgstr "グループ id '%s' は利用できません。" + + #: dnf/transaction_sr.py:398 + #, python-brace-format + msgid "Missing object key \"{key}\" in groups.packages." +-msgstr "" ++msgstr "オブジェクトキー \"{key}\" が groups.packages に含まれません。" + + #: dnf/transaction_sr.py:411 dnf/transaction_sr.py:421 +-#, fuzzy, python-format +-#| msgid "Module or Group '%s' is not installed." ++#, python-format + msgid "Group id '%s' is not installed." +-msgstr "モジュールまたはグループ '%s' がインストールされていません。" ++msgstr "グループ id '%s' がインストールされていません。" + + #: dnf/transaction_sr.py:432 +-#, fuzzy, python-format +-#| msgid "Environment '%s' is not available." ++#, python-format + msgid "Environment id '%s' is not available." +-msgstr "環境 '%s' は利用不可です。" ++msgstr "環境 id '%s' は利用できません。" + + #: dnf/transaction_sr.py:456 + #, python-brace-format +@@ -4167,38 +4289,45 @@ msgid "" + "Invalid value \"{group_type}\" of environments.groups.group_type, only " + "\"mandatory\" or \"optional\" is supported." + msgstr "" ++"environments.groups.group_type の無効な値 \"{group_type}\"。\"mandatory\" ま" ++"たは \"optional\" のみに対応しています。" + + #: dnf/transaction_sr.py:464 + #, python-brace-format + msgid "Missing object key \"{key}\" in environments.groups." +-msgstr "" ++msgstr "オブジェクトキー \"{key}\" が environments.groups に含まれません。" + + #: dnf/transaction_sr.py:542 + #, python-brace-format + msgid "Unexpected value of group action \"{action}\" for group \"{group}\"." + msgstr "" ++"グループ \"{group}\" の グループアクション \"{action}\" の予期しない値。" + + #: dnf/transaction_sr.py:547 + #, python-brace-format + msgid "Missing object key \"{key}\" in a group." +-msgstr "" ++msgstr "オブジェクトキー \"{key}\" がグループ内にありません。" + + #: dnf/transaction_sr.py:571 + #, python-brace-format +-msgid "Unexpected value of environment action \"{action}\" for environment \"{env}\"." +-msgstr "" ++msgid "" ++"Unexpected value of environment action \"{action}\" for environment " ++"\"{env}\"." ++msgstr "環境 \"{env}\" の環境アクション \"{action}\" の予期しない値。" + + #: dnf/transaction_sr.py:576 + #, python-brace-format + msgid "Missing object key \"{key}\" in an environment." +-msgstr "" ++msgstr "オブジェクトキー \"{key}\" が環境にありません。" + + #: dnf/transaction_sr.py:615 + #, python-brace-format + msgid "" +-"Package nevra \"{nevra}\", which is not present in the transaction file, was" +-" pulled into the transaction." ++"Package nevra \"{nevra}\", which is not present in the transaction file, was " ++"pulled into the transaction." + msgstr "" ++"トランザクションファイルに存在しないパッケージ nevra \"{nevra}\" がトランザク" ++"ションにプルされていました。" + + # translation auto-copied from project jbpm-designer, version 6.0.1, document + # org.jbpm/jbpm-designer- +@@ -4241,6 +4370,16 @@ msgstr "失敗しました" + msgid "" + msgstr "" + ++#~ msgid "skipping." ++#~ msgstr "スキップします。" ++ ++#~ msgid "" ++#~ "Using rpmkeys executable from {path} to verify signature for package: " ++#~ "{package}." ++#~ msgstr "" ++#~ "{path} から実行可能ファイル rpmkeys を使用して、パッケージの署名を検証しま" ++#~ "す: {package}。" ++ + #~ msgid "%s: %s check failed: %s vs %s" + #~ msgstr "%s: %s の確認に失敗しました: %s vs %s" + +@@ -4266,5 +4405,7 @@ msgstr "" + #~ msgstr "不正なトランザクション ID、またはパッケージが指定されました" + + #~ msgid "" +-#~ "Display capabilities that the package depends on for running a %%pre script." +-#~ msgstr "%%pre スクリプトを実行するためにパッケージが依存する機能を表示します。" ++#~ "Display capabilities that the package depends on for running a %%pre " ++#~ "script." ++#~ msgstr "" ++#~ "%%pre スクリプトを実行するためにパッケージが依存する機能を表示します。" +diff --git a/po/ko.po b/po/ko.po +index 6effd129..330b2b6d 100644 +--- a/po/ko.po ++++ b/po/ko.po +@@ -2,20 +2,22 @@ + # Eun-Ju Kim , 2016. #zanata + # Ludek Janda , 2018. #zanata, 2020. + # simmon , 2021. ++# Kim InSoo , 2022. + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2021-06-13 09:18-0400\n" +-"PO-Revision-Date: 2021-06-07 17:15+0000\n" +-"Last-Translator: simmon \n" +-"Language-Team: Korean \n" ++"POT-Creation-Date: 2022-02-28 11:37+0100\n" ++"PO-Revision-Date: 2022-03-02 04:16+0000\n" ++"Last-Translator: Kim InSoo \n" ++"Language-Team: Korean \n" + "Language: ko\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=1; plural=0;\n" +-"X-Generator: Weblate 4.6.2\n" ++"X-Generator: Weblate 4.11\n" + + #: dnf/automatic/emitter.py:32 + #, python-format +@@ -109,7 +111,8 @@ msgstr "저장소 '{}'의 적재하기가 실패했습니다" + + #: dnf/base.py:327 + msgid "Metadata timer caching disabled when running on metered connection." +-msgstr "데이터 통신 연결을 사용 할 때에 메타 자료 타이머 캐싱을 비활성화합니다." ++msgstr "" ++"데이터 통신 연결을 사용 할 때에 메타 자료 타이머 캐싱을 비활성화합니다." + + #: dnf/base.py:332 + msgid "Metadata timer caching disabled when running on a battery." +@@ -166,7 +169,7 @@ msgstr "저장소를 무시합니다: %s" + #: dnf/base.py:419 + #, python-format + msgid "Last metadata expiration check: %s ago on %s." +-msgstr "마지막 메타자료 만료 확인: %s 이전에 %s." ++msgstr "마지막 메타자료 만료확인 %s 이전인: %s." + + #: dnf/base.py:512 + msgid "" +@@ -189,154 +192,155 @@ msgstr "설정 파일에서 tsflag 사용이 잘못되었습니다: %s" + msgid "Failed to add groups file for repository: %s - %s" + msgstr "리포지토리의 그룹 파일을 추가하지 못했습니다. %s - %s" + +-#: dnf/base.py:904 ++#: dnf/base.py:922 + msgid "Running transaction check" + msgstr "연결 확인 실행 중" + +-#: dnf/base.py:912 ++#: dnf/base.py:930 + msgid "Error: transaction check vs depsolve:" +-msgstr "오류 : 연결 확인 및 종속성 해결 오류:" ++msgstr "오류: 연결 확인 및 종속성 해결 오류:" + +-#: dnf/base.py:918 ++#: dnf/base.py:936 + msgid "Transaction check succeeded." + msgstr "연결 확인에 성공했습니다." + +-#: dnf/base.py:921 ++#: dnf/base.py:939 + msgid "Running transaction test" + msgstr "연결 시험 실행 중" + +-#: dnf/base.py:931 dnf/base.py:1082 ++#: dnf/base.py:949 dnf/base.py:1100 + msgid "RPM: {}" + msgstr "RPM: {}" + +-#: dnf/base.py:932 ++#: dnf/base.py:950 + msgid "Transaction test error:" + msgstr "연결 시험 오류:" + +-#: dnf/base.py:943 ++#: dnf/base.py:961 + msgid "Transaction test succeeded." + msgstr "연결 시험에 성공했습니다." + +-#: dnf/base.py:964 ++#: dnf/base.py:982 + msgid "Running transaction" + msgstr "연결 실행 중" + +-#: dnf/base.py:1001 ++#: dnf/base.py:1019 + msgid "Disk Requirements:" + msgstr "디스크 요구 사항 :" + +-#: dnf/base.py:1004 ++#: dnf/base.py:1022 + #, python-brace-format + msgid "At least {0}MB more space needed on the {1} filesystem." + msgid_plural "At least {0}MB more space needed on the {1} filesystem." + msgstr[0] "{1} 파일 시스템에 최소 {0}MB의 공간이 더 필요합니다." + +-#: dnf/base.py:1011 ++#: dnf/base.py:1029 + msgid "Error Summary" + msgstr "오류 요약" + +-#: dnf/base.py:1037 ++#: dnf/base.py:1055 + #, python-brace-format + msgid "RPMDB altered outside of {prog}." + msgstr "RPMDB는 {prog} 외부에서 변경되었습니다." + +-#: dnf/base.py:1083 dnf/base.py:1091 ++#: dnf/base.py:1101 dnf/base.py:1109 + msgid "Could not run transaction." + msgstr "연결를 실행 할 수 없습니다." + +-#: dnf/base.py:1086 ++#: dnf/base.py:1104 + msgid "Transaction couldn't start:" + msgstr "연결을 시작 할 수 없습니다 :" + +-#: dnf/base.py:1100 ++#: dnf/base.py:1118 + #, python-format + msgid "Failed to remove transaction file %s" + msgstr "%s 연결 파일을 삭제하지 못했습니다" + +-#: dnf/base.py:1182 ++#: dnf/base.py:1200 + msgid "Some packages were not downloaded. Retrying." +-msgstr "일부 꾸러미가 내려받기되지 않았습니다. 다시 시도 중입니다." ++msgstr "일부 꾸러미를 내려받지 못했습니다. 다시 시도합니다." + +-#: dnf/base.py:1212 ++#: dnf/base.py:1230 + #, python-format + msgid "Delta RPMs reduced %.1f MB of updates to %.1f MB (%.1f%% saved)" +-msgstr "델타 RPM이 %.1f MB의 최신화를 %.1f MB로 줄였습니다. (%.1%% 절약됨)" ++msgstr "델타 RPM은 %.1f MB의 최신화를 %.1f MB으로 줄였습니다.(%.1f%% 절약됨)" + +-#: dnf/base.py:1216 ++#: dnf/base.py:1234 + #, python-format + msgid "" + "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%.1f%% wasted)" +-msgstr "Delta RPM은 %.1f MB의 최신화를 %.1f MB로 줄이는데 실패했습니다. (%.1f%% 손실됨)" ++msgstr "Delta RPM은 %.1f MB의 최신화를 %.1f MB로 늘리는데 실패했습니다.(%.1f%% " ++"낭비됨)" + +-#: dnf/base.py:1258 ++#: dnf/base.py:1276 + msgid "Cannot add local packages, because transaction job already exists" + msgstr "연결 작업이 이미 존재하므로 로컬 꾸러미를 추가할 수 없습니다" + +-#: dnf/base.py:1272 ++#: dnf/base.py:1290 + msgid "Could not open: {}" + msgstr "열 수 없음 : {}" + +-#: dnf/base.py:1310 ++#: dnf/base.py:1328 + #, python-format + msgid "Public key for %s is not installed" + msgstr "%s의 공개 키는 설치되어 있지 않습니다" + +-#: dnf/base.py:1314 ++#: dnf/base.py:1332 + #, python-format + msgid "Problem opening package %s" + msgstr "%s 꾸러미를 여는 중에 문제가 발생했습니다" + +-#: dnf/base.py:1322 ++#: dnf/base.py:1340 + #, python-format + msgid "Public key for %s is not trusted" + msgstr "%s의 공개 키는 신뢰 할 수 없습니다" + +-#: dnf/base.py:1326 ++#: dnf/base.py:1344 + #, python-format + msgid "Package %s is not signed" + msgstr "%s 꾸러미가 서명되지 않았습니다" + +-#: dnf/base.py:1356 ++#: dnf/base.py:1374 + #, python-format + msgid "Cannot remove %s" + msgstr "%s를 삭제 할 수 없습니다" + +-#: dnf/base.py:1360 ++#: dnf/base.py:1378 + #, python-format + msgid "%s removed" + msgstr "%s가 삭제되었습니다" + +-#: dnf/base.py:1640 ++#: dnf/base.py:1658 + msgid "No match for group package \"{}\"" + msgstr "그룹 꾸러미 \"{}\"에 일치하는 항목이 없습니다" + +-#: dnf/base.py:1726 ++#: dnf/base.py:1740 + #, python-format + msgid "Adding packages from group '%s': %s" + msgstr "'%s' 그룹에서 꾸러미 추가: %s" + +-#: dnf/base.py:1749 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 ++#: dnf/base.py:1763 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 + #: dnf/cli/commands/__init__.py:494 dnf/cli/commands/__init__.py:587 + #: dnf/cli/commands/__init__.py:636 dnf/cli/commands/install.py:80 + #: dnf/cli/commands/install.py:103 dnf/cli/commands/install.py:110 + msgid "Nothing to do." + msgstr "처리가 필요하지 않습니다." + +-#: dnf/base.py:1767 ++#: dnf/base.py:1781 + msgid "No groups marked for removal." + msgstr "제거할 꾸러미 그룹이 없습니다." + +-#: dnf/base.py:1801 ++#: dnf/base.py:1815 + msgid "No group marked for upgrade." + msgstr "향상을 위해 표시된 그룹이 없습니다." + +-#: dnf/base.py:2015 ++#: dnf/base.py:2029 + #, python-format + msgid "Package %s not installed, cannot downgrade it." + msgstr "%s 꾸러미가 설치되어 있지 않기 때문에 하향설치 할 수 없습니다." + +-#: dnf/base.py:2017 dnf/base.py:2036 dnf/base.py:2049 dnf/base.py:2076 +-#: dnf/base.py:2129 dnf/base.py:2137 dnf/base.py:2271 dnf/cli/cli.py:417 ++#: dnf/base.py:2031 dnf/base.py:2050 dnf/base.py:2063 dnf/base.py:2090 ++#: dnf/base.py:2143 dnf/base.py:2151 dnf/base.py:2285 dnf/cli/cli.py:417 + #: dnf/cli/commands/__init__.py:420 dnf/cli/commands/__init__.py:477 + #: dnf/cli/commands/__init__.py:581 dnf/cli/commands/__init__.py:628 + #: dnf/cli/commands/__init__.py:706 dnf/cli/commands/install.py:147 +@@ -346,188 +350,193 @@ msgstr "%s 꾸러미가 설치되어 있지 않기 때문에 하향설치 할 + msgid "No match for argument: %s" + msgstr "인수가 일치하지 않습니다: %s" + +-#: dnf/base.py:2024 ++#: dnf/base.py:2038 + #, python-format + msgid "Package %s of lower version already installed, cannot downgrade it." +-msgstr "%s 꾸러미의 하위 버전이 이미 설치되어 있으므로 다운그레이드 할 수 없습니다." ++msgstr "" ++"%s 꾸러미의 하위 버전이 이미 설치되어 있으므로 다운그레이드 할 수 없습니다." + +-#: dnf/base.py:2047 ++#: dnf/base.py:2061 + #, python-format + msgid "Package %s not installed, cannot reinstall it." +-msgstr "%s 꾸러미가 설치되어 있지 않기 때문에 다시 설치할 수 없습니다." ++msgstr "꾸러미 %s가 설치되지 않아서, 다시 설치 할 수 없습니다." + +-#: dnf/base.py:2062 ++#: dnf/base.py:2076 + #, python-format + msgid "File %s is a source package and cannot be updated, ignoring." + msgstr "%s 파일은 소스 꾸러미이며 최신화 할 수 없습니다. 무시합니다." + +-#: dnf/base.py:2073 ++#: dnf/base.py:2087 + #, python-format + msgid "Package %s not installed, cannot update it." + msgstr "%s 꾸러미가 설치되어 있지 않기 때문에 최신화 할 수 없습니다." + +-#: dnf/base.py:2083 ++#: dnf/base.py:2097 + #, python-format + msgid "" + "The same or higher version of %s is already installed, cannot update it." + msgstr "%s 이상의 버전이 이미 설치되어 있으므로 최신화 할 수 없습니다." + +-#: dnf/base.py:2126 dnf/cli/commands/reinstall.py:81 ++#: dnf/base.py:2140 dnf/cli/commands/reinstall.py:81 + #, python-format + msgid "Package %s available, but not installed." + msgstr "%s 꾸러미는 사용할 수는 있지만 설치되어 있지 않습니다." + +-#: dnf/base.py:2132 ++#: dnf/base.py:2146 + #, python-format + msgid "Package %s available, but installed for different architecture." + msgstr "%s 꾸러미는 사용 가능하지만 다른 구조용으로 설치되어 있습니다." + +-#: dnf/base.py:2157 ++#: dnf/base.py:2171 + #, python-format + msgid "No package %s installed." + msgstr "%s 꾸러미는 설치되어 있지 않습니다." + +-#: dnf/base.py:2175 dnf/cli/commands/install.py:136 ++#: dnf/base.py:2189 dnf/cli/commands/install.py:136 + #: dnf/cli/commands/remove.py:133 + #, python-format + msgid "Not a valid form: %s" + msgstr "잘못된 형식: %s" + +-#: dnf/base.py:2190 dnf/cli/commands/__init__.py:676 ++#: dnf/base.py:2204 dnf/cli/commands/__init__.py:676 + #: dnf/cli/commands/remove.py:162 + msgid "No packages marked for removal." + msgstr "제거 대상 꾸러미가 없습니다." + +-#: dnf/base.py:2278 dnf/cli/cli.py:428 ++#: dnf/base.py:2292 dnf/cli/cli.py:428 + #, python-format + msgid "Packages for argument %s available, but not installed." + msgstr "%s 인수에 대한 꾸러미를 사용할 수 있지만 설치되어 있지 않습니다." + +-#: dnf/base.py:2283 ++#: dnf/base.py:2297 + #, python-format + msgid "Package %s of lowest version already installed, cannot downgrade it." +-msgstr "%s 꾸러미의 최하위 버전이 이미 설치되어 있으므로 다운그레이드 할 수 없습니다." ++msgstr "" ++"%s 꾸러미의 최하위 버전이 이미 설치되어 있으므로 다운그레이드 할 수 없습니다." + +-#: dnf/base.py:2383 ++#: dnf/base.py:2397 + msgid "No security updates needed, but {} update available" + msgstr "보안 최신화가 필요하지 않지만, {} 최신화가 가능합니다" + +-#: dnf/base.py:2385 ++#: dnf/base.py:2399 + msgid "No security updates needed, but {} updates available" + msgstr "보안 최신화는 필요하지 않지만 {} 최신화는 가능합니다" + +-#: dnf/base.py:2389 ++#: dnf/base.py:2403 + msgid "No security updates needed for \"{}\", but {} update available" + msgstr "\"{}\"에는 보안 최신화가 필요하지 않지만 {} 최신화가 가능합니다" + +-#: dnf/base.py:2391 ++#: dnf/base.py:2405 + msgid "No security updates needed for \"{}\", but {} updates available" + msgstr "\"{}\"에는 보안 최신화가 필요하지 않지만 {} 최신화가 가능합니다" + + #. raise an exception, because po.repoid is not in self.repos +-#: dnf/base.py:2412 ++#: dnf/base.py:2426 + #, python-format + msgid "Unable to retrieve a key for a commandline package: %s" + msgstr "명령줄 꾸러미: %s 대한 키를 검색 할 수 없습니다" + +-#: dnf/base.py:2420 ++#: dnf/base.py:2434 + #, python-format + msgid ". Failing package is: %s" + msgstr "실패한 꾸러미는 다음과 같습니다. %s" + +-#: dnf/base.py:2421 ++#: dnf/base.py:2435 + #, python-format + msgid "GPG Keys are configured as: %s" + msgstr "GPG 키는 다음과 같이 설정되어 있습니다. %s" + +-#: dnf/base.py:2433 ++#: dnf/base.py:2447 + #, python-format + msgid "GPG key at %s (0x%s) is already installed" + msgstr "%s (0x%s)의 GPG 키가 이미 설치되어 있습니다" + +-#: dnf/base.py:2469 ++#: dnf/base.py:2483 + msgid "The key has been approved." + msgstr "키가 승인되었습니다." + +-#: dnf/base.py:2472 ++#: dnf/base.py:2486 + msgid "The key has been rejected." + msgstr "키가 거부되었습니다." + +-#: dnf/base.py:2505 ++#: dnf/base.py:2519 + #, python-format + msgid "Key import failed (code %d)" + msgstr "키 가져 오기에 실패했습니다 (코드 %d)" + +-#: dnf/base.py:2507 ++#: dnf/base.py:2521 + msgid "Key imported successfully" + msgstr "키 가져오기에 성공했습니다" + +-#: dnf/base.py:2511 ++#: dnf/base.py:2525 + msgid "Didn't install any keys" + msgstr "키를 하나도 설치하지 못했습니다" + +-#: dnf/base.py:2514 ++#: dnf/base.py:2528 + #, python-format + msgid "" +-"The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n" ++"The GPG keys listed for the \"%s\" repository are already installed but they " ++"are not correct for this package.\n" + "Check that the correct key URLs are configured for this repository." + msgstr "" + "해당 GPG 키는 \"%s\"저장소가 이미 설치되어 있지만이 꾸러미에 맞지 않습니다.\n" + "이 저장소에 대해 올바른 키 URL이 구성되었는지 확인하십시오." + +-#: dnf/base.py:2525 ++#: dnf/base.py:2539 + msgid "Import of key(s) didn't help, wrong key(s)?" + msgstr "가져온 키에 문제가 있습니다. 잘못된 키입니까?" + +-#: dnf/base.py:2578 ++#: dnf/base.py:2592 + msgid " * Maybe you meant: {}" + msgstr " * 다음을 의미 할 수도 있습니다: {}" + +-#: dnf/base.py:2610 ++#: dnf/base.py:2624 + msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" + msgstr "로컬 저장소 \"{}\"의 \"{}\"꾸러미에 잘못된 체크섬이 있습니다" + +-#: dnf/base.py:2613 ++#: dnf/base.py:2627 + msgid "Some packages from local repository have incorrect checksum" + msgstr "로컬 저장소의 일부 꾸러미에 잘못된 체크섬이 있습니다" + +-#: dnf/base.py:2616 ++#: dnf/base.py:2630 + msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" + msgstr "저장소 \"{}\"의 꾸러미 \"{}\"에 잘못된 체크섬이 있습니다" + +-#: dnf/base.py:2619 ++#: dnf/base.py:2633 + msgid "" + "Some packages have invalid cache, but cannot be downloaded due to \"--" + "cacheonly\" option" +-msgstr "일부 꾸러미에는 유효하지 않은 캐쉬가 있지만 \"--cacheonly\"옵션으로 인해 내려받기 할 수 없습니다" ++msgstr "" ++"일부 꾸러미에는 유효하지 않은 캐쉬가 있지만 \"--cacheonly\"옵션으로 인해 내려" ++"받기 할 수 없습니다" + +-#: dnf/base.py:2637 dnf/base.py:2657 ++#: dnf/base.py:2651 dnf/base.py:2671 + msgid "No match for argument" + msgstr "일치하는 인수가 없습니다" + +-#: dnf/base.py:2645 dnf/base.py:2665 ++#: dnf/base.py:2659 dnf/base.py:2679 + msgid "All matches were filtered out by exclude filtering for argument" + msgstr "모든 일치 항목이 인수의 제외 필터로 필터링되었습니다" + +-#: dnf/base.py:2647 ++#: dnf/base.py:2661 + msgid "All matches were filtered out by modular filtering for argument" + msgstr "모든 일치 항목이 인수의 모듈식 필터로 필터링되었습니다" + +-#: dnf/base.py:2663 ++#: dnf/base.py:2677 + msgid "All matches were installed from a different repository for argument" + msgstr "모든 일치 항목이 인수의 다른 리포지토리에서 설치되었습니다" + +-#: dnf/base.py:2710 ++#: dnf/base.py:2724 + #, python-format + msgid "Package %s is already installed." +-msgstr "꾸러미 %s 가 이미 설치되어 있습니다." ++msgstr "꾸러미 %s가 이미 설치되어 있습니다." + + #: dnf/cli/aliases.py:96 + #, python-format + msgid "Unexpected value of environment variable: DNF_DISABLE_ALIASES=%s" + msgstr "예상치 못한 환경 변수 값 : DNF_DISABLE_ALIASES =%s" + +-#: dnf/cli/aliases.py:105 dnf/conf/config.py:457 ++#: dnf/cli/aliases.py:105 dnf/conf/config.py:475 + #, python-format + msgid "Parsing file \"%s\" failed: %s" + msgstr "\"%s\" 파일의 구문 분석에 실패했습니다 : %s" +@@ -572,11 +581,17 @@ msgstr "이 작업은 '{0}' 모듈을 '{1}' 스트림에서 ‘{2}' 스트림으 + #: dnf/cli/cli.py:173 + #, python-brace-format + msgid "" +-"It is not possible to switch enabled streams of a module unless explicitly enabled via configuration option module_stream_switch.\n" +-"It is recommended to rather remove all installed content from the module, and reset the module using '{prog} module reset ' command. After you reset the module, you can install the other stream." ++"It is not possible to switch enabled streams of a module unless explicitly " ++"enabled via configuration option module_stream_switch.\n" ++"It is recommended to rather remove all installed content from the module, " ++"and reset the module using '{prog} module reset ' command. " ++"After you reset the module, you can install the other stream." + msgstr "" +-"설정 선택 module_stream_switch을 통해 명시적으로 활성화 하지 않는한 모듈의 활성화된 스트림을 전환 할 수 없습니다.\n" +-"모듈에서 설치된 모든 내용을 모듈에서 제거하고, '{prog} module reset '명령을 사용하여 모듈을 재설정하는 것을 권장합니다. 모듈을 재설정 후에, 다른 스트림을 설치 할 수 있습니다." ++"구성 옵션 module_stream_switch를 통해 명시적으로 활성화하지 않는 한 활성화된 " ++"모듈 스트림을 전환 할 수 없습니다.\n" ++"설치된 모든 내용을 모듈에서 제거하고 ‘{prog} module reset ' 명령" ++"을 사용하여 모듈을 재설정하는 것이 좋습니다. 모듈을 재설정한 후 다른 스트림" ++"을 설치 할 수 있습니다." + + #: dnf/cli/cli.py:212 + #, python-brace-format +@@ -596,7 +611,7 @@ msgstr "작업이 중지됩니다." + + #: dnf/cli/cli.py:226 + msgid "Downloading Packages:" +-msgstr "꾸러미 내려받기중:" ++msgstr "꾸러미 내려받기 중:" + + #: dnf/cli/cli.py:232 + msgid "Error downloading packages:" +@@ -680,9 +695,11 @@ msgstr "일치하는 저장소가 없습니다 : %s" + + #: dnf/cli/cli.py:719 + msgid "" +-"This command has to be run with superuser privileges (under the root user on" +-" most systems)." +-msgstr "이 명령은 슈퍼유저 권한으로 실행해야합니다 (대부분의 시스템에서 root 사용자로 실행)." ++"This command has to be run with superuser privileges (under the root user on " ++"most systems)." ++msgstr "" ++"이 명령은 슈퍼유저 권한으로 실행해야합니다 (대부분의 시스템에서 root 사용자" ++"로 실행)." + + #: dnf/cli/cli.py:749 + #, python-format +@@ -701,31 +718,32 @@ msgstr "{PROG} 플러그인 명령일 수 있습니다: \"{prog} 'dnf-command(%s + msgid "" + "It could be a {prog} plugin command, but loading of plugins is currently " + "disabled." +-msgstr "{prog} 플러그인 명령일 수 있지만 플러그인 로딩은 현재 비활성화되어 있습니다." ++msgstr "" ++"{prog} 플러그인 명령일 수 있지만 플러그인 로딩은 현재 비활성화되어 있습니다." + + #: dnf/cli/cli.py:814 + msgid "" + "--destdir or --downloaddir must be used with --downloadonly or download or " + "system-upgrade command." + msgstr "" +-"--destdir 또는 --downloaddir은 --downloadonly 또는 download 또는 system-upgrade 명령과" +-" 함께 사용해야합니다." ++"--destdir 또는 --downloaddir은 --downloadonly 또는 download 또는 system-" ++"upgrade 명령과 함께 사용해야합니다." + + #: dnf/cli/cli.py:820 + msgid "" + "--enable, --set-enabled and --disable, --set-disabled must be used with " + "config-manager command." + msgstr "" +-"--enable, --set-enabled 및 --disable, --set-disabled는 config-manager 명령과 함께 " +-"사용해야합니다." ++"--enable, --set-enabled 및 --disable, --set-disabled는 config-manager 명령과 " ++"함께 사용해야합니다." + + #: dnf/cli/cli.py:902 + msgid "" + "Warning: Enforcing GPG signature check globally as per active RPM security " + "policy (see 'gpgcheck' in dnf.conf(5) for how to squelch this message)" + msgstr "" +-"경고: 활성화된 RPM 보안 정책에 따라 GPG 서명 검사를 전체적으로 시행합니다 (이 메시지를 제거하는 방법은 dnf.conf (5)의" +-" 'gpgcheck' 참조)" ++"경고: 활성화된 RPM 보안 정책에 따라 GPG 서명 검사를 전체적으로 시행합니다 " ++"(이 메시지를 제거하는 방법은 dnf.conf (5)의 'gpgcheck' 참조)" + + #: dnf/cli/cli.py:922 + msgid "Config file \"{}\" does not exist" +@@ -735,7 +753,9 @@ msgstr "설정 파일 \"{}\" 이 존재하지 않습니다" + msgid "" + "Unable to detect release version (use '--releasever' to specify release " + "version)" +-msgstr "출시 버전을 찾을 수 없습니다 ('--releasever'를 사용하여 출시 버전을 지정하십시오)" ++msgstr "" ++"출시 버전을 찾을 수 없습니다 ('--releasever'를 사용하여 출시 버전을 지정하십" ++"시오)" + + #: dnf/cli/cli.py:1016 dnf/cli/commands/repoquery.py:471 + msgid "argument {}: not allowed with argument {}" +@@ -770,13 +790,15 @@ msgstr "문제를 진단하려면 다음을 실행하십시오. '%s'." + #: dnf/cli/commands/__init__.py:40 + #, python-format + msgid "You probably have corrupted RPMDB, running '%s' might fix the issue." +-msgstr "RPMDB가 손상되었을 수 있습니다 '%s'를 실행하여 문제를 해결할 수 있습니다." ++msgstr "" ++"RPMDB가 손상되었을 수 있습니다 '%s'를 실행하여 문제를 해결할 수 있습니다." + + #: dnf/cli/commands/__init__.py:44 + #, python-brace-format + msgid "" + "You have enabled checking of packages via GPG keys. This is a good thing.\n" +-"However, you do not have any GPG public keys installed. You need to download\n" ++"However, you do not have any GPG public keys installed. You need to " ++"download\n" + "the keys for packages you wish to install and install them.\n" + "You can do that by running the command:\n" + " rpm --import public.gpg.key\n" +@@ -790,13 +812,13 @@ msgid "" + msgstr "" + "GPG 키를 통해 꾸러미 검사를 활성화했습니다. 이는 적절한 작업 실행입니다.\n" + "그러나 GPG 공개 키가 설치되어 있지 않습니다.\n" +-"설치하려는 꾸러미의 키를 내려받기하여 설치해야 합니다.\n" ++"설치하려는 꾸러미의 키를 내려 받기하여 설치해야 합니다.\n" + "다음 명령으로 이 작업을 수행할 수 있습니다:\n" + "rpm --import public.gpg.key\n" + "\n" + "\n" +-"또는 저장소 섹션의 'gpgkey' 옵션을 사용하여\n" +-"저장소에 사용할 키의 URL을 지정할 수 있으며 {prog}가\n" ++"또는 저장소 부분의 'gpgkey' 옵션을 사용하여\n" ++"저장소에 사용할 키의 URL을 지정 할 수 있으며 {prog}가\n" + "이를 설치합니다\n" + "\n" + "자세한 내용은 배포 또는 꾸러미 공급 업체에 문의하십시오." +@@ -1116,7 +1138,9 @@ msgstr "PID %d 프로세스가 종료되기를 기다리고 있습니다." + msgid "" + "[deprecated, use repoquery --deplist] List package's dependencies and what " + "packages provide them" +-msgstr "[비추천, repoquery --deplist 사용] 꾸러미 의존성과 이를 제공하는 꾸러미를 나열" ++msgstr "" ++"[더 이상 사용되지 않음, repoquery --deplist 사용] 꾸러미의 종속성과 이를 제공" ++"하는 꾸러미 목록 나열" + + #: dnf/cli/commands/distrosync.py:32 + msgid "synchronize installed packages to the latest available versions" +@@ -1222,9 +1246,10 @@ msgstr "저장 명령을 위해, 트랜젝션을 저장할 파일 경로" + + #: dnf/cli/commands/history.py:68 + msgid "" +-"For the replay command, don't check for installed packages matching those in" +-" transaction" +-msgstr "재생명령을 위하여, 연결에 그것들과 일치하는 설치된 꾸러미를 확인하지 마세요" ++"For the replay command, don't check for installed packages matching those in " ++"transaction" ++msgstr "" ++"재생명령을 위하여, 연결에 그것들과 일치하는 설치된 꾸러미를 확인하지 마세요" + + #: dnf/cli/commands/history.py:71 + msgid "" +@@ -1234,9 +1259,11 @@ msgstr "응답 명령을 위하여, 연결에 추가 된 꾸러미를 확인하 + + #: dnf/cli/commands/history.py:74 + msgid "" +-"For the replay command, skip packages that are not available or have missing" +-" dependencies" +-msgstr "지연 명령을 위하여, 사용 할 수 없는 또는 찾을 수 없는 의존성을 갖는 목록 건너띄기" ++"For the replay command, skip packages that are not available or have missing " ++"dependencies" ++msgstr "" ++"지연 명령을 위하여, 사용 할 수 없는 또는 찾을 수 없는 의존성을 갖는 목록 건너" ++"띄기" + + #: dnf/cli/commands/history.py:94 + msgid "" +@@ -1266,16 +1293,20 @@ msgstr "기록 DB에 액세스할 수 없습니다: %s" + #: dnf/cli/commands/history.py:151 + #, python-format + msgid "" +-"Cannot undo transaction %s, doing so would result in an inconsistent package" +-" database." +-msgstr "%s 연결을 취소 할 수 없습니다. 취소하면 꾸러미 자료 저장소가 일치하지 않게 됩니다." ++"Cannot undo transaction %s, doing so would result in an inconsistent package " ++"database." ++msgstr "" ++"%s 연결을 취소 할 수 없습니다. 취소하면 꾸러미 자료 저장소가 일치하지 않게 됩" ++"니다." + + #: dnf/cli/commands/history.py:156 + #, python-format + msgid "" + "Cannot rollback transaction %s, doing so would result in an inconsistent " + "package database." +-msgstr "%s 연결을 되돌릴 수 없습니다. 이렇게 하면 꾸러미 데이타베이스가 일치하지 않게 됩니다." ++msgstr "" ++"%s 연결을 되돌릴 수 없습니다. 이렇게 하면 꾸러미 데이타베이스가 일치하지 않" ++"게 됩니다." + + #: dnf/cli/commands/history.py:175 + msgid "No transaction ID given" +@@ -1415,9 +1446,11 @@ msgstr "꾸러미 %s가 설치되지 않았습니다." + + #: dnf/cli/commands/module.py:54 + msgid "" +-"Only module name, stream, architecture or profile is used. Ignoring unneeded" +-" information in argument: '{}'" +-msgstr "모듈 이름, 스트림, 구조 또는 프로파일만 사용됩니다. '{}'인수에서 불필요한 정보는 무시하십시오" ++"Only module name, stream, architecture or profile is used. Ignoring unneeded " ++"information in argument: '{}'" ++msgstr "" ++"모듈 이름, 스트림, 구조 또는 프로파일만 사용됩니다. '{}'인수에서 불필요한 정" ++"보는 무시하십시오" + + #: dnf/cli/commands/module.py:80 + msgid "list all module streams, profiles and states" +@@ -1665,7 +1698,7 @@ msgstr "Repo-filename : " + #. then chop the middle (name)... + #: dnf/cli/commands/repolist.py:246 dnf/cli/commands/repolist.py:273 + msgid "repo id" +-msgstr "리포지터리 ID" ++msgstr "레포지터리 ID" + + #: dnf/cli/commands/repolist.py:259 dnf/cli/commands/repolist.py:260 + #: dnf/cli/commands/repolist.py:281 +@@ -1674,7 +1707,7 @@ msgstr "상태" + + #: dnf/cli/commands/repolist.py:275 dnf/cli/commands/repolist.py:277 + msgid "repo name" +-msgstr "리포지터리 이름" ++msgstr "레포지터리 이름" + + #: dnf/cli/commands/repolist.py:291 + msgid "Total packages: {}" +@@ -1688,7 +1721,8 @@ msgstr "키워드와 일치하는 꾸러미 검색" + msgid "" + "Query all packages (shorthand for repoquery '*' or repoquery without " + "argument)" +-msgstr "모든 꾸러미를 쿼리하십시오 (repoquery '*'의 축약형 또는 인수없는 repoquery)" ++msgstr "" ++"모든 꾸러미를 쿼리하십시오 (repoquery '*'의 축약형 또는 인수없는 repoquery)" + + #: dnf/cli/commands/repoquery.py:124 + msgid "Query all versions of packages (default)" +@@ -1710,7 +1744,9 @@ msgstr "REQ와 충돌하는 결과 만 표시" + msgid "" + "shows results that requires, suggests, supplements, enhances,or recommends " + "package provides and files REQ" +-msgstr "REQ를 제공하고 파일 꾸러미를 요구, 제안, 보완, 개선, 권장하는 결과를 표시합니다" ++msgstr "" ++"꾸러미 제공과 파일 REQ를 요구, 제안, 보완, 향상 또는 권장하는 결과를 표시합니" ++"다" + + #: dnf/cli/commands/repoquery.py:139 + msgid "show only results that obsolete REQ" +@@ -1752,7 +1788,9 @@ msgstr "지정된대로 종속성을 확인. --alldeps와 반대됩니다" + msgid "" + "used with --whatrequires, and --requires --resolve, query packages " + "recursively." +-msgstr "--whatrequires, --requires --resolve와 함계 사용하여 꾸러미를 재귀적으로 쿼리합니다." ++msgstr "" ++"--whatrequires, --requires --resolve와 함계 사용하여 꾸러미를 재귀적으로 쿼리" ++"합니다." + + #: dnf/cli/commands/repoquery.py:166 + msgid "show a list of all dependencies and what packages provide them" +@@ -1774,7 +1812,9 @@ msgstr "해당 소스 RPM에서 작동합니다" + msgid "" + "show N latest packages for a given name.arch (or latest but N if N is " + "negative)" +-msgstr "지정된 name.arch (또는 N이 음수인 경우 가장 오래된 꾸러미)에 대한 N 개의 최신 꾸러미를 표시합니다" ++msgstr "" ++"지정된 name.arch (또는 N이 음수인 경우 가장 오래된 꾸러미)에 대한 N 개의 최" ++"신 꾸러미를 표시합니다" + + #: dnf/cli/commands/repoquery.py:177 + msgid "list also packages of inactive module streams" +@@ -1799,11 +1839,11 @@ msgstr "꾸러미의 변경 로그 표시" + #: dnf/cli/commands/repoquery.py:194 + #, python-format, python-brace-format + msgid "" +-"display format for listing packages: \"%%{name} %%{version} ...\", use " +-"--querytags to view full tag list" ++"display format for listing packages: \"%%{name} %%{version} ...\", use --" ++"querytags to view full tag list" + msgstr "" +-"꾸러미 목록 표시형식 : \"%%{name} %%{version} ...\" 모든 태그 목록을 보여주기 위해 --querytags " +-"사용합니다" ++"꾸러미 목록 표시형식 : \"%%{name} %%{version} ...\" 모든 태그 목록을 보여주" ++"기 위해 --querytags 사용합니다" + + #: dnf/cli/commands/repoquery.py:198 + msgid "show available tags to use with --queryformat" +@@ -1813,19 +1853,25 @@ msgstr "--queryformat과 함께 사용할 수 있는 태그를 표시합니다" + msgid "" + "use name-epoch:version-release.architecture format for displaying found " + "packages (default)" +-msgstr "name-epoch:version-release.architecture 형식을 사용하여 검색된 꾸러미를 표시합니다 (기본값)" ++msgstr "" ++"name-epoch:version-release.architecture 형식을 사용하여 검색된 꾸러미를 표시" ++"합니다 (기본값)" + + #: dnf/cli/commands/repoquery.py:205 + msgid "" + "use name-version-release format for displaying found packages (rpm query " + "default)" +-msgstr "name-version-release 형식을 사용하여 검색된 꾸러미를 표시합니다 (rpm 쿼리 기본값)" ++msgstr "" ++"name-version-release 형식을 사용하여 검색된 꾸러미를 표시합니다 (rpm 쿼리 기" ++"본값)" + + #: dnf/cli/commands/repoquery.py:211 + msgid "" + "use epoch:name-version-release.architecture format for displaying found " + "packages" +-msgstr "epoch : name-version-release.architecture 형식을 사용하여 검색된 꾸러미를 표시합니다" ++msgstr "" ++"epoch : name-version-release.architecture 형식을 사용하여 검색된 꾸러미를 표" ++"시합니다" + + #: dnf/cli/commands/repoquery.py:214 + msgid "Display in which comps groups are presented selected packages" +@@ -1855,7 +1901,9 @@ msgstr "꾸러미와 충돌하는 기능을 표시합니다." + msgid "" + "Display capabilities that the package can depend on, enhance, recommend, " + "suggest, and supplement." +-msgstr "꾸러미가 종속 기능 강화, 개선, 권장, 제안 및 보완할 수 있는 기능을 표시합니다." ++msgstr "" ++"꾸러미가 종속 기능 강화, 개선, 권장, 제안 및 보완할 수 있는 기능을 표시합니" ++"다." + + #: dnf/cli/commands/repoquery.py:236 + msgid "Display capabilities that the package can enhance." +@@ -1880,8 +1928,9 @@ msgid "" + "running %%pre and %%post scriptlets. If the package is installed display " + "capabilities that is depends for %%pre, %%post, %%preun and %%postun." + msgstr "" +-"꾸러미가 설치되어 있지 않은 경우 %%pre 과 %%post 스크립트를 실행할 수 있는 기능이 표시됩니다. 꾸러미가 설치 되어 있는 경우" +-" %%pre, %%post , %%preun, %%postun에 종속된 기능이 표시됩니다." ++"꾸러미가 설치되어 있지 않은 경우 %%pre 과 %%post 스크립트를 실행할 수 있는 기" ++"능이 표시됩니다. 꾸러미가 설치 되어 있는 경우 %%pre, %%post , %%preun, " ++"%%postun에 종속된 기능이 표시됩니다." + + #: dnf/cli/commands/repoquery.py:243 + msgid "Display capabilities that the package suggests." +@@ -1930,22 +1979,23 @@ msgstr "검색에 사용되는 키워드" + + #: dnf/cli/commands/repoquery.py:295 + msgid "" +-"Option '--resolve' has to be used together with one of the '--conflicts', '" +-"--depends', '--enhances', '--provides', '--recommends', '--requires', '--" ++"Option '--resolve' has to be used together with one of the '--conflicts', '--" ++"depends', '--enhances', '--provides', '--recommends', '--requires', '--" + "requires-pre', '--suggests' or '--supplements' options" + msgstr "" +-"옵션 '--resolve'는 '--conflicts', '--depends', '--enhances', '--provides', '--" +-"recommends', '--requires'중 하나와 함께 사용해야합니다. , '--requires-pre', '--" +-"suggests'또는 '--supplements'옵션들" ++"옵션 '--resolve'는 '--conflicts', '--depends', '--enhances', '--provides', " ++"'--recommends', '--requires'중 하나와 함께 사용해야합니다. , '--requires-" ++"pre', '--suggests'또는 '--supplements'옵션들" + + #: dnf/cli/commands/repoquery.py:305 + msgid "" + "Option '--recursive' has to be used with '--whatrequires ' (optionally " +-"with '--alldeps', but not with '--exactdeps'), or with '--requires " +-"--resolve'" ++"with '--alldeps', but not with '--exactdeps'), or with '--requires --" ++"resolve'" + msgstr "" +-"옵션 '--reative'를 '--whatrequires ' (선택 옵션으로 '--exactdeps' 대신 '--" +-"alldeps'와 함께 사용), 또는 '--requires --resolve'와 함께 사용해야 합니다" ++"옵션 '--reative'를 '--whatrequires ' (선택 옵션으로 '--exactdeps' 대신 " ++"'--alldeps'와 함께 사용), 또는 '--requires --resolve'와 함께 사용해야 " ++"합니다" + + #: dnf/cli/commands/repoquery.py:312 + msgid "argument {} requires --whatrequires or --whatdepends option" +@@ -1959,13 +2009,17 @@ msgstr "꾸러미 {}에 파일이 없습니다" + #, python-brace-format + msgid "" + "No valid switch specified\n" +-"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" ++"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" ++"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" ++"tree]\n" + "\n" + "description:\n" + " For the given packages print a tree of thepackages." + msgstr "" + "유효한 매개 변수를 지정하지 않았습니다.\n" +-"사용법: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" ++"사용법: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" ++"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" ++"tree]\n" + "\n" + "설명:\n" + " 지정된 꾸러미의 경우 꾸러미 트리를 출력하십시오." +@@ -2005,8 +2059,7 @@ msgstr "설명" + msgid "URL" + msgstr "URL" + +-#. TRANSLATORS: separator used between package attributes (eg. Name & Summary +-#. & URL) ++#. TRANSLATORS: separator used between package attributes (eg. Name & Summary & URL) + #: dnf/cli/commands/search.py:76 + msgid " & " + msgstr " & " +@@ -2016,14 +2069,14 @@ msgstr " & " + #: dnf/cli/commands/search.py:80 + #, python-format + msgid "%s Exactly Matched: %%s" +-msgstr "%s 정확히 일치하는 항목: %%s" ++msgstr "%s과 정확히 일치하는 항목: %%s" + + #. TRANSLATORS: %s - translated package attributes, + #. %%s - found keys (in listed attributes) + #: dnf/cli/commands/search.py:84 + #, python-format + msgid "%s Matched: %%s" +-msgstr "%s 일치하는 항목: %%s" ++msgstr "%s과 일치하는 항목: %%s" + + #: dnf/cli/commands/search.py:134 + msgid "No matches found." +@@ -2371,7 +2424,9 @@ msgstr "최신화 할 꾸러미" + msgid "" + "upgrade, but only 'newest' package match which fixes a problem that affects " + "your system" +-msgstr "최신화 하지만 ‘최신' 꾸러미에만 시스템에 영향을 줄 수 있는 수정된 문제가 있습니다" ++msgstr "" ++"최신화 하지만 ‘최신' 꾸러미에만 시스템에 영향을 줄 수 있는 수정된 문제가 있습" ++"니다" + + #: dnf/cli/main.py:88 + msgid "Terminated." +@@ -2383,7 +2438,7 @@ msgstr "현재 디렉토리에서 읽기 / 실행 액세스가 없습니다. / + + #: dnf/cli/main.py:135 + msgid "try to add '{}' to command line to replace conflicting packages" +-msgstr "충돌하는 꾸러미를 바꾸려면 명령 줄에 '{}'을 (를) 추가하십시오" ++msgstr "충돌하는 꾸러미를 교체하려면 명령줄에 '{}'을 추가하세요" + + #: dnf/cli/main.py:139 + msgid "try to add '{}' to skip uninstallable packages" +@@ -2475,7 +2530,7 @@ msgstr "설정 파일 및 리포지토리 파일에서 $releasever 값을 무시 + + #: dnf/cli/option_parser.py:207 + msgid "set arbitrary config and repo options" +-msgstr "임의의 설정 옵션 및 리포지토리 옵션 설정" ++msgstr "임의의 설정 옵션 과 저장소 옵션 설정" + + #: dnf/cli/option_parser.py:210 + msgid "resolve depsolve problems by skipping packages" +@@ -2495,7 +2550,7 @@ msgstr "연결에서 사용 가능한 최상의 꾸러미 버전을 사용해보 + + #: dnf/cli/option_parser.py:223 + msgid "do not limit the transaction to the best candidate" +-msgstr "연결를 최상의 선택 옵션으로 제한하지 마십시오" ++msgstr "연결을 최상의 선택 옵션으로 제한하지 마십시오" + + #: dnf/cli/option_parser.py:226 + msgid "run entirely from system cache, don't update cache" +@@ -2527,8 +2582,8 @@ msgid "" + "enables {prog}'s obsoletes processing logic for upgrade or display " + "capabilities that the package obsoletes for info, list and repoquery" + msgstr "" +-"꾸러미가 info, list, repoquery에 더 이상 사용하지 않는 최신화 또는 표시 기능을 위해 {prog}의 더 이상 사용되지 " +-"않는 처리 로직을 활성화합니다" ++"꾸러미가 info, list, repoquery에 더 이상 사용하지 않는 최신화 또는 표시 기능" ++"을 위해 {prog}의 더 이상 사용되지 않는 처리 로직을 활성화합니다" + + #: dnf/cli/option_parser.py:251 + msgid "debugging output level for rpm" +@@ -2546,19 +2601,25 @@ msgstr "모든 질문에 대해 \"아니오\"(no)로 자동 응답합니다" + msgid "" + "Enable additional repositories. List option. Supports globs, can be " + "specified multiple times." +-msgstr "추가 리포지토리를 활성화하십시오. 옵션이 나열됩니다. glob를 지원하며 여러 번 지정할 수 있습니다." ++msgstr "" ++"추가 저장소를 활성화하십시오. 옵션이 나열됩니다. glob를 지원하며 여러 번 지" ++"정 할 수 있습니다." + + #: dnf/cli/option_parser.py:266 + msgid "" +-"Disable repositories. List option. Supports globs, can be specified multiple" +-" times." +-msgstr "리포지토리를 비활성화합니다. 옵션이 나열됩니다. glob를 지원하며 여러 번 지정할 수 있습니다." ++"Disable repositories. List option. Supports globs, can be specified multiple " ++"times." ++msgstr "" ++"저장소를 비활성화 합니다. 옵션이 나열됩니다. glob를 지원하며 여러 번 지정 할 " ++"수 있습니다." + + #: dnf/cli/option_parser.py:270 + msgid "" + "enable just specific repositories by an id or a glob, can be specified " + "multiple times" +-msgstr "id 나 glob로 특정 리포지토리를 활성화할 수 있습니다. 여러 번 지정할 수 있습니다" ++msgstr "" ++"id 나 glob로 특정 리포지토리를 활성화할 수 있습니다. 여러 번 지정할 수 있습니" ++"다" + + #: dnf/cli/option_parser.py:275 + msgid "enable repos with config-manager command (automatically saves)" +@@ -2580,7 +2641,9 @@ msgstr "excludepkgs 비활성화" + msgid "" + "label and path to an additional repository to use (same path as in a " + "baseurl), can be specified multiple times." +-msgstr "사용할 추가 리포지터리에 대한 레이블 및 경로 (baseurl과 동일한 경로)를 여러 번 지정할 수 있습니다." ++msgstr "" ++"사용 할 추가 레포지터리에 대한 이름표와 경로 (baseurl과 동일한 경로)를 여러 " ++"번 지정와 할 수 있습니다." + + #: dnf/cli/option_parser.py:297 + msgid "disable removal of dependencies that are no longer used" +@@ -2739,19 +2802,19 @@ msgstr "소스" + #: dnf/cli/output.py:479 dnf/cli/output.py:1253 + msgctxt "short" + msgid "Repo" +-msgstr "리포지터리" ++msgstr "레포지터리" + + #. Translators: This is the full word 'Repository', used when + #. we have enough space. + #: dnf/cli/output.py:480 dnf/cli/output.py:1256 + msgctxt "long" + msgid "Repository" +-msgstr "리포지터리" ++msgstr "레포지터리" + + #. Translators: This message should be no longer than 12 chars. + #: dnf/cli/output.py:487 + msgid "From repo" +-msgstr "리포지터리에서" ++msgstr "레포지터리에서" + + #. :hawkey does not support changelog information + #. print(_("Committer : %s") % ucd(pkg.committer)) +@@ -2969,7 +3032,7 @@ msgstr "그룹 꾸러미 설치" + #: dnf/cli/output.py:1051 + msgctxt "summary" + msgid "Installing" +-msgstr "설치중" ++msgstr "설치 중" + + #. TRANSLATORS: This is for a list of packages to be upgraded. + #: dnf/cli/output.py:1053 +@@ -2991,9 +3054,9 @@ msgstr "종속 꾸러미 설치 중" + msgid "Installing weak dependencies" + msgstr "취약한 종속 꾸러미 설치 중" + +-#. TRANSLATORS: This is for a list of packages to be removed. + # translation auto-copied from project subscription-manager, version 1.11.X, + # document keys ++#. TRANSLATORS: This is for a list of packages to be removed. + #: dnf/cli/output.py:1060 + msgid "Removing" + msgstr "삭제 중" +@@ -3038,7 +3101,7 @@ msgstr "모듈 재설정" + + #: dnf/cli/output.py:1142 + msgid "Installing Environment Groups" +-msgstr "환경 그룹 설치중" ++msgstr "환경 그룹 설치 중" + + #: dnf/cli/output.py:1149 + msgid "Upgrading Environment Groups" +@@ -3066,8 +3129,8 @@ msgid "" + "Skipping packages with conflicts:\n" + "(add '%s' to command line to force their upgrade)" + msgstr "" +-"충돌 꾸러미 건너 뛰기 :\n" +-"(최신화를 강제하려면 명령행에 '%s' 추가)" ++"충돌 꾸러미 건너 뛰기:\n" ++"(향상을 강제하려면 명령행에 '%s' 추가)" + + #: dnf/cli/output.py:1203 + #, python-format +@@ -3195,7 +3258,7 @@ msgstr "연결 ID 또는 꾸러미가 지정되지 않았습니다" + + #: dnf/cli/output.py:1653 + msgid "Erased" +-msgstr "제거됨" ++msgstr "제거되었습니다" + + #: dnf/cli/output.py:1654 dnf/cli/output.py:1821 dnf/util.py:614 + msgid "Downgraded" +@@ -3393,7 +3456,7 @@ msgstr "" + + #: dnf/cli/utils.py:98 + msgid "Running" +-msgstr "실행중" ++msgstr "실행 중" + + #: dnf/cli/utils.py:99 + msgid "Sleeping" +@@ -3440,10 +3503,6 @@ msgstr " 시작됨: %s - %s 전" + msgid " State : %s" + msgstr " 상태 : %s" + +-#: dnf/comps.py:104 +-msgid "skipping." +-msgstr "건너 뛰기." +- + #: dnf/comps.py:196 dnf/comps.py:692 dnf/comps.py:706 + #, python-format + msgid "Module or Group '%s' is not installed." +@@ -3492,13 +3551,17 @@ msgstr "'%s' 구문 분석 중 오류 발생: %s" + #: dnf/conf/config.py:151 + #, python-format + msgid "Invalid configuration value: %s=%s in %s; %s" +-msgstr "알 수없는 설정 값: %s; %s에서 %s=%s" ++msgstr "잘못된 구성 값: %s=%s (%s; %s에서)" ++ ++#: dnf/conf/config.py:194 ++msgid "Cannot set \"{}\" to \"{}\": {}" ++msgstr "\"{}\"을 \"{}\" 으로 설정 할 수 없습니다: {}" + +-#: dnf/conf/config.py:226 ++#: dnf/conf/config.py:244 + msgid "Could not set cachedir: {}" + msgstr "cachedir를 설정할 수 없습니다: {}" + +-#: dnf/conf/config.py:275 ++#: dnf/conf/config.py:293 + msgid "" + "Configuration file URL \"{}\" could not be downloaded:\n" + " {}" +@@ -3506,31 +3569,31 @@ msgstr "" + "구성 파일 URL \"{}\"를 내려받기 할 수 없습니다:\n" + " {}" + +-#: dnf/conf/config.py:355 dnf/conf/config.py:391 ++#: dnf/conf/config.py:373 dnf/conf/config.py:409 + #, python-format + msgid "Unknown configuration option: %s = %s" + msgstr "알 수 없는 설정 옵션 : %s = %s" + +-#: dnf/conf/config.py:372 ++#: dnf/conf/config.py:390 + #, python-format + msgid "Error parsing --setopt with key '%s', value '%s': %s" + msgstr "키 ‘%s', 값 '%s'를 사용하여 --setopt 구문 분석 중 오류 발생: %s" + +-#: dnf/conf/config.py:380 ++#: dnf/conf/config.py:398 + #, python-format + msgid "Main config did not have a %s attr. before setopt" + msgstr "기본 설정에는 setopt 이전에 %s attr이 없습니다" + +-#: dnf/conf/config.py:427 dnf/conf/config.py:445 ++#: dnf/conf/config.py:445 dnf/conf/config.py:463 + msgid "Incorrect or unknown \"{}\": {}" + msgstr "잘못되었거나 알 수 없음 \"{}\": {}" + +-#: dnf/conf/config.py:501 ++#: dnf/conf/config.py:519 + #, python-format + msgid "Error parsing --setopt with key '%s.%s', value '%s': %s" + msgstr "키 %s.%s', 값 '%s'를 사용하여 --setopt 구문 분석 중 오류 발생: %s" + +-#: dnf/conf/config.py:504 ++#: dnf/conf/config.py:522 + #, python-format + msgid "Repo %s did not have a %s attr. before setopt" + msgstr "Repo %s에 setopt 이전에 %s attr이 없습니다" +@@ -3542,11 +3605,11 @@ msgstr "경고: '%s'을 적재하지 못했습니다, 건너 뛰기." + + #: dnf/conf/read.py:72 + msgid "Bad id for repo: {} ({}), byte = {} {}" +-msgstr "리포지터리의 ID가 잘못되었습니다. {} ({}), byte = {} {}" ++msgstr "레포지터리의 ID가 잘못되었습니다. {} ({}), byte = {} {}" + + #: dnf/conf/read.py:76 + msgid "Bad id for repo: {}, byte = {} {}" +-msgstr "리포지터리의 ID가 잘못되었습니다. {}, byte = {} {}" ++msgstr "레포지터리의 ID가 잘못되었습니다. {}, byte = {} {}" + + #: dnf/conf/read.py:84 + msgid "Repository '{}' ({}): Error parsing config: {}" +@@ -3558,7 +3621,8 @@ msgstr "Repository '{}' : 구문 분석 설정 오류: {}" + + #: dnf/conf/read.py:93 + msgid "Repository '{}' ({}) is missing name in configuration, using id." +-msgstr "Repository '{}' ({})의 설정에 이름이 누락되어 있습니다. id를 사용하십시오." ++msgstr "" ++"Repository '{}' ({})의 설정에 이름이 누락되어 있습니다. id를 사용하십시오." + + #: dnf/conf/read.py:96 + msgid "Repository '{}' is missing name in configuration, using id." +@@ -3580,11 +3644,11 @@ msgstr "repo %s: 0x%s 키를 가져왔습니다." + + #: dnf/crypto.py:145 + msgid "Verified using DNS record with DNSSEC signature." +-msgstr "DNSSEC 서명과 함께 DNS 기록을 사용하여 확인되었습니다." ++msgstr "DNSSEC 서명이 있는 DNS 레코드를 사용하여 확인됨." + + #: dnf/crypto.py:147 + msgid "NOT verified using DNS record." +-msgstr "DNS 기록 사용은 검증되지 않았습니다." ++msgstr "DNS 레코드를 사용하여 확인되지 않음." + + #: dnf/crypto.py:184 + #, python-format +@@ -3595,7 +3659,9 @@ msgstr "%s에서 암호화 하지 않은 %s를 위한 저장소 키 검색" + msgid "" + "No available modular metadata for modular package '{}', it cannot be " + "installed on the system" +-msgstr "모듈 꾸러미 '{}'에 사용 가능한 메타 자료가 없으며 시스템에 설치 할 수 없습니다" ++msgstr "" ++"모듈 꾸러미 '{}'에 사용 가능한 메타 자료가 없으며 시스템에 설치 할 수 없습니" ++"다" + + #: dnf/db/group.py:353 + #, python-format +@@ -3611,32 +3677,33 @@ msgstr "모듈 꾸러미에 사용 가능한 모듈 메타 자료가 없습니 + msgid "Will not install a source rpm package (%s)." + msgstr "소스 RPM 꾸러미를 설치하지 않습니다 (%s)." + +-#: dnf/dnssec.py:168 ++#: dnf/dnssec.py:171 + msgid "" + "Configuration option 'gpgkey_dns_verification' requires python3-unbound ({})" +-msgstr "설정 선택 'gpgkey_dns_verification'는 python3-unbound ({}) 가 필요합니다" ++msgstr "" ++"구성 선택 'gpgkey_dns_verification'에는 python3-unbound ({})가 필요합니다" + +-#: dnf/dnssec.py:239 ++#: dnf/dnssec.py:243 + msgid "DNSSEC extension: Key for user " + msgstr "DNSSEC 확장 : 사용자 키 " + +-#: dnf/dnssec.py:241 ++#: dnf/dnssec.py:245 + msgid "is valid." + msgstr "유효합니다." + +-#: dnf/dnssec.py:243 ++#: dnf/dnssec.py:247 + msgid "has unknown status." + msgstr "알 수 없는 상태입니다." + +-#: dnf/dnssec.py:251 ++#: dnf/dnssec.py:255 + msgid "DNSSEC extension: " + msgstr "DNSSEC 확장: " + +-#: dnf/dnssec.py:283 ++#: dnf/dnssec.py:287 + msgid "Testing already imported keys for their validity." + msgstr "유효성 검사를 위해 이미 가져온 키를 테스트 중입니다." + +-#: dnf/drpm.py:62 dnf/repo.py:268 ++#: dnf/drpm.py:62 dnf/repo.py:267 + #, python-format + msgid "unsupported checksum type: %s" + msgstr "지원되지 않는 검사 유형: %s" +@@ -3680,7 +3747,7 @@ msgid "Modular dependency problem with Defaults:" + msgid_plural "Modular dependency problems with Defaults:" + msgstr[0] "기본값의 모듈 종속성 문제 :" + +-#: dnf/exceptions.py:131 dnf/module/module_base.py:854 ++#: dnf/exceptions.py:131 dnf/module/module_base.py:857 + msgid "Modular dependency problem:" + msgid_plural "Modular dependency problems:" + msgstr[0] "모듈 종속성 문제 :" +@@ -3689,10 +3756,12 @@ msgstr[0] "모듈 종속성 문제 :" + #, python-format + msgid "" + "Malformed lock file found: %s.\n" +-"Ensure no other dnf/yum process is running and remove the lock file manually or run systemd-tmpfiles --remove dnf.conf." ++"Ensure no other dnf/yum process is running and remove the lock file manually " ++"or run systemd-tmpfiles --remove dnf.conf." + msgstr "" + "잘못된 잠금 파일이 발견되었습니다. %s \n" +-"다른 dnf / yum 프로세스가 실행되고 있는지 확인하고 잠금 파일을 수동으로 제거하거나 systemd-tmpfiles --remove dnf.conf를 실행하십시오." ++"다른 dnf / yum 프로세스가 실행되고 있는지 확인하고 잠금 파일을 수동으로 제거" ++"하거나 systemd-tmpfiles --remove dnf.conf를 실행하십시오." + + #: dnf/module/__init__.py:26 + msgid "Enabling different stream for '{}'." +@@ -3720,19 +3789,19 @@ msgstr "그런 모듈이 없습니다: {}" + + #: dnf/module/exceptions.py:33 + msgid "No such stream: {}" +-msgstr "그런 스트림: {} 없습니다" ++msgstr "그런 스트림이 없습니다: {}" + + #: dnf/module/exceptions.py:39 + msgid "No enabled stream for module: {}" +-msgstr "모듈에 대한 스트림이 없습니다 : {}" ++msgstr "모듈에 대한 활성화된 스트림이 없습니다: {}" + + #: dnf/module/exceptions.py:46 + msgid "Cannot enable more streams from module '{}' at the same time" +-msgstr "동시에 모듈'{}'에서 더이상 스트림을 활성화 할 수 없습니다" ++msgstr "동시에 모듈 '{}'에서 더 많은 스트림을 활성화 할 수 없습니다" + + #: dnf/module/exceptions.py:52 + msgid "Different stream enabled for module: {}" +-msgstr "모듈: {} 을 위한 다른 스트림이 활성화되었습니다" ++msgstr "모듈에 대해 활성화된 다른 스트림: {}" + + #: dnf/module/exceptions.py:58 + msgid "No such profile: {}" +@@ -3740,19 +3809,19 @@ msgstr "그런 프로파일이 없습니다: {}" + + #: dnf/module/exceptions.py:64 + msgid "Specified profile not installed for {}" +-msgstr "{}을 위한 지정한 프로파일이 설치되어 있지 않습니다" ++msgstr "{}를 위한 지정된 프로필이 설치되지 않았습니다" + + #: dnf/module/exceptions.py:70 + msgid "No stream specified for '{}', please specify stream" +-msgstr "'{}'에 지정된 프로필이 없습니다. 프로필을 지정하십시오" ++msgstr "'{}'을 위한 지정된 스트림이 없으며, 스트림을 지정해주세요" + + #: dnf/module/exceptions.py:82 + msgid "No such profile: {}. No profiles available" +-msgstr "그런 프로파일이 없습니다: {}. 가용한 프로파일이 없습니다" ++msgstr "그런 프로파일이 없습니다: {}. 사용 가능한 프로파일이 없습니다" + + #: dnf/module/exceptions.py:88 + msgid "No profile to remove for '{}'" +-msgstr "'{}' 위해 제거 할 프로파일이 없습니다" ++msgstr "제거되는 프로파일이 없습니다('{}'를 위해 )" + + #: dnf/module/module_base.py:35 + msgid "" +@@ -3775,14 +3844,15 @@ msgstr "" + "힌트 : [d] efault, [e] nabled, [x] disabled, [i] stalled, [a] ctive" + + #: dnf/module/module_base.py:56 dnf/module/module_base.py:556 +-#: dnf/module/module_base.py:615 dnf/module/module_base.py:681 ++#: dnf/module/module_base.py:615 dnf/module/module_base.py:684 + msgid "Ignoring unnecessary profile: '{}/{}'" + msgstr "불필요한 프로파일을 무시합니다: '{}/{}'" + + #: dnf/module/module_base.py:86 + #, python-brace-format + msgid "All matches for argument '{0}' in module '{1}:{2}' are not active" +-msgstr "모듈 '{1}:{2}'의 인수 '{0}'에 대한 모든 일치 항목이 활성화되지 않았습니다" ++msgstr "" ++"모듈 '{1}:{2}'의 인수 '{0}'에 대한 모든 일치 항목이 활성화되지 않았습니다" + + #: dnf/module/module_base.py:94 dnf/module/module_base.py:204 + #, python-brace-format +@@ -3792,7 +3862,8 @@ msgstr "실패 방지 저장소 {1}에서 모듈 '{0}’를 설치 할 수 없 + #: dnf/module/module_base.py:104 dnf/module/module_base.py:214 + msgid "" + "Unable to match profile for argument {}. Available profiles for '{}:{}': {}" +-msgstr "인수 {}의 프로파일을 찾을 수 없습니다. '{}:{}': {} 에 사용 가능한 프로파일" ++msgstr "" ++"인수 {}의 프로파일을 찾을 수 없습니다. '{}:{}': {} 에 사용 가능한 프로파일" + + #: dnf/module/module_base.py:108 dnf/module/module_base.py:218 + msgid "Unable to match profile for argument {}" +@@ -3812,7 +3883,7 @@ msgstr "{} 모듈에서 기본 프로필 {}을 (를) 사용할 수 없음 : {}" + + #: dnf/module/module_base.py:144 dnf/module/module_base.py:247 + msgid "Installing module from Fail-Safe repository is not allowed" +-msgstr "Fail-Safe 리포지토리에서 모듈을 설치할 수 없습니다" ++msgstr "실패-방지 저장소에서 설치된 모듈은 허용하지 않습니다" + + #: dnf/module/module_base.py:196 + #, python-brace-format +@@ -3831,7 +3902,7 @@ msgstr "꾸러미 이름 '{}'를 위하여 배포판에서 사용 할 수 있는 + #: dnf/module/module_base.py:310 dnf/module/module_base.py:461 + #: dnf/module/module_base.py:486 dnf/module/module_base.py:505 + #: dnf/module/module_base.py:552 dnf/module/module_base.py:611 +-#: dnf/module/module_base.py:677 dnf/module/module_base.py:840 ++#: dnf/module/module_base.py:680 dnf/module/module_base.py:843 + msgid "Unable to resolve argument {}" + msgstr "인수 {}을 (를) 구문 분석할 수 없습니다" + +@@ -3851,19 +3922,18 @@ msgstr "실패-방지 저장소에서 모듈을 향상 할 수 없습니다" + #: dnf/module/module_base.py:422 + #, python-brace-format + msgid "" +-"Argument '{argument}' matches {stream_count} streams ('{streams}') of module" +-" '{module}', but none of the streams are enabled or default" ++"Argument '{argument}' matches {stream_count} streams ('{streams}') of module " ++"'{module}', but none of the streams are enabled or default" + msgstr "" +-"인수 '{argument}' 일치 {stream_count} 스트림 ('{streams}') of 모듈 '{module}', 그러나 " +-"활성화 된 스트림 또는 기본 스트림이 없습니다" ++"인수 '{argument}'는 {stream_count} 스트림 ('{streams}')과 일치합니다 (모듈의 " ++"'{module}'), 하지만 활성화 되었거나 지정된 스트림이 없습니다" + + #: dnf/module/module_base.py:509 + msgid "" +-"Only module name is required. Ignoring unneeded information in argument: " +-"'{}'" ++"Only module name is required. Ignoring unneeded information in argument: '{}'" + msgstr "모듈 이름만 필요합니다. '{}'인수에서 불필요한 정보를 무시합니다" + +-#: dnf/module/module_base.py:841 ++#: dnf/module/module_base.py:844 + msgid "No match for package {}" + msgstr "{} 꾸러미와 일치하지 않습니다" + +@@ -3924,7 +3994,7 @@ msgid "Already downloaded" + msgstr "이미 내려받음" + + #. pinging mirrors, this might take a while +-#: dnf/repo.py:347 ++#: dnf/repo.py:346 + #, python-format + msgid "determining the fastest mirror (%s hosts).. " + msgstr "가장 빠른 미러 지정 (%s 호스트).. " +@@ -3942,13 +4012,21 @@ msgstr "%s 에서 %s repo를 추가했습니다" + #: dnf/rpm/miscutils.py:32 + #, python-format + msgid "Using rpmkeys executable at %s to verify signatures" +-msgstr "%s에서 실행 가능한 rpmkey를 사용하여 서명 확인" ++msgstr "%s에 실행 할 수 있는 rpmkey를 사용하여 서명을 확인합니다" + + #: dnf/rpm/miscutils.py:66 + msgid "Cannot find rpmkeys executable to verify signatures." +-msgstr "서명 확인에서 실행 가능한 rpmkey를 찾을 수 없습니다." ++msgstr "서명을 확인하기 위해 실행 할 수 있는 rpmkeys를 찾을 수 없습니다." + +-#: dnf/rpm/transaction.py:119 ++#: dnf/rpm/transaction.py:70 ++msgid "The openDB() function connot open rpm database." ++msgstr "openDB() 함수는 rpm 데이타베이스를 열 수 없습니다." ++ ++#: dnf/rpm/transaction.py:75 ++msgid "The dbCookie() function did not return cookie of rpm database." ++msgstr "dbCookie() 함수는 rpm 데이타베이스의 쿠키를 반환 하지 않습니다." ++ ++#: dnf/rpm/transaction.py:135 + msgid "Errors occurred during test transaction." + msgstr "연결 시험 중에 오류가 발생했습니다." + +@@ -3956,13 +4034,15 @@ msgstr "연결 시험 중에 오류가 발생했습니다." + msgid "" + "allow_vendor_change is disabled. This option is currently not supported for " + "downgrade and distro-sync commands" +-msgstr "허용_공급업체_변화는 사용 할 수 없습니다. 이 선택은 현재 다운드레이드와 distro-sync 명령을 지원하지 않습니다" ++msgstr "" ++"허용_공급업체_변화는 사용 할 수 없습니다. 이 선택은 현재 다운드레이드와 " ++"distro-sync 명령을 지원하지 않습니다" + + #. TRANSLATORS: This is for a single package currently being downgraded. + #: dnf/transaction.py:80 + msgctxt "currently" + msgid "Downgrading" +-msgstr "하향설치중" ++msgstr "하향 설치 중" + + #: dnf/transaction.py:81 dnf/transaction.py:88 dnf/transaction.py:93 + #: dnf/transaction.py:95 +@@ -3973,7 +4053,7 @@ msgstr "정리" + #: dnf/transaction.py:83 + msgctxt "currently" + msgid "Installing" +-msgstr "설치중" ++msgstr "설치 중" + + #. TRANSLATORS: This is for a single package currently being reinstalled. + #: dnf/transaction.py:87 +@@ -4030,7 +4110,8 @@ msgstr "잘못된 하위 버전 \"{minor}\", 번호가 예상됩니다." + msgid "" + "Incompatible major version \"{major}\", supported major version is " + "\"{major_supp}\"." +-msgstr "호환되지 않는 주요 버전 \"{major}\", 지원되는 주요 버전 \"{major_supp}\"." ++msgstr "" ++"호환되지 않는 주요 버전 \"{major}\", 지원되는 주요 버전 \"{major_supp}\"." + + #: dnf/transaction_sr.py:224 + msgid "" +@@ -4054,8 +4135,10 @@ msgstr "rpm안에 누락된 객체 키 \"{key}\"." + + #: dnf/transaction_sr.py:289 + #, python-brace-format +-msgid "Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." +-msgstr "rpm nevra \"{nevra}\"를 위한 예상되지 않은 꾸러미 이유\"{reason}\" 의 값." ++msgid "" ++"Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." ++msgstr "" ++"rpm nevra \"{nevra}\"를 위한 예상되지 않은 꾸러미 이유\"{reason}\" 의 값." + + #: dnf/transaction_sr.py:297 + #, python-brace-format +@@ -4077,7 +4160,9 @@ msgstr "꾸러미 \"{na}\"는 활동 \"{action}\"를 위해 이미 설치되어 + msgid "" + "Package nevra \"{nevra}\" not available in repositories for action " + "\"{action}\"." +-msgstr "꾸러미 nervra \"{nevra}\"는 실행 \"{action}\"을 위한 저장소에서 사용 할 수 없음." ++msgstr "" ++"꾸러미 nervra \"{nevra}\"는 실행 \"{action}\"을 위한 저장소에서 사용 할 수 없" ++"음." + + #: dnf/transaction_sr.py:356 + #, python-brace-format +@@ -4086,8 +4171,10 @@ msgstr "꾸러미 nevra\"{nevra}\"는 활동 \"{action}\"을 위해 설치되지 + + #: dnf/transaction_sr.py:370 + #, python-brace-format +-msgid "Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." +-msgstr "rpm nevra \"{nevra}\"를 위해 기대하지 않는 꾸러미 활동 \"{action}\"의 값." ++msgid "" ++"Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." ++msgstr "" ++"rpm nevra \"{nevra}\"를 위해 기대하지 않는 꾸러미 활동 \"{action}\"의 값." + + #: dnf/transaction_sr.py:377 + #, python-format +@@ -4114,7 +4201,9 @@ msgstr "환경 id '%s'는 사용 할 수 없습니다." + msgid "" + "Invalid value \"{group_type}\" of environments.groups.group_type, only " + "\"mandatory\" or \"optional\" is supported." +-msgstr "잘못된 environments.groups.group_type의 값 \"{group_type}\", \"필 수\" 또는 \"선택\"만 지원합니다." ++msgstr "" ++"잘못된 environments.groups.group_type의 값 \"{group_type}\", \"필 수\" 또는 " ++"\"선택\"만 지원합니다." + + #: dnf/transaction_sr.py:464 + #, python-brace-format +@@ -4133,7 +4222,9 @@ msgstr "그룹 안에 누락된 객체 키 \"{key}\"." + + #: dnf/transaction_sr.py:571 + #, python-brace-format +-msgid "Unexpected value of environment action \"{action}\" for environment \"{env}\"." ++msgid "" ++"Unexpected value of environment action \"{action}\" for environment " ++"\"{env}\"." + msgstr "환경 \"{env}\"를 위해 예상하지 못한 환경 활동 \"{action}\"의 값." + + #: dnf/transaction_sr.py:576 +@@ -4144,9 +4235,10 @@ msgstr "환경에 누락된 객체 키 \"{key}\"." + #: dnf/transaction_sr.py:615 + #, python-brace-format + msgid "" +-"Package nevra \"{nevra}\", which is not present in the transaction file, was" +-" pulled into the transaction." +-msgstr "꾸러미 nevra \"{nevra}\", 연겨 파일에 존재하지 않는 것은 연결로 가져왔습니다." ++"Package nevra \"{nevra}\", which is not present in the transaction file, was " ++"pulled into the transaction." ++msgstr "" ++"꾸러미 nevra \"{nevra}\", 연겨 파일에 존재하지 않는 것은 연결로 가져왔습니다." + + #: dnf/util.py:417 dnf/util.py:419 + msgid "Problem" +@@ -4174,7 +4266,7 @@ msgstr "건너 뛰기됨" + + #: dnf/util.py:621 + msgid "Removed" +-msgstr "제거됨" ++msgstr "제거되었습니다" + + #: dnf/util.py:624 + msgid "Failed" +@@ -4185,10 +4277,14 @@ msgstr "실패하였습니다" + msgid "" + msgstr "" + ++#~ msgid "skipping." ++#~ msgstr "건너 뛰기." ++ + #~ msgid "" + #~ "Using rpmkeys executable from {path} to verify signature for package: " + #~ "{package}." +-#~ msgstr "{path}에서 실행 가능한 rpmkey를 사용하여 꾸러미: {package}을 위해 서명을 확인합니다." ++#~ msgstr "" ++#~ "{path}에서 실행 할 수 있는 rpmkeys를 사용하여 꾸러미 서명 확인: {package}." + + #~ msgid "%s: %s check failed: %s vs %s" + #~ msgstr "%s: %s 확인 실패 : %s 대 %s" +diff --git a/po/zh_CN.po b/po/zh_CN.po +index dcde2037..65c5273b 100644 +--- a/po/zh_CN.po ++++ b/po/zh_CN.po +@@ -21,25 +21,29 @@ + # zhouxiaobo , 2017. #zanata + # Ludek Janda , 2018. #zanata + # Pany , 2018. #zanata +-# Qiyu Yan , 2018. #zanata, 2021. +-# Qiyu Yan , 2019. #zanata, 2021. ++# Qiyu Yan , 2018. #zanata ++# Qiyu Yan , 2019. #zanata + # Anonymous , 2020. + # Hongqiao Chen , 2020. + # Harry Chen , 2020. ++# Sundeep Anand , 2021. ++# weidong , 2021. ++# Transtats , 2022. + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2021-06-13 09:18-0400\n" +-"PO-Revision-Date: 2021-04-23 08:02+0000\n" +-"Last-Translator: Charles Lee \n" +-"Language-Team: Chinese (Simplified) \n" ++"POT-Creation-Date: 2022-02-28 11:37+0100\n" ++"PO-Revision-Date: 2022-03-09 12:39+0000\n" ++"Last-Translator: Transtats \n" ++"Language-Team: Chinese (Simplified) \n" + "Language: zh_CN\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=1; plural=0;\n" +-"X-Generator: Weblate 4.6\n" ++"X-Generator: Weblate 4.11.2\n" + + #: dnf/automatic/emitter.py:32 + #, python-format +@@ -213,158 +217,154 @@ msgstr "配置文件 %s 中使用 tsflag 是错误的" + msgid "Failed to add groups file for repository: %s - %s" + msgstr "为仓库 %s 添加组文件时失败:%s" + +-#: dnf/base.py:904 ++#: dnf/base.py:922 + msgid "Running transaction check" + msgstr "运行事务检查" + +-#: dnf/base.py:912 ++#: dnf/base.py:930 + msgid "Error: transaction check vs depsolve:" + msgstr "错误:事务检查与依赖解决错误:" + +-#: dnf/base.py:918 ++#: dnf/base.py:936 + msgid "Transaction check succeeded." + msgstr "事务检查成功。" + +-#: dnf/base.py:921 ++#: dnf/base.py:939 + msgid "Running transaction test" + msgstr "运行事务测试" + +-#: dnf/base.py:931 dnf/base.py:1082 ++#: dnf/base.py:949 dnf/base.py:1100 + msgid "RPM: {}" + msgstr "RPM软件包: {}" + +-#: dnf/base.py:932 ++#: dnf/base.py:950 + msgid "Transaction test error:" + msgstr "事物测试失败:" + +-#: dnf/base.py:943 ++#: dnf/base.py:961 + msgid "Transaction test succeeded." + msgstr "事务测试成功。" + +-#: dnf/base.py:964 ++#: dnf/base.py:982 + msgid "Running transaction" + msgstr "运行事务" + +-#: dnf/base.py:1001 ++#: dnf/base.py:1019 + msgid "Disk Requirements:" + msgstr "磁盘需求:" + +-#: dnf/base.py:1004 ++#: dnf/base.py:1022 + #, python-brace-format + msgid "At least {0}MB more space needed on the {1} filesystem." + msgid_plural "At least {0}MB more space needed on the {1} filesystem." +-msgstr[0] "在文件系统{1}上至少需要{0}MB的可用空间。" ++msgstr[0] "在 {1} 文件系统上至少需要 {0}MB 的空间。" + +-#: dnf/base.py:1011 ++#: dnf/base.py:1029 + msgid "Error Summary" + msgstr "错误汇总" + +-#: dnf/base.py:1037 ++#: dnf/base.py:1055 + #, python-brace-format + msgid "RPMDB altered outside of {prog}." + msgstr "RPMDB 在 {prog} 外被改动了。" + +-#: dnf/base.py:1083 dnf/base.py:1091 ++#: dnf/base.py:1101 dnf/base.py:1109 + msgid "Could not run transaction." + msgstr "不能执行事务。" + +-#: dnf/base.py:1086 ++#: dnf/base.py:1104 + msgid "Transaction couldn't start:" + msgstr "事务无法启动:" + +-#: dnf/base.py:1100 ++#: dnf/base.py:1118 + #, python-format + msgid "Failed to remove transaction file %s" + msgstr "移除事务文件 %s 失败" + +-#: dnf/base.py:1182 ++#: dnf/base.py:1200 + msgid "Some packages were not downloaded. Retrying." + msgstr "某些软件包没有被下载。正在重试。" + +-#: dnf/base.py:1212 +-#, fuzzy, python-format +-#| msgid "" +-#| "Delta RPMs reduced %.1f MB of updates to %.1f MB (%d.1%% saved)" ++#: dnf/base.py:1230 ++#, python-format + msgid "Delta RPMs reduced %.1f MB of updates to %.1f MB (%.1f%% saved)" +-msgstr "增量 RPM 将 %.1f MB 的更新减少至 %.1f MB(已节省 %d.1%% )" ++msgstr "增量 RPM 将更新的 %.1f MB 减少到 %.1f MB(节省了 %.1f%%)" + +-#: dnf/base.py:1216 +-#, fuzzy, python-format +-#| msgid "" +-#| "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%d.1%% wasted)" ++#: dnf/base.py:1234 ++#, python-format + msgid "" + "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%.1f%% wasted)" +-msgstr "增量 RPM 未能将 %.1f MB 的更新减少至 %.1f MB(已浪费 %d.1%% )" ++msgstr "失败的增量 RPM 将更新的 %.1f MB 增加到 %.1f MB(浪费了 %.1f%%)" + +-#: dnf/base.py:1258 ++#: dnf/base.py:1276 + msgid "Cannot add local packages, because transaction job already exists" + msgstr "由于事物已经存在,无法添加本地软件包" + +-#: dnf/base.py:1272 ++#: dnf/base.py:1290 + msgid "Could not open: {}" + msgstr "无法打开: {}" + +-#: dnf/base.py:1310 ++#: dnf/base.py:1328 + #, python-format + msgid "Public key for %s is not installed" + msgstr "%s 的公钥没有安装" + +-#: dnf/base.py:1314 ++#: dnf/base.py:1332 + #, python-format + msgid "Problem opening package %s" + msgstr "打开软件包 %s 出现问题" + +-#: dnf/base.py:1322 ++#: dnf/base.py:1340 + #, python-format + msgid "Public key for %s is not trusted" + msgstr "%s 的公钥不可信任" + +-#: dnf/base.py:1326 ++#: dnf/base.py:1344 + #, python-format + msgid "Package %s is not signed" + msgstr "软件包 %s 没有签名" + +-#: dnf/base.py:1356 ++#: dnf/base.py:1374 + #, python-format + msgid "Cannot remove %s" + msgstr "无法删除 %s" + +-#: dnf/base.py:1360 ++#: dnf/base.py:1378 + #, python-format + msgid "%s removed" + msgstr "%s 已删除" + +-#: dnf/base.py:1640 ++#: dnf/base.py:1658 + msgid "No match for group package \"{}\"" + msgstr "没有和组 \"{}\" 匹配的" + +-#: dnf/base.py:1726 ++#: dnf/base.py:1740 + #, python-format + msgid "Adding packages from group '%s': %s" + msgstr "从组 '%s': %s 添加软件包" + +-#: dnf/base.py:1749 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 ++#: dnf/base.py:1763 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 + #: dnf/cli/commands/__init__.py:494 dnf/cli/commands/__init__.py:587 + #: dnf/cli/commands/__init__.py:636 dnf/cli/commands/install.py:80 + #: dnf/cli/commands/install.py:103 dnf/cli/commands/install.py:110 + msgid "Nothing to do." + msgstr "无需任何处理。" + +-#: dnf/base.py:1767 ++#: dnf/base.py:1781 + msgid "No groups marked for removal." + msgstr "没有软件包组需要移除。" + +-#: dnf/base.py:1801 ++#: dnf/base.py:1815 + msgid "No group marked for upgrade." + msgstr "没有标记为要升级的组。" + +-#: dnf/base.py:2015 ++#: dnf/base.py:2029 + #, python-format + msgid "Package %s not installed, cannot downgrade it." + msgstr "软件包 %s 并没有能够安装,无法进行降级操作。" + +-#: dnf/base.py:2017 dnf/base.py:2036 dnf/base.py:2049 dnf/base.py:2076 +-#: dnf/base.py:2129 dnf/base.py:2137 dnf/base.py:2271 dnf/cli/cli.py:417 ++#: dnf/base.py:2031 dnf/base.py:2050 dnf/base.py:2063 dnf/base.py:2090 ++#: dnf/base.py:2143 dnf/base.py:2151 dnf/base.py:2285 dnf/cli/cli.py:417 + #: dnf/cli/commands/__init__.py:420 dnf/cli/commands/__init__.py:477 + #: dnf/cli/commands/__init__.py:581 dnf/cli/commands/__init__.py:628 + #: dnf/cli/commands/__init__.py:706 dnf/cli/commands/install.py:147 +@@ -374,178 +374,179 @@ msgstr "软件包 %s 并没有能够安装,无法进行降级操作。" + msgid "No match for argument: %s" + msgstr "未找到匹配的参数: %s" + +-#: dnf/base.py:2024 ++#: dnf/base.py:2038 + #, python-format + msgid "Package %s of lower version already installed, cannot downgrade it." + msgstr "软件包 %s 的低版本已经安装,无法进行降级。" + +-#: dnf/base.py:2047 ++#: dnf/base.py:2061 + #, python-format + msgid "Package %s not installed, cannot reinstall it." + msgstr "软件包 %s 未能够安装成功,无法进行重新安装。" + +-#: dnf/base.py:2062 ++#: dnf/base.py:2076 + #, python-format + msgid "File %s is a source package and cannot be updated, ignoring." + msgstr "%s 文件无法被升级,已忽略。" + +-#: dnf/base.py:2073 ++#: dnf/base.py:2087 + #, python-format + msgid "Package %s not installed, cannot update it." + msgstr "软件包 %s 未安装,无法更新。" + +-#: dnf/base.py:2083 ++#: dnf/base.py:2097 + #, python-format + msgid "" + "The same or higher version of %s is already installed, cannot update it." + msgstr "已经安装了软件包%s的相同或更高版本,无法更新。" + +-#: dnf/base.py:2126 dnf/cli/commands/reinstall.py:81 ++#: dnf/base.py:2140 dnf/cli/commands/reinstall.py:81 + #, python-format + msgid "Package %s available, but not installed." + msgstr "软件包 %s 可用,但没有被安装。" + +-#: dnf/base.py:2132 ++#: dnf/base.py:2146 + #, python-format + msgid "Package %s available, but installed for different architecture." + msgstr "软件包 %s 可用,当是为其它架构安装。" + +-#: dnf/base.py:2157 ++#: dnf/base.py:2171 + #, python-format + msgid "No package %s installed." + msgstr "没有软件包 %s 安装。" + +-#: dnf/base.py:2175 dnf/cli/commands/install.py:136 ++#: dnf/base.py:2189 dnf/cli/commands/install.py:136 + #: dnf/cli/commands/remove.py:133 + #, python-format + msgid "Not a valid form: %s" + msgstr "无效: %s" + +-#: dnf/base.py:2190 dnf/cli/commands/__init__.py:676 ++#: dnf/base.py:2204 dnf/cli/commands/__init__.py:676 + #: dnf/cli/commands/remove.py:162 + msgid "No packages marked for removal." + msgstr "没有软件包需要移除。" + +-#: dnf/base.py:2278 dnf/cli/cli.py:428 ++#: dnf/base.py:2292 dnf/cli/cli.py:428 + #, python-format + msgid "Packages for argument %s available, but not installed." + msgstr "针对于参数 %s 的软件包可用, 但是目前没有安装。" + +-#: dnf/base.py:2283 ++#: dnf/base.py:2297 + #, python-format + msgid "Package %s of lowest version already installed, cannot downgrade it." + msgstr "软件包 %s 的最低版本已经安装,无法再进行降级。" + +-#: dnf/base.py:2383 ++#: dnf/base.py:2397 + msgid "No security updates needed, but {} update available" + msgstr "没有必须的安全更新, 但是 {} 的更新可用" + +-#: dnf/base.py:2385 ++#: dnf/base.py:2399 + msgid "No security updates needed, but {} updates available" + msgstr "没有必须的安全更新, 但是 {} 的更新可用" + +-#: dnf/base.py:2389 ++#: dnf/base.py:2403 + msgid "No security updates needed for \"{}\", but {} update available" + msgstr "没有针对于\"{}\" 所必须的安全更新, 但是 {} 的更新可用" + +-#: dnf/base.py:2391 ++#: dnf/base.py:2405 + msgid "No security updates needed for \"{}\", but {} updates available" + msgstr "没有针对于\"{}\" 所必须的安全更新, 但是 {} 的更新可用" + + #. raise an exception, because po.repoid is not in self.repos +-#: dnf/base.py:2412 ++#: dnf/base.py:2426 + #, python-format + msgid "Unable to retrieve a key for a commandline package: %s" + msgstr "无法获取来自命令行的软件包的密钥:%s" + +-#: dnf/base.py:2420 ++#: dnf/base.py:2434 + #, python-format + msgid ". Failing package is: %s" + msgstr ". 失败的软件包是:%s" + +-#: dnf/base.py:2421 ++#: dnf/base.py:2435 + #, python-format + msgid "GPG Keys are configured as: %s" + msgstr "GPG密钥配置为:%s" + +-#: dnf/base.py:2433 ++#: dnf/base.py:2447 + #, python-format + msgid "GPG key at %s (0x%s) is already installed" + msgstr "%s 的 GPG 公钥(0x%s)已安装" + +-#: dnf/base.py:2469 ++#: dnf/base.py:2483 + msgid "The key has been approved." + msgstr "密钥已被确认。" + +-#: dnf/base.py:2472 ++#: dnf/base.py:2486 + msgid "The key has been rejected." + msgstr "密钥已被拒绝。" + +-#: dnf/base.py:2505 ++#: dnf/base.py:2519 + #, python-format + msgid "Key import failed (code %d)" + msgstr "导入公钥失败(代码 %d)" + +-#: dnf/base.py:2507 ++#: dnf/base.py:2521 + msgid "Key imported successfully" + msgstr "导入公钥成功" + +-#: dnf/base.py:2511 ++#: dnf/base.py:2525 + msgid "Didn't install any keys" + msgstr "没有安装任何公钥" + +-#: dnf/base.py:2514 ++#: dnf/base.py:2528 + #, python-format + msgid "" +-"The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n" ++"The GPG keys listed for the \"%s\" repository are already installed but they " ++"are not correct for this package.\n" + "Check that the correct key URLs are configured for this repository." + msgstr "" + "仓库 \"%s\" 的 GPG 公钥已安装,但是不适用于此软件包。\n" + "请检查此仓库的公钥 URL 是否配置正确。" + +-#: dnf/base.py:2525 ++#: dnf/base.py:2539 + msgid "Import of key(s) didn't help, wrong key(s)?" + msgstr "导入的密钥没有公钥,错误的公钥?" + +-#: dnf/base.py:2578 ++#: dnf/base.py:2592 + msgid " * Maybe you meant: {}" + msgstr " * 可能您的意思是:{}" + +-#: dnf/base.py:2610 ++#: dnf/base.py:2624 + msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" + msgstr "软件包 \"{}\"(来自于本地仓库 \"{}\")的 checksum 不正确" + +-#: dnf/base.py:2613 ++#: dnf/base.py:2627 + msgid "Some packages from local repository have incorrect checksum" + msgstr "本地仓库的一些软件包校验值(checksum)不正确,无法确定软件包完整" + +-#: dnf/base.py:2616 ++#: dnf/base.py:2630 + msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" + msgstr "软件包 \"{}\"(来自仓库 \"{}\")的 checksum 不正确" + +-#: dnf/base.py:2619 ++#: dnf/base.py:2633 + msgid "" + "Some packages have invalid cache, but cannot be downloaded due to \"--" + "cacheonly\" option" + msgstr "以下软件包有无效缓存,因为使用了 \"--cacheonly\" 选项不能下载" + +-#: dnf/base.py:2637 dnf/base.py:2657 ++#: dnf/base.py:2651 dnf/base.py:2671 + msgid "No match for argument" + msgstr "未找到匹配的参数" + +-#: dnf/base.py:2645 dnf/base.py:2665 ++#: dnf/base.py:2659 dnf/base.py:2679 + msgid "All matches were filtered out by exclude filtering for argument" + msgstr "由于您的搜索参数,所有相关结果都已被滤掉" + +-#: dnf/base.py:2647 ++#: dnf/base.py:2661 + msgid "All matches were filtered out by modular filtering for argument" + msgstr "所有的匹配结果均已经被参数的模块化过滤条件筛除" + +-#: dnf/base.py:2663 ++#: dnf/base.py:2677 + msgid "All matches were installed from a different repository for argument" + msgstr "已从另一个仓库安装了参数的所有匹配" + +-#: dnf/base.py:2710 ++#: dnf/base.py:2724 + #, python-format + msgid "Package %s is already installed." + msgstr "软件包 %s 已安装。" +@@ -555,7 +556,7 @@ msgstr "软件包 %s 已安装。" + msgid "Unexpected value of environment variable: DNF_DISABLE_ALIASES=%s" + msgstr "该环境变量具有错误的值:DNF_DISABLE_ALIASES=%s" + +-#: dnf/cli/aliases.py:105 dnf/conf/config.py:457 ++#: dnf/cli/aliases.py:105 dnf/conf/config.py:475 + #, python-format + msgid "Parsing file \"%s\" failed: %s" + msgstr "解析文件 \"%s\" 失败:%s" +@@ -600,11 +601,15 @@ msgstr "这个操作会把模块 '{0}' 从流 '{1}' 切换到流 '{2}'" + #: dnf/cli/cli.py:173 + #, python-brace-format + msgid "" +-"It is not possible to switch enabled streams of a module unless explicitly enabled via configuration option module_stream_switch.\n" +-"It is recommended to rather remove all installed content from the module, and reset the module using '{prog} module reset ' command. After you reset the module, you can install the other stream." ++"It is not possible to switch enabled streams of a module unless explicitly " ++"enabled via configuration option module_stream_switch.\n" ++"It is recommended to rather remove all installed content from the module, " ++"and reset the module using '{prog} module reset ' command. " ++"After you reset the module, you can install the other stream." + msgstr "" + "无法切换已启用模块的流,除非显式的通过配置选项 module_stream_switch 启用。\n" +-"推荐直接移除来自模块的所有已安装内容,然后通过 '{prog} module reset ' 命令重置模块。在您重置模块之后,就可以安装其他的流。" ++"推荐直接移除来自模块的所有已安装内容,然后通过 '{prog} module reset " ++"' 命令重置模块。在您重置模块之后,就可以安装其他的流。" + + #: dnf/cli/cli.py:212 + #, python-brace-format +@@ -707,8 +712,8 @@ msgstr "没有仓库匹配: %s" + + #: dnf/cli/cli.py:719 + msgid "" +-"This command has to be run with superuser privileges (under the root user on" +-" most systems)." ++"This command has to be run with superuser privileges (under the root user on " ++"most systems)." + msgstr "运行此命令需要管理员特权(多数系统下是root用户)。" + + #: dnf/cli/cli.py:749 +@@ -735,21 +740,24 @@ msgid "" + "--destdir or --downloaddir must be used with --downloadonly or download or " + "system-upgrade command." + msgstr "" +-"--destdir 或 --downloaddir 必须和 --downloadonly 或 download 或 system-upgrade " +-"命令一起使用。" ++"--destdir 或 --downloaddir 必须和 --downloadonly 或 download 或 system-" ++"upgrade 命令一起使用。" + + #: dnf/cli/cli.py:820 + msgid "" + "--enable, --set-enabled and --disable, --set-disabled must be used with " + "config-manager command." + msgstr "" +-"--enable、--set-enabled 和 --disable、--set-disabled 必须和 config-manager 命令一起使用。" ++"--enable、--set-enabled 和 --disable、--set-disabled 必须和 config-manager 命" ++"令一起使用。" + + #: dnf/cli/cli.py:902 + msgid "" + "Warning: Enforcing GPG signature check globally as per active RPM security " + "policy (see 'gpgcheck' in dnf.conf(5) for how to squelch this message)" +-msgstr "警告:由于活动的RPM安全策略,强制执行全局GPG签名检查 (请参照dnf.conf(5)中的'gpgcheck'以了解如何阻止这条信息)" ++msgstr "" ++"警告:由于活动的RPM安全策略,强制执行全局GPG签名检查 (请参照dnf.conf(5)中" ++"的'gpgcheck'以了解如何阻止这条信息)" + + #: dnf/cli/cli.py:922 + msgid "Config file \"{}\" does not exist" +@@ -800,7 +808,8 @@ msgstr "RPM 数据库可能出错,请尝试运行'%s'进行恢复。" + #, python-brace-format + msgid "" + "You have enabled checking of packages via GPG keys. This is a good thing.\n" +-"However, you do not have any GPG public keys installed. You need to download\n" ++"However, you do not have any GPG public keys installed. You need to " ++"download\n" + "the keys for packages you wish to install and install them.\n" + "You can do that by running the command:\n" + " rpm --import public.gpg.key\n" +@@ -1140,7 +1149,8 @@ msgstr "正在等待 pid 为%d的进程退出。" + msgid "" + "[deprecated, use repoquery --deplist] List package's dependencies and what " + "packages provide them" +-msgstr "[已弃用,请使用 repoquery --deplist] 列出软件包的依赖关系和提供这些软件包的源" ++msgstr "" ++"[已弃用,请使用 repoquery --deplist] 列出软件包的依赖关系和提供这些软件包的源" + + #: dnf/cli/commands/distrosync.py:32 + msgid "synchronize installed packages to the latest available versions" +@@ -1242,12 +1252,12 @@ msgstr "显示或使用事务历史" + + #: dnf/cli/commands/history.py:66 + msgid "For the store command, file path to store the transaction to" +-msgstr "对于 store 命令,将事务保存到的文件路径" ++msgstr "对于 store 命令,要将事务保存到的文件路径" + + #: dnf/cli/commands/history.py:68 + msgid "" +-"For the replay command, don't check for installed packages matching those in" +-" transaction" ++"For the replay command, don't check for installed packages matching those in " ++"transaction" + msgstr "对于 replay 命令,不要检查已安装的包是否与事务中符合" + + #: dnf/cli/commands/history.py:71 +@@ -1258,8 +1268,8 @@ msgstr "对于 replay 命令,不要检查被拉入事务的额外的包" + + #: dnf/cli/commands/history.py:74 + msgid "" +-"For the replay command, skip packages that are not available or have missing" +-" dependencies" ++"For the replay command, skip packages that are not available or have missing " ++"dependencies" + msgstr "对于 replay 命令,跳过不可用或者缺少依赖项的软件包" + + #: dnf/cli/commands/history.py:94 +@@ -1290,8 +1300,8 @@ msgstr "你没有权限访问历史数据库:%s" + #: dnf/cli/commands/history.py:151 + #, python-format + msgid "" +-"Cannot undo transaction %s, doing so would result in an inconsistent package" +-" database." ++"Cannot undo transaction %s, doing so would result in an inconsistent package " ++"database." + msgstr "无法撤销事务 %s,这样做将可能导致不一致的软件包数据库。" + + #: dnf/cli/commands/history.py:156 +@@ -1439,8 +1449,8 @@ msgstr "软件包 %s 尚未安装。" + + #: dnf/cli/commands/module.py:54 + msgid "" +-"Only module name, stream, architecture or profile is used. Ignoring unneeded" +-" information in argument: '{}'" ++"Only module name, stream, architecture or profile is used. Ignoring unneeded " ++"information in argument: '{}'" + msgstr "仅使用模块名称、流、架构或者配置文件。忽略参数中不需要的信息:'{}'" + + #: dnf/cli/commands/module.py:80 +@@ -1609,15 +1619,15 @@ msgstr "禁用" + + #: dnf/cli/commands/repolist.py:162 + msgid "Repo-id : " +-msgstr "Repo-id : " ++msgstr "仓库ID : " + + #: dnf/cli/commands/repolist.py:163 + msgid "Repo-name : " +-msgstr "Repo-name : " ++msgstr "仓库名称 : " + + #: dnf/cli/commands/repolist.py:166 + msgid "Repo-status : " +-msgstr "Repo-status : " ++msgstr "仓库状态 : " + + #: dnf/cli/commands/repolist.py:169 + msgid "Repo-revision : " +@@ -1679,11 +1689,11 @@ msgstr "Repo-include : " + #. TRANSLATORS: Number of packages that where excluded (5) + #: dnf/cli/commands/repolist.py:232 + msgid "Repo-excluded : " +-msgstr "Repo-excluded : " ++msgstr "排除的仓库 : " + + #: dnf/cli/commands/repolist.py:236 + msgid "Repo-filename : " +-msgstr "Repo-filename : " ++msgstr "仓库文件名 : " + + #. Work out the first (id) and last (enabled/disabled/count), + #. then chop the middle (name)... +@@ -1734,7 +1744,9 @@ msgstr "只显示与 REQ 冲突的结果" + msgid "" + "shows results that requires, suggests, supplements, enhances,or recommends " + "package provides and files REQ" +-msgstr "选择 requires、suggest、supplement、enhance 或 recommend 软件包提供和文件 REQ 的结果" ++msgstr "" ++"选择 requires、suggest、supplement、enhance 或 recommend 软件包提供和文件 " ++"REQ 的结果" + + #: dnf/cli/commands/repoquery.py:139 + msgid "show only results that obsolete REQ" +@@ -1823,9 +1835,11 @@ msgstr "显示软件包的 changelogs" + #: dnf/cli/commands/repoquery.py:194 + #, python-format, python-brace-format + msgid "" +-"display format for listing packages: \"%%{name} %%{version} ...\", use " +-"--querytags to view full tag list" +-msgstr "软件包列表的显示格式 : \"%%{name} %%{version} ...\", 使用 --querytags 参数来查看完整的标签列表" ++"display format for listing packages: \"%%{name} %%{version} ...\", use --" ++"querytags to view full tag list" ++msgstr "" ++"软件包列表的显示格式 : \"%%{name} %%{version} ...\", 使用 --querytags 参数来" ++"查看完整的标签列表" + + #: dnf/cli/commands/repoquery.py:198 + msgid "show available tags to use with --queryformat" +@@ -1835,13 +1849,16 @@ msgstr "显示可被 --queryformat 使用的标签" + msgid "" + "use name-epoch:version-release.architecture format for displaying found " + "packages (default)" +-msgstr "使用 name-epoch:version-release.architecture 的格式来输出找到的软件包(默认格式)" ++msgstr "" ++"使用 name-epoch:version-release.architecture 的格式来输出找到的软件包(默认格" ++"式)" + + #: dnf/cli/commands/repoquery.py:205 + msgid "" + "use name-version-release format for displaying found packages (rpm query " + "default)" +-msgstr "使用 name-version-release 的格式来输出找到的软件包(rpm 查询的默认格式)" ++msgstr "" ++"使用 name-version-release 的格式来输出找到的软件包(rpm 查询的默认格式)" + + #: dnf/cli/commands/repoquery.py:211 + msgid "" +@@ -1877,7 +1894,9 @@ msgstr "显示与该软件包冲突的功能。" + msgid "" + "Display capabilities that the package can depend on, enhance, recommend, " + "suggest, and supplement." +-msgstr "显示软件包可用在其中 depend on、enhance、recommend、suggest 和 supplement 的功能。" ++msgstr "" ++"显示软件包可用在其中 depend on、enhance、recommend、suggest 和 supplement 的" ++"功能。" + + #: dnf/cli/commands/repoquery.py:236 + msgid "Display capabilities that the package can enhance." +@@ -1902,8 +1921,8 @@ msgid "" + "running %%pre and %%post scriptlets. If the package is installed display " + "capabilities that is depends for %%pre, %%post, %%preun and %%postun." + msgstr "" +-"如果未安装软件包,则显示执行 %%pre 和 %%post 脚本所依赖的功能。如果已经了安装软件包,则显示执行 %%pre、%%post、%%preun" +-" 和 %%postun 脚本所依赖的功能。" ++"如果未安装软件包,则显示执行 %%pre 和 %%post 脚本所依赖的功能。如果已经了安装" ++"软件包,则显示执行 %%pre、%%post、%%preun 和 %%postun 脚本所依赖的功能。" + + #: dnf/cli/commands/repoquery.py:243 + msgid "Display capabilities that the package suggests." +@@ -1952,22 +1971,23 @@ msgstr "搜索所用的关键词" + + #: dnf/cli/commands/repoquery.py:295 + msgid "" +-"Option '--resolve' has to be used together with one of the '--conflicts', '" +-"--depends', '--enhances', '--provides', '--recommends', '--requires', '--" ++"Option '--resolve' has to be used together with one of the '--conflicts', '--" ++"depends', '--enhances', '--provides', '--recommends', '--requires', '--" + "requires-pre', '--suggests' or '--supplements' options" + msgstr "" +-"选项 '--resolve' 需要和 '--conflicts'、'--depends'、'--enhances'、'--provides'、'--" +-"recommends'、'--requires'、'--requires-pre'、'--suggests' 或 '--supplements' " +-"选项之一一起使用" ++"选项 '--resolve' 需要和 '--conflicts'、'--depends'、'--enhances'、'--" ++"provides'、'--recommends'、'--requires'、'--requires-pre'、'--suggests' 或 " ++"'--supplements' 选项之一一起使用" + + #: dnf/cli/commands/repoquery.py:305 + msgid "" + "Option '--recursive' has to be used with '--whatrequires ' (optionally " +-"with '--alldeps', but not with '--exactdeps'), or with '--requires " +-"--resolve'" ++"with '--alldeps', but not with '--exactdeps'), or with '--requires --" ++"resolve'" + msgstr "" +-"选项 '--recursive' 需要和 '--whatrequires ' 一起使用(以及可选的 '--alldeps',但不能是 '--" +-"exactdeps'),或和 '--requires --resolve' 一起使用" ++"选项 '--recursive' 需要和 '--whatrequires ' 一起使用(以及可选的 '--" ++"alldeps',但不能是 '--exactdeps'),或和 '--requires --resolve' 一起使" ++"用" + + #: dnf/cli/commands/repoquery.py:312 + msgid "argument {} requires --whatrequires or --whatdepends option" +@@ -1981,13 +2001,17 @@ msgstr "软件包 {} 不包含文件" + #, python-brace-format + msgid "" + "No valid switch specified\n" +-"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" ++"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" ++"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" ++"tree]\n" + "\n" + "description:\n" + " For the given packages print a tree of thepackages." + msgstr "" + "没有指定有效参数\n" +-"用法:{prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" ++"用法:{prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" ++"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" ++"tree]\n" + "\n" + "描述:\n" + " 对于指定的软件包,打印此软件包的树状图。" +@@ -2027,8 +2051,7 @@ msgstr "描述" + msgid "URL" + msgstr "URL" + +-#. TRANSLATORS: separator used between package attributes (eg. Name & Summary +-#. & URL) ++#. TRANSLATORS: separator used between package attributes (eg. Name & Summary & URL) + #: dnf/cli/commands/search.py:76 + msgid " & " + msgstr " 和 " +@@ -2546,7 +2569,9 @@ msgstr "错误输出级别" + msgid "" + "enables {prog}'s obsoletes processing logic for upgrade or display " + "capabilities that the package obsoletes for info, list and repoquery" +-msgstr "对 upgrade 启用 {prog} 的过期处理逻辑,或对 info、list 和 repoquery 启用软件包过期的显示功能" ++msgstr "" ++"对 upgrade 启用 {prog} 的过期处理逻辑,或对 info、list 和 repoquery 启用软件" ++"包过期的显示功能" + + #: dnf/cli/option_parser.py:251 + msgid "debugging output level for rpm" +@@ -2568,8 +2593,8 @@ msgstr "启用附加仓库。列出选项。支持通配符,可以指定多次 + + #: dnf/cli/option_parser.py:266 + msgid "" +-"Disable repositories. List option. Supports globs, can be specified multiple" +-" times." ++"Disable repositories. List option. Supports globs, can be specified multiple " ++"times." + msgstr "停用仓库。列出选项。支持通配符,可指定多次。" + + #: dnf/cli/option_parser.py:270 +@@ -2598,7 +2623,8 @@ msgstr "禁用 excludepkgs" + msgid "" + "label and path to an additional repository to use (same path as in a " + "baseurl), can be specified multiple times." +-msgstr "附加仓库所要使用的标签和路径(与 baseurl 中的路径一致),可以指定多次。" ++msgstr "" ++"附加仓库所要使用的标签和路径(与 baseurl 中的路径一致),可以指定多次。" + + #: dnf/cli/option_parser.py:297 + msgid "disable removal of dependencies that are no longer used" +@@ -3161,7 +3187,7 @@ msgstr "总计" + + #: dnf/cli/output.py:1466 + msgid "" +-msgstr "<空>" ++msgstr "" + + #: dnf/cli/output.py:1467 + msgid "System" +@@ -3451,10 +3477,6 @@ msgstr " 已启动: %s - %s之前" + msgid " State : %s" + msgstr " 状态 : %s" + +-#: dnf/comps.py:104 +-msgid "skipping." +-msgstr "正在跳过。" +- + #: dnf/comps.py:196 dnf/comps.py:692 dnf/comps.py:706 + #, python-format + msgid "Module or Group '%s' is not installed." +@@ -3505,11 +3527,15 @@ msgstr "解析 “%s” 时错误: %s" + msgid "Invalid configuration value: %s=%s in %s; %s" + msgstr "无效配置值: %s=%s 在 %s 中; %s" + +-#: dnf/conf/config.py:226 ++#: dnf/conf/config.py:194 ++msgid "Cannot set \"{}\" to \"{}\": {}" ++msgstr "无法将 \"{}\" 设置为 \"{}\": {}" ++ ++#: dnf/conf/config.py:244 + msgid "Could not set cachedir: {}" + msgstr "不能设置 cachedir: {}" + +-#: dnf/conf/config.py:275 ++#: dnf/conf/config.py:293 + msgid "" + "Configuration file URL \"{}\" could not be downloaded:\n" + " {}" +@@ -3517,31 +3543,31 @@ msgstr "" + "配置文件的 URL \"{}\" 无法下载:\n" + " {}" + +-#: dnf/conf/config.py:355 dnf/conf/config.py:391 ++#: dnf/conf/config.py:373 dnf/conf/config.py:409 + #, python-format + msgid "Unknown configuration option: %s = %s" + msgstr "未知配置选项: %s = %s" + +-#: dnf/conf/config.py:372 ++#: dnf/conf/config.py:390 + #, python-format + msgid "Error parsing --setopt with key '%s', value '%s': %s" + msgstr "解析 --setopt 时出现错误,键为 '%s',值是 '%s': %s" + +-#: dnf/conf/config.py:380 ++#: dnf/conf/config.py:398 + #, python-format + msgid "Main config did not have a %s attr. before setopt" + msgstr "主配置在 setopt 前没有一个 %s 属性" + +-#: dnf/conf/config.py:427 dnf/conf/config.py:445 ++#: dnf/conf/config.py:445 dnf/conf/config.py:463 + msgid "Incorrect or unknown \"{}\": {}" + msgstr "不正确或未知的 \"{}\": {}" + +-#: dnf/conf/config.py:501 ++#: dnf/conf/config.py:519 + #, python-format + msgid "Error parsing --setopt with key '%s.%s', value '%s': %s" + msgstr "解析 --setopt 时出现错误,键为 '%s.%s', 值是 '%s': %s" + +-#: dnf/conf/config.py:504 ++#: dnf/conf/config.py:522 + #, python-format + msgid "Repo %s did not have a %s attr. before setopt" + msgstr "Repo %s 在 setopt 前没有一个 %s 属性" +@@ -3611,7 +3637,7 @@ msgstr "对于模块软件包 '{}' 没有可用的模块元数据,它将不能 + #: dnf/db/group.py:353 + #, python-format + msgid "An rpm exception occurred: %s" +-msgstr "rpm 出现了一个异常:%s" ++msgstr "发生了 rpm 异常:%s" + + #: dnf/db/group.py:355 + msgid "No available modular metadata for modular package" +@@ -3622,32 +3648,32 @@ msgstr "对于模块软件包没有可用的模块元数据" + msgid "Will not install a source rpm package (%s)." + msgstr "将不安装一个源码 RPM 软件包 (%s)。" + +-#: dnf/dnssec.py:168 ++#: dnf/dnssec.py:171 + msgid "" + "Configuration option 'gpgkey_dns_verification' requires python3-unbound ({})" + msgstr "配置文件选项 'gpgkey_dns_verification' 要求 python3-unbound ({})" + +-#: dnf/dnssec.py:239 ++#: dnf/dnssec.py:243 + msgid "DNSSEC extension: Key for user " + msgstr "DNSSEC 扩展 : 用户的密钥 " + +-#: dnf/dnssec.py:241 ++#: dnf/dnssec.py:245 + msgid "is valid." + msgstr "有效。" + +-#: dnf/dnssec.py:243 ++#: dnf/dnssec.py:247 + msgid "has unknown status." + msgstr "具有未知的状态。" + +-#: dnf/dnssec.py:251 ++#: dnf/dnssec.py:255 + msgid "DNSSEC extension: " + msgstr "DNSSEC 扩展 : " + +-#: dnf/dnssec.py:283 ++#: dnf/dnssec.py:287 + msgid "Testing already imported keys for their validity." + msgstr "测试已导入的密钥以检查有效性。" + +-#: dnf/drpm.py:62 dnf/repo.py:268 ++#: dnf/drpm.py:62 dnf/repo.py:267 + #, python-format + msgid "unsupported checksum type: %s" + msgstr "不支持的校验类型: %s" +@@ -3689,7 +3715,7 @@ msgid "Modular dependency problem with Defaults:" + msgid_plural "Modular dependency problems with Defaults:" + msgstr[0] "默认设置中的模块依赖问题 :" + +-#: dnf/exceptions.py:131 dnf/module/module_base.py:854 ++#: dnf/exceptions.py:131 dnf/module/module_base.py:857 + msgid "Modular dependency problem:" + msgid_plural "Modular dependency problems:" + msgstr[0] "模块依赖问题:" +@@ -3698,10 +3724,12 @@ msgstr[0] "模块依赖问题:" + #, python-format + msgid "" + "Malformed lock file found: %s.\n" +-"Ensure no other dnf/yum process is running and remove the lock file manually or run systemd-tmpfiles --remove dnf.conf." ++"Ensure no other dnf/yum process is running and remove the lock file manually " ++"or run systemd-tmpfiles --remove dnf.conf." + msgstr "" + "发现损坏的锁文件 : %s。\n" +-"请确保没有其他 dnf/yum 进程正在运行,并手工删除锁文件,或执行 systemd-tmpfiles --remove dnf.conf 。" ++"请确保没有其他 dnf/yum 进程正在运行,并手工删除锁文件,或执行 systemd-" ++"tmpfiles --remove dnf.conf 。" + + #: dnf/module/__init__.py:26 + msgid "Enabling different stream for '{}'." +@@ -3784,19 +3812,19 @@ msgstr "" + "提示 : [d]默认, [e]启用, [x]禁用, [i]已安装的, [a]活跃的" + + #: dnf/module/module_base.py:56 dnf/module/module_base.py:556 +-#: dnf/module/module_base.py:615 dnf/module/module_base.py:681 ++#: dnf/module/module_base.py:615 dnf/module/module_base.py:684 + msgid "Ignoring unnecessary profile: '{}/{}'" + msgstr "正在忽略无用的配置文件'{}/{}'" + + #: dnf/module/module_base.py:86 + #, python-brace-format + msgid "All matches for argument '{0}' in module '{1}:{2}' are not active" +-msgstr "模块 '{1}:{2}' 中参数 '{0}' 的所有匹配项目都未激活" ++msgstr "模块 '{1}:{2}' 中参数 '{0}' 的所有匹配项都未处于活动状态" + + #: dnf/module/module_base.py:94 dnf/module/module_base.py:204 + #, python-brace-format + msgid "Installing module '{0}' from Fail-Safe repository {1} is not allowed" +-msgstr "不允许从失效保险仓库 {1} 安装模块 '{0}'" ++msgstr "不允许从自动防故障仓库 {1} 安装模块 '{0}'" + + #: dnf/module/module_base.py:104 dnf/module/module_base.py:214 + msgid "" +@@ -3821,12 +3849,12 @@ msgstr "默认配置文件 {} 在模块 {}:{} 中不可用" + + #: dnf/module/module_base.py:144 dnf/module/module_base.py:247 + msgid "Installing module from Fail-Safe repository is not allowed" +-msgstr "不允许从失效保险仓库中安装模块" ++msgstr "不允许从自动防故障仓库安装模块" + + #: dnf/module/module_base.py:196 + #, python-brace-format + msgid "No active matches for argument '{0}' in module '{1}:{2}'" +-msgstr "模块 '{1}:{2}' 中的参数 '{0}' 没有已激活的匹配项目" ++msgstr "模块 '{1}:{2}' 中的参数 '{0}' 没有活动匹配项" + + #: dnf/module/module_base.py:228 + #, python-brace-format +@@ -3840,14 +3868,14 @@ msgstr "软件包名称 '{}' 没有可用的软件包用于 distrosync" + #: dnf/module/module_base.py:310 dnf/module/module_base.py:461 + #: dnf/module/module_base.py:486 dnf/module/module_base.py:505 + #: dnf/module/module_base.py:552 dnf/module/module_base.py:611 +-#: dnf/module/module_base.py:677 dnf/module/module_base.py:840 ++#: dnf/module/module_base.py:680 dnf/module/module_base.py:843 + msgid "Unable to resolve argument {}" + msgstr "无法解析参数 {}" + + #: dnf/module/module_base.py:321 + #, python-brace-format + msgid "Upgrading module '{0}' from Fail-Safe repository {1} is not allowed" +-msgstr "不允许从失效保险仓库 {1} 中升级模块 '{0}'" ++msgstr "不允许从自动防故障仓库 {1} 升级模块 '{0}'" + + #: dnf/module/module_base.py:340 dnf/module/module_base.py:368 + msgid "Unable to match profile in argument {}" +@@ -3855,24 +3883,23 @@ msgstr "无法匹配参数 {} 中的配置档案" + + #: dnf/module/module_base.py:348 + msgid "Upgrading module from Fail-Safe repository is not allowed" +-msgstr "不允许从失效保险仓库中升级模块" ++msgstr "不允许从自动防故障仓库升级模块" + + #: dnf/module/module_base.py:422 + #, python-brace-format + msgid "" +-"Argument '{argument}' matches {stream_count} streams ('{streams}') of module" +-" '{module}', but none of the streams are enabled or default" ++"Argument '{argument}' matches {stream_count} streams ('{streams}') of module " ++"'{module}', but none of the streams are enabled or default" + msgstr "" +-"参数 '{argument}' 可以匹配模块 '{module}' 的 {stream_count} " +-"个流('{streams}'),但是这些流都未被启用或非默认" ++"参数 '{argument}' 匹配模块 '{module}' 的 {stream_count} 流 ('{streams}') " ++",但是这些流都未被启用或为默认" + + #: dnf/module/module_base.py:509 + msgid "" +-"Only module name is required. Ignoring unneeded information in argument: " +-"'{}'" ++"Only module name is required. Ignoring unneeded information in argument: '{}'" + msgstr "只需要模块名。正在忽略'{}'中的无用信息" + +-#: dnf/module/module_base.py:841 ++#: dnf/module/module_base.py:844 + msgid "No match for package {}" + msgstr "没有和{}匹配的软件包" + +@@ -3933,7 +3960,7 @@ msgid "Already downloaded" + msgstr "已下载" + + #. pinging mirrors, this might take a while +-#: dnf/repo.py:347 ++#: dnf/repo.py:346 + #, python-format + msgid "determining the fastest mirror (%s hosts).. " + msgstr "正在查找最快的镜像(%s 的主机) " +@@ -3949,16 +3976,23 @@ msgid "Added %s repo from %s" + msgstr "已添加 %s 仓库来自 %s" + + #: dnf/rpm/miscutils.py:32 +-#, fuzzy, python-format +-#| msgid "Cannot find rpmkeys executable to verify signatures." ++#, python-format + msgid "Using rpmkeys executable at %s to verify signatures" +-msgstr "无法找到 rpmkeys 的可执行文件以验证签名。" ++msgstr "使用 %s 处的 rpmkeys 可执行文件来验证签名" + + #: dnf/rpm/miscutils.py:66 + msgid "Cannot find rpmkeys executable to verify signatures." + msgstr "无法找到 rpmkeys 的可执行文件以验证签名。" + +-#: dnf/rpm/transaction.py:119 ++#: dnf/rpm/transaction.py:70 ++msgid "The openDB() function connot open rpm database." ++msgstr "openDB()函数不能打开 rpm 数据库。" ++ ++#: dnf/rpm/transaction.py:75 ++msgid "The dbCookie() function did not return cookie of rpm database." ++msgstr "dbCookie()函数没有返回 rpm 数据库的 cookie。" ++ ++#: dnf/rpm/transaction.py:135 + msgid "Errors occurred during test transaction." + msgstr "测试事务过程中出现错误。" + +@@ -3966,7 +4000,8 @@ msgstr "测试事务过程中出现错误。" + msgid "" + "allow_vendor_change is disabled. This option is currently not supported for " + "downgrade and distro-sync commands" +-msgstr "allow_vendor_change 被禁用。此选项目前不支持 downgrade 和 distro-sync 命令" ++msgstr "" ++"allow_vendor_change 被禁用。此选项目前不支持 downgrade 和 distro-sync 命令" + + #. TRANSLATORS: This is for a single package currently being downgraded. + #: dnf/transaction.py:80 +@@ -4064,8 +4099,9 @@ msgstr "在 rpm 中缺少对象键 \"{key}\"。" + + #: dnf/transaction_sr.py:289 + #, python-brace-format +-msgid "Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." +-msgstr "rpm nevra \"{nevra}\" 的软件包原因 \"{reason}\" 的值无效。" ++msgid "" ++"Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." ++msgstr "rpm nevra \"{nevra}\" 的软件包原因 \"{reason}\" 的意外值。" + + #: dnf/transaction_sr.py:297 + #, python-brace-format +@@ -4080,24 +4116,25 @@ msgstr "无法找到 rpm nevra \"{nevra}\"。" + #: dnf/transaction_sr.py:336 + #, python-brace-format + msgid "Package \"{na}\" is already installed for action \"{action}\"." +-msgstr "已为操作 \"{action}\" 安装了软件包 \"{na}\"。" ++msgstr "操作 \"{action}\" 的软件包 \"{na}\"已安装。" + + #: dnf/transaction_sr.py:345 + #, python-brace-format + msgid "" + "Package nevra \"{nevra}\" not available in repositories for action " + "\"{action}\"." +-msgstr "对于操作 \"{action}\",软件包 nevra \"{nevra}\" 没有包括在仓库中。" ++msgstr "对于操作 \"{action}\",软件包 nevra \"{nevra}\" 未在软件仓库中提供。" + + #: dnf/transaction_sr.py:356 + #, python-brace-format + msgid "Package nevra \"{nevra}\" not installed for action \"{action}\"." +-msgstr "软件包 nevra \"{nevra}\" 没有为操作 \"{action}\" 安装。" ++msgstr "没有为操作 \"{action}\" 安装软件包 nevra \"{nevra}\" 。" + + #: dnf/transaction_sr.py:370 + #, python-brace-format +-msgid "Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." +-msgstr "rpm nevra \"{nevra}\" 的软件包操作 \"{action}\" 无效。" ++msgid "" ++"Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." ++msgstr "rpm nevra \"{nevra}\" 的软件包操作 \"{action}\" 的意外值。" + + #: dnf/transaction_sr.py:377 + #, python-format +@@ -4125,8 +4162,8 @@ msgid "" + "Invalid value \"{group_type}\" of environments.groups.group_type, only " + "\"mandatory\" or \"optional\" is supported." + msgstr "" +-"environments.groups.group_type 的值 \"{group_type}\" 无效,仅支持 \"mandatory\" 或者 " +-"\"optional\"。" ++"environments.groups.group_type 的值 \"{group_type}\" 无效,仅支持 \"mandatory" ++"\" 或者 \"optional\"。" + + #: dnf/transaction_sr.py:464 + #, python-brace-format +@@ -4136,17 +4173,19 @@ msgstr "在 environment.groups 中缺少对象键 \"{key}\"。" + #: dnf/transaction_sr.py:542 + #, python-brace-format + msgid "Unexpected value of group action \"{action}\" for group \"{group}\"." +-msgstr "组 \"{group}\" 的组操作 \"{action}\" 的值无效。" ++msgstr "对组 \"{group}\" 的组操作 \"{action}\" 的意外值。" + + #: dnf/transaction_sr.py:547 + #, python-brace-format + msgid "Missing object key \"{key}\" in a group." +-msgstr "在一个组中缺少对象键 \"{key}\"。" ++msgstr "在组中缺少对象键 \"{key}\"。" + + #: dnf/transaction_sr.py:571 + #, python-brace-format +-msgid "Unexpected value of environment action \"{action}\" for environment \"{env}\"." +-msgstr "环境 \"{env}\" 的环境操作 \"{action}\" 的值无效。" ++msgid "" ++"Unexpected value of environment action \"{action}\" for environment " ++"\"{env}\"." ++msgstr "对环境 \"{env}\" 的环境操作 \"{action}\" 的意外值。" + + #: dnf/transaction_sr.py:576 + #, python-brace-format +@@ -4156,8 +4195,8 @@ msgstr "在环境中缺少对象键 \"{key}\"。" + #: dnf/transaction_sr.py:615 + #, python-brace-format + msgid "" +-"Package nevra \"{nevra}\", which is not present in the transaction file, was" +-" pulled into the transaction." ++"Package nevra \"{nevra}\", which is not present in the transaction file, was " ++"pulled into the transaction." + msgstr "软件包 nevra \"{nevra}\" 没有包括在事务文件中,但它被拉取到事务中。" + + #: dnf/util.py:417 dnf/util.py:419 +@@ -4195,12 +4234,15 @@ msgstr "失败" + #. returns for everything that evaluates to False (None, empty..) + #: dnf/util.py:633 + msgid "" +-msgstr "<名称-未设定>" ++msgstr "" ++ ++#~ msgid "skipping." ++#~ msgstr "正在跳过。" + + #~ msgid "" + #~ "Using rpmkeys executable from {path} to verify signature for package: " + #~ "{package}." +-#~ msgstr "使用来自 {path} 的 rpmkeys 可执行文件以验证此包的签名:{package}。" ++#~ msgstr "使用来自 {path} 的 rpmkeys 可执行代码验证软件包的签名:{package}。" + + #~ msgid "%s: %s check failed: %s vs %s" + #~ msgstr "%s: %s 检查失败:%s vs %s" +@@ -4227,5 +4269,6 @@ msgstr "<名称-未设定>" + #~ msgstr "错误的事务 ID 或软件包" + + #~ msgid "" +-#~ "Display capabilities that the package depends on for running a %%pre script." ++#~ "Display capabilities that the package depends on for running a %%pre " ++#~ "script." + #~ msgstr "显示软件包运行一个 %%pre 脚本所依赖的功能" +diff --git a/po/zh_TW.po b/po/zh_TW.po +index 8bf32e7d..d6f21e86 100644 +--- a/po/zh_TW.po ++++ b/po/zh_TW.po +@@ -11,10 +11,11 @@ msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2021-06-13 09:18-0400\n" ++"POT-Creation-Date: 2022-02-28 11:37+0100\n" + "PO-Revision-Date: 2020-09-08 22:00+0000\n" + "Last-Translator: Cheng-Chia Tseng \n" +-"Language-Team: Chinese (Traditional) \n" ++"Language-Team: Chinese (Traditional) \n" + "Language: zh_TW\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" +@@ -196,82 +197,81 @@ msgstr "在 config 檔案中無效的 tsflag:%s" + msgid "Failed to add groups file for repository: %s - %s" + msgstr "為軟體庫建立群組檔案時失敗:%s - %s" + +-#: dnf/base.py:904 ++#: dnf/base.py:922 + msgid "Running transaction check" + msgstr "執行處理事項檢查" + +-#: dnf/base.py:912 ++#: dnf/base.py:930 + msgid "Error: transaction check vs depsolve:" + msgstr "錯誤:處理事項 check vs depsolve:" + +-#: dnf/base.py:918 ++#: dnf/base.py:936 + msgid "Transaction check succeeded." + msgstr "處理事項檢查成功。" + +-#: dnf/base.py:921 ++#: dnf/base.py:939 + msgid "Running transaction test" + msgstr "執行處理事項測試" + +-#: dnf/base.py:931 dnf/base.py:1082 ++#: dnf/base.py:949 dnf/base.py:1100 + msgid "RPM: {}" + msgstr "RPM:{}" + +-#: dnf/base.py:932 ++#: dnf/base.py:950 + msgid "Transaction test error:" + msgstr "處理事項測試錯誤:" + +-#: dnf/base.py:943 ++#: dnf/base.py:961 + msgid "Transaction test succeeded." + msgstr "處理事項測試成功。" + +-#: dnf/base.py:964 ++#: dnf/base.py:982 + msgid "Running transaction" + msgstr "執行處理事項" + +-#: dnf/base.py:1001 ++#: dnf/base.py:1019 + msgid "Disk Requirements:" + msgstr "需要磁碟:" + +-#: dnf/base.py:1004 ++#: dnf/base.py:1022 + #, python-brace-format + msgid "At least {0}MB more space needed on the {1} filesystem." + msgid_plural "At least {0}MB more space needed on the {1} filesystem." + msgstr[0] "{1} 檔案系統需要至少 {0}MB 以上的空間。" + +-#: dnf/base.py:1011 ++#: dnf/base.py:1029 + msgid "Error Summary" + msgstr "錯誤摘要" + +-#: dnf/base.py:1037 ++#: dnf/base.py:1055 + #, python-brace-format + msgid "RPMDB altered outside of {prog}." + msgstr "RPMDB 在 {prog} 外有變動。" + +-#: dnf/base.py:1083 dnf/base.py:1091 ++#: dnf/base.py:1101 dnf/base.py:1109 + msgid "Could not run transaction." + msgstr "無法執行處理事項。" + +-#: dnf/base.py:1086 ++#: dnf/base.py:1104 + msgid "Transaction couldn't start:" + msgstr "無法啓動處理事項:" + +-#: dnf/base.py:1100 ++#: dnf/base.py:1118 + #, python-format + msgid "Failed to remove transaction file %s" + msgstr "移除處理事項檔案 %s 失敗" + +-#: dnf/base.py:1182 ++#: dnf/base.py:1200 + msgid "Some packages were not downloaded. Retrying." + msgstr "有些軟體包未下載。重試。" + +-#: dnf/base.py:1212 ++#: dnf/base.py:1230 + #, fuzzy, python-format +-#| msgid "" +-#| "Delta RPMs reduced %.1f MB of updates to %.1f MB (%d.1%% saved)" ++#| msgid "Delta RPMs reduced %.1f MB of updates to %.1f MB (%d.1%% saved)" + msgid "Delta RPMs reduced %.1f MB of updates to %.1f MB (%.1f%% saved)" + msgstr "Delta RPM 已將更新所需從 %.1f MB 減少為 %.1f MB(節省 %d.1%%)" + +-#: dnf/base.py:1216 ++#: dnf/base.py:1234 + #, fuzzy, python-format + #| msgid "" + #| "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%d.1%% wasted)" +@@ -279,75 +279,75 @@ msgid "" + "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%.1f%% wasted)" + msgstr "失敗的 Delta RPM 已將更新所需從 %.1f MB 增加為 %.1f MB(浪費 %d.1%%)" + +-#: dnf/base.py:1258 ++#: dnf/base.py:1276 + msgid "Cannot add local packages, because transaction job already exists" + msgstr "因為已經有處理事項工作,無法加入本機軟體包" + +-#: dnf/base.py:1272 ++#: dnf/base.py:1290 + msgid "Could not open: {}" + msgstr "無法開啟:{}" + +-#: dnf/base.py:1310 ++#: dnf/base.py:1328 + #, python-format + msgid "Public key for %s is not installed" + msgstr "%s 的公鑰尚未安裝" + +-#: dnf/base.py:1314 ++#: dnf/base.py:1332 + #, python-format + msgid "Problem opening package %s" + msgstr "開啟 %s 軟體包時發生問題" + +-#: dnf/base.py:1322 ++#: dnf/base.py:1340 + #, python-format + msgid "Public key for %s is not trusted" + msgstr "%s 的公鑰未被信任" + +-#: dnf/base.py:1326 ++#: dnf/base.py:1344 + #, python-format + msgid "Package %s is not signed" + msgstr "%s 軟體包尚未簽名" + +-#: dnf/base.py:1356 ++#: dnf/base.py:1374 + #, python-format + msgid "Cannot remove %s" + msgstr "無法移除 %s" + +-#: dnf/base.py:1360 ++#: dnf/base.py:1378 + #, python-format + msgid "%s removed" + msgstr "已移除 %s" + +-#: dnf/base.py:1640 ++#: dnf/base.py:1658 + msgid "No match for group package \"{}\"" + msgstr "找不到符合「{}」軟體包群組的項目" + +-#: dnf/base.py:1726 ++#: dnf/base.py:1740 + #, python-format + msgid "Adding packages from group '%s': %s" + msgstr "正在從群組「%s」加入軟體包:%s" + +-#: dnf/base.py:1749 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 ++#: dnf/base.py:1763 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 + #: dnf/cli/commands/__init__.py:494 dnf/cli/commands/__init__.py:587 + #: dnf/cli/commands/__init__.py:636 dnf/cli/commands/install.py:80 + #: dnf/cli/commands/install.py:103 dnf/cli/commands/install.py:110 + msgid "Nothing to do." + msgstr "無事可做。" + +-#: dnf/base.py:1767 ++#: dnf/base.py:1781 + msgid "No groups marked for removal." + msgstr "沒有標記為移除的群組。" + +-#: dnf/base.py:1801 ++#: dnf/base.py:1815 + msgid "No group marked for upgrade." + msgstr "沒有標記為升級的群組。" + +-#: dnf/base.py:2015 ++#: dnf/base.py:2029 + #, python-format + msgid "Package %s not installed, cannot downgrade it." + msgstr "尚未安裝軟體包 %s,所以無法降級。" + +-#: dnf/base.py:2017 dnf/base.py:2036 dnf/base.py:2049 dnf/base.py:2076 +-#: dnf/base.py:2129 dnf/base.py:2137 dnf/base.py:2271 dnf/cli/cli.py:417 ++#: dnf/base.py:2031 dnf/base.py:2050 dnf/base.py:2063 dnf/base.py:2090 ++#: dnf/base.py:2143 dnf/base.py:2151 dnf/base.py:2285 dnf/cli/cli.py:417 + #: dnf/cli/commands/__init__.py:420 dnf/cli/commands/__init__.py:477 + #: dnf/cli/commands/__init__.py:581 dnf/cli/commands/__init__.py:628 + #: dnf/cli/commands/__init__.py:706 dnf/cli/commands/install.py:147 +@@ -357,178 +357,179 @@ msgstr "尚未安裝軟體包 %s,所以無法降級。" + msgid "No match for argument: %s" + msgstr "引數不符:%s" + +-#: dnf/base.py:2024 ++#: dnf/base.py:2038 + #, python-format + msgid "Package %s of lower version already installed, cannot downgrade it." + msgstr "已經安裝較舊版本的軟體包 %s,所以無法降級。" + +-#: dnf/base.py:2047 ++#: dnf/base.py:2061 + #, python-format + msgid "Package %s not installed, cannot reinstall it." + msgstr "尚未安裝軟體包 %s,所以無法重新安裝。" + +-#: dnf/base.py:2062 ++#: dnf/base.py:2076 + #, python-format + msgid "File %s is a source package and cannot be updated, ignoring." + msgstr "檔案 %s 為來源軟體包且無法更新,忽略。" + +-#: dnf/base.py:2073 ++#: dnf/base.py:2087 + #, python-format + msgid "Package %s not installed, cannot update it." + msgstr "尚未安裝軟體包 %s,所以無法更新。" + +-#: dnf/base.py:2083 ++#: dnf/base.py:2097 + #, python-format + msgid "" + "The same or higher version of %s is already installed, cannot update it." + msgstr "已經安裝同版或更新版的 %s,無法更新。" + +-#: dnf/base.py:2126 dnf/cli/commands/reinstall.py:81 ++#: dnf/base.py:2140 dnf/cli/commands/reinstall.py:81 + #, python-format + msgid "Package %s available, but not installed." + msgstr "軟體包 %s 可用,但尚未安裝。" + +-#: dnf/base.py:2132 ++#: dnf/base.py:2146 + #, python-format + msgid "Package %s available, but installed for different architecture." + msgstr "軟體包 %s 可用,但是針對不同架構安裝。" + +-#: dnf/base.py:2157 ++#: dnf/base.py:2171 + #, python-format + msgid "No package %s installed." + msgstr "軟體包 %s 未安裝。" + +-#: dnf/base.py:2175 dnf/cli/commands/install.py:136 ++#: dnf/base.py:2189 dnf/cli/commands/install.py:136 + #: dnf/cli/commands/remove.py:133 + #, python-format + msgid "Not a valid form: %s" + msgstr "非有效格式:%s" + +-#: dnf/base.py:2190 dnf/cli/commands/__init__.py:676 ++#: dnf/base.py:2204 dnf/cli/commands/__init__.py:676 + #: dnf/cli/commands/remove.py:162 + msgid "No packages marked for removal." + msgstr "沒有軟體包標記為要移除。" + +-#: dnf/base.py:2278 dnf/cli/cli.py:428 ++#: dnf/base.py:2292 dnf/cli/cli.py:428 + #, python-format + msgid "Packages for argument %s available, but not installed." + msgstr "%s 引數的軟體包可用,但尚未安裝。" + +-#: dnf/base.py:2283 ++#: dnf/base.py:2297 + #, python-format + msgid "Package %s of lowest version already installed, cannot downgrade it." + msgstr "已經安裝最舊版本的軟體包 %s,所以無法降級。" + +-#: dnf/base.py:2383 ++#: dnf/base.py:2397 + msgid "No security updates needed, but {} update available" + msgstr "不需要任何的安全性更新,但有 {} 個更新可用" + +-#: dnf/base.py:2385 ++#: dnf/base.py:2399 + msgid "No security updates needed, but {} updates available" + msgstr "不需要任何的安全性更新,但有 {} 個更新可用" + +-#: dnf/base.py:2389 ++#: dnf/base.py:2403 + msgid "No security updates needed for \"{}\", but {} update available" + msgstr "不需要「{}」的任何安全性更新,但有 {} 個更新可用" + +-#: dnf/base.py:2391 ++#: dnf/base.py:2405 + msgid "No security updates needed for \"{}\", but {} updates available" + msgstr "不需要「{}」的任何安全性更新,但有 {} 個更新可用" + + #. raise an exception, because po.repoid is not in self.repos +-#: dnf/base.py:2412 ++#: dnf/base.py:2426 + #, python-format + msgid "Unable to retrieve a key for a commandline package: %s" + msgstr "無法擷取命令列軟體包的金鑰:%s" + +-#: dnf/base.py:2420 ++#: dnf/base.py:2434 + #, python-format + msgid ". Failing package is: %s" + msgstr "失敗的軟體包為:%s" + +-#: dnf/base.py:2421 ++#: dnf/base.py:2435 + #, python-format + msgid "GPG Keys are configured as: %s" + msgstr "GPG 金鑰已經設定為:%s" + +-#: dnf/base.py:2433 ++#: dnf/base.py:2447 + #, python-format + msgid "GPG key at %s (0x%s) is already installed" + msgstr "於 %s (0x%s) 的 GPG 密鑰已經安裝" + +-#: dnf/base.py:2469 ++#: dnf/base.py:2483 + msgid "The key has been approved." + msgstr "金鑰已經核可。" + +-#: dnf/base.py:2472 ++#: dnf/base.py:2486 + msgid "The key has been rejected." + msgstr "金鑰已被拒絕。" + +-#: dnf/base.py:2505 ++#: dnf/base.py:2519 + #, python-format + msgid "Key import failed (code %d)" + msgstr "密鑰匯入失敗(錯誤代碼 %d)" + +-#: dnf/base.py:2507 ++#: dnf/base.py:2521 + msgid "Key imported successfully" + msgstr "密鑰匯入成功" + +-#: dnf/base.py:2511 ++#: dnf/base.py:2525 + msgid "Didn't install any keys" + msgstr "無法安裝任何密鑰" + +-#: dnf/base.py:2514 ++#: dnf/base.py:2528 + #, python-format + msgid "" +-"The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n" ++"The GPG keys listed for the \"%s\" repository are already installed but they " ++"are not correct for this package.\n" + "Check that the correct key URLs are configured for this repository." + msgstr "" + "列出的「%s」軟體庫 GPG 金鑰已經安裝,但這些金鑰對這個軟體包都不正確。\n" + "檢查這個軟體庫的不正確金鑰之網址設定。" + +-#: dnf/base.py:2525 ++#: dnf/base.py:2539 + msgid "Import of key(s) didn't help, wrong key(s)?" + msgstr "匯入的金鑰沒有作用,可能是因為金鑰是錯誤的?" + +-#: dnf/base.py:2578 ++#: dnf/base.py:2592 + msgid " * Maybe you meant: {}" + msgstr " * 或許您想要:{}" + +-#: dnf/base.py:2610 ++#: dnf/base.py:2624 + msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" + msgstr "「{}」軟體包來自本機「{}」軟體庫有不正確的 checksum" + +-#: dnf/base.py:2613 ++#: dnf/base.py:2627 + msgid "Some packages from local repository have incorrect checksum" + msgstr "來自本機軟體庫的部份軟體包有不正確的 checksum" + +-#: dnf/base.py:2616 ++#: dnf/base.py:2630 + msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" + msgstr "「{}」軟體包來自「{}」軟體庫有不正確的 checksum" + +-#: dnf/base.py:2619 ++#: dnf/base.py:2633 + msgid "" + "Some packages have invalid cache, but cannot be downloaded due to \"--" + "cacheonly\" option" + msgstr "部份的軟體包有無效的快取,但是因為「--cacheonly」選項而無法下載" + +-#: dnf/base.py:2637 dnf/base.py:2657 ++#: dnf/base.py:2651 dnf/base.py:2671 + msgid "No match for argument" + msgstr "沒有符合引數的項目" + +-#: dnf/base.py:2645 dnf/base.py:2665 ++#: dnf/base.py:2659 dnf/base.py:2679 + msgid "All matches were filtered out by exclude filtering for argument" + msgstr "所有符合項目皆被引數的排除過濾器濾掉" + +-#: dnf/base.py:2647 ++#: dnf/base.py:2661 + msgid "All matches were filtered out by modular filtering for argument" + msgstr "所有符合項目皆被引數的模組化過濾器濾掉" + +-#: dnf/base.py:2663 ++#: dnf/base.py:2677 + msgid "All matches were installed from a different repository for argument" + msgstr "所有符合項目皆從引數的不同軟體庫安裝" + +-#: dnf/base.py:2710 ++#: dnf/base.py:2724 + #, python-format + msgid "Package %s is already installed." + msgstr "已安裝 %s 軟體包。" +@@ -538,7 +539,7 @@ msgstr "已安裝 %s 軟體包。" + msgid "Unexpected value of environment variable: DNF_DISABLE_ALIASES=%s" + msgstr "未預期的環境變數值:DNF_DISABLE_ALIASES=%s" + +-#: dnf/cli/aliases.py:105 dnf/conf/config.py:457 ++#: dnf/cli/aliases.py:105 dnf/conf/config.py:475 + #, python-format + msgid "Parsing file \"%s\" failed: %s" + msgstr "解析「%s」檔案失敗:%s" +@@ -584,13 +585,19 @@ msgstr "動作可能會導致「{0}」模組的「{1}」串流被切換到「{2} + #, fuzzy, python-brace-format + #| msgid "" + #| "It is not possible to switch enabled streams of a module.\n" +-#| "It is recommended to remove all installed content from the module, and reset the module using '{prog} module reset ' command. After you reset the module, you can install the other stream." ++#| "It is recommended to remove all installed content from the module, and " ++#| "reset the module using '{prog} module reset ' command. After " ++#| "you reset the module, you can install the other stream." + msgid "" +-"It is not possible to switch enabled streams of a module unless explicitly enabled via configuration option module_stream_switch.\n" +-"It is recommended to rather remove all installed content from the module, and reset the module using '{prog} module reset ' command. After you reset the module, you can install the other stream." ++"It is not possible to switch enabled streams of a module unless explicitly " ++"enabled via configuration option module_stream_switch.\n" ++"It is recommended to rather remove all installed content from the module, " ++"and reset the module using '{prog} module reset ' command. " ++"After you reset the module, you can install the other stream." + msgstr "" + "無法切換模組的已啟用串流。\n" +-"建議移除模組的所有已安裝內容,並使用 '{prog} module reset ' 命令重設模組。重設完模組後,就可以安裝其他串流。" ++"建議移除模組的所有已安裝內容,並使用 '{prog} module reset ' 命令" ++"重設模組。重設完模組後,就可以安裝其他串流。" + + #: dnf/cli/cli.py:212 + #, python-brace-format +@@ -693,8 +700,8 @@ msgstr "沒有軟體庫符合:%s" + + #: dnf/cli/cli.py:719 + msgid "" +-"This command has to be run with superuser privileges (under the root user on" +-" most systems)." ++"This command has to be run with superuser privileges (under the root user on " ++"most systems)." + msgstr "此命令需要以超級使用者權限執行(大部分系統是在 root 使用者下)。" + + #: dnf/cli/cli.py:749 +@@ -707,7 +714,8 @@ msgstr "未知的指令:%s。請使用 %s --help" + msgid "" + "It could be a {PROG} plugin command, try: \"{prog} install 'dnf-" + "command(%s)'\"" +-msgstr "其可能是 {PROG} 插件的命令,請試試:「{prog} install 'dnf-command(%s)'」" ++msgstr "" ++"其可能是 {PROG} 插件的命令,請試試:「{prog} install 'dnf-command(%s)'」" + + #: dnf/cli/cli.py:756 + #, python-brace-format +@@ -729,14 +737,16 @@ msgid "" + "--enable, --set-enabled and --disable, --set-disabled must be used with " + "config-manager command." + msgstr "" +-"--enable、--set-enabled 及 --disable、--set-disabled 必須與 config-manager 命令一起使用。" ++"--enable、--set-enabled 及 --disable、--set-disabled 必須與 config-manager 命" ++"令一起使用。" + + #: dnf/cli/cli.py:902 + msgid "" + "Warning: Enforcing GPG signature check globally as per active RPM security " + "policy (see 'gpgcheck' in dnf.conf(5) for how to squelch this message)" + msgstr "" +-"警告:因為作用中的 RPM 安全性策略,已強制執行全域 GPG 簽名檢查(請參閱 dnf.conf(5) 的「gpgcheck」以了解如何隱藏此則訊息)" ++"警告:因為作用中的 RPM 安全性策略,已強制執行全域 GPG 簽名檢查(請參閱 dnf." ++"conf(5) 的「gpgcheck」以了解如何隱藏此則訊息)" + + #: dnf/cli/cli.py:922 + msgid "Config file \"{}\" does not exist" +@@ -787,7 +797,8 @@ msgstr "您的 RPMDB 可能損壞,可執行「%s」可能會修復這個問題 + #, python-brace-format + msgid "" + "You have enabled checking of packages via GPG keys. This is a good thing.\n" +-"However, you do not have any GPG public keys installed. You need to download\n" ++"However, you do not have any GPG public keys installed. You need to " ++"download\n" + "the keys for packages you wish to install and install them.\n" + "You can do that by running the command:\n" + " rpm --import public.gpg.key\n" +@@ -1235,8 +1246,8 @@ msgstr "" + + #: dnf/cli/commands/history.py:68 + msgid "" +-"For the replay command, don't check for installed packages matching those in" +-" transaction" ++"For the replay command, don't check for installed packages matching those in " ++"transaction" + msgstr "" + + #: dnf/cli/commands/history.py:71 +@@ -1247,8 +1258,8 @@ msgstr "" + + #: dnf/cli/commands/history.py:74 + msgid "" +-"For the replay command, skip packages that are not available or have missing" +-" dependencies" ++"For the replay command, skip packages that are not available or have missing " ++"dependencies" + msgstr "" + + #: dnf/cli/commands/history.py:94 +@@ -1283,8 +1294,8 @@ msgstr "您沒有權限存取歷史紀錄資料庫:%s" + #: dnf/cli/commands/history.py:151 + #, python-format + msgid "" +-"Cannot undo transaction %s, doing so would result in an inconsistent package" +-" database." ++"Cannot undo transaction %s, doing so would result in an inconsistent package " ++"database." + msgstr "無法復原處理事項 %s,這樣做會導致軟體包資料庫不一致。" + + #: dnf/cli/commands/history.py:156 +@@ -1437,8 +1448,8 @@ msgstr "%s 軟體包尚未安裝。" + + #: dnf/cli/commands/module.py:54 + msgid "" +-"Only module name, stream, architecture or profile is used. Ignoring unneeded" +-" information in argument: '{}'" ++"Only module name, stream, architecture or profile is used. Ignoring unneeded " ++"information in argument: '{}'" + msgstr "只使用模組名稱、串流、架構或設定檔。忽略引數中的非必要資訊:「{}」" + + #: dnf/cli/commands/module.py:80 +@@ -1710,7 +1721,8 @@ msgstr "搜尋軟體包符合的關鍵詞" + msgid "" + "Query all packages (shorthand for repoquery '*' or repoquery without " + "argument)" +-msgstr "查詢所有軟體包(為軟體包查詢「*」或不包含引數的軟體包查詢的 shorthand)" ++msgstr "" ++"查詢所有軟體包(為軟體包查詢「*」或不包含引數的軟體包查詢的 shorthand)" + + #: dnf/cli/commands/repoquery.py:124 + msgid "Query all versions of packages (default)" +@@ -1796,7 +1808,8 @@ msgstr "在相應的來源 RPM 上執行" + msgid "" + "show N latest packages for a given name.arch (or latest but N if N is " + "negative)" +-msgstr "為提供的 name.arch 顯示 N 個最新的軟體包(或最新、除了 N 如果 N 是否定的)" ++msgstr "" ++"為提供的 name.arch 顯示 N 個最新的軟體包(或最新、除了 N 如果 N 是否定的)" + + #: dnf/cli/commands/repoquery.py:177 + msgid "list also packages of inactive module streams" +@@ -1821,9 +1834,11 @@ msgstr "顯示軟體包的變更紀錄" + #: dnf/cli/commands/repoquery.py:194 + #, python-format, python-brace-format + msgid "" +-"display format for listing packages: \"%%{name} %%{version} ...\", use " +-"--querytags to view full tag list" +-msgstr "軟體包清單的顯示格式:「%%{name} %%{version} ...」,使用 --querytags 檢視完整標籤清單" ++"display format for listing packages: \"%%{name} %%{version} ...\", use --" ++"querytags to view full tag list" ++msgstr "" ++"軟體包清單的顯示格式:「%%{name} %%{version} ...」,使用 --querytags 檢視完整" ++"標籤清單" + + #: dnf/cli/commands/repoquery.py:198 + msgid "show available tags to use with --queryformat" +@@ -1833,7 +1848,8 @@ msgstr "與 --queryformat 顯示可供使用的標籤" + msgid "" + "use name-epoch:version-release.architecture format for displaying found " + "packages (default)" +-msgstr "使用 name-epoch:version-release.architecture 格式來顯示找到的軟體包(預設值)" ++msgstr "" ++"使用 name-epoch:version-release.architecture 格式來顯示找到的軟體包(預設值)" + + #: dnf/cli/commands/repoquery.py:205 + msgid "" +@@ -1900,8 +1916,8 @@ msgid "" + "running %%pre and %%post scriptlets. If the package is installed display " + "capabilities that is depends for %%pre, %%post, %%preun and %%postun." + msgstr "" +-"如果未安裝軟體包,則顯示執行 %%pre 及 %%post 小令稿所依賴的功能。如果已安裝軟體包,則顯示執行 %%pre、%%post、%%preun " +-"以及 %%postun 小令稿所依賴的功能。" ++"如果未安裝軟體包,則顯示執行 %%pre 及 %%post 小令稿所依賴的功能。如果已安裝軟" ++"體包,則顯示執行 %%pre、%%post、%%preun 以及 %%postun 小令稿所依賴的功能。" + + #: dnf/cli/commands/repoquery.py:243 + msgid "Display capabilities that the package suggests." +@@ -1950,23 +1966,23 @@ msgstr "要搜尋的關鍵詞:" + + #: dnf/cli/commands/repoquery.py:295 + msgid "" +-"Option '--resolve' has to be used together with one of the '--conflicts', '" +-"--depends', '--enhances', '--provides', '--recommends', '--requires', '--" ++"Option '--resolve' has to be used together with one of the '--conflicts', '--" ++"depends', '--enhances', '--provides', '--recommends', '--requires', '--" + "requires-pre', '--suggests' or '--supplements' options" + msgstr "" +-"選項 '--resolve' 需要與 '--conflicts', '--depends', '--enhances', '--provides', '" +-"--recommends', '--requires', '--requires-pre', '--suggests' 或 '--" +-"supplements' 選項一起使用" ++"選項 '--resolve' 需要與 '--conflicts', '--depends', '--enhances', '--" ++"provides', '--recommends', '--requires', '--requires-pre', '--suggests' 或 " ++"'--supplements' 選項一起使用" + + #: dnf/cli/commands/repoquery.py:305 + msgid "" + "Option '--recursive' has to be used with '--whatrequires ' (optionally " +-"with '--alldeps', but not with '--exactdeps'), or with '--requires " +-"--resolve'" ++"with '--alldeps', but not with '--exactdeps'), or with '--requires --" ++"resolve'" + msgstr "" +-"「--recursive」選項必須與「--whatrequires " +-"」一起使用(可以選擇與「--alldeps」一起使用,但不可以是「--exactdeps」),或是與「--requires " +-"--resolve」一起使用" ++"「--recursive」選項必須與「--whatrequires 」一起使用(可以選擇與「--" ++"alldeps」一起使用,但不可以是「--exactdeps」),或是與「--requires --" ++"resolve」一起使用" + + #: dnf/cli/commands/repoquery.py:312 + msgid "argument {} requires --whatrequires or --whatdepends option" +@@ -1980,13 +1996,17 @@ msgstr "軟體包 {} 不包含任何檔案" + #, python-brace-format + msgid "" + "No valid switch specified\n" +-"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" ++"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" ++"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" ++"tree]\n" + "\n" + "description:\n" + " For the given packages print a tree of thepackages." + msgstr "" + "未指定有效的開關選項\n" +-"用法:{prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" ++"用法:{prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" ++"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" ++"tree]\n" + "\n" + "描述:\n" + " 列出提供軟體包的樹狀圖。" +@@ -2026,8 +2046,7 @@ msgstr "描述" + msgid "URL" + msgstr "URL" + +-#. TRANSLATORS: separator used between package attributes (eg. Name & Summary +-#. & URL) ++#. TRANSLATORS: separator used between package attributes (eg. Name & Summary & URL) + #: dnf/cli/commands/search.py:76 + msgid " & " + msgstr " & " +@@ -2545,7 +2564,9 @@ msgstr "錯誤輸出等級" + msgid "" + "enables {prog}'s obsoletes processing logic for upgrade or display " + "capabilities that the package obsoletes for info, list and repoquery" +-msgstr "啟用 {prog} 中 upgrade 的棄用處理邏輯,或啟用 info、list 和 repoquery 顯示軟體包棄用的功能" ++msgstr "" ++"啟用 {prog} 中 upgrade 的棄用處理邏輯,或啟用 info、list 和 repoquery 顯示軟" ++"體包棄用的功能" + + #: dnf/cli/option_parser.py:251 + msgid "debugging output level for rpm" +@@ -2567,8 +2588,8 @@ msgstr "啟用額外軟體庫。列出選項。支援 Glob,可多次指定。" + + #: dnf/cli/option_parser.py:266 + msgid "" +-"Disable repositories. List option. Supports globs, can be specified multiple" +-" times." ++"Disable repositories. List option. Supports globs, can be specified multiple " ++"times." + msgstr "停用軟體庫。列出選項。支援 Glob,可多次指定。" + + #: dnf/cli/option_parser.py:270 +@@ -2597,7 +2618,8 @@ msgstr "停用 excludepkgs" + msgid "" + "label and path to an additional repository to use (same path as in a " + "baseurl), can be specified multiple times." +-msgstr "要使用之額外軟體庫的標籤與路徑(跟基礎 URL 中的路徑一致),可多次指定。" ++msgstr "" ++"要使用之額外軟體庫的標籤與路徑(跟基礎 URL 中的路徑一致),可多次指定。" + + #: dnf/cli/option_parser.py:297 + msgid "disable removal of dependencies that are no longer used" +@@ -3450,10 +3472,6 @@ msgstr " 開始於:%s - %s 之前" + msgid " State : %s" + msgstr " 狀態:%s" + +-#: dnf/comps.py:104 +-msgid "skipping." +-msgstr "略過。" +- + #: dnf/comps.py:196 dnf/comps.py:692 dnf/comps.py:706 + #, python-format + msgid "Module or Group '%s' is not installed." +@@ -3508,11 +3526,15 @@ msgstr "無法解析「%s」:%s" + msgid "Invalid configuration value: %s=%s in %s; %s" + msgstr "未知的設定值:%s = %s 於 %s;%s" + +-#: dnf/conf/config.py:226 ++#: dnf/conf/config.py:194 ++msgid "Cannot set \"{}\" to \"{}\": {}" ++msgstr "" ++ ++#: dnf/conf/config.py:244 + msgid "Could not set cachedir: {}" + msgstr "無法設定 cachedir:{}" + +-#: dnf/conf/config.py:275 ++#: dnf/conf/config.py:293 + msgid "" + "Configuration file URL \"{}\" could not be downloaded:\n" + " {}" +@@ -3520,31 +3542,31 @@ msgstr "" + "無法下載「{}」設定檔 URL:\n" + " {}" + +-#: dnf/conf/config.py:355 dnf/conf/config.py:391 ++#: dnf/conf/config.py:373 dnf/conf/config.py:409 + #, python-format + msgid "Unknown configuration option: %s = %s" + msgstr "無效的設定選項:%s = %s" + +-#: dnf/conf/config.py:372 ++#: dnf/conf/config.py:390 + #, python-format + msgid "Error parsing --setopt with key '%s', value '%s': %s" + msgstr "以「%s」鍵,「%s」值解析 --setopt 時發生錯誤:%s" + +-#: dnf/conf/config.py:380 ++#: dnf/conf/config.py:398 + #, python-format + msgid "Main config did not have a %s attr. before setopt" + msgstr "主組態未在 setopt 之前設定 %s 屬性" + +-#: dnf/conf/config.py:427 dnf/conf/config.py:445 ++#: dnf/conf/config.py:445 dnf/conf/config.py:463 + msgid "Incorrect or unknown \"{}\": {}" + msgstr "錯誤的或者是無效的 \"{}\": {}" + +-#: dnf/conf/config.py:501 ++#: dnf/conf/config.py:519 + #, python-format + msgid "Error parsing --setopt with key '%s.%s', value '%s': %s" + msgstr "以「%s.%s」鍵,「%s」值解析 --setopt 時發生錯誤:%s" + +-#: dnf/conf/config.py:504 ++#: dnf/conf/config.py:522 + #, python-format + msgid "Repo %s did not have a %s attr. before setopt" + msgstr "%s 軟體庫未在 setopt 之前設定 %s 屬性" +@@ -3625,7 +3647,7 @@ msgstr "沒有「{}」模組化軟體包可用的模組化中介資料" + msgid "Will not install a source rpm package (%s)." + msgstr "將不會安裝 RPM 原始檔(%s)。" + +-#: dnf/dnssec.py:168 ++#: dnf/dnssec.py:171 + #, fuzzy + #| msgid "" + #| "Configuration option 'gpgkey_dns_verification' requires libunbound ({})" +@@ -3633,27 +3655,27 @@ msgid "" + "Configuration option 'gpgkey_dns_verification' requires python3-unbound ({})" + msgstr "「gpgkey_dns_verification」設定選項需要 libunbound ({})" + +-#: dnf/dnssec.py:239 ++#: dnf/dnssec.py:243 + msgid "DNSSEC extension: Key for user " + msgstr "DNSSEC 擴充:給使用者的金鑰 " + +-#: dnf/dnssec.py:241 ++#: dnf/dnssec.py:245 + msgid "is valid." + msgstr "有效。" + +-#: dnf/dnssec.py:243 ++#: dnf/dnssec.py:247 + msgid "has unknown status." + msgstr "狀態未知。" + +-#: dnf/dnssec.py:251 ++#: dnf/dnssec.py:255 + msgid "DNSSEC extension: " + msgstr "DNSSEC 擴充: " + +-#: dnf/dnssec.py:283 ++#: dnf/dnssec.py:287 + msgid "Testing already imported keys for their validity." + msgstr "測試已經匯入的金鑰其有效性。" + +-#: dnf/drpm.py:62 dnf/repo.py:268 ++#: dnf/drpm.py:62 dnf/repo.py:267 + #, python-format + msgid "unsupported checksum type: %s" + msgstr "未支援的查核碼類型:%s" +@@ -3695,7 +3717,7 @@ msgid "Modular dependency problem with Defaults:" + msgid_plural "Modular dependency problems with Defaults:" + msgstr[0] "預設值發生模組依賴關係問題:" + +-#: dnf/exceptions.py:131 dnf/module/module_base.py:854 ++#: dnf/exceptions.py:131 dnf/module/module_base.py:857 + msgid "Modular dependency problem:" + msgid_plural "Modular dependency problems:" + msgstr[0] "模組化的依賴關係問題:" +@@ -3704,10 +3726,12 @@ msgstr[0] "模組化的依賴關係問題:" + #, python-format + msgid "" + "Malformed lock file found: %s.\n" +-"Ensure no other dnf/yum process is running and remove the lock file manually or run systemd-tmpfiles --remove dnf.conf." ++"Ensure no other dnf/yum process is running and remove the lock file manually " ++"or run systemd-tmpfiles --remove dnf.conf." + msgstr "" + "發現格式錯誤的鎖定檔:%s。\n" +-"請確定沒有其他正在執行的 dnf/yum 處理程序,然後手動移除鎖定檔或執行 systemd-tmpfiles --remove dnf.conf。" ++"請確定沒有其他正在執行的 dnf/yum 處理程序,然後手動移除鎖定檔或執行 systemd-" ++"tmpfiles --remove dnf.conf。" + + #: dnf/module/__init__.py:26 + msgid "Enabling different stream for '{}'." +@@ -3800,7 +3824,7 @@ msgstr "" + "提示:[d] 預設、[e] 已啟用, [x] 已停用, [i] 已安裝, [a] 作用中" + + #: dnf/module/module_base.py:56 dnf/module/module_base.py:556 +-#: dnf/module/module_base.py:615 dnf/module/module_base.py:681 ++#: dnf/module/module_base.py:615 dnf/module/module_base.py:684 + msgid "Ignoring unnecessary profile: '{}/{}'" + msgstr "忽略不必要的設定檔:「{}/{}」" + +@@ -3841,8 +3865,7 @@ msgstr "不允許從防故障軟體庫安裝模組" + + #: dnf/module/module_base.py:196 + #, fuzzy, python-brace-format +-#| msgid "" +-#| "All matches for argument '{0}' in module '{1}:{2}' are not active" ++#| msgid "All matches for argument '{0}' in module '{1}:{2}' are not active" + msgid "No active matches for argument '{0}' in module '{1}:{2}'" + msgstr "所有「{1}:{2}」模組中的「{0}」引數符合項目皆未作用中" + +@@ -3859,7 +3882,7 @@ msgstr "" + #: dnf/module/module_base.py:310 dnf/module/module_base.py:461 + #: dnf/module/module_base.py:486 dnf/module/module_base.py:505 + #: dnf/module/module_base.py:552 dnf/module/module_base.py:611 +-#: dnf/module/module_base.py:677 dnf/module/module_base.py:840 ++#: dnf/module/module_base.py:680 dnf/module/module_base.py:843 + msgid "Unable to resolve argument {}" + msgstr "無法解析 {} 引數" + +@@ -3879,17 +3902,16 @@ msgstr "不允許從防故障軟體庫升級模組" + #: dnf/module/module_base.py:422 + #, python-brace-format + msgid "" +-"Argument '{argument}' matches {stream_count} streams ('{streams}') of module" +-" '{module}', but none of the streams are enabled or default" ++"Argument '{argument}' matches {stream_count} streams ('{streams}') of module " ++"'{module}', but none of the streams are enabled or default" + msgstr "" + + #: dnf/module/module_base.py:509 + msgid "" +-"Only module name is required. Ignoring unneeded information in argument: " +-"'{}'" ++"Only module name is required. Ignoring unneeded information in argument: '{}'" + msgstr "只需要模組名稱。忽略引數中的非必要資訊:「{}」" + +-#: dnf/module/module_base.py:841 ++#: dnf/module/module_base.py:844 + msgid "No match for package {}" + msgstr "找不到符合的軟體包 {}" + +@@ -3950,7 +3972,7 @@ msgid "Already downloaded" + msgstr "已經下載" + + #. pinging mirrors, this might take a while +-#: dnf/repo.py:347 ++#: dnf/repo.py:346 + #, python-format + msgid "determining the fastest mirror (%s hosts).. " + msgstr "正在決定最快速的鏡像站 (%s 主機)… " +@@ -3974,7 +3996,15 @@ msgstr "" + msgid "Cannot find rpmkeys executable to verify signatures." + msgstr "" + +-#: dnf/rpm/transaction.py:119 ++#: dnf/rpm/transaction.py:70 ++msgid "The openDB() function connot open rpm database." ++msgstr "" ++ ++#: dnf/rpm/transaction.py:75 ++msgid "The dbCookie() function did not return cookie of rpm database." ++msgstr "" ++ ++#: dnf/rpm/transaction.py:135 + msgid "Errors occurred during test transaction." + msgstr "測試處理事項時發生錯誤。" + +@@ -4082,7 +4112,8 @@ msgstr "" + + #: dnf/transaction_sr.py:289 + #, python-brace-format +-msgid "Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." ++msgid "" ++"Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." + msgstr "" + + #: dnf/transaction_sr.py:297 +@@ -4115,7 +4146,8 @@ msgstr "" + + #: dnf/transaction_sr.py:370 + #, python-brace-format +-msgid "Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." ++msgid "" ++"Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." + msgstr "" + + #: dnf/transaction_sr.py:377 +@@ -4165,7 +4197,9 @@ msgstr "" + + #: dnf/transaction_sr.py:571 + #, python-brace-format +-msgid "Unexpected value of environment action \"{action}\" for environment \"{env}\"." ++msgid "" ++"Unexpected value of environment action \"{action}\" for environment " ++"\"{env}\"." + msgstr "" + + #: dnf/transaction_sr.py:576 +@@ -4176,8 +4210,8 @@ msgstr "" + #: dnf/transaction_sr.py:615 + #, python-brace-format + msgid "" +-"Package nevra \"{nevra}\", which is not present in the transaction file, was" +-" pulled into the transaction." ++"Package nevra \"{nevra}\", which is not present in the transaction file, was " ++"pulled into the transaction." + msgstr "" + + #: dnf/util.py:417 dnf/util.py:419 +@@ -4217,6 +4251,9 @@ msgstr "失敗" + msgid "" + msgstr "<名稱未設定>" + ++#~ msgid "skipping." ++#~ msgstr "略過。" ++ + #~ msgid "%s: %s check failed: %s vs %s" + #~ msgstr "%s:%s 檢查失敗:%s 比對 %s" + +@@ -4242,5 +4279,6 @@ msgstr "<名稱未設定>" + #~ msgstr "給予的處理事項 ID、或軟體包不良" + + #~ msgid "" +-#~ "Display capabilities that the package depends on for running a %%pre script." ++#~ "Display capabilities that the package depends on for running a %%pre " ++#~ "script." + #~ msgstr "顯示軟體包執行在 %%pre 指令上的功能。" +-- +2.35.1 + diff --git a/SPECS/dnf.spec b/SPECS/dnf.spec new file mode 100644 index 0000000..9bafd9f --- /dev/null +++ b/SPECS/dnf.spec @@ -0,0 +1,2688 @@ +# Always build out-of-source +%define __cmake_in_source_build 1 + +# default dependencies +%global hawkey_version 0.65.0 +%global libcomps_version 0.1.8 +%global libmodulemd_version 2.9.3 +%global rpm_version 4.14.0 + +# conflicts +%global conflicts_dnf_plugins_core_version 4.0.24-3 +%global conflicts_dnf_plugins_extras_version 4.0.4 +%global conflicts_dnfdaemon_version 0.3.19 + +# override dependencies for rhel 7 +%if 0%{?rhel} == 7 + %global rpm_version 4.11.3-32 +%endif + +%if 0%{?rhel} == 7 && 0%{?centos} + %global rpm_version 4.11.3-25.el7.centos.1 +%endif + +# override dependencies for fedora 26 +%if 0%{?fedora} == 26 + %global rpm_version 4.13.0.1-7 +%endif + + +# YUM compat subpackage configuration +# +# level=full -> deploy all compat symlinks (conflicts with yum < 4) +# level=minimal -> deploy a subset of compat symlinks only +# (no conflict with yum >= 3.4.3-505)* +# level=preview -> minimal level with altered paths (no conflict with yum < 4) +# *release 505 renamed /usr/bin/yum to /usr/bin/yum-deprecated +%global yum_compat_level full +%global yum_subpackage_name yum +%if 0%{?fedora} + # Avoid file conflict with yum < 4 in all Fedoras + # It can be resolved by pretrans scriptlet but they are not recommended in Fedora + %global yum_compat_level minimal + %if 0%{?fedora} < 31 + # Avoid name conflict with yum < 4 + %global yum_subpackage_name %{name}-yum + %endif +%endif +%if 0%{?rhel} && 0%{?rhel} <= 7 + %global yum_compat_level preview + %global yum_subpackage_name nextgen-yum4 +%endif + +# paths +%global confdir %{_sysconfdir}/%{name} +%global pluginconfpath %{confdir}/plugins + +%global py3pluginpath %{python3_sitelib}/%{name}-plugins + +# Use the same directory of the main package for subpackage licence and docs +%global _docdir_fmt %{name} + + +%global pkg_summary Package manager +%global pkg_description Utility that allows users to manage packages on their systems. \ +It supports RPMs, modules and comps groups & environments. + +Name: dnf +Version: 4.10.0 +Release: 5%{?dist} +Summary: %{pkg_summary} +# For a breakdown of the licensing, see PACKAGE-LICENSING +License: GPLv2+ +URL: https://github.com/rpm-software-management/dnf +Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz +Patch1: 0001-doc-Improve-description-of-multilib_policyall-RhBug19966811995630.patch +Patch2: 0002-Fix-Python-dnf-API-does-not-respect-cacheonly-RhBug1862970.patch +Patch3: 0003-Documentation-API-notes-for-cacheonly.patch +Patch4: 0004-Use-rpm.TransactionSet.dbCookie-to-determining-if-rp.patch +Patch5: 0005-Update-translations-RhBug-2017347.patch + +BuildArch: noarch +BuildRequires: cmake +BuildRequires: gettext +# Documentation +BuildRequires: systemd +BuildRequires: bash-completion +BuildRequires: %{_bindir}/sphinx-build-3 +Requires: python3-%{name} = %{version}-%{release} +%if 0%{?rhel} && 0%{?rhel} <= 7 +Requires: python-dbus +Requires: %{_bindir}/sqlite3 +%else +Recommends: (python3-dbus if NetworkManager) +%endif +Provides: dnf-command(alias) +Provides: dnf-command(autoremove) +Provides: dnf-command(check-update) +Provides: dnf-command(clean) +Provides: dnf-command(distro-sync) +Provides: dnf-command(downgrade) +Provides: dnf-command(group) +Provides: dnf-command(history) +Provides: dnf-command(info) +Provides: dnf-command(install) +Provides: dnf-command(list) +Provides: dnf-command(makecache) +Provides: dnf-command(mark) +Provides: dnf-command(provides) +Provides: dnf-command(reinstall) +Provides: dnf-command(remove) +Provides: dnf-command(repolist) +Provides: dnf-command(repoquery) +Provides: dnf-command(repository-packages) +Provides: dnf-command(search) +Provides: dnf-command(updateinfo) +Provides: dnf-command(upgrade) +Provides: dnf-command(upgrade-to) +Conflicts: python3-dnf-plugins-core < %{conflicts_dnf_plugins_core_version} +Conflicts: python3-dnf-plugins-extras-common < %{conflicts_dnf_plugins_extras_version} + +%description +%{pkg_description} + +%package data +Summary: Common data and configuration files for DNF +Requires: libreport-filesystem +Obsoletes: %{name}-conf <= %{version}-%{release} +Provides: %{name}-conf = %{version}-%{release} + +%description data +Common data and configuration files for DNF + +%package -n %{yum_subpackage_name} +Requires: %{name} = %{version}-%{release} +Summary: %{pkg_summary} +%if 0%{?fedora} +%if 0%{?fedora} >= 31 +Provides: %{name}-yum = %{version}-%{release} +Obsoletes: %{name}-yum < 5 +%else +Conflicts: yum < 3.4.3-505 +%endif +%endif + +%description -n %{yum_subpackage_name} +%{pkg_description} + +%package -n python3-%{name} +Summary: Python 3 interface to DNF +%{?python_provide:%python_provide python3-%{name}} +BuildRequires: python3-devel +BuildRequires: python3-hawkey >= %{hawkey_version} +BuildRequires: python3-libdnf >= %{hawkey_version} +BuildRequires: python3-libcomps >= %{libcomps_version} +BuildRequires: python3-libdnf +BuildRequires: libmodulemd >= %{libmodulemd_version} +Requires: libmodulemd >= %{libmodulemd_version} +BuildRequires: python3-gpg +Requires: python3-gpg +Requires: %{name}-data = %{version}-%{release} +%if 0%{?fedora} +Recommends: deltarpm +# required for DNSSEC main.gpgkey_dns_verification https://dnf.readthedocs.io/en/latest/conf_ref.html +Recommends: python3-unbound +%endif +Requires: python3-hawkey >= %{hawkey_version} +Requires: python3-libdnf >= %{hawkey_version} +Requires: python3-libcomps >= %{libcomps_version} +Requires: python3-libdnf +BuildRequires: python3-rpm >= %{rpm_version} +Requires: python3-rpm >= %{rpm_version} +%if 0%{?rhel} && 0%{?rhel} <= 7 +Requires: rpm-plugin-systemd-inhibit +%else +Recommends: (rpm-plugin-systemd-inhibit if systemd) +%endif + +%description -n python3-%{name} +Python 3 interface to DNF. + +%package automatic +Summary: %{pkg_summary} - automated upgrades +BuildRequires: systemd +Requires: %{name} = %{version}-%{release} +%{?systemd_requires} + +%description automatic +Systemd units that can periodically download package upgrades and apply them. + + +%prep +%autosetup -p1 + +mkdir build-py3 + +%build + +pushd build-py3 +%cmake .. -DPYTHON_DESIRED:FILEPATH=%{__python3} -DDNF_VERSION=%{version} +%make_build +make doc-man +popd + +%install + +pushd build-py3 +%make_install +popd + +%find_lang %{name} +mkdir -p %{buildroot}%{confdir}/vars +mkdir -p %{buildroot}%{confdir}/aliases.d +mkdir -p %{buildroot}%{pluginconfpath}/ +mkdir -p %{buildroot}%{_sysconfdir}/%{name}/modules.d +mkdir -p %{buildroot}%{_sysconfdir}/%{name}/modules.defaults.d +mkdir -p %{buildroot}%{py3pluginpath}/__pycache__/ +mkdir -p %{buildroot}%{_localstatedir}/log/ +mkdir -p %{buildroot}%{_var}/cache/dnf/ +touch %{buildroot}%{_localstatedir}/log/%{name}.log +ln -sr %{buildroot}%{_bindir}/dnf-3 %{buildroot}%{_bindir}/dnf +mv %{buildroot}%{_bindir}/dnf-automatic-3 %{buildroot}%{_bindir}/dnf-automatic +rm -vf %{buildroot}%{_bindir}/dnf-automatic-* + +# Strict conf distribution +%if 0%{?rhel} +mv -f %{buildroot}%{confdir}/%{name}-strict.conf %{buildroot}%{confdir}/%{name}.conf +%else +rm -vf %{buildroot}%{confdir}/%{name}-strict.conf +%endif + +# YUM compat layer +ln -sr %{buildroot}%{confdir}/%{name}.conf %{buildroot}%{_sysconfdir}/yum.conf +ln -sr %{buildroot}%{_bindir}/dnf-3 %{buildroot}%{_bindir}/yum +%if "%{yum_compat_level}" == "full" +mkdir -p %{buildroot}%{_sysconfdir}/yum +ln -sr %{buildroot}%{pluginconfpath} %{buildroot}%{_sysconfdir}/yum/pluginconf.d +ln -sr %{buildroot}%{confdir}/protected.d %{buildroot}%{_sysconfdir}/yum/protected.d +ln -sr %{buildroot}%{confdir}/vars %{buildroot}%{_sysconfdir}/yum/vars +%endif + + +%check + +pushd build-py3 +ctest -VV +popd + + +%post +%systemd_post dnf-makecache.timer + +%preun +%systemd_preun dnf-makecache.timer + +%postun +%systemd_postun_with_restart dnf-makecache.timer + + +%post automatic +%systemd_post dnf-automatic.timer +%systemd_post dnf-automatic-notifyonly.timer +%systemd_post dnf-automatic-download.timer +%systemd_post dnf-automatic-install.timer + +%preun automatic +%systemd_preun dnf-automatic.timer +%systemd_preun dnf-automatic-notifyonly.timer +%systemd_preun dnf-automatic-download.timer +%systemd_preun dnf-automatic-install.timer + +%postun automatic +%systemd_postun_with_restart dnf-automatic.timer +%systemd_postun_with_restart dnf-automatic-notifyonly.timer +%systemd_postun_with_restart dnf-automatic-download.timer +%systemd_postun_with_restart dnf-automatic-install.timer + + +%files -f %{name}.lang +%{_bindir}/%{name} +%if 0%{?rhel} && 0%{?rhel} <= 7 +%{_sysconfdir}/bash_completion.d/%{name} +%else +%dir %{_datadir}/bash-completion +%dir %{_datadir}/bash-completion/completions +%{_datadir}/bash-completion/completions/%{name} +%endif +%{_mandir}/man8/%{name}.8* +%{_mandir}/man8/yum2dnf.8* +%{_mandir}/man7/dnf.modularity.7* +%{_mandir}/man5/dnf-transaction-json.5* +%{_unitdir}/%{name}-makecache.service +%{_unitdir}/%{name}-makecache.timer +%{_var}/cache/%{name}/ + +%files data +%license COPYING PACKAGE-LICENSING +%doc AUTHORS README.rst +%dir %{confdir} +%dir %{confdir}/modules.d +%dir %{confdir}/modules.defaults.d +%dir %{pluginconfpath} +%dir %{confdir}/protected.d +%dir %{confdir}/vars +%dir %{confdir}/aliases.d +%exclude %{confdir}/aliases.d/zypper.conf +%config(noreplace) %{confdir}/%{name}.conf +%config(noreplace) %{confdir}/protected.d/%{name}.conf +%config(noreplace) %{_sysconfdir}/logrotate.d/%{name} +%ghost %attr(644,-,-) %{_localstatedir}/log/hawkey.log +%ghost %attr(644,-,-) %{_localstatedir}/log/%{name}.log +%ghost %attr(644,-,-) %{_localstatedir}/log/%{name}.librepo.log +%ghost %attr(644,-,-) %{_localstatedir}/log/%{name}.rpm.log +%ghost %attr(644,-,-) %{_localstatedir}/log/%{name}.plugin.log +%ghost %attr(755,-,-) %dir %{_sharedstatedir}/%{name} +%ghost %attr(644,-,-) %{_sharedstatedir}/%{name}/groups.json +%ghost %attr(755,-,-) %dir %{_sharedstatedir}/%{name}/yumdb +%ghost %attr(755,-,-) %dir %{_sharedstatedir}/%{name}/history +%{_mandir}/man5/%{name}.conf.5* +%{_tmpfilesdir}/%{name}.conf +%{_sysconfdir}/libreport/events.d/collect_dnf.conf + +%files -n %{yum_subpackage_name} +%if "%{yum_compat_level}" == "full" +%{_bindir}/yum +%{_sysconfdir}/yum.conf +%{_sysconfdir}/yum/pluginconf.d +%{_sysconfdir}/yum/protected.d +%{_sysconfdir}/yum/vars +%{_mandir}/man8/yum.8* +%{_mandir}/man5/yum.conf.5.* +%{_mandir}/man8/yum-shell.8* +%{_mandir}/man1/yum-aliases.1* +%config(noreplace) %{confdir}/protected.d/yum.conf +%else +%exclude %{_sysconfdir}/yum.conf +%exclude %{_sysconfdir}/yum/pluginconf.d +%exclude %{_sysconfdir}/yum/protected.d +%exclude %{_sysconfdir}/yum/vars +%exclude %{confdir}/protected.d/yum.conf +%exclude %{_mandir}/man5/yum.conf.5.* +%exclude %{_mandir}/man8/yum-shell.8* +%exclude %{_mandir}/man1/yum-aliases.1* +%endif + +%if "%{yum_compat_level}" == "minimal" +%{_bindir}/yum +%{_mandir}/man8/yum.8* +%endif + +%if "%{yum_compat_level}" == "preview" +%{_bindir}/yum4 +%{_mandir}/man8/yum4.8* +%exclude %{_mandir}/man8/yum.8* +%endif + +%files -n python3-%{name} +%{_bindir}/%{name}-3 +%exclude %{python3_sitelib}/%{name}/automatic +%{python3_sitelib}/%{name}/ +%dir %{py3pluginpath} +%dir %{py3pluginpath}/__pycache__ + +%files automatic +%{_bindir}/%{name}-automatic +%config(noreplace) %{confdir}/automatic.conf +%{_mandir}/man8/%{name}-automatic.8* +%{_unitdir}/%{name}-automatic.service +%{_unitdir}/%{name}-automatic.timer +%{_unitdir}/%{name}-automatic-notifyonly.service +%{_unitdir}/%{name}-automatic-notifyonly.timer +%{_unitdir}/%{name}-automatic-download.service +%{_unitdir}/%{name}-automatic-download.timer +%{_unitdir}/%{name}-automatic-install.service +%{_unitdir}/%{name}-automatic-install.timer +%{python3_sitelib}/%{name}/automatic/ + +%changelog +* Mon Mar 21 2022 Marek Blaha - 4.10.0-5 +- Update translations + +* Mon Feb 07 2022 Pavla Kratochvilova - 4.10.0-4 +- Use rpm.TransactionSet.dbCookie() to determining if rpmdb has changed (RhBug:2043476) + +* Mon Jan 24 2022 Pavla Kratochvilova - 4.10.0-3 +- Don't recommend python3-unbound (RhBug:1947925) +- Recommend rpm-plugin-systemd-inhibit only if systemd (RhBug:1947924) +- Don't recommend %{_bindir}/sqlite3 for bash-completion (RhBug:1947924) + +* Tue Dec 07 2021 Pavla Kratochvilova - 4.10.0-2 +- Respect cacheonly in python dnf API (RhBug:2026849) +- [doc] Improve description of multilib_policy=all (RhBug:1996681,1995630) + +* Mon Oct 25 2021 Pavla Kratochvilova - 4.10.0-1 +- Update to 4.10.0 +- Do not assume that a remote rpm is complete if present +- Use positive percentage for "Failed delta RPMs" message +- Remove redundant new line in Groups output +- Format empty group names outputs to +- [doc] Document default colors +- Use rpmkeys alone to verify signature +- Add dnf.error message to explain rpm.error traceback when package not found after resolving a transaction (RhBug:1815327,1887293,1909845) +- [API] Add method "set_or_append_opt_value" to BaseConfig (RhBug:1967925) +- Add aliases for commands: info, updateinfo, provides (RhBug:1938333) +- Add report about demodularized rpms into module info (RhBug:1805260) +- Remove DNSSEC errors on COPR group email keys +- Add support for autodetecting packages to be excluded from being installed as weak dependencies (RhBug:1699672) +- Add support for excluding packages to be installed as weak dependencies (RhBug:1699672) +- Add fail_fast parameter to download_payloads methods for use in reposync +- Acquire all relevant locks during "dnf clean" +- API: Raise CompsError when group/env not found in install_group and install_environment (RhBug:1947958) + +* Mon Aug 09 2021 Mohan Boddu - 4.7.0-2 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Wed Jun 02 2021 Pavla Kratochvilova - 4.7.0-1 +- Update to 4.7.0 +- Improve repo config path ordering to fix a comps merging issue (RhBug:1928181) +- Keep reason when package is removed (RhBug:1921063) +- Improve mechanism for application of security filters (RhBug:1918475) +- [doc] Add description for new API +- [API] Add new method for reset of security filters +- [doc] Improve documentation for Hotfix repositories +- [doc] fix: "makecache" command downloads only enabled repositories +- Use libdnf.utils.checksum_{check,value} +- [doc] Add info that maximum parallel downloads is 20 +- Increase loglevel in case of invalid config options +- [doc] installonly_limit documentation follows behavior +- Prevent traceback (catch ValueError) if pkg is from cmdline +- Add documentation for config option sslverifystatus (RhBug:1814383) +- Check for specific key string when verifing signatures (RhBug:1915990) +- Use rpmkeys binary to verify package signature (RhBug:1915990) +- Bugs fixed (RhBug:1916783) +- Preserve file mode during log rotation (RhBug:1910084) + +* Thu Apr 15 2021 Mohan Boddu - 4.6.1-2 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Tue Mar 02 2021 Nicola Sella - 4.6.1-1 +- Update to 4.6.1 +- Fix recreate script +- Add unit test for fill_sack_from_repos_in_cache (RhBug:1865803) +- Add docs and examples for fill_sack_from_repos_in_cache (RhBug:1865803) +- [spec] remove python2 support +- Remove problematic language +- The noroot plugin no longer exists, remove mention +- Run tests for fill_sack_from_repos_in_cache in installroot (RhBug:1865803) +- expand history to full term size when output is redirected (RhBug:1852577) (RhBug:1852577,1906970) +- [doc] Fix: "sslcacert" contains path to the file +- [doc] Added proxy ssl configuration options, increase libdnf require +- Set persistdir and substitutions for fill_sack_from_repos_in_cache tests (RhBug:1865803) +- Update documentation for module_obsoletes and module_stream_switch +- print additional information when verifying GPG key using DNS +- Bugs fixed (RhBug:1897573) +- Remove hardcoded logfile permissions (RhBug:1910084) +- Enhanced detection of plugins removed in transaction (RhBug:1929163) + +* Thu Jan 28 2021 Nicola Sella - 4.6.0-1 +- Update to 4.6.0 +- Log scriptlets output also for API users (RhBug:1847340) +- Fix module remove --all when no match spec (RhBug:1904490) +- yum.misc.decompress() to handle uncompressed files (RhBug:1895059) +- Make an error message more informative (RhBug:1814831) +- Add deprecation notice to help messages of deplist +- Remove Base._history_undo_operations() as it was replaced with transaction_sr code +- cli/output: Return number of listed packages from listPkgs() +- Clean up history command error handling +- [doc] Describe install with just a name and obsoletes (RhBug:1902279) +- Add api function fill_sack_from_repos_in_cache to allow loading a repo cache with repomd and (solv file or primary xml) only (RhBug:1865803) +- Packages installed/removed via DNF API are logged into dnf.log (RhBug:1855158) +- Support comps groups in history redo (RhBug:1657123,1809565,1809639) +- Support comps groups in history rollback (RhBug:1657123,1809565,1809639) +- Support comps groups in history undo (RhBug:1657123,1809565,1809639) +- New optional parameter for filter_modules enables following modular obsoletes based on a config option module_obsoletes +- Add get_header() method to the Package class (RhBug:1876606) +- Fix documentation of globs not supporting curly brackets (RhBug:1913418) + +* Tue Jan 26 2021 Fedora Release Engineering - 4.5.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Dec 03 2020 Nicola Sella - 4.5.2-1 +- Update to 4.5.2 +- Change behaviour of Package().from_repo + +* Wed Dec 02 2020 Nicola Sella - 4.5.1-1 +- Add a get_current() method to SwdbInterface +- Add `from_repo` attribute for Package class (RhBug:1898968,1879168) +- Correct description of Package().reponane attribute +- Add unittest for new API +- Make rotated log file (mode, owner, group) match previous log settings (RhBug:1894344) +- [doc] Improve description of modular filtering +- [doc] add documentation for from_repo +- [doc] deprecated alias for dnf repoquery --deplist +- New config option module_allow_stream_switch allows switching enabled streams + +* Mon Nov 23 2020 Nicola Sella - 4.4.2-1 +- Update to 4.4.2 +- spec: Fix building with new cmake macros (backport from downstream) +- Warn about key retrieval over http: +- Fix --setopt=cachedir writing outside of installroot +- Add vendor to dnf API (RhBug:1876561) +- Add allow_vendor_change option (RhBug:1788371) (RhBug:1788371) + +* Thu Oct 29 2020 Adam Williamson - 4.4.0-3 +- Rebuild to keep NVR ahead of Fedora 32 + +* Tue Oct 13 2020 Ales Matej - 4.4.0-2 +- Increase required libdnf (hawkey) version + +* Wed Oct 07 2020 Nicola Sella - 4.4.0-1 +- Update to 4.4.0 +- Handle empty comps group name (RhBug:1826198) +- Remove dead history info code (RhBug:1845800) +- Improve command emmitter in dnf-automatic +- Enhance --querytags and --qf help output +- [history] add option --reverse to history list (RhBug:1846692) +- Add logfilelevel configuration (RhBug:1802074) +- Don't turn off stdout/stderr logging longer than necessary (RhBug:1843280) +- Mention the date/time that updates were applied +- [dnf-automatic] Wait for internet connection (RhBug:1816308) +- [doc] Enhance repo variables documentation (RhBug:1848161,1848615) +- Add librepo logger for handling messages from librepo (RhBug:1816573) +- [doc] Add package-name-spec to the list of possible specs +- [doc] Do not use +- [doc] Add section to explain -n, -na and -nevra suffixes +- Add alias 'ls' for list command +- README: Reference Fedora Weblate instead of Zanata +- remove log_lock.pid after reboot(Rhbug:1863006) +- comps: Raise CompsError when removing a non-existent group +- Add methods for working with comps to RPMTransactionItemWrapper +- Implement storing and replaying a transaction +- Log failure to access last makecache time as warning +- [doc] Document Substitutions class +- Dont document removed attribute ``reports`` for get_best_selector +- Change the debug log timestamps from UTC to local time + +* Mon Jul 27 2020 Fedora Release Engineering - 4.2.23-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jun 02 2020 Nicola Sella - 4.2.23-1 +- Fix behavior of install-n, autoremove-n, remove-n, repoquery-n +- Fix behavior of localinstall and list-updateinfo aliases +- Add updated field to verbose output of updateinfo list (RhBug: 1801092) +- Add comment option to transaction (RhBug:1773679) +- Add new API for handling gpg signatures (RhBug:1339617) +- Verify GPG signatures when running dnf-automatic (RhBug:1793298) +- Fix up Conflicts: on python-dnf-plugins-extras +- [doc] Move yum-plugin-post-transaction-actions to dnf-plugins-core +- Remove args "--set-enabled", "--set-disabled" from DNF (RhBug:1727882) +- Search command is now alphabetical (RhBug:1811802) +- Fix downloading packages with full URL as their location +- repo: catch libdnf.error.Error in addition to RuntimeError in load() (RhBug:1788182) +- History table to max size when redirect to file (RhBug:1786335,1786316) + +* Sat May 23 2020 Miro Hrončok - 4.2.21-2 +- Rebuilt for Python 3.9 + +* Wed Apr 01 2020 Aleš Matěj - 4.2.21-1 +- Update to 4.2.21 +- Fix completion helper if solv files not in roon cache (RhBug:1714376) +- Add bash completion for 'dnf module' (RhBug:1565614) +- Check command no longer reports missing %pre and %post deps (RhBug:1543449) +- Check if arguments can be encoded in 'utf-8' +- [doc] Remove incorrect information about includepkgs (RhBug:1813460) +- Fix crash with "dnf -d 6 repolist" (RhBug:1812682) +- Do not print the first empty line for repoinfo +- Redirect logger and repo download progress when --verbose +- Respect repo priority when listing packages (RhBug:1800342) +- [doc] Document that list and info commands respect repo priority +- [repoquery] Do not protect running kernel for --unsafisfied (RhBug:1750745) +- Remove misleading green color from the "broken dependencies" lines (RhBug:1814192) +- [doc] Document color options + +* Mon Feb 24 2020 Aleš Matěj - 4.2.19-1 +- List arguments: only first empty value is used (RhBug:1788154) +- Report missing profiles or default as broken module (RhBug:1790967) +- repoquery: fix rich deps matching by using provide expansion from libdnf (RhBug:1534123) +- [documentation] repoquery --what* with multiple arguments (RhBug:1790262) +- Format history table to use actual terminal width (RhBug:1786316) +- Update `dnf alias` documentation +- Handle custom exceptions from libdnf +- Fix _skipped_packages to return only skipped (RhBug:1774617) +- Add setter for tsi.reason +- Add new hook for commands: Run_resolved +- Add doc entry: include url (RhBug 1786072) +- Clean also .yaml repository metadata +- New API function base.setup_loggers() (RhBug:1788212) +- Use WantedBy=timers.target for all dnf timers (RhBug:1798475) + +* Tue Jan 28 2020 Fedora Release Engineering - 4.2.18-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jan 15 2020 Aleš Matěj - 4.2.18-1 +- [doc] Remove note about user-agent whitelist +- Do a substitution of variables in repo_id (RhBug:1748841) +- Respect order of config files in aliases.d (RhBug:1680489) +- Unify downgrade exit codes with upgrade (RhBug:1759847) +- Improve help for 'dnf module' command (RhBug:1758447) +- Add shell restriction for local packages (RhBug:1773483) +- Fix detection of the latest module (RhBug:1781769) +- Document the retries config option only works for packages (RhBug:1783041) +- Sort packages in transaction output by nevra (RhBug:1773436) +- Honor repo priority with check-update (RhBug:1769466) +- Strip '\' from aliases when processing (RhBug:1680482) +- Print the whole alias definition in case of infinite recursion (RhBug:1680488) +- Add support of commandline packages by repoquery (RhBug:1784148) +- Running with tsflags=test doesn't update log files +- Restore functionality of remove --oldinstallonly +- Allow disabling individual aliases config files (RhBug:1680566) + +* Fri Nov 29 2019 Ales Matej - 4.2.17-1 +- Enable versionlock for check-update command (RhBug:1750620) +- Add error message when no active modules matched (RhBug:1696204) +- Log mirror failures as warning when repo load fails (RhBug:1713627) +- dnf-automatic: Change all systemd timers to a fixed time of day (RhBug:1754609) +- DNF can use config from the remote location (RhBug:1721091) +- [doc] update reference to plugin documentation (RhBug:1706386) +- [yum compatibility] Report all packages in repoinfo +- [doc] Add definition of active/inactive module stream +- repoquery: Add a switch to disable modular excludes +- Report more informative messages when no match for argument (RhBug:1709563) +- [doc] Add description of excludes in dnf +- Report more descriptive message when removed package is excluded +- Add module repoquery command +- Fix assumptions about ARMv8 and the way the rpm features work (RhBug:1691430) +- Add Requires information into module info commands +- Enhance inheritance of transaction reasons (RhBug:1672618,1769788) +- Make DNF compatible with FIPS mode (RhBug:1762032) +- Return always alphabetically sorted modular profiles + +* Tue Nov 12 2019 Ales Matej - 4.2.15-2 +- Revert: Fix messages for starting and failing scriptlets (RhBug:1724779) +- Fix traceback when trying to install package with fileconflict + +* Wed Nov 06 2019 Pavla Kratochvilova - 4.2.15-1 +- Update to 4.2.15 +- Fix downloading local packages into destdir (RhBug:1727137) +- Report skipped packages with identical nevra only once (RhBug:1643109) +- Restore functionality of dnf remove --duplicates (RhBug:1674296) +- Improve API documentation +- Document NEVRA parsing in the man page +- Do not wrap output when no terminal (RhBug:1577889) +- Allow to ship alternative dnf.conf (RhBug:1752249) +- Don't check if repo is expired if it doesn't have loaded metadata (RhBug:1745170) +- Remove duplicate entries from "dnf search" output (RhBug:1742926) +- Set default value of repo name attribute to repo id (RhBug:1669711) +- Allow searching in disabled modules using "dnf module provides" (RhBug:1629667) +- Group install takes obsoletes into account (RhBug:1761137) +- Improve handling of vars +- Do not load metadata for repolist commands (RhBug:1697472,1713055,1728894) +- Fix messages for starting and failing scriptlets (RhBug:1724779) +- Don't show older install-only pkgs updates in updateinfo (RhBug:1649383,1728004) +- Add --ids option to the group command (RhBug:1706382) +- Add --with_cve and --with_bz options to the updateinfo command (RhBug:1750528) + +* Tue Oct 01 2019 Ales Matej - 4.2.11-2 +- Fix required hawkey_version + +* Tue Oct 01 2019 Ales Matej - 4.2.11-1 +- Improve modularity documentation (RhBug:1730162,1730162,1730807,1734081) +- Fix detection whether system is running on battery (used by metadata caching timer) (RhBug:1498680) +- New repoquery queryformat: %{reason} +- Print rpm errors during test transaction (RhBug:1730348) +- Fix: --setopt and repo with dots +- Fix incorrectly marked profile and stream after failed rpm transaction check (RhBug:1719679) +- Show transaction errors inside dnf shell (RhBug:1743644) +- Don't reinstall modified packages with the same NEVRA (RhBug:1644241) +- dnf-automatic now respects versionlock excludes (RhBug:1746562) +- Fully enable the modular fail safe mechanism (RhBug:1616167) + +* Tue Sep 10 2019 Jaroslav Mracek - 4.2.9-3 +- Backport patch to fix reinstalling packages with a different buildtime + +* Fri Aug 16 2019 Miro Hrončok - 4.2.9-2 +- Rebuilt for Python 3.8 + +* Tue Aug 13 2019 Pavla Kratochvilova - 4.2.9-1 +- Update to 4.2.9 +- Accept multiple specs in repoquery options (RhBug:1667898) +- Prevent switching modules in all cases (RhBug:1706215) +- [history] Don't store failed transactions as succeeded +- [history] Do not require root for informative commands +- [dnssec] Fix UnicodeWarning when using new rpm (RhBug:1699650) +- Print rpm error messages during transaction (RhBug:1677199) +- Report missing default profile as an error (RhBug:1669527) +- Apply excludes before modular excludes (RhBug:1709453) +- Improve help for command line arguments (RhBug:1659328) +- [doc] Describe a behavior when plugin is removed (RhBug:1700741) +- Add new modular API method ModuleBase.get_modules +- Mark features used by ansible, anaconda and subscription-manager as an API +- Prevent printing empty Error Summary (RhBug: 1690414) +- [doc] Add user_agent and countme options + +* Mon Aug 12 2019 Igor Gnatenko - 4.2.7-4 +- Drop %%systemd_requires from main package + +* Wed Jul 24 2019 Fedora Release Engineering - 4.2.7-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Jul 22 2019 Pavla Kratochvilova - 4.2.7-2 +- Revert patch: [rpm] add detection for armv7hcnl + +* Thu Jul 04 2019 Pavla Kratochvilova - 4.2.7-1 +- Update to 4.2.7 +- librepo: Turn on debug logging only if debuglevel is greater than 2 + (RhBug:1355764,1580022) +- Fix issues with terminal hangs when attempting bash completion + (RhBug:1702854) +- Rename man page from dnf.automatic to dnf-automatic to match command name +- [provides] Enhanced detecting of file provides (RhBug:1702621) +- [provides] Sort the output packages alphabetically +- Set default to skip_if_unavailable=false (RhBug:1679509) +- Fix package reinstalls during yum module remove (RhBug:1700529) +- Fail when "-c" option is given nonexistent file (RhBug:1512457) +- Reuse empty lock file instead of stopping dnf (RhBug:1581824) +- Propagate comps 'default' value correctly (RhBug:1674562) +- Better search of provides in /(s)bin/ (RhBug:1657993) +- Add detection for armv7hcnl (RhBug:1691430) +- Fix group install/upgrade when group is not available (RhBug:1707624) +- Report not matching plugins when using --enableplugin/--disableplugin + (RhBug:1673289) (RhBug:1467304) +- Add support of modular FailSafe (RhBug:1623128) (temporarily with warnings + instead of errors when installing modular RPMs without modular metadata) +- Replace logrotate with build-in log rotation for dnf.log and dnf.rpm.log + (RhBug:1702690) + +* Thu Jun 27 2019 Pavla Kratochvilova - 4.2.5-2 +- Backport patches to enhance synchronization of rpm transaction to swdb + +* Thu Apr 25 2019 Pavla Kratochvilova - 4.2.5-1 +- Update to 4.2.5 +- Fix multilib obsoletes (RhBug:1672947) +- Do not remove group package if other packages depend on it +- Remove duplicates from "dnf list" and "dnf info" outputs +- Installroot now requires absolute path +- Allow globs in setopt in repoid part +- Fix formatting of message about free space required +- [doc] Add info of relation update_cache with fill_sack (RhBug:1658694) +- Fix installation failiure when duplicit RPMs are specified (RhBug:1687286) +- Add command abbreviations (RhBug:1634232) +- Allow plugins to terminate dnf (RhBug:1701807) + +* Thu Apr 04 15:15:12 CET 2019 Robert-André Mauchin - 4.2.2-2 +- Add patch fixing the installation of completion_helper.py +- Fix #1695853 + +* Wed Mar 27 2019 Pavla Kratochvilova - 4.2.2-1 +- [conf] Use environment variables prefixed with DNF_VAR_ +- Enhance documentation of --whatdepends option (RhBug:1687070) +- Allow adjustment of repo from --repofrompath (RhBug:1689591) +- Document cachedir option (RhBug:1691365) +- Retain order of headers in search results (RhBug:1613860) +- Solve traceback with the "dnf install @module" (RhBug:1688823) +- Build "yum" instead of "dnf-yum" on Fedora 31 + +* Mon Mar 11 2019 Pavla Kratochvilova - 4.2.1-1 +- Do not allow direct module switch (RhBug:1669491) +- Use improved config parser that preserves order of data +- Fix alias list command (RhBug:1666325) +- Postpone yum conflict to F31 +- Update documentation: implemented plugins; options; deprecated commands (RhBug:1670835,1673278) +- Support zchunk (".zck") compression +- Fix behavior of ``--bz`` option when specifying more values +- Follow RPM security policy for package verification +- Update modules regardless of installed profiles +- Add protection of yum package (RhBug:1639363) +- Fix ``list --showduplicates`` (RhBug:1655605) + +* Wed Feb 13 2019 Pavla Kratochvilova - 4.1.0-1 +- Update to 4.1.0 +- Allow to enable modules that break default modules (RhBug:1648839) +- Enhance documentation - API examples +- Add --nobest option +- Revert commit that adds best as default behavior + +* Thu Jan 31 2019 Fedora Release Engineering - 4.0.10-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Dec 12 2018 Jaroslav Mracek - 4.0.10-1 +- Update to 4.0.10 +- Updated difference YUM vs. DNF for yum-updateonboot +- Added new command ``dnf alias [options] [list|add|delete] [...]`` to allow the user to + define and manage a list of aliases +- Enhanced documentation +- Unifying return codes for remove operations +- [transaction] Make transaction content available for commands +- Triggering transaction hooks if no transaction (RhBug:1650157) +- Add hotfix packages to install pool (RhBug:1654738) +- Report group operation in transaction table +- [sack] Change algorithm to calculate rpmdb_version + +* Thu Nov 22 2018 Jaroslav Mracek - 4.0.9-1 +- Added dnf.repo.Repo.get_http_headers +- Added dnf.repo.Repo.set_http_headers +- Added dnf.repo.Repo.add_metadata_type_to_download +- Added dnf.repo.Repo.get_metadata_path +- Added dnf.repo.Repo.get_metadata_content +- Added --changelogs option for check-update command +- [module] Add information about active modules +- Hide messages created only for logging +- Enhanced --setopt option +- [module] Fix dnf remove @ +- [transaction] Make transaction content available for plugins + +* Wed Nov 07 2018 Jaroslav Mracek - 4.0.4-2 +- Backport fixes for RHBZ#1642796 from upstream master + +* Mon Oct 15 2018 Jaroslav Mracek - 4.0.4-1 +- Update to 4.0.4 +- Add dnssec extension +- Set termforce to AUTO to automatically detect if stdout is terminal +- Repoquery command accepts --changelogs option (RhBug:1483458) +- Calculate sack version from all installed packages (RhBug:1624291) +- [module] Allow to enable module dependencies (RhBug:1622566) + +* Tue Oct 09 2018 Adam Williamson - 3.6.1-3 +- Backport fixes for RHBZ#1616118 from upstream master + +* Sat Sep 29 2018 Kevin Fenzi - 3.6.1-2 +- Temp re-add python2 package to get rawhide composes working again. + +* Tue Sep 25 2018 Jaroslav Mracek - 3.6.1-1 +- [module] Improved module commands list, info +- [module] Reports error from module solver +- Fix: Error detected when calling 'RepoCB.fastestMirror' (RhBug:1628056) +- Preserve packages from other installed mod profiles (RhBug:1629841) +- [spec] Postpone conflict with yum to Fedora 30+ (RhBug:1600444) +- [cli] Install command recommends alternative packages (RhBug:1625586) +- [cli] Fix case insensitive hint (1628514) +- Fix installed profiles for module info (RhBug:1629689) +- Fix module provides not having consistent output (RhBug:1623866) +- Enhance label for transaction table (RhBug:1609919) +- Implement C_, the gettext function with a context (RhBug:1305340) +- Actually disambiguate some messages using C_ (RhBug:1305340) +- Restore 'strict' choice for group installs (#1461539) +- [repoquery] More strict queryformat parsing (RhBug:1631458) +- Redirect repo progress to std error (RhBug:1626011) +- Unify behavior of remove and module remove (RhBug:1629848) +- Change behavior of disabled module for module install (RhBug:1629711) +- Allow enablement on disabled plugin (RhBug:1614539) + +* Thu Sep 20 2018 Adam Williamson - 3.5.1-2 +- Backport PR #1038 to make compose fail on missing group packages again + +* Mon Sep 10 2018 Jaroslav Mracek - 3.5.1-1 +- [module] Fixed list and info subcommands + +* Fri Sep 07 2018 Jaroslav Mracek - 3.5.0-1 +- New implementation of modularity + +* Mon Aug 13 2018 Daniel Mach - 3.3.0-1 +- [misc] Fallback to os.getuid() if /proc/self/loginuid can't be read (RhBug:1597005) +- [translations] Update translations from zanata. +- [doc] Update module documentation. +- [module] Fix `module provides` output. +- [module] Add `module reset` command. +- [module] Fix module disable command +- [repo] Improve error message on broken repo (RhBug:1595796) +- [doc] Enhance a command documentation (RhBug:1361617) +- [module] Automatically save module persistor in do_transaction(). +- [drpm] Fixed setting deltarpm_percentage=0 to switch drpm off +- [repo] Split base.download_packages into two functions +- [output] Use libdnf wrapper for smartcols +- [conf] Do not traceback on empty option (RhBug:1613577) + +* Wed Aug 08 2018 Adam Williamson - 3.2.0-2 +- Fix a crash that breaks Rawhide composes (RhBug:1613577) + +* Tue Aug 07 2018 Daniel Mach - 3.2.0-1 +- [sack] Use module_platform_id option. +- [module] Switch module persistor to libdnf implementation. +- [module] Auto-enable module streams based on installed RPMs. +- [transaction] Fix: show packages from the current transaction. +- [conf] Convert any VectorString type to list. +- [module] Replace 'enabled' config option with 'state'. +- [install_specs] Do not exclude groups' packages +- [module] Use module sack filtering from libdnf +- [module] Many UX fixes. + +* Fri Jul 27 2018 Daniel Mach - 3.1.0-1 +- [module] Move 'hotfixes' conf option to libdnf and rename it to 'module_hotfixes'. +- [goal] Exclude @System repo packages from distro_sync. +- [conf] Setup configuration values using C++ bindings. +- [module] Drop module lock command. +- [crypto] Use handle from repo in dnf.crypto.retrieve(). +- [module] Assume a 'default' profile exists for all modules (RhBug:1568165) +- [base] Introduce easy installation of package, group and module specs. + +* Sun Jul 22 2018 Daniel Mach - 3.0.4-1 +- [transaction] Fix 'TransactionItem not found for key' error. +- [module] Allow removing module profile without specifying a stream. +- [module] Fix 'BaseCli' object has no attribute '_yumdb' error. +- [callback] Fix TransactionDisplay.PKG_ERASE redirect to a non-existing constant. +- [spec] Change yum compat package version to 4.0.version. +- [cache] Clean transaction temp files after successfull transaction +- [log] Log messages from libdnf logger +- [transaction] Add states to report rpm transaction progress +- [transaction] Cache TransactionItem during handling of RPM callback (RhBug:1599597) +- [systemd] dnf-makecache.timer: move to multi-user to fix loop + +* Mon Jul 16 2018 Adam Williamson - 3.0.3-4 +- Backport fix for dnf-makecache.timer loop from git +- Resolves: rhbz#1600823 + +* Thu Jul 12 2018 Fedora Release Engineering - 3.0.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Jul 12 2018 Martin Hatina - 3.0.3-2 +- Ensure that correct python version is used for build + +* Thu Jul 12 2018 Martin Hatina - 3.0.3-1 +- Bug fix release + +* Fri Jun 29 2018 Jaroslav Mracek - 3.0.2-1 +- Update to 3.0.2-1 + +* Tue Jun 26 2018 Jaroslav Mracek - 3.0.1-1 +- Update to 3.0.1-1 +- Support of MODULES - new DNF command `module` +- Add attribute dnf.conf.Conf.proxy_auth_method +- New repoquery option `--depends` and `--whatdepends` +- Enhanced support of variables +- Enhanced documentation +- Resolves: rhbz#1565599 +- Resolves: rhbz#1508839 +- Resolves: rhbz#1506486 +- Resolves: rhbz#1506475 +- Resolves: rhbz#1505577 +- Resolves: rhbz#1505574 +- Resolves: rhbz#1505573 +- Resolves: rhbz#1480481 +- Resolves: rhbz#1496732 +- Resolves: rhbz#1497272 +- Resolves: rhbz#1488100 +- Resolves: rhbz#1488086 +- Resolves: rhbz#1488112 +- Resolves: rhbz#1488105 +- Resolves: rhbz#1488089 +- Resolves: rhbz#1488092 +- Resolves: rhbz#1486839 +- Resolves: rhbz#1486839 +- Resolves: rhbz#1486827 +- Resolves: rhbz#1486816 +- Resolves: rhbz#1565647 +- Resolves: rhbz#1583834 +- Resolves: rhbz#1576921 +- Resolves: rhbz#1270295 +- Resolves: rhbz#1361698 +- Resolves: rhbz#1369847 +- Resolves: rhbz#1368651 +- Resolves: rhbz#1563841 +- Resolves: rhbz#1387622 +- Resolves: rhbz#1575998 +- Resolves: rhbz#1577854 +- Resolves: rhbz#1387622 +- Resolves: rhbz#1542416 +- Resolves: rhbz#1542416 +- Resolves: rhbz#1496153 +- Resolves: rhbz#1568366 +- Resolves: rhbz#1539803 +- Resolves: rhbz#1552576 +- Resolves: rhbz#1545075 +- Resolves: rhbz#1544359 +- Resolves: rhbz#1547672 +- Resolves: rhbz#1537957 +- Resolves: rhbz#1542920 +- Resolves: rhbz#1507129 +- Resolves: rhbz#1512956 +- Resolves: rhbz#1512663 +- Resolves: rhbz#1247083 +- Resolves: rhbz#1247083 +- Resolves: rhbz#1247083 +- Resolves: rhbz#1519325 +- Resolves: rhbz#1492036 +- Resolves: rhbz#1391911 +- Resolves: rhbz#1391911 +- Resolves: rhbz#1479330 +- Resolves: rhbz#1505185 +- Resolves: rhbz#1305232 + +* Sat Jun 16 2018 Miro Hrončok - 2.7.5-18 +- Rebuilt for Python 3.7 + +* Wed Jun 06 2018 Marek Blaha - 2.7.5-17 +- Demote deltarpm to weak dependencies again + +* Tue May 29 2018 Martin Hatina - 2.7.5-16 +- Apply util-Correctly-source-errno.EEXIST patch + +* Mon May 28 2018 Martin Hatina - 2.7.5-15 +- Do not require libdnf + +* Fri May 25 2018 Martin Hatina - 2.7.5-14 +- Fix patch applying. + +* Fri May 25 2018 Martin Hatina - 2.7.5-13 +- Rebase to dnf from dnf-2-modularity-6 release. + +* Wed Apr 18 2018 Daniel Mach - 2.7.5-12 +- Fix defaults loading. + +* Tue Apr 17 2018 Martin Hatina - 2.7.5-11 +- Rebase to dnf from dnf-2-modularity-4 release. + +* Mon Mar 26 2018 Martin Hatina - 2.7.5-10 +- Require libmodulemd. + +* Mon Mar 26 2018 Martin Hatina - 2.7.5-9 +- Rebase to dnf from dnf-2-modularity-3 release. + +* Mon Feb 12 2018 Daniel Mach - 2.7.5-8 +- Rebase to dnf from dnf-2-modularity branch. + +* Thu Feb 08 2018 Igor Gnatenko - 2.7.5-7 +- Demote deltarpm to weak dependencies + +* Wed Feb 07 2018 Fedora Release Engineering - 2.7.5-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Jan 03 2018 Igor Gnatenko - 2.7.5-5 +- Use %%systemd_requires +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Wed Nov 29 2017 Jaroslav Mracek - 2.7.5-4 +- Fix problem with demands.cacheonly that caused problems for system-upgrade + +* Tue Nov 07 2017 Igor Gnatenko - 2.7.5-3 +- Remove platform-python subpackage + +* Fri Oct 27 2017 Igor Gnatenko - 2.7.5-2 +- Enable usage of rich deps for NM integration + +* Wed Oct 18 2017 Igor Gnatenko - 2.7.5-1 +- Improve performance for excludes and includes handling (RHBZ #1500361) +- Fixed problem of handling checksums for local repositories (RHBZ #1502106) +- Fix traceback when using dnf.Base.close() (RHBZ #1503575) + +* Mon Oct 16 2017 Jaroslav Mracek - 2.7.4-1 +- Update to 2.7.4-1 +- Enhanced performance for excludes and includes handling +- Solved memory leaks at time of closing of dnf.Base() +- Resolves: rhbz#1480979 - I thought it abnormal that dnf crashed. +- Resolves: rhbz#1461423 - Memory leak in python-dnf +- Resolves: rhbz#1499564 - dnf list installed crashes +- Resolves: rhbz#1499534 - dnf-2 is much slower than dnf-1 when handling groups +- Resolves: rhbz#1499623 - Mishandling stderr vs stdout (dnf search, dnf repoquery) + +* Fri Oct 06 2017 Igor Gnatenko - 2.7.3-1 +- Fix URL detection (RHBZ #1472847) +- Do not remove downloaded files with --destdir option (RHBZ #1498426) +- Fix handling of conditional packages in comps (RHBZ #1427144) + +* Mon Oct 02 2017 Jaroslav Mracek - 2.7.2-1 +- Update to 2.7.2-1 +- Added new option ``--comment=`` that adds a comment to transaction in history +- :meth:`dnf.Base.pre_configure_plugin` configure plugins by running their pre_configure() method +- Added pre_configure() methotd for plugins and commands to configure dnf before repos are loaded +- Resolves: rhbz#1421478 - dnf repository-packages: error: unrecognized arguments: -x rust-rpm-macros +- Resolves: rhbz#1491560 - 'dnf check' reports spurious "has missing requires of" errors +- Resolves: rhbz#1465292 - DNF remove protected duplicate package +- Resolves: rhbz#1279001 - [RFE] Missing dnf --downloaddir option +- Resolves: rhbz#1212341 - [RFE] Allow plugins to override the core configuration +- Resolves: rhbz#1299482 - mock --init fails with message "Failed calculating RPMDB checksum" +- Resolves: rhbz#1488398 - dnf upstream tests failures on f26 +- Resolves: rhbz#1192811 - dnf whatprovides should show which provides matched a pattern +- Resolves: rhbz#1288845 - "dnf provides" wildcard matching is unreliable (not all packages with matches listed) +- Resolves: rhbz#1473933 - [abrt] dnf-automatic: resolved(): rpm_conf.py:58:resolved:AttributeError: 'Rpmconf' object has no attribute '_interactive' +- Resolves: rhbz#1237349 - dnf autoremove not removing what dnf list extras shows +- Resolves: rhbz#1470050 - the 'priority=' option in /etc/yum.repos.d/*.repo is not respected +- Resolves: rhbz#1347927 - dnf --cacheonly downloads packages +- Resolves: rhbz#1478115 - [abrt] dnf: _hcmd_undo(): __init__.py:888:_hcmd_undo:IndexError: list index out of range +- Resolves: rhbz#1461171 - RFE: support --advisory= with install +- Resolves: rhbz#1448874 - "dnf needs-restarting" vanished from bash completion +- Resolves: rhbz#1495116 - Dnf version fails with traceback in container + +* Mon Aug 07 2017 Jaroslav Mracek 2.6.3-1 +- Fix problem with dnf.Package().remote_location() (RhBug:1476215) (Jaroslav + Mracek) +- Change behavior of -C according to documentation (RhBug:1473964) (Jaroslav + Mracek) +- It should prevent to ask attribute of None (RhBug:1359482) (Jaroslav Mracek) +- Solve a problems with --arch options (RhBug:1476834) (Jaroslav Mracek) +- Use security plugin code for dnf-automatic (Jaroslav Mracek) +- Fix unicode error for python2 (Jaroslav Mracek) +- Inform about packages installed for group (Jaroslav Mracek) +- Provide info if pkg is removed due to dependency (RhBug:1244755) (Jaroslav + Mracek) +- Unify format of %%{_mandir} paths in dnf.spec (Jaroslav Mracek) +- Remove test_yumlayer.py as unneeded test (Jaroslav Mracek) +- Provide yum4 package for rhel7 build (Jaroslav Mracek) +- Make yum compatible layer very minimal (RhBug:1476748) (Jaroslav Mracek) +- Remove metadata_expire from yum compatible layer (Jaroslav Mracek) +- Remove keepcache from yum compatibility layer (Jaroslav Mracek) +- Remove options from yum conf (Jaroslav Mracek) +- Remove unused functionality from yum compatible layer (Jaroslav Mracek) +- Add deplist command for dnf (Jaroslav Mracek) +- Fix problems with --downloaddir options (RhBug:1476464) (Jaroslav Mracek) +- Move description of --forcearch into proper place (Jaroslav Mracek) +- Provide description of --downloaddir option (Jaroslav Mracek) +- Fix if in spec file (Jaroslav Mracek) +- Add description of "test" tsflags (Jaroslav Mracek) +- Enable import gpg_keys with tsflag test (RhBug:1464192) (Jaroslav Mracek) +- Keep old reason when undoing erase (RhBug:1463107) (Eduard Čuba) +- spec: eliminate other weak dependencies for el<=7 (Igor Gnatenko) +- spec: do not strongly require inhibit plugin (Igor Gnatenko) +- Inform that packages are only downloaded (RhBug:1426196) (Jaroslav Mracek) +- Move releasever check after the etc/dnf/vars substitutions. (Alexander + Kanavin) +- Provide substitution for Repodict.add_new_repo() (RhBug:1457507) (Jaroslav + Mracek) + +* Mon Jul 24 2017 Jaroslav Mracek 2.6.2-1 +- Remove autodeglob optimization (Jaroslav Rohel) +- Integrate --destdir with --destdir from download plugin (Ondřej Sojka) +- Add CLI option --destdir (RhBug:1279001) (Ondřej Sojka) +- Add myself to the AUTHORS file (Nathaniel McCallum) +- Add the --forcearch CLI flag (Nathaniel McCallum) +- Add 'ignorearch' option (Nathaniel McCallum) +- Provide an API for setting 'arch' and 'basearch' (Nathaniel McCallum) +- Add nevra forms for repoquery command (Jaroslav Rohel) +- Fix UnicodeDecodeError during checkSig() on non UTF-8 locale (RhBug:1397848) + (Jaroslav Rohel) +- Add dnf option --noautoremove (RhBug:1361424) (Jaroslav Mracek) +- Add group argument for mark command (Jaroslav Mracek) +- Report problems for each pkg during gpgcheck (RhBug:1387925) (Jaroslav + Mracek) +- fix minor spelling mistakes (René Genz) +- Print warning when wrong delimiter in cache (RhBug:1332099) (Vítek Hoch) +- Fix the loading of config for dnf-automatic command_email (RhBug:1470116) + (Jaroslav Rohel) +- Enable download progress bar if redirected output (RhBug:1161950) (Jaroslav + Mracek) +- Support short abbrevations of commands (RhBug:1320254) (Vítek Hoch) +- Remove unused variables kwargs (Jaroslav Mracek) +- Not reinstall packages if install from repository-pkgs used (Jaroslav Mracek) +- bump dnf version to 2.6.0 (Igor Gnatenko) +- spec: use python2- prefix for hawkey (Igor Gnatenko) +- spec: use sphinx-build binary rather than package name (Igor Gnatenko) +- spec: python-bugzilla is not needed for building (Igor Gnatenko) +- spec: fix instructions about generating tarball (Igor Gnatenko) +- po: Update translations (Igor Gnatenko) +- Add an example of installation without weak-deps (RhBug:1424723) (Jaroslav + Mracek) +- Add detection if mirrorlist is used for metalink (Jaroslav Mracek) +- Rename variable (Jaroslav Mracek) +- Add --groupmember option to repoquery (RhBug:1462486) (Jaroslav Mracek) +- Check checksum for local repositories (RhBug:1314405) (Jaroslav Mracek) +- Spelling fixes (Ville Skyttä) +- repoquery --obsoletes prints obsoletes (RhBug:1457368) (Matěj Cepl) +- Provide pkg name hint for icase (RhBug:1339280) (RhBug:1138978) (Jaroslav + Mracek) +- Return only latest pkgs for "dnf list upgrades" (RhBug:1423472) (Jaroslav + Mracek) +- cleanup code not executed in case of exception (Marek Blaha) +- Allow to modify message for user confirmation (Jaroslav Mracek) +- Add autocheck_running_kernel config option (Štěpán Smetana) +- Inform about skipped packages for group install (RhBug:1427365) (Jaroslav + Mracek) +- Remove group remove unneeded pkgs (RhBug:1398871) (RhBug:1432312) (Jaroslav + Mracek) +- po: update translations (Igor Gnatenko) + +* Mon Jun 12 2017 Jaroslav Mracek 2.5.1-1 +- bump version to 2.5.1 + update release notes (Jaroslav Mracek) +- Fix: dnf update --refresh fails for repo_gpgcheck=1 (RhBug:1456419) (Daniel + Mach) +- Don't try to cut datetime message (Jaroslav Rohel) +- Use localized datetime format (RhBug:1445021) (Jaroslav Rohel) +- Work with locale date (Jaroslav Rohel) +- Use ISO 8601 time format in logfile (Jaroslav Rohel) +- Add unitest to prevent callbacks breakage (Jaroslav Mracek) +- Provide compatibility for tools that do not use total_drpms (Jaroslav Mracek) +- Requires strict usage of repoquery --recursive (Jaroslav Mracek) +- Fix output for --resolve with --installed for repoquery (Jaroslav Mracek) +- Remove unnecessary inheritance of yum conf options (Martin Hatina) +- Remove alwaysprompt option support (RhBug:1400714) (Jaroslav Rohel) +- Allow to install groups with multilib_policy=all (RhBug:1250702) (Jaroslav + Mracek) +- Redesign Base.install() to provide alternatives (Jaroslav Mracek) +- Report excludes includes into logger.debug (RhBug:1381988) (Jaroslav Mracek) +- Provide new API to parse string to NEVRA () (Jaroslav Mracek) +- Add more repoquery querytags (Jaroslav Rohel) +- Not hide tracebacks (Jaroslav Mracek) +- Solve error handling for get attr in yumdb (RhBug:1397848) (Jaroslav Mracek) +- Provide a better error if throttle to low (RhBug:1321407) (Jaroslav Mracek) +- Change timeout to 30s (RhBug:1291867) (Jaroslav Mracek) +- Add pre_transaction hook for plugins (Jaroslav Rohel) +- Not download metadata if "dnf history [info|list|userinstalled]" (Jaroslav + Mracek) +- Not download metadata if "dnf repo-pkgs list --installed" (Jaroslav + Mracek) +- Not download metadata if "dnf list --installed" (RhBug:1372895) (Jaroslav + Mracek) +- Format pkg str for repoquery --tree due to -qf (RhBug:1444751) (Jaroslav + Mracek) + +* Mon May 22 2017 Jaroslav Mracek 2.5.0-1 +- Update release notes (Jaroslav Mracek) +- Change documentation for history --userinstalled (RhBug:1370062) (Jaroslav + Mracek) +- Change example to install plugin using versionlock (Jaroslav Mracek) +- Remove unused method Goal.best_run_diff() (Jaroslav Mracek) +- Change recommendations if some problems appear (RhBug:1293067) (Jaroslav + Mracek) +- Report problems for goals with optional=True (Jaroslav Mracek) +- Format resolve problem messages in method in dnf.util (Jaroslav Mracek) +- Enhance reports about broken dep (RhBug:1398040)(RhBug:1393814) (Jaroslav + Mracek) +- search: do not generate error if not match anything (RhBug:1342157) (Jaroslav + Rohel) +- Check if any plugin is removed in transaction (RhBug:1379906) (Jaroslav + Mracek) +- Show progress for DRPM (RhBug:1198975) (Jaroslav Mracek) +- Fix disabledplugin option (Iavael) +- [history]: fixed info command merged output (Eduard Čuba) + +* Thu May 11 2017 Jaroslav Mracek 2.4.1-1 +- bump version to 2.4.1 + update release notes (Jaroslav Mracek) +- goal: do not mark weak dependencies as userinstalled (Igor Gnatenko) +- fix typo in supplements (RhBug:1446756) (Igor Gnatenko) +- Describe present behavior of installonly_limit conf option (Jaroslav Mracek) +- Reset all transaction for groups if Base.reset() (RhBug:1446432) (Jaroslav + Mracek) +- Explain how add negative num for --latest-limit (RhBug:1446641) (Jaroslav + Mracek) +- trivial: don't duplicate option names (Igor Gnatenko) +- Add support for --userinstalled for repoquery command (RhBug:1278124) + (Jaroslav Rohel) +- Fix header of search result sections (RhBug:1301868) (Jaroslav Rohel) +- Filter out src for get_best_selector (Jaroslav Mracek) +- Add minor changes in formating of documentation (Jaroslav Mracek) + +* Tue May 02 2017 Jaroslav Mracek 2.4.0-1 +- po: Update translations (Igor Gnatenko) +- po: Update translations (Igor Gnatenko) +- introduce '--enableplugin' option (Martin Hatina) +- Improve detection of file patterns (Jaroslav Mracek) +- Add method _get_nevra_solution() for subject (Jaroslav Mracek) +- Do not add "*" into query filter in _nevra_to_filters() (Jaroslav Mracek) +- Remove usage of nevra_possibilities_real() (Jaroslav Mracek) +- Increase performance for downgrade_to() (Jaroslav Mracek) +- Add additional keys for get_best_query() (Jaroslav Mracek) +- Increase performance for get_best_selector() (Jaroslav Mracek) +- Increase performance for get_best_query() (Jaroslav Mracek) +- Fix "Package" text translation (RhBug:1302935) (Jaroslav Rohel) +- Create a warning if releasever is None (Jaroslav Mracek) +- Adds cost, excludepkgs, and includepkgs to Doc (RhBug:1248684) (Jaroslav + Mracek) +- Change auto-detection of releasever in empty installroot (Jaroslav Mracek) +- Do not load system repo for makecache command (RhBug:1441636) (Jaroslav + Mracek) +- Do not raise assertion if group inst and rmv pkgs (RhBug:1438438) (Jaroslav + Mracek) +- yum layer using python3 (Martin Hatina) +- Filter url protocols for baseurl in Package.remote_location (Jaroslav Mracek) +- Add armv5tl to arm basearch (Neal Gompa) +- Setup additional parameters for handler for remote packages (Jaroslav Mracek) +- Use same method for user/password setting of every librepo.handle (Jaroslav + Mracek) +- Fix PEP8 violations and remove unused import (Jaroslav Mracek) +- Handle unknown file size in download progress (Jaroslav Mracek) +- Allow to delete cashed files from command line by clean command (Jaroslav + Mracek) +- Save command line packages into chachedir (RhBug:1256313) (Jaroslav Mracek) +- Add progress bar for download of commandline pkgs (RhBug:1161950) (Jaroslav + Mracek) +- Fix minor typo Closes: #781 Approved by: ignatenkobrain (Yuri Chornoivan) +- Mark unremoved packages as failed (RhBug:1421244) (Jaroslav Mracek) + +* Mon Apr 10 2017 Jaroslav Mracek 2.3.0-1 +- update release notes (Jaroslav Mracek) +- po: Update translations (Igor Gnatenko) +- Add require of subcommand for repo-pkgs command (Jaroslav Rohel) +- shell: Fix commands initialization (Jaroslav Rohel) +- po: Update translations (Igor Gnatenko) +- Add support for --location for repoquery command (RhBug:1290137) (Jaroslav + Mracek) +- Add support of --recursive with --resolve in repoquery (Jaroslav Mracek) +- Add --recursive option for repoquery (Jaroslav Mracek) +- Add --whatconflicts for repoquery (Jaroslav Mracek) +- Add support for multiple options for repoquery (Jaroslav Mracek) +- Add multiple format option for repoquery (Jaroslav Mracek) +- Fix problem with "dnf repoquery --querytags" (Jaroslav Mracek) +- Add support of 3 options into updateinfo command (Jaroslav Mracek) +- Add inheritance of reason for obsoleting packages (Jaroslav Mracek) +- Mark installonlypkgs correctly as user installed (RhBug:1349314) (Jaroslav + Mracek) +- Solve a problem with None names in callbacks (Jaroslav Mracek) +- Solve a problem for callbacks (Jaroslav Mracek) +- Revert "remove: CLI: --randomwait" (RhBug:1247122) (Ondřej Sojka) +- po: update translations (Igor Gnatenko) +- po: update translations (Igor Gnatenko) +- Set strings for translations (RhBug:1298717) (Jaroslav Mracek) + +* Mon Mar 27 2017 Jaroslav Mracek 2.2.0-1 +- bump version to 2.2.0 + update release notes (Jaroslav Mracek) +- Add documentation of new API callback actions (RhBug:1411432) (Jaroslav + Mracek) +- Fix python2 doesn't have e.__traceback__ attribute (Jaroslav Mracek) +- Do not report erasing package as None. (Jaroslav Mracek) +- Display scriplet for transaction (RhBug:1411423) (RhBug:1406130) (Jaroslav + Mracek) +- Add support for rpmcallbacks (Jaroslav Mracek) +- AUTHORS: updated (Jaroslav Rohel) +- Not show expiration check if no repo enabled (RhBug:1369212) (Jaroslav + Mracek) +- Fix changelog in dnf spec file (Jaroslav Mracek) +- po: update translations (Igor Gnatenko) +- Add myself (mhatina) to AUTHORS (Martin Hatina) +- po: Update translations (Igor Gnatenko) + +* Tue Mar 21 2017 Jaroslav Mracek 2.1.1-1 +- bump version to 2.1.1 + update release notes (Jaroslav Mracek) +- Sync the translation with locale (Jaroslav Rohel) +- Disable exceptions in logging (Jaroslav Rohel) +- Fix severity info in "updateinfo info" (Jaroslav Mracek) +- Add help for shell commands (Jaroslav Rohel) +- shell: no crash if missing args (Jaroslav Rohel) +- proper check of releasever, when using installroot (RhBug:1417542) (Martin + Hatina) +- Inform about "Cache was expired" with "dnf clean" (RhBug:1401446) (Jaroslav + Mracek) +- crypto: port to the official gpgme bindings (Igor Gnatenko) +- Fix doc example for `fill_sack` method (Lubomír Sedlář) +- po: update translations (Igor Gnatenko) +- Not try to install src package (RhBug:1416699) (Jaroslav Mracek) +- Add usage for add_new_repo() with repofrompath option (Jaroslav Mracek) +- Add new API add_new_repo() in RepoDict() (RhBug:1427132) (Jaroslav Mracek) +- docs: adds documentation for dnf-automatic's Command and CommandEmail + emitters. (rhn) +- docs: fixes typo in section description in automatic (rhn) +- Adds new emitters for dnf-automatic. (rhn) +- po: update translations (Igor Gnatenko) +- Ensure that callback will not kill dnf transaction (Jaroslav Mracek) +- Ensure that name will be not requested on None (RhBug:1397047) (Jaroslav + Mracek) +- Python 3.6 invalid escape sequence deprecation fix (Ville Skyttä) +- display severity information in updateinfo (#741) (Michael Mraka) +- po: update translations (Igor Gnatenko) +- Add --nodocs option for dnf (RhBug:1379628) (Jaroslav Mracek) +- Replace passive plugin noroot (Jaroslav Mracek) +- Fix incorrect formating of string for logger.info (Jaroslav Mracek) +- Not print help if empty line in script for shell command (Jaroslav Mracek) +- Run fill_sack after all repos have changed status (Jaroslav Mracek) +- Remove Hawkey object from repo if rerun of dnf.fill_sack (Jaroslav Mracek) +- util/on_metered_connection: be more polite to failures (Igor Gnatenko) +- cosmetic: i18n: rewording of 'Login user' (RhBug:1424939) (Jan Silhan) +- Fix problem with --whatprovides in repoquery (RhBug:1396992) (Jaroslav + Mracek) +- Add -a and --all option for repoquery (RhBug:1412970) (Jaroslav Mracek) +- Change camel-case of output of grouplist (Jaroslav Mracek) +- Minor correction in release notes (Jaroslav Mracek) +- Minor correction in release notes (Jaroslav Mracek) + +* Thu Feb 16 2017 Jaroslav Mracek 2.1.0-1 +- bump version to 2.1.0 + update release notes (Jaroslav Mracek) +- Fix problem with --recent option in repoquery (Jaroslav Mracek) +- Fix problem with duplicated --obsoletes (RhBug:1421835) (Jaroslav Mracek) +- Python 3.6 invalid escape sequence deprecation fixes (Ville Skyttä) +- Add --repoid as alias for --repo (Jaroslav Mracek) +- introduce dnf.base.Base.update_cache() (Martin Hatina) +- Try to install uninstalled packages if group installed (Jaroslav Mracek) +- Enable search of provides in /usr/(s)bin (RgBug:1421618) (Jaroslav Mracek) +- style: ignore E261 (Igor Gnatenko) +- makecache: do not run on metered connections (RhBug:1415711) (Igor Gnatenko) +- change '--disableplugins' to '--disableplugin' (Martin Hatina) +- cosmetic: removed unused import (Jan Silhan) +- show hint how to display why package was skipped (RhBug:1417627) (Jan Silhan) +- spec: add information how to obtain archive (Igor Gnatenko) +- fix messages (UX) (Jaroslav Rohel) +- zanata update (Jan Silhan) + +* Thu Feb 09 2017 Jaroslav Mracek 2.0.1-1 +- bump version to 2.0.1 + update release notes (Jaroslav Mracek) +- introduce cli 'obsoletes' option (Martin Hatina) +- swap tids if they are in wrong order (RhBug:1409361) (Michael Mraka) +- Disable shell command recursion (Jaroslav Rohel) +- Honor additional arguments for DNF shell repo list command (Jaroslav Rohel) +- don't traceback when bug title is not set (Michael Mraka) +- introducing list-security, info-security etc. commands (Michael Mraka) +- Add lsedlar to contributors list (Lubomír Sedlář) +- Return just name from Package.source_name (Lubomír Sedlář) +- introduce dnf.conf.config.MainConf.exclude() (Martin Hatina) +- systemd: Disable daemons on ostree-managed systems (Colin Walters) +- introduced dnf.base.Base.autoremove() (RhBug:1414512) (Martin Hatina) +- po: update translations (Igor Gnatenko) +- build: use relative directory for translations (Igor Gnatenko) +- Temporary eliminate a problem with install remove loop (Jaroslav Mracek) +- Handle info message when DRPM wastes data (RhBug:1238808) (Daniel + Aleksandersen) +- Fix output for better translation (RhBug:1386085) (Abhijeet Kasurde) +- yum layer refactored (Martin Hatina) +- return values changed to match yum's (Martin Hatina) +- Reword sentence after removing package (RhBug:1286553) (Abhijeet Kasurde) +- Minor documentation revisions (Mark Szymanski) +- Minor code fix (Abhijeet Kasurde) +- automatic: email emitter date header (David Greenhouse) +- Solve problem when no repo and only rpms with upgrade command (Jaroslav + Mracek) +- bash_completion: use system-python if it's available (Igor Gnatenko) +- spec: use system-python for dnf-yum as well (Igor Gnatenko) +- comps/groups: fix tests (Michal Luscon) +- comps: adjust group_upgrade to new CompsTransPkg style (Michal Luscon) +- groups: refactored installation (RhBug:1337731, RhBug:1336879) (Michal + Luscon) +- Increase requirement for hawkey (Jaroslav Mracek) +- Change reporting problems for downgradePkgs() (Jaroslav Mracek) +- Use selector for base.package_upgrade() (Jaroslav Mracek) +- Add usage of selectors for base.package_install() (Jaroslav Mracek) +- Use selector for base.package_downgrade() (Jaroslav Mracek) +- Redirect base.downgrade() to base.downgrade_to() (Jaroslav Mracek) +- Enable wildcard for downgrade command (RhBug:1173349) (Jaroslav Mracek) +- Refactor downgrade cmd behavior (RhBug:1329617)(RhBug:1283255) (Jaroslav + Mracek) +- Redirect logger.info into stderr for repolist (RhBug:1369411) (Jaroslav + Mracek) +- Redirect logger.info into stderr for repoquery (RhBug:1243393) (Jaroslav + Mracek) +- Add possibility for commands to redirect logger (Jaroslav Mracek) +- Put information about metadata expiration into stdout (Jaroslav Mracek) +- Change warning about added repo into info (RhBug:1243393) (Jaroslav Mracek) +- Move grouplist output from logger into stdout (Jaroslav Mracek) +- let repo exclude work the same way as global exclude (Michael Mraka) +- Fix wrong assumptions about metalinks (RhBug:1411349) (Jaroslav Mracek) +- handle --disablerepo/--enablerepo properly with strict (RhBug:1345976) + (Štěpán Smetana) +- Add fix to notify user about no repos (RhBug:1369212) (Abhijeet Kasurde) +- Add information about "hidden" option in dnf doc (RhBug:1349247) (Abhijeet + Kasurde) +- Fix for 'history package-list' (Amit Upadhye) +- Enable multiple args for repoquery -f (RhBug:1403930) (Jaroslav Mracek) +- Set default repo.name as repo._section (Jaroslav Mracek) +- Create from self.forms value forms in cmd.run() (Jaroslav Mracek) +- Add description of swap command into documentation (Jaroslav Mracek) +- Add swap command (RhBug:1403465) (RhBug:1110780) (Jaroslav Mracek) +- Solve a problem with shell when empty line or EOF (Jaroslav Mracek) +- shell: add history of commands (RhBug:1405333) (Michal Luscon) +- Add info if no files with repoquery -l (RhBug:1254879) (Jaroslav Mracek) +- po: update translations (Igor Gnatenko) +- po: migrate to zanata python client and trivial fixes in build (Igor + Gnatenko) +- po: include all possible languages from zanata (Igor Gnatenko) +- po: include comments for translations (Igor Gnatenko) +- shell: catch exceptions from depsolving (Michal Luscon) +- shell: update documentation (Michal Luscon) +- shell: add transaction reset cmd (Michal Luscon) +- shell: add transaction resolve cmd (Michal Luscon) +- shell: provide rewritable demands for cmds (Michal Luscon) +- shell: catch tracebacks from shlex (Michal Luscon) +- shell: handle ctrl+D more gracefully (Michal Luscon) +- groups: set demands in configure instead of run (Michal Luscon) +- shell: implement config cmd (Michal Luscon) +- shell: add help (Michal Luscon) +- shell: make alias repo list -> repolist (Michal Luscon) +- shell: catch exceptions from do_transaction (Michal Luscon) +- shell: resolve transaction in ts run (Michal Luscon) +- shell: add default value for internal methods argument (Michal Luscon) +- shell: create run alias for ts run (Michal Luscon) +- shell: add ts list cmd (Michal Luscon) +- shell: refill sack after every successful repo cmd (Michal Luscon) +- shell: allow running multiple transaction in one session (Michal Luscon) +- shell: add ts command (Michal Luscon) +- shell: catch cmd parsing and run exceptions (Michal Luscon) +- shell: allow to run scripts (Michal Luscon) +- shell: add repo cmd (Michal Luscon) +- shell: add resolving + transaction run support (Michal Luscon) +- shell: implement quit method (Michal Luscon) +- shell: add custom cmds stubs (Michal Luscon) +- shell: implement basic logic (Michal Luscon) +- shell: register new cmd (Michal Luscon) + +* Wed Dec 14 2016 Michal Luscon 2.0.0-1 +- tests: catch ModuleNotFoundError as well (Igor Gnatenko) +- Switch out automatic service for automatic-download and automatic-install + (Pat Riehecky) +- Make upgrade-to alias for upgrade (RhBug:1327999) (Jaroslav Mracek) +- skip appending an empty option (RhBug: 1400081) (Michael Mraka) +- Add description of nevra foems for commands and autoremove args (Jaroslav + Mracek) +- Add support of arguments nevra forms for autoremove command (Jaroslav Mracek) +- Add nevra forms for remove command (Jaroslav Mracek) +- Add nevra forms for install command (Jaroslav Mracek) +- add bin/yum into .gitignore (Michal Luscon) +- clean: acquire all locks before cleaning (RhBug:1293782) (Michal Luscon) +- Change hawkey version requirement (Jaroslav Mracek) +- Add information for translators (RhBug:1386078) (Jaroslav Mracek) +- Change info to warning for clean repoquery output (RhBug:1358245) (Jaroslav + Mracek) +- Add description of pkg flag for Query (RhBug:1243393) (Jaroslav Mracek) +- Add minor changes in documentation (Jaroslav Mracek) +- Do not always overwrite the name with the repo ID (Neal Gompa) + +* Fri Dec 02 2016 Martin Hatina 2.0.0-0.rc2.1 +- See http://dnf.readthedocs.io/en/latest/release_notes.html + +* Thu Sep 29 2016 Michal Luscon 2.0.0-0.rc1.1 +- See http://dnf.readthedocs.io/en/latest/release_notes.html + +* Thu Sep 08 2016 Igor Gnatenko - 1.1.10-2 +- Obsolete dnf-langpacks +- Backport patch for dnf repolist disabled + +* Thu Aug 18 2016 Igor Gnatenko - 1.1.10-1 +- Update to 1.1.10 + +* Tue Aug 09 2016 Igor Gnatenko - 1.1.9-6 +- Fix typo + +* Tue Aug 09 2016 Igor Gnatenko - 1.1.9-5 +- Also change shebang for %%{?system_python_abi} in %%{_bindir}/dnf + +* Tue Aug 09 2016 Igor Gnatenko - 1.1.9-4 +- Add %%{?system_python_abi} + +* Tue Jul 19 2016 Fedora Release Engineering - 1.1.9-3 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Tue May 24 2016 Michal Luscon 1.1.9-2 +- Revert "group: treat mandatory pkgs as mandatory if strict=true" (RhBug:1337731) +- enforce-api: reflect changes from #992475 in completion_helper (RhBug:1338504) +- enforce-api: add compatibility methods for renamed counterparts (RhBug:1338564) + +* Thu May 19 2016 Igor Gnatenko 1.1.9-1 +- doc: release notes 1.1.9 (Igor Gnatenko) +- spec: correctly set up requirements for python subpkg (Igor Gnatenko) +- spec: follow new packaging guidelines & make compatible with el7 (Igor + Gnatenko) +- zanata update (Jan Silhan) +- enforce-api: add missing bits of Base class (Michal Luscon) +- help: unify help msg strings (Michal Luscon) +- enforce-api: decorate Base class (Michal Luscon) +- util: add decorator informing users of nonapi functions (Michal Luscon) +- Added description for 'autoremove' in dnf help (RhBug:1324086) (Abhijeet + Kasurde) +- i18n: fixup for 0db13feed (Michal Luscon) +- i18n: use fallback mode if terminal does not support UTF-8 (RhBug:1332012) + (Michal Luscon) +- Revert "spec: follow new packaging guidelines & make compatible with el7" + (Michal Luscon) +- move autoglob feature directly to filterm() and filter() (Michael Mraka) +- group: treat mandatory pkgs as mandatory if strict=true (RhBug:1292892) + (Michal Luscon) +- locks: fix lock paths in tmpfsd config since cachedir has been changed + (Michal Luscon) +- remove formating from translation strings (Michal Luscon) +- base: set diskspace check filter before applying the filters (RhBug:1328674) + (Michal Luscon) +- order repos by priority and cost (Michael Mraka) +- spec: follow new packaging guidelines & make compatible with el7 (Igor + Gnatenko) +- bash-completion: first try to set fallback to BASH_COMPLETION_COMPATDIR (Igor + Gnatenko) +- updated copyrights for files changed this year (Michael Mraka) +- cli: fix warning from re.split() about non-empty pattern (RhBug:1286556) + (Igor Gnatenko) +- update authors file (Michal Luscon) +- Define __hash__ method for YumHistoryPackage (RhBug:1245121) (Max Prokhorov) + +* Tue Apr 05 2016 Michal Luscon 1.1.8-1 +- refactor: repo: add md_expired property (Michal Domonkos) +- test: fix cachedir usage in LocalRepoTest (Michal Domonkos) +- clean: operate on all cached repos (RhBug:1278225) (Michal Domonkos) +- refactor: repo: globally define valid repoid chars (Michal Domonkos) +- RepoPersistor: only write to disk when requested (Michal Domonkos) +- clean: remove dead subcommands (Michal Domonkos) +- doc: --best in case of problem (RhBug:1309408) (Jan Silhan) +- Added fix for correct error message for group info (RhBug:1209649) (Abhijeet + Kasurde) +- repo: don't get current timeout for librepo (RhBug:1272977) (Igor Gnatenko) +- doc: fix default timeout value (Michal Luscon) +- cli: inform only about nonzero md cache check interval (Michal Luscon) +- base: report errors in batch at the end of md downloading (Michal Luscon) +- repo: produce more sane error if md download fails (Michal Luscon) +- zanata update (RhBug:1322226) (Jan Silhan) +- doc: Fixed syntax of `assumeyes` and `defaultyes` ref lables in + `conf_ref.rst` (Matt Sturgeon) +- Fix output headers for dnf history command (Michael Dunphy) +- doc: change example of 'dnf-command(repoquery)' (Jaroslav Mracek) +- makacache.service: shorten journal logs (RhBug:1315349) (Michal Luscon) +- config: improve UX of error msg (Michal Luscon) +- Added user friendly message for out of range value (RhBug:1214562) (Abhijeet + Kasurde) +- doc: prefer repoquery to list (Jan Silhan) +- history: fix empty history cmd (RhBug:1313215) (Michal Luscon) +- Very minor tweak to the docs for `--assumeyes` and `--assumeno` (Matt + Sturgeon) + +* Thu Feb 25 2016 Michal Luscon 1.1.7-1 +- Add `/etc/distro.repos.d` as a path owned by the dnf package (Neal Gompa + (ニール・ゴンパ)) +- Change order of search and add new default repodirs (RhBug:1286477) (Neal + Gompa (ニール・ゴンパ)) +- group: don't mark available packages as installed (RhBug:1305356) (Jan + Silhan) +- history: adjust demands for particular subcommands (RhBug:1258503) (Michal + Luscon) +- Added extension command for group list (RhBug:1283432) (Abhijeet Kasurde) +- perf: dnf repository-packages upgrade (RhBug:1306304) (Jan Silhan) +- sack: Pass base.conf.substitutions["arch"] to sack in build_sack() function. + (Daniel Mach) +- build: make python2/3 binaries at build time (Michal Domonkos) +- fix dnf history traceback (RhBug:1303149) (Jan Silhan) +- cli: truncate expiration msg (RhBug:1302217) (Michal Luscon) + +* Mon Jan 25 2016 Michal Luscon 1.1.6-1 +- history: don't fail if there is no history (RhBug:1291895) (Michal Luscon) +- Allow dnf to use a socks5 proxy, since curl support it (RhBug:1256587) + (Michael Scherer) +- output: do not log rpm info twice (RhBug:1287221) (Michal Luscon) +- dnf owns /var/lib/dnf dir (RhBug:1294241) (Jan Silhan) +- Fix handling of repo that never expire (RhBug:1289166) (Jaroslav Mracek) +- Filter out .src packages when multilib_proto=all (Jeff Smith) +- Enable string for translation (RhBug:1294355) (Parag Nemade) +- Let logging format messages on demand (Ville Skyttä) +- clean: include metadata of local repos (RhBug:1226322) (Michal Domonkos) +- completion: Install to where bash-completion.pc says (Ville Skyttä) +- spec: bash completion is not a %%config file (Ville Skyttä) +- Change assertion handling for rpmsack.py (RhBug:1275878) (Jaroslav Mracek) +- cli: fix storing arguments in history (RhBug:1239274) (Ting-Wei Lan) + +* Thu Dec 17 2015 Michal Luscon 1.1.5-1 +- base: save group persistor only after successful transaction (RhBug:1229046) + (Michal Luscon) +- base: do not clean tempfiles after remove transaction (RhBug:1282250) (Michal + Luscon) +- base: clean packages that do not belong to any trans (Michal Luscon) +- upgrade: allow group upgrade via @ syntax (RhBug:1265391) (Michal Luscon) +- spec: Mark license files as %%license where available (Ville Skyttä) +- Remove unused imports (Ville Skyttä) +- Spelling fixes (Ville Skyttä) +- Fix typos in documentation (Rob Cutmore) +- parser: add support for braces in substitution (RhBug:1283017) (Dave + Johansen) +- completion_helper: Don't omit "packages" from clean completions (Ville + Skyttä) +- bash-completion: Avoid unnecessary python invocation per _dnf_helper (Ville + Skyttä) +- repo: Download drpms early (RhBug:1260421) (Ville Skyttä) +- clean: Don't hardcode list of args in two places (Ville Skyttä) +- cli: don't crash if y/n and sys.stdin is None (RhBug:1278382) (Adam + Williamson) +- sp err "environement" -> "environment" (Michael Goodwin) +- Remove -OO from #!/usr/bin/python (RhBug:1230820) (Jaroslav Mracek) +- cli: warn if plugins are disabled (RhBug:1280240) (Michal Luscon) + +* Mon Nov 16 2015 Michal Luscon 1.1.4-1 +- AUTHORS: updated (Jan Silhan) +- query: add compatibility methods (Michal Luscon) +- query: add recent, extras and autoremove methods to Query (Michal Luscon) +- query: add duplicated and latest-limit queries into api (Michal Luscon) +- format the email message with its as_string method (Olivier Andrieu) +- added dnf.i18n.ucd* functions as deprecated API (Jan Silhan) +- i18n: unicode resulting translations (RhBug:1278031) (Jan Silhan) +- po: get rid of new lines in translation (Jan Silhan) +- output: add skip count to summary (RhBug:1264032) (Michal Domonkos) +- groups: fix environment upgrade (Michal Luscon) +- Fix plural strings extraction (RhBug:1209056) (Baurzhan Muftakhidinov) +- po: fixed malformed beginning / ending (Jan Silhan) +- zanata update (Jan Silhan) +- cli: prevent tracebacks after C^ (RhBug:1274946) (Michal Luscon) + +* Wed Oct 14 2015 Michal Luscon 1.1.3-1 +- Update command_ref.rst (Jaroslav Mracek) +- Change in automatic.conf email settings to prevent email error with default + sender name (Jaroslav Mracek) +- Replace assert_called() with assert_called_with() for Py35 support (Neal + Gompa (ニール・ゴンパ)) +- doc: improve documentation (Jaroslav Mracek) +- doc: update the instructions related to nightly builds (Radek Holy) +- Revert "Add the continuous integration script" (Radek Holy) +- Revert "cosmetic: ci: fix the Copr name in the README" (Radek Holy) +- Fix typo in Command.canonical's doctring (Timo Wilken) +- base: group_install is able to exclude mandatory packages + (Related:RhBug:1199868) (Jan Silhan) + +* Wed Sep 30 2015 Michal Luscon 1.1.2-4 +- don't import readline as it causes crashes in Anaconda + (related:RhBug:1258364) + +* Tue Sep 22 2015 Michal Luscon 1.1.2-3 +- Revert "completion_helper: don't get IndexError (RhBug:1250038)" + +* Tue Sep 22 2015 Michal Luscon 1.1.2-2 +- add hawkey version requirement +- revert commit #70956 + +* Tue Sep 22 2015 Michal Luscon 1.1.2-1 +- doc: release notes 1.1.2 (Michal Luscon) +- sanitize non Unicode command attributes (RhBug:1262082) (Jan Silhan) +- don't redirect confirmation to stderr RhBug(1258364) (Vladan Kudlac) +- clean: add rpmdb to usage (Vladan Kudlac) +- completion_helper: don't get IndexError (RhBug:1250038) (Vladan Kudlac) +- add --downloadonly switch (RhBug:1048433) (Adam Salih) +- Add globbing support to base.by_provides() (RhBug:11259650) (Valentina + Mukhamedzhanova) +- spec: packaging python(3)-dnf according to new Fedora guidelines + (RhBug:1260198) (Jaroslav Mracek) +- Bug in Source0: URL in dnf.spec fixed (RhBug:126255) (Jaroslav Mracek) +- To dnf.spec added provides dnf-command(command name) for 21 dnf commands + (RhBug:1259657) (jmracek) +- Expire repo cache on failed package download (Valentina Mukhamedzhanova) +- cosmetic: ci: fix the Copr name in the README (Radek Holy) +- Add the continuous integration script (Radek Holy) +- Set proper charset on email in dnf-automatic (RhBug:1254982) (Valentina + Mukhamedzhanova) +- doc: improve configuration description (RhBug:1261766) (Michal Luscon) +- remove: show from which repo a package is (Vladan Kudlac) +- list: show from which repo a package is (RhBug:1234491) (Vladan Kudlac) +- Spelling/grammar fixes (Ville Skyttä) +- install: fix crash when terminal window is small (RhBug:1256531) (Vladan + Kudlac) +- install: mark unification of the progress bar (Vladan Kudlac) +- fix translations in python3 (RhBug:1254687) (Michal Luscon) +- group: CompsQuery now returns group ids (RhBug:1261656) (Michal Luscon) + +* Tue Sep 08 2015 Michal Luscon 1.1.1-2 +- fix access to demands (RhBug:1259194) (Jan Silhan) +- make clean_requiremets_on_remove=True (RhBug:1260280) (Jan Silhan) + +* Mon Aug 31 2015 Michal Luscon 1.1.1-1 +- Fixed typo (RhBug:1249319) (Adam Salih) +- fixed downgrade with wildcard (RhBug:1234763) (Adam Salih) +- reorganize logic of get_best_selector(s) and query (RhBug:1242946) (Adam + Salih) +- completion_helper: don't crash if exception occurred (RhBug:1225225) (Igor + Gnatenko) +- base: expire cache if repo is not available (Michal Luscon) +- Don't suggest --allowerasing if it is enabled (Christian Stadelmann) +- translation works in python3 (RhBug:1254687) (Jan Silhan) +- logrotate less often (RhBug:1247766) (Jan Silhan) +- implement dnf mark command (RhBug:1125925) (Michal Luscon) +- groups: use comps data to migrate persistor (Michal Luscon) +- groups: preserve api compatibility (Michal Luscon) +- groups: use persistor data for removing env/group (Michal Luscon) +- persistor: add migration and bump version (Michal Luscon) +- persistor: store name and ui_name of group (Michal Luscon) +- show real metadata timestamp on the server in verbose mode (Jan Silhan) +- lock: make rpmdb lock blocking (RhBug:1210289) (Michal Luscon) + +* Wed Aug 12 2015 Michal Luscon 1.1.0-2 +- update: installonly pkgs are not shown in both install and skipped section + (RhBug:1252415) (Jan Silhan) +- output: sort skipped packages (Jan Silhan) +- output: skipped conflicts are set (RhBug:1252032) (Jan Silhan) +- keep the dwongrading package installed if transaction fails (RhBug:1249379) + (Jan Silhan) +- don't store empty attributes (RhBug:1246928) (Michael Mraka) +- doc: correct dnf.conf man section (RhBug:1245349) (Michal Luscon) + +* Mon Aug 10 2015 Michal Luscon 1.1.0-1 +- print skipped pkg with broken deps too (Related:RhBug:1210445) (Jan Silhan) +- history: set commands output as default (RhBug:1218401) (Michal Luscon) +- Update es.po. save:guardar -> save:ahorrar (Máximo Castañeda) +- cosmetic: option arg in Base.*install is replaced with strict (Jan Silhan) +- group: don't fail on first non-existing group (Jan Silhan) +- install: skips local pkgs of lower version when strict=0 + (Related:RhBug:1227952) (Jan Silhan) +- install: skip broken/conflicting packages in groups when strict=0 (Jan + Silhan) +- install: skip broken/conflicting packages when strict=0 (Jan Silhan) +- implemented `strict` config option working in install cmd (RhBug:1197456) + (Jan Silhan) +- fixed 'dnf --quiet repolist' lack of output (RhBug:1236310) (Nick Coghlan) +- Add support for MIPS architecture (Michal Toman) +- package: respect baseurl attribute in localPkg() (RhBug:1219638) (Michal + Luscon) +- Download error message is not written on the same line as progress bar + anymore (RhBug: 1224248) (Adam Salih) +- dnf downgrade does not try to downgrade not installed packages (RhBug: + 1243501) (max9631) +- pkgs not installed due to rpm error are reported (RhBug:1207981) (Adam Salih) +- dnf install checks availability of all given packages (RhBug:1208918) (Adam + Salih) +- implemented install_weak_deps config option (RhBug:1221635) (Jan Silhan) +- ignore SIGPIPE (RhBug:1236306) (Michael Mraka) +- always add LoggingTransactionDisplay to the list of transaction displays + (RhBug:1234639) (Radek Holy) +- Add missing FILES section (RhBug: 1225237) (Adam Salih) +- doc: Add yum vs dnf hook information (RhBug:1244486) (Parag Nemade) +- doc: clarify the expected type of the do_transactions's display parameter + (Radek Holy) +- apichange: add dnf.cli.demand.DemandSheet.transaction_display (Radek Holy) +- apichange: add dnf.callback.TransactionProgress (Radek Holy) +- move the error output from TransactionDisplay into a separate class (Radek + Holy) +- rename TransactionDisplay.errorlog to TransactionDisplay.error (Radek Holy) +- report package verification as a regular RPM transaction event (Radek Holy) +- rename TransactionDisplay.event to TransactionDisplay.progress (Radek Holy) +- apichange: deprecate dnf.callback.LoggingTransactionDisplay (Radek Holy) +- use both CliTransactionDisplay and demands.transaction_display (Radek Holy) +- apichange: accept multiple displays in do_transaction (Radek Holy) +- support multiple displays in RPMTransaction (Radek Holy) + +* Fri Jul 31 2015 Michal Luscon 1.0.2-3 +- Fix regression in group list command introduced by 02c3cc3 (Adam Salih) +- AUTHORS: updated (Jan Silhan) +- stop saying "experimental" (Matthew Miller) + +* Tue Jul 21 2015 Jan Silhan 1.0.2-2 +- fixed python3 syntax error from f427aa2 (Jan Silhan) + +* Fri Jul 17 2015 Michal Luscon 1.0.2-1 +- give --allowerasing hint when error occurs during resolution (RhBug:1148630) + (Jan Silhan) +- show --best hint with skipped packages every time (RhBug:1176351) (Jan Silhan) +- notify about skipped packages when upgrade (RhBug:1210445) (Jan Silhan) +- dnf-automatic: Document apply_updates=no behavior wrt keepcache (Ville + Skyttä) +- persistor: share functionality of JSONDB (Jan Silhan) +- keepcache=0 persists packages till next successful transaction + (RhBug:1220074) (Jan Silhan) +- do not use releasever in cache path (related to RhBug:1173107) (Michael + Mraka) +- doc: add dnf list use case (Michal Luscon) +- repo: allow ntlm proxy auth (RhBug:1219199) (Michal Luscon) +- add a script which updates release notes (Radek Holy) +- doc: reverse the order of release notes (Radek Holy) +- completion_helper: fix tb if list XXX is not known arg (RhBug:1220040) (Igor + Gnatenko) +- configurable maximum number of parallel downloads (RhBug:1230975) (Igor + Gnatenko) +- add info to bash_completion (1nsan3) +- dnf upgrade does not try to upgrade uninstalled packages (RhBug: 1234763) + (Adam Salih) +- dnf group list now checks every package and prints out only invalid ones + (Adam Salih) +- install: return zero exit code if group is already installed (RhBug:1232815) + (Michal Luscon) +- doc: add -b which does the same as --best (Igor Gnatenko) +- support category groups (Michael Mraka) +- cli test update for repofrompath (Michael Mraka) +- documentation for --repofrompath (Michael Mraka) +- implemented --repofrompath option (RhBug:1113384) (Michael Mraka) +- doc: document filter provides and obsoletes (Michal Luscon) +- doc: extend --quiet explanation (RhBug:1133979) (Jan Silhan) +- fixed dnf-automatic email emitter unicode error (RhBug:1238958) (Jan Silhan) +- doc: be specific what 'available' means in list/info (Jan Silhan) +- cosmetic: fixed typo (RhBug:1238252) (Jan Silhan) +- groups: clean dependencies (Michal Luscon) +- groups: fix removing of env that contains previously removed group (Michal + Luscon) +- groups: fix removing of empty group (Michal Luscon) +- AUTHORS: updated (Jan Silhan) +- bash-completion: ignore sqlite3 user configuration (Peter Simonyi) +- Fix package name for rawhide .repo files (Frank Dana) +- Add 'transaction_display' to DemandSheet (Will Woods) +- translation: update (Jan Silhan) +- translation: use zanata instead of transifex (Jan Silhan) +- Updated Polish translation (Piotr Drąg) +- updated georgian translation (George Machitidze) +- group: fixed installing of already installed environment (Jan Silhan) +- conf: change minrate threshold to librepo default (RhBug:1212320) (Michal + Luscon) + +* Tue Jun 09 2015 Michal Luscon 1.0.1-2 +- conf: change minrate threshold to librepo default (RhBug:1212320) +- group: fixed installation of already installed environments + +* Tue Jun 09 2015 Michal Luscon 1.0.1-1 +- doc: document variables in repo conf (Michal Luscon) +- groups: temporary fix for group remove (RhBug:1214968) (Michal Luscon) +- group: print summary of marked groups / environments together at the end (Jan + Silhan) +- group: fixed marking as installed (RhBug:1222694) (Jan Silhan) +- doc: Spelling fixes (Ville Skyttä) +- dnf-automatic: Fix systemd service description (thanks Ville Skyttä) (Jan + Silhan) +- doc: assumeyes added to Base.conf and config option (Jan Silhan) +- optionparser: deleted --obsoletes option that conflicted with repoquery + plugin (Jan Silhan) +- dnf-automatic: Document emit_via default (Ville Skyttä) +- man: yum2dnf don;t show content (RhBug:1225246) (Thanks Adam Salih) (Jan + Silhan) +- doc: allowed chars of repo ID (Jan Silhan) +- doc: minimal repo config file (Jan Silhan) +- doc: configuration files replacement policy (Jan Silhan) +- fixed typo in man page (RhBug:1225168) (Michael Mraka) +- Update authors (Michal Luscon) +- dnf-automatic: add random_sleep option (RhBug:1213985) (Vladan Kudlac) +- don't print bug report statement when rpmdb is corrupted + (Related:RhBug:1225277) (Jan Silhan) +- comps: fix unicode issue (RhBug:1223932) (Thanks Parag) (Parag Nemade) +- logging: setup librepo log in verbose mode (Michal Luscon) +- doc: document the versioning scheme (Radek Holy) +- groups: end up empty group removal before solving (Michal Luscon) +- groups: end up empty installation before solving (RhBug:1223614) (Michal + Luscon) +- doc: add support for transactions/packages/ranges in "dnf history list" + (Radek Holy) +- doc: add support for transaction ranges in "dnf history info" (Radek Holy) +- support ssl client certificates (RhBug:1203661) (Michael Mraka) +- doc: document the "mirrorlist" configuration option (Radek Holy) +- doc: document the "metalink" configuration option (Radek Holy) +- doc: document the "baseurl" configuration option (Radek Holy) +- doc: document the "enabled" configuration option (Radek Holy) +- doc: document the "name" configuration option (Radek Holy) +- Revert "spec: added sqlite requirement" (Jan Silhan) +- spec: added sqlite requirement (Jan Silhan) +- cosmetic: fixed typo in comment (Jan Silhan) +- man: added reference to bug reporting guide (Jan Silhan) +- test: ignore user terminal width (Jan Silhan) +- cosmetic: base: import dnf.util.first (Jan Silhan) +- base.upgrade: inform user when pkg not installed and skipped (RhBug:1187741) + (Jan Silhan) +- disable buildtime c/c++ dependency (Michael Mraka) +- doc: document the new virtual provides (Radek Holy) +- AUTHORS: updated (Jan Silhan) +- AUTHORS: distuinguish authors and contributors (Jan Silhan) +- Create ka.po (George Machitidze) +- Parser: fix path handling (Haikel Guemar) +- doc: metadata_timer_sync checked every hour (Jan Silhan) + +* Wed Apr 29 2015 Michal Luscon 1.0.0-1 +- doc: release notes dnf-1.0.0 (Michal Luscon) +- completion: don't do aliases (RhBug:1215289) (Jan Silhan) +- use Sack.load_repo() instead of Sack.load_yum_repo() (Jan Silhan) +- Repo.name has default value of repo ID (RhBug:1215560) (Jan Silhan) +- cosmetic: get rid of user visible yum references (Jan Silhan) +- moved install_or_skip to dnf.comps (Jan Silhan) +- group: see already installed group during installation (RhBug:1199648) (Jan + Silhan) +- group: install_or_skip returns num of packages to install (Jan Silhan) +- group: made global function install_or_skip (Jan Silhan) +- AUTHORS: updated (Radek Holy) +- describe --refresh option in --help output (Pádraig Brady) +- better no such command message (RhBug:1208773) (Jan Silhan) +- doc: package-cleanup example doesn't print 'No match for argument:...' + garbage (Jan Silhan) +- mention yum check replacement (Michael Mraka) +- added ref to dnf list (Michael Mraka) +- added package-cleanup to dnf translation table (Michael Mraka) +- python3: Repo comparison (RhBug:1208018) (Jan Silhan) +- python3: YumHistoryRpmdbProblem comparison (RhBug:1207861) (Jan Silhan) +- python3: YumHistoryTransaction comparison (Jan Silhan) +- tests: use packages in test_transaction (Radek Holy) +- cosmetic: fix some Pylint errors (Radek Holy) +- updated documentation wrt installonlypkgs and auto removal (Michael Mraka) +- mark installonly packages always as userinstalled (RhBug:1201445) (Michael + Mraka) +- mark username/password as api (Michael Mraka) +- document username/password repo attributes (Michael Mraka) +- support HTTP basic auth (RhBug:1210275) (Michael Mraka) +- cli: better metadata timestamp info (Michal Luscon) +- repo: add metadata mirror failure callback (Michal Luscon) +- dnf-yum: cosmetic: lower case after comma (Jan Silhan) +- dnf-yum: print how to install migrate plugin (Jan Silhan) +- doc: show the real package for each tool in dnf-plugins-extras (Tim + Lauridsen) +- doc: improve the documentation of repo costs (Radek Holy) +- doc: fix debuginfo-install package name (Michal Luscon) +- doc: release notes 0.6.5 (Michal Luscon) +- bash-completion: allow only one subcmd for help (Igor Gnatenko) +- bash-completion: add history completion (Igor Gnatenko) +- bash-completion: add completion for help (Igor Gnatenko) +- bash-completion: check where pointing bin/dnf (Igor Gnatenko) +- bash-completion: implement completion for clean cmd (Igor Gnatenko) +- bash_completion: implement downgrade command (Igor Gnatenko) +- bash-completion: refactor to python helper (Igor Gnatenko) +- command downgrade does downgrade_to (RhBug:1191275) (Jan Silhan) +- AUTHORS: updated (Jan Silhan) +- clean: 'dnf clean all' should also clean presto and updateinfo solvx files + (Parag Nemade) +- dnf-yum: modified warning message (RhBug:1207965) (Jan Silhan) + +* Tue Mar 31 2015 Michal Luscon 0.6.5-1 +- subject: expand every glob name only once (RhBug:1203151) (Michal Luscon) +- group mark: skips already installed groups (Jan Silhan) +- Merge pull request #246 from mluscon/yum2dnf (mluscon) +- Add yum2dnf man page (Michal Luscon) +- doc: extend cli_vs_yum (Michal Luscon) +- dnf-yum package does not conflict with yum 3.4.3-505+ (Jan Silhan) +- fixed double set of demand from 0e4276f (Jan Silhan) +- group: remove cmd don't load available_repos, see 04da412 (Jan Silhan) +- spec: /var/lib/dnf owned by dnf-conf (Jan Silhan) +- spec: apply the weak dependencies only on F21+ (Radek Holy) +- dnf-automatic: fixed python_sitelib (RhBug:1199450) (Jan Silhan) +- Add release instructions (Michal Luscon) +- setup tito to bump version in VERSION.cmake (Michal Luscon) +- initialize to use tito (Michal Luscon) +- prepare repo for tito build system (Michal Luscon) +- spec: recommends bash-completion (RhBug:1190671) (Jan Silhan) +- completion: work with just python(3)-dnf (Jan Silhan) +- spec: move necessary files inside python(3) subpackages (RhBug:1191579) (Jan Silhan) +- bash-completion: use python method to get commands (RhBug:1187579) (Igor Gnatenko) +- api: exposed pluginconfpath main config (RhBug:1195325) (Jan Silhan) +- updated AUTHORS (Jan Silhan) +- add reinstall to bash_completion (Alberto Ruiz) +- added new packages to @System for duplicated query test (Michael Mraka) +- test for duplicated, installonly and latest_limit pkgs (Michael Mraka) +- tests for autoremove, extras and recent pkgs (Michael Mraka) +- moved push_userinstalled from base to goal (Michael Mraka) +- filter or skip 'n' latest packages (Michael Mraka) +- moved recent to query (Michael Mraka) +- moved autoremove to query (Michael Mraka) +- moved extras list to query (Michael Mraka) +- create query for installonly packages (Michael Mraka) +- create query for duplicated packages (Michael Mraka) +- cosmetic: base: fixed pylint warnings (Jan Silhan) +- do transaction cleanup after plugin hook (RhBug:1185977) (Michal Luscon) +- base: extend download lock (RhBug:1157233) (Michal Luscon) +- lock: output meaningful error for malformed lock file (Michal Luscon) +- util: fix race condition in ensure_dir() (Michal Luscon) +- lock: switch metadata lock to blocking mode (Michal Luscon) +- install nonmandatory group packages as optional (Related:RhBug:1167881) (Michal Luscon) +- remove command deletes whole dependency tree (RhBug:1154202) (Jan Silhan) +- cmd list takes as parameter, revert of 526e674 (Jan Silhan) +- spec: own /var/lib/dnf directory (RhBug:1198999) (Jan Silhan) +- transifex update (Jan Silhan) +- doc: fixed systemd execution of dnf-automatic (Jan Silhan) +- doc: how to run dnf-automatic (RhBug:1195240) (Jan Silhan) +- cosmetic: added forgotten :api mark from 05b03fc (Jan Silhan) +- api: exposed Repo.skip_if_unavailable config (RhBug:1189083) (Jan Silhan) +- updated documentation for 'dnf list autoremove' (Michael Mraka) +- reuse list_autoremove() in autoremove command (Michael Mraka) +- function for autoremove package list (Michael Mraka) +- implemented dnf list autoremove (Michael Mraka) +- exclude not documented history subcommands (RhBug:1193914,1193915) (Jan Silhan) +- better file pattern recognition (RhBug:1195385) (Jan Silhan) +- spec: fix Obsoletes of the new DNF (Radek Holy) +- remove boot only constraint and add missing download lock (Michal Luscon) +- util: remove unused user_run_dir() function (Michal Luscon) +- lock: change the destination folder of locks to allow suided programs work properly (RhBug:1195661) (Michal Luscon) +- install dnf-3 only when python3 is enabled (thanks glensc) (Jan Silhan) +- fixed unicode Download error (RhBug:1190458) (Jan Silhan) +- log: print metadata age along with timestamp (Petr Spacek) +- cli: fix double expansion of cachedir (RhBug:1194685) (Michal Luscon) +- removed unused dnf-makecache.cron (Jan Silhan) +- renamed erase command to remove (RhBug:1160806) (Jan Silhan) +- spec: made python3-dnf package installed by default in f23 (Jan Silhan) +- AUTHORS: changed email address (Jan Silhan) +- doc: improve the documentation of the "install" command (Radek Holy) +- "dnf install non-existent" should fail (Radek Holy) +- tests: add some tests of Base.install (Radek Holy) +- tests: add some tests of Base.package_install (Radek Holy) +- Revert "doesn't upgrade packages by installing local packages" (RhBug:1160950) (Radek Holy) +- lint: fix all Pylint errors in test_install (Radek Holy) +- tests: add some tests to test_install (Radek Holy) +- tests: improve some tests in test_install (Radek Holy) +- cosmetic: reorder tests in test_install (Radek Holy) +- cosmetic: rename some tests in test_install and add some docstrings (Radek Holy) +- AUTHORS: updated (Jan Silhan) +- Add support for armv6hl (Peter Hjalmarsson) +- doc: subject.__init__(): what is pkg_spec (Jan Silhan) +- doc: mentioning raising IOError from Base.fill_sack() (Jan Silhan) +- option_parser: fixed splitting multiple values (RhBug:1186710) (Jan Silhan) +- AUTHORS: updated (Jan Silhan) +- Standardize words describing boolean data type (Christopher Meng) + +* Wed Feb 4 2015 Jan Silhan - 0.6.4-1 +- Adapt to librepo-1.7.13, metalink and mirrorlist are not loaded anymore when the repo is local. (Radek Holy) +- not raises value error when no metadata exist (Jan Silhan) +- Remove lock files during boot (RhBug:1154476) (Michal Luscon) +- doc: groups are ordered not categories (Jan Silhan) +- doc: added Package attributes to API (Jan Silhan) +- README: link to bug reporting guide (Jan Silhan) +- README: the official documentation is on readthedoc (Jan Silhan) +- i18n: unicode encoding does not throw error (RhBug:1155877) (Jan Silhan) +- conf: added minrate repo option (Related:RhBug:1175466) (Jan Silhan) +- conf: added timeout repo option (RhBug:1175466) (Jan Silhan) +- doc: api_queries: add 'file' filter description (RhBug:1186461) (Igor Gnatenko) +- doc: documenting enablegroups (Jan Silhan) +- log: printing metadata timestamp (RhBug:1170156) (Jan Silhan) +- base: setup default cachedir value (RhBug:1184943) (Michal Luscon) +- orders groups/environments by display_order tag (RhBug:1177002) (Jan Silhan) +- no need to call create_cmdline_repo (Jan Silhan) +- base: package-spec matches all packages which the name glob pattern fits (RhBug:1169165) (Michal Luscon) +- doc: move dnf.conf to appropriate man page section (RhBug:1167982) (Michal Luscon) +- tests: add test for blocking process lock (Michal Luscon) +- lock: fix several race conditions in process lock mechanism (Michal Luscon) +- base: use blocking process lock during download phase (RhBug:1157233) (Michal Luscon) +- Update the Source0 generation commands in dnf.spec.in file (Parag Nemade) +- Enhancement to dnf.spec.in file which follows current fedora packaging guidelines (Parag Nemade) +- doc: add some examples and documentation of the core use case (RhBug:1138096) (Radek Holy) +- bash-completion: enable downgrading packages for local files (RhBug:1181189) (Igor Gnatenko) +- group: prints plain package name when package not in any repo (RhBug:1181397) (Jan Silhan) +- spec: own __pycache__ for python 3 (Igor Gnatenko) +- changed hawkey.log dir to /var/log (RhBug:1175434) (Jan Silhan) +- bash-completion: handle sqlite errors (Igor Gnatenko) +- use LANG=C when invoking 'dnf help' and 'sed' with regular expressions (Jakub Dorňák) +- spec: own __pycache__ directory for py3 (Igor Gnatenko) +- doc: mentioning Install command accepts path to local rpm package (Jan Silhan) +- groups: in erase and install cmd non-existent group does not abort transaction (Jan Silhan) +- doc: running tests in README (Jan Silhan) +- api: transaction: added install_set and remove_set (RhBug:1162887) (Jan Silhan) +- cosmetic: fixed some typos in documentation (Jan Silhan) +- groups: environments described after @ sign works (RhBug:1156084) (Jan Silhan) +- own /etc/dnf/protected.d (RhBug:1175098) (Jan Silhan) +- i18n: computing width of char right (RhBug:1174136) (Jan Silhan) +- cosmetic: renamed _splitArg -> _split_arg (Jan Silhan) +- conf: removed include name conflict (RhBug:1055910) (Jan Silhan) +- output: removed unpredictable decision based on probability introduced in ab4d2c5 (Jan Silhan) +- output: history list is not limited to 20 records (RhBug:1155918) (Jan Silhan) +- doc: referenced forgotten bug fix to release notes (Jan Silhan) +- cosmetic: doc: removed duplicated word (Jan Silhan) +- doc: described unavailable package corner case with skip_if_unavailable option (RhBug:1119030) (Jan Silhan) +- log: replaced size with maxsize directive (RhBug:1177394) (Jan Silhan) +- spec: fixed %ghost log file names (Jan Silhan) + +* Mon Dec 8 2014 Jan Silhan - 0.6.3-2 +- logging: reverted naming from a6dde81 + +* Mon Dec 8 2014 Jan Silhan - 0.6.3-1 +- transifex update (Jan Silhan) +- bash-completion: don't query if we trying to use local file (RhBug:1153543) (Igor Gnatenko) +- bash-completion: fix local completion (RhBug:1151231) (Igor Gnatenko) +- bash-completion: use sqlite cache from dnf-plugins-core (Igor Gnatenko) +- base: output a whole list of installed packages with glob pattern (RhBug:1163063) (Michal Luscon) +- cli: _process_demands() does not respect --caheonly (RhBug:1151854) (Michal Luscon) +- new authors added (Jan Silhan) +- install: allow installation of provides with glob (Related:RhBug:1148353) (Michal Luscon) +- tests: removed mock patch for _, P_ (Jan Silhan) +- fixed error summary traceback (RhBug:1151740) (Jan Silhan) +- doc: swap command alternative mentioned (RhBug:1110780) (Jan Silhan) +- base: package_reinstall works only with the same package versions (Jan Silhan) +- base: package_install allows install different arch of installed package (Jan Silhan) +- base: package_downgrade prints message on failure (Jan Silhan) +- base: package_upgrade does not reinstall or downgrade (RhBug:1149972) (Jan Silhan) +- groups: searches also within localized names (RhBug:1150474) (Jan Silhan) +- Run tests with C locales. (Daniel Mach) +- Adds new motd emitter for dnf-automatic (RhBug:995537) (Kushal Das) +- Fix wrong cache directory path used to clean up binary cache (Satoshi Matsumoto) +- fix: traceback in history info (RhBug: 1149952) (Tim Lauridsen) +- logging: added logrotate script for hawkey.log (RhBug:1149350) (Jan Silhan) +- output: renamed displayPkgsInGroups (Jan Silhan) +- logging: renamed log files (RhBug:1074715)" (Jan Silhan) +- comps: Environment differentiates optional and mandatory groups (Jan Silhan) +- group info handles environments (RhBug:1147523) (Jan Silhan) +- deltarpm enabled by default (RhBug:1148208) (Jan Silhan) +- doc: deplist command (Jan Silhan) +- doc: minor fixes + repo references changed (Jan Silhan) +- spec: requires rpm-plugin-systemd-inhibit (RhBug:1109927) (Jan Silhan) + +* Fri Oct 3 2014 Jan Silhan - 0.6.2-1 +- transifex update (Jan Silhan) +- refactor: move MakeCacheCommand out into its own file. (Ales Kozumplik) +- api: add dnf.cli.CliError. (Ales Kozumplik) +- Update user_faq.rst (Stef Krie) +- Make --refresh play nice with lazy commands. (Ales Kozumplik) +- bash-completion: more faster completing install/remove (Igor Gnatenko) +- bash-completion: complete 'clean|groups|repolist' using help (Igor Gnatenko) +- Allow some commands to use stale metadata. (RhBug:909856) (Ales Kozumplik) +- does not install new pkgs when updating from local pkgs (RhBug:1134893) (Jan Silhan) +- doesn't upgrade packages by installing local packages (Related:RhBug:1138700) (Jan Silhan) +- refactor: repo: separate concepts of 'expiry' and 'sync strategy'. (Ales Kozumplik) +- fix: dnf.cli.util.* leaks file handles. (Ales Kozumplik) +- remove: YumRPMTransError. (Ales Kozumplik) +- rename: Base's runTransaction -> _run_transaction(). (Ales Kozumplik) +- drop unused parameter of Base.verify_transaction(). (Ales Kozumplik) +- bash-completion: new completion from scratch (RhBug:1070902) (Igor Gnatenko) +- py3: add queue.Queue to pycomp. (Ales Kozumplik) +- locking: store lockfiles with the resource they are locking. (RhBug:1124316) (Ales Kozumplik) +- groups: marks reason 'group' for packages that have no record yet (RhBug:1136584) (Jan Silhan) +- goal: renamed undefined name variable (Jan Silhan) +- refactor: split out and clean up the erase command. (Ales Kozumplik) +- py3: fix traceback in fmtColumns() on a non-subscriptable 'columns'. (Ales Kozumplik) +- groups: allow erasing depending packages on remove (RhBug:1135861) (Ales Kozumplik) +- history: fixed wrong set operation (RhBug:1136223) (Jan Silhan) +- base: does not reinstall pkgs from local rpms with install command (RhBug:1122617) (Jan Silhan) +- refactor: crypto: drop the integer keyid representation altogether. (Ales Kozumplik) +- crypto: fix importing rpmfusion keys. (RhBug:1133830) (Ales Kozumplik) +- refactor: crypto: Key is a class, not an "info" dict. (Ales Kozumplik) +- repos: fix total downloaded size reporting for cached packages. (RhBug:1121184) (Ales Kozumplik) + +* Thu Aug 28 2014 Jan Silhan - 0.6.1-1 +- packaging: add dnf-yum. (Ales Kozumplik) +- cli: added plugins missing hint (RhBug:1132335) (Jan Silhan) +- using ts.addReinstall for package reinstallation (RhBug:1071854) (Jan Silhan) +- Add history redo command. (Radek Holy) +- Add a TransactionConverter class. (Radek Holy) +- bash-completion: complete `help` with commands (Igor Gnatenko) +- bash-completion: generate commands dynamically (Igor Gnatenko) +- base: group_install accepts glob exclude names (RhBug:1131969) (Jan Silhan) +- README: changed references to new repo location (Jan Silhan) +- transifex update (Jan Silhan) +- syntax: fixed indentation (Jan Silhan) +- removed lt.po which was accidentally added in c2e9b39 (Jan Silhan) +- lint: fix convention violations in the new source files (Radek Holy) +- Fix setting of the resolving demand for repo-pkgs command. (Radek Holy) +- Add repository-packages remove-or-distro-sync command. (RhBug:908764) (Radek Holy) +- fix: traceback that GroupPersistor._original might not exist. (RhBug:1130878) (Ales Kozumplik) +- pycomp: drop to_ord(). (Ales Kozumplik) +- refactor: crypto.keyids_from_pubring() using _extract_signing_subkey(). (Ales Kozumplik) +- fix: another 32-bit hex() problem in crypto. (Ales Kozumplik) +- remove: pgpmsg.py. (Ales Kozumplik) +- replace the whole of pgpmsg.py with gpgme and a dummy context. (Ales Kozumplik) +- cosmetic: sort methods of Repo according to the coding standard. (Ales Kozumplik) +- Fix dnf.crypto.keyinfo2keyid(). (Ales Kozumplik) +- util: get rid of an inconvenient 'default_handle' constant. (Ales Kozumplik) +- simplify misc.import_key_to_pubring()'s signature. (Ales Kozumplik) +- cleanup: header of dnf.yum.pgpmsg. (Ales Kozumplik) +- crypto: add crypto.retrieve() and drop Base._retrievePublicKey() (Ales Kozumplik) +- cosmetic: order of functions in dnf.crypto. (Ales Kozumplik) +- unicode: fixed locale.format error (RhBug:1130432) (Jan Silhan) +- remove: misc.valid_detached_sig(). (Ales Kozumplik) +- tests: some tests for dnf.crypto. (Ales Kozumplik) +- crypto: use pubring_dir() context manager systematically. (Ales Kozumplik) +- Drop unused argument from getgpgkeyinfo(). (Ales Kozumplik) +- remove: Base._log_key_import(). (Ales Kozumplik) +- doc: cosmetic: conf_ref: maintain alphabetical order of the options. (Ales Kozumplik) +- crypto: document crypto options for repo. (Ales Kozumplik) +- crypto: fixup procgpgkey() to work with Py3 bytes. (Ales Kozumplik) +- dnf.util.urlopen(): do not create unicode streams for Py3 and bytes for Py2 by default. (Ales Kozumplik) +- lint: delinting of the repo_gpgcheck patchset. (Ales Kozumplik) +- Add CLI parts to let the user confirm key imports. (RhBug:1118236) (Ales Kozumplik) +- gpg: make key decoding work under Py3. (Ales Kozumplik) +- crypto: add dnf.crypto and fix things up so untrusted repo keys can be imported. (Ales Kozumplik) +- transifex update (Jan Silhan) +- syntax: fixed indentation (Jan Silhan) +- packaging: pygpgme is a requirement. (Ales Kozumplik) +- remove: support for gpgcakey gets dropped for now. (Ales Kozumplik) +- repo: smarter _DetailedLibrepoError construction. (Ales Kozumplik) +- repo: nicer error message on librepo's perform() failure. (Ales Kozumplik) +- get_best_selector returns empty selector instead of None (Jan Silhan) +- packaging: add automatic's systemd unit files. (RhBug:1109915) (Ales Kozumplik) +- automatic: handle 'security' update_cmd. (Ales Kozumplik) + +* Tue Aug 12 2014 Aleš Kozumplík - 0.6.0-1 +- lint: fix convention violations in the new source files (Radek Holy) +- Add "updateinfo [] [] security" command. (RhBug:850912) (Radek Holy) +- Add "updateinfo [] [] bugfix" command. (Radek Holy) +- Add "updateinfo [] [] enhancement" command. (Radek Holy) +- Add "updateinfo [] [] [...]" command. (Radek Holy) +- Add "updateinfo [] [] [...]" command. (Radek Holy) +- Add "updateinfo [] all" command. (Radek Holy) +- Add "updateinfo [] updates" command. (Radek Holy) +- Add "updateinfo [] installed" command. (Radek Holy) +- Add "-v updateinfo info" command. (Radek Holy) +- Add "updateinfo info" command. (Radek Holy) +- Add "updateinfo list" command. (Radek Holy) +- Add "updateinfo available" command. (Radek Holy) +- Add "updateinfo summary" command. (Radek Holy) +- Add basic updateinfo command. (Radek Holy) +- test: add updateinfo to the testing repository (Radek Holy) +- test: support adding directory repos to Base stubs (Radek Holy) +- test: really don't break other tests with the DRPM fixture (Radek Holy) +- Load UpdateInfo.xml during the sack preparation. (Radek Holy) +- Add Repo.updateinfo_fn. (Radek Holy) +- lint: add Selector calls to false positives, it's a hawkey type. (Ales Kozumplik) +- removed recursive calling of ucd in DownloadError (Jan Silhan) +- does not throw error when selector is empty (RhBug:1127206) (Jan Silhan) +- remove etc/version-groups.conf, not used. (Ales Kozumplik) +- lint: dnf.conf.parser (Ales Kozumplik) +- rename: dnf.conf.parser.varReplace()->substitute() (Ales Kozumplik) +- pycomp: add urlparse/urllib.parser. (Ales Kozumplik) +- move: dnf.yum.parser -> dnf.conf.parser. (Ales Kozumplik) +- packaging: add dnf-automatic subpackage. (Ales Kozumplik) +- doc: properly list the authors. (Ales Kozumplik) +- automatic: add documentation, including dnf.automatic(8) man page. (Ales Kozumplik) +- dnf-automatic: tool supplying the yum-cron functionality. (Ales Kozumplik) +- doc: cosmetic: fixed indent in proxy directive (Jan Silhan) +- include directive support added (RhBug:1055910) (Jan Silhan) +- refactor: move MultiCallList to util. (Ales Kozumplik) +- cli: do not output that extra starting newline in list_transaction(). (Ales Kozumplik) +- refactor: extract CLI cachedir magic to cli.cachedir_fit. (Ales Kozumplik) +- transifex update (Jan Silhan) +- move: test_output to tests/cli. (Ales Kozumplik) +- refactor: move Term into its own module. (Ales Kozumplik) +- refactoring: cleanup and linting in dnf.exceptions. (Ales Kozumplik) +- lint: test_cli.py (Ales Kozumplik) +- lint: rudimentary cleanups in tests.support. (Ales Kozumplik) +- refactor: loggers are module-level variables. (Ales Kozumplik) +- groups: promote unknown-reason installed packages to 'group' on group install. (RhBug:1116666) (Ales Kozumplik) +- c82267f refactoring droppped plugins.run_transaction(). (Ales Kozumplik) +- cli: sort packages in the transaction summary. (Ales Kozumplik) +- refactor: cli: massively simplify how errors are propagated from do_transaction(). (Ales Kozumplik) +- groups: rearrange things in CLI so user has to confirm the group changes. (Ales Kozumplik) +- groups: committing the persistor data should only happen at one place. (Ales Kozumplik) +- groups: visualizing the groups transactions. (Ales Kozumplik) +- Add dnf.util.get_in() to navigate nested dicts with sequences of keys. (Ales Kozumplik) +- group persistor: generate diffs between old and new DBs. (Ales Kozumplik) +- Better quoting in dnf_pylint. (Ales Kozumplik) +- lint: logging.py. (Ales Kozumplik) +- Do not print tracebacks to the tty on '-d 10' (RhBug:1118272) (Ales Kozumplik) +- search: do not double-report no matches. (Ales Kozumplik) +- refactor: move UpgradeToCommand to its own module. (Ales Kozumplik) + +* Mon Jul 28 2014 Aleš Kozumplík - 0.5.5-1 +- packaging: also add pyliblzma to BuildRequires. (Ales Kozumplik) +- essential cleanup in dnf.yum.misc, removing a couple of functions too. (Ales Kozumplik) +- remove: Base.findDeps and friends. (Ales Kozumplik) +- Make pyliblzma a requriement. (RhBug:1123688) (Ales Kozumplik) +- whole user name can contain non-ascii chars (RhBug:1121280) (Jan Silhan) +- Straighten up the exceptions when getting a packages header. (RhBug:1122900) (Ales Kozumplik) +- tests: refactor: rename test_resource_path() -> resource_path() and use it more. (Ales Kozumplik) +- transifex update (Jan Silhan) +- remove: conf.commands. (Ales Kozumplik) +- proxy username and password, for both CLI and API. (RhBug:1120583) (Ales Kozumplik) +- conf: only 'main' is a reserved section name. (Ales Kozumplik) +- refactoring: cleanup a couple of lint warnings in base.py. (Ales Kozumplik) +- refactoring: move repo reading implementation out of dnf.Base. (Ales Kozumplik) +- refactor: repo_setopts is a CLI thing and doesn't belong to Base. (Ales Kozumplik) +- refactor: move cleanup methods to dnf.cli.commands.clean. (Ales Kozumplik) +- depsolving: doesn't install both architectures of pkg by filename (RhBug:1100946) (Jan Silhan) +- refactor: put CleanCommand in its own module. (Ales Kozumplik) +- cli: avoid 'Error: None' output on malformed CLI commands. (Ales Kozumplik) +- remove the special SIGQUIT handler. (Ales Kozumplik) +- api: In Repo(), cachedir is a required argument. (Ales Kozumplik) +- api: better describe how Repos should be created, example. (RhBug:1117789) (Ales Kozumplik) +- Base._conf lasts the lifetime of Base and can be passed via constructor. (Ales Kozumplik) +- doc: faq: having Yum and DNF installed at the same time. (Ales Kozumplik) +- remove: protected_packages config option, it has been ignored. (Ales Kozumplik) +- fix: misleading error message when no repo is enabled. (Ales Kozumplik) + +* Wed Jul 16 2014 Aleš Kozumplík - 0.5.4-1 +- pkg name from rpm transaction callback is in Unicode (RhBug:1118796) (Jan Silhan) +- packaging: python3-dnf depends on dnf. (RhBug:1119032) (Ales Kozumplik) +- Ship /usr/bin/dnf-3 to run DNF under Py3. (RhBug:1117678) (Ales Kozumplik) +- packaging: own /etc/dnf/plugins. (RhBug:1118178) (Ales Kozumplik) +- fix: pluginconfpath is a list. (Ales Kozumplik) +- cosmetic: use classmethod as a decorator in config.py. (Ales Kozumplik) +- cleanup: imports in dnf.cli.output (Ales Kozumplik) +- lint: straightforward lint fixes in dnf.cli.output. (Ales Kozumplik) +- Repo.__setattr__ has to use the parsed value. (Ales Kozumplik) +- Repo priorities. (RhBug:1048973) (Ales Kozumplik) +- repo: simplify how things are propagated to repo.hawkey_repo. (Ales Kozumplik) +- refactor: concentrate Repo.hawkey_repo construction in Repo.__init__(). (Ales Kozumplik) +- bash-completion: Update command and option lists, sort in same order as --help (Ville Skyttä) +- bash-completion: Use grep -E instead of deprecated egrep (Ville Skyttä) +- output: fixed identation of info command output (Jan Silhan) +- i18n: calculates right width of asian utf-8 strings (RhBug:1116544) (Jan Silhan) +- transifex update + renamed po files to Fedora conventions (Jan Silhan) +- remove: CLI: --randomwait (Ales Kozumplik) +- cli: fix: --installroot has to be used with --releasever (RhBug:1117293) (Ales Kozumplik) +- Base.reset(goal=True) also resets the group persistor (RhBug:1116839) (Ales Kozumplik) +- tests: fix failing DistroSync.test_distro_sync(). (Ales Kozumplik) +- logging: RPM transaction markers are too loud. (Ales Kozumplik) +- logging: silence drpm a bit. (Ales Kozumplik) +- logging: put timing functionality into one place. (Ales Kozumplik) +- repolist: fix traceback with disabled repos. (RhBug:1116845) (Ales Kozumplik) +- refactor: cleanups in repolist. (Ales Kozumplik) +- lint: remove some unused imports. (Ales Kozumplik) +- cli: break out the repolsit command into a separate module. (Ales Kozumplik) +- does not crash with non-ascii user name (RhBug:1108908) (Jan Silhan) +- doc: document 'pluginpath' configuration option. (RhBug:1117102) (Ales Kozumplik) +- Spelling fixes (Ville Skyttä) +- cli: Fix software name in --version help (Ville Skyttä) +- doc: ip_resolve documented at two places. remove one. (Ales Kozumplik) + +* Thu Jul 3 2014 Aleš Kozumplík - 0.5.3-1 +- packaging: bump hawkey dep to 0.4.17. (Ales Kozumplik) +- api: remove Base.select_group(). (Ales Kozumplik) +- tests: cleanup our base test case classes a bit. (Ales Kozumplik) +- Add DNF itself among the protected packages. (Ales Kozumplik) +- api: plugins: add the resolved() hook. (Ales Kozumplik) +- api: expose Transaction introspecting in the API. (RhBug:1067156) (Ales Kozumplik) +- api: add basic documentation for dnf.package.Package. (Ales Kozumplik) +- tests: cosmetic: conf.protected_packages is ignored, drop it in FakeConf. (Ales Kozumplik) +- cli: simplify exception handling more. (Ales Kozumplik) +- Fixed a minor typo in user_faq - 'intall' should be 'install' (Martin Preisler) +- fixed encoding of parsed config line (RhBug:1110800) (Jan Silhan) +- syntax: replaced tab with spaces (Jan Silhan) +- doc: acknowledge the existence of plugins on the man page (RhBug:1112669) (Ales Kozumplik) +- improve the 'got root?' message of why a transaction couldn't start. (RhBug:1111569) (Ales Kozumplik) +- traceback in Base.do_transaction. to_utf8() is gone since 06fb280. (Ales Kozumplik) +- fix traceback from broken string formatting in _retrievePublicKey(). (RhBug:1111997) (Ales Kozumplik) +- doc: replace Yum with DNF in command_ref.rst (Viktor Ashirov) +- Fix a missing s in the title (mscherer) +- api: add dnf.rpm.detect_releasever() (Ales Kozumplik) +- Detect distroverpkg from 'system-release(release)' (RhBug:1047049) (Ales Kozumplik) +- bulid: add dnf/conf to cmake. (Ales Kozumplik) +- lint: clean up most lint messages in dnf.yum.config (Ales Kozumplik) +- remove: couple of dead-code methods in dnf.yum.config. (Ales Kozumplik) +- api: document client's responsibility to preset the substitutions. (RhBug:1104757) (Ales Kozumplik) +- move: rpmUtils -> rpm. (Ales Kozumplik) +- refactor: move yumvar out into its proper module dnf.conf.substitutions. (Ales Kozumplik) +- refactor: turn dnf.conf into a package. (Ales Kozumplik) +- doc: api_base.rst pointing to nonexistent method. (Ales Kozumplik) +- remove: some logging from Transaction.populate_rpm_ts(). (Ales Kozumplik) +- Update cli_vs_yum.rst (James Pearson) +- api: doc: queries relation specifiers, with an example. (RhBug:1105009) (Ales Kozumplik) +- doc: phrasing in ip_resolve documentation. (Ales Kozumplik) +- cli: refactored transferring cmdline options to conf (Jan Silhan) +- cli: added -4/-6 option for using ipv4/ipv6 connection (RhBug:1093420) (Jan Silhan) +- cosmetic: empty set inicialization (Jan Silhan) +- repo: improve the RepoError message to include URL. (Ales Kozumplik) +- remove: dnf.yum.config.writeRawRepoFile(). (Ales Kozumplik) +- remove: bunch of (now) blank config options. (Ales Kozumplik) +- removed unique function (Jan Silhan) +- tests: mock.assert_has_calls() enforces its iterable arguments in py3.4. (Ales Kozumplik) +- logging: improve how repolist logs the total number of packages. (Ales Kozumplik) +- logging: Base.close() should not log to the terminal. (Ales Kozumplik) + +* Wed May 28 2014 Aleš Kozumplík - 0.5.2-1 +- doc: packaging: add license block to each .rst. (Ales Kozumplik) +- cosmetic: replaced yum with dnf in comment (Jan Silhan) +- takes non-ascii cmd line input (RhBug:1092777) (Jan Silhan) +- replaced 'unicode' conversion functions with 'ucd' (RhBug:1095861) (Jan Silhan) +- using write_to_file py2/py3 compatibility write function (Jan Silhan) +- encoding: all encode methods are using utf-8 coding instead of default ascii (Jan Silhan) +- fixed rpmbuild warning of missing file (Jan Silhan) +- transifex update (Jan Silhan) +- fixed typos in comments (Jan Silhan) +- Drop --debugrepodata and susetags generation with it. (Ales Kozumplik) +- doc: document --debugsolver. (Ales Kozumplik) +- fix: 'dnf repo-pkgs' failures (RhBug:1092006) (Radek Holy) +- lint: make dnf_pylint take '-s' that suppresses line/column numbers. (Ales Kozumplik) +- doc: cli_vs_yum: we do not promote installs to the obsoleting package. (RhBug:1096506) (Ales Kozumplik) +- dealing with installonlies, we always need RPMPROB_FILTER_OLDPACKAGE (RhBug:1095580) (Ales Kozumplik) +- transifex update (Jan Silhan) +- arch: recognize noarch as noarch's basearch. (RhBug:1094594) (Ales Kozumplik) +- pylint: clean up dnf.repo. (Ales Kozumplik) +- sslverify: documentation and bumped librepo require. (Ales Kozumplik) +- repos: support sslverify setting. (RhBug:1076045) (Ales Kozumplik) +- search: exact matches should propagate higher. (RhBug:1093888) (Ales Kozumplik) +- refactor: concentrate specific search functionality in commands.search. (Ales Kozumplik) +- refactor: SearchCommand in its own file. (Ales Kozumplik) +- pylint: fix around one hundred pylint issues in dnf.base. (Ales Kozumplik) +- pylint: add simple pylint script (Ales Kozumplik) +- autoerase: write out the debugdata used to calculate redundant packages. (Ales Kozumplik) +- cosmetic: fix pylint comment in test_group.py. (Ales Kozumplik) +- refactor: err_mini_usage() is public. (Ales Kozumplik) +- refactor: fix several pylint errors in dnf.cli.commands.group. (Ales Kozumplik) +- fix: 'dnf remove' is deprecated so autoremove should be autoerase. (Ales Kozumplik) +- doc: command_ref: remove the deprecated aliases from the initial list. (Ales Kozumplik) +- Add autoremove command. (RhBug:963345) (Ales Kozumplik) +- refactor: Base.push_userinstalled() is public. (Ales Kozumplik) +- Remove sudo from dnf-completion.bash RhBug:1073457 (Elad Alfassa) +- exclude switch takes as a parameter (Jan Silhan) +- using nevra glob query during list command (RhBug:1083679) (Jan Silhan) +- removed rpm.RPMPROB_FILTER_REPLACEOLDFILES filter flag (Jan Silhan) +- test: changed tests according to new distro-sync behavior (Jan Silhan) +- packaging: cosmetic: copyright years in bin/dnf. (Ales Kozumplik) +- bin/dnf: run the python interpreter with -OO. (Ales Kozumplik) + +* Fri May 2 2014 Aleš Kozumplík - 0.5.1-1 +- drpm: output stats (RhBug:1065882) (Ales Kozumplik) +- refactor: architectures. (Ales Kozumplik) +- cli: be lot less verbose about dep processing. (Ales Kozumplik) +- groups: do not error out if group install/remove produces no RPM transaction. (Ales Kozumplik) +- fix: do not traceback on comps remove operations if proper pkg reasons can not be found. (Ales Kozumplik) +- fix: tracebacks in 'group remove ...' (Ales Kozumplik) +- groups: move all the logic of persistor saving from main.py to Base. (Ales Kozumplik) +- groups: auto-saving the groups persistor. (RhBug:1089864) (Ales Kozumplik) +- transifex update (Jan Silhan) +- remove: profiling code from cli.main. (Ales Kozumplik) +- remove: removal of dead code (Miroslav Suchý) +- doc: changes to rhbug.py to work on readthedocs.org. (Ales Kozumplik) +- doc: build the documentation without any dependencies (on DNF or anything else). (Ales Kozumplik) +- doc: make clear where one should expect bin/dnf (Miroslav Suchý) +- abrt: disable abrt for 'dnf makecache timer' run from systemd.service. (RhBug:1081753) (Ales Kozumplik) +- remove: stray itertools import from group.py. (Ales Kozumplik) + +* Wed Apr 23 2014 Aleš Kozumplík - 0.5.0-1 +- doc: fix formatting in api_cli.rst. (Ales Kozumplik) +- doc: document operation of 'group upgrade'. (Ales Kozumplik) +- comps: ensure only packages of 'group' reason get deleted on 'group erase'. (Ales Kozumplik) +- comps: store 'group' reason when installing a group-membering package. (Ales Kozumplik) +- Override Goal.get_reason(). (Ales Kozumplik) +- Add dnf.goal.Goal deriving from hawkey.Goal. (Ales Kozumplik) +- fix: encoding of yumdb directory names in py3. (Ales Kozumplik) +- tests: clean up the functions that load seeded comps a bit. (Ales Kozumplik) +- remove: cli._*aybeYouMeant(). (Ales Kozumplik) +- simplify groups/envs API methods in Base a lot. (Ales Kozumplik) +- tests: add test for Base._translate_comps_pkg_types() (Ales Kozumplik) +- refactor: move the group listing etc. methods() away from Base into GroupCommand. (Ales Kozumplik) +- api: add group.upgrade opration to Base and CLI (RhBug:1029022) (Ales Kozumplik) +- remove: OriginalGroupPersistor. (Ales Kozumplik) +- groups: store format version of the groups db. (Ales Kozumplik) +- groups: saving the persistent data. (Ales Kozumplik) +- refactor: extract out the transactioning part of _main(). (Ales Kozumplik) +- groups: Integrate the redone components with Base. (Ales Kozumplik) +- Add comps Solver. (Ales Kozumplik) +- groups: redo the GroupPersistor class. (Ales Kozumplik) +- doc: faq: why we don't check for root. (RhBug:1088166) (Ales Kozumplik) +- cosmetic: reordered import statements (Jan Silhan) +- added --refresh option (RhBug:1064226) (Jan Silhan) +- added forgotten import (Jan Silhan) +- fixed import errors after yum/i18n.py removal (Jan Silhan) +- removed to_utf8 from yum/i18n.py (Jan Silhan) +- removed to_str from yum/i18n.py (Jan Silhan) +- removed utf8_text_fill from yum/i18n.py (Jan Silhan) +- removed utf8_width from yum/i18n.py (Jan Silhan) +- removed utf8_width_fill from yum/i18n.py (Jan Silhan) +- removed to_unicode from yum/i18n.py (Jan Silhan) +- make all strings unicode_literals implicitly (Jan Silhan) +- moved _, P_ to dnf/i18n.py (Jan Silhan) +- removed utf8_valid from yum/i18n.py (Jan Silhan) +- removed str_eq from yum/i18n.py (Jan Silhan) +- removed exception2msg from yum/i18n.py (Jan Silhan) +- removed dummy_wrapper from yum/i18n.py (Jan Silhan) +- cosmetics: leave around the good things from 660c3e5 (documentation, UT). (Ales Kozumplik) +- Revert "fix: provides are not recognized for erase command. (RhBug:1087063)" (Ales Kozumplik) +- fix: provides are not recognized for erase command. (RhBug:1087063) (Ales Kozumplik) +- test: fix UsageTest test, so it work without dnf is installed on the system PEP8 cleanup (Tim Lauridsen) +- cleanup: getSummary() and getUsage() can be dropped entirely now. (Ales Kozumplik) +- test: use Command.usage & Command.summary API in unittest (Tim Lauridsen) +- show plugin commands in separate block api: add new public Command.usage & Command.summary API cleanup: make Commands (Tim Lauridsen) +- tests: move libcomps test to a separate test file. (Ales Kozumplik) +- refactor: put DistoSyncCommand into its own file (Tim Lauridsen) +- refactor: commands.group: _split_extcmd is a static method. (Ales Kozumplik) +- GroupsCommand: make the way comps are searched more robust. (RhBug:1051869) (Ales Kozumplik) +- tests: move GroupCommand tests to a more proper place. (Ales Kozumplik) +- fix leak: Base.__del__ causes GC-uncollectable circles. (Ales Kozumplik) +- gruops: 'list' and similar commands should run without root. (RhBug:1080331) (Ales Kozumplik) +- refactor: conf is given to Output on instantiation. (Ales Kozumplik) +- remove: Command.done_command_once and Command.hidden. (Ales Kozumplik) +- [doc] improve documentation of '--best' (RhBug:1084553) (Ales Kozumplik) +- api: Command.base and Command.cli are API attributes. (Ales Kozumplik) +- demands: similarly to 78661a4, commands should set the exit success_exit_status directly. (Ales Kozumplik) +- demands: commands requiring resolving dymamically need to set the demand now. (Ales Kozumplik) +- doc: typo in group doc. (RhBug:1084139) (Ales Kozumplik) +- api: Base.resolve() takes allow_erasing. (RhBug:1073859) (Ales Kozumplik) +- refactor: OptionParser._checkAbsInstallRoot is static. (Ales Kozumplik) +- option_parser: remove base dependency. (Ales Kozumplik) +- move: dnf.cli.cli.OptionParser -> dnf.cli.option_parser.OptionParser. (Ales Kozumplik) +- doc: 'clean packages' incorrectly mentions we do not delete cached packages. (RhBug:1083767) (Ales Kozumplik) +- fix: TypeError in dnf history info (RHBug: #1082230) (Tim Lauridsen) +- Start new version: 0.5.0. (Ales Kozumplik) +- remove: instance attrs of Base, namely cacheonly. (Ales Kozumplik) +- tests: remove: support.MockCli. (Ales Kozumplik) +- tests: fix locale independence. (Radek Holy) +- cleanups in cli.OptionParser. (Ales Kozumplik) +- fix: PendingDeprecationWarning from RPM in gpgKeyCheck(). (Ales Kozumplik) +- api: add Cli.demands.root_user (RhBug:1062889) (Ales Kozumplik) +- api: add Cli.demands and Command.config() to the API (RhBug:1062884) (Ales Kozumplik) +- Integrate DemandSheet into CLI. (Ales Kozumplik) +- Command.configure() takes the command arguments like run(). (Ales Kozumplik) +- Add dnf.cli.demand.DemandSheet. (Ales Kozumplik) +- remove: dead code for deplist, version and check-rpmdb commands. (Ales Kozumplik) +- sync with transifex (Jan Silhan) +- removed _enc method that did nothing without specspo (Jan Silhan) +- fixed local reinstall error (Jan Silhan) +- Fix Term.MODE setting under Python 3 in case of incapable tty stdout. (Radek Holy) +- tests: move Term tests to better file. (Radek Holy) +- refactor: move ReinstallCommand in its own module. (Ales Kozumplik) +- rename: yumbase (case insensitive) -> base. (Ales Kozumplik) +- fixed py3 error thrown by search command (Jan Silhan) +- fixed wrong named variable (Jan Silhan) +- fixed local downgrade error (Jan Silhan) +- doc: fix Package references that are ambiguous now. (Ales Kozumplik) +- fix: resource leak in yum.misc.checksum() under py3. (Ales Kozumplik) +- fix: leak: couple of files objects left open. (Ales Kozumplik) +- fix PendingDepreaction warning from rpm in _getsysver(). (Ales Kozumplik) +- repo: Repo.cachedir is not a list. (Ales Kozumplik) +- api: add Base.package_install et al. and Base.add_remote_rpm(). (RhBug:1079519) (Ales Kozumplik) +- tests: fix tests broken under foreign locale after 32818b2. (Ales Kozumplik) +- refactor: move install, downgrade and upgrade commands into separate modules. (Ales Kozumplik) +- tests: refactor: make Term tests more isolated. (Radek Holy) +- tests: fix terminfo capability independence. (Radek Holy) +- api: explain that Base is a context manager with a close(). (Ales Kozumplik) +- cosmetic: move stuff around in comps. (Ales Kozumplik) +- api: groups: add comps.Package, add group.package_iter(). (RhBug:1079932) (Ales Kozumplik) +- fixed installation of conflicted packages (RhBug:1061780) (Jan Silhan) +- removed never executed code based on _ts_saved_file variable (Jan Silhan) +- added logrotate script and ownership of log files to dnf (RhBug:1064211) (Jan Silhan) +- fixed: highlight characters broken under py3 (RhBug:1076884) (Jan Silhan) +- remove: base.deselectGroup(). it is not used. (Ales Kozumplik) +- tests: fix broken InstallMultilib.test_install_src_fails(). (Ales Kozumplik) +- groups: support manipulation with environments (RhBug:1063666) (Ales Kozumplik) +- add dnf.util.partition(). (Ales Kozumplik) +- refactor: RepoPersistor: use the global logger instead of an instance variable. (Ales Kozumplik) +- groups: besides installed groups also store persistently the environments. (Ales Kozumplik) +- rename: persistor.Groups -> ClonableDict. (Ales Kozumplik) +- doc: cli_vs_yum: typography in bandwidth limiting section. (Ales Kozumplik) +- doc: cli_vs_yum: we do not partially allow operations that install .srpm. (RhBug:1080489) (Ales Kozumplik) +- refactor: imports order in cli/commands/__init__.py. (Ales Kozumplik) +- refactor: groups: make all commands use _patterns2groups(). (Ales Kozumplik) +- kernel: remove kernel-source from const.INSTALLONLYPKGS. (Ales Kozumplik) +- build: 0.4.19-1 (Ales Kozumplik) +- New version: 0.4.19 (Ales Kozumplik) +- downloads: bump number of downloaded files on a skip. (RhBug:1079621) (Ales Kozumplik) +- packaging: add dnf.cli.commands to the installation. (Ales Kozumplik) +- refactor: put GroupCommand into its separate module. (Ales Kozumplik) +- rename: make cli.commands a subpackage. (Ales Kozumplik) +- AUTHORS: added Albert. (Ales Kozumplik) +- test: fixed CacheTest.test_noroot() when running as root (Albert Uchytil) +- AUTHORS: added Tim. (Ales Kozumplik) +- fixes TypeError: '_DownloadErrors' object is not iterable (RhBug:1078832) (Tim Lauridsen) +- fixed not including .mo files (Jan Silhan) +- comps: _by_pattern() no longer does the comma splitting. (Ales Kozumplik) + +* Mon Mar 24 2014 Aleš Kozumplík - 0.4.19-1 +- downloads: bump number of downloaded files on a skip. (RhBug:1079621) (Ales Kozumplik) +- packaging: add dnf.cli.commands to the installation. (Ales Kozumplik) +- refactor: put GroupCommand into its separate module. (Ales Kozumplik) +- rename: make cli.commands a subpackage. (Ales Kozumplik) +- AUTHORS: added Albert. (Ales Kozumplik) +- test: fixed CacheTest.test_noroot() when running as root (Albert Uchytil) +- AUTHORS: added Tim. (Ales Kozumplik) +- fixes TypeError: '_DownloadErrors' object is not iterable (RhBug:1078832) (Tim Lauridsen) +- fixed not including .mo files (Jan Silhan) +- comps: _by_pattern() no longer does the comma splitting. (Ales Kozumplik) +- including .mo files correctly (Jan Silhan) +- tests: fix locale independence. (Radek Holy) +- remove: unused trashy methods in dnf.yum.misc. (Ales Kozumplik) +- persistor: do not save Groups if it didn't change (RhBug:1077173) (Ales Kozumplik) +- tests: simplify the traceback logging. (Ales Kozumplik) +- main: log IO errors etc. thrown even during Base.__exit__. (Ales Kozumplik) +- logging: do not log IOError tracebacks in verbose mode. (Ales Kozumplik) +- refactor: move out main._main()'s inner error handlers. (Ales Kozumplik) +- added gettext as a build dependency for translation files (Jan Silhan) +- translation: updated .pot file and fetched fresh .po files from transifex (Jan Silhan) +- removed redundant word from persistor translation (Jan Silhan) +- translation: show relative path in generated pot file (Jan Silhan) +- refactor: replaced type comparisons with isinstance (Jan Silhan) +- translation: added mo files generation and including them in rpm package (Jan Silhan) +- removed unused imports in base.py (Jan Silhan) +- doc: typo in Base.group_install(). (Ales Kozumplik) + +* Mon Mar 17 2014 Aleš Kozumplík - 0.4.18-1 +- api: drop items deprecated since 0.4.9 or earlier. (Ales Kozumplik) +- api: deprecate Base.select_group() (Ales Kozumplik) +- doc: document the group marking operations. (Ales Kozumplik) +- api: add Base.group_install() with exclude capability. (Ales Kozumplik) +- groups: recognize 'mark install' instead of 'mark-install'. (Ales Kozumplik) +- Allow installing optional packages from a group. (RhBug:1067136) (Ales Kozumplik) +- groups: add installing groups the object marking style. (Ales Kozumplik) +- groups: add Base.group_remove(). (Ales Kozumplik) +- groups: add support for marking/unmarking groups. (Ales Kozumplik) +- groups: add dnf.persistor.GroupPersistor(), to store the installed groups. (Ales Kozumplik) +- logging: log plugin import tracebacks on the subdebug level. (Ales Kozumplik) +- rename: dnf.persistor.Persistor -> RepoPersistor. (Ales Kozumplik) +- doc: update README and FAQ with the unabbreviated name. (Ales Kozumplik) +- groups: fix grouplist crashes with new libcomps. (Ales Kozumplik) +- Do not terminate for unreadable repository config. (RhBug:1071212) (Ales Kozumplik) +- cli: get rid of ridiculous slashes and the file:// scheme on config read fails. (Ales Kozumplik) +- repo: log more than nothing about a remote repo MD download. (Ales Kozumplik) +- drpm: fallback to .rpm download on drpm rebuild error. (RhBug:1071501) (Ales Kozumplik) +- remove: Base.download_packages()' inner function mediasort(). (Ales Kozumplik) +- tests: tidy up the imports, in particular import mock from support. (Ales Kozumplik) +- changed documentation of distro-sync command (Jan Silhan) +- added distro-sync explicit packages support (RhBug:963710) (Jan Silhan) +- renamed testcase to distro_sync_all (Jan Silhan) +- Minor spelling (Arjun Temurnikar) +- i18n: translate repo sync error message. (Ales Kozumplik) +- add support for ppc64le (Dennis Gilmore) +- there is no arch called arm64 it is aarch64 (Dennis Gilmore) + +* Wed Mar 5 2014 Aleš Kozumplík - 0.4.17-1 +- doc: in the faq, warn users who might install rawhide packages on stable. (RhBug:1071677) (Ales Kozumplik) +- cli: better format the download errors report. (Ales Kozumplik) +- drpm: properly report applydeltarpm errors. (RhBug:1071501) (Ales Kozumplik) +- fixed Japanese translatated message (RhBug:1071455) (Jan Silhan) +- generated and synchronized translations with transifex (Jan Silhan) +- added transifex support to cmake (gettext-export, gettext-update) (Jan Silhan) +- api: expose RepoDict.get_matching() and RepoDict.all() (RhBug:1071323) (Ales Kozumplik) +- api: add Repo.set_progress_bar() to the API. (Ales Kozumplik) +- tests: test_cli_progress uses StringIO to check the output. (Ales Kozumplik) +- downloads: fix counting past 100% on mirror failures (RhBug:1070598) (Ales Kozumplik) +- repo: log callback calls to librepo. (Ales Kozumplik) +- Add repository-packages remove-or-reinstall command. (Radek Holy) +- Support negative filtering by new repository name in Base.reinstall. (Radek Holy) +- Support removal N/A packages in Base.reinstall. (Radek Holy) +- Add repository-packages remove command. (Radek Holy) +- refactor: Reduce amount of code in repository-packages subcommands. (Radek Holy) +- Support filtering by repository name in Base.remove. (Radek Holy) +- remove: BaseCli.erasePkgs (Radek Holy) +- Add repository-packages reinstall command. (Radek Holy) +- exceptions: improve empty key handling in DownloadError.__str__(). (Ales Kozumplik) +- downloads: fix fatal error message return value from download_payloads() (RhBug:1071518) (Ales Kozumplik) +- fixes problem with TypeError in Base.read_comps() in python3 (RhBug:1070710) (Tim Lauridsen) +- fix read_comps: not throwing exceptions when repo has no repodata (RhBug:1059704) (Jan Silhan) +- not decompressing groups when --cacheonly option is set (RhBug:1058224) (Jan Silhan) +- added forgotten import (Jan Silhan) +- Add repository-packages move-to command. (Radek Holy) +- Add repository-packages reinstall-old command. (Radek Holy) +- Support filtering by repository name in Base.reinstall. (Radek Holy) +- tests: test effects instead of mock calls. (Radek Holy) +- Wrap some recently added long lines. (Radek Holy) +- remove: BaseCli.reinstallPkgs (Radek Holy) +- repos: repos can never expire. (RhBug:1069538) (Ales Kozumplik) +- build: rebuild with 9d95442 (updated summaries_cache). (Ales Kozumplik) +- doc: update summaries_cache. (Ales Kozumplik) + +* Wed Feb 26 2014 Aleš Kozumplík - 0.4.16-1 +- fix: ensure MDPayload always has a valid progress attribute. (RhBug:1069996) (Ales Kozumplik) +- refactor: Move repo-pkgs upgrade-to to a standalone class instead of reusing the UpgradeToCommand. (Radek Holy) +- remove: BaseCli.updatePkgs (Radek Holy) +- refactor: Remove the reference to updatePkgs from UpgradeSubCommand. (Radek Holy) +- refactor: Remove the reference to updatePkgs from UpgradeCommand. (Radek Holy) +- refactor: Move repo-pkgs upgrade to a standalone class instead of reusing the UpgradeCommand. (Radek Holy) +- remove: BaseCli.installPkgs (Radek Holy) +- refactor: Remove the reference to installPkgs from InstallSubCommand. (Radek Holy) +- refactor: Remove the reference to installPkgs from InstallCommand. (Radek Holy) +- refactor: Move repo-pkgs install to a standalone class instead of reusing the InstallCommand. (Radek Holy) +- Revert "Support filtering by repository name in install_groupie." (Radek Holy) +- Revert "Support filtering by repository name in Base.select_group." (Radek Holy) +- Drop group filtering by repository name from installPkgs. (Radek Holy) +- Drop "repo-pkgs install @Group" support. (Radek Holy) +- refactor: Move CheckUpdateCommand.check_updates to BaseCli. (Radek Holy) +- refactor: Move repo-pkgs check-update to a standalone class instead of reusing the CheckUpdateCommand. (Radek Holy) +- refactor: Move repo-pkgs list to a standalone class instead of reusing the ListCommand. (Radek Holy) +- tests: Add tests of repo-pkgs info against the documentation. (Radek Holy) +- Fix "repo-pkgs info installed" behavior with respect to the documentation. (Radek Holy) +- refactor: Move MockBase methods to BaseStubMixin. (Radek Holy) +- refactor: Move repo-pkgs info to a standalone class instead of reusing the InfoCommand. (Radek Holy) +- refactor: Move InfoCommand._print_packages to BaseCli.output_packages. (Radek Holy)