From 913ca29b0a862576930cc53af9cbfeb28d709cbd Mon Sep 17 00:00:00 2001 From: eabdullin Date: Wed, 27 Mar 2024 19:34:55 +0000 Subject: [PATCH] import CS dnf-4.7.0-20.el8 --- ...-usrbin-from-syspath-noimpor-garbage.patch | 85 ++ ...-RHEL-6393-Fix-japanese-translations.patch | 1218 +++++++++++++++++ ...-substitution-in-kvp-in-add_new_repo.patch | 53 + SPECS/dnf.spec | 10 +- 4 files changed, 1365 insertions(+), 1 deletion(-) create mode 100644 SOURCES/0045-RHEL-1245-Remove-usrbin-from-syspath-noimpor-garbage.patch create mode 100644 SOURCES/0046-RHEL-6393-Fix-japanese-translations.patch create mode 100644 SOURCES/0047-RHEL-11786-Fix-substitution-in-kvp-in-add_new_repo.patch diff --git a/SOURCES/0045-RHEL-1245-Remove-usrbin-from-syspath-noimpor-garbage.patch b/SOURCES/0045-RHEL-1245-Remove-usrbin-from-syspath-noimpor-garbage.patch new file mode 100644 index 0000000..30d054d --- /dev/null +++ b/SOURCES/0045-RHEL-1245-Remove-usrbin-from-syspath-noimpor-garbage.patch @@ -0,0 +1,85 @@ +From 29f4df4bf7bf7cb9099dbc7c834441ce4e75b623 Mon Sep 17 00:00:00 2001 +From: Miro Hrončok +Date: Wed, 23 Feb 2022 13:25:12 +0100 +Subject: [PATCH] RHEL-1245: Remove /usr/bin from sys.path to avoid accidentally importing garbage + +See https://bugzilla.redhat.com/show_bug.cgi?id=2057340 +and https://github.com/benjaminp/six/issues/359 + +dnf should never import Python modules from /usr/bin but users can +have files in there that look like Python modules and Python will +try to import them and fail. + +Consider a tool that is *not* written in Python and is called "copy.pyc". +Naturally, it resides in /usr/bin/copy.pyc and dnf fails: + + Traceback (most recent call last): + File "/usr/bin/dnf", line 57, in + from dnf.cli import main + File "/usr/lib/python3.10/site-packages/dnf/__init__.py", line 30, in + import dnf.base + File "/usr/lib/python3.10/site-packages/dnf/base.py", line 31, in + from copy import deepcopy + ImportError: bad magic number in 'copy': b'...' + +Similarly, a tool actually written in Python, called "copy.py" +might as well own /usr/bin/copy.py and dnf fails as well: + + Traceback (most recent call last): + File "/usr/bin/dnf", line 57, in + from dnf.cli import main + File "/usr/lib/python3.10/site-packages/dnf/__init__.py", line 30, in + import dnf.base + File "/usr/lib/python3.10/site-packages/dnf/base.py", line 31, in + from copy import deepcopy + ImportError: cannot import name 'deepcopy' from 'copy' (/usr/bin/copy.py) + +Either problem can happen for a variety of names. +We better not let that happen. + +A more general solution that would prevent Python doing this entirely +does not exists yet, see https://discuss.python.org/t/4235 + +Hence, proposing this to dnf, which is a critical piece of the system. +--- + bin/dnf-automatic.in | 6 +++++- + bin/dnf.in | 6 +++++- + 2 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/bin/dnf-automatic.in b/bin/dnf-automatic.in +index 5b06aa2..17e35a0 100755 +--- a/bin/dnf-automatic.in ++++ b/bin/dnf-automatic.in +@@ -23,7 +23,11 @@ import os + import sys + + here = sys.path[0] +-if here != '/usr/bin': ++if here == '/usr/bin': ++ # we never import Python modules from /usr/bin ++ # removing this lowers the risk of accidental imports of weird files ++ del sys.path[0] ++else: + # git checkout + dnf_toplevel = os.path.dirname(here) + sys.path[0] = dnf_toplevel +diff --git a/bin/dnf.in b/bin/dnf.in +index 645d0f0..55ceb3f 100755 +--- a/bin/dnf.in ++++ b/bin/dnf.in +@@ -48,7 +48,11 @@ if __name__ != "__main__": + sys.exit(1) + + here = sys.path[0] +-if here != '/usr/bin': ++if here == '/usr/bin': ++ # we never import Python modules from /usr/bin ++ # removing this lowers the risk of accidental imports of weird files ++ del sys.path[0] ++else: + # git checkout + import os + dnf_toplevel = os.path.dirname(here) +-- +libgit2 1.6.4 + diff --git a/SOURCES/0046-RHEL-6393-Fix-japanese-translations.patch b/SOURCES/0046-RHEL-6393-Fix-japanese-translations.patch new file mode 100644 index 0000000..ea9e4b1 --- /dev/null +++ b/SOURCES/0046-RHEL-6393-Fix-japanese-translations.patch @@ -0,0 +1,1218 @@ +From 3e6fb3a9309afd9e7750db1411efeace5cc27666 Mon Sep 17 00:00:00 2001 +From: Marek Blaha +Date: Mon, 2 Oct 2023 17:10:58 +0200 +Subject: [PATCH] Fix japanese translations + +https://issues.redhat.com/browse/RHEL-6393 +--- + po/ja.po | 480 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + 1 file changed, 157 insertions(+), 323 deletions(-) + +diff --git a/po/ja.po b/po/ja.po +index fcb0497..7e8266d 100644 +--- a/po/ja.po ++++ b/po/ja.po +@@ -32,8 +32,7 @@ msgstr "" + "POT-Creation-Date: 2023-02-28 10:03+0100\n" + "PO-Revision-Date: 2023-03-06 13:20+0000\n" + "Last-Translator: Transtats \n" +-"Language-Team: Japanese \n" ++"Language-Team: Japanese \n" + "Language: ja\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" +@@ -133,13 +132,11 @@ msgstr "repository '{}' のロードに失敗しました" + + #: dnf/base.py:333 + msgid "Metadata timer caching disabled when running on metered connection." +-msgstr "" +-"metered 接続で実行する際、メタデータタイマーキャッシュは無効化されました。" ++msgstr "metered 接続で実行する際、メタデータタイマーキャッシュは無効化されました。" + + #: dnf/base.py:338 + msgid "Metadata timer caching disabled when running on a battery." +-msgstr "" +-"バッテリーで実行する際、メタデータタイマーキャッシュは無効化されました。" ++msgstr "バッテリーで実行する際、メタデータタイマーキャッシュは無効化されました。" + + #: dnf/base.py:343 + msgid "Metadata timer caching disabled." +@@ -198,9 +195,7 @@ msgstr "メタデータの期限切れの最終確認: %s 前の %s に実施し + msgid "" + "The downloaded packages were saved in cache until the next successful " + "transaction." +-msgstr "" +-"ダウンロード済みのパッケージは、次の正常なトランザクションまでキャッシュに保" +-"存されました。" ++msgstr "ダウンロード済みのパッケージは、次の正常なトランザクションまでキャッシュに保存されました。" + + #: dnf/base.py:520 + #, python-format +@@ -219,7 +214,7 @@ msgstr "リポジトリーのグループファイルを追加できませんで + + #: dnf/base.py:950 + msgid "Running transaction check" +-msgstr "トランザクションの確認を実行中" ++msgstr "トランザクションを確認しています" + + #: dnf/base.py:958 + msgid "Error: transaction check vs depsolve:" +@@ -231,7 +226,7 @@ msgstr "トランザクションの確認に成功しました。" + + #: dnf/base.py:967 + msgid "Running transaction test" +-msgstr "トランザクションのテストを実行中" ++msgstr "トランザクションをテストしています" + + #: dnf/base.py:977 dnf/base.py:1128 + msgid "RPM: {}" +@@ -247,7 +242,7 @@ msgstr "トランザクションのテストに成功しました。" + + #: dnf/base.py:1010 + msgid "Running transaction" +-msgstr "トランザクションを実行中" ++msgstr "トランザクションを実行しています" + + #: dnf/base.py:1047 + msgid "Disk Requirements:" +@@ -288,23 +283,17 @@ msgstr "一部のパッケージはダウンロードされませんでした。 + #: dnf/base.py:1258 + #, python-format + msgid "Delta RPMs reduced %.1f MB of updates to %.1f MB (%d.1%% saved)" +-msgstr "" +-"Delta RPM により %.1f MB の更新を %.1f MB に削減できました。(%d.1%% がキャッ" +-"シュされていました)" ++msgstr "Delta RPM により %.1f MB の更新を %.1f MB に削減できました。(%d.1%% がキャッシュされていました)" + + #: dnf/base.py:1261 + #, python-format + msgid "" + "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%d.1%% wasted)" +-msgstr "" +-"非効率な Delta RPM により %.1f MB の更新が増加し、%.1f MB となりました。" +-"(%d.1%% が無駄になりました)" ++msgstr "非効率な Delta RPM により %.1f MB の更新が増加し、%.1f MB となりました。(%d.1%% が無駄になりました)" + + #: dnf/base.py:1303 + msgid "Cannot add local packages, because transaction job already exists" +-msgstr "" +-"ローカルパッケージを追加できません、トランザクションジョブがすでに存在するた" +-"めです" ++msgstr "トランザクションジョブがすでに存在するため、ローカルパッケージを追加できません" + + #: dnf/base.py:1317 + msgid "Could not open: {}" +@@ -367,8 +356,7 @@ msgstr "アップグレード対象のグループはありません。" + #: dnf/base.py:2056 + #, python-format + msgid "Package %s not installed, cannot downgrade it." +-msgstr "" +-"パッケージ %s はインストールされていないので、ダウングレードできません。" ++msgstr "パッケージ %s はインストールされていないので、ダウングレードできません。" + + #: dnf/base.py:2058 dnf/base.py:2077 dnf/base.py:2090 dnf/base.py:2121 + #: dnf/base.py:2191 dnf/base.py:2199 dnf/base.py:2333 dnf/cli/cli.py:417 +@@ -384,15 +372,12 @@ msgstr "一致した引数がありません: %s" + #: dnf/base.py:2065 + #, python-format + msgid "Package %s of lower version already installed, cannot downgrade it." +-msgstr "" +-"下位バージョンのパッケージ %s はインストール済みなので、ダウングレードできま" +-"せん。" ++msgstr "下位バージョンのパッケージ %s はインストール済みなので、ダウングレードできません。" + + #: dnf/base.py:2088 + #, python-format + msgid "Package %s not installed, cannot reinstall it." +-msgstr "" +-"パッケージ %s はインストールされていないのでの、再インストールできません。" ++msgstr "パッケージ %s はインストールされていないのでの、再インストールできません。" + + #: dnf/base.py:2103 + #, python-format +@@ -408,21 +393,17 @@ msgstr "パッケージ %s はインストールされていないので、更 + #, python-format + msgid "" + "The same or higher version of %s is already installed, cannot update it." +-msgstr "" +-"同じまたはさらに新しいバージョンの %s が既にインストールされています、アップ" +-"デートできません。" ++msgstr "同じまたはさらに新しいバージョンの %s が既にインストールされています、アップデートできません。" + + #: dnf/base.py:2188 dnf/cli/commands/reinstall.py:81 + #, python-format + msgid "Package %s available, but not installed." + msgstr "パッケージ %s は利用可能ですが、インストールされていません。" + + #: dnf/base.py:2194 + #, python-format + msgid "Package %s available, but installed for different architecture." +-msgstr "" +-"パッケージ %s は利用可能ですが、他のアーキテクチャー用にインストールされてい" +-"ます。" ++msgstr "パッケージ %s は利用可能ですが、他のアーキテクチャー用にインストールされています。" + + #: dnf/base.py:2219 + #, python-format +@@ -448,9 +429,7 @@ msgstr "引数 %s のパッケージは利用可能ですが、インストー + #: dnf/base.py:2345 + #, python-format + msgid "Package %s of lowest version already installed, cannot downgrade it." +-msgstr "" +-"最下位バージョンのパッケージ %s はインストール済みなので、ダウングレードでき" +-"ません。" ++msgstr "最下位バージョンのパッケージ %s はインストール済みなので、ダウングレードできません。" + + #: dnf/base.py:2445 + msgid "No security updates needed, but {} update available" +@@ -513,12 +492,10 @@ msgstr "鍵を 1 つもインストールしませんでした" + #: dnf/base.py:2576 + #, python-format + msgid "" +-"The GPG keys listed for the \"%s\" repository are already installed but they " +-"are not correct for this package.\n" ++"The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n" + "Check that the correct key URLs are configured for this repository." + msgstr "" +-"\"%s\" リポジトリーに一覧表示されている GPG 鍵はインストール済みですが、この" +-"パッケージには適切ではありません。\n" ++"\"%s\" リポジトリーに一覧表示されている GPG 鍵はインストール済みですが、このパッケージには適切ではありません。\n" + "正しい鍵 URL がこのリポジトリー用に設定されているか確認してください。" + + #: dnf/base.py:2587 +@@ -531,27 +508,21 @@ msgstr " * おそらく: {}" + + #: dnf/base.py:2672 + msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" +-msgstr "" +-"ローカルリポジトリー \"{}\" のパッケージ \"{}\" のチェックサムは正しくありま" +-"せん" ++msgstr "ローカルリポジトリー \"{}\" のパッケージ \"{}\" のチェックサムは正しくありません" + + #: dnf/base.py:2675 + msgid "Some packages from local repository have incorrect checksum" +-msgstr "" +-"ローカルリポジトリーのいくつかのパッケージのチェックサムは正しくありません" ++msgstr "ローカルリポジトリーのいくつかのパッケージのチェックサムは正しくありません" + + #: dnf/base.py:2678 + msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" +-msgstr "" +-"リポジトリー \"{}\" のパッケージ \"{}\" のチェックサムは正しくありません" ++msgstr "リポジトリー \"{}\" のパッケージ \"{}\" のチェックサムは正しくありません" + + #: dnf/base.py:2681 + msgid "" + "Some packages have invalid cache, but cannot be downloaded due to \"--" + "cacheonly\" option" +-msgstr "" +-"いくつかのパッケージには無効なキャッシュがありますが、\"--cacheonly\" オプ" +-"ションによりダウンロードできません" ++msgstr "いくつかのパッケージには無効なキャッシュがありますが、\"--cacheonly\" オプションによりダウンロードできません" + + #: dnf/base.py:2699 dnf/base.py:2719 + msgid "No match for argument" +@@ -567,8 +538,7 @@ msgstr "引数に一致する結果はすべてモジュールのフィルタに + + #: dnf/base.py:2725 + msgid "All matches were installed from a different repository for argument" +-msgstr "" +-"引数に一致する結果はすべて異なるリポジトリーからインストールされたものです" ++msgstr "引数に一致する結果はすべて異なるリポジトリーからインストールされたものです" + + #: dnf/base.py:2772 + #, python-format +@@ -620,24 +590,16 @@ msgstr " ビルド : %s (日時: %s)" + msgid "" + "The operation would result in switching of module '{0}' stream '{1}' to " + "stream '{2}'" +-msgstr "" +-"オペレーションは、モジュール '{0}' ストリーム '{1}' を ストリーム '{2}' へと" +-"切り替える結果となります" ++msgstr "オペレーションは、モジュール '{0}' ストリーム '{1}' を ストリーム '{2}' へと切り替える結果となります" + + #: dnf/cli/cli.py:173 + #, python-brace-format + msgid "" +-"It is not possible to switch enabled streams of a module unless explicitly " +-"enabled via configuration option module_stream_switch.\n" +-"It is recommended to rather remove all installed content from the module, " +-"and reset the module using '{prog} module reset ' command. " +-"After you reset the module, you can install the other stream." ++"It is not possible to switch enabled streams of a module unless explicitly enabled via configuration option module_stream_switch.\n" ++"It is recommended to rather remove all installed content from the module, and reset the module using '{prog} module reset ' command. After you reset the module, you can install the other stream." + msgstr "" +-"設定オプション module_stream_switch から明示的に有効化されていない限り、モ" +-"ジュールの有効なストリームを切り替えることはできません。\n" +-"モジュールからインストールされた全てのコンテンツを削除し、'{prog} module " +-"reset ' コマンドを使用してリセットすることが推奨されます。モ" +-"ジュールのリセット後、他のストリームをインストール可能です。" ++"設定オプション module_stream_switch から明示的に有効化されていない限り、モジュールの有効なストリームを切り替えることはできません。\n" ++"モジュールからインストールされた全てのコンテンツを削除し、'{prog} module reset ' コマンドを使用してリセットすることが推奨されます。モジュールのリセット後、他のストリームをインストール可能です。" + + #: dnf/cli/cli.py:212 + #, python-brace-format +@@ -649,9 +611,7 @@ msgstr "{prog} はトランザクションでパッケージのダウンロー + msgid "" + "{prog} will only download packages, install gpg keys, and check the " + "transaction." +-msgstr "" +-"{prog} はパッケージのダウンロード、gpgキーのインストール、トランザクションの" +-"チェックのみ行います。" ++msgstr "{prog} はパッケージのダウンロード、gpgキーのインストール、トランザクションのチェックのみ行います。" + + #: dnf/cli/cli.py:219 + msgid "Operation aborted." +@@ -742,11 +702,9 @@ msgstr "一致するリポジトリーがありません: %s" + + #: dnf/cli/cli.py:719 + msgid "" +-"This command has to be run with superuser privileges (under the root user on " +-"most systems)." +-msgstr "" +-"このコマンドはスーパーユーザー特権(大概のシステムではrootユーザー)で実行しな" +-"ければいけません。" ++"This command has to be run with superuser privileges (under the root user on" ++" most systems)." ++msgstr "このコマンドはスーパーユーザー特権(大概のシステムではrootユーザー)で実行しなければいけません。" + + #: dnf/cli/cli.py:749 + #, python-format +@@ -758,55 +716,48 @@ msgstr "そのようなコマンドはありません: %s. %s --help を使用 + msgid "" + "It could be a {PROG} plugin command, try: \"{prog} install 'dnf-" + "command(%s)'\"" +-msgstr "" +-"{PROG} プラグインコマンドを実行できません、試してください: \"{prog} install " +-"'dnf-command(%s)'\"" ++msgstr "{PROG} プラグインコマンドを実行できません、試してください: \"{prog} install 'dnf-command(%s)'\"" + + #: dnf/cli/cli.py:756 + #, python-brace-format + msgid "" + "It could be a {prog} plugin command, but loading of plugins is currently " + "disabled." +-msgstr "" +-"{prog} プラグインコマンドを実行できません、プラグインのロードが現在無効になっ" +-"ているようです。" ++msgstr "{prog} プラグインコマンドを実行できません、プラグインのロードが現在無効になっているようです。" + + #: dnf/cli/cli.py:814 + msgid "" + "--destdir or --downloaddir must be used with --downloadonly or download or " + "system-upgrade command." + msgstr "" +-"--destdir または --downloaddir は、--downloadonly、download あるいは system-" +-"upgrade コマンドと共に使用する必要があります。" ++"--destdir または --downloaddir は、--downloadonly、download あるいは system-upgrade " ++"コマンドと共に使用する必要があります。" + + #: dnf/cli/cli.py:820 + msgid "" + "--enable, --set-enabled and --disable, --set-disabled must be used with " + "config-manager command." + msgstr "" +-"--enable と --set-enabled および --disable と --set-disabled は、config-" +-"manager コマンドと共に使用しなければなりません。" ++"--enable と --set-enabled および --disable と --set-disabled は、config-manager " ++"コマンドと共に使用しなければなりません。" + + #: dnf/cli/cli.py:902 + msgid "" + "Warning: Enforcing GPG signature check globally as per active RPM security " + "policy (see 'gpgcheck' in dnf.conf(5) for how to squelch this message)" + msgstr "" +-"警告: アクティブな RPM セキュリティーポリシーにより、GPG 署名の確認をグローバ" +-"ルに強制します (このメッセージをスケルチするには、dnf.conf(5) の 'gpgcheck' " +-"を参照してください)" ++"警告: アクティブな RPM セキュリティーポリシーにより、GPG 署名の確認をグローバルに強制します " ++"(このメッセージをスケルチするには、dnf.conf(5) の 'gpgcheck' を参照してください)" + + #: dnf/cli/cli.py:922 + msgid "Config file \"{}\" does not exist" + msgstr "設定ファイル \"{}\" は存在しません" + + #: dnf/cli/cli.py:942 + msgid "" + "Unable to detect release version (use '--releasever' to specify release " + "version)" +-msgstr "" +-"リリースバージョンを検出できません (リリースバージョンを指定するには '--" +-"releasever' を使用してください)" ++msgstr "リリースバージョンを検出できません (リリースバージョンを指定するには '--releasever' を使用してください)" + + #: dnf/cli/cli.py:1016 dnf/cli/commands/repoquery.py:471 + msgid "argument {}: not allowed with argument {}" +@@ -841,16 +792,13 @@ msgstr "問題を診断するには実行してみてください: '%s'." + #: dnf/cli/commands/__init__.py:40 + #, python-format + msgid "You probably have corrupted RPMDB, running '%s' might fix the issue." +-msgstr "" +-"RPMDB を破損させたかもしれませんが、'%s' を実行することでこの問題を解決できる" +-"可能性があります。" ++msgstr "RPMDB を破損させたかもしれませんが、'%s' を実行することでこの問題を解決できる可能性があります。" + + #: dnf/cli/commands/__init__.py:44 + #, python-brace-format + msgid "" + "You have enabled checking of packages via GPG keys. This is a good thing.\n" +-"However, you do not have any GPG public keys installed. You need to " +-"download\n" ++"However, you do not have any GPG public keys installed. You need to download\n" + "the keys for packages you wish to install and install them.\n" + "You can do that by running the command:\n" + " rpm --import public.gpg.key\n" +@@ -869,13 +817,11 @@ msgstr "" + " rpm --import public.gpg.key\n" + "\n" + "\n" +-"代わりにレポジトリーセクションの 'gpgkey' オプションにあるレポジトリーを使用" +-"し\n" ++"代わりにレポジトリーセクションの 'gpgkey' オプションにあるレポジトリーを使用し\n" + "キーのurlを特定したのち、 {prog} がインストールされます。\n" + "\n" + "\n" +-"詳細情報はディストリビューションまたはパッケージプロバイダーにコンタクトして" +-"ください。" ++"詳細情報はディストリビューションまたはパッケージプロバイダーにコンタクトしてください。" + + #: dnf/cli/commands/__init__.py:71 + #, python-format +@@ -1110,12 +1056,11 @@ msgstr "一致するエイリアスがありません: %s" + #: dnf/cli/commands/autoremove.py:41 + msgid "" + "remove all unneeded packages that were originally installed as dependencies" +-msgstr "" +-"当初は依存関係としてインストールされた不要なパッケージをすべて削除します" ++msgstr "当初は依存関係としてインストールされた不要なパッケージをすべて削除します" + + #: dnf/cli/commands/autoremove.py:46 dnf/cli/commands/remove.py:59 + msgid "Package to remove" +-msgstr "削除されるパッケージ" ++msgstr "削除するパッケージ" + + #: dnf/cli/commands/check.py:34 + msgid "check for problems in the packagedb" +@@ -1193,9 +1138,7 @@ msgstr "pid %d のプロセスが終了するのを待ちます。" + msgid "" + "[deprecated, use repoquery --deplist] List package's dependencies and what " + "packages provide them" +-msgstr "" +-"[非推奨、epoquery --deplist を使用] パッケージの依存関係とこれを提供するパッ" +-"ケージがどれかを一覧表示します" ++msgstr "[非推奨、epoquery --deplist を使用] パッケージの依存関係とこれを提供するパッケージがどれかを一覧表示します" + + #: dnf/cli/commands/distrosync.py:32 + msgid "synchronize installed packages to the latest available versions" +@@ -1306,27 +1249,21 @@ msgstr "store コマンドの場合は、トランザクションを保存する + + #: dnf/cli/commands/history.py:68 + msgid "" +-"For the replay command, don't check for installed packages matching those in " +-"transaction" +-msgstr "" +-"replay コマンドの場合は、トランザクション内のパッケージに一致するインストール" +-"済みパッケージを確認しない" ++"For the replay command, don't check for installed packages matching those in" ++" transaction" ++msgstr "replay コマンドの場合は、トランザクション内のパッケージに一致するインストール済みパッケージを確認しない" + + #: dnf/cli/commands/history.py:71 + msgid "" + "For the replay command, don't check for extra packages pulled into the " + "transaction" +-msgstr "" +-"replay コマンドの場合は、トランザクションにプルされた追加パッケージを確認しな" +-"い" ++msgstr "replay コマンドの場合は、トランザクションにプルされた追加パッケージを確認しない" + + #: dnf/cli/commands/history.py:74 + msgid "" +-"For the replay command, skip packages that are not available or have missing " +-"dependencies" +-msgstr "" +-"replay コマンドの場合は、利用できないパッケージや、依存関係が不足しているパッ" +-"ケージをスキップ" ++"For the replay command, skip packages that are not available or have missing" ++" dependencies" ++msgstr "replay コマンドの場合は、利用できないパッケージや、依存関係が不足しているパッケージをスキップ" + + #: dnf/cli/commands/history.py:94 + msgid "" +@@ -1356,20 +1293,16 @@ msgstr "履歴 DB にアクセスできません: %s" + #: dnf/cli/commands/history.py:151 + #, python-format + msgid "" +-"Cannot undo transaction %s, doing so would result in an inconsistent package " +-"database." +-msgstr "" +-"トランザクション %s を取り消すことはできません。取り消すことで、パッケージ" +-"データベースに矛盾が生じます。" ++"Cannot undo transaction %s, doing so would result in an inconsistent package" ++" database." ++msgstr "トランザクション %s を取り消すことはできません。取り消すことで、パッケージデータベースに矛盾が生じます。" + + #: dnf/cli/commands/history.py:156 + #, python-format + msgid "" + "Cannot rollback transaction %s, doing so would result in an inconsistent " + "package database." +-msgstr "" +-"トランザクション %s をロールバックすることはできません。ロールバックすること" +-"で、パッケージデータベースに矛盾が生じます。" ++msgstr "トランザクション %s をロールバックすることはできません。ロールバックすることで、パッケージデータベースに矛盾が生じます。" + + #: dnf/cli/commands/history.py:175 + msgid "No transaction ID given" +@@ -1470,9 +1403,7 @@ msgstr "すべてのメタデータファイルのキャッシュファイルを + + #: dnf/cli/commands/mark.py:39 + msgid "mark or unmark installed packages as installed by user." +-msgstr "" +-"インストール済みパッケージをユーザーがインストールしたとマークするか、または" +-"マークをはずします。" ++msgstr "インストール済みパッケージをユーザーがインストールしたとマークするか、またはマークをはずします。" + + #: dnf/cli/commands/mark.py:44 + msgid "" +@@ -1511,11 +1442,9 @@ msgstr "パッケージ %s はインストールされていません。" + + #: dnf/cli/commands/module.py:54 + msgid "" +-"Only module name, stream, architecture or profile is used. Ignoring unneeded " +-"information in argument: '{}'" +-msgstr "" +-"モジュール名、ストリーム、アーキテクチャーまたはプロファイルのみが使用されて" +-"います。引数: '{}' の不要な情報は無視します" ++"Only module name, stream, architecture or profile is used. Ignoring unneeded" ++" information in argument: '{}'" ++msgstr "モジュール名、ストリーム、アーキテクチャーまたはプロファイルのみが使用されています。引数: '{}' の不要な情報は無視します" + + #: dnf/cli/commands/module.py:80 + msgid "list all module streams, profiles and states" +@@ -1786,9 +1715,7 @@ msgstr "キーワードに一致するパッケージを検索します" + msgid "" + "Query all packages (shorthand for repoquery '*' or repoquery without " + "argument)" +-msgstr "" +-"すべてのパッケージをクエリーします (repoquery '*' の短縮形、または引数なしの " +-"repoquery)" ++msgstr "すべてのパッケージをクエリーします (repoquery '*' の短縮形、または引数なしの repoquery)" + + #: dnf/cli/commands/repoquery.py:124 + msgid "Query all versions of packages (default)" +@@ -1810,9 +1737,7 @@ msgstr "REQ と競合する結果のみを表示します" + msgid "" + "shows results that requires, suggests, supplements, enhances,or recommends " + "package provides and files REQ" +-msgstr "" +-"REQ を提供およびファイルするパッケージを必要、提案、補完、機能強化、または推" +-"奨する結果を表示します" ++msgstr "REQ を提供およびファイルするパッケージを必要、提案、補完、機能強化、または推奨する結果を表示します" + + #: dnf/cli/commands/repoquery.py:139 + msgid "show only results that obsolete REQ" +@@ -1854,9 +1779,7 @@ msgstr "指定されたとおりに依存関係を確認します。--alldeps + msgid "" + "used with --whatrequires, and --requires --resolve, query packages " + "recursively." +-msgstr "" +-"--whatrequires および --requires --resolve と共に使用し、パッケージを再帰的に" +-"クエリーします。" ++msgstr "--whatrequires および --requires --resolve と共に使用し、パッケージを再帰的にクエリーします。" + + #: dnf/cli/commands/repoquery.py:166 + msgid "show a list of all dependencies and what packages provide them" +@@ -1878,9 +1801,7 @@ msgstr "対応するソース RPM で操作します" + msgid "" + "show N latest packages for a given name.arch (or latest but N if N is " + "negative)" +-msgstr "" +-"特定の name.arch に最新パッケージ N を表示します (または N がネガティブな場合" +-"は N 以外の最新のもの)" ++msgstr "特定の name.arch に最新パッケージ N を表示します (または N がネガティブな場合は N 以外の最新のもの)" + + #: dnf/cli/commands/repoquery.py:177 + msgid "list also packages of inactive module streams" +@@ -1905,11 +1826,11 @@ msgstr "パッケージの changelogs を表示します" + #: dnf/cli/commands/repoquery.py:194 + #, python-format, python-brace-format + msgid "" +-"display format for listing packages: \"%%{name} %%{version} ...\", use --" +-"querytags to view full tag list" ++"display format for listing packages: \"%%{name} %%{version} ...\", use " ++"--querytags to view full tag list" + msgstr "" +-"パッケージを一覧表示するための形式の表示: \"%%{name} %%{version} ...\"。--" +-"querytags を指定して完全なタグリストを表示" ++"パッケージを一覧表示するための形式の表示: \"%%{name} %%{version} ...\"。--querytags " ++"を指定して完全なタグリストを表示" + + #: dnf/cli/commands/repoquery.py:198 + msgid "show available tags to use with --queryformat" +@@ -1920,24 +1841,19 @@ msgid "" + "use name-epoch:version-release.architecture format for displaying found " + "packages (default)" + msgstr "" +-"見つかったパッケージを表示するには name-epoch:version-release.architecture 形" +-"式を使用します (デフォルト)" ++"見つかったパッケージを表示するには name-epoch:version-release.architecture 形式を使用します (デフォルト)" + + #: dnf/cli/commands/repoquery.py:205 + msgid "" + "use name-version-release format for displaying found packages (rpm query " + "default)" +-msgstr "" +-"見つかったパッケージを表示するには name-version-release 形式を使用します " +-"(rpm クエリーデフォルト)" ++msgstr "見つかったパッケージを表示するには name-version-release 形式を使用します (rpm クエリーデフォルト)" + + #: dnf/cli/commands/repoquery.py:211 + msgid "" + "use epoch:name-version-release.architecture format for displaying found " + "packages" +-msgstr "" +-"見つかったパッケージを表示するには epoch:name-version-release.architecture 形" +-"式を使用します" ++msgstr "見つかったパッケージを表示するには epoch:name-version-release.architecture 形式を使用します" + + #: dnf/cli/commands/repoquery.py:214 + msgid "Display in which comps groups are presented selected packages" +@@ -1953,8 +1869,7 @@ msgstr "インストール済みの installonly パッケージへのクエリ + + #: dnf/cli/commands/repoquery.py:228 + msgid "limit the query to installed packages with unsatisfied dependencies" +-msgstr "" +-"未充足な依存関係があるインストール済みパッケージへのクエリーを制限します" ++msgstr "未充足な依存関係があるインストール済みパッケージへのクエリーを制限します" + + #: dnf/cli/commands/repoquery.py:230 + msgid "show a location from where packages can be downloaded" +@@ -1968,8 +1883,7 @@ msgstr "パッケージが競合する機能を表示します。" + msgid "" + "Display capabilities that the package can depend on, enhance, recommend, " + "suggest, and supplement." +-msgstr "" +-"パッケージが依存、機能強化、推奨、提案、および補完できる機能を表示します。" ++msgstr "パッケージが依存、機能強化、推奨、提案、および補完できる機能を表示します。" + + #: dnf/cli/commands/repoquery.py:236 + msgid "Display capabilities that the package can enhance." +@@ -1994,10 +1908,9 @@ msgid "" + "running %%pre and %%post scriptlets. If the package is installed display " + "capabilities that is depends for %%pre, %%post, %%preun and %%postun." + msgstr "" +-"このパッケージがインストールされていない場合、 %%pre と %%post スクリプトレッ" +-"ト実行に依存するケイパビリティを表示します。このパッケージがインストールされ" +-"ている場合、 %%pre, %%post, %%preun と %%postun に依存するケイパビリティを表" +-"示します。" ++"このパッケージがインストールされていない場合、 %%pre と %%post " ++"スクリプトレット実行に依存するケイパビリティを表示します。このパッケージがインストールされている場合、 %%pre, %%post, %%preun と" ++" %%postun に依存するケイパビリティを表示します。" + + #: dnf/cli/commands/repoquery.py:243 + msgid "Display capabilities that the package suggests." +@@ -2024,9 +1937,7 @@ msgstr "利用可能なリポジトリーに存在しないパッケージのみ + msgid "" + "Display only packages that provide an upgrade for some already installed " + "package." +-msgstr "" +-"インストール済みのパッケージの一部にアップグレードを提供するパッケージのみを" +-"表示します。" ++msgstr "インストール済みのパッケージの一部にアップグレードを提供するパッケージのみを表示します。" + + #: dnf/cli/commands/repoquery.py:256 + #, python-brace-format +@@ -2048,48 +1959,42 @@ msgstr "検索するための鍵" + + #: dnf/cli/commands/repoquery.py:295 + msgid "" +-"Option '--resolve' has to be used together with one of the '--conflicts', '--" +-"depends', '--enhances', '--provides', '--recommends', '--requires', '--" ++"Option '--resolve' has to be used together with one of the '--conflicts', '" ++"--depends', '--enhances', '--provides', '--recommends', '--requires', '--" + "requires-pre', '--suggests' or '--supplements' options" + msgstr "" +-"オプションの '--resolve' は、'--conflicts'、'--depends'、'--enhances'、'--" +-"provides'、'--recommends'、'--requires'、'--requires-pre'、'--suggests' また" +-"は '--supplements' オプションのいずれか 1 つと使用する必要があります" ++"オプションの '--resolve' は、'--conflicts'、'--depends'、'--enhances'、'--provides'、'--" ++"recommends'、'--requires'、'--requires-pre'、'--suggests' または '--supplements' " ++"オプションのいずれか 1 つと使用する必要があります" + + #: dnf/cli/commands/repoquery.py:305 + msgid "" + "Option '--recursive' has to be used with '--whatrequires ' (optionally " +-"with '--alldeps', but not with '--exactdeps'), or with '--requires --" +-"resolve'" ++"with '--alldeps', but not with '--exactdeps'), or with '--requires " ++"--resolve'" + msgstr "" +-"オプションの '--recursive' は、'--whatrequires ' (オプションでは '--" +-"exactdeps' ではなく、'--alldeps' と共に使用) または '--requires --" +-"resolve' と共に使用する必要があります" ++"オプションの '--recursive' は、'--whatrequires ' (オプションでは '--exactdeps' ではなく、'" ++"--alldeps' と共に使用) または '--requires --resolve' と共に使用する必要があります" + + #: dnf/cli/commands/repoquery.py:312 + msgid "argument {} requires --whatrequires or --whatdepends option" +-msgstr "" +-"引数 {} は --whatrequires または --whatdepends オプションを必要とします" ++msgstr "引数 {} は --whatrequires または --whatdepends オプションを必要とします" + + #: dnf/cli/commands/repoquery.py:344 + msgid "Package {} contains no files" + msgstr "パッケージ {} はファイルを含んでいません" + + #: dnf/cli/commands/repoquery.py:561 + #, python-brace-format + msgid "" + "No valid switch specified\n" +-"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" +-"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" +-"tree]\n" ++"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" + "\n" + "description:\n" + " For the given packages print a tree of thepackages." + msgstr "" + "正規のスイッチが特定されません\n" +-"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" +-"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" +-"tree]\n" ++"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" + "\n" + "説明:\n" + " 与えられたパッケージではパッケージのツリーを表示します。" +@@ -2129,7 +2034,8 @@ msgstr "説明" + msgid "URL" + msgstr "URL" + +-#. TRANSLATORS: separator used between package attributes (eg. Name & Summary & URL) ++#. TRANSLATORS: separator used between package attributes (eg. Name & Summary ++#. & URL) + #: dnf/cli/commands/search.py:76 + msgid " & " + msgstr " & " +@@ -2205,8 +2111,7 @@ msgid "" + " disable: disable repositories. option = repository id" + msgstr "" + "{} arg [オプション]\n" +-" 一覧: リポジトリーとその状態を一覧表示します。オプション = [all | id | " +-"glob]\n" ++" 一覧: リポジトリーとその状態を一覧表示します。オプション = [all | id | glob]\n" + " 有効化: リポジトリーの有効化。オプション = リポジトリー id\n" + " 無効化: リポジトリーの無効化。オプション = リポジトリー id" + +@@ -2264,8 +2169,7 @@ msgstr "" + "ヘルプ ヘルプの印刷\n" + "リポジトリー (または repo) リポジトリーの有効化、無効化、または一覧表示\n" + "resolvedep トランザクションセットの解決\n" +-"トランザクション (または ts) トランザクションセットの一覧表示、再設定、" +-"または実行\n" ++"トランザクション (または ts) トランザクションセットの一覧表示、再設定、または実行\n" + "実行 トランザクションセットの解決および実行\n" + "終了 (または 中止) シェルの終了" + +@@ -2285,9 +2189,7 @@ msgstr "シェルを終了します" + #: dnf/cli/commands/swap.py:35 + #, python-brace-format + msgid "run an interactive {prog} mod for remove and install one spec" +-msgstr "" +-"一つのspecを削除またはインストールするためインタラクティブ {prog} モジュール" +-"を実行" ++msgstr "一つのspecを削除またはインストールするためインタラクティブ {prog} モジュールを実行" + + #: dnf/cli/commands/swap.py:40 + msgid "The specs that will be removed" +@@ -2339,16 +2241,13 @@ msgstr "インストール済みパッケージの新しいバージョンに関 + + #: dnf/cli/commands/updateinfo.py:80 + msgid "advisories about equal and older versions of installed packages" +-msgstr "" +-"インストール済みパッケージの同じバージョンおよび古いバージョンに関する勧告" ++msgstr "インストール済みパッケージの同じバージョンおよび古いバージョンに関する勧告" + + #: dnf/cli/commands/updateinfo.py:83 + msgid "" + "advisories about newer versions of those installed packages for which a " + "newer version is available" +-msgstr "" +-"最新バージョンが利用可能なインストール済みパッケージの最新バージョンに関する" +-"勧告" ++msgstr "最新バージョンが利用可能なインストール済みパッケージの最新バージョンに関する勧告" + + #: dnf/cli/commands/updateinfo.py:87 + msgid "advisories about any versions of installed packages" +@@ -2489,20 +2388,17 @@ msgstr "正" + + #: dnf/cli/commands/upgrade.py:40 + msgid "upgrade a package or packages on your system" +-msgstr "" +-"システム上の 1 つのパッケージまたは複数のパッケージをアップグレードします" ++msgstr "システム上の 1 つのパッケージまたは複数のパッケージをアップグレードします" + + #: dnf/cli/commands/upgrade.py:44 + msgid "Package to upgrade" + msgstr "アップグレードするパッケージ" + + #: dnf/cli/commands/upgrademinimal.py:31 + msgid "" + "upgrade, but only 'newest' package match which fixes a problem that affects " + "your system" +-msgstr "" +-"システムに影響する問題を修正する「最新の」パッケージに一致したもののみをアッ" +-"プグレードします" ++msgstr "システムに影響する問題を修正する「最新の」パッケージに一致したもののみをアップグレードします" + + #: dnf/cli/main.py:88 + msgid "Terminated." +@@ -2514,29 +2410,23 @@ msgstr "現在のディレクトリーには読み取り/実行権限があり + + #: dnf/cli/main.py:135 + msgid "try to add '{}' to command line to replace conflicting packages" +-msgstr "" +-"競合するパッケージを置き換えるには、コマンドラインに '{}' を追加してみてくだ" +-"さい" ++msgstr "競合するパッケージを置き換えるには、コマンドラインに '{}' を追加してみてください" + + #: dnf/cli/main.py:139 + msgid "try to add '{}' to skip uninstallable packages" +-msgstr "" +-"インストール不可のパッケージをスキップするには、'{}' を追加してみてください" ++msgstr "インストール不可のパッケージをスキップするには、'{}' を追加してみてください" + + #: dnf/cli/main.py:142 + msgid " or '{}' to skip uninstallable packages" +-msgstr "" +-" または、'{}' を追加して、インストール不可のパッケージをスキップしてください" ++msgstr " または、'{}' を追加して、インストール不可のパッケージをスキップしてください" + + #: dnf/cli/main.py:147 + msgid "try to add '{}' to use not only best candidate packages" +-msgstr "" +-"最適候補のパッケージのみを使用しないためには、'{}' を追加してみてください" ++msgstr "最適候補のパッケージのみを使用しないためには、'{}' を追加してみてください" + + #: dnf/cli/main.py:150 + msgid " or '{}' to use not only best candidate packages" +-msgstr "" +-" または、'{}' を追加して、最適候補のパッケージのみを使用しないでください" ++msgstr " または、'{}' を追加して、最適候補のパッケージのみを使用しないでください" + + #: dnf/cli/main.py:167 + msgid "Dependencies resolved." +@@ -2628,9 +2518,7 @@ msgstr "依存関係を解決するために、インストール済みパッケ + + #: dnf/cli/option_parser.py:221 + msgid "try the best available package versions in transactions." +-msgstr "" +-"トランザクションにおいて利用可能な最適なパッケージバージョンを試してくださ" +-"い。" ++msgstr "トランザクションにおいて利用可能な最適なパッケージバージョンを試してください。" + + #: dnf/cli/option_parser.py:223 + msgid "do not limit the transaction to the best candidate" +@@ -2666,8 +2554,8 @@ msgid "" + "enables {prog}'s obsoletes processing logic for upgrade or display " + "capabilities that the package obsoletes for info, list and repoquery" + msgstr "" +-"アップグレードまたは、info, list, repoquery で旧パッケージのケイパビリティを" +-"表示するため、 {prog} の旧プロセスロジックを有効化" ++"アップグレードまたは、info, list, repoquery で旧パッケージのケイパビリティを表示するため、 {prog} " ++"の旧プロセスロジックを有効化" + + #: dnf/cli/option_parser.py:251 + msgid "debugging output level for rpm" +@@ -2685,25 +2573,19 @@ msgstr "すべての質問に「いいえ」(no) と自動的に答えます" + msgid "" + "Enable additional repositories. List option. Supports globs, can be " + "specified multiple times." +-msgstr "" +-"追加レポジトリを有効化、オプションのリスト、globsのサポートは何度でも指定可能" +-"です。" ++msgstr "追加レポジトリを有効化、オプションのリスト、globsのサポートは何度でも指定可能です。" + + #: dnf/cli/option_parser.py:266 + msgid "" +-"Disable repositories. List option. Supports globs, can be specified multiple " +-"times." +-msgstr "" +-"追加レポジトリを無効化、オプションのリスト、globsのサポートは何度でも指定可能" +-"です。" ++"Disable repositories. List option. Supports globs, can be specified multiple" ++" times." ++msgstr "追加レポジトリを無効化、オプションのリスト、globsのサポートは何度でも指定可能です。" + + #: dnf/cli/option_parser.py:270 + msgid "" + "enable just specific repositories by an id or a glob, can be specified " + "multiple times" +-msgstr "" +-"id または glob により特定のリポジトリーだけを有効にします。複数回指定すること" +-"が可能です" ++msgstr "id または glob により特定のリポジトリーだけを有効にします。複数回指定することが可能です" + + #: dnf/cli/option_parser.py:275 + msgid "enable repos with config-manager command (automatically saves)" +@@ -2725,9 +2607,7 @@ msgstr "excludepkgs を無効にします" + msgid "" + "label and path to an additional repository to use (same path as in a " + "baseurl), can be specified multiple times." +-msgstr "" +-"利用する追加レポジトリ(baseurlと同じパス)のラベルとパスは何度でも指定可能で" +-"す。" ++msgstr "利用する追加レポジトリ(baseurlと同じパス)のラベルとパスは何度でも指定可能です。" + + #: dnf/cli/option_parser.py:297 + msgid "disable removal of dependencies that are no longer used" +@@ -3737,9 +3617,7 @@ msgstr "%s から暗号化されていない %s の repo キーを取得して + msgid "" + "No available modular metadata for modular package '{}', it cannot be " + "installed on the system" +-msgstr "" +-"モジュールのパッケージ '{}' のモジュールメタデータが利用不可です、システムに" +-"インストールできません" ++msgstr "モジュールのパッケージ '{}' のモジュールメタデータが利用不可です、システムにインストールできません" + + #: dnf/db/group.py:359 + #, python-format +@@ -3758,8 +3636,7 @@ msgstr "ソース rpm パッケージ (%s) をインストールしません。" + #: dnf/dnssec.py:168 + msgid "" + "Configuration option 'gpgkey_dns_verification' requires python3-unbound ({})" +-msgstr "" +-"設定オプション 'gpgkey_dns_verification' は python3-unbound ({}) が必要です" ++msgstr "設定オプション 'gpgkey_dns_verification' は python3-unbound ({}) が必要です" + + #: dnf/dnssec.py:239 + msgid "DNSSEC extension: Key for user " +@@ -3832,12 +3709,10 @@ msgstr[0] "モジュールの依存関係問題:" + #, python-format + msgid "" + "Malformed lock file found: %s.\n" +-"Ensure no other dnf/yum process is running and remove the lock file manually " +-"or run systemd-tmpfiles --remove dnf.conf." ++"Ensure no other dnf/yum process is running and remove the lock file manually or run systemd-tmpfiles --remove dnf.conf." + msgstr "" + "不正な形式のロックファイル: %s 。\n" +-"他のdnf/yum プロセスが実行されていないことを確認し、ロックファイルを手動削除" +-"するかsystemd-tmpfiles --remove dnf.conf を実行してください。" ++"他のdnf/yum プロセスが実行されていないことを確認し、ロックファイルを手動削除するかsystemd-tmpfiles --remove dnf.conf を実行してください。" + + #: dnf/module/__init__.py:26 + msgid "Enabling different stream for '{}'." +@@ -3849,17 +3724,15 @@ msgstr "表示するものがありません。" + + #: dnf/module/__init__.py:28 + msgid "Installing newer version of '{}' than specified. Reason: {}" +-msgstr "" +-"指定されたものよりも新しいバージョンの '{}' をインストールします。理由: {}" ++msgstr "指定されたものよりも新しいバージョンの '{}' をインストールします。理由: {}" + + #: dnf/module/__init__.py:29 + msgid "Enabled modules: {}." + msgstr "有効なモジュール: {}." + + #: dnf/module/__init__.py:30 + msgid "No profile specified for '{}', please specify profile." +-msgstr "" +-"'{}' に指定したプロファイルはありません。プロファイルを指定してください。" ++msgstr "'{}' に指定したプロファイルはありません。プロファイルを指定してください。" + + #: dnf/module/exceptions.py:27 + msgid "No such module: {}" +@@ -3895,8 +3768,7 @@ msgstr "'{}' に指定したストリームはありません。ストリーム + + #: dnf/module/exceptions.py:82 + msgid "No such profile: {}. No profiles available" +-msgstr "" +-"次のようなプロファイルはありません: {}。利用できるプロファイルはありません" ++msgstr "次のようなプロファイルはありません: {}。利用できるプロファイルはありません" + + #: dnf/module/exceptions.py:88 + msgid "No profile to remove for '{}'" +@@ -3930,31 +3802,25 @@ msgstr "不要なプロファイルを無視します: '{}/{}'" + #: dnf/module/module_base.py:86 + #, python-brace-format + msgid "All matches for argument '{0}' in module '{1}:{2}' are not active" +-msgstr "" +-"モジュール '{1}:{2}' の引数 '{0}' に一致するものはすべて非アクティブです" ++msgstr "モジュール '{1}:{2}' の引数 '{0}' に一致するものはすべて非アクティブです" + + #: dnf/module/module_base.py:94 dnf/module/module_base.py:204 + #, python-brace-format + msgid "Installing module '{0}' from Fail-Safe repository {1} is not allowed" +-msgstr "" +-"フェイルセーフレポジトリー {1} からのモジュール '{0}' インストールは許可され" +-"ていません" ++msgstr "フェイルセーフレポジトリー {1} からのモジュール '{0}' インストールは許可されていません" + + #: dnf/module/module_base.py:104 dnf/module/module_base.py:214 + msgid "" + "Unable to match profile for argument {}. Available profiles for '{}:{}': {}" +-msgstr "" +-"引数 {} でプロファイルが見つかりません。利用可能プロファイル '{}:{}': {}" ++msgstr "引数 {} でプロファイルが見つかりません。利用可能プロファイル '{}:{}': {}" + + #: dnf/module/module_base.py:108 dnf/module/module_base.py:218 + msgid "Unable to match profile for argument {}" + msgstr "引数 {} に一致するプロファイルが見つかりません" + + #: dnf/module/module_base.py:120 + msgid "No default profiles for module {}:{}. Available profiles: {}" +-msgstr "" +-"モジュール {}:{} にデフォルトのプロファイルがありません。利用可能プロファイ" +-"ル: {}" ++msgstr "モジュール {}:{} にデフォルトのプロファイルがありません。利用可能プロファイル: {}" + + #: dnf/module/module_base.py:124 + msgid "No profiles for module {}:{}" +@@ -3966,20 +3832,17 @@ msgstr "デフォルトのプロファイル {} はモジュール {}:{} で利 + + #: dnf/module/module_base.py:144 dnf/module/module_base.py:247 + msgid "Installing module from Fail-Safe repository is not allowed" +-msgstr "" +-"フェイルセーフレポジトリーからのモジュールインストールは許可されていません" ++msgstr "フェイルセーフレポジトリーからのモジュールインストールは許可されていません" + + #: dnf/module/module_base.py:196 + #, python-brace-format + msgid "No active matches for argument '{0}' in module '{1}:{2}'" + msgstr "モジュール '{1}:{2}' の引数 '{0}' には、アクティブな一致がありません" + + #: dnf/module/module_base.py:228 + #, python-brace-format + msgid "Installed profile '{0}' is not available in module '{1}' stream '{2}'" +-msgstr "" +-"インストールされたプロファイル '{0}' は、モジュール '{1}' ストリーム '{2}' で" +-"は利用できません" ++msgstr "インストールされたプロファイル '{0}' は、モジュール '{1}' ストリーム '{2}' では利用できません" + + #: dnf/module/module_base.py:267 + msgid "No packages available to distrosync for package name '{}'" +@@ -3995,32 +3858,29 @@ msgstr "引数 {} を解決できません" + #: dnf/module/module_base.py:321 + #, python-brace-format + msgid "Upgrading module '{0}' from Fail-Safe repository {1} is not allowed" +-msgstr "" +-"フェイルセーフレポジトリー {1} からのモジュール '{0}' アップグレードは許可さ" +-"れていません" ++msgstr "フェイルセーフレポジトリー {1} からのモジュール '{0}' アップグレードは許可されていません" + + #: dnf/module/module_base.py:340 dnf/module/module_base.py:368 + msgid "Unable to match profile in argument {}" + msgstr "引数 {} でプロファイルを一致できません" + + #: dnf/module/module_base.py:348 + msgid "Upgrading module from Fail-Safe repository is not allowed" +-msgstr "" +-"フェイルセーフレポジトリーからのモジュールアップグレードは許可されていません" ++msgstr "フェイルセーフレポジトリーからのモジュールアップグレードは許可されていません" + + #: dnf/module/module_base.py:422 + #, python-brace-format + msgid "" +-"Argument '{argument}' matches {stream_count} streams ('{streams}') of module " +-"'{module}', but none of the streams are enabled or default" ++"Argument '{argument}' matches {stream_count} streams ('{streams}') of module" ++" '{module}', but none of the streams are enabled or default" + msgstr "" +-"引数 '{argument}' は、モジュール '{module}' の {stream_count} ストリーム " +-"('{streams}' と一致しますが、有効化されている、あるいはデフォルトのストリーム" +-"はありません" ++"引数 '{argument}' は、モジュール '{module}' の {stream_count} ストリーム ('{streams}' " ++"と一致しますが、有効化されている、あるいはデフォルトのストリームはありません" + + #: dnf/module/module_base.py:509 + msgid "" +-"Only module name is required. Ignoring unneeded information in argument: '{}'" ++"Only module name is required. Ignoring unneeded information in argument: " ++"'{}'" + msgstr "モジュール名のみが必要です。引数で不必要な情報を無視します: '{}'" + + #: dnf/module/module_base.py:841 +@@ -4113,8 +3973,8 @@ msgid "" + "allow_vendor_change is disabled. This option is currently not supported for " + "downgrade and distro-sync commands" + msgstr "" +-"allow_vendor_change は無効になっています。このオプションは、downgrade コマン" +-"ドおよび distro-sync コマンドではサポートされていません" ++"allow_vendor_change は無効になっています。このオプションは、downgrade コマンドおよび distro-sync " ++"コマンドではサポートされていません" + + #. TRANSLATORS: This is for a single package currently being downgraded. + #: dnf/transaction.py:80 +@@ -4142,34 +4002,32 @@ msgstr "再インストール中" + #. TODO: 'Removing'? + #: dnf/transaction.py:90 + msgid "Erasing" +-msgstr "削除" ++msgstr "削除中" + + #. TRANSLATORS: This is for a single package currently being upgraded. + #: dnf/transaction.py:92 + msgctxt "currently" + msgid "Upgrading" + msgstr "アップグレード中" + + #: dnf/transaction.py:96 + msgid "Verifying" +-msgstr "検証" ++msgstr "検証中" + + #: dnf/transaction.py:97 + msgid "Running scriptlet" + msgstr "scriptletの実行中" + + #: dnf/transaction.py:99 + msgid "Preparing" +-msgstr "準備" ++msgstr "準備中" + + #: dnf/transaction_sr.py:66 + #, python-brace-format + msgid "" + "The following problems occurred while replaying the transaction from file " + "\"{filename}\":" +-msgstr "" +-"ファイル \"{filename}\" からのトランザクションの再生中に以下の問題が発生しま" +-"した:" ++msgstr "ファイル \"{filename}\" からのトランザクションの再生中に以下の問題が発生しました:" + + #: dnf/transaction_sr.py:68 + msgid "The following problems occurred while running a transaction:" +@@ -4190,9 +4048,7 @@ msgstr "無効なマイナーバージョン \"{minor}\"。数字が必要です + msgid "" + "Incompatible major version \"{major}\", supported major version is " + "\"{major_supp}\"." +-msgstr "" +-"互換性のないメジャーバージョン \"{major}\"。サポートされているメジャーバー" +-"ジョンは \"{major_supp}\" です。" ++msgstr "互換性のないメジャーバージョン \"{major}\"。サポートされているメジャーバージョンは \"{major_supp}\" です。" + + #: dnf/transaction_sr.py:224 + msgid "" +@@ -4216,8 +4072,7 @@ msgstr "オブジェクトキー \"{key}\" が rpm にありません。" + + #: dnf/transaction_sr.py:289 + #, python-brace-format +-msgid "" +-"Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." ++msgid "Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." + msgstr "rpm nevra \"{nevra}\" の予期しないパッケージ理由 \"{reason}\" の値。" + + #: dnf/transaction_sr.py:297 +@@ -4233,32 +4088,24 @@ msgstr "rpm nevra \"{nevra}\" を見つけることはできません。" + #: dnf/transaction_sr.py:336 + #, python-brace-format + msgid "Package \"{na}\" is already installed for action \"{action}\"." +-msgstr "" +-"パッケージ \"{na}\" は、アクション \"{action}\" 用に既にインストールされてい" +-"ます。" ++msgstr "パッケージ \"{na}\" は、アクション \"{action}\" 用に既にインストールされています。" + + #: dnf/transaction_sr.py:345 + #, python-brace-format + msgid "" + "Package nevra \"{nevra}\" not available in repositories for action " + "\"{action}\"." +-msgstr "" +-"アクション \"{action}\" に利用できる パッケージ nevra \"{nevra}\" はレポジト" +-"リーにありません。" ++msgstr "アクション \"{action}\" に利用できる パッケージ nevra \"{nevra}\" はレポジトリーにありません。" + + #: dnf/transaction_sr.py:356 + #, python-brace-format + msgid "Package nevra \"{nevra}\" not installed for action \"{action}\"." +-msgstr "" +-"アクション \"{action}\" には、パッケージ nevra \"{nevra}\" インストールされて" +-"いません。" ++msgstr "アクション \"{action}\" には、パッケージ nevra \"{nevra}\" インストールされていません。" + + #: dnf/transaction_sr.py:370 + #, python-brace-format +-msgid "" +-"Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." +-msgstr "" +-"rpm nevra \"{nevra}\" の、パッケージアクション \"{action}\" の予期しない値。" ++msgid "Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." ++msgstr "rpm nevra \"{nevra}\" の、パッケージアクション \"{action}\" の予期しない値。" + + #: dnf/transaction_sr.py:377 + #, python-format +@@ -4287,30 +4134,27 @@ msgid "" + "Invalid value \"{group_type}\" of environments.groups.group_type, only " + "\"mandatory\" or \"optional\" is supported." + msgstr "" +-"environments.groups.group_type の無効な値 \"{group_type}\"。\"mandatory\" ま" +-"たは \"optional\" のみに対応しています。" ++"environments.groups.group_type の無効な値 \"{group_type}\"。\"mandatory\" または " ++"\"optional\" のみに対応しています。" + + #: dnf/transaction_sr.py:474 + #, python-brace-format + msgid "Missing object key \"{key}\" in environments.groups." + msgstr "オブジェクトキー \"{key}\" が environments.groups に含まれません。" + + #: dnf/transaction_sr.py:566 + #, python-brace-format + msgid "Unexpected value of group action \"{action}\" for group \"{group}\"." +-msgstr "" +-"グループ \"{group}\" の グループアクション \"{action}\" の予期しない値。" ++msgstr "グループ \"{group}\" の グループアクション \"{action}\" の予期しない値。" + + #: dnf/transaction_sr.py:571 + #, python-brace-format + msgid "Missing object key \"{key}\" in a group." + msgstr "オブジェクトキー \"{key}\" がグループ内にありません。" + + #: dnf/transaction_sr.py:599 + #, python-brace-format +-msgid "" +-"Unexpected value of environment action \"{action}\" for environment " +-"\"{env}\"." ++msgid "Unexpected value of environment action \"{action}\" for environment \"{env}\"." + msgstr "環境 \"{env}\" の環境アクション \"{action}\" の予期しない値。" + + #: dnf/transaction_sr.py:604 +@@ -4321,11 +4165,9 @@ msgstr "オブジェクトキー \"{key}\" が環境にありません。" + #: dnf/transaction_sr.py:643 + #, python-brace-format + msgid "" +-"Package nevra \"{nevra}\", which is not present in the transaction file, was " +-"pulled into the transaction." +-msgstr "" +-"トランザクションファイルに存在しないパッケージ nevra \"{nevra}\" がトランザク" +-"ションにプルされていました。" ++"Package nevra \"{nevra}\", which is not present in the transaction file, was" ++" pulled into the transaction." ++msgstr "トランザクションファイルに存在しないパッケージ nevra \"{nevra}\" がトランザクションにプルされていました。" + + # translation auto-copied from project jbpm-designer, version 6.0.1, document + # org.jbpm/jbpm-designer- +@@ -4372,9 +4214,7 @@ msgstr "失敗しました" + #~ msgid "" + #~ "Using rpmkeys executable from {path} to verify signature for package: " + #~ "{package}." +-#~ msgstr "" +-#~ "{path} から実行可能ファイル rpmkeys を使用して、パッケージの署名を検証しま" +-#~ "す: {package}。" ++#~ msgstr "{path} から実行可能ファイル rpmkeys を使用して、パッケージの署名を検証します: {package}。" + + #~ msgid "%s: %s check failed: %s vs %s" + #~ msgstr "%s: %s の確認に失敗しました: %s vs %s" +@@ -4399,9 +4239,3 @@ msgstr "失敗しました" + + #~ msgid "Bad transaction IDs, or package(s), given" + #~ msgstr "不正なトランザクション ID、またはパッケージが指定されました" +- +-#~ msgid "" +-#~ "Display capabilities that the package depends on for running a %%pre " +-#~ "script." +-#~ msgstr "" +-#~ "%%pre スクリプトを実行するためにパッケージが依存する機能を表示します。" +-- +libgit2 1.6.4 + diff --git a/SOURCES/0047-RHEL-11786-Fix-substitution-in-kvp-in-add_new_repo.patch b/SOURCES/0047-RHEL-11786-Fix-substitution-in-kvp-in-add_new_repo.patch new file mode 100644 index 0000000..3fb33f2 --- /dev/null +++ b/SOURCES/0047-RHEL-11786-Fix-substitution-in-kvp-in-add_new_repo.patch @@ -0,0 +1,53 @@ +From 8bc3b7a217de41c0a9bc52cd9cac50cde9e9ee65 Mon Sep 17 00:00:00 2001 +From: Anish Bhatt +Date: Mon, 10 Jul 2023 10:09:17 -0700 +Subject: [PATCH] When parsing over a KVP list, do not return till the whole + list is parsed + +--- + dnf/repodict.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/dnf/repodict.py b/dnf/repodict.py +index ffa0f8ed..82c05ac0 100644 +--- a/dnf/repodict.py ++++ b/dnf/repodict.py +@@ -79,8 +79,8 @@ class RepoDict(dict): + if isinstance(value, str): + substituted.append( + libdnf.conf.ConfigParser.substitute(value, conf.substitutions)) +- if substituted: +- return substituted ++ if substituted: ++ return substituted + return values + + repo = dnf.repo.Repo(repoid, conf) +-- +2.41.0 + + +From 89c6f3633f55acd31d44a487ce76dd89c12d795c Mon Sep 17 00:00:00 2001 +From: Anish Bhatt +Date: Mon, 10 Jul 2023 10:10:30 -0700 +Subject: [PATCH] Add to authors + +--- + AUTHORS | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/AUTHORS b/AUTHORS +index 0077c7ea..eb1e0121 100644 +--- a/AUTHORS ++++ b/AUTHORS +@@ -63,6 +63,7 @@ DNF CONTRIBUTORS + Adam Williamson + Albert Uchytil + Alberto Ruiz ++ Anish Bhatt + Baurzhan Muftakhidinov + Christopher Meng + Daniel Mach +-- +2.41.0 + diff --git a/SPECS/dnf.spec b/SPECS/dnf.spec index ce6b095..3aa743c 100644 --- a/SPECS/dnf.spec +++ b/SPECS/dnf.spec @@ -66,7 +66,7 @@ It supports RPMs, modules and comps groups & environments. Name: dnf Version: 4.7.0 -Release: 19%{?dist} +Release: 20%{?dist} Summary: %{pkg_summary} # For a breakdown of the licensing, see PACKAGE-LICENSING License: GPLv2+ @@ -120,6 +120,9 @@ Patch0041: 0041-Omit-src-RPMs-from-check-update-RhBug-2151910.patch Patch0042: 0042-Backport-automatic-Fix-onl-detect-proxy-RhBz2022440.patch Patch0043: 0043-automatic-Return-an-error-when-transaction-fails-RhB.patch Patch0044: 0044-Document-symbols-in-dnf-history-list-output.patch +Patch0045: 0045-RHEL-1245-Remove-usrbin-from-syspath-noimpor-garbage.patch +Patch0046: 0046-RHEL-6393-Fix-japanese-translations.patch +Patch0047: 0047-RHEL-11786-Fix-substitution-in-kvp-in-add_new_repo.patch BuildArch: noarch @@ -420,6 +423,11 @@ popd %{python3_sitelib}/%{name}/automatic/ %changelog +* Mon Oct 16 2023 Jaroslav Rohel - 4.7.0-20 +- Remove /usr/bin from sys.path to avoid accidentally importing garbage (RHEL-1245) +- Fix japanese translations (RHEL-6393) +- Fix substitution in kay-value-pair list in add_new_repo (RHEL-11786) + * Wed Jun 28 2023 Jaroslav Rohel - 4.7.0-19 - Document symbols in `dnf history list` output (RhBug:2172067)