commit cb2b89c624a6cde9d1d0a948c9be1097f6db9a9f Author: CentOS Sources Date: Tue May 17 06:27:37 2022 -0400 import dnf-plugins-core-4.0.24-4.el9_0 diff --git a/.dnf-plugins-core.metadata b/.dnf-plugins-core.metadata new file mode 100644 index 0000000..2fba04f --- /dev/null +++ b/.dnf-plugins-core.metadata @@ -0,0 +1 @@ +2f6868d968f9c1613c5ede8ceeae30641e74d545 SOURCES/dnf-plugins-core-4.0.24.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bc5b996 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/dnf-plugins-core-4.0.24.tar.gz diff --git a/SOURCES/0001-groups-manager-More-benevolent-resolving-of-packages-RhBug2013633.patch b/SOURCES/0001-groups-manager-More-benevolent-resolving-of-packages-RhBug2013633.patch new file mode 100644 index 0000000..15ffe86 --- /dev/null +++ b/SOURCES/0001-groups-manager-More-benevolent-resolving-of-packages-RhBug2013633.patch @@ -0,0 +1,31 @@ +From 24668777a7624a8ee3c6f53aff8f4d6675019d23 Mon Sep 17 00:00:00 2001 +From: Marek Blaha +Date: Mon, 8 Nov 2021 16:51:56 +0100 +Subject: [PATCH] groups-manager: More benevolent resolving of packages (RhBug:2013633) + += changelog = +msg: groups-manager uses for matching packages full NEVRA and not only name. +type: enhancement +resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2013633 +--- + plugins/groups_manager.py | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/plugins/groups_manager.py b/plugins/groups_manager.py +index 382df37..12da183 100644 +--- a/plugins/groups_manager.py ++++ b/plugins/groups_manager.py +@@ -254,7 +254,9 @@ class GroupsManagerCommand(dnf.cli.Command): + # find packages according to specifications from command line + packages = set() + for pkg_spec in self.opts.packages: +- q = self.base.sack.query().filterm(name__glob=pkg_spec).latest() ++ subj = dnf.subject.Subject(pkg_spec) ++ q = subj.get_best_query(self.base.sack, with_nevra=True, ++ with_provides=False, with_filenames=False).latest() + if not q: + logger.warning(_("No match for argument: {}").format(pkg_spec)) + continue +-- +libgit2 1.1.0 + diff --git a/SOURCES/0002-versionlock-fix-multi-pkg-lock-RhBug2013324.patch b/SOURCES/0002-versionlock-fix-multi-pkg-lock-RhBug2013324.patch new file mode 100644 index 0000000..0700887 --- /dev/null +++ b/SOURCES/0002-versionlock-fix-multi-pkg-lock-RhBug2013324.patch @@ -0,0 +1,95 @@ +From e289904dcd9c93ad8e1c3b01878599e9d65fa2cc Mon Sep 17 00:00:00 2001 +From: Nicola Sella +Date: Mon, 1 Nov 2021 18:29:40 +0100 +Subject: [PATCH] [versionlock] fix multi pkg lock (RhBug:2013324) + += changelog = +msg: [versionlock] Fix: Multiple package-name-spec arguments don't lock +correctly (RhBug:2001039) +type: bugfix +resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2013324 +--- + plugins/versionlock.py | 57 +++++++++++++++++++++++++++++++++------------------------ + 1 file changed, 33 insertions(+), 24 deletions(-) + +diff --git a/plugins/versionlock.py b/plugins/versionlock.py +index 19fbd8c..32c51da 100644 +--- a/plugins/versionlock.py ++++ b/plugins/versionlock.py +@@ -171,25 +171,27 @@ class VersionLockCommand(dnf.cli.Command): + cmd = self.opts.subcommand + + if cmd == 'add': +- (entry, entry_cmd) = _search_locklist(self.opts.package) +- if entry == '': +- _write_locklist(self.base, self.opts.package, self.opts.raw, True, +- "\n# Added lock on %s\n" % time.ctime(), +- ADDING_SPEC, '') +- elif cmd != entry_cmd: +- raise dnf.exceptions.Error(ALREADY_EXCLUDED.format(entry)) +- else: +- logger.info("%s %s", EXISTING_SPEC, entry) ++ results = _search_locklist(self.opts.package) ++ for entry, entry_cmd in results: ++ if entry_cmd == '': ++ _write_locklist(self.base, [entry], self.opts.raw, True, ++ "\n# Added lock on %s\n" % time.ctime(), ++ ADDING_SPEC, '') ++ elif cmd != entry_cmd: ++ raise dnf.exceptions.Error(ALREADY_EXCLUDED.format(entry)) ++ else: ++ logger.info("%s %s", EXISTING_SPEC, entry) + elif cmd == 'exclude': +- (entry, entry_cmd) = _search_locklist(self.opts.package) +- if entry == '': +- _write_locklist(self.base, self.opts.package, self.opts.raw, False, +- "\n# Added exclude on %s\n" % time.ctime(), +- EXCLUDING_SPEC, '!') +- elif cmd != entry_cmd: +- raise dnf.exceptions.Error(ALREADY_LOCKED.format(entry)) +- else: +- logger.info("%s %s", EXISTING_SPEC, entry) ++ results = _search_locklist(self.opts.package) ++ for entry, entry_cmd in results: ++ if entry_cmd == '': ++ _write_locklist(self.base, [entry], self.opts.raw, False, ++ "\n# Added exclude on %s\n" % time.ctime(), ++ EXCLUDING_SPEC, '!') ++ elif cmd != entry_cmd: ++ raise dnf.exceptions.Error(ALREADY_LOCKED.format(entry)) ++ else: ++ logger.info("%s %s", EXISTING_SPEC, entry) + elif cmd == 'list': + for pat in _read_locklist(): + print(pat) +@@ -237,14 +239,21 @@ def _read_locklist(): + + + def _search_locklist(package): ++ results = [] + found = action = '' + locked_specs = _read_locklist() +- for ent in locked_specs: +- if _match(ent, package): +- found = ent +- action = 'exclude' if ent.startswith('!') else 'add' +- break +- return (found, action) ++ for pkg in package: ++ match = False ++ for ent in locked_specs: ++ found = action = '' ++ if _match(ent, [pkg]): ++ found = ent ++ action = 'exclude' if ent.startswith('!') else 'add' ++ results.append((found, action)) ++ match = True ++ if not match: ++ results.append((pkg, action)) ++ return results + + + def _write_locklist(base, args, raw, try_installed, comment, info, prefix): +-- +libgit2 1.1.0 + diff --git a/SOURCES/0003-Update-documentation-for-adding-specific-version-RhBug2013332.patch b/SOURCES/0003-Update-documentation-for-adding-specific-version-RhBug2013332.patch new file mode 100644 index 0000000..93968ed --- /dev/null +++ b/SOURCES/0003-Update-documentation-for-adding-specific-version-RhBug2013332.patch @@ -0,0 +1,31 @@ +From 2c5c1a00fde93b25ffaaa9ad5eea6f0d5712efe4 Mon Sep 17 00:00:00 2001 +From: Nicola Sella +Date: Thu, 11 Nov 2021 13:48:39 +0100 +Subject: [PATCH] Update documentation for adding specific version (RhBug:2013332) + +=changelog= +msg: [versionlock] update documentation for adding specifi version +type: bugfix +resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2013332 +--- + doc/versionlock.rst | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/doc/versionlock.rst b/doc/versionlock.rst +index 061ce80..1ac7196 100644 +--- a/doc/versionlock.rst ++++ b/doc/versionlock.rst +@@ -97,6 +97,10 @@ Subcommands + Adding versionlock on: mutt-5:1.11.4-1.fc30.* + Adding versionlock on: mutt-5:1.12.1-3.fc30.* + ++ .. note:: Be careful when adding specific versions ++ ++ If you add a package specifying a version with ``dnf versionlock mutt-5:1.11.4-1.fc30.x86_64`` then, if you run ``dnf versionlock add mutt`` ++ versionlock will not add ``mutt-5:1.12.1-3.fc30.x86_64``. + + ``dnf versionlock exclude `` + Add an exclude (within versionlock) for the available packages matching the spec. It means that +-- +libgit2 1.1.0 + diff --git a/SOURCES/0004-plugin-debug-Use-base._ts.dbCookie-to-determining-rp.patch b/SOURCES/0004-plugin-debug-Use-base._ts.dbCookie-to-determining-rp.patch new file mode 100644 index 0000000..898c56f --- /dev/null +++ b/SOURCES/0004-plugin-debug-Use-base._ts.dbCookie-to-determining-rp.patch @@ -0,0 +1,33 @@ +From 66bac802e84fcf97dbe32690c33c420cb8f16891 Mon Sep 17 00:00:00 2001 +From: Jaroslav Rohel +Date: Fri, 4 Feb 2022 10:28:59 +0100 +Subject: [PATCH] plugin debug: Use base._ts.dbCookie() to determining rpmdb + version + +The debug plugin used `base.sack._rpmdb_version()` method. Which is +actually the private method `hawkey.Sack._rpmdb_version()` from libdnf. + +The patch uses the `base._ts.dbCookie()` method. This method was added +to DNF 4.11.0. And internally it calls the new official API function +`rpm.TransactionSet.dbCookie()` from librpm. This is a necessary step +to allow the `._rpmdb_version()` method to be removed from libdnf. +--- + plugins/debug.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/debug.py b/plugins/debug.py +index ad136a9..c443f71 100644 +--- a/plugins/debug.py ++++ b/plugins/debug.py +@@ -161,7 +161,7 @@ class DebugDumpCommand(dnf.cli.Command): + + def dump_rpmdb_versions(self): + self.write("%%%%RPMDB VERSIONS\n") +- version = self.base.sack._rpmdb_version() ++ version = self.base._ts.dbCookie() + self.write(" all: %s\n" % version) + return + +-- +2.34.1 + diff --git a/SOURCES/0005-Update-translations-RhBug-2017348.patch b/SOURCES/0005-Update-translations-RhBug-2017348.patch new file mode 100644 index 0000000..5df5ceb --- /dev/null +++ b/SOURCES/0005-Update-translations-RhBug-2017348.patch @@ -0,0 +1,3429 @@ +From 81d1619c8d0150e632e6601f72bf47005daead59 Mon Sep 17 00:00:00 2001 +From: Marek Blaha +Date: Mon, 21 Mar 2022 10:44:23 +0100 +Subject: [PATCH] Update translations (RhBug:2017348) + +--- + po/dnf-plugins-core.pot | 102 ++++----- + po/fr.po | 186 ++++++++-------- + po/ja.po | 461 +++++++++++++++++++++++----------------- + po/ko.po | 241 ++++++++++++--------- + po/zh_CN.po | 180 ++++++++-------- + po/zh_TW.po | 157 +++++++------- + 6 files changed, 728 insertions(+), 599 deletions(-) + +diff --git a/po/dnf-plugins-core.pot b/po/dnf-plugins-core.pot +index b1e80df..c529d01 100644 +--- a/po/dnf-plugins-core.pot ++++ b/po/dnf-plugins-core.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 13:42+0100\n" + "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" + "Last-Translator: FULL NAME \n" + "Language-Team: LANGUAGE \n" +@@ -201,27 +201,27 @@ msgstr[1] "" + msgid "Could not save repo to repofile %s: %s" + msgstr "" + +-#: plugins/copr.py:59 ++#: plugins/copr.py:68 + msgid "y" + msgstr "" + +-#: plugins/copr.py:59 ++#: plugins/copr.py:68 + msgid "yes" + msgstr "" + +-#: plugins/copr.py:60 ++#: plugins/copr.py:69 + msgid "n" + msgstr "" + +-#: plugins/copr.py:60 ++#: plugins/copr.py:69 + msgid "no" + msgstr "" + +-#: plugins/copr.py:79 ++#: plugins/copr.py:88 + msgid "Interact with Copr repositories." + msgstr "" + +-#: plugins/copr.py:81 ++#: plugins/copr.py:90 + msgid "" + "\n" + " enable name/project [chroot]\n" +@@ -242,63 +242,63 @@ msgid "" + " " + msgstr "" + +-#: plugins/copr.py:107 ++#: plugins/copr.py:116 + msgid "List all installed Copr repositories (default)" + msgstr "" + +-#: plugins/copr.py:109 ++#: plugins/copr.py:118 + msgid "List enabled Copr repositories" + msgstr "" + +-#: plugins/copr.py:111 ++#: plugins/copr.py:120 + msgid "List disabled Copr repositories" + msgstr "" + +-#: plugins/copr.py:113 ++#: plugins/copr.py:122 + msgid "List available Copr repositories by user NAME" + msgstr "" + +-#: plugins/copr.py:115 ++#: plugins/copr.py:124 + msgid "Specify an instance of Copr to work with" + msgstr "" + +-#: plugins/copr.py:149 plugins/copr.py:217 plugins/copr.py:244 ++#: plugins/copr.py:160 plugins/copr.py:228 plugins/copr.py:255 + msgid "Error: " + msgstr "" + +-#: plugins/copr.py:150 ++#: plugins/copr.py:161 + msgid "" + "specify Copr hub either with `--hub` or using `copr_hub/copr_username/" + "copr_projectname` format" + msgstr "" + +-#: plugins/copr.py:153 ++#: plugins/copr.py:164 + msgid "multiple hubs specified" + msgstr "" + +-#: plugins/copr.py:218 plugins/copr.py:222 ++#: plugins/copr.py:229 plugins/copr.py:233 + msgid "exactly two additional parameters to copr command are required" + msgstr "" + +-#: plugins/copr.py:227 ++#: plugins/copr.py:238 + msgid "Too many arguments." + msgstr "" + +-#: plugins/copr.py:230 ++#: plugins/copr.py:241 + msgid "" + "Bad format of optional chroot. The format is distribution-version-" + "architecture." + msgstr "" + +-#: plugins/copr.py:245 ++#: plugins/copr.py:256 + msgid "use format `copr_username/copr_projectname` to reference copr project" + msgstr "" + +-#: plugins/copr.py:247 ++#: plugins/copr.py:258 + msgid "bad copr project format" + msgstr "" + +-#: plugins/copr.py:261 ++#: plugins/copr.py:272 + msgid "" + "\n" + "Enabling a Copr repository. Please note that this repository is not part\n" +@@ -314,71 +314,71 @@ msgid "" + "Bugzilla. In case of problems, contact the owner of this repository.\n" + msgstr "" + +-#: plugins/copr.py:278 ++#: plugins/copr.py:289 + msgid "Repository successfully enabled." + msgstr "" + +-#: plugins/copr.py:283 ++#: plugins/copr.py:294 + msgid "Repository successfully disabled." + msgstr "" + +-#: plugins/copr.py:287 ++#: plugins/copr.py:298 + msgid "Repository successfully removed." + msgstr "" + +-#: plugins/copr.py:291 plugins/copr.py:698 ++#: plugins/copr.py:302 plugins/copr.py:706 + msgid "Unknown subcommand {}." + msgstr "" + +-#: plugins/copr.py:348 ++#: plugins/copr.py:359 + msgid "" + "* These coprs have repo file with an old format that contains no information " + "about Copr hub - the default one was assumed. Re-enable the project to fix " + "this." + msgstr "" + +-#: plugins/copr.py:360 ++#: plugins/copr.py:372 + msgid "Can't parse repositories for username '{}'." + msgstr "" + +-#: plugins/copr.py:363 ++#: plugins/copr.py:375 + msgid "List of {} coprs" + msgstr "" + +-#: plugins/copr.py:371 ++#: plugins/copr.py:380 + msgid "No description given" + msgstr "" + +-#: plugins/copr.py:383 ++#: plugins/copr.py:392 + msgid "Can't parse search for '{}'." + msgstr "" + +-#: plugins/copr.py:386 ++#: plugins/copr.py:395 + msgid "Matched: {}" + msgstr "" + +-#: plugins/copr.py:394 ++#: plugins/copr.py:400 + msgid "No description given." + msgstr "" + +-#: plugins/copr.py:417 ++#: plugins/copr.py:422 + msgid "Safe and good answer. Exiting." + msgstr "" + +-#: plugins/copr.py:424 ++#: plugins/copr.py:429 + msgid "This command has to be run under the root user." + msgstr "" + +-#: plugins/copr.py:486 ++#: plugins/copr.py:493 + msgid "" + "This repository does not have any builds yet so you cannot enable it now." + msgstr "" + +-#: plugins/copr.py:489 ++#: plugins/copr.py:496 + msgid "Such repository does not exist." + msgstr "" + +-#: plugins/copr.py:533 ++#: plugins/copr.py:540 + #, python-brace-format + msgid "" + "Maintainer of the enabled Copr repository decided to make\n" +@@ -395,44 +395,44 @@ msgid "" + "These repositories have been enabled automatically." + msgstr "" + +-#: plugins/copr.py:554 ++#: plugins/copr.py:561 + msgid "Do you want to keep them enabled?" + msgstr "" + +-#: plugins/copr.py:587 ++#: plugins/copr.py:594 + #, python-brace-format + msgid "Failed to remove copr repo {0}/{1}/{2}" + msgstr "" + +-#: plugins/copr.py:598 ++#: plugins/copr.py:605 + msgid "Failed to disable copr repo {}/{}" + msgstr "" + +-#: plugins/copr.py:616 plugins/copr.py:653 ++#: plugins/copr.py:623 plugins/copr.py:660 + msgid "Unknown response from server." + msgstr "" + +-#: plugins/copr.py:638 ++#: plugins/copr.py:645 + msgid "Interact with Playground repository." + msgstr "" + +-#: plugins/copr.py:644 ++#: plugins/copr.py:651 + msgid "Enabling a Playground repository." + msgstr "" + +-#: plugins/copr.py:645 ++#: plugins/copr.py:652 + msgid "Do you want to continue?" + msgstr "" + +-#: plugins/copr.py:688 ++#: plugins/copr.py:696 + msgid "Playground repositories successfully enabled." + msgstr "" + +-#: plugins/copr.py:691 ++#: plugins/copr.py:699 + msgid "Playground repositories successfully disabled." + msgstr "" + +-#: plugins/copr.py:695 ++#: plugins/copr.py:703 + msgid "Playground repositories successfully updated." + msgstr "" + +@@ -693,15 +693,15 @@ msgstr "" + msgid "Can't save file \"{}\": {}" + msgstr "" + +-#: plugins/groups_manager.py:259 ++#: plugins/groups_manager.py:261 + msgid "No match for argument: {}" + msgstr "" + +-#: plugins/groups_manager.py:296 ++#: plugins/groups_manager.py:298 + msgid "Can't remove packages from non-existent group" + msgstr "" + +-#: plugins/groups_manager.py:305 ++#: plugins/groups_manager.py:307 + msgid "" + "Group id '{}' generated from '{}' is duplicit. Please specify group id using " + "--id." +@@ -971,7 +971,7 @@ msgstr "" + msgid "Pass either --old or --new, not both!" + msgstr "" + +-#: plugins/repomanage.py:71 ++#: plugins/repomanage.py:89 + msgid "No files to process" + msgstr "" + +diff --git a/po/fr.po b/po/fr.po +index 4d569b4..30d85eb 100644 +--- a/po/fr.po ++++ b/po/fr.po +@@ -3,24 +3,26 @@ + # José Fournier , 2017. #zanata + # Jérôme Fenal , 2017. #zanata + # Jean-Baptiste Holcroft , 2018. #zanata, 2020. +-# Ludek Janda , 2018. #zanata ++# Ludek Janda , 2018. #zanata, 2021. + # Jean-Baptiste Holcroft , 2019. #zanata, 2020. + # Julien Humbert , 2020, 2021. +-# Arnaud T. , 2021. ++# Sundeep Anand , 2021. ++# Transtats , 2022. + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2021-04-27 09:18-0400\n" +-"PO-Revision-Date: 2021-01-14 06:37+0000\n" +-"Last-Translator: Julien Humbert \n" +-"Language-Team: French \n" ++"POT-Creation-Date: 2022-02-28 13:42+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.4.1\n" ++"X-Generator: Weblate 4.11.2\n" + + #: plugins/builddep.py:45 + msgid "[PACKAGE|PACKAGE.spec]" +@@ -41,8 +43,7 @@ msgstr "définit une macro pour l’interprétation du fichier spec" + + #: plugins/builddep.py:95 + msgid "skip build dependencies not available in repositories" +-msgstr "" +-"ignorer les dépendances de compilation non disponibles dans les dépôts" ++msgstr "ignorer les dépendances de compilation non disponibles dans les dépôts" + + #: plugins/builddep.py:98 + msgid "treat commandline arguments as spec files" +@@ -61,8 +62,7 @@ msgid "Some packages could not be found." + msgstr "Certains paquets n’ont pu être trouvés." + + #. No provides, no files +-#. Richdeps can have no matches but it could be correct (solver must decide +-#. later) ++#. Richdeps can have no matches but it could be correct (solver must decide later) + #: plugins/builddep.py:173 + #, python-format + msgid "No matching package to install: '%s'" +@@ -219,27 +219,27 @@ msgstr[1] "La configuration des dépôts a échoué" + msgid "Could not save repo to repofile %s: %s" + msgstr "Sauvegarde impossible du dépôt dans le fichier du dépôt %s : %s" + +-#: plugins/copr.py:59 ++#: plugins/copr.py:68 + msgid "y" + msgstr "o" + +-#: plugins/copr.py:59 ++#: plugins/copr.py:68 + msgid "yes" + msgstr "oui" + +-#: plugins/copr.py:60 ++#: plugins/copr.py:69 + msgid "n" + msgstr "n" + +-#: plugins/copr.py:60 ++#: plugins/copr.py:69 + msgid "no" + msgstr "non" + +-#: plugins/copr.py:79 ++#: plugins/copr.py:88 + msgid "Interact with Copr repositories." + msgstr "Interagit avec les dépôts Copr." + +-#: plugins/copr.py:81 ++#: plugins/copr.py:90 + msgid "" + "\n" + " enable name/project [chroot]\n" +@@ -277,69 +277,69 @@ msgstr "" + " copr search tests\n" + " " + +-#: plugins/copr.py:107 ++#: plugins/copr.py:116 + msgid "List all installed Copr repositories (default)" + msgstr "Lister tous les dépôts Copr installés (par défaut)" + +-#: plugins/copr.py:109 ++#: plugins/copr.py:118 + msgid "List enabled Copr repositories" + msgstr "Lister les dépôts Copr activés" + +-#: plugins/copr.py:111 ++#: plugins/copr.py:120 + msgid "List disabled Copr repositories" + msgstr "Lister les dépôts Copr désactivés" + +-#: plugins/copr.py:113 ++#: plugins/copr.py:122 + msgid "List available Copr repositories by user NAME" + msgstr "Lister les dépôts Copr disponibles par NOM d’utilisateur" + +-#: plugins/copr.py:115 ++#: plugins/copr.py:124 + msgid "Specify an instance of Copr to work with" + msgstr "Précisez une instance Copr avec laquelle travailler" + +-#: plugins/copr.py:149 plugins/copr.py:217 plugins/copr.py:244 ++#: plugins/copr.py:160 plugins/copr.py:228 plugins/copr.py:255 + msgid "Error: " + msgstr "Erreur : " + +-#: plugins/copr.py:150 ++#: plugins/copr.py:161 + msgid "" +-"specify Copr hub either with `--hub` or using " +-"`copr_hub/copr_username/copr_projectname` format" ++"specify Copr hub either with `--hub` or using `copr_hub/copr_username/" ++"copr_projectname` format" + msgstr "" +-"précisez un hub Copr soit via `--hub` ou en utilisant le format " +-"`hub_copr/utilisateur_copr/projet_copr`" ++"précisez un hub Copr soit via `--hub` ou en utilisant le format `hub_copr/" ++"utilisateur_copr/projet_copr`" + +-#: plugins/copr.py:153 ++#: plugins/copr.py:164 + msgid "multiple hubs specified" + msgstr "de multiples hubs ont été renseignés" + +-#: plugins/copr.py:218 plugins/copr.py:222 ++#: plugins/copr.py:229 plugins/copr.py:233 + msgid "exactly two additional parameters to copr command are required" + msgstr "la commande copr requiert exactement deux paramètres additionnels" + +-#: plugins/copr.py:227 ++#: plugins/copr.py:238 + msgid "Too many arguments." +-msgstr "Trop de paramètres." ++msgstr "Trop d'arguments." + +-#: plugins/copr.py:230 ++#: plugins/copr.py:241 + msgid "" + "Bad format of optional chroot. The format is distribution-version-" + "architecture." + msgstr "" +-"Mauvais format de chroot facultatif. Le format est distribution-version-" ++"Mauvais format du chroot optionnel. Le format est distribution-version-" + "architecture." + +-#: plugins/copr.py:245 ++#: plugins/copr.py:256 + msgid "use format `copr_username/copr_projectname` to reference copr project" + msgstr "" + "utilisez le format `copr_username/copr_projectname` pour faire référence au " + "projet copr" + +-#: plugins/copr.py:247 ++#: plugins/copr.py:258 + msgid "bad copr project format" + msgstr "mauvais format de projet copr" + +-#: plugins/copr.py:261 ++#: plugins/copr.py:272 + msgid "" + "\n" + "Enabling a Copr repository. Please note that this repository is not part\n" +@@ -347,7 +347,8 @@ msgid "" + "\n" + "The Fedora Project does not exercise any power over the contents of\n" + "this repository beyond the rules outlined in the Copr FAQ at\n" +-",\n" ++",\n" + "and packages are not held to any quality or security level.\n" + "\n" + "Please do not file bug reports about these packages in Fedora\n" +@@ -359,83 +360,85 @@ msgstr "" + "\n" + "Le projet Fedora n’exerce aucun pouvoir sur le contenu de ce dépôt au delà\n" + "des règles précisées dans la FAQ Copr \n" +-",\n" ++",\n" + "et les paquets ne sont tenus à aucun niveau de qualité ou de sécurité.\n" + "\n" +-"Veuillez ne pas signaler de bogues à propos de ces paquets dans le Bugzilla de Fedora.\n" ++"Veuillez ne pas signaler de bogues à propos de ces paquets dans le Bugzilla " ++"de Fedora.\n" + "En cas de problèmes, contactez le propriétaire de ce dépôt.\n" + +-#: plugins/copr.py:278 ++#: plugins/copr.py:289 + msgid "Repository successfully enabled." + msgstr "Activation du dépôt réussie." + +-#: plugins/copr.py:283 ++#: plugins/copr.py:294 + msgid "Repository successfully disabled." + msgstr "Désactivation du dépôt réussie." + +-#: plugins/copr.py:287 ++#: plugins/copr.py:298 + msgid "Repository successfully removed." + msgstr "Suppression du dépôt réussie." + +-#: plugins/copr.py:291 plugins/copr.py:698 ++#: plugins/copr.py:302 plugins/copr.py:706 + msgid "Unknown subcommand {}." + msgstr "Sous-commande inconnue {}." + +-#: plugins/copr.py:348 ++#: plugins/copr.py:359 + msgid "" +-"* These coprs have repo file with an old format that contains no information" +-" about Copr hub - the default one was assumed. Re-enable the project to fix " ++"* These coprs have repo file with an old format that contains no information " ++"about Copr hub - the default one was assumed. Re-enable the project to fix " + "this." + msgstr "" + "* Ces Copr ont des fichiers de dépôts avec un ancien format qui ne contient " + "aucune information à propos de Copr hub - celui par défaut a été utilisé. " + "Réactivez le projet pour résoudre le problème." + +-#: plugins/copr.py:360 ++#: plugins/copr.py:372 + msgid "Can't parse repositories for username '{}'." + msgstr "" + "Ne peut analyser les dépôts pour y chercher le nom d’utilisateur « {} »." + +-#: plugins/copr.py:363 ++#: plugins/copr.py:375 + msgid "List of {} coprs" + msgstr "Liste de {} coprs" + +-#: plugins/copr.py:371 ++#: plugins/copr.py:380 + msgid "No description given" + msgstr "Aucune description fournie" + +-#: plugins/copr.py:383 ++#: plugins/copr.py:392 + msgid "Can't parse search for '{}'." + msgstr "Impossible d’analyser la recherche pour « {} »." + +-#: plugins/copr.py:386 ++#: plugins/copr.py:395 + msgid "Matched: {}" + msgstr "Correspondance : {}" + +-#: plugins/copr.py:394 ++#: plugins/copr.py:400 + msgid "No description given." + msgstr "Pas de description fournie." + +-#: plugins/copr.py:417 ++#: plugins/copr.py:422 + msgid "Safe and good answer. Exiting." + msgstr "Réponse sûre et exacte. Fin." + +-#: plugins/copr.py:424 ++#: plugins/copr.py:429 + msgid "This command has to be run under the root user." + msgstr "Cette commande requiert les privilèges du super utilisateur." + +-#: plugins/copr.py:486 ++#: plugins/copr.py:493 + msgid "" + "This repository does not have any builds yet so you cannot enable it now." + msgstr "" + "Ce dépôt ne contient pas encore d’exécutables vous ne pouvez donc pas " + "l’activer." + +-#: plugins/copr.py:489 ++#: plugins/copr.py:496 + msgid "Such repository does not exist." + msgstr "Ce dépôt n’existe pas." + +-#: plugins/copr.py:533 ++#: plugins/copr.py:540 + #, python-brace-format + msgid "" + "Maintainer of the enabled Copr repository decided to make\n" +@@ -464,44 +467,44 @@ msgstr "" + "\n" + "Ces dépôts ont été activés automatiquement." + +-#: plugins/copr.py:554 ++#: plugins/copr.py:561 + msgid "Do you want to keep them enabled?" + msgstr "Souhaitez-vous les maintenir activés ?" + +-#: plugins/copr.py:587 ++#: plugins/copr.py:594 + #, python-brace-format + msgid "Failed to remove copr repo {0}/{1}/{2}" + msgstr "Échec de la suppression du dépôt Copr {0}/{1}/{2}" + +-#: plugins/copr.py:598 ++#: plugins/copr.py:605 + msgid "Failed to disable copr repo {}/{}" + msgstr "Échec de la désactivation du dépôt copr {}/{}" + +-#: plugins/copr.py:616 plugins/copr.py:653 ++#: plugins/copr.py:623 plugins/copr.py:660 + msgid "Unknown response from server." + msgstr "Réponse inconnue du serveur." + +-#: plugins/copr.py:638 ++#: plugins/copr.py:645 + msgid "Interact with Playground repository." + msgstr "Interagit avec le dépôt Playground." + +-#: plugins/copr.py:644 ++#: plugins/copr.py:651 + msgid "Enabling a Playground repository." + msgstr "Activation d’un dépôt Playground." + +-#: plugins/copr.py:645 ++#: plugins/copr.py:652 + msgid "Do you want to continue?" + msgstr "Souhaitez-vous continuer ?" + +-#: plugins/copr.py:688 ++#: plugins/copr.py:696 + msgid "Playground repositories successfully enabled." + msgstr "Activation des dépôts Playground réussie." + +-#: plugins/copr.py:691 ++#: plugins/copr.py:699 + msgid "Playground repositories successfully disabled." + msgstr "Désactivation des dépôts Playground réussie." + +-#: plugins/copr.py:695 ++#: plugins/copr.py:703 + msgid "Playground repositories successfully updated." + msgstr "Mise à jour des dépôts Playground réussie." + +@@ -587,8 +590,7 @@ msgstr "" + msgid "" + "Could not find debugsource package for the following available packages: %s" + msgstr "" +-"Impossible de trouver le paquet debugsource pour ces paquets disponibles : " +-"%s" ++"Impossible de trouver le paquet debugsource pour ces paquets disponibles : %s" + + #: plugins/debuginfo-install.py:190 + #, python-format +@@ -722,7 +724,7 @@ msgstr "id du groupe" + + #: plugins/groups_manager.py:101 + msgid "group name" +-msgstr "nom du groupe" ++msgstr "Nom du groupe" + + #: plugins/groups_manager.py:103 + msgid "group description" +@@ -781,18 +783,18 @@ msgstr "Impossible de charger le fichier « {} » : {}" + msgid "Can't save file \"{}\": {}" + msgstr "Impossible d’enregistrer le fichier « {} » : {}" + +-#: plugins/groups_manager.py:259 ++#: plugins/groups_manager.py:261 + msgid "No match for argument: {}" + msgstr "Aucune correspondance pour l’argument : {}" + +-#: plugins/groups_manager.py:296 ++#: plugins/groups_manager.py:298 + msgid "Can't remove packages from non-existent group" + msgstr "Les paquets ne peuvent pas être retirés d'un groupe qui n'existe pas" + +-#: plugins/groups_manager.py:305 ++#: plugins/groups_manager.py:307 + msgid "" +-"Group id '{}' generated from '{}' is duplicit. Please specify group id using" +-" --id." ++"Group id '{}' generated from '{}' is duplicit. Please specify group id using " ++"--id." + msgstr "" + "L'id du groupe « {} » qui a été généré pour « {} » est en double. Veuillez " + "le spécifier en utilisant --id." +@@ -958,11 +960,10 @@ msgstr "Affichez des données supplémentaires sur la taille des changements." + + #: plugins/repodiff.py:69 + msgid "" +-"Compare packages also by arch. By default packages are compared just by " +-"name." ++"Compare packages also by arch. By default packages are compared just by name." + msgstr "" +-"Compare également les paquets par architecture. Par défaut, les paquets sont" +-" uniquement comparés par nom." ++"Compare également les paquets par architecture. Par défaut, les paquets sont " ++"uniquement comparés par nom." + + #: plugins/repodiff.py:72 + msgid "Output a simple one line message for modified packages." +@@ -1089,7 +1090,7 @@ msgstr "Gère un dossier de paquets rpm" + msgid "Pass either --old or --new, not both!" + msgstr "Passez soit --old, soit --new, mais pas les deux !" + +-#: plugins/repomanage.py:71 ++#: plugins/repomanage.py:89 + msgid "No files to process" + msgstr "Aucun fichier à traiter" + +@@ -1145,11 +1146,11 @@ msgstr "également télécharger et décompresser comps.xml" + + #: plugins/reposync.py:75 + msgid "" +-"where to store downloaded repository metadata. Defaults to the value of " +-"--download-path." ++"where to store downloaded repository metadata. Defaults to the value of --" ++"download-path." + msgstr "" +-"là où stocker les métadonnées du dépôt. Prend par défaut la valeur de " +-"--download-path." ++"là où stocker les métadonnées du dépôt. Prend par défaut la valeur de --" ++"download-path." + + #: plugins/reposync.py:78 + msgid "download only newest packages per-repo" +@@ -1170,10 +1171,8 @@ msgstr "" + "serveur" + + #: plugins/reposync.py:87 +-#, fuzzy +-#| msgid "operate on source packages" + msgid "download only source packages" +-msgstr "opère sur les paquets source" ++msgstr "télécharger uniquement les packages sources" + + #: plugins/reposync.py:89 + msgid "Just list urls of what would be downloaded, don't download" +@@ -1274,7 +1273,8 @@ msgstr "" + "appliquées : {}" + + #: plugins/versionlock.py:44 +-msgid "Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" ++msgid "" ++"Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" + msgstr "" + "Plugin versionlock : nombre de règles d’exclusion du fichier \"{}\" " + "appliquées : {}" +@@ -1283,19 +1283,21 @@ msgstr "" + msgid "Versionlock plugin: could not parse pattern:" + msgstr "Plugin versionlock : n’a pas pu analyser le modèle :" + +-#: plugins/versionlock.py:132 ++#: plugins/versionlock.py:138 + msgid "control package version locks" + msgstr "contrôle le verrouillage de version des paquets" + +-#: plugins/versionlock.py:138 ++#: plugins/versionlock.py:144 + msgid "Use package specifications as they are, do not try to parse them" + msgstr "" + "Utiliser les spécifications de paquet telles quelles, ne pas essayer de les " + "analyser" + +-#: plugins/versionlock.py:158 ++#: plugins/versionlock.py:164 + msgid "Subcommand '{}' is deprecated. Use 'exclude' subcommand instead." + msgstr "" ++"La sous-commande '{}' est obsolète. Utilisez plutôt la sous-commande " ++"'exclude'." + + #~ msgid "" + #~ "\n" +diff --git a/po/ja.po b/po/ja.po +index 7dca7ee..dabc446 100644 +--- a/po/ja.po ++++ b/po/ja.po +@@ -1,20 +1,23 @@ + # Ooyama Yosiyuki , 2015. #zanata +-# Ludek Janda , 2018. #zanata ++# Ludek Janda , 2018. #zanata, 2021. + # Casey Jones , 2020. ++# Sundeep Anand , 2021. ++# Transtats , 2022. + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2021-04-27 09:18-0400\n" +-"PO-Revision-Date: 2020-05-04 06:40+0000\n" +-"Last-Translator: Casey Jones \n" +-"Language-Team: Japanese \n" ++"POT-Creation-Date: 2022-02-28 13:42+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.0.3\n" ++"X-Generator: Weblate 4.11.2\n" + + #: plugins/builddep.py:45 + msgid "[PACKAGE|PACKAGE.spec]" +@@ -35,7 +38,7 @@ msgstr "スペックファイルの解析にマクロを定義" + + #: plugins/builddep.py:95 + msgid "skip build dependencies not available in repositories" +-msgstr "" ++msgstr "リポジトリーで利用できないビルドの依存関係をスキップします" + + #: plugins/builddep.py:98 + msgid "treat commandline arguments as spec files" +@@ -54,8 +57,7 @@ msgid "Some packages could not be found." + msgstr "一部のパッケージは見つかりませんでした。" + + #. No provides, no files +-#. Richdeps can have no matches but it could be correct (solver must decide +-#. later) ++#. Richdeps can have no matches but it could be correct (solver must decide later) + #: plugins/builddep.py:173 + #, python-format + msgid "No matching package to install: '%s'" +@@ -64,7 +66,8 @@ msgstr "インストール用の一致するパッケージがありません: ' + #: plugins/builddep.py:191 + #, python-format + msgid "Failed to open: '%s', not a valid source rpm file." +-msgstr "開くことに失敗しました: '%s'、有効なソース rpm ファイルではありません。" ++msgstr "" ++"開くことに失敗しました: '%s'、有効なソース rpm ファイルではありません。" + + #: plugins/builddep.py:204 plugins/builddep.py:220 plugins/builddep.py:237 + msgid "Not all dependencies satisfied" +@@ -83,31 +86,35 @@ msgstr "一致するパッケージはありません: %s" + #: plugins/changelog.py:37 + #, python-brace-format + msgid "Not a valid date: \"{0}\"." +-msgstr "" ++msgstr "有効な日付ではありません: \"{0}\"。" + + #: plugins/changelog.py:43 + msgid "Show changelog data of packages" +-msgstr "" ++msgstr "パッケージの changelog データを表示します" + + #: plugins/changelog.py:51 + msgid "" + "show changelog entries since DATE. To avoid ambiguosity, YYYY-MM-DD format " + "is recommended." + msgstr "" ++"DATE 以降の changelog エントリーを表示します。不明瞭さを避けるため、YYYY-MM-" ++"DD のフォーマットが推奨されます。" + + #: plugins/changelog.py:55 + msgid "show given number of changelog entries per package" +-msgstr "" ++msgstr "パッケージごとの changelog エントリーの与えられた数を表示します" + + #: plugins/changelog.py:58 + msgid "" + "show only new changelog entries for packages, that provide an upgrade for " + "some of already installed packages." + msgstr "" ++"パッケージ向けの新しい changelog エントリーのみを表示します。これは、インス" ++"トール済みのパッケージの一部にアップグレードを提供します。" + + #: plugins/changelog.py:60 + msgid "PACKAGE" +-msgstr "" ++msgstr "パッケージ" + + #: plugins/changelog.py:81 plugins/debuginfo-install.py:90 + #, python-format +@@ -116,20 +123,22 @@ msgstr "一致した引数がありません: %s" + + #: plugins/changelog.py:109 + msgid "Listing changelogs since {}" +-msgstr "" ++msgstr "{} 以降の changelogs を一覧表示します" + + #: plugins/changelog.py:111 + msgid "Listing only latest changelog" + msgid_plural "Listing {} latest changelogs" +-msgstr[0] "" ++msgstr[0] "最新の changelog のみを一覧表示します" + + #: plugins/changelog.py:116 + msgid "Listing only new changelogs since installed version of the package" + msgstr "" ++"パッケージのインストールされたバージョン以降の新しい changelogs のみを一覧表" ++"示します" + + #: plugins/changelog.py:118 + msgid "Listing all changelogs" +-msgstr "" ++msgstr "すべての changelogs を一覧表示します" + + #: plugins/changelog.py:122 + msgid "Changelogs for {}" +@@ -138,7 +147,7 @@ msgstr "{} の Changelogs" + #: plugins/config_manager.py:38 + #, python-brace-format + msgid "manage {prog} configuration options and repositories" +-msgstr "" ++msgstr "{prog} 設定オプションおよびリポジトリーを管理します" + + #: plugins/config_manager.py:45 + msgid "repo to modify" +@@ -162,21 +171,23 @@ msgstr "stdout に変数値を印刷" + + #: plugins/config_manager.py:61 + msgid "enable repos (automatically saves)" +-msgstr "" ++msgstr "レポを有効にする (自動保存)" + + #: plugins/config_manager.py:64 + msgid "disable repos (automatically saves)" +-msgstr "" ++msgstr "レポを無効にする (自動保存)" + + #: plugins/config_manager.py:78 + msgid "one of the following arguments is required: {}" +-msgstr "" ++msgstr "以下のいずれかの引数が必要です。{}" + + #: plugins/config_manager.py:87 + msgid "" + "Warning: --enablerepo/--disablerepo arguments have no meaningwith config " + "manager. Use --set-enabled/--set-disabled instead." + msgstr "" ++"警告: --enablerepo/--disablerepo の引数は config manager では意味がありませ" ++"ん。代わりに -set-enabled/--set-disabled を使用してください。" + + #: plugins/config_manager.py:132 + #, python-format +@@ -198,27 +209,27 @@ msgstr[0] "repo の設定に失敗しました" + msgid "Could not save repo to repofile %s: %s" + msgstr "repofile %s に repo を保存できませんでした: %s" + +-#: plugins/copr.py:59 ++#: plugins/copr.py:68 + msgid "y" + msgstr "y" + +-#: plugins/copr.py:59 ++#: plugins/copr.py:68 + msgid "yes" + msgstr "はい" + +-#: plugins/copr.py:60 ++#: plugins/copr.py:69 + msgid "n" + msgstr "n" + +-#: plugins/copr.py:60 ++#: plugins/copr.py:69 + msgid "no" + msgstr "いいえ" + +-#: plugins/copr.py:79 ++#: plugins/copr.py:88 + msgid "Interact with Copr repositories." + msgstr "Copr リポジトリーとの対話。" + +-#: plugins/copr.py:81 ++#: plugins/copr.py:90 + msgid "" + "\n" + " enable name/project [chroot]\n" +@@ -246,7 +257,7 @@ msgstr "" + " list --available-by-user=NAME\n" + " search project\n" + "\n" +-" Examples:\n" ++" 例:\n" + " copr enable rhscl/perl516 epel-6-x86_64\n" + " copr enable ignatenkobrain/ocltoys\n" + " copr disable rhscl/perl516\n" +@@ -256,65 +267,70 @@ msgstr "" + " copr search tests\n" + " " + +-#: plugins/copr.py:107 ++#: plugins/copr.py:116 + msgid "List all installed Copr repositories (default)" +-msgstr "インストール済みのすべての Copr リポジトリーを一覧表示します (デフォルト)" ++msgstr "" ++"インストール済みのすべての Copr リポジトリーを一覧表示します (デフォルト)" + +-#: plugins/copr.py:109 ++#: plugins/copr.py:118 + msgid "List enabled Copr repositories" + msgstr "有効化された Copr リポジトリーを一覧表示します" + +-#: plugins/copr.py:111 ++#: plugins/copr.py:120 + msgid "List disabled Copr repositories" + msgstr "無効化された Copr リポジトリーを一覧表示します" + +-#: plugins/copr.py:113 ++#: plugins/copr.py:122 + msgid "List available Copr repositories by user NAME" + msgstr "利用可能な Copr リポジトリーをユーザー NAME ごとに一覧表示します" + +-#: plugins/copr.py:115 ++#: plugins/copr.py:124 + msgid "Specify an instance of Copr to work with" +-msgstr "" ++msgstr "作業する Copr のインスタンスを指定します" + +-#: plugins/copr.py:149 plugins/copr.py:217 plugins/copr.py:244 ++#: plugins/copr.py:160 plugins/copr.py:228 plugins/copr.py:255 + msgid "Error: " + msgstr "エラー: " + +-#: plugins/copr.py:150 ++#: plugins/copr.py:161 + msgid "" +-"specify Copr hub either with `--hub` or using " +-"`copr_hub/copr_username/copr_projectname` format" ++"specify Copr hub either with `--hub` or using `copr_hub/copr_username/" ++"copr_projectname` format" + msgstr "" ++"`--hub` または `copr_hub/copr_username/copr_projectname` フォーマットを使っ" ++"て、Copr ハブを指定します" + +-#: plugins/copr.py:153 ++#: plugins/copr.py:164 + msgid "multiple hubs specified" +-msgstr "" ++msgstr "複数のハブが指定されています" + +-#: plugins/copr.py:218 plugins/copr.py:222 ++#: plugins/copr.py:229 plugins/copr.py:233 + msgid "exactly two additional parameters to copr command are required" + msgstr "copr コマンドに厳密に 2 つの追加パラメーターが必要です" + +-#: plugins/copr.py:227 +-#, fuzzy +-#| msgid "No match for argument: %s" ++#: plugins/copr.py:238 + msgid "Too many arguments." +-msgstr "一致した引数がありません: %s" ++msgstr "引数が多すぎます。" + +-#: plugins/copr.py:230 ++#: plugins/copr.py:241 + msgid "" + "Bad format of optional chroot. The format is distribution-version-" + "architecture." + msgstr "" ++"オプションの chroot の形式が無効です。正しい形式は distribution-version-" ++"architecture です。" + +-#: plugins/copr.py:245 ++#: plugins/copr.py:256 + msgid "use format `copr_username/copr_projectname` to reference copr project" +-msgstr "copr プロジェクトを参照するには `copr_username/copr_projectname` 形式を使用します" ++msgstr "" ++"copr プロジェクトを参照するには `copr_username/copr_projectname` 形式を使用し" ++"ます" + +-#: plugins/copr.py:247 ++#: plugins/copr.py:258 + msgid "bad copr project format" + msgstr "不正な copr プロジェクト形式" + +-#: plugins/copr.py:261 ++#: plugins/copr.py:272 + msgid "" + "\n" + "Enabling a Copr repository. Please note that this repository is not part\n" +@@ -322,78 +338,96 @@ msgid "" + "\n" + "The Fedora Project does not exercise any power over the contents of\n" + "this repository beyond the rules outlined in the Copr FAQ at\n" +-",\n" ++",\n" + "and packages are not held to any quality or security level.\n" + "\n" + "Please do not file bug reports about these packages in Fedora\n" + "Bugzilla. In case of problems, contact the owner of this repository.\n" + msgstr "" ++"\n" ++"Copr リポジトリーを有効化しています。このリポジトリーは\n" ++"主要ディストリビューションの一部ではないため、品質が一定していない点に注意し" ++"てください。\n" ++"\n" ++"Fedora Project は、このリポジトリーのコンテンツに関して、 の \n" ++"Copr FAQ で示されたルールを超えて権利を行使することは\n" ++"ありません。また、パッケージは、任意の品質またはセキュリ\n" ++"ティーレベルを固守していません。\n" ++"\n" ++"Fedora Bugzilla でこれらのパッケージに関するバグ報告をしないでください。\n" ++"問題が発生した場合は、このリポジトリーのオーナーに連絡してください。\n" + +-#: plugins/copr.py:278 ++#: plugins/copr.py:289 + msgid "Repository successfully enabled." + msgstr "リポジトリが正常に有効化されました。" + +-#: plugins/copr.py:283 ++#: plugins/copr.py:294 + msgid "Repository successfully disabled." + msgstr "リポジトリが正常に無効化されました。" + +-#: plugins/copr.py:287 ++#: plugins/copr.py:298 + msgid "Repository successfully removed." + msgstr "リポジトリーが正常に削除されました。" + +-#: plugins/copr.py:291 plugins/copr.py:698 ++#: plugins/copr.py:302 plugins/copr.py:706 + msgid "Unknown subcommand {}." + msgstr "不明なサブコマンド {}。" + +-#: plugins/copr.py:348 ++#: plugins/copr.py:359 + msgid "" +-"* These coprs have repo file with an old format that contains no information" +-" about Copr hub - the default one was assumed. Re-enable the project to fix " ++"* These coprs have repo file with an old format that contains no information " ++"about Copr hub - the default one was assumed. Re-enable the project to fix " + "this." + msgstr "" ++"* これらの coprs には、Copr ハブに関する情報がない古いフォーマットの repo " ++"ファイルがあります。デフォルトは仮定です。これを修正するには、プロジェクトを" ++"再度有効化してください。" + +-#: plugins/copr.py:360 ++#: plugins/copr.py:372 + msgid "Can't parse repositories for username '{}'." + msgstr "ユーザー名 '{}' のリポジトリーを解析できません。" + +-#: plugins/copr.py:363 ++#: plugins/copr.py:375 + msgid "List of {} coprs" + msgstr "{} coprs の一覧" + +-#: plugins/copr.py:371 ++#: plugins/copr.py:380 + msgid "No description given" + msgstr "説明がありません" + +-#: plugins/copr.py:383 ++#: plugins/copr.py:392 + msgid "Can't parse search for '{}'." + msgstr "'{}' の検索を解析できません。" + +-#: plugins/copr.py:386 ++#: plugins/copr.py:395 + msgid "Matched: {}" + msgstr "一致: {}" + +-#: plugins/copr.py:394 ++#: plugins/copr.py:400 + msgid "No description given." + msgstr "説明が与えられていません。" + +-#: plugins/copr.py:417 ++#: plugins/copr.py:422 + msgid "Safe and good answer. Exiting." + msgstr "安全で優れた回答。終了中。" + +-#: plugins/copr.py:424 ++#: plugins/copr.py:429 + msgid "This command has to be run under the root user." + msgstr "このコマンドは root ユーザーの下で実行する必要があります。" + +-#: plugins/copr.py:486 ++#: plugins/copr.py:493 + msgid "" + "This repository does not have any builds yet so you cannot enable it now." +-msgstr "このリポジトリーにはまだビルドがありませんので、今すぐ有効化できません。" ++msgstr "" ++"このリポジトリーにはまだビルドがありませんので、今すぐ有効化できません。" + +-#: plugins/copr.py:489 ++#: plugins/copr.py:496 + msgid "Such repository does not exist." + msgstr "そのようなリポジトリーは存在しません。" + +-#: plugins/copr.py:533 ++#: plugins/copr.py:540 + #, python-brace-format + msgid "" + "Maintainer of the enabled Copr repository decided to make\n" +@@ -409,47 +443,58 @@ msgid "" + "\n" + "These repositories have been enabled automatically." + msgstr "" ++"有効化した Copr リポジトリーの管理者は\n" ++"他のリポジトリーに依存するように決めました。\n" ++"そのようなリポジトリーは通常、主な Corp " ++"レジストリー(ランタイム依存関係を提供) から RPM を\n" ++"正常にインストールするために必要です。\n" ++"\n" ++"上記の品質とバグ報告についての注意点がここでも適用\n" ++"されますが、Fedora Project は内容を管理していないことに\n" ++"注意してください。以下のリストを確認してください。\n" ++"\n" ++"{0}\n" ++"\n" ++"これらのリポジトリーは自動的に有効になっています。" + +-#: plugins/copr.py:554 ++#: plugins/copr.py:561 + msgid "Do you want to keep them enabled?" +-msgstr "" ++msgstr "有効にしておきますか?" + +-#: plugins/copr.py:587 ++#: plugins/copr.py:594 + #, python-brace-format + msgid "Failed to remove copr repo {0}/{1}/{2}" +-msgstr "" ++msgstr "copr repo {0}/{1}/{2} の削除に失敗しました" + +-#: plugins/copr.py:598 ++#: plugins/copr.py:605 + msgid "Failed to disable copr repo {}/{}" +-msgstr "copr repo {}/{} の無効化に失敗しました。" ++msgstr "copr repo {}/{} の無効化に失敗しました" + +-#: plugins/copr.py:616 plugins/copr.py:653 ++#: plugins/copr.py:623 plugins/copr.py:660 + msgid "Unknown response from server." + msgstr "サーバーからの不明な応答です。" + +-#: plugins/copr.py:638 ++#: plugins/copr.py:645 + msgid "Interact with Playground repository." + msgstr "Playground リポジトリーとの対話。" + +-#: plugins/copr.py:644 +-#, fuzzy +-#| msgid "Interact with Playground repository." ++#: plugins/copr.py:651 + msgid "Enabling a Playground repository." +-msgstr "Playground リポジトリーとの対話。" ++msgstr "Playgroundのリポジトリーの有効化。" + +-#: plugins/copr.py:645 ++#: plugins/copr.py:652 + msgid "Do you want to continue?" +-msgstr "" ++msgstr "続行しますか?" + +-#: plugins/copr.py:688 ++#: plugins/copr.py:696 + msgid "Playground repositories successfully enabled." + msgstr "Playground リポジトリーが正常に有効化されました。" + +-#: plugins/copr.py:691 ++#: plugins/copr.py:699 + msgid "Playground repositories successfully disabled." + msgstr "Playground リポジトリーが正常に無効化されました。" + +-#: plugins/copr.py:695 ++#: plugins/copr.py:703 + msgid "Playground repositories successfully updated." + msgstr "Playground リポジトリーが正常に更新されました。" + +@@ -486,7 +531,9 @@ msgstr "記録されたパッケージの最新バージョンをインストー + msgid "" + "Ignore architecture and install missing packages matching the name, epoch, " + "version and release." +-msgstr "アーキテクチャーを無視し、名前、エポック、バージョン、およびリリースと一致する不足のパッケージをインストールします。" ++msgstr "" ++"アーキテクチャーを無視し、名前、エポック、バージョン、およびリリースと一致す" ++"る不足のパッケージをインストールします。" + + #: plugins/debug.py:196 + msgid "limit to specified type" +@@ -497,6 +544,8 @@ msgid "" + "Allow removing of install-only packages. Using this option may result in an " + "attempt to remove the running kernel." + msgstr "" ++"インストールのみのパッケージの削除を許可します。このオプションを使用すると、" ++"実行しているカーネルの削除を試みる可能性があります。" + + #: plugins/debug.py:202 + msgid "name of dump file" +@@ -521,24 +570,30 @@ msgstr "debuginfo パッケージのインストール" + msgid "" + "Could not find debuginfo package for the following available packages: %s" + msgstr "" ++"次の利用可能なパッケージの debuginfo パッケージが見つかりませんでした: %s" + + #: plugins/debuginfo-install.py:185 + #, python-format + msgid "" + "Could not find debugsource package for the following available packages: %s" + msgstr "" ++"次の利用可能なパッケージの debugsource パッケージが見つかりませんでした: %s" + + #: plugins/debuginfo-install.py:190 + #, python-format + msgid "" + "Could not find debuginfo package for the following installed packages: %s" + msgstr "" ++"次のインストールされたパッケージの debuginfo パッケージが見つかりませんでし" ++"た: %s" + + #: plugins/debuginfo-install.py:195 + #, python-format + msgid "" + "Could not find debugsource package for the following installed packages: %s" + msgstr "" ++"次のインストールされたパッケージの debugsource パッケージが見つかりませんでし" ++"た: %s" + + #: plugins/debuginfo-install.py:199 + msgid "Unable to find a match" +@@ -562,7 +617,7 @@ msgstr "代わりに -debuginfo パッケージをダウンロードします" + + #: plugins/download.py:57 + msgid "download the -debugsource package instead" +-msgstr "" ++msgstr "代わりに、-debugsource パッケージをダウンロードします" + + #: plugins/download.py:60 + msgid "limit the query to packages of given architectures." +@@ -577,11 +632,14 @@ msgid "" + "when running with --resolve, download all dependencies (do not exclude " + "already installed ones)" + msgstr "" ++"--resolve で実行する場合、すべての依存関係をダウンロードします (インストール" ++"済みのものを除外しないでください)" + + #: plugins/download.py:67 + msgid "" + "print list of urls where the rpms can be downloaded instead of downloading" +-msgstr "ダウンロードする代わりに、rpm をダウンロードできる url の一覧を印刷します" ++msgstr "" ++"ダウンロードする代わりに、rpm をダウンロードできる url の一覧を印刷します" + + #: plugins/download.py:72 + msgid "when running with --url, limit to specific protocols" +@@ -612,133 +670,127 @@ msgstr "利用可能なパッケージ %s はありません。" + + #: plugins/groups_manager.py:49 + msgid "Invalid group id" +-msgstr "" ++msgstr "'無効なグループ ID" + + #: plugins/groups_manager.py:58 + msgid "Invalid translated data, should be in form 'lang:text'" +-msgstr "" ++msgstr "無効な翻訳データです。'lang:text' の形式で指定する必要があります" + + #: plugins/groups_manager.py:61 + msgid "Invalid/empty language for translated data" +-msgstr "" ++msgstr "翻訳されたデータの無効または空な言語" + + #: plugins/groups_manager.py:71 + msgid "Can't generate group id from '{}'. Please specify group id using --id." + msgstr "" ++"'{}' からグループ ID を生成できません。--id を使用してグループ ID を指定して" ++"ください。" + + #: plugins/groups_manager.py:79 + msgid "create and edit groups metadata file" +-msgstr "" ++msgstr "グループメタデータファイルの作成および編集" + + #: plugins/groups_manager.py:90 + msgid "load groups metadata from file" +-msgstr "" ++msgstr "ファイルからグループメタデータを読み込みます" + + #: plugins/groups_manager.py:93 + msgid "save groups metadata to file" +-msgstr "" ++msgstr "グループメタデータをファイルに保存します" + + #: plugins/groups_manager.py:95 + msgid "load and save groups metadata to file" +-msgstr "" ++msgstr "グループメタデータをファイルにロードして保存します" + + #: plugins/groups_manager.py:97 +-#, fuzzy +-#| msgid "print variable values to stdout" + msgid "print the result metadata to stdout" +-msgstr "stdout に変数値を印刷" ++msgstr "生成されたメタデータを stdout に出力します" + + #: plugins/groups_manager.py:100 + msgid "group id" +-msgstr "" ++msgstr "グループ id" + + #: plugins/groups_manager.py:101 + msgid "group name" +-msgstr "" ++msgstr "グループ名" + + #: plugins/groups_manager.py:103 +-#, fuzzy +-#| msgid "No description given" + msgid "group description" +-msgstr "説明がありません" ++msgstr "グループ説明" + + #: plugins/groups_manager.py:105 + msgid "group display order" +-msgstr "" ++msgstr "グループ表示順序" + + #: plugins/groups_manager.py:108 + msgid "translated name for the group" +-msgstr "" ++msgstr "グループの翻訳名" + + #: plugins/groups_manager.py:111 + msgid "translated description for the group" +-msgstr "" ++msgstr "グループの翻訳説明" + + #: plugins/groups_manager.py:115 + msgid "make the group user visible (default)" +-msgstr "" ++msgstr "グループユーザーを表示させる (デフォルト)" + + #: plugins/groups_manager.py:118 + msgid "make the group user invisible" +-msgstr "" ++msgstr "グループユーザーを非表示の状態にする" + + #: plugins/groups_manager.py:123 + msgid "add packages to the mandatory section" +-msgstr "" ++msgstr "必須セクションへのパッケージの追加" + + #: plugins/groups_manager.py:125 + msgid "add packages to the optional section" +-msgstr "" ++msgstr "オプションセクションへのパッケージの追加" + + #: plugins/groups_manager.py:127 + msgid "remove packages from the group instead of adding them" +-msgstr "" ++msgstr "パッケージを追加する代わりに、グループからパッケージを削除します" + + #: plugins/groups_manager.py:129 +-#, fuzzy +-#| msgid "Display a list of unresolved dependencies for repositories" + msgid "include also direct dependencies for packages" +-msgstr "リポジトリーの未解決の依存関係の一覧を表示します" ++msgstr "リポジトリーの直接の依存関係を含みます" + + #: plugins/groups_manager.py:132 + msgid "package specification" +-msgstr "" ++msgstr "パッケージ仕様" + + #: plugins/groups_manager.py:156 + msgid "Can't edit group without specifying it (use --id or --name)" + msgstr "" ++"指定せずにはグループを編集できません (--id または --name を使用してください)" + + #: plugins/groups_manager.py:190 +-#, fuzzy +-#| msgid "Can't write file '{}'" + msgid "Can't load file \"{}\": {}" +-msgstr "ファイル '{}' を書き込みできません" ++msgstr "ファイル '{}' を書き込みできません: {}" + + #: plugins/groups_manager.py:206 +-#, fuzzy +-#| msgid "Can't write file '{}'" + msgid "Can't save file \"{}\": {}" +-msgstr "ファイル '{}' を書き込みできません" ++msgstr "ファイル '{}' を保存できません: {}" + +-#: plugins/groups_manager.py:259 +-#, fuzzy +-#| msgid "No match for argument: %s" ++#: plugins/groups_manager.py:261 + msgid "No match for argument: {}" +-msgstr "一致した引数がありません: %s" ++msgstr "一致した引数がありません: {}" + +-#: plugins/groups_manager.py:296 ++#: plugins/groups_manager.py:298 + msgid "Can't remove packages from non-existent group" +-msgstr "" ++msgstr "存在しないグループからパッケージを削除できません" + +-#: plugins/groups_manager.py:305 ++#: plugins/groups_manager.py:307 + msgid "" +-"Group id '{}' generated from '{}' is duplicit. Please specify group id using" +-" --id." ++"Group id '{}' generated from '{}' is duplicit. Please specify group id using " ++"--id." + msgstr "" ++"'{}' から生成されたグループ ID '{}' は重複しています。--id を使用してグルー" ++"プ ID を指定してください。" + + #: plugins/leaves.py:32 + msgid "List installed packages not required by any other package" +-msgstr "他のパッケージから必要とされないインスール済みパッケージを一覧表示します" ++msgstr "" ++"他のパッケージから必要とされないインスール済みパッケージを一覧表示します" + + #: plugins/local.py:122 + msgid "Unable to create a directory '{}' due to '{}'" +@@ -774,6 +826,8 @@ msgid "" + "No installed package found for package name \"{pkg}\" specified in needs-" + "restarting file \"{file}\"." + msgstr "" ++"needs-restarting ファイル \"{file}\" に指定されている \"{pkg}\" " ++"というパッケージのインストール済みパッケージが見つかりません。" + + #: plugins/needs_restarting.py:220 + msgid "determine updated binaries that need restarting" +@@ -787,52 +841,54 @@ msgstr "このユーザーのプロセスのみを検討します" + msgid "" + "only report whether a reboot is required (exit code 1) or not (exit code 0)" + msgstr "" ++"再起動が必要か (終了コード 1) 必要でないか (終了コード 0) のみを報告します" + + #: plugins/needs_restarting.py:230 + msgid "only report affected systemd services" +-msgstr "" ++msgstr "影響を受ける systemd サービスのみを報告" + + #: plugins/needs_restarting.py:253 + msgid "Core libraries or services have been updated since boot-up:" +-msgstr "" ++msgstr "起動以降にコアライブラリーまたはサービスがアップデートされました:" + + #: plugins/needs_restarting.py:258 + msgid "Reboot is required to fully utilize these updates." +-msgstr "" ++msgstr "これらのアップデートを完全に活用するには、再起動が必要です。" + + #: plugins/needs_restarting.py:259 + msgid "More information:" +-msgstr "" ++msgstr "詳細情報:" + + #: plugins/needs_restarting.py:263 + msgid "No core libraries or services have been updated since boot-up." + msgstr "" ++"起動以降にアップデートされたコアライブラリーまたはサービスはありません。" + + #: plugins/needs_restarting.py:265 + msgid "Reboot should not be necessary." +-msgstr "" ++msgstr "再起動な必要ありません。" + + #: plugins/post-transaction-actions.py:71 + #, python-format + msgid "Bad Action Line \"%s\": %s" +-msgstr "" ++msgstr "不正なアクション行 \"%s\": %s" + + #. unsupported state, skip it + #: plugins/post-transaction-actions.py:130 + #, python-format + msgid "Bad Transaction State: %s" +-msgstr "" ++msgstr "不正なトランザクション状態: %s" + + #: plugins/post-transaction-actions.py:157 + #: plugins/post-transaction-actions.py:159 + #, python-format + msgid "post-transaction-actions: %s" +-msgstr "" ++msgstr "post-transaction-actions: %s" + + #: plugins/post-transaction-actions.py:161 + #, python-format + msgid "post-transaction-actions: Bad Command \"%s\": %s" +-msgstr "" ++msgstr "post-transaction-actions: 不正なコマンド \"%s\": %s" + + #: plugins/repoclosure.py:42 + msgid "Display a list of unresolved dependencies for repositories" +@@ -860,129 +916,142 @@ msgstr "このパッケージのみのクロージャーを確認します" + + #: plugins/repodiff.py:45 + msgid "List differences between two sets of repositories" +-msgstr "" ++msgstr "2 セットのリポジトリー間の違いを一覧表示します" + + #: plugins/repodiff.py:58 + msgid "Specify old repository, can be used multiple times" +-msgstr "" ++msgstr "古いリポジトリーを指定します、これは複数回使用できます" + + #: plugins/repodiff.py:60 + msgid "Specify new repository, can be used multiple times" +-msgstr "" ++msgstr "新しいリポジトリーを指定します、これは複数回使用できます" + + #: plugins/repodiff.py:63 + msgid "" + "Specify architectures to compare, can be used multiple times. By default, " + "only source rpms are compared." + msgstr "" ++"比較するアーキテクチャーを指定します、これは複数回使用できます。デフォルト" ++"で、ソース rpms のみが比較されます。" + + #: plugins/repodiff.py:67 + msgid "Output additional data about the size of the changes." +-msgstr "" ++msgstr "変更サイズに関する追加データを出力します。" + + #: plugins/repodiff.py:69 + msgid "" +-"Compare packages also by arch. By default packages are compared just by " +-"name." ++"Compare packages also by arch. By default packages are compared just by name." + msgstr "" ++"パッケージを Arch でも比較します。デフォルトで、パッケージは名前のみで比較さ" ++"れます。" + + #: plugins/repodiff.py:72 + msgid "Output a simple one line message for modified packages." +-msgstr "" ++msgstr "変更されたパッケージに簡単な 1 行メッセージを出力します。" + + #: plugins/repodiff.py:74 + msgid "" + "Split the data for modified packages between upgraded and downgraded " + "packages." + msgstr "" ++"アップグレードされたパッケージとダウングレードされたパッケージとの間で、変更" ++"されたパッケージのデータを分割します。" + + #: plugins/repodiff.py:86 + msgid "Both old and new repositories must be set." +-msgstr "" ++msgstr "新旧両方のリポジトリーを設定する必要があります。" + + #: plugins/repodiff.py:178 + msgid "Size change: {} bytes" +-msgstr "" ++msgstr "サイズの変更: {} バイト" + + #: plugins/repodiff.py:184 + msgid "Added package : {}" +-msgstr "" ++msgstr "追加されたパッケージ : {}" + + #: plugins/repodiff.py:187 + msgid "Removed package: {}" +-msgstr "" ++msgstr "削除されたパッケージ: {}" + + #: plugins/repodiff.py:190 + msgid "Obsoleted by : {}" +-msgstr "" ++msgstr "により廃止されました: {}" + + #: plugins/repodiff.py:195 + msgid "" + "\n" + "Upgraded packages" + msgstr "" ++"\n" ++"アップグレードされたパッケージ" + + #: plugins/repodiff.py:200 + msgid "" + "\n" + "Downgraded packages" + msgstr "" ++"\n" ++"ダウングレードされたパッケージ" + + #: plugins/repodiff.py:207 + msgid "" + "\n" + "Modified packages" + msgstr "" ++"\n" ++"変更されたパッケージ" + + #: plugins/repodiff.py:212 + msgid "" + "\n" + "Summary" + msgstr "" ++"\n" ++"サマリー" + + #: plugins/repodiff.py:213 + msgid "Added packages: {}" +-msgstr "" ++msgstr "追加されたパッケージ: {}" + + #: plugins/repodiff.py:214 + msgid "Removed packages: {}" +-msgstr "" ++msgstr "削除されたパッケージ: {}" + + #: plugins/repodiff.py:216 + msgid "Upgraded packages: {}" +-msgstr "" ++msgstr "アップグレードされたパッケージ: {}" + + #: plugins/repodiff.py:217 + msgid "Downgraded packages: {}" +-msgstr "" ++msgstr "ダウングレードされたパッケージ: {}" + + #: plugins/repodiff.py:219 + msgid "Modified packages: {}" +-msgstr "" ++msgstr "変更されたパッケージ: {}" + + #: plugins/repodiff.py:222 + msgid "Size of added packages: {}" +-msgstr "" ++msgstr "追加されたパッケージのサイズ: {}" + + #: plugins/repodiff.py:223 + msgid "Size of removed packages: {}" +-msgstr "" ++msgstr "削除されたパッケージのサイズ: {}" + + #: plugins/repodiff.py:225 + msgid "Size of modified packages: {}" +-msgstr "" ++msgstr "変更されたパッケージのサイズ: {}" + + #: plugins/repodiff.py:228 + msgid "Size of upgraded packages: {}" +-msgstr "" ++msgstr "アップグレードされたパッケージのサイズ: {}" + + #: plugins/repodiff.py:230 + msgid "Size of downgraded packages: {}" +-msgstr "" ++msgstr "ダウングレードされたパッケージのサイズ: {}" + + #: plugins/repodiff.py:232 + msgid "Size change: {}" +-msgstr "" ++msgstr "サイズの変更: {}" + + #: plugins/repograph.py:50 + msgid "Output a full package dependency graph in dot format" +@@ -1001,7 +1070,7 @@ msgstr "rpm パッケージのディレクトリーを管理します" + msgid "Pass either --old or --new, not both!" + msgstr "--old または --new のいずれかを渡します。両方ではありません。" + +-#: plugins/repomanage.py:71 ++#: plugins/repomanage.py:89 + msgid "No files to process" + msgstr "処理するファイルはありません" + +@@ -1043,21 +1112,23 @@ msgstr "リポジトリーにもはや存在しないローカルパッケージ + + #: plugins/reposync.py:68 + msgid "download all the metadata." +-msgstr "" ++msgstr "すべてのメタデータをダウンロードします。" + + #: plugins/reposync.py:70 + msgid "Remove packages that fail GPG signature checking after downloading" +-msgstr "" ++msgstr "ダウンロード後に GPG 署名の確認に失敗するパッケージを削除します" + + #: plugins/reposync.py:73 + msgid "also download and uncompress comps.xml" +-msgstr "" ++msgstr "comps.xml もダウンロードして展開します" + + #: plugins/reposync.py:75 + msgid "" +-"where to store downloaded repository metadata. Defaults to the value of " +-"--download-path." ++"where to store downloaded repository metadata. Defaults to the value of --" ++"download-path." + msgstr "" ++"ダウンロード済みリポジトリーメタデータの保管場所。初期値は --download-path で" ++"す。" + + #: plugins/reposync.py:78 + msgid "download only newest packages per-repo" +@@ -1065,50 +1136,50 @@ msgstr "最新のパッケージ per-repo のみをダウンロード" + + #: plugins/reposync.py:80 + msgid "Don't add the reponame to the download path." +-msgstr "" ++msgstr "ダウンロードパスにはリポネームを追加しないでください。" + + #: plugins/reposync.py:82 + msgid "where to store downloaded repositories" +-msgstr "" ++msgstr "ダウンロード済みリポジトリーの保管場所" + + #: plugins/reposync.py:84 + msgid "try to set local timestamps of local files by the one on the server" +-msgstr "" ++msgstr "サーバー上から、ローカルファイルのローカル timestamps の設定を試みます" + + #: plugins/reposync.py:87 +-#, fuzzy +-#| msgid "operate on source packages" + msgid "download only source packages" +-msgstr "ソースパッケージでの操作" ++msgstr "ソースパッケージのみをダウンロード" + + #: plugins/reposync.py:89 + msgid "Just list urls of what would be downloaded, don't download" + msgstr "" ++"ダウンロードする予定のものの URL をリストするだけで、ダウンロードしないでくだ" ++"さい" + + #: plugins/reposync.py:113 + msgid "Can't use --norepopath with multiple repositories" +-msgstr "" ++msgstr "複数のリポジトリーでは -norepopath は使えません" + + #: plugins/reposync.py:132 + #, python-format + msgid "Failed to get mirror for metadata: %s" +-msgstr "" ++msgstr "メタデータのミラー取得に失敗しました: %s" + + #: plugins/reposync.py:149 + msgid "Failed to get mirror for the group file." +-msgstr "" ++msgstr "グループファイルのミラー取得に失敗しました。" + + #: plugins/reposync.py:168 + msgid "Removing {}: {}" +-msgstr "" ++msgstr "{} の削除中: {}" + + #: plugins/reposync.py:175 + msgid "GPG signature check failed." +-msgstr "" ++msgstr "GPG 署名の確認に失敗しました。" + + #: plugins/reposync.py:196 + msgid "Download target '{}' is outside of download path '{}'." +-msgstr "" ++msgstr "ダウンロードターゲット '{}' は、ダウンロードパス '{}' の外にあります。" + + #: plugins/reposync.py:211 + #, python-format +@@ -1127,7 +1198,8 @@ msgstr "リポジトリー %s の comps.xml が保存されました" + + #: plugins/show_leaves.py:54 + msgid "New leaves:" +-msgstr "新規のリーフパッケージ (他のパッケージから依存されていないパッケージ) :" ++msgstr "" ++"新規のリーフパッケージ (他のパッケージから依存されていないパッケージ) :" + + #: plugins/versionlock.py:33 + #, python-format +@@ -1148,15 +1220,15 @@ msgstr "除外を追加:" + + #: plugins/versionlock.py:37 + msgid "Package already locked in equivalent form:" +-msgstr "" ++msgstr "同等の形で既にロックされているパッケージ:" + + #: plugins/versionlock.py:38 + msgid "Package {} is already locked" +-msgstr "" ++msgstr "パッケージ {} は既にロックされています" + + #: plugins/versionlock.py:39 + msgid "Package {} is already excluded" +-msgstr "" ++msgstr "パッケージ{}はすでに除外されています" + + #: plugins/versionlock.py:40 + msgid "Deleting versionlock for:" +@@ -1175,24 +1247,27 @@ msgid "Versionlock plugin: number of lock rules from file \"{}\" applied: {}" + msgstr "versionlock プラグイン: ファイル \"{}\" のロックルールの数を適用: {}" + + #: plugins/versionlock.py:44 +-msgid "Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" ++msgid "" ++"Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" + msgstr "versionlock プラグイン: ファイル \"{}\" の除外ルールの数を適用: {}" + + #: plugins/versionlock.py:45 + msgid "Versionlock plugin: could not parse pattern:" + msgstr "versionlock プラグイン: パターンを解析できませんでした:" + +-#: plugins/versionlock.py:132 ++#: plugins/versionlock.py:138 + msgid "control package version locks" + msgstr "パッケージバージョンロックの制御" + +-#: plugins/versionlock.py:138 ++#: plugins/versionlock.py:144 + msgid "Use package specifications as they are, do not try to parse them" +-msgstr "" ++msgstr "パッケージ仕様をそのまま使用し、解析を試みないでください" + +-#: plugins/versionlock.py:158 ++#: plugins/versionlock.py:164 + msgid "Subcommand '{}' is deprecated. Use 'exclude' subcommand instead." + msgstr "" ++"サブコマンド '{}' は非推奨になりました。代わりに 'exclude' サブコマンドを使用" ++"してください。" + + #~ msgid "" + #~ "\n" +diff --git a/po/ko.po b/po/ko.po +index 9732760..1b3e985 100644 +--- a/po/ko.po ++++ b/po/ko.po +@@ -1,20 +1,21 @@ + # Ludek Janda , 2018. #zanata, 2020. +-# Marek Blaha , 2020. + # simmon , 2021. ++# Kim InSoo , 2022. + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2021-04-27 09:18-0400\n" +-"PO-Revision-Date: 2021-04-18 16:02+0000\n" +-"Last-Translator: simmon \n" +-"Language-Team: Korean \n" ++"POT-Creation-Date: 2022-02-28 13:42+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.5.3\n" ++"X-Generator: Weblate 4.11\n" + + #: plugins/builddep.py:45 + msgid "[PACKAGE|PACKAGE.spec]" +@@ -54,8 +55,7 @@ msgid "Some packages could not be found." + msgstr "몇몇 꾸러미(packages)를 찾을 수 없습니다." + + #. No provides, no files +-#. Richdeps can have no matches but it could be correct (solver must decide +-#. later) ++#. Richdeps can have no matches but it could be correct (solver must decide later) + #: plugins/builddep.py:173 + #, python-format + msgid "No matching package to install: '%s'" +@@ -93,7 +93,9 @@ msgstr "꾸러미(packages)의 변화 기록자료를 보여줍니다" + msgid "" + "show changelog entries since DATE. To avoid ambiguosity, YYYY-MM-DD format " + "is recommended." +-msgstr "DATE 이후에 변화기록를 보여줍니다. 모호함을 피하기 위하여, YYYY-MM-DD 형식을 추천합니다." ++msgstr "" ++"DATE 이후에 변화기록를 보여줍니다. 모호함을 피하기 위하여, YYYY-MM-DD 형식을 " ++"추천합니다." + + #: plugins/changelog.py:55 + msgid "show given number of changelog entries per package" +@@ -103,7 +105,9 @@ msgstr "주어진 수의 꾸러미(package) 마다 변화기록 항목을 보여 + msgid "" + "show only new changelog entries for packages, that provide an upgrade for " + "some of already installed packages." +-msgstr "몇몇 이미 설치된 꾸러미(package)들의 최신화를 제공하는 꾸러미를 위하여 새로운 변화기록만을 보여줍니다." ++msgstr "" ++"몇몇 이미 설치된 꾸러미(package)들의 최신화를 제공하는 꾸러미를 위하여 새로" ++"운 변화기록만을 보여줍니다." + + #: plugins/changelog.py:60 + msgid "PACKAGE" +@@ -177,8 +181,8 @@ msgid "" + "Warning: --enablerepo/--disablerepo arguments have no meaningwith config " + "manager. Use --set-enabled/--set-disabled instead." + msgstr "" +-"경고: -- --enablerepo/--disablerepo 인수는 설정 관리자와 함께 의미를 갖고 있지 않습니다. 대신에 --set-" +-"enabled/--set-disabled를 사용하세요." ++"경고: -- --enablerepo/--disablerepo 인수는 설정 관리자와 함께 의미를 갖고 있" ++"지 않습니다. 대신에 --set-enabled/--set-disabled를 사용하세요." + + #: plugins/config_manager.py:132 + #, python-format +@@ -200,27 +204,27 @@ msgstr[0] "저장소 구성에 실패했습니다" + msgid "Could not save repo to repofile %s: %s" + msgstr "repofile에 repo를 저장할 수 없습니다. %s: %s" + +-#: plugins/copr.py:59 ++#: plugins/copr.py:68 + msgid "y" + msgstr "y" + +-#: plugins/copr.py:59 ++#: plugins/copr.py:68 + msgid "yes" + msgstr "예" + +-#: plugins/copr.py:60 ++#: plugins/copr.py:69 + msgid "n" + msgstr "n" + +-#: plugins/copr.py:60 ++#: plugins/copr.py:69 + msgid "no" + msgstr "아니" + +-#: plugins/copr.py:79 ++#: plugins/copr.py:88 + msgid "Interact with Copr repositories." + msgstr "Copr 저장소와 상호 작용하십시오." + +-#: plugins/copr.py:81 ++#: plugins/copr.py:90 + msgid "" + "\n" + " enable name/project [chroot]\n" +@@ -258,65 +262,67 @@ msgstr "" + " copr search tests\n" + " " + +-#: plugins/copr.py:107 ++#: plugins/copr.py:116 + msgid "List all installed Copr repositories (default)" + msgstr "설치된 모든 Copr 저장소 나열 (기본값)" + +-#: plugins/copr.py:109 ++#: plugins/copr.py:118 + msgid "List enabled Copr repositories" + msgstr "사용 가능한 Copr 저장소 목록" + +-#: plugins/copr.py:111 ++#: plugins/copr.py:120 + msgid "List disabled Copr repositories" + msgstr "비활성화 된 Copr 저장소 목록" + +-#: plugins/copr.py:113 ++#: plugins/copr.py:122 + msgid "List available Copr repositories by user NAME" + msgstr "사용자가 사용할 수있는 Copr 저장소를 나열합니다. NAME" + +-#: plugins/copr.py:115 ++#: plugins/copr.py:124 + msgid "Specify an instance of Copr to work with" + msgstr "일하는 Copr의 예를 지정합니다" + +-#: plugins/copr.py:149 plugins/copr.py:217 plugins/copr.py:244 ++#: plugins/copr.py:160 plugins/copr.py:228 plugins/copr.py:255 + msgid "Error: " + msgstr "오류: " + +-#: plugins/copr.py:150 ++#: plugins/copr.py:161 + msgid "" +-"specify Copr hub either with `--hub` or using " +-"`copr_hub/copr_username/copr_projectname` format" ++"specify Copr hub either with `--hub` or using `copr_hub/copr_username/" ++"copr_projectname` format" + msgstr "" +-"Corp hub를 `--hub` 또는 사용하기 `copr_hub/copr_username/copr_projectname`형식으로 " +-"지정합니다" ++"Corp hub를 `--hub` 또는 사용하기 `copr_hub/copr_username/copr_projectname`형" ++"식으로 지정합니다" + +-#: plugins/copr.py:153 ++#: plugins/copr.py:164 + msgid "multiple hubs specified" + msgstr "지정된 여러 허브" + +-#: plugins/copr.py:218 plugins/copr.py:222 ++#: plugins/copr.py:229 plugins/copr.py:233 + msgid "exactly two additional parameters to copr command are required" + msgstr "copr 명령에 정확히 두 개의 추가 매개 변수가 필요합니다" + +-#: plugins/copr.py:227 ++#: plugins/copr.py:238 + msgid "Too many arguments." + msgstr "너무 많은 인수." + +-#: plugins/copr.py:230 ++#: plugins/copr.py:241 + msgid "" + "Bad format of optional chroot. The format is distribution-version-" + "architecture." + msgstr "선택적인 chroot의 나쁜 형식. 형식은 배포-버전-구조입니다." + +-#: plugins/copr.py:245 ++#: plugins/copr.py:256 + msgid "use format `copr_username/copr_projectname` to reference copr project" +-msgstr "copr 프로젝트를 참조하기 위해`copr_username / copr_projectname` 형식을 사용하십시오" ++msgstr "" ++"copr 프로젝트를 참조하기 위해`copr_username / copr_projectname` 형식을 사용하" ++"십시오" + +-#: plugins/copr.py:247 ++#: plugins/copr.py:258 + msgid "bad copr project format" + msgstr "나쁜 copr 프로젝트 형식" + +-#: plugins/copr.py:261 ++#: plugins/copr.py:272 + msgid "" + "\n" + "Enabling a Copr repository. Please note that this repository is not part\n" +@@ -324,91 +330,95 @@ msgid "" + "\n" + "The Fedora Project does not exercise any power over the contents of\n" + "this repository beyond the rules outlined in the Copr FAQ at\n" +-",\n" ++",\n" + "and packages are not held to any quality or security level.\n" + "\n" + "Please do not file bug reports about these packages in Fedora\n" + "Bugzilla. In case of problems, contact the owner of this repository.\n" + msgstr "" + "\n" +-"Core 저정소를 활성화합니다. 이 저장소는 주요 배포판 부분이 아님을 알고 있기 바라고,\n" ++"Core 저정소를 활성화합니다. 이 저장소는 주요 배포판 부분이 아님을 알고 있기 " ++"바라고,\n" + "품질이 다를 수 있습니다.\n" + "\n" + "페도라 프로젝트는\n" +-"에\n" +-"Core FAQ에 있는 설명된 규칙을 넘는 저장소 내용 이상의 권한을 시험하지 않으며,\n" ++"에\n" ++"Core FAQ에 있는 설명된 규칙을 넘는 저장소 내용 이상의 권한을 시험하지 않으" ++"며,\n" + "그리고 꾸러미(package)는 어떤 품질이나 보안 수준을 유지하지 않습니다.\n" + "\n" + "페도라 버그질라에 이들 꾸러미에 대한 파일 결점 보고를 제출하지 마세요.\n" + "이들 문제는, 이들 저장소 소유자와 접촉하세요.\n" + +-#: plugins/copr.py:278 ++#: plugins/copr.py:289 + msgid "Repository successfully enabled." + msgstr "저장소가 사용 설정되었습니다." + +-#: plugins/copr.py:283 ++#: plugins/copr.py:294 + msgid "Repository successfully disabled." + msgstr "저장소가 사용 중지되었습니다." + +-#: plugins/copr.py:287 ++#: plugins/copr.py:298 + msgid "Repository successfully removed." + msgstr "저장소가 제거되었습니다." + +-#: plugins/copr.py:291 plugins/copr.py:698 ++#: plugins/copr.py:302 plugins/copr.py:706 + msgid "Unknown subcommand {}." + msgstr "알 수없는 부속 명령 {}." + +-#: plugins/copr.py:348 ++#: plugins/copr.py:359 + msgid "" +-"* These coprs have repo file with an old format that contains no information" +-" about Copr hub - the default one was assumed. Re-enable the project to fix " ++"* These coprs have repo file with an old format that contains no information " ++"about Copr hub - the default one was assumed. Re-enable the project to fix " + "this." + msgstr "" +-"* 이들 coprs은 Copr hub에 대하여 어떤 정보도 포함하지 않는 오래된 형태의 저장소 파일을 갖고 있습니다. 이 문제를 수정하기" +-" 위하여 프로젝트를 재활성화하세요." ++"* 이들 coprs은 Copr hub에 대하여 어떤 정보도 포함하지 않는 오래된 형태의 저장" ++"소 파일을 갖고 있습니다. 이 문제를 수정하기 위하여 프로젝트를 재활성화하세요." + +-#: plugins/copr.py:360 ++#: plugins/copr.py:372 + msgid "Can't parse repositories for username '{}'." + msgstr "사용자 이름 '{}'에 대한 리포지토리를 구문 분석 할 수 없습니다." + +-#: plugins/copr.py:363 ++#: plugins/copr.py:375 + msgid "List of {} coprs" + msgstr "{} 명의 경찰 목록" + +-#: plugins/copr.py:371 ++#: plugins/copr.py:380 + msgid "No description given" + msgstr "설명이 없습니다" + +-#: plugins/copr.py:383 ++#: plugins/copr.py:392 + msgid "Can't parse search for '{}'." + msgstr "'{}'에 대한 검색을 구문 분석 할 수 없습니다." + +-#: plugins/copr.py:386 ++#: plugins/copr.py:395 + msgid "Matched: {}" + msgstr "일치하는 항목 : {}" + +-#: plugins/copr.py:394 ++#: plugins/copr.py:400 + msgid "No description given." + msgstr "설명이 없습니다." + +-#: plugins/copr.py:417 ++#: plugins/copr.py:422 + msgid "Safe and good answer. Exiting." + msgstr "안전하고 좋은 대답. 나가기." + +-#: plugins/copr.py:424 ++#: plugins/copr.py:429 + msgid "This command has to be run under the root user." + msgstr "이 명령은 루트 사용자로 실행해야합니다." + +-#: plugins/copr.py:486 ++#: plugins/copr.py:493 + msgid "" + "This repository does not have any builds yet so you cannot enable it now." + msgstr "이 저장소에는 빌드가 아직 없으므로 지금 사용할 수 없습니다." + +-#: plugins/copr.py:489 ++#: plugins/copr.py:496 + msgid "Such repository does not exist." + msgstr "이러한 저장소는 존재하지 않습니다." + +-#: plugins/copr.py:533 ++#: plugins/copr.py:540 + #, python-brace-format + msgid "" + "Maintainer of the enabled Copr repository decided to make\n" +@@ -437,44 +447,44 @@ msgstr "" + "\n" + "이들 저장소는 자동으로 활성화 됩니다." + +-#: plugins/copr.py:554 ++#: plugins/copr.py:561 + msgid "Do you want to keep them enabled?" + msgstr "계속 사용하길 원하시나요?" + +-#: plugins/copr.py:587 ++#: plugins/copr.py:594 + #, python-brace-format + msgid "Failed to remove copr repo {0}/{1}/{2}" + msgstr "copr repo {0}/{1}/{2} 제거를 실패하였습니다" + +-#: plugins/copr.py:598 ++#: plugins/copr.py:605 + msgid "Failed to disable copr repo {}/{}" + msgstr "copr repo {} / {}를 사용 중지를 실패하였습니다" + +-#: plugins/copr.py:616 plugins/copr.py:653 ++#: plugins/copr.py:623 plugins/copr.py:660 + msgid "Unknown response from server." + msgstr "서버에서 알 수없는 응답." + +-#: plugins/copr.py:638 ++#: plugins/copr.py:645 + msgid "Interact with Playground repository." + msgstr "놀이터 저장소와 상호 작용하십시오." + +-#: plugins/copr.py:644 ++#: plugins/copr.py:651 + msgid "Enabling a Playground repository." + msgstr "동작 저장소와 활용하기." + +-#: plugins/copr.py:645 ++#: plugins/copr.py:652 + msgid "Do you want to continue?" + msgstr "계속하기를 원하십니까?" + +-#: plugins/copr.py:688 ++#: plugins/copr.py:696 + msgid "Playground repositories successfully enabled." + msgstr "놀이터 저장소를 사용하도록 설정했습니다." + +-#: plugins/copr.py:691 ++#: plugins/copr.py:699 + msgid "Playground repositories successfully disabled." + msgstr "놀이터 저장소가 사용 중지되었습니다." + +-#: plugins/copr.py:695 ++#: plugins/copr.py:703 + msgid "Playground repositories successfully updated." + msgstr "놀이터 저장소가 성공적으로 업데이트되었습니다." + +@@ -511,7 +521,9 @@ msgstr "기록 된 꾸러미의 최신 버전을 설치하십시오." + msgid "" + "Ignore architecture and install missing packages matching the name, epoch, " + "version and release." +-msgstr "구조를 무시하고 이름, 기원, 버전및 출시와 일치하는 누락 된 꾸러미를 설치하십시오." ++msgstr "" ++"구조를 무시하고 이름, 기원, 버전및 출시와 일치하는 누락 된 꾸러미를 설치하십" ++"시오." + + #: plugins/debug.py:196 + msgid "limit to specified type" +@@ -521,7 +533,9 @@ msgstr "특정 유형으로 제한" + msgid "" + "Allow removing of install-only packages. Using this option may result in an " + "attempt to remove the running kernel." +-msgstr "설치전용 꾸리미 제거를 허용합니다. 이 선택의 사용은 동작하고 있는 커널을 제거하는 결과가 나타날 수 있습니다." ++msgstr "" ++"설치전용 꾸리미 제거를 허용합니다. 이 선택의 사용은 동작하고 있는 커널을 제거" ++"하는 결과가 나타날 수 있습니다." + + #: plugins/debug.py:202 + msgid "name of dump file" +@@ -545,25 +559,33 @@ msgstr "디버그정보 꾸러미(package) 설치" + #, python-format + msgid "" + "Could not find debuginfo package for the following available packages: %s" +-msgstr "다음 사용가능한 꾸러미(package): %s 를 위하여 디버그정보 꾸러미를 찾을 수 없습니다" ++msgstr "" ++"다음 사용가능한 꾸러미(package): %s 를 위하여 디버그정보 꾸러미를 찾을 수 없" ++"습니다" + + #: plugins/debuginfo-install.py:185 + #, python-format + msgid "" + "Could not find debugsource package for the following available packages: %s" +-msgstr "다음 가용한 꾸러미(package): %s 를 위하여 디버그자원 꾸러미(package)를 찾을 수 없습니다" ++msgstr "" ++"다음 가용한 꾸러미(package): %s 를 위하여 디버그자원 꾸러미(package)를 찾을 " ++"수 없습니다" + + #: plugins/debuginfo-install.py:190 + #, python-format + msgid "" + "Could not find debuginfo package for the following installed packages: %s" +-msgstr "다음 설치된 꾸러미(package): %s 를 위한 디버그정보 꾸러미(package)를 찾을 수 없습니다" ++msgstr "" ++"다음 설치된 꾸러미(package): %s 를 위한 디버그정보 꾸러미(package)를 찾을 수 " ++"없습니다" + + #: plugins/debuginfo-install.py:195 + #, python-format + msgid "" + "Could not find debugsource package for the following installed packages: %s" +-msgstr "다음 설치된 꾸러미(package): %s 를 위하여 디버그자원 꾸러미(package)를 찾을 수 없습니다" ++msgstr "" ++"다음 설치된 꾸러미(package): %s 를 위하여 디버그자원 꾸러미(package)를 찾을 " ++"수 없습니다" + + #: plugins/debuginfo-install.py:199 + msgid "Unable to find a match" +@@ -601,7 +623,9 @@ msgstr "필요한 종속성을 해결하고 내려받아요" + msgid "" + "when running with --resolve, download all dependencies (do not exclude " + "already installed ones)" +-msgstr "--resolve 와 함께 실행 할 때에, 모든 의존성을 내려받습니다 (이미 설치된 것들은 포함하지 않습니다)" ++msgstr "" ++"--resolve 와 함께 실행 할 때에, 모든 의존성을 내려받습니다 (이미 설치된 것들" ++"은 포함하지 않습니다)" + + #: plugins/download.py:67 + msgid "" +@@ -649,7 +673,9 @@ msgstr "번역된 자료가 유효하지 않음/비워짐" + + #: plugins/groups_manager.py:71 + msgid "Can't generate group id from '{}'. Please specify group id using --id." +-msgstr "'{}' 에서 그룹 id를 발생 할 수 없습니다. --id를 사용하여 그룹 id를 지정해 주세요." ++msgstr "" ++"'{}' 에서 그룹 id를 발생 할 수 없습니다. --id를 사용하여 그룹 id를 지정해 주" ++"세요." + + #: plugins/groups_manager.py:79 + msgid "create and edit groups metadata file" +@@ -735,19 +761,21 @@ msgstr "파일 \"{}\": {} 를 적재 할 수 없습니다" + msgid "Can't save file \"{}\": {}" + msgstr "파일 \"{}\": {}을 저장 할 수 없습니다" + +-#: plugins/groups_manager.py:259 ++#: plugins/groups_manager.py:261 + msgid "No match for argument: {}" + msgstr "일치하는 인수가 없습니다 :{}" + +-#: plugins/groups_manager.py:296 ++#: plugins/groups_manager.py:298 + msgid "Can't remove packages from non-existent group" + msgstr "존재하지 않는 그룹에서 꾸러미(package)를 제거 할 수 없습니다" + +-#: plugins/groups_manager.py:305 ++#: plugins/groups_manager.py:307 + msgid "" +-"Group id '{}' generated from '{}' is duplicit. Please specify group id using" +-" --id." +-msgstr "'{}'에서 발생한 그룹 id '{}'는 중복되었습니다. --id를 사용하여 그룹 id를 지정하기 바랍니다." ++"Group id '{}' generated from '{}' is duplicit. Please specify group id using " ++"--id." ++msgstr "" ++"'{}'에서 발생한 그룹 id '{}'는 중복되었습니다. --id를 사용하여 그룹 id를 지정" ++"하기 바랍니다." + + #: plugins/leaves.py:32 + msgid "List installed packages not required by any other package" +@@ -786,9 +814,8 @@ msgstr "기록 데이터 마이그레이션 중 ..." + msgid "" + "No installed package found for package name \"{pkg}\" specified in needs-" + "restarting file \"{file}\"." +-msgstr "" +-"재시작이 필요한 파일 \"{file}\" 에 지정한 꾸러미 이름 \"{pkg}\"을 위하여 설치된 꾸러미(package)를 찾을 수 " +-"없습니다." ++msgstr "재시작이 필요한 파일 \"{file}\" 에 지정한 꾸러미 이름 \"{pkg}\"을 위하여 " ++"설치된 꾸러미를 찾을 수 없습니다." + + #: plugins/needs_restarting.py:220 + msgid "determine updated binaries that need restarting" +@@ -801,7 +828,8 @@ msgstr "이 사용자의 프로세스만 고려하세요" + #: plugins/needs_restarting.py:227 + msgid "" + "only report whether a reboot is required (exit code 1) or not (exit code 0)" +-msgstr "재시작이 요구되는 (exit code 1) 또는 아닌(exit code0) 경우에만 보고합니다" ++msgstr "" ++"재시작이 요구되는 (exit code 1) 또는 아닌(exit code0) 경우에만 보고합니다" + + #: plugins/needs_restarting.py:230 + msgid "only report affected systemd services" +@@ -889,7 +917,9 @@ msgstr "여러 번 사용 될 수 있는, 새로운 저장소를 지정합니다 + msgid "" + "Specify architectures to compare, can be used multiple times. By default, " + "only source rpms are compared." +-msgstr "비교 할 구조를 지정하고, 여러 번 사용 될 수 있습니다. 기본적으로, 자원 rpms만 비교됩니다." ++msgstr "" ++"비교 할 구조를 지정하고, 여러 번 사용 될 수 있습니다. 기본적으로, 자원 rpms" ++"만 비교됩니다." + + #: plugins/repodiff.py:67 + msgid "Output additional data about the size of the changes." +@@ -897,9 +927,10 @@ msgstr "크기 변화에 대한 추가 자료를 출력합니다." + + #: plugins/repodiff.py:69 + msgid "" +-"Compare packages also by arch. By default packages are compared just by " +-"name." +-msgstr "구조에 의해 꾸러미(package) 또한 비교합니다. 기본적으로 꾸러미(package)는 이름으로만 비교됩니다." ++"Compare packages also by arch. By default packages are compared just by name." ++msgstr "" ++"구조에 의해 꾸러미(package) 또한 비교합니다. 기본적으로 꾸러미(package)는 이" ++"름으로만 비교됩니다." + + #: plugins/repodiff.py:72 + msgid "Output a simple one line message for modified packages." +@@ -1024,7 +1055,7 @@ msgstr "rpm 꾸러미(package) 디렉토리 관리" + msgid "Pass either --old or --new, not both!" + msgstr "--old 또는 --new 중 하나를 전달하세요!" + +-#: plugins/repomanage.py:71 ++#: plugins/repomanage.py:89 + msgid "No files to process" + msgstr "처리 할 파일 없음" + +@@ -1078,9 +1109,11 @@ msgstr "또한 comps.xml 내려받기와 압축 풀기" + + #: plugins/reposync.py:75 + msgid "" +-"where to store downloaded repository metadata. Defaults to the value of " +-"--download-path." +-msgstr "내려받은 저장소 메타데이타를 저장하기 위한 장소. --download-path의 값으로 기본 지정합니다." ++"where to store downloaded repository metadata. Defaults to the value of --" ++"download-path." ++msgstr "" ++"내려받은 저장소 메타데이타를 저장하기 위한 장소. --download-path의 값으로 기" ++"본 지정합니다." + + #: plugins/reposync.py:78 + msgid "download only newest packages per-repo" +@@ -1100,7 +1133,7 @@ msgstr "서버에 있는 하나에서 로컬파일의 로컬 타임스템프 설 + + #: plugins/reposync.py:87 + msgid "download only source packages" +-msgstr "소스 꾸러미(package)만 내려받아요" ++msgstr "원천 꾸러미만 내려받기" + + #: plugins/reposync.py:89 + msgid "Just list urls of what would be downloaded, don't download" +@@ -1196,24 +1229,26 @@ msgid "Versionlock plugin: number of lock rules from file \"{}\" applied: {}" + msgstr "버전 잠금 플러그인: 적용된 파일 \"{} \"에서 잠금 규칙의 수: {}" + + #: plugins/versionlock.py:44 +-msgid "Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" ++msgid "" ++"Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" + msgstr "버전 잠금 플러그인: 적용된 파일 \"{} \"에서 제외 규칙의 수: {}" + + #: plugins/versionlock.py:45 + msgid "Versionlock plugin: could not parse pattern:" + msgstr "버전 잠금 플러그인: 유형을 구문 분석 할 수 없습니다:" + +-#: plugins/versionlock.py:132 ++#: plugins/versionlock.py:138 + msgid "control package version locks" + msgstr "꾸러미 버전 잠금을 제어합니다" + +-#: plugins/versionlock.py:138 ++#: plugins/versionlock.py:144 + msgid "Use package specifications as they are, do not try to parse them" + msgstr "꾸러미(package) 사양을 그대로 사용하며, 구문 분석을 시도하지 않습니다" + +-#: plugins/versionlock.py:158 ++#: plugins/versionlock.py:164 + msgid "Subcommand '{}' is deprecated. Use 'exclude' subcommand instead." +-msgstr "하위명령 '{}'는 더 이상 사용하지 않습니다. 대신에 하위명령 'exclude'를 사용합니다." ++msgstr "하위명령 '{}'는 더 이상 사용하지 않습니다. 대신에 하위명령 'exclude'를 " ++"사용합니다." + + #~ msgid "" + #~ "\n" +diff --git a/po/zh_CN.po b/po/zh_CN.po +index ba52484..f0f0c06 100644 +--- a/po/zh_CN.po ++++ b/po/zh_CN.po +@@ -3,23 +3,26 @@ + # mosquito , 2016. #zanata + # Charles Lee , 2017. #zanata, 2020, 2021. + # cheng ye <18969068329@163.com>, 2017. #zanata +-# Ludek Janda , 2018. #zanata ++# Ludek Janda , 2018. #zanata, 2021. + # Hongqiao Chen , 2020. ++# Sundeep Anand , 2021. + # Qiyu Yan , 2021. ++# Transtats , 2022. + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2021-04-27 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 13:42+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" + + #: plugins/builddep.py:45 + msgid "[PACKAGE|PACKAGE.spec]" +@@ -59,8 +62,7 @@ msgid "Some packages could not be found." + msgstr "某些软件包无法找到。" + + #. No provides, no files +-#. Richdeps can have no matches but it could be correct (solver must decide +-#. later) ++#. Richdeps can have no matches but it could be correct (solver must decide later) + #: plugins/builddep.py:173 + #, python-format + msgid "No matching package to install: '%s'" +@@ -98,7 +100,8 @@ msgstr "查看软件包的改变日志数据" + msgid "" + "show changelog entries since DATE. To avoid ambiguosity, YYYY-MM-DD format " + "is recommended." +-msgstr "显示自 DATE 开始的改变日志信息。为了避免混淆,推荐使用 YYYY-MM-DD 格式。" ++msgstr "" ++"显示自 DATE 开始的改变日志信息。为了避免混淆,推荐使用 YYYY-MM-DD 格式。" + + #: plugins/changelog.py:55 + msgid "show given number of changelog entries per package" +@@ -182,8 +185,8 @@ msgid "" + "Warning: --enablerepo/--disablerepo arguments have no meaningwith config " + "manager. Use --set-enabled/--set-disabled instead." + msgstr "" +-"警告:--enablerepo/--disablerepo 参数对于 config manager 没有作用。请使用 --set-" +-"enabled/--set-disabled。" ++"警告:--enablerepo/--disablerepo 参数对于 config manager 没有作用。请使用 --" ++"set-enabled/--set-disabled。" + + #: plugins/config_manager.py:132 + #, python-format +@@ -205,27 +208,27 @@ msgstr[0] "配置仓库失败" + msgid "Could not save repo to repofile %s: %s" + msgstr "无法保存仓库至仓库文件 %s:%s" + +-#: plugins/copr.py:59 ++#: plugins/copr.py:68 + msgid "y" + msgstr "y" + +-#: plugins/copr.py:59 ++#: plugins/copr.py:68 + msgid "yes" + msgstr "是" + +-#: plugins/copr.py:60 ++#: plugins/copr.py:69 + msgid "n" + msgstr "n" + +-#: plugins/copr.py:60 ++#: plugins/copr.py:69 + msgid "no" + msgstr "否" + +-#: plugins/copr.py:79 ++#: plugins/copr.py:88 + msgid "Interact with Copr repositories." + msgstr "与 Copr 仓库交互。" + +-#: plugins/copr.py:81 ++#: plugins/copr.py:90 + msgid "" + "\n" + " enable name/project [chroot]\n" +@@ -253,7 +256,7 @@ msgstr "" + " list --available-by-user=NAME\n" + " search project\n" + "\n" +-" Examples:\n" ++" 例如:\n" + " copr enable rhscl/perl516 epel-6-x86_64\n" + " copr enable ignatenkobrain/ocltoys\n" + " copr disable rhscl/perl516\n" +@@ -263,64 +266,65 @@ msgstr "" + " copr search tests\n" + " " + +-#: plugins/copr.py:107 ++#: plugins/copr.py:116 + msgid "List all installed Copr repositories (default)" + msgstr "列出所有安装的 Copr 仓库(默认)" + +-#: plugins/copr.py:109 ++#: plugins/copr.py:118 + msgid "List enabled Copr repositories" + msgstr "列出启动的 Copr 仓库" + +-#: plugins/copr.py:111 ++#: plugins/copr.py:120 + msgid "List disabled Copr repositories" + msgstr "列出禁用的 Copr 仓库" + +-#: plugins/copr.py:113 ++#: plugins/copr.py:122 + msgid "List available Copr repositories by user NAME" + msgstr "按照用户 NAME 列出可用的 Copr 仓库" + +-#: plugins/copr.py:115 ++#: plugins/copr.py:124 + msgid "Specify an instance of Copr to work with" + msgstr "指定需要使用的 Copr 实例" + +-#: plugins/copr.py:149 plugins/copr.py:217 plugins/copr.py:244 ++#: plugins/copr.py:160 plugins/copr.py:228 plugins/copr.py:255 + msgid "Error: " + msgstr "错误: " + +-#: plugins/copr.py:150 ++#: plugins/copr.py:161 + msgid "" +-"specify Copr hub either with `--hub` or using " +-"`copr_hub/copr_username/copr_projectname` format" ++"specify Copr hub either with `--hub` or using `copr_hub/copr_username/" ++"copr_projectname` format" + msgstr "" +-"使用 `--hub` 或使用 `copr_hub/copr_username/copr_projectname` 格式指定 Copr hub" ++"使用 `--hub` 或使用 `copr_hub/copr_username/copr_projectname` 格式指定 Copr " ++"hub" + +-#: plugins/copr.py:153 ++#: plugins/copr.py:164 + msgid "multiple hubs specified" + msgstr "指定多个 hub" + +-#: plugins/copr.py:218 plugins/copr.py:222 ++#: plugins/copr.py:229 plugins/copr.py:233 + msgid "exactly two additional parameters to copr command are required" + msgstr "Copr 命令要求有且仅有两个额外参数" + +-#: plugins/copr.py:227 ++#: plugins/copr.py:238 + msgid "Too many arguments." + msgstr "参数过多。" + +-#: plugins/copr.py:230 ++#: plugins/copr.py:241 + msgid "" + "Bad format of optional chroot. The format is distribution-version-" + "architecture." +-msgstr "可选 chroot 名称格式无效。有效的格式是 发行版名称-版本号-架构。" ++msgstr "可选 chroot 的错误格式。格式为 distribution-version-architecture。" + +-#: plugins/copr.py:245 ++#: plugins/copr.py:256 + msgid "use format `copr_username/copr_projectname` to reference copr project" + msgstr "使用格式 `copr_username/copr_projectname` 来引用 Copr 项目" + +-#: plugins/copr.py:247 ++#: plugins/copr.py:258 + msgid "bad copr project format" + msgstr "错误的 Copr 项目格式" + +-#: plugins/copr.py:261 ++#: plugins/copr.py:272 + msgid "" + "\n" + "Enabling a Copr repository. Please note that this repository is not part\n" +@@ -328,7 +332,8 @@ msgid "" + "\n" + "The Fedora Project does not exercise any power over the contents of\n" + "this repository beyond the rules outlined in the Copr FAQ at\n" +-",\n" ++",\n" + "and packages are not held to any quality or security level.\n" + "\n" + "Please do not file bug reports about these packages in Fedora\n" +@@ -339,79 +344,81 @@ msgstr "" + "不是主发行版本的一部分,质量可能会有所不同。\n" + "\n" + "Fedora 项目对其不行使除了于 Copr 常见问题\n" +-"\n" ++"\n" + "中所提出的规则外的任何权力,并且其软件包不保证达到特定质量\n" + "和安全水准。\n" + "\n" + "请不要在 Fedora Bugzilla 中报告这些软件包中出现的\n" + "问题。当出现问题时,请联系仓库的所有者。\n" + +-#: plugins/copr.py:278 ++#: plugins/copr.py:289 + msgid "Repository successfully enabled." + msgstr "启用软件仓库成功。" + +-#: plugins/copr.py:283 ++#: plugins/copr.py:294 + msgid "Repository successfully disabled." + msgstr "禁用软件仓库成功。" + +-#: plugins/copr.py:287 ++#: plugins/copr.py:298 + msgid "Repository successfully removed." + msgstr "软件仓库已成功删除。" + +-#: plugins/copr.py:291 plugins/copr.py:698 ++#: plugins/copr.py:302 plugins/copr.py:706 + msgid "Unknown subcommand {}." + msgstr "未知的子命令 {}。" + +-#: plugins/copr.py:348 ++#: plugins/copr.py:359 + msgid "" +-"* These coprs have repo file with an old format that contains no information" +-" about Copr hub - the default one was assumed. Re-enable the project to fix " ++"* These coprs have repo file with an old format that contains no information " ++"about Copr hub - the default one was assumed. Re-enable the project to fix " + "this." + msgstr "" +-"* 这些 coprs 有使用旧格式的 repo 文件,它们没有包括 Copr hub 的信息 - 假设使用默认值。重新启用项目来解决这个问题。" ++"* 这些 coprs 有使用旧格式的 repo 文件,它们没有包括 Copr hub 的信息 - 假设使" ++"用默认值。重新启用项目来解决这个问题。" + +-#: plugins/copr.py:360 ++#: plugins/copr.py:372 + msgid "Can't parse repositories for username '{}'." + msgstr "无法为用户名 username '{}' 解析仓库。" + +-#: plugins/copr.py:363 ++#: plugins/copr.py:375 + msgid "List of {} coprs" + msgstr "{} Coprs 列表" + +-#: plugins/copr.py:371 ++#: plugins/copr.py:380 + msgid "No description given" + msgstr "没有给出描述" + +-#: plugins/copr.py:383 ++#: plugins/copr.py:392 + msgid "Can't parse search for '{}'." + msgstr "无法解析针对 '{}' 的搜索。" + +-#: plugins/copr.py:386 ++#: plugins/copr.py:395 + msgid "Matched: {}" + msgstr "匹配:{}" + +-#: plugins/copr.py:394 ++#: plugins/copr.py:400 + msgid "No description given." + msgstr "没有给出描述。" + +-#: plugins/copr.py:417 ++#: plugins/copr.py:422 + msgid "Safe and good answer. Exiting." + msgstr "安全及明智的答案。退出。" + +-#: plugins/copr.py:424 ++#: plugins/copr.py:429 + msgid "This command has to be run under the root user." + msgstr "该命令必须以 root 用户运行。" + +-#: plugins/copr.py:486 ++#: plugins/copr.py:493 + msgid "" + "This repository does not have any builds yet so you cannot enable it now." + msgstr "该仓库尚未包含任何构建所以您现在无法启用它。" + +-#: plugins/copr.py:489 ++#: plugins/copr.py:496 + msgid "Such repository does not exist." + msgstr "该软件仓库不存在。" + +-#: plugins/copr.py:533 ++#: plugins/copr.py:540 + #, python-brace-format + msgid "" + "Maintainer of the enabled Copr repository decided to make\n" +@@ -440,44 +447,44 @@ msgstr "" + "\n" + "这些仓库已被自动启用。" + +-#: plugins/copr.py:554 ++#: plugins/copr.py:561 + msgid "Do you want to keep them enabled?" + msgstr "您需要保持它们被启用吗?" + +-#: plugins/copr.py:587 ++#: plugins/copr.py:594 + #, python-brace-format + msgid "Failed to remove copr repo {0}/{1}/{2}" + msgstr "删除 copr 仓库 {0}/{1}/{2} 失败" + +-#: plugins/copr.py:598 ++#: plugins/copr.py:605 + msgid "Failed to disable copr repo {}/{}" + msgstr "无法禁用 Copr 软件仓库 {}/{}" + +-#: plugins/copr.py:616 plugins/copr.py:653 ++#: plugins/copr.py:623 plugins/copr.py:660 + msgid "Unknown response from server." + msgstr "来自服务器的未知响应。" + +-#: plugins/copr.py:638 ++#: plugins/copr.py:645 + msgid "Interact with Playground repository." + msgstr "与 Playground 仓库交互。" + +-#: plugins/copr.py:644 ++#: plugins/copr.py:651 + msgid "Enabling a Playground repository." + msgstr "启用 Playground 仓库。" + +-#: plugins/copr.py:645 ++#: plugins/copr.py:652 + msgid "Do you want to continue?" + msgstr "您希望继续吗?" + +-#: plugins/copr.py:688 ++#: plugins/copr.py:696 + msgid "Playground repositories successfully enabled." + msgstr "启用 Playground 仓库成功。" + +-#: plugins/copr.py:691 ++#: plugins/copr.py:699 + msgid "Playground repositories successfully disabled." + msgstr "禁用 Playground 仓库成功。" + +-#: plugins/copr.py:695 ++#: plugins/copr.py:703 + msgid "Playground repositories successfully updated." + msgstr "更新 Playground 仓库成功。" + +@@ -524,7 +531,9 @@ msgstr "限制到指定类型" + msgid "" + "Allow removing of install-only packages. Using this option may result in an " + "attempt to remove the running kernel." +-msgstr "允许删除仅安装(install-only)的软件包。使用这个选项可能会导致尝试删除正在运行的内核。" ++msgstr "" ++"允许删除仅安装(install-only)的软件包。使用这个选项可能会导致尝试删除正在运行" ++"的内核。" + + #: plugins/debug.py:202 + msgid "name of dump file" +@@ -738,18 +747,18 @@ msgstr "无法加载文件 \"{}\": {}" + msgid "Can't save file \"{}\": {}" + msgstr "无法保存文件 \"{}\": {}" + +-#: plugins/groups_manager.py:259 ++#: plugins/groups_manager.py:261 + msgid "No match for argument: {}" + msgstr "未找到匹配的参数: {}" + +-#: plugins/groups_manager.py:296 ++#: plugins/groups_manager.py:298 + msgid "Can't remove packages from non-existent group" + msgstr "无法从不存在的组中删除软件包" + +-#: plugins/groups_manager.py:305 ++#: plugins/groups_manager.py:307 + msgid "" +-"Group id '{}' generated from '{}' is duplicit. Please specify group id using" +-" --id." ++"Group id '{}' generated from '{}' is duplicit. Please specify group id using " ++"--id." + msgstr "从 '{}' 生成的组 id '{}' 是显式的。请使用 --id 指定组 ID。" + + #: plugins/leaves.py:32 +@@ -789,7 +798,8 @@ msgstr "正在迁移历史数据…" + msgid "" + "No installed package found for package name \"{pkg}\" specified in needs-" + "restarting file \"{file}\"." +-msgstr "没有为在需要重新启动文件 \"{file}\" 中指定的名为 \"{pkg}\" 的软件包找到安装的软件包。" ++msgstr "未找到在需要重新启动文件 \"{file}\" 中指定的软件包名为 \"{pkg}\" " ++"的已安装的软件包。" + + #: plugins/needs_restarting.py:220 + msgid "determine updated binaries that need restarting" +@@ -898,8 +908,7 @@ msgstr "输出关于改变大小的额外数据。" + + #: plugins/repodiff.py:69 + msgid "" +-"Compare packages also by arch. By default packages are compared just by " +-"name." ++"Compare packages also by arch. By default packages are compared just by name." + msgstr "同时按架构比较软件包。在默认情况下只按名称比较软件包。" + + #: plugins/repodiff.py:72 +@@ -1025,7 +1034,7 @@ msgstr "管理 RPM 软件包目录" + msgid "Pass either --old or --new, not both!" + msgstr "传入 --old 或者 --new,不可同时传入!" + +-#: plugins/repomanage.py:71 ++#: plugins/repomanage.py:89 + msgid "No files to process" + msgstr "没有可处理的文件" + +@@ -1079,8 +1088,8 @@ msgstr "同时下载并解压 comps.xml" + + #: plugins/reposync.py:75 + msgid "" +-"where to store downloaded repository metadata. Defaults to the value of " +-"--download-path." ++"where to store downloaded repository metadata. Defaults to the value of --" ++"download-path." + msgstr "存储下载的仓库元数据的位置。默认为 --download-path 的值。" + + #: plugins/reposync.py:78 +@@ -1101,7 +1110,7 @@ msgstr "根据服务器上的文件设置本地文件的本地时间戳" + + #: plugins/reposync.py:87 + msgid "download only source packages" +-msgstr "只下载源码包" ++msgstr "只下载源软件包" + + #: plugins/reposync.py:89 + msgid "Just list urls of what would be downloaded, don't download" +@@ -1197,24 +1206,25 @@ msgid "Versionlock plugin: number of lock rules from file \"{}\" applied: {}" + msgstr "Versionlock 插件: 文件 \"{}\" 中的锁定数量规则被应用:{}" + + #: plugins/versionlock.py:44 +-msgid "Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" ++msgid "" ++"Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" + msgstr "Versionlock 插件: 文件 \"{}\" 中的排除规则数量被应用:{}" + + #: plugins/versionlock.py:45 + msgid "Versionlock plugin: could not parse pattern:" + msgstr "Versionlock 插件:不能解析特征:" + +-#: plugins/versionlock.py:132 ++#: plugins/versionlock.py:138 + msgid "control package version locks" + msgstr "控制软件包版本锁" + +-#: plugins/versionlock.py:138 ++#: plugins/versionlock.py:144 + msgid "Use package specifications as they are, do not try to parse them" + msgstr "按原样使用程序包规格,请勿尝试解析它们" + +-#: plugins/versionlock.py:158 ++#: plugins/versionlock.py:164 + msgid "Subcommand '{}' is deprecated. Use 'exclude' subcommand instead." +-msgstr "子命令 '{}' 已被弃用。请换用 'exclude' 子命令。" ++msgstr "子命令 '{}' 已被弃用。改为使用 'exclude' 子命令。" + + #~ msgid "" + #~ "\n" +diff --git a/po/zh_TW.po b/po/zh_TW.po +index 59da438..b76b800 100644 +--- a/po/zh_TW.po ++++ b/po/zh_TW.po +@@ -10,10 +10,11 @@ msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2021-04-27 09:18-0400\n" ++"POT-Creation-Date: 2022-02-28 13:42+0100\n" + "PO-Revision-Date: 2020-08-28 21:29+0000\n" + "Last-Translator: Yi-Jyun Pan \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" +@@ -59,8 +60,7 @@ msgid "Some packages could not be found." + msgstr "有些軟體包遍尋不著。" + + #. No provides, no files +-#. Richdeps can have no matches but it could be correct (solver must decide +-#. later) ++#. Richdeps can have no matches but it could be correct (solver must decide later) + #: plugins/builddep.py:173 + #, python-format + msgid "No matching package to install: '%s'" +@@ -183,8 +183,8 @@ msgid "" + "Warning: --enablerepo/--disablerepo arguments have no meaningwith config " + "manager. Use --set-enabled/--set-disabled instead." + msgstr "" +-"警告:--enablerepo/--disablerepo 引數在組態管理員下沒有意義。請改用 --set-enabled/--set-" +-"disabled。" ++"警告:--enablerepo/--disablerepo 引數在組態管理員下沒有意義。請改用 --set-" ++"enabled/--set-disabled。" + + #: plugins/config_manager.py:132 + #, python-format +@@ -206,27 +206,27 @@ msgstr[0] "設定軟體庫失敗" + msgid "Could not save repo to repofile %s: %s" + msgstr "無法儲存軟體庫至 repofile %s:%s" + +-#: plugins/copr.py:59 ++#: plugins/copr.py:68 + msgid "y" + msgstr "y" + +-#: plugins/copr.py:59 ++#: plugins/copr.py:68 + msgid "yes" + msgstr "yes" + +-#: plugins/copr.py:60 ++#: plugins/copr.py:69 + msgid "n" + msgstr "n" + +-#: plugins/copr.py:60 ++#: plugins/copr.py:69 + msgid "no" + msgstr "no" + +-#: plugins/copr.py:79 ++#: plugins/copr.py:88 + msgid "Interact with Copr repositories." + msgstr "與 Copr 軟體庫互動。" + +-#: plugins/copr.py:81 ++#: plugins/copr.py:90 + msgid "" + "\n" + " enable name/project [chroot]\n" +@@ -264,66 +264,67 @@ msgstr "" + " copr search tests\n" + " " + +-#: plugins/copr.py:107 ++#: plugins/copr.py:116 + msgid "List all installed Copr repositories (default)" + msgstr "列出所有安裝的 Copr 軟體庫(預設值)" + +-#: plugins/copr.py:109 ++#: plugins/copr.py:118 + msgid "List enabled Copr repositories" + msgstr "列出啟用的 Copr 軟體庫" + +-#: plugins/copr.py:111 ++#: plugins/copr.py:120 + msgid "List disabled Copr repositories" + msgstr "列出停用的 Copr 軟體庫" + +-#: plugins/copr.py:113 ++#: plugins/copr.py:122 + msgid "List available Copr repositories by user NAME" + msgstr "列出使用者 NAME 可用的 Copr 軟體庫" + +-#: plugins/copr.py:115 ++#: plugins/copr.py:124 + msgid "Specify an instance of Copr to work with" + msgstr "指定要使用 Copr 的實體:" + +-#: plugins/copr.py:149 plugins/copr.py:217 plugins/copr.py:244 ++#: plugins/copr.py:160 plugins/copr.py:228 plugins/copr.py:255 + msgid "Error: " + msgstr "錯誤: " + +-#: plugins/copr.py:150 ++#: plugins/copr.py:161 + msgid "" +-"specify Copr hub either with `--hub` or using " +-"`copr_hub/copr_username/copr_projectname` format" ++"specify Copr hub either with `--hub` or using `copr_hub/copr_username/" ++"copr_projectname` format" + msgstr "" +-"使用 `--hub` 或者用 `copr_hub/copr_username/copr_projectname` 格式指定 Copr hub" ++"使用 `--hub` 或者用 `copr_hub/copr_username/copr_projectname` 格式指定 Copr " ++"hub" + +-#: plugins/copr.py:153 ++#: plugins/copr.py:164 + msgid "multiple hubs specified" + msgstr "指定了多個 hub" + +-#: plugins/copr.py:218 plugins/copr.py:222 ++#: plugins/copr.py:229 plugins/copr.py:233 + msgid "exactly two additional parameters to copr command are required" + msgstr "傳入 copr 命令的選用參數必須剛好兩個" + +-#: plugins/copr.py:227 ++#: plugins/copr.py:238 + #, fuzzy + #| msgid "No match for argument: %s" + msgid "Too many arguments." + msgstr "引數不符:%s" + +-#: plugins/copr.py:230 ++#: plugins/copr.py:241 + msgid "" + "Bad format of optional chroot. The format is distribution-version-" + "architecture." + msgstr "" + +-#: plugins/copr.py:245 ++#: plugins/copr.py:256 + msgid "use format `copr_username/copr_projectname` to reference copr project" + msgstr "使用 `copr_username/copr_projectname` 格式來參照 Copr 專案" + +-#: plugins/copr.py:247 ++#: plugins/copr.py:258 + msgid "bad copr project format" + msgstr "Copr 專案格式無效" + +-#: plugins/copr.py:261 ++#: plugins/copr.py:272 + msgid "" + "\n" + "Enabling a Copr repository. Please note that this repository is not part\n" +@@ -331,7 +332,8 @@ msgid "" + "\n" + "The Fedora Project does not exercise any power over the contents of\n" + "this repository beyond the rules outlined in the Copr FAQ at\n" +-",\n" ++",\n" + "and packages are not held to any quality or security level.\n" + "\n" + "Please do not file bug reports about these packages in Fedora\n" +@@ -342,77 +344,80 @@ msgstr "" + "不是主散布版的一部分,並且品質不定。\n" + "\n" + "Fedora Project 不會對這個軟體庫的內容行使任何超出 Copr 常見問題\n" +-"()\n" ++"()\n" + "列出規則之外的權力,且軟體包並不保有任何的品質與安全性保證。\n" + "\n" + "請不要將這些軟體包的漏洞回報至 Fedora Bugzilla。\n" + "假如碰到問題,請聯絡此軟體庫的擁有者。\n" + +-#: plugins/copr.py:278 ++#: plugins/copr.py:289 + msgid "Repository successfully enabled." + msgstr "軟體庫成功啟用。" + +-#: plugins/copr.py:283 ++#: plugins/copr.py:294 + msgid "Repository successfully disabled." + msgstr "軟體庫成功停用。" + +-#: plugins/copr.py:287 ++#: plugins/copr.py:298 + msgid "Repository successfully removed." + msgstr "軟體庫成功移除。" + +-#: plugins/copr.py:291 plugins/copr.py:698 ++#: plugins/copr.py:302 plugins/copr.py:706 + msgid "Unknown subcommand {}." + msgstr "{} 子命令未知。" + +-#: plugins/copr.py:348 ++#: plugins/copr.py:359 + msgid "" +-"* These coprs have repo file with an old format that contains no information" +-" about Copr hub - the default one was assumed. Re-enable the project to fix " ++"* These coprs have repo file with an old format that contains no information " ++"about Copr hub - the default one was assumed. Re-enable the project to fix " + "this." +-msgstr "* 這些 Copr 包含可能沒有 Copr hub 資訊的舊格式 repo 檔案 — 已假設為預設 hub。請重新啟用專案以修正。" ++msgstr "" ++"* 這些 Copr 包含可能沒有 Copr hub 資訊的舊格式 repo 檔案 — 已假設為預設 hub。" ++"請重新啟用專案以修正。" + +-#: plugins/copr.py:360 ++#: plugins/copr.py:372 + msgid "Can't parse repositories for username '{}'." + msgstr "無法解析「{}」使用者名稱的軟體庫。" + +-#: plugins/copr.py:363 ++#: plugins/copr.py:375 + msgid "List of {} coprs" + msgstr "{} Copr 清單" + +-#: plugins/copr.py:371 ++#: plugins/copr.py:380 + msgid "No description given" + msgstr "沒有提供描述" + +-#: plugins/copr.py:383 ++#: plugins/copr.py:392 + msgid "Can't parse search for '{}'." + msgstr "無法解析「{}」搜尋。" + +-#: plugins/copr.py:386 ++#: plugins/copr.py:395 + msgid "Matched: {}" + msgstr "符合項目:{}" + +-#: plugins/copr.py:394 ++#: plugins/copr.py:400 + msgid "No description given." + msgstr "沒有提供描述。" + +-#: plugins/copr.py:417 ++#: plugins/copr.py:422 + msgid "Safe and good answer. Exiting." + msgstr "安全且更棒的回應。結束。" + +-#: plugins/copr.py:424 ++#: plugins/copr.py:429 + msgid "This command has to be run under the root user." + msgstr "此命令必須在 root 使用者下執行" + +-#: plugins/copr.py:486 ++#: plugins/copr.py:493 + msgid "" + "This repository does not have any builds yet so you cannot enable it now." + msgstr "這個軟體庫尚無任何組建,所以您尚無法啟用。" + +-#: plugins/copr.py:489 ++#: plugins/copr.py:496 + msgid "Such repository does not exist." + msgstr "不存在此軟體庫。" + +-#: plugins/copr.py:533 ++#: plugins/copr.py:540 + #, python-brace-format + msgid "" + "Maintainer of the enabled Copr repository decided to make\n" +@@ -429,44 +434,44 @@ msgid "" + "These repositories have been enabled automatically." + msgstr "" + +-#: plugins/copr.py:554 ++#: plugins/copr.py:561 + msgid "Do you want to keep them enabled?" + msgstr "是否保持啟用?" + +-#: plugins/copr.py:587 ++#: plugins/copr.py:594 + #, python-brace-format + msgid "Failed to remove copr repo {0}/{1}/{2}" + msgstr "無法移除 Copr 軟體庫 {0}/{1}/{2}" + +-#: plugins/copr.py:598 ++#: plugins/copr.py:605 + msgid "Failed to disable copr repo {}/{}" + msgstr "無法停用 Copr 軟體庫 {}/{}" + +-#: plugins/copr.py:616 plugins/copr.py:653 ++#: plugins/copr.py:623 plugins/copr.py:660 + msgid "Unknown response from server." + msgstr "未知的伺服器回應。" + +-#: plugins/copr.py:638 ++#: plugins/copr.py:645 + msgid "Interact with Playground repository." + msgstr "與 Playground 軟體庫互動。" + +-#: plugins/copr.py:644 ++#: plugins/copr.py:651 + msgid "Enabling a Playground repository." + msgstr "啟用 Playground 軟體庫。" + +-#: plugins/copr.py:645 ++#: plugins/copr.py:652 + msgid "Do you want to continue?" + msgstr "是否繼續?" + +-#: plugins/copr.py:688 ++#: plugins/copr.py:696 + msgid "Playground repositories successfully enabled." + msgstr "Playground 軟體庫成功啟用。" + +-#: plugins/copr.py:691 ++#: plugins/copr.py:699 + msgid "Playground repositories successfully disabled." + msgstr "Playground 軟體庫成功停用。" + +-#: plugins/copr.py:695 ++#: plugins/copr.py:703 + msgid "Playground repositories successfully updated." + msgstr "Playground 軟體庫成功更新。" + +@@ -513,7 +518,9 @@ msgstr "限縮至指定類型" + msgid "" + "Allow removing of install-only packages. Using this option may result in an " + "attempt to remove the running kernel." +-msgstr "允許移除僅安裝 (install-only) 軟體包。啟用這個選項可能會導致執行中內核被移除。" ++msgstr "" ++"允許移除僅安裝 (install-only) 軟體包。啟用這個選項可能會導致執行中內核被移" ++"除。" + + #: plugins/debug.py:202 + msgid "name of dump file" +@@ -739,20 +746,20 @@ msgstr "無法寫入「{}」檔案" + msgid "Can't save file \"{}\": {}" + msgstr "無法寫入「{}」檔案" + +-#: plugins/groups_manager.py:259 ++#: plugins/groups_manager.py:261 + #, fuzzy + #| msgid "No match for argument: %s" + msgid "No match for argument: {}" + msgstr "引數不符:%s" + +-#: plugins/groups_manager.py:296 ++#: plugins/groups_manager.py:298 + msgid "Can't remove packages from non-existent group" + msgstr "" + +-#: plugins/groups_manager.py:305 ++#: plugins/groups_manager.py:307 + msgid "" +-"Group id '{}' generated from '{}' is duplicit. Please specify group id using" +-" --id." ++"Group id '{}' generated from '{}' is duplicit. Please specify group id using " ++"--id." + msgstr "" + + #: plugins/leaves.py:32 +@@ -901,8 +908,7 @@ msgstr "輸出跟變更大小有關的額外資料。" + + #: plugins/repodiff.py:69 + msgid "" +-"Compare packages also by arch. By default packages are compared just by " +-"name." ++"Compare packages also by arch. By default packages are compared just by name." + msgstr "也依架構比較軟體包。預設情況下,軟體包只會依名稱比較。" + + #: plugins/repodiff.py:72 +@@ -1029,7 +1035,7 @@ msgstr "管理 rpm 軟體包目錄" + msgid "Pass either --old or --new, not both!" + msgstr "只能傳入 --old 或 --new 任一,而非兩者!" + +-#: plugins/repomanage.py:71 ++#: plugins/repomanage.py:89 + msgid "No files to process" + msgstr "沒有要處理的檔案" + +@@ -1083,8 +1089,8 @@ msgstr "亦下載並解壓縮 comps.xml" + + #: plugins/reposync.py:75 + msgid "" +-"where to store downloaded repository metadata. Defaults to the value of " +-"--download-path." ++"where to store downloaded repository metadata. Defaults to the value of --" ++"download-path." + msgstr "儲存下載軟體庫之中介資料的位置。預設值為 --download-path 的值。" + + #: plugins/reposync.py:78 +@@ -1203,22 +1209,23 @@ msgid "Versionlock plugin: number of lock rules from file \"{}\" applied: {}" + msgstr "Versionlock 插件:已從「{}」檔案套用大量的鎖定規則:{}" + + #: plugins/versionlock.py:44 +-msgid "Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" ++msgid "" ++"Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" + msgstr "Versionlock 插件:已從「{}」檔案套用大量的排除規則:{}" + + #: plugins/versionlock.py:45 + msgid "Versionlock plugin: could not parse pattern:" + msgstr "Versionlock 插件:無法解析模式:" + +-#: plugins/versionlock.py:132 ++#: plugins/versionlock.py:138 + msgid "control package version locks" + msgstr "控制軟體包的版本鎖" + +-#: plugins/versionlock.py:138 ++#: plugins/versionlock.py:144 + msgid "Use package specifications as they are, do not try to parse them" + msgstr "使用其原本的軟體包規範,不要嘗試解析" + +-#: plugins/versionlock.py:158 ++#: plugins/versionlock.py:164 + msgid "Subcommand '{}' is deprecated. Use 'exclude' subcommand instead." + msgstr "" + +-- +2.35.1 + diff --git a/SPECS/dnf-plugins-core.spec b/SPECS/dnf-plugins-core.spec new file mode 100644 index 0000000..ee1a928 --- /dev/null +++ b/SPECS/dnf-plugins-core.spec @@ -0,0 +1,1605 @@ +%{?!dnf_lowest_compatible: %global dnf_lowest_compatible 4.10.0-4} +%global dnf_plugins_extra 2.0.0 +%global hawkey_version 0.46.1 +%global yum_utils_subpackage_name dnf-utils +%if 0%{?rhel} > 7 +%global yum_utils_subpackage_name yum-utils +%endif + +%define __cmake_in_source_build 1 + +%if 0%{?rhel} && 0%{?rhel} <= 7 +%bcond_with python3 +%else +%bcond_without python3 +%endif + +%if 0%{?rhel} > 7 || 0%{?fedora} > 29 +%bcond_with python2 +%else +%bcond_without python2 +%endif + +%if 0%{?rhel} > 7 || 0%{?fedora} > 30 +%bcond_without yumcompatibility +%else +%bcond_with yumcompatibility +%endif + +%if 0%{?rhel} && 0%{?rhel} <= 7 +%bcond_with yumutils +%else +%bcond_without yumutils +%endif + +Name: dnf-plugins-core +Version: 4.0.24 +Release: 4%{?dist} +Summary: Core Plugins for DNF +License: GPLv2+ +URL: https://github.com/rpm-software-management/dnf-plugins-core +Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz +Patch1: 0001-groups-manager-More-benevolent-resolving-of-packages-RhBug2013633.patch +Patch2: 0002-versionlock-fix-multi-pkg-lock-RhBug2013324.patch +Patch3: 0003-Update-documentation-for-adding-specific-version-RhBug2013332.patch +Patch4: 0004-plugin-debug-Use-base._ts.dbCookie-to-determining-rp.patch +Patch5: 0005-Update-translations-RhBug-2017348.patch + +BuildArch: noarch +BuildRequires: cmake +BuildRequires: gettext +# Documentation +%if %{with python3} +BuildRequires: %{_bindir}/sphinx-build-3 +Requires: python3-%{name} = %{version}-%{release} +%else +BuildRequires: %{_bindir}/sphinx-build +Requires: python2-%{name} = %{version}-%{release} +%endif +Provides: dnf-command(builddep) +Provides: dnf-command(changelog) +Provides: dnf-command(config-manager) +Provides: dnf-command(copr) +Provides: dnf-command(debug-dump) +Provides: dnf-command(debug-restore) +Provides: dnf-command(debuginfo-install) +Provides: dnf-command(download) +Provides: dnf-command(groups-manager) +Provides: dnf-command(repoclosure) +Provides: dnf-command(repograph) +Provides: dnf-command(repomanage) +Provides: dnf-command(reposync) +Provides: dnf-command(repodiff) +Provides: dnf-plugins-extras-debug = %{version}-%{release} +Provides: dnf-plugins-extras-repoclosure = %{version}-%{release} +Provides: dnf-plugins-extras-repograph = %{version}-%{release} +Provides: dnf-plugins-extras-repomanage = %{version}-%{release} +Provides: dnf-plugin-builddep = %{version}-%{release} +Provides: dnf-plugin-config-manager = %{version}-%{release} +Provides: dnf-plugin-debuginfo-install = %{version}-%{release} +Provides: dnf-plugin-download = %{version}-%{release} +Provides: dnf-plugin-generate_completion_cache = %{version}-%{release} +Provides: dnf-plugin-needs_restarting = %{version}-%{release} +Provides: dnf-plugin-groups-manager = %{version}-%{release} +Provides: dnf-plugin-repoclosure = %{version}-%{release} +Provides: dnf-plugin-repodiff = %{version}-%{release} +Provides: dnf-plugin-repograph = %{version}-%{release} +Provides: dnf-plugin-repomanage = %{version}-%{release} +Provides: dnf-plugin-reposync = %{version}-%{release} +%if %{with yumcompatibility} +Provides: yum-plugin-copr = %{version}-%{release} +Provides: yum-plugin-changelog = %{version}-%{release} +Provides: yum-plugin-auto-update-debug-info = %{version}-%{release} +%endif +Conflicts: dnf-plugins-extras-common-data < %{dnf_plugins_extra} + +%description +Core Plugins for DNF. This package enhances DNF with builddep, config-manager, +copr, debug, debuginfo-install, download, needs-restarting, groups-manager, repoclosure, +repograph, repomanage, reposync, changelog and repodiff commands. Additionally +provides generate_completion_cache passive plugin. + +%if %{with python2} +%package -n python2-%{name} +Summary: Core Plugins for DNF +%{?python_provide:%python_provide python2-%{name}} +BuildRequires: python2-dnf >= %{dnf_lowest_compatible} +%if 0%{?rhel} && 0%{?rhel} <= 7 +BuildRequires: dbus-python +%else +BuildRequires: python2-dbus +%endif +BuildRequires: python2-devel +%if 0%{?fedora} +Requires: python2-distro +%endif +Requires: python2-dnf >= %{dnf_lowest_compatible} +Requires: python2-hawkey >= %{hawkey_version} +%if 0%{?rhel} && 0%{?rhel} <= 7 +Requires: dbus-python +Requires: python-dateutil +%else +Requires: python2-dbus +Requires: python2-dateutil +%endif +Provides: python2-dnf-plugins-extras-debug = %{version}-%{release} +Provides: python2-dnf-plugins-extras-repoclosure = %{version}-%{release} +Provides: python2-dnf-plugins-extras-repograph = %{version}-%{release} +Provides: python2-dnf-plugins-extras-repomanage = %{version}-%{release} +Obsoletes: python2-dnf-plugins-extras-debug < %{dnf_plugins_extra} +Obsoletes: python2-dnf-plugins-extras-repoclosure < %{dnf_plugins_extra} +Obsoletes: python2-dnf-plugins-extras-repograph < %{dnf_plugins_extra} +Obsoletes: python2-dnf-plugins-extras-repomanage < %{dnf_plugins_extra} + +Conflicts: %{name} <= 0.1.5 +# let the both python plugin versions be updated simultaneously +Conflicts: python3-%{name} < %{version}-%{release} +Conflicts: python-%{name} < %{version}-%{release} + +%description -n python2-%{name} +Core Plugins for DNF, Python 2 interface. This package enhances DNF with builddep, +config-manager, copr, degug, debuginfo-install, download, needs-restarting, +groups-manager, repoclosure, repograph, repomanage, reposync, changelog +and repodiff commands. +Additionally provides generate_completion_cache passive plugin. +%endif + +%if %{with python3} +%package -n python3-%{name} +Summary: Core Plugins for DNF +%{?python_provide:%python_provide python3-%{name}} +BuildRequires: python3-dbus +BuildRequires: python3-devel +BuildRequires: python3-dnf >= %{dnf_lowest_compatible} +BuildRequires: make +%if 0%{?fedora} +Requires: python3-distro +%endif +Requires: python3-dbus +Requires: python3-dnf >= %{dnf_lowest_compatible} +Requires: python3-hawkey >= %{hawkey_version} +Requires: python3-dateutil +Provides: python3-dnf-plugins-extras-debug = %{version}-%{release} +Provides: python3-dnf-plugins-extras-repoclosure = %{version}-%{release} +Provides: python3-dnf-plugins-extras-repograph = %{version}-%{release} +Provides: python3-dnf-plugins-extras-repomanage = %{version}-%{release} +Obsoletes: python3-dnf-plugins-extras-debug < %{dnf_plugins_extra} +Obsoletes: python3-dnf-plugins-extras-repoclosure < %{dnf_plugins_extra} +Obsoletes: python3-dnf-plugins-extras-repograph < %{dnf_plugins_extra} +Obsoletes: python3-dnf-plugins-extras-repomanage < %{dnf_plugins_extra} + +Conflicts: %{name} <= 0.1.5 +# let the both python plugin versions be updated simultaneously +Conflicts: python2-%{name} < %{version}-%{release} +Conflicts: python-%{name} < %{version}-%{release} + +%description -n python3-%{name} +Core Plugins for DNF, Python 3 interface. This package enhances DNF with builddep, +config-manager, copr, debug, debuginfo-install, download, needs-restarting, +groups-manager, repoclosure, repograph, repomanage, reposync, changelog +and repodiff commands. +Additionally provides generate_completion_cache passive plugin. +%endif + +%if %{with yumutils} +%package -n %{yum_utils_subpackage_name} +%if "%{yum_utils_subpackage_name}" == "dnf-utils" +Conflicts: yum-utils < 1.1.31-520 +%if 0%{?rhel} != 7 +Provides: yum-utils = %{version}-%{release} +%endif +%else +Provides: dnf-utils = %{version}-%{release} +Obsoletes: dnf-utils < %{version}-%{release} +%endif +Requires: dnf >= %{dnf_lowest_compatible} +Requires: %{name} = %{version}-%{release} +%if %{with python3} +Requires: python3-dnf >= %{dnf_lowest_compatible} +%else +Requires: python2-dnf >= %{dnf_lowest_compatible} +%endif +Summary: Yum-utils CLI compatibility layer + +%description -n %{yum_utils_subpackage_name} +As a Yum-utils CLI compatibility layer, supplies in CLI shims for +debuginfo-install, repograph, package-cleanup, repoclosure, repomanage, +repoquery, reposync, repotrack, repodiff, builddep, config-manager, debug, +download and yum-groups-manager that use new implementations using DNF. +%endif + +%if 0%{?rhel} == 0 && %{with python2} +%package -n python2-dnf-plugin-leaves +Summary: Leaves Plugin for DNF +Requires: python2-%{name} = %{version}-%{release} +Provides: python2-dnf-plugins-extras-leaves = %{version}-%{release} +%if !%{with python3} +Provides: dnf-command(leaves) +Provides: dnf-plugin-leaves = %{version}-%{release} +Provides: dnf-plugins-extras-leaves = %{version}-%{release} +%endif +Conflicts: dnf-plugins-extras-common-data < %{dnf_plugins_extra} +Conflicts: python3-dnf-plugin-leaves < %{version}-%{release} +Obsoletes: python2-dnf-plugins-extras-leaves < %{dnf_plugins_extra} + +%description -n python2-dnf-plugin-leaves +Leaves Plugin for DNF, Python 2 version. List all installed packages +not required by any other installed package. +%endif + +%if 0%{?rhel} == 0 && %{with python3} +%package -n python3-dnf-plugin-leaves +Summary: Leaves Plugin for DNF +Requires: python3-%{name} = %{version}-%{release} +Provides: python3-dnf-plugins-extras-leaves = %{version}-%{release} +Provides: dnf-command(leaves) +Provides: dnf-plugin-leaves = %{version}-%{release} +Provides: dnf-plugins-extras-leaves = %{version}-%{release} +Conflicts: dnf-plugins-extras-common-data < %{dnf_plugins_extra} +Conflicts: python2-dnf-plugin-leaves < %{version}-%{release} +Obsoletes: python3-dnf-plugins-extras-leaves < %{dnf_plugins_extra} + +%description -n python3-dnf-plugin-leaves +Leaves Plugin for DNF, Python 3 version. List all installed packages +not required by any other installed package. +%endif + +%if 0%{?rhel} == 0 && %{with python2} +%package -n python2-dnf-plugin-local +Summary: Local Plugin for DNF +Requires: %{_bindir}/createrepo_c +Requires: python2-%{name} = %{version}-%{release} +%if !%{with python3} +Provides: dnf-plugin-local = %{version}-%{release} +Provides: dnf-plugins-extras-local = %{version}-%{release} +%endif +Provides: python2-dnf-plugins-extras-local = %{version}-%{release} +Conflicts: dnf-plugins-extras-common-data < %{dnf_plugins_extra} +Conflicts: python3-dnf-plugin-local < %{version}-%{release} +Obsoletes: python2-dnf-plugins-extras-local < %{dnf_plugins_extra} + +%description -n python2-dnf-plugin-local +Local Plugin for DNF, Python 2 version. Automatically copy all downloaded packages to a +repository on the local filesystem and generating repo metadata. +%endif + +%if %{with python3} && 0%{?rhel} == 0 +%package -n python3-dnf-plugin-local +Summary: Local Plugin for DNF +Requires: %{_bindir}/createrepo_c +Requires: python3-%{name} = %{version}-%{release} +Provides: dnf-plugin-local = %{version}-%{release} +Provides: python3-dnf-plugins-extras-local = %{version}-%{release} +Provides: dnf-plugins-extras-local = %{version}-%{release} +Conflicts: dnf-plugins-extras-common-data < %{dnf_plugins_extra} +Conflicts: python2-dnf-plugin-local < %{version}-%{release} +Obsoletes: python3-dnf-plugins-extras-local < %{dnf_plugins_extra} + +%description -n python3-dnf-plugin-local +Local Plugin for DNF, Python 3 version. Automatically copy all downloaded +packages to a repository on the local filesystem and generating repo metadata. +%endif + +%if %{with python2} +%package -n python2-dnf-plugin-migrate +Summary: Migrate Plugin for DNF +Requires: python2-%{name} = %{version}-%{release} +Requires: yum +Provides: dnf-plugin-migrate = %{version}-%{release} +Provides: python2-dnf-plugins-extras-migrate = %{version}-%{release} +Provides: dnf-command(migrate) +Provides: dnf-plugins-extras-migrate = %{version}-%{release} +Conflicts: dnf-plugins-extras-common-data < %{dnf_plugins_extra} +Obsoletes: python2-dnf-plugins-extras-migrate < %{dnf_plugins_extra} +Obsoletes: python-dnf-plugins-extras-migrate < %{dnf_plugins_extra} + +%description -n python2-dnf-plugin-migrate +Migrate Plugin for DNF, Python 2 version. Migrates history, group and yumdb data from yum to dnf. +%endif + +%if %{with python2} +%package -n python2-dnf-plugin-post-transaction-actions +Summary: Post transaction actions Plugin for DNF +Requires: python2-%{name} = %{version}-%{release} +%if !%{with python3} +Provides: dnf-plugin-post-transaction-actions = %{version}-%{release} +%endif +Conflicts: python3-dnf-plugin-post-transaction-actions < %{version}-%{release} + +%description -n python2-dnf-plugin-post-transaction-actions +Post transaction actions Plugin for DNF, Python 2 version. Plugin runs actions +(shell commands) after transaction is completed. Actions are defined in action +files. +%endif + +%if %{with python3} +%package -n python3-dnf-plugin-post-transaction-actions +Summary: Post transaction actions Plugin for DNF +Requires: python3-%{name} = %{version}-%{release} +Provides: dnf-plugin-post-transaction-actions = %{version}-%{release} +Conflicts: python2-dnf-plugin-post-transaction-actions < %{version}-%{release} + +%description -n python3-dnf-plugin-post-transaction-actions +Post transaction actions Plugin for DNF, Python 3 version. Plugin runs actions +(shell commands) after transaction is completed. Actions are defined in action +files. +%endif + +%if 0%{?rhel} == 0 && %{with python2} +%package -n python2-dnf-plugin-show-leaves +Summary: Leaves Plugin for DNF +Requires: python2-%{name} = %{version}-%{release} +Requires: python2-dnf-plugin-leaves = %{version}-%{release} +%if !%{with python3} +Provides: dnf-plugin-show-leaves = %{version}-%{release} +Provides: dnf-command(show-leaves) +Provides: dnf-plugins-extras-show-leaves = %{version}-%{release} +%endif +Provides: python2-dnf-plugins-extras-show-leaves = %{version}-%{release} +Conflicts: dnf-plugins-extras-common-data < %{dnf_plugins_extra} +Conflicts: python3-dnf-plugin-show-leaves < %{version}-%{release} +Obsoletes: python2-dnf-plugins-extras-show-leaves < %{dnf_plugins_extra} + +%description -n python2-dnf-plugin-show-leaves +Show-leaves Plugin for DNF, Python 2 version. List all installed +packages that are no longer required by any other installed package +after a transaction. +%endif + +%if 0%{?rhel} == 0 && %{with python3} +%package -n python3-dnf-plugin-show-leaves +Summary: Show-leaves Plugin for DNF +Requires: python3-%{name} = %{version}-%{release} +Requires: python3-dnf-plugin-leaves = %{version}-%{release} +Provides: dnf-plugin-show-leaves = %{version}-%{release} +Provides: python3-dnf-plugins-extras-show-leaves = %{version}-%{release} +Provides: dnf-command(show-leaves) +Provides: dnf-plugins-extras-show-leaves = %{version}-%{release} +Conflicts: dnf-plugins-extras-common-data < %{dnf_plugins_extra} +Conflicts: python2-dnf-plugin-show-leaves < %{version}-%{release} +Obsoletes: python3-dnf-plugins-extras-show-leaves < %{dnf_plugins_extra} + +%description -n python3-dnf-plugin-show-leaves +Show-leaves Plugin for DNF, Python 3 version. List all installed +packages that are no longer required by any other installed package +after a transaction. +%endif + +%if %{with python2} +%package -n python2-dnf-plugin-versionlock +Summary: Version Lock Plugin for DNF +Requires: python2-%{name} = %{version}-%{release} +%if !%{with python3} +Provides: dnf-plugin-versionlock = %{version}-%{release} +Provides: dnf-command(versionlock) +Provides: dnf-plugins-extras-versionlock = %{version}-%{release} +%if %{with yumcompatibility} +Provides: yum-plugin-versionlock = %{version}-%{release} +%endif +%endif +Provides: python2-dnf-plugins-extras-versionlock = %{version}-%{release} +Conflicts: dnf-plugins-extras-common-data < %{dnf_plugins_extra} +Conflicts: python3-dnf-plugin-versionlock < %{version}-%{release} +Obsoletes: python2-dnf-plugins-extras-versionlock < %{dnf_plugins_extra} + +%description -n python2-dnf-plugin-versionlock +Version lock plugin takes a set of name/versions for packages and excludes all other +versions of those packages. This allows you to e.g. protect packages from being +updated by newer versions. +%endif + +%if %{with python3} +%package -n python3-dnf-plugin-versionlock +Summary: Version Lock Plugin for DNF +Requires: python3-%{name} = %{version}-%{release} +Provides: dnf-plugin-versionlock = %{version}-%{release} +Provides: python3-dnf-plugins-extras-versionlock = %{version}-%{release} +Provides: dnf-command(versionlock) +%if %{with yumcompatibility} +Provides: yum-plugin-versionlock = %{version}-%{release} +%endif +Provides: dnf-plugins-extras-versionlock = %{version}-%{release} +Conflicts: dnf-plugins-extras-common-data < %{dnf_plugins_extra} +Conflicts: python2-dnf-plugin-versionlock < %{version}-%{release} +Obsoletes: python3-dnf-plugins-extras-versionlock < %{dnf_plugins_extra} + +%description -n python3-dnf-plugin-versionlock +Version lock plugin takes a set of name/versions for packages and excludes all other +versions of those packages. This allows you to e.g. protect packages from being +updated by newer versions. +%endif + +%prep +%autosetup -p1 +%if %{with python2} +mkdir build-py2 +%endif +%if %{with python3} +mkdir build-py3 +%endif + +%build +%if %{with python2} +pushd build-py2 + %cmake ../ -DPYTHON_DESIRED:FILEPATH=%{__python2} -DWITHOUT_LOCAL:str=0%{?rhel} + %make_build + make doc-man +popd +%endif +%if %{with python3} +pushd build-py3 + %cmake ../ -DPYTHON_DESIRED:FILEPATH=%{__python3} -DWITHOUT_LOCAL:str=0%{?rhel} + %make_build + make doc-man +popd +%endif + +%install +%if %{with python2} +pushd build-py2 + %make_install +popd +%endif +%if %{with python3} +pushd build-py3 + %make_install +popd +%endif +%find_lang %{name} +%if %{with yumutils} + %if %{with python3} + mv %{buildroot}%{_libexecdir}/dnf-utils-3 %{buildroot}%{_libexecdir}/dnf-utils + %else + mv %{buildroot}%{_libexecdir}/dnf-utils-2 %{buildroot}%{_libexecdir}/dnf-utils + %endif +%endif +rm -vf %{buildroot}%{_libexecdir}/dnf-utils-* + +%if %{with yumutils} +mkdir -p %{buildroot}%{_bindir} +ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/debuginfo-install +ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/needs-restarting +ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/find-repos-of-install +ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/repo-graph +ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/package-cleanup +ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/repoclosure +ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/repodiff +ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/repomanage +ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/repoquery +ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/reposync +ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/repotrack +ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yum-builddep +ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yum-config-manager +ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yum-debug-dump +ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yum-debug-restore +ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yum-groups-manager +ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yumdownloader +# These commands don't have a dedicated man page, so let's just point them +# to the utils page which contains their descriptions. +ln -sf %{_mandir}/man1/%{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/find-repos-of-install.1.gz +ln -sf %{_mandir}/man1/%{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/repoquery.1.gz +ln -sf %{_mandir}/man1/%{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/repotrack.1.gz +%endif + +%check +%if %{with python2} + pushd build-py2 + ctest -VV + popd +%endif +%if %{with python3} + pushd build-py3 + ctest -VV + popd +%endif + +%files +%{_mandir}/man8/dnf-builddep.* +%{_mandir}/man8/dnf-changelog.* +%{_mandir}/man8/dnf-config-manager.* +%{_mandir}/man8/dnf-copr.* +%{_mandir}/man8/dnf-debug.* +%{_mandir}/man8/dnf-debuginfo-install.* +%{_mandir}/man8/dnf-download.* +%{_mandir}/man8/dnf-generate_completion_cache.* +%{_mandir}/man8/dnf-groups-manager.* +%{_mandir}/man8/dnf-needs-restarting.* +%{_mandir}/man8/dnf-repoclosure.* +%{_mandir}/man8/dnf-repodiff.* +%{_mandir}/man8/dnf-repograph.* +%{_mandir}/man8/dnf-repomanage.* +%{_mandir}/man8/dnf-reposync.* +%if %{with yumcompatibility} +%{_mandir}/man1/yum-changelog.* +%{_mandir}/man8/yum-copr.* +%else +%exclude %{_mandir}/man1/yum-changelog.* +%exclude %{_mandir}/man8/yum-copr.* +%endif + +%if %{with python2} +%files -n python2-%{name} -f %{name}.lang +%license COPYING +%doc AUTHORS README.rst +%ghost %attr(644,-,-) %{_var}/cache/dnf/packages.db +%config(noreplace) %{_sysconfdir}/dnf/plugins/copr.conf +%config(noreplace) %{_sysconfdir}/dnf/plugins/copr.d +%config(noreplace) %{_sysconfdir}/dnf/plugins/debuginfo-install.conf +%{python2_sitelib}/dnf-plugins/builddep.* +%{python2_sitelib}/dnf-plugins/changelog.* +%{python2_sitelib}/dnf-plugins/config_manager.* +%{python2_sitelib}/dnf-plugins/copr.* +%{python2_sitelib}/dnf-plugins/debug.* +%{python2_sitelib}/dnf-plugins/debuginfo-install.* +%{python2_sitelib}/dnf-plugins/download.* +%{python2_sitelib}/dnf-plugins/generate_completion_cache.* +%{python2_sitelib}/dnf-plugins/groups_manager.* +%{python2_sitelib}/dnf-plugins/needs_restarting.* +%{python2_sitelib}/dnf-plugins/repoclosure.* +%{python2_sitelib}/dnf-plugins/repodiff.* +%{python2_sitelib}/dnf-plugins/repograph.* +%{python2_sitelib}/dnf-plugins/repomanage.* +%{python2_sitelib}/dnf-plugins/reposync.* +%{python2_sitelib}/dnfpluginscore/ +%endif + +%if %{with python3} +%files -n python3-%{name} -f %{name}.lang +%license COPYING +%doc AUTHORS README.rst +%ghost %attr(644,-,-) %{_var}/cache/dnf/packages.db +%config(noreplace) %{_sysconfdir}/dnf/plugins/copr.conf +%config(noreplace) %{_sysconfdir}/dnf/plugins/copr.d +%config(noreplace) %{_sysconfdir}/dnf/plugins/debuginfo-install.conf +%{python3_sitelib}/dnf-plugins/builddep.py +%{python3_sitelib}/dnf-plugins/changelog.py +%{python3_sitelib}/dnf-plugins/config_manager.py +%{python3_sitelib}/dnf-plugins/copr.py +%{python3_sitelib}/dnf-plugins/debug.py +%{python3_sitelib}/dnf-plugins/debuginfo-install.py +%{python3_sitelib}/dnf-plugins/download.py +%{python3_sitelib}/dnf-plugins/generate_completion_cache.py +%{python3_sitelib}/dnf-plugins/groups_manager.py +%{python3_sitelib}/dnf-plugins/needs_restarting.py +%{python3_sitelib}/dnf-plugins/repoclosure.py +%{python3_sitelib}/dnf-plugins/repodiff.py +%{python3_sitelib}/dnf-plugins/repograph.py +%{python3_sitelib}/dnf-plugins/repomanage.py +%{python3_sitelib}/dnf-plugins/reposync.py +%{python3_sitelib}/dnf-plugins/__pycache__/builddep.* +%{python3_sitelib}/dnf-plugins/__pycache__/changelog.* +%{python3_sitelib}/dnf-plugins/__pycache__/config_manager.* +%{python3_sitelib}/dnf-plugins/__pycache__/copr.* +%{python3_sitelib}/dnf-plugins/__pycache__/debug.* +%{python3_sitelib}/dnf-plugins/__pycache__/debuginfo-install.* +%{python3_sitelib}/dnf-plugins/__pycache__/download.* +%{python3_sitelib}/dnf-plugins/__pycache__/generate_completion_cache.* +%{python3_sitelib}/dnf-plugins/__pycache__/groups_manager.* +%{python3_sitelib}/dnf-plugins/__pycache__/needs_restarting.* +%{python3_sitelib}/dnf-plugins/__pycache__/repoclosure.* +%{python3_sitelib}/dnf-plugins/__pycache__/repodiff.* +%{python3_sitelib}/dnf-plugins/__pycache__/repograph.* +%{python3_sitelib}/dnf-plugins/__pycache__/repomanage.* +%{python3_sitelib}/dnf-plugins/__pycache__/reposync.* +%{python3_sitelib}/dnfpluginscore/ +%endif + +%if %{with yumutils} +%files -n %{yum_utils_subpackage_name} +%{_libexecdir}/dnf-utils +%{_bindir}/debuginfo-install +%{_bindir}/needs-restarting +%{_bindir}/find-repos-of-install +%{_bindir}/package-cleanup +%{_bindir}/repo-graph +%{_bindir}/repoclosure +%{_bindir}/repodiff +%{_bindir}/repomanage +%{_bindir}/repoquery +%{_bindir}/reposync +%{_bindir}/repotrack +%{_bindir}/yum-builddep +%{_bindir}/yum-config-manager +%{_bindir}/yum-debug-dump +%{_bindir}/yum-debug-restore +%{_bindir}/yum-groups-manager +%{_bindir}/yumdownloader +%{_mandir}/man1/debuginfo-install.* +%{_mandir}/man1/needs-restarting.* +%{_mandir}/man1/repo-graph.* +%{_mandir}/man1/repoclosure.* +%{_mandir}/man1/repodiff.* +%{_mandir}/man1/repomanage.* +%{_mandir}/man1/reposync.* +%{_mandir}/man1/yum-builddep.* +%{_mandir}/man1/yum-config-manager.* +%{_mandir}/man1/yum-debug-dump.* +%{_mandir}/man1/yum-debug-restore.* +%{_mandir}/man1/yum-groups-manager.* +%{_mandir}/man1/yumdownloader.* +%{_mandir}/man1/package-cleanup.* +%{_mandir}/man1/dnf-utils.* +%{_mandir}/man1/yum-utils.* +# These are only built with yumutils bcond. +%{_mandir}/man1/find-repos-of-install.* +%{_mandir}/man1/repoquery.* +%{_mandir}/man1/repotrack.* +%else +# These are built regardless of yumutils bcond so we need to exclude them. +%exclude %{_mandir}/man1/debuginfo-install.* +%exclude %{_mandir}/man1/needs-restarting.* +%exclude %{_mandir}/man1/repo-graph.* +%exclude %{_mandir}/man1/repoclosure.* +%exclude %{_mandir}/man1/repodiff.* +%exclude %{_mandir}/man1/repomanage.* +%exclude %{_mandir}/man1/reposync.* +%exclude %{_mandir}/man1/yum-builddep.* +%exclude %{_mandir}/man1/yum-config-manager.* +%exclude %{_mandir}/man1/yum-debug-dump.* +%exclude %{_mandir}/man1/yum-debug-restore.* +%exclude %{_mandir}/man1/yum-groups-manager.* +%exclude %{_mandir}/man1/yumdownloader.* +%exclude %{_mandir}/man1/package-cleanup.* +%exclude %{_mandir}/man1/dnf-utils.* +%exclude %{_mandir}/man1/yum-utils.* +%endif + +%if 0%{?rhel} == 0 + +%if %{with python2} +%files -n python2-dnf-plugin-leaves +%{python2_sitelib}/dnf-plugins/leaves.* +%{_mandir}/man8/dnf-leaves.* +%endif + +%if %{with python3} +%files -n python3-dnf-plugin-leaves +%{python3_sitelib}/dnf-plugins/leaves.* +%{python3_sitelib}/dnf-plugins/__pycache__/leaves.* +%{_mandir}/man8/dnf-leaves.* +%endif + +%else +%exclude %{_mandir}/man8/dnf-leaves.* +%if %{with python2} +%exclude %{python2_sitelib}/dnf-plugins/leaves.* +%endif +%if %{with python3} +%exclude %{python3_sitelib}/dnf-plugins/leaves.* +%exclude %{python3_sitelib}/dnf-plugins/__pycache__/leaves.* +%endif +%endif +# endif 0%%{?rhel} == 0 + +%if 0%{?rhel} == 0 && %{with python2} +%files -n python2-dnf-plugin-local +%config(noreplace) %{_sysconfdir}/dnf/plugins/local.conf +%{python2_sitelib}/dnf-plugins/local.* +%{_mandir}/man8/dnf-local.* +%endif + +%if %{with python3} && 0%{?rhel} == 0 +%files -n python3-dnf-plugin-local +%config(noreplace) %{_sysconfdir}/dnf/plugins/local.conf +%{python3_sitelib}/dnf-plugins/local.* +%{python3_sitelib}/dnf-plugins/__pycache__/local.* +%{_mandir}/man8/dnf-local.* +%endif + +%if %{with python2} +%files -n python2-dnf-plugin-migrate +%{python2_sitelib}/dnf-plugins/migrate.* +%{_mandir}/man8/dnf-migrate.* +%else +%exclude %{_mandir}/man8/dnf-migrate.* +%endif + +%if %{with python2} +%files -n python2-dnf-plugin-post-transaction-actions +%config(noreplace) %{_sysconfdir}/dnf/plugins/post-transaction-actions.conf +%config(noreplace) %{_sysconfdir}/dnf/plugins/post-transaction-actions.d +%{python2_sitelib}/dnf-plugins/post-transaction-actions.* +%{_mandir}/man8/dnf-post-transaction-actions.* +%endif + +%if %{with python3} +%files -n python3-dnf-plugin-post-transaction-actions +%config(noreplace) %{_sysconfdir}/dnf/plugins/post-transaction-actions.conf +%config(noreplace) %{_sysconfdir}/dnf/plugins/post-transaction-actions.d +%{python3_sitelib}/dnf-plugins/post-transaction-actions.* +%{python3_sitelib}/dnf-plugins/__pycache__/post-transaction-actions.* +%{_mandir}/man8/dnf-post-transaction-actions.* +%endif + +%if 0%{?rhel} == 0 + +%if %{with python2} +%files -n python2-dnf-plugin-show-leaves +%{python2_sitelib}/dnf-plugins/show_leaves.* +%{_mandir}/man8/dnf-show-leaves.* +%endif + +%if %{with python3} +%files -n python3-dnf-plugin-show-leaves +%{python3_sitelib}/dnf-plugins/show_leaves.* +%{python3_sitelib}/dnf-plugins/__pycache__/show_leaves.* +%{_mandir}/man8/dnf-show-leaves.* +%endif + +%else +%exclude %{_mandir}/man8/dnf-show-leaves.* +%if %{with python2} +%exclude %{python2_sitelib}/dnf-plugins/show_leaves.* +%endif +%if %{with python3} +%exclude %{python3_sitelib}/dnf-plugins/show_leaves.* +%exclude %{python3_sitelib}/dnf-plugins/__pycache__/show_leaves.* +%endif +%endif +# endif 0%%{?rhel} == 0 + +%if %{with python2} +%files -n python2-dnf-plugin-versionlock +%config(noreplace) %{_sysconfdir}/dnf/plugins/versionlock.conf +%config(noreplace) %{_sysconfdir}/dnf/plugins/versionlock.list +%{python2_sitelib}/dnf-plugins/versionlock.* +%{_mandir}/man8/dnf-versionlock.* +%if %{with yumcompatibility} +%{_mandir}/man8/yum-versionlock.* +%{_mandir}/man5/yum-versionlock.* +%else +%exclude %{_mandir}/man8/yum-versionlock.* +%exclude %{_mandir}/man5/yum-versionlock.* +%endif +%endif + +%if %{with python3} +%files -n python3-dnf-plugin-versionlock +%config(noreplace) %{_sysconfdir}/dnf/plugins/versionlock.conf +%config(noreplace) %{_sysconfdir}/dnf/plugins/versionlock.list +%{python3_sitelib}/dnf-plugins/versionlock.* +%{python3_sitelib}/dnf-plugins/__pycache__/versionlock.* +%{_mandir}/man8/dnf-versionlock.* +%if %{with yumcompatibility} +%{_mandir}/man8/yum-versionlock.* +%{_mandir}/man5/yum-versionlock.* +%else +%exclude %{_mandir}/man8/yum-versionlock.* +%exclude %{_mandir}/man5/yum-versionlock.* +%endif +%endif + +%changelog +* Mon Mar 21 2022 Marek Blaha - 4.0.24-4 +- Update translations + +* Mon Feb 07 2022 Pavla Kratochvilova - 4.0.24-3 +- Backport patch with new way to determine rpmdb version + +* Thu Dec 09 2021 Pavla Kratochvilova - 4.0.24-2 +- [groups-manager] Use full NEVRA for matching packages instead of only name (RhBug:2029864) +- [versionlock] Fix: Multiple package-name-spec arguments don't lock (RhBug:2029871) +- [versionlock] Update documentation for adding specifi version (RhBug:2013332) + +* Mon Oct 25 2021 Pavla Kratochvilova - 4.0.24-1 +- Update to 4.0.24 +- [repomanage] Allow running only with metadata +- [repomanage] Enhance documentation (RhBug:1898293) +- [versionlock] Locking obsoleted package does not make the obsoleter unavailable (RhBug:1957280) +- [versionlock] Work correctly with packages with minorbump part of release (RhBug:1961217) +- [leaves] Show strongly connected components +- [needs-restarting] Fix wrong boot time (RhBug:1960437) +- [playground] Disable playground command, since it doesn't work +- [copr] on CentOS Stream, enable centos stream chroot instead of not epel 8 (RhBug:1994154) +- [copr] Avoid using deprecated function distro.linux_distribution() (RhBug:2011550) +- [copr] don't traceback on empty lines in /etc/os-release + +* Mon Aug 09 2021 Mohan Boddu - 4.0.21-2 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Wed Jun 02 2021 Pavla Kratochvilova - 4.0.21-1 +- Update to 4.0.21 +- Removed dependency on dnf.yum.misc.Checksum class (RhBug:1935465) +- Add missing command line option to documentation +- doc: add packages to needs-restarting conf +- Set blacklist subcommand as deprecated +- Bugs fixed (RhBug:1914827,1916782) + + +* Thu Apr 15 2021 Mohan Boddu - 4.0.19-2 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Thu Jan 28 2021 Nicola Sella - 4.0.19-1 +- Update to 4.0.19 +- copr: allow only 2 arguments with copr enable command +- [needs-restarting] fix -r in nspawn containers (RhBug:1913962,1914251) +- Add --gpgcheck option to reposync (RhBug:1856818) (RhBug:1856818) +- Re-introduce yum-groups-manager functionality (RhBug:1826016) +- [repomanage] Don't use cached metadata (RhBug:1899852) +- [needs-restarting] add -s to list services (RhBug:1772939) (RhBug:1772939) + +* Tue Jan 26 2021 Fedora Release Engineering - 4.0.18-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Oct 08 2020 Nicola Sella - 4.0.18-1 +- [needs-restarting] Fix plugin fail if needs-restarting.d does not exist +- [needs-restarting] add kernel-rt to reboot list +- Fix debug-restore command +- [config-manager] enable/disable comma separated pkgs (RhBug:1830530) +- [debug] Use standard demands.resolving for transaction handling +- [debug] Do not remove install-only packages (RhBug:1844533) +- return error when dnf download failed +- README: Reference Fedora Weblate instead of Zanata +- [reposync] Add latest NEVRAs per stream to download (RhBug: 1833074) +- copr: don't try to list runtime dependencies + +* Mon Aug 10 2020 Nicola Sella - 4.0.16-4 +- spec: Fix building with new cmake macros + +* Sat Aug 01 2020 Fedora Release Engineering - 4.0.16-3 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 4.0.16-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jun 03 06:48:41 CEST 2020 Igor Raits - 4.0.16-1 +- Update to 4.0.16 + + [versionlock] Take obsoletes into account (RhBug:1627124) + + Move args "--set-enabled", "--set-disabled" from DNF (RhBug:1727882) + + Add missing arguments --set-enabled/--set-diabled into error message + + Warn when --enablerepo/--disablerepo args were passed (RhBug:1727882) + + [copr] add support for enabling/disabling runtime dependencies + + [copr] no-liability text to be always printed + +* Sun May 24 2020 Miro Hrončok - 4.0.15-2 +- Rebuilt for Python 3.9 + +* Wed Apr 01 2020 Aleš Matěj - 4.0.15-1 +- Support remote files in dnf builddep +- [download] Respect repo priority (RhBug:1800342) + +* Mon Feb 24 2020 Aleš Matěj - 4.0.14-1 +- Fix conflict for dnf download --resolve (RhBug:1787908) +- config-manager calls parser error when without options (RhBug:1782822) +- Update reposync.py with --norepopath option +- Fix: don't open stdin if versionlock is missing (RhBug:1785563) + +* Tue Jan 28 2020 Fedora Release Engineering - 4.0.13-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jan 15 2020 Aleš Matěj - 4.0.13-1 +- Fix: config_manager respect config file location during save +- Redesign reposync --latest for modular system (RhBug:1775434) +- [reposync] Fix --delete with multiple repos (RhBug:1774103) +- [doc] Skip creating and installing migrate documentation for Python 3+ +- [config-manager] Allow use of --set-enabled without arguments (RhBug:1679213) +- [versionlock] Prevent conflicting/duplicate entries (RhBug:1782052) + +* Fri Nov 29 2019 Aleš Matěj - 4.0.12-1 +- Update to 4.0.12 +- [reposync] Add --urls option (RhBug:1686602) +- [versionlock] Add --raw option (RhBug:1645564) +- [doc] move manpages for plugins to "dnf-PLUGIN" (RhBug:1706386) +- Add new plugin post-transaction-actions (RhBug:967264) +- [builddep] Add --skip-unavailable switch (RhBug:1628634) +- [versionlock] Don't apply excludes on @System (RhBug:1726712) +- [reposync] Ignore only modular excludes (RhBug:1750273) + +* Wed Nov 06 2019 Pavla Kratochvilova - 4.0.11-1 +- Update to 4.0.11 +- [spec] Specify attributes for ghost file (RhBug: 1754463) +- download: add the --debugsource option (RhBug:1637008) +- Fix incorrect handling richdeps in buildep (RhBug:1756902) + +* Tue Oct 01 2019 Ales Matej - 4.0.10-1 +- Update to 4.0.10 +- debuginfo-install: Update both debuginfo and debugsource for updated package (RhBug:1586084) +- copr: Support multilib repofiles (RhBug:1393664) +- copr: Fix disable if copr instance has non-default port +- copr: Fix repoid when using subdirectories in copr project + +* Sun Aug 18 2019 Zbigniew Jędrzejewski-Szmek - 4.0.9-2 +- Rebuilt for Python 3.8 + +* Tue Aug 13 2019 Pavla Kratochvilova - 4.0.9-1 +- Update to 4.0.9 +- [reposync] Enable timestamp preserving for downloaded data (RhBug:1688537) +- [reposync] Download packages from all streams (RhBug:1714788) +- Make yum-copr manpage available (RhBug:1673902) +- [needs-restarting] Add ``--reboothint`` option (RhBug:1192946) (RhBug:1639468) +- Set the cost of ``_dnf_local`` repo to 500, to make it preferred to normal repos +- [builddep] Report all rpm errors (RhBug:1663619,1658292,1724668) +- [config-manager] --setopt: Fix crash with "--save --dump" +- [config-manager] --setopt: Add globs support to repoid +- [config-manager] --setopt=key=value is applied only to the main config +- [config-manager] --setopt and empty list of repositories (RhBug:1702678) +- [config-manager] --setopt: Add check for existence of input repositories + +* Wed Jul 24 2019 Fedora Release Engineering - 4.0.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue May 21 2019 Pavla Kratochvilova - 4.0.7-1 +- Update to 4.0.7 +- Fix: copr disable command traceback (RhBug:1693551) +- [doc] state repoid as repo identifier of config-manager (RhBug:1686779) +- Fix download of src when not the latest requested (RhBug:1649627) + +* Mon Mar 11 2019 Pavla Kratochvilova - 4.0.6-1 +- Update to 4.0.6 +- Use improved config parser that preserves order of data +- [leaves] Show multiply satisfied dependencies as leaves +- [download] Fix downloading an rpm from a URL (RhBug:1678582) +- [download] Fix problem with downloading src pkgs (RhBug:1649627) + +* Sat Feb 23 2019 Igor Gnatenko - 4.0.4-2 +- Raise yum-utils conflict version + +* Wed Feb 13 2019 Pavla Kratochvilova - 4.0.4-1 +- Update to 4.0.4 +- [download] Do not download src without ``--source`` (RhBug:1666648) + +* Thu Jan 31 2019 Fedora Release Engineering - 4.0.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Dec 12 2018 Jaroslav Mracek - 4.0.3-1 +- Update to 4.0.3 +- Add ``changelog`` plugin that is used for viewing package changelogs +- New option ``--metadata-path`` option for reposync plugin + +* Thu Nov 22 2018 Jaroslav Mracek - 4.0.2-1 +- Added repodif command +- copr: fix enabling Rawhide repository +- Add needs-restarting CLI shim +- [reposync] Fix traceback with --quiet option +- [versionlock] Accept more pkgspec forms + +* Wed Oct 17 2018 Jaroslav Mracek - 4.0.0-2 +- Allow build of dnf-utils in F29 + +* Mon Oct 15 2018 Jaroslav Mracek - 4.0.0-1 +- Update to 4.0.0 +- Enhance documentation +- [repoclosure] check every --pkg attribute separately +- [repoclosure] Now accepts nevra as a argument of --pkg option +- [reposync] enhancements (RhBug:1550063,1582152,1550064,1405789,1598068) +- package-cleanup: remove --oldkernels +- Download only packages with unique NEVRAs (RhBug:1612874) + +* Tue Sep 25 2018 Jaroslav Mracek - 3.0.4-1 +- [copr] Huge upgrade of copr plugin +- [spec] Disable building python2 modules on Fedora 30+ +- Add characters into repo URL sanitization (RhBug:1615416) +- copr: add support for multiple copr instances (RhBug:1478208) +- Redirect repo progress to std error (RhBug:1626011) + +* Fri Sep 07 2018 Jaroslav Mracek - 3.0.3-1 +- Resolves: rhbz#1582152 +- Resolves: rhbz#1581117 +- Resolves: rhbz#1579737 + +* Mon Jul 23 2018 Marek Blaha 3.0.2-1 +- Resolves: rhbz#1603805 +- Resolves: rhbz#1571251 + +* Thu Jul 12 2018 Fedora Release Engineering - 3.0.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Jun 29 2018 Jaroslav Mracek 3.0.1-2 +- Rebuilt for Python 3.7 + +* Tue Jun 26 2018 Jaroslav Mracek 3.0.1-1 +- Enhanced documentation +- Resolves: rhbz#1576594 +- Resolves: rhbz#1530081 +- Resolves: rhbz#1547897 +- Resolves: rhbz#1550006 +- Resolves: rhbz#1431491 +- Resolves: rhbz#1516857 +- Resolves: rhbz#1499623 +- Resolves: rhbz#1489724 + +* Mon Jun 18 2018 Miro Hrončok - 2.1.5-5 +- Rebuilt for Python 3.7 + +* Sat Feb 10 2018 Igor Gnatenko - 2.1.5-4 +- Conflict with any yum-utils + +* Fri Feb 09 2018 Igor Gnatenko - 2.1.5-3 +- Escape macros in %%changelog + +* Wed Feb 07 2018 Fedora Release Engineering - 2.1.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Fri Oct 06 2017 Igor Gnatenko - 2.1.5-1 +- Fix download command (RHBZ #1498426) + +* Mon Oct 02 2017 Jaroslav Mracek 2.1.4-1 +- Added four new options for ``list`` subcommand of ``copr`` plugin +- Resolves: rhbz#1476834 - [abrt] dnf: arch(): config.py:908:arch:TypeError: unhashable type: 'list' + +* Wed Jul 26 2017 Fedora Release Engineering - 2.1.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon Jul 24 2017 Jaroslav Mracek 2.1.3-1 +- Solve conflict with migrate plugin (RhBug:1470843) (Jaroslav Mracek) +- Move copying to dnf (RhBug:1279001) (Ondřej Sojka) +- Return 1 if dnf config-manager --add-repo fails (RhBug:1439514) (Jaroslav + Mracek) +- bump minimal dnf version to 2.6.0 (Igor Gnatenko) +- trivial: remove whitespace at end of line (Igor Gnatenko) + +* Sun Jul 02 2017 Igor Gnatenko - 2.1.2-2 +- Fix crash in COPR plugin + +* Sat Jul 01 2017 Igor Gnatenko - 2.1.2-1 +- debuginfo-install: install only requested packages +- Unify user confirmation in copr with dnf itself + +* Mon Jun 12 2017 Jaroslav Mracek 2.1.1-1 +- bump version to 2.1.1 + update release notes (Jaroslav Mracek) +- Enhance versionlock documentation (Jaroslav Mracek) +- Fix typos in args.ingex to args.index (RhBug:1458446) (Jaroslav Mracek) +- dont run versionlock on non-transactional operations (Jan Silhan) + +* Mon May 22 2017 Jaroslav Mracek 2.1.0-1 +- bump version to 2.1.0 + update release notes (Jaroslav Mracek) +- Adjust the dnf-utils subpackage to be more accurate (Neal Gompa) +- Add new sub-package dnf-utils (RhBug:1381917) (Jaroslav Mracek) +- Fix two renamed functions by dnf privatization (Jaroslav Mracek) + +* Tue May 02 2017 Jaroslav Mracek 2.0.0-1 +- update release notes (Jaroslav Mracek) +- po: Update translations (Igor Gnatenko) +- Fix incorrect exclude of locked version in versionlock (Jaroslav Mracek) +- po: Update translations (Igor Gnatenko) +- Setup selectively provides for python2 packages (Jaroslav Mracek) +- Build python3 packages only if with_python3 (Jaroslav Mracek) +- Search only according nevra in versionlock (Jaroslav Mracek) +- Solve a problem in performance of versionlock (RhBug:1431493) (Jaroslav + Mracek) +- Repoclosure exit with 1 if unsatisfied dependencies (RhBug:1416782) (Jaroslav + Rohel) +- Not raise an Error if strict=False and --url for download command (Jaroslav + Mracek) +- Check argument if it is a file ending with .rpm (RhBug:1436570) (Jaroslav + Mracek) +- update link to "What I can build in Copr? documentation page (clime) +- po: Update translations (Igor Gnatenko) +- Create dir for local plugin if path not exist (Jaroslav Mracek) +- Correct some PEP8 violations after plugin import (Jaroslav Mracek) +- Add debug into dnf-plugins-core (Jaroslav Mracek) +- Added latest doc changes from plugins-extras upstream (Jaroslav Mracek) +- bump version to 2.0.0 (Jaroslav Mracek) +- Add migrate plugin into dnf-plugins-core (Jaroslav Mracek) +- Add man pages for transfered plugins (Jaroslav Mracek) +- Add provide dnf-plugin-* for each plugin (Jaroslav Mracek) +- Correct some PEP8 violations (Jaroslav Mracek) +- Add local into dnf-plugins-core (Jaroslav Mracek) +- Add leaves and show-leaves into dnf-plugins-core (Jaroslav Mracek) +- Add versionlock into dnf-plugins-core (Jaroslav Mracek) +- Add repograph into dnf-plugins-core (Jaroslav Mracek) +- Add repoclosure into dnf-plugins-core (Jaroslav Mracek) +- Add repomanage into dnf-plugins-core (Jaroslav Mracek) +- Add --archlist option for dnf download command (Jaroslav Mracek) +- Change code that provides package location for download command (Jaroslav + Mracek) +- po: update translations (Igor Gnatenko) +- po: add sv translations (Igor Gnatenko) + +* Tue Mar 21 2017 Igor Gnatenko 1.1.0-1 +- dnf dowload --resolve should download everytime requested packages + (RhBug:1276611) (stepasm) +- builddep: install requirements by provides (RhBug:1332830) (Igor Gnatenko) +- builddep: do not check GPG key of SRPM (RhBug:1431486) (Igor Gnatenko) +- builddep: properly check for nosrc.rpm (Igor Gnatenko) +- po: Update translations (RhBug:1429087) (Igor Gnatenko) +- Remove noroot plugin that was move into dnf itself (Jaroslav Mracek) + +* Mon Feb 20 2017 Jaroslav Mracek 1.0.2-1 +- bump version to 1.0.2 + update release notes (Jaroslav Mracek) +- download: add --urlprotocols option (Dusty Mabe) +- download: add --url cli option (RhBug:1250115) (Dusty Mabe) +- download: refactor download code (Dusty Mabe) +- copr: Tweak wording to be more generic (Neal Gompa) +- Automatic commit of package [dnf-plugins-core] release [1.0.1-1]. (Jaroslav + Mracek) +- bump version to 1.0.1 + update release notes (Jaroslav Mracek) + +* Thu Feb 16 2017 Igor Gnatenko - 1.0.1-2 +- Rebuild due to infra breakage + +* Fri Feb 10 2017 Jaroslav Mracek 1.0.1-1 +- bump version to 1.0.1 + update release notes (Jaroslav Mracek) +- setup SideCI to ignore some PEP8 violations (Jaroslav Mracek) +- spec: define all configs as (noreplace) (Igor Gnatenko) +- spec: include __pycache__ files (Igor Gnatenko) +- builddep: print errors from RPM SPEC parser (Petr Spacek) + +* Fri Feb 10 2017 Fedora Release Engineering - 1.0.0-0.rc1.2.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Dec 13 2016 Stratakis Charalampos - 1.0.0-0.rc1.2 +- Rebuild for Python 3.6 + +* Thu Sep 29 2016 Michal Luscon 1.0.0-0.rc1.1 +- doc: open rpmspec in utf-8 mode (Igor Gnatenko) +- cls.chroot_config inside _guess_chroot returns None (RhBug: 1361003) (Michael + Goodwin) +- builddep: adjust to new config (dnf-2.0) (Michal Luscon) +- Change minimal required version (Jaroslav Mracek) +- introduced config-manager --dump-variables (RhBug:1360752) (Michael Mraka) +- Fix string puzzle in translatable message (Luigi Toscano) +- Added alias to 'builddep'->'build-dep' (RhBug:1350604) (stepasm) +- reposync should keep packages (RhBug:1325350) (Michael Mraka) +- Change usage of add_remote_rpm according to new API (Jaroslav Mracek) +- Remove lib.py from plugins-core (Jaroslav Mracek) +- Delete repoquery from dnf-plugins-core (Jaroslav Mracek) +- removed protected_packages plugin (Jan Silhan) +- repoquery: add --requires-pre switch (RhBug:1303117) (Michal Luscon) +- spec: bump version to 1.0.0 (Igor Gnatenko) +- Automatic commit of package [dnf-plugins-core] release [0.1.21-2]. (Igor + Gnatenko) +- Automatic commit of package [dnf-plugins-core] release [0.1.21-1]. (Igor + Gnatenko) +- spec: explicitly conflict with python-%%{name} with different version (Igor + Gnatenko) +- updated plugin to read_config() change (RhBug:1193823) (Michael Mraka) +- repoquery: sourcerpm does not contain epoch (RhBug:1335959) (Michael Mraka) +- enforce-api: use api method transaction (Michal Luscon) +- enforce-api: apply changes from Base class (Michal Luscon) +- copr: Read the %%distro_arch macro to determine Mageia chroot arch (Neal + Gompa (ニール・ゴンパ)) +- copr: Remove unnecessary function calls/options and simplify conditional + (Neal Gompa (ニール・ゴンパ)) +- copr: Add Mageia chroot selection support (Neal Gompa (ニール・ゴンパ)) +- copr: Simplify and fix up reading copr chroot config override (Neal Gompa + (ニール・ゴンパ)) +- autoglob feature has been moved to filter() (RhBug:1279538) (Michael Mraka) + +* Fri May 27 2016 Igor Gnatenko 0.1.21-2 +- spec: explicitly conflict with python-%%{name} with different version (Igor + Gnatenko) + +* Thu May 19 2016 Igor Gnatenko 0.1.21-1 +- doc: release notes 0.1.21 (Igor Gnatenko) +- spec: correctly set up requirements for python subpkg (Igor Gnatenko) +- spec: improve python packaging according to new guidelines & compat with EL7 + (Igor Gnatenko) +- tests/support: set priority and cost in RepoStub (Igor Gnatenko) +- repoquery: sourcerpm does not contain epoch (RhBug:1335959) (Michael Mraka) +- enforce-api: use api method transaction (Michal Luscon) +- enforce-api: apply changes from Base class (Michal Luscon) +- copr: Read the %%distro_arch macro to determine Mageia chroot arch (Neal + Gompa (ニール・ゴンパ)) +- copr: Remove unnecessary function calls/options and simplify conditional + (Neal Gompa (ニール・ゴンパ)) +- copr: Add Mageia chroot selection support (Neal Gompa (ニール・ゴンパ)) +- copr: Simplify and fix up reading copr chroot config override (Neal Gompa + (ニール・ゴンパ)) +- zanata update (Jan Silhan) +- Add link for other project documentation pages (Jaroslav Mracek) +- autoglob feature has been moved to filter() (RhBug:1279538) (Michael Mraka) +- support globs in --what (RhBug:1303311) (Michael Mraka) +- repoquery: fix typo (there -> that, and plural form) (Luigi Toscano) +- copr: fix string - singular is required (Luigi Toscano) +- doc: release notes updated to vallid plugins version (Jan Šilhan) + +* Tue Apr 05 2016 Michal Luscon 0.1.20-1 +- doc: release notes 0.1.20 (Igor Gnatenko) +- copr: Properly detect reposdir and add chroot override capability (Neal Gompa + (ニール・ゴンパ)) +- config_manager: Use new API in dnfpluginscore.lib for determining reposdir + (Neal Gompa (ニール・ゴンパ)) +- dnfpluginscore.lib: Add get_reposdir() API function (Neal Gompa (ニール・ゴンパ)) +- Fix typo (Eduardo Mayorga Téllez) + +* Tue Mar 22 2016 Miroslav Suchý 0.1.19-1 +- spec: correct requires on F22 + EPEL (Miroslav Suchý) + +* Tue Mar 22 2016 Miroslav Suchý 0.1.18-1 +- Add myself as contributor in AUTHORS (Neal Gompa (ニール・ゴンパ)) +- copr: copr.fedoraproject.org -> copr.fedorainfracloud.org (Neal Gompa + (ニール・ゴンパ)) +- copr: fix traceback when trying to enable non-existing project (RhBug: + 1304615) (Jakub Kadlčík) +- README: mention translation fixes should be made on Zanata (Jan Šilhan) + +* Thu Feb 25 2016 Michal Luscon 0.1.17-1 +- enable debuginfo repos if autoupdate is on (RhBug:1024701) (Michael Mraka) +- fixed string suffix removal (Michael Mraka) +- install latest debuginfo by default (Michael Mraka) +- Enable strings for translation (RhBug:1302214) (Parag Nemade) + +* Mon Jan 25 2016 Jan Silhan 0.1.16-1 +- zanata update (Jan Silhan) +- AUTHORS: updated (Jan Silhan) +- run noroot in non cli mode (RhBug:1297511) (Jan Silhan) +- Sanitize repos containing a tilde in the URL (François RIGAULT) +- contributor added (clime) +- latest-limit option moved to base set of options making it compatible with + --queryformat and other output formatters (RhBug: 1292475) (clime) +- builddep: do not download source package (Jeff Smith) +- repoquery: keep --autoremove as secret option (Jan Silhan) +- cosmetic: repoquery: remove unused imports (Jan Silhan) +- doc: repoquery: --recent (Jan Silhan) +- doc: renamed autoremove to unneeded and extended docs (Jan Silhan) + +* Fri Dec 18 2015 Michal Luscon 0.1.15-1 +- Make it possible to specify the source package name as parameter in stub + constructor. (Alexander Todorov) +- Add --debuginfo to download (Alexander Todorov) +- resolve local RPMs when downloading. useful with --source (Alexander Todorov) +- spec: ensure python*-dnf-plugins-core versions are the same (RhBug:1283448) + (Jan Silhan) +- reimplemented config file writing (RhBug:1253237) (Michael Mraka) + +* Mon Nov 16 2015 Michal Luscon 0.1.14-1 +- zanata update (Jan Silhan) +- repoquery: do not require loading metadata when we want to query system only + (Jan Silhan) +- repoquery: fix unicode tracebacks (Michal Luscon) +- repoquery: use new methods recent, extras, unneeded (Michal Luscon) +- repoquery: use new api methods duplicated and latest (RhBug:1231572) (Michal + Luscon) +- Exit with non-zero status if strict and package not found (alde) +- Fix cmdline conversion to unicode (RhBug:1265210) (Michal Domonkos) +- Remove extra 'l' in test class name (Alexander Todorov) +- copr: PEP formating (Miroslav Suchý) +- copr: allow to use staging instance of Copr for testing (Miroslav Suchý) +- do not use @ in repoid (RhBug:1280416) (Miroslav Suchý) +- reverts unintentional releaser from e035152 (Jan Silhan) +- don't look for builddeps on source packages (RhBug:1272936) (Michael Mraka) +- Fix hawkey version constraint (Neal Gompa (ニール・ゴンパ)) + +* Wed Oct 14 2015 Jan Silhan 0.1.13-1 +- updated: release notes for 0.1.13 (Jan Silhan) +- Remove kickstart plugin from core plugins (Neal Gompa + (ニール・ゴンパ)) +- read file as utf-8 in Py3 (RhBug:1267808) (Miroslav Suchý) +- playground: check if repo actually exists for our version of OS (Miroslav + Suchý) +- add Catalan (Robert Antoni Buj Gelonch) +- repoquery: Fix UnicodeEncodeError with --info (RhBug:1264125) (Jaroslav + Mracek) +- lookup builddeps in source package for given package name (RhBug:1265622) + (Michael Mraka) +- functions moved to library (Michael Mraka) +- functions to return name of source and debuginfo package (Michael Mraka) +- try -debuginfo first then -debuginfo (RhBug:1159614) (Michael + Mraka) +- Automatic commit of package [dnf-plugins-core] release [0.1.12-2]. (Michal + Luscon) +- doc: release notes 0.1.12 (Michal Luscon) + +* Tue Sep 22 2015 Michal Luscon 0.1.12-2 +- add python2-dnf requirements + +* Tue Sep 22 2015 Michal Luscon 0.1.12-1 +- repoquery: add globbing support to whatrequires/whatprovides. + (RhBug:1249073) (Valentina Mukhamedzhanova) +- needs_restarting: Rewrite a warning message (Wieland Hoffmann) +- Remove extra quotation mark in comment (Alexander Todorov) + +* Tue Sep 01 2015 Michal Luscon 0.1.11-1 +- dnf donwload checks for duplicate packages (rhBug:1250114) (Adam Salih) +- Extend repoquery --arch option. You can now pass multiple archs separated by + commas (RhBug:1186381) (Adam Salih) +- download plugin now prints not valid packages (RhBug:1225784) (Adam Salih) +- correct typo (Adam Salih) +- dnf now accepts more than one key (RhBug:1233728) (Adam Salih) +- description should be print unwrapped (Adam Salih) +- alternative to pkgnarrow (RhBug:1199601) (Adam Salih) +- sort output alphabetically, tree accepts switches --enhances --suggests + --provides --suplements --recommends (RhBug:1156778) (Adam Salih) + +* Mon Aug 10 2015 Jan Silhan 0.1.10-1 +- generate_completion_cache: use list for each insert (fixes regression + introduced in e020c96) (Igor Gnatenko) +- generate_completion_cache: store NEVRA insted of NA (RhBug:1226663) (Igor + Gnatenko) +- repoquery: weak deps queries (RhBug:1184930) (Michal Luscon) +- builddep requires an argument (Michael Mraka) +- disable c++ checks in rpmbuild (Michael Mraka) +- path may contain unicode (RhBug:1234099) (Michael Mraka) +- fail if no package match (RhBug:1241126) (Michael Mraka) +- make --spec and --srpm mutually exclusive (Michael Mraka) +- handle error message in python3 (RhBug:1218299) (Michael Mraka) +- options to recognize spec/srpm files (RhBug:1241135) (Michael Mraka) +- copr: set chmod to rw-r--r-- on repo files (Miroslav Suchý) +- [copr] refactor duplicated lines (Jakub Kadlčík) +- [copr] allow utf-8 user input (RhBug:1244125) (Jakub Kadlčík) +- [copr] fix regression with handling `search` and `list` subcommands (Valentin + Gologuzov) +- [copr] terminate execution when failed to parse project name (Valentin + Gologuzov) +- [copr] unused import (Valentin Gologuzov) +- [copr] subcommand `disable` now only set `enabled=0`, repo file could be + deleted by new subcommand `remove` (Valentin Gologuzov) + +* Wed Jun 24 2015 Michal Luscon 0.1.9-1 +- repoquery: add srpm option (RhBug:1186382) (Vladan Kudlac) +- create repo files readable by users (RhBug:1228693) (Michael Mraka) +- copr: use librepo instead of python-request (Miroslav Suchý) +- --tree now works with --conflicts --obsoletes --requires and --whatrequires + (RhBug:1128424) (RhBug:1186689) (Adam Salih) +- url for copr repos changed (RhBug:1227190) (Miroslav Suchý) +- repoquery: fixed conflicts package format (Adam Salih) +- document that globs can be used in dnf config-manager (Michael Mraka) + + +* Wed Jun 17 2015 Fedora Release Engineering - 0.1.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed May 06 2015 Michal Luscon 0.1.8-1 +- spec: fix an upgrade path from dnf-plugins-core <= 0.1.5 (Radek Holy) + +* Thu Apr 30 2015 Michal Luscon 0.1.7-1 +- doc: release notes dnf-plugins-core-0.1.7 (Michal Luscon) +- spec: fix Conflicts of the new plugins (Radek Holy) +- spec: allow DNF 1.x.x (Radek Holy) +- AUTHORS: filled in missing email address (Jan Silhan) +- download: enabling source repos when desired only (Jan Silhan) +- download: using enable_source_repos from lib (Jan Silhan) +- lib: inform user when enabling disabled repo (Jan Silhan) +- AUTHORS: made 2 categories (Jan Silhan) +- fixed typos and missing demand (Michael Mraka) +- changed warning paragraph (Michael Mraka) +- AUTHORS: updated (Jan Silhan) +- debuginfo-install: don't consider src packages as candidates for installation + (RhBug:1215154) (Lubomir Rintel) +- documentation warning about build deps in srpm (Michael Mraka) +- fixed builddep tests (Michael Mraka) +- builddep: enable source repos only when needed (Michael Mraka) +- fixed builldep documentation (Michael Mraka) +- mark appropriate dnfpluginscore.lib as API (Michael Mraka) +- fixed builddep configure test (Michael Mraka) +- moved enable_{source|debug}_repos() to dnfpluginscore.lib (Michael Mraka) +- builddep: add feature to get builddeps from remote packages (RhBug:1074585) + (Igor Gnatenko) +- doc: repoquery: doesn't print 'No match for argument:...' garbage (Jan + Silhan) +- updated repoquery documentation (Michael Mraka) +- implemented repoquery --latest-limit (Michael Mraka) +- implemented repoquery --unsatisfied (Michael Mraka) +- builddep: Support defining macros for parsing spec files (David Michael) +- removed redundant argument (Michael Mraka) +- doc: update repoquery docs with --resolve (Tim Lauridsen) +- repoquery: add --resolve option (RhBug:1156487) (Tim Lauridsen) +- spec: dnf version upper boundaries (Jan Silhan) +- spec: added plugin command provides (Related:RhBug:1208773) (Jan Silhan) +- make --repo cumulative (Michael Mraka) +- rename --repoid to --repo (Michael Mraka) +- don't delete local repo packages after download (RhBug:1186948) (Michael + Mraka) +- doc: replaced last references pointing to akozumpl (Jan Silhan) + +* Wed Apr 08 2015 Michal Luscon 0.1.6-3 +- doc: release notes 0.1.6 (Michal Luscon) +- initialize to use tito (Michal Luscon) +- prepare repo for tito build system (Michal Luscon) +- migrate raw_input() to Python3 (RhBug:1208399) (Miroslav Suchý) +- require dnf 0.6.5+ which contains duplicated/installonly queries (Michael Mraka) +- implemented --duplicated and --installonly (Michael Mraka) +- create --destdir if not exist (Michael Mraka) +- repoquery: Added -s/--source switch, test case and documentation for querying source rpm name (Parag Nemade) +- repoquery: Added documentation and test case for file switch (Parag Nemade) +- spec: ship man pages in dnf-plugins-core metapackage (Jan Silhan) +- debuginfo-install: support cases where src.rpm name != binary package name (Petr Spacek) +- spec: added empty %%files directive to generate rpm (Jan Silhan) +- spec: adapt to pykickstart f23 package split (Jan Silhan) +- spec: requires >= dnf version not = (Jan Silhan) +- spec: python3 source code by default in f23+ (RhBug:1194725,1198442) (Jan Silhan) +- use dnfpluginscore.lib.urlopen() (RhBug:1193047) (Miroslav Suchý) +- implemented functionality of yum-config-manager (Michael Mraka) +- repoquery: Added --file switch to show who owns the given file (RhBug:1196952) (Parag Nemade) +- debuginfo-install: accept packages names specified as NEVRA (RhBug:1171046) (Petr Spacek) +- repoquery: accept package names specified as NEVRA (RhBug:1179366) (Petr Spacek) +- download: fix typo in 'No source rpm definded' (Petr Spacek) +- download: accept package names ending with .src too (Petr Spacek) +- download: Do not disable user-enabled repos (thanks Spacekpe) (Jan Silhan) +- Add README to tests/ directory (Petr Spacek) +- AUTHORS: updated (Jan Silhan) +- download: fix package download on Python 3 (Petr Spacek) + +* Tue Mar 10 2015 Jan Silhan - 0.1.6-2 +- man pages moved into dnf-plugins-core subpackage + +* Fri Mar 6 2015 Jan Silhan - 0.1.6-1 +- fixed python(3)-dnf dependency in f23 + +* Thu Feb 5 2015 Jan Silhan - 0.1.5-1 +- updated package url (Michael Mraka) +- also dnf_version could be specified on rpmbuild commandline (Michael Mraka) +- simple script to build test package (Michael Mraka) +- let gitrev be specified on rpmbuild commandline (Michael Mraka) +- assign default GITREV value (Michael Mraka) +- standard way to find out latest commit (Michael Mraka) +- debuginfo-install: fix handling of subpackages with non-zero epoch (Petr Spacek) +- debuginfo-install: Make laywers happier by assigning copyright to Red Hat (Petr Spacek) +- debuginfo-install: remove dead code uncovered by variable renaming (Petr Spacek) +- debuginfo-install: clearly separate source and debug package names (Petr Spacek) +- debuginfo-install: use descriptive parameter name in _is_available() (Petr Spacek) +- repoquery: add -l option to list files contained in the package (Petr Spacek) +- 1187773 - replace undefined variable (Miroslav Suchý) +- download: fixed unicode location error (RhBug:1178239) (Jan Silhan) +- builddep recognizes nosrc.rpm pkgs (RhBug:1166126) (Jan Silhan) +- builddep: added nosignatures flag to rpm transaction set (Jan Silhan) +- builddep: more verbose output of non-matching packages (RhBug:1155211) (Jan Silhan) +- package: archive script is the same as in dnf (Jan Silhan) +- spec: exclude __pycache__ dir (Igor Gnatenko) + +* Fri Dec 5 2014 Jan Silhan - 0.1.4-1 +- revert of commit 80ae3f4 (Jan Silhan) +- transifex update (Jan Silhan) +- spec: binded to current dnf version (Jan Silhan) +- generate_completion_cache: use sqlite instead of text files (Igor Gnatenko) +- logging: renamed log file (Related:RhBug:1074715) (Jan Silhan) +- Add reposync. (RhBug:1139738) (Ales Kozumplik) +- download: fix traceback if rpm package has no defined sourcerpm (RhBug: 1144003) (Tim Lauridsen) +- lint: ignore warnings of a test accessing protected attribute. (Ales Kozumplik) +- repoquery lint: logger is not used. (Ales Kozumplik) +- repoquery: support querying of weak deps. (Ales Kozumplik) +- needs_restarting: fix typo (Miroslav Suchý) +- copr: migrate copr plugin form urlgrabber to python-request (Miroslav Suchý) +- Add needs-restarting command. (Ales Kozumplik) + +* Thu Sep 4 2014 Jan Silhan - 0.1.3-1 +- repoquery: output times in UTC. (Ales Kozumplik) +- repoquery: missing help messages. (Ales Kozumplik) +- repoquery: add --info. (RhBug:1135984) (Ales Kozumplik) +- add Jan to AUTHORS. (Ales Kozumplik) +- spec: extended package description with plugin names and commands (Related:RhBug:1132335) (Jan Silhan) +- copr: check for 'ok' in 'output' for json data (RhBug:1134378) (Igor Gnatenko) +- README: changed references to new repo location (Jan Silhan) +- transifex update (Jan Silhan) +- copr: convert key to unicode before guessing lenght (Miroslav Suchý) +- Add pnemade to AUTHORS (Ales Kozumplik) +- debuginfo-install: Use logger as module level variable and not instance attribute since dnf-0.6.0 release (RhBug:1130559) (Parag Nemade) +- copr: Use logger as module level variable and not instance attribute since dnf-0.6.0 release (RhBug:1130559) (Parag Nemade) +- copr: implement help command (Igor Gnatenko) +- debuginfo-install: fix indenting (Igor Gnatenko) +- debuginfo-install: use srpm basename for debuginfo (Igor Gnatenko) + +* Mon Jul 28 2014 Aleš Kozumplík - 0.1.2-1 +- BashCompletionCache: error strings are unicoded (RhBug:1118809) (Jan Silhan) +- transifex update (Jan Silhan) +- debuginfo-install: remove some pylint warnings (Igor Gnatenko) +- debuginfo-install: fix installing when installed version not found in repos, optimize performance (RhBug: 1108321) (Ig +- fix: copr plugin message for repo without builds (RhBug:1116389) (Adam Samalik) +- logging: remove messages about initialization. (Ales Kozumplik) + +* Thu Jul 3 2014 Aleš Kozumplík - 0.1.1-2 +- packaging: add protected_packages.py to the package. (Ales Kozumplik) + +* Thu Jul 3 2014 Aleš Kozumplík - 0.1.1-1 +- protected_packages: prevent removal of the running kernel. (RhBug:1049310) (Ales Kozumplik) +- packaging: create and own /etc/dnf/protected.d. (Ales Kozumplik) +- doc: add documentation for protected_packages. (Ales Kozumplik) +- doc: rename: generate-completion-cache -> generate_completion_cache. (Ales Kozumplik) +- add protected_packages (RhBug:1111855) (Ales Kozumplik) +- build: add python-requests to requires (RHBZ: 1104088) (Miroslav Suchý) +- doc: typo: fix double 'plugin' in release notes. (Ales Kozumplik) + +* Wed Jun 4 2014 Aleš Kozumplík - 0.1.0-1 +- pylint: fix all pylint builddep problems. (Ales Kozumplik) +- builddep: better error reporting on deps that actually don't exist. (Ales Kozumplik) +- builddep: load available repos. (RhBug:1103906) (Ales Kozumplik) +- tests: stop argparse from printing to stdout when tests run. (Ales Kozumplik) +- packaging: all the manual pages with a glob. (Ales Kozumplik) +- fix: packaging problem with query.py. (Ales Kozumplik) +- doc: add reference documentation for repoquery. (Ales Kozumplik) +- repoquery: support --provides, --requires etc. (Ales Kozumplik) +- repoquery: make the CLI more compatible with Yum's repoquery. (Ales Kozumplik) +- repoquery: some cleanups in the plugin and the tests. (Ales Kozumplik) +- rename: query->repoquery. (RhBug:1045078) (Ales Kozumplik) +- add pylint script for dnf-core-plugins. (Ales Kozumplik) +- tests: repoquery: fix unit tests. (Ales Kozumplik) +- add query tool (Tim Lauridsen) + +* Wed May 28 2014 Aleš Kozumplík - 0.0.8-1 +- build: add sphinx to build requires. (Ales Kozumplik) +- doc: packaging: add license block to each .rst. (Ales Kozumplik) +- tests: stray print() in test_download.py. (Ales Kozumplik) +- doc: put each synopsis on new line (Miroslav Suchý) +- doc: cosmetic: project name in the documentation. (Ales Kozumplik) +- doc: cleanups, form, style. (Ales Kozumplik) +- doc: add documentation and man pages (Tim Lauridsen) +- copr: remove repofile if failed to enable repo (Igor Gnatenko) +- copr: honor -y and --assumeno (Miroslav Suchý) +- py3: absolute imports and unicode literals everywhere. (Ales Kozumplik) +- debuginfo-install: doesn't install latest pkgs (RhBug: 1096507) (Igor Gnatenko) +- debuginfo-install: fix description (Igor Gnatenko) +- debuginfo-install: fix logger debug messages (Igor Gnatenko) +- build: install the download plugin (Tim Lauridsen) +- download: update the download plugin with --source, --destdir & --resolve options (Tim Lauridsen) +- Add a special ArgumentParser to parsing plugin cmd arguments and options (Tim Lauridsen) +- tests: add __init__.py to make tests a module and use abs imports (Tim Lauridsen) +- build: simplify plugins/CMakeLists.txt. (Ales Kozumplik) +- dnf.cli.commands.err_mini_usage() changed name. (Ales Kozumplik) +- kickstart: do not include kickstart errors into own messages. (Radek Holy) + +* Wed Apr 23 2014 Aleš Kozumplík - 0.0.7-1 +- build: gettext is also needed as a buildreq (Tim Lauridsen) +- copr: use usage & summary class attributes, to work with dnf 0.5.0 use shared lib dnfpluginscore for translation wrapp +- build: add cmake as buildreq (Tim Lauridsen) +- generate-completion-cache: fix shared lib name (Tim Lauridsen) +- make .spec use gitrev in the source file add helper script for building source archive (Tim Lauridsen) +- Added transifex config (Tim Lauridsen) +- tests: use cli logger in kickstart test (Tim Lauridsen) +- Added translation .pot file Added da translation files so we have something to build & install (Tim Lauridsen) +- Added CMake files Added CMake build to .spec & and added translation files handling (Tim Lauridsen) +- make plugins use shared lib added translation wrappers added missing usage & summary PEP8 fixes (Tim Lauridsen) +- added shared dnfpluginscore lib (Tim Lauridsen) +- copr: C:139, 0: Unnecessary parens after 'print' keyword (superfluous-parens) (Miroslav Suchý) +- copr: W: 23, 0: Unused import gettext (unused-import) (Miroslav Suchý) +- copr: C: 33, 0: No space allowed before : (Miroslav Suchý) +- copr: some python3 migration (Miroslav Suchý) +- copr: get rid of dnf i18n imports (Miroslav Suchý) +- remove dnf.yum.i18n imports. (Ales Kozumplik) +- copr: Fix the playground upgrade command. (Tadej Janež) +- copr: implement search function (Igor Gnatenko) +- better format output (Miroslav Suchý) +- implement playground plugin (Miroslav Suchý) +- move removing of repo into method (Miroslav Suchý) +- check root only for actions which really need root (Miroslav Suchý) +- move repo downloading into separate method (Miroslav Suchý) +- define copr url as class attribute (Miroslav Suchý) +- better wording of warning (Miroslav Suchý) +- move question to function argument (Miroslav Suchý) +- move guessing chroot into function (Miroslav Suchý) +- copr: use common lib use Command.usage & summary cleanup imports & PEP8 fixes (Tim Lauridsen) +- builddep: added usage & summary & fix some PEP8 issues (Tim Lauridsen) +- kickstart: use new public Command.usage & Command.summary api (Tim Lauridsen) +- fix resource leak in builddep.py. (Ales Kozumplik) +- refactor: command plugins use demands mechanism. (Ales Kozumplik) +- noroot: move to the new 'demands' mechanism to check the need of root. (Ales Kozumplik) +- tests: fix locale independence. (Radek Holy) +- [copr] correctly specify chroot when it should be guessed (Miroslav Suchý) + +* Mon Mar 17 2014 Aleš Kozumplík - 0.0.6-1 +- clenaup: remove commented out code (Miroslav Suchý) +- copr: list: print description (Igor Gnatenko) +- builddep: rpm error messages sink. (Ales Kozumplik) +- builddep: improve error handling on an command argument (RhBug:1074436) (Ales Kozumplik) +- copr: handling case when no argument is passed on cli (Miroslav Suchý) +- copr: delete excess argument (Igor Gnatenko) +- add copr plugin (Miroslav Suchý) +- debuginfo-install: check for root with dnf api (Igor Gnatenko) +- packaging: fix bogus dates. (Ales Kozumplik) + +* Wed Feb 26 2014 Aleš Kozumplík - 0.0.5-2 +- packaging: add debuginfo-install.py (Ales Kozumplik) + +* Wed Feb 26 2014 Aleš Kozumplík - 0.0.5-1 +- packaging: add builddep.py to the RPM. (Ales Kozumplik) + +* Tue Feb 25 2014 Radek Holý - 0.0.4-1 +- refactor: use Base.install instead of installPkgs in kickstart plugin. (Radek Holy) +- refactor: move kickstart arguments parsing to standalone method. (Radek Holy) +- tests: test effects instead of mock calls. (Radek Holy) +- Add debuginfo-install plugin. (RhBug:1045770) (Igor Gnatenko) +- builddep: needs to be run under root. (RhBug:1065851) (Ales Kozumplik) + +* Thu Feb 6 2014 Aleš Kozumplík - 0.0.3-1 +- tests: import mock through support so its simpler for the test cases. (Ales Kozumplik) +- packaging: fix typos in the spec. (Ales Kozumplik) +- [completion_cache] Cache installed packages, update the cache less frequently (Elad Alfassa) +- Add bash completion to dnf (Elad Alfassa) +- packaging: missing buildrequire (Ales Kozumplik) + +* Mon Jan 13 2014 Aleš Kozumplík - 0.0.2-1 +- First release. + +* Wed Jan 8 2014 Cristian Ciupitu - 0.0.1-4 +- Spec updates. + +* Tue Jan 7 2014 Aleš Kozumplík - 0.0.1-3 +- Spec updates. + +* Mon Jan 6 2014 Aleš Kozumplík - 0.0.1-2 +- Spec updates. + +* Fri Dec 20 2013 Aleš Kozumplík - 0.0.1-1 +- The initial package version.