import oscap-anaconda-addon-2.0.0-16.el9

This commit is contained in:
CentOS Sources 2023-05-09 05:29:31 +00:00 committed by Stepan Oksanichenko
parent ef78fc2521
commit b45fd1170c
6 changed files with 1035 additions and 104 deletions

View File

@ -1,6 +1,6 @@
diff -U3 -N -r a/po/ca.po b/po/ca.po
--- a/po/ca.po 2021-07-02 17:17:04.000000000 +0200
+++ b/po/ca.po 2022-05-18 11:49:17.450848875 +0200
+++ b/po/ca.po 2023-02-08 14:41:10.534059221 +0100
@@ -9,7 +9,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
@ -364,7 +364,7 @@ diff -U3 -N -r a/po/ca.po b/po/ca.po
#: tmp/oscap.glade.h:2
diff -U3 -N -r a/po/cs.po b/po/cs.po
--- a/po/cs.po 2021-07-02 17:17:04.000000000 +0200
+++ b/po/cs.po 2022-05-18 11:49:17.450848875 +0200
+++ b/po/cs.po 2023-02-08 14:41:10.534059221 +0100
@@ -12,11 +12,11 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
@ -747,7 +747,7 @@ diff -U3 -N -r a/po/cs.po b/po/cs.po
#~ "%s\n"
diff -U3 -N -r a/po/de.po b/po/de.po
--- a/po/de.po 2021-07-02 17:17:04.000000000 +0200
+++ b/po/de.po 2022-05-18 11:49:17.450848875 +0200
+++ b/po/de.po 2023-02-08 14:41:10.534059221 +0100
@@ -3,23 +3,24 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
@ -757,10 +757,10 @@ diff -U3 -N -r a/po/de.po b/po/de.po
-"Last-Translator: Ludek Janda <ljanda@redhat.com>\n"
-"Language-Team: German\n"
+"POT-Creation-Date: 2021-07-02 15:52+0200\n"
+"PO-Revision-Date: 2021-12-28 22:16+0000\n"
+"PO-Revision-Date: 2022-12-24 15:19+0000\n"
+"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
+"Language-Team: German <https://translate.fedoraproject.org/projects/oscap-"
+"anaconda-addon/rhel9-branch/de/>\n"
+"Language-Team: German <https://translate.fedoraproject.org/projects/"
+"oscap-anaconda-addon/rhel9-branch/de/>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -768,7 +768,7 @@ diff -U3 -N -r a/po/de.po b/po/de.po
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-"X-Generator: Zanata 4.6.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.10.1\n"
+"X-Generator: Weblate 4.15\n"
-#: ../org_fedora_oscap/common.py:326
+#: ../org_fedora_oscap/common.py:358
@ -1135,9 +1135,22 @@ diff -U3 -N -r a/po/de.po b/po/de.po
#: tmp/oscap.glade.h:2
msgid "_Change content"
@@ -327,12 +346,10 @@
msgstr "Wählen Sie unten ein Profil:"
#: tmp/oscap.glade.h:7
-#, fuzzy
msgid "Profile"
msgstr "Profil"
#: tmp/oscap.glade.h:8
-#, fuzzy
msgid "Selected"
msgstr "Ausgewählt"
diff -U3 -N -r a/po/es.po b/po/es.po
--- a/po/es.po 2021-07-02 17:17:04.000000000 +0200
+++ b/po/es.po 2022-05-18 11:49:17.450848875 +0200
+++ b/po/es.po 2023-02-08 14:41:10.534059221 +0100
@@ -13,7 +13,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
@ -1503,19 +1516,18 @@ diff -U3 -N -r a/po/es.po b/po/es.po
#: tmp/oscap.glade.h:2
diff -U3 -N -r a/po/fi.po b/po/fi.po
--- a/po/fi.po 2021-07-02 17:17:04.000000000 +0200
+++ b/po/fi.po 2022-05-18 11:49:17.451932208 +0200
+++ b/po/fi.po 2023-02-08 14:41:10.534059221 +0100
@@ -6,41 +6,44 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-21 11:51+0200\n"
-"PO-Revision-Date: 2021-06-04 11:03+0000\n"
-"Last-Translator: Ricky Tigg <ricky.tigg@gmail.com>\n"
+"POT-Creation-Date: 2021-07-02 15:52+0200\n"
+"PO-Revision-Date: 2022-11-10 17:19+0000\n"
"Last-Translator: Ricky Tigg <ricky.tigg@gmail.com>\n"
-"Language-Team: Finnish <https://translate.fedoraproject.org/projects/oscap-"
-"anaconda-addon/rhel8-branch/fi/>\n"
+"POT-Creation-Date: 2021-07-02 15:52+0200\n"
+"PO-Revision-Date: 2022-05-07 06:18+0000\n"
+"Last-Translator: Jan Kuparinen <copper_fin@hotmail.com>\n"
+"Language-Team: Finnish <https://translate.fedoraproject.org/projects/"
+"oscap-anaconda-addon/rhel9-branch/fi/>\n"
"Language: fi\n"
@ -1524,7 +1536,7 @@ diff -U3 -N -r a/po/fi.po b/po/fi.po
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.6.2\n"
+"X-Generator: Weblate 4.12.1\n"
+"X-Generator: Weblate 4.14.2\n"
-#: ../org_fedora_oscap/common.py:326
+#: ../org_fedora_oscap/common.py:358
@ -1563,7 +1575,7 @@ diff -U3 -N -r a/po/fi.po b/po/fi.po
#, python-brace-format
msgid ""
"{0} must be on a separate partition or logical volume and has to be created "
@@ -52,24 +55,24 @@
@@ -52,24 +55,25 @@
"turvallisuusprofiilin kanssa"
#. template for the message
@ -1572,7 +1584,9 @@ diff -U3 -N -r a/po/fi.po b/po/fi.po
#, python-format
msgid ""
"mount option '%(mount_option)s' added for the mount point %(mount_point)s"
msgstr "Liitoskohta '%(mount_option)s' lisätty liitoskohtaan %(mount_point)s"
-msgstr "Liitoskohta '%(mount_option)s' lisätty liitoskohtaan %(mount_point)s"
+msgstr ""
+"Liitosvaihtoehto '%(mount_option)s' lisätty liitospisteeseen %(mount_point)s"
#. root password was not set
-#: ../org_fedora_oscap/rule_handling.py:554
@ -1592,7 +1606,7 @@ diff -U3 -N -r a/po/fi.po b/po/fi.po
#, python-format
msgid ""
"root password is too short, a longer one with at least %d characters is "
@@ -78,13 +81,13 @@
@@ -78,13 +82,13 @@
"rootin salasana on liian lyhyt, tarvitaan pidempi salasana, jossa on "
"vähintään %d merkkiä"
@ -1609,7 +1623,7 @@ diff -U3 -N -r a/po/fi.po b/po/fi.po
#, python-brace-format
msgid ""
"package '{package}' has been added to the list of excluded packages, but it "
@@ -94,53 +97,53 @@
@@ -94,53 +98,53 @@
"paketti '{package}' on lisätty poissuljettujen pakettien luetteloon, mutta "
"sitä ei voida poistaa nykyisestä ohjelmistovalinnasta rikkomatta asennusta."
@ -1677,7 +1691,7 @@ diff -U3 -N -r a/po/fi.po b/po/fi.po
#, python-format
msgid ""
"service '%s' has been added to the list of services to be removed from the "
@@ -148,73 +151,78 @@
@@ -148,73 +152,78 @@
msgstr ""
"palvelu '%s' on lisätty palomuurista poistettavien palvelujen luetteloon"
@ -1712,14 +1726,14 @@ diff -U3 -N -r a/po/fi.po b/po/fi.po
msgid "There was an unexpected problem with the supplied content."
-msgstr ""
+msgstr "Toimitetun sisällön kohdalla oli odottamaton ongelma."
+
+#: ../org_fedora_oscap/service/installation.py:56
+msgid "The installation should be aborted."
+msgstr "Asennus pitäisi keskeyttää."
-#: ../org_fedora_oscap/ks/oscap.py:462
-#, fuzzy
-#| msgid "Misconfiguration detected"
+#: ../org_fedora_oscap/service/installation.py:56
+msgid "The installation should be aborted."
+msgstr "Asennus pitäisi keskeyttää."
+
+#: ../org_fedora_oscap/service/installation.py:148
msgid "Wrong configuration detected!"
-msgstr "Virheellinen määritys havaittu"
@ -1790,7 +1804,7 @@ diff -U3 -N -r a/po/fi.po b/po/fi.po
msgid ""
"Network error encountered when fetching data. Please check that network is "
"setup and working."
@@ -222,16 +230,16 @@
@@ -222,16 +231,16 @@
"Verkkovirhe kohdattu tietoja noudettaessa. Tarkista, että verkko on "
"määritetty ja toimii."
@ -1810,7 +1824,7 @@ diff -U3 -N -r a/po/fi.po b/po/fi.po
#, python-format
msgid ""
"Profile with ID '%s' not defined in the content. Select a different profile, "
@@ -240,52 +248,52 @@
@@ -240,52 +249,52 @@
"Profiilia, jonka tunnus on '%s', ei ole määritelty sisällössä. Valitse "
"toinen profiili"
@ -1877,7 +1891,7 @@ diff -U3 -N -r a/po/fi.po b/po/fi.po
#: tmp/oscap.glade.h:2
msgid "_Change content"
@@ -331,6 +339,9 @@
@@ -331,6 +340,9 @@
msgid "_Fetch"
msgstr "_Nouda"
@ -1889,7 +1903,7 @@ diff -U3 -N -r a/po/fi.po b/po/fi.po
#~ "%s\n"
diff -U3 -N -r a/po/fr.po b/po/fr.po
--- a/po/fr.po 2021-07-02 17:17:04.000000000 +0200
+++ b/po/fr.po 2022-05-18 11:49:17.451932208 +0200
+++ b/po/fr.po 2023-02-08 14:41:10.534059221 +0100
@@ -12,43 +12,44 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
@ -2297,7 +2311,7 @@ diff -U3 -N -r a/po/fr.po b/po/fr.po
#~ "%s\n"
diff -U3 -N -r a/po/hr.po b/po/hr.po
--- a/po/hr.po 1970-01-01 01:00:00.000000000 +0100
+++ b/po/hr.po 2022-05-18 11:49:17.451932208 +0200
+++ b/po/hr.po 2023-02-08 14:41:10.534059221 +0100
@@ -0,0 +1,342 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
@ -2643,19 +2657,29 @@ diff -U3 -N -r a/po/hr.po b/po/hr.po
+msgstr "_Preuzmi"
diff -U3 -N -r a/po/hu.po b/po/hu.po
--- a/po/hu.po 2021-07-02 17:17:04.000000000 +0200
+++ b/po/hu.po 2022-05-18 11:49:17.451932208 +0200
@@ -11,7 +11,7 @@
+++ b/po/hu.po 2023-02-08 14:41:10.534059221 +0100
@@ -11,24 +11,24 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-21 11:51+0200\n"
-"PO-Revision-Date: 2020-03-29 01:40-0400\n"
-"Last-Translator: Teknős Ferenc <teknos.ferenc@gmail.com>\n"
-"Language-Team: Hungarian (http://www.transifex.com/projects/p/oscap-anaconda-"
-"addon/language/hu/)\n"
+"POT-Creation-Date: 2021-07-02 15:52+0200\n"
"PO-Revision-Date: 2020-03-29 01:40-0400\n"
"Last-Translator: Teknős Ferenc <teknos.ferenc@gmail.com>\n"
"Language-Team: Hungarian (http://www.transifex.com/projects/p/oscap-anaconda-"
@@ -23,12 +23,12 @@
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Zanata 4.6.2\n"
+"PO-Revision-Date: 2022-09-25 07:19+0000\n"
+"Last-Translator: Hoppár Zoltán <hopparz@gmail.com>\n"
+"Language-Team: Hungarian <https://translate.fedoraproject.org/projects/"
+"oscap-anaconda-addon/rhel9-branch/hu/>\n"
"Language: hu\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: Zanata 4.6.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.14.1\n"
-#: ../org_fedora_oscap/common.py:326
+#: ../org_fedora_oscap/common.py:358
@ -2724,7 +2748,7 @@ diff -U3 -N -r a/po/hu.po b/po/hu.po
#, python-brace-format
msgid ""
"package '{package}' has been added to the list of excluded packages, but it "
@@ -100,30 +100,30 @@
@@ -100,47 +100,47 @@
"installation."
msgstr ""
@ -2763,8 +2787,10 @@ diff -U3 -N -r a/po/hu.po b/po/hu.po
#, python-format
msgid ""
"service '%s' has been added to the list of services to be added to the "
@@ -132,15 +132,15 @@
"szolgáltatás \"%s\" lett hozzáadva a tűzfalhoz hozzáadandó szolgáltatások "
"firewall"
msgstr ""
-"szolgáltatás \"%s\" lett hozzáadva a tűzfalhoz hozzáadandó szolgáltatások "
+"\"%s\" szolgáltatás lett hozzáadva a tűzfalhoz hozzáadandó szolgáltatások "
"listájához"
-#: ../org_fedora_oscap/rule_handling.py:1010
@ -2774,7 +2800,8 @@ diff -U3 -N -r a/po/hu.po b/po/hu.po
#, python-format
msgid ""
"port '%s' has been added to the list of ports to be added to the firewall"
msgstr "port \"%s\" lett hozzáadva a tűzfalhoz hozzáadandó portok listájához"
-msgstr "port \"%s\" lett hozzáadva a tűzfalhoz hozzáadandó portok listájához"
+msgstr "\"%s\" port lett hozzáadva a tűzfalhoz hozzáadandó portok listájához"
-#: ../org_fedora_oscap/rule_handling.py:1017
-#: ../org_fedora_oscap/rule_handling.py:1068
@ -2811,7 +2838,7 @@ diff -U3 -N -r a/po/hu.po b/po/hu.po
#, fuzzy
#| msgid "The integrity check of the content failed. Cannot use the content."
msgid "The integrity check of the security content failed."
@@ -174,60 +166,82 @@
@@ -174,60 +166,81 @@
"Nem sikerült a tartalom integritásának ellenőrzése. A tartalom nem "
"használható."
@ -2895,8 +2922,9 @@ diff -U3 -N -r a/po/hu.po b/po/hu.po
-#: ../org_fedora_oscap/gui/spokes/oscap.py:790
+#: ../org_fedora_oscap/gui/spokes/oscap.py:809
msgid "Invalid or unsupported content URL, please enter a different one."
msgstr ""
"Érvénytelen vagy nem támogatott tartalom URL, kérjük, írjon be másikat."
-msgstr ""
-"Érvénytelen vagy nem támogatott tartalom URL, kérjük, írjon be másikat."
+msgstr "Érvénytelen vagy nem támogatott URL tartalom, kérjük, írjon be másikat."
-#: ../org_fedora_oscap/gui/spokes/oscap.py:798
+#: ../org_fedora_oscap/gui/spokes/oscap.py:817
@ -2908,7 +2936,7 @@ diff -U3 -N -r a/po/hu.po b/po/hu.po
msgid ""
"Network error encountered when fetching data. Please check that network is "
"setup and working."
@@ -235,18 +249,18 @@
@@ -235,18 +248,18 @@
"Hálózati hiba történt az adatok lekérésekor. Ellenőrizze, hogy a hálózat "
"beállítása és működése megfelelő."
@ -2930,7 +2958,7 @@ diff -U3 -N -r a/po/hu.po b/po/hu.po
#, python-format
msgid ""
"Profile with ID '%s' not defined in the content. Select a different profile, "
@@ -255,53 +269,57 @@
@@ -255,53 +268,57 @@
"A (z) \"%s\" azonosítójú profil nem szerepel a tartalomban. Kérem válasszon "
"másik profilt"
@ -3002,7 +3030,7 @@ diff -U3 -N -r a/po/hu.po b/po/hu.po
#: tmp/oscap.glade.h:2
diff -U3 -N -r a/po/it.po b/po/it.po
--- a/po/it.po 2021-07-02 17:17:04.000000000 +0200
+++ b/po/it.po 2022-05-18 11:49:17.451932208 +0200
+++ b/po/it.po 2023-02-08 14:41:10.535059228 +0100
@@ -4,7 +4,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
@ -3367,8 +3395,8 @@ diff -U3 -N -r a/po/it.po b/po/it.po
#: tmp/oscap.glade.h:2
diff -U3 -N -r a/po/ja.po b/po/ja.po
--- a/po/ja.po 2021-07-02 17:17:04.000000000 +0200
+++ b/po/ja.po 2022-05-18 11:49:17.451932208 +0200
@@ -7,41 +7,42 @@
+++ b/po/ja.po 2023-02-08 14:41:10.535059228 +0100
@@ -7,293 +7,288 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
@ -3378,8 +3406,8 @@ diff -U3 -N -r a/po/ja.po b/po/ja.po
-"Language-Team: Japanese <https://translate.fedoraproject.org/projects/oscap-"
-"anaconda-addon/rhel8-branch/ja/>\n"
+"POT-Creation-Date: 2021-07-02 15:52+0200\n"
+"PO-Revision-Date: 2022-05-07 06:18+0000\n"
+"Last-Translator: Transtats <suanand@redhat.com>\n"
+"PO-Revision-Date: 2022-11-02 07:19+0000\n"
+"Last-Translator: Ludek Janda <ljanda@redhat.com>\n"
+"Language-Team: Japanese <https://translate.fedoraproject.org/projects/"
+"oscap-anaconda-addon/rhel9-branch/ja/>\n"
"Language: ja\n"
@ -3388,7 +3416,7 @@ diff -U3 -N -r a/po/ja.po b/po/ja.po
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.5.3\n"
+"X-Generator: Weblate 4.12.1\n"
+"X-Generator: Weblate 4.14.1\n"
-#: ../org_fedora_oscap/common.py:326
+#: ../org_fedora_oscap/common.py:358
@ -3405,9 +3433,8 @@ diff -U3 -N -r a/po/ja.po b/po/ja.po
msgid ""
"Integrity check of the content failed - {hash_obj.name} hash didn't match"
-msgstr "コンテンツの整合性チェックに失敗しました。コンテンツを使用できません。"
+msgstr ""
+"コンテンツの整合性チェックに失敗しました。{hash_obj.name} ハッシュが一致しま"
+"せんでした"
+msgstr "コンテンツの整合性チェックに失敗しました。{hash_obj.name} "
+"ハッシュが一致しませんでした"
#: ../org_fedora_oscap/data_fetch.py:117
msgid "Network connection needed to fetch data."
@ -3426,8 +3453,15 @@ diff -U3 -N -r a/po/ja.po b/po/ja.po
#, python-brace-format
msgid ""
"{0} must be on a separate partition or logical volume and has to be created "
@@ -53,7 +54,7 @@
"トに作成されなければなりません"
"in the partitioning layout before installation can occur with a security "
"profile"
msgstr ""
-"{0} は、別のパーティションもしくは論理ボリューム上になければなりません。ま"
-"た、セキュリティープロファイルがインストールされる前にパーティションレイアウ"
-"トに作成されなければなりません"
+"{0} は、別のパーティションもしくは論理ボリューム上になければなりません。また"
+"、セキュリティープロファイルがインストールされる前にパーティションレイアウト"
+"に作成されなければなりません"
#. template for the message
-#: ../org_fedora_oscap/rule_handling.py:445
@ -3435,8 +3469,11 @@ diff -U3 -N -r a/po/ja.po b/po/ja.po
#, python-format
msgid ""
"mount option '%(mount_option)s' added for the mount point %(mount_point)s"
@@ -62,30 +63,30 @@
"追加されました"
-msgstr ""
-"マウントオプション '%(mount_option)s' が、マウントポイント %(mount_point)s に"
-"追加されました"
+msgstr "マウントオプション '%(mount_option)s' が、マウントポイント %(mount_point)s "
+"に追加されました"
#. root password was not set
-#: ../org_fedora_oscap/rule_handling.py:554
@ -3472,9 +3509,13 @@ diff -U3 -N -r a/po/ja.po b/po/ja.po
#, python-brace-format
msgid ""
"package '{package}' has been added to the list of excluded packages, but it "
@@ -95,30 +96,30 @@
"パッケージ ' {package}' が除外パッケージのリストに追加されましたが、インス"
"トールを中断せずに現在のソフトウェアの選択から削除することはできません。"
"can't be removed from the current software selection without breaking the "
"installation."
msgstr ""
-"パッケージ ' {package}' が除外パッケージのリストに追加されましたが、インス"
-"トールを中断せずに現在のソフトウェアの選択から削除することはできません。"
+"パッケージ ' {package}' が除外パッケージのリストに追加されましたが、インスト"
+"ールを中断せずに現在のソフトウェアの選択から削除することはできません。"
-#: ../org_fedora_oscap/rule_handling.py:717
-#: ../org_fedora_oscap/rule_handling.py:732
@ -3511,9 +3552,10 @@ diff -U3 -N -r a/po/ja.po b/po/ja.po
#, python-format
msgid ""
"service '%s' has been added to the list of services to be added to the "
@@ -126,23 +127,23 @@
msgstr ""
"サービス '%s' が、ファイアウォールに追加予定のサービス一覧に追加されました"
"firewall"
-msgstr ""
-"サービス '%s' が、ファイアウォールに追加予定のサービス一覧に追加されました"
+msgstr "サービス '%s' が、ファイアウォールに追加予定のサービス一覧に追加されました"
-#: ../org_fedora_oscap/rule_handling.py:1010
-#: ../org_fedora_oscap/rule_handling.py:1055
@ -3531,8 +3573,9 @@ diff -U3 -N -r a/po/ja.po b/po/ja.po
#, python-format
msgid ""
"trust '%s' has been added to the list of trusts to be added to the firewall"
msgstr ""
"トラスト '%s' が、ファイアウォールに追加予定のトラスト一覧に追加されました"
-msgstr ""
-"トラスト '%s' が、ファイアウォールに追加予定のトラスト一覧に追加されました"
+msgstr "トラスト '%s' が、ファイアウォールに追加予定のトラスト一覧に追加されました"
-#: ../org_fedora_oscap/rule_handling.py:1080
-#: ../org_fedora_oscap/rule_handling.py:1095
@ -3541,9 +3584,10 @@ diff -U3 -N -r a/po/ja.po b/po/ja.po
#, python-format
msgid ""
"service '%s' has been added to the list of services to be removed from the "
@@ -150,75 +151,79 @@
msgstr ""
"サービス '%s' が、ファイアウォールから削除予定のサービス一覧に追加されました"
"firewall"
-msgstr ""
-"サービス '%s' が、ファイアウォールから削除予定のサービス一覧に追加されました"
+msgstr "サービス '%s' が、ファイアウォールから削除予定のサービス一覧に追加されました"
-#: ../org_fedora_oscap/ks/oscap.py:376
-msgid "The installation should be aborted."
@ -3576,14 +3620,14 @@ diff -U3 -N -r a/po/ja.po b/po/ja.po
msgid "There was an unexpected problem with the supplied content."
-msgstr ""
+msgstr "指定のコンテンツで予期しない問題が発生しました。"
+
+#: ../org_fedora_oscap/service/installation.py:56
+msgid "The installation should be aborted."
+msgstr "インストールを中止する必要があります。"
-#: ../org_fedora_oscap/ks/oscap.py:462
-#, fuzzy
-#| msgid "Misconfiguration detected"
+#: ../org_fedora_oscap/service/installation.py:56
+msgid "The installation should be aborted."
+msgstr "インストールを中止する必要があります。"
+
+#: ../org_fedora_oscap/service/installation.py:148
msgid "Wrong configuration detected!"
-msgstr "設定ミスが検出されました"
@ -3641,9 +3685,11 @@ diff -U3 -N -r a/po/ja.po b/po/ja.po
-#: ../org_fedora_oscap/gui/spokes/oscap.py:790
+#: ../org_fedora_oscap/gui/spokes/oscap.py:809
msgid "Invalid or unsupported content URL, please enter a different one."
msgstr ""
"コンテンツ URL が無効またはサポートされていません。別の URL を入力していませ"
"ん。"
-msgstr ""
-"コンテンツ URL が無効またはサポートされていません。別の URL を入力していませ"
-"ん。"
+msgstr "コンテンツ URL が無効またはサポートされていません。別の URL "
+"を入力していません。"
-#: ../org_fedora_oscap/gui/spokes/oscap.py:798
+#: ../org_fedora_oscap/gui/spokes/oscap.py:817
@ -3655,8 +3701,9 @@ diff -U3 -N -r a/po/ja.po b/po/ja.po
msgid ""
"Network error encountered when fetching data. Please check that network is "
"setup and working."
@@ -226,16 +231,16 @@
"データの取得時にネットワークエラーが発生しました。ネットワークが設定されてお"
-msgstr ""
-"データの取得時にネットワークエラーが発生しました。ネットワークが設定されてお"
+msgstr "データの取得時にネットワークエラーが発生しました。ネットワークが設定されてお"
"り、動作していることを確認してください。"
-#: ../org_fedora_oscap/gui/spokes/oscap.py:815
@ -3675,9 +3722,12 @@ diff -U3 -N -r a/po/ja.po b/po/ja.po
#, python-format
msgid ""
"Profile with ID '%s' not defined in the content. Select a different profile, "
@@ -244,56 +249,56 @@
"コンテンツで ID が '%s' のプロファイルが定義されていません。別のプロファイル"
"を選択してください"
"please"
-msgstr ""
-"コンテンツで ID が '%s' のプロファイルが定義されていません。別のプロファイル"
-"を選択してください"
+msgstr "コンテンツで ID が '%s' "
+"のプロファイルが定義されていません。別のプロファイルを選択してください"
-#: ../org_fedora_oscap/gui/spokes/oscap.py:856
-msgid "Not applying security policy"
@ -3691,17 +3741,21 @@ diff -U3 -N -r a/po/ja.po b/po/ja.po
-#: ../org_fedora_oscap/gui/spokes/oscap.py:887
+#: ../org_fedora_oscap/gui/spokes/oscap.py:921
msgid " or enter data stream content or archive URL below:"
msgstr ""
" または、以下にデータストリームコンテンツもしくはアーカイブの URL を入力しま"
"す:"
-msgstr ""
-" または、以下にデータストリームコンテンツもしくはアーカイブの URL を入力しま"
-"す:"
+msgstr " または、以下にデータストリームコンテンツもしくはアーカイブの URL "
+"を入力します:"
-#: ../org_fedora_oscap/gui/spokes/oscap.py:891 tmp/oscap.glade.h:12
+#: ../org_fedora_oscap/gui/spokes/oscap.py:925 tmp/oscap.glade.h:12
msgid ""
"No content found. Please enter data stream content or archive URL below:"
msgstr ""
"コンテンツが見つかりませんでした。以下にデータストリームコンテンツもしくは"
"アーカイブの URL を入力してください:"
-msgstr ""
-"コンテンツが見つかりませんでした。以下にデータストリームコンテンツもしくは"
-"アーカイブの URL を入力してください:"
+msgstr "コンテンツが見つかりませんでした。"
+"以下にデータストリームコンテンツもしくはアーカイブの URL を入力してください:"
-#: ../org_fedora_oscap/gui/spokes/oscap.py:1029
+#: ../org_fedora_oscap/gui/spokes/oscap.py:1062
@ -3746,7 +3800,7 @@ diff -U3 -N -r a/po/ja.po b/po/ja.po
#: tmp/oscap.glade.h:2
msgid "_Change content"
@@ -339,6 +344,9 @@
@@ -339,6 +334,9 @@
msgid "_Fetch"
msgstr "取得(_F)"
@ -3758,7 +3812,7 @@ diff -U3 -N -r a/po/ja.po b/po/ja.po
#~ "%s\n"
diff -U3 -N -r a/po/ko.po b/po/ko.po
--- a/po/ko.po 2021-07-02 17:17:04.000000000 +0200
+++ b/po/ko.po 2022-05-18 11:49:17.451932208 +0200
+++ b/po/ko.po 2023-02-08 14:41:10.535059228 +0100
@@ -5,41 +5,41 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
@ -4144,7 +4198,7 @@ diff -U3 -N -r a/po/ko.po b/po/ko.po
#~ "%s\n"
diff -U3 -N -r a/po/oscap-anaconda-addon.pot b/po/oscap-anaconda-addon.pot
--- a/po/oscap-anaconda-addon.pot 2021-07-02 15:52:56.000000000 +0200
+++ b/po/oscap-anaconda-addon.pot 2022-05-18 11:49:17.455182208 +0200
+++ b/po/oscap-anaconda-addon.pot 2023-02-08 14:41:10.538059250 +0100
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
@ -4328,7 +4382,7 @@ diff -U3 -N -r a/po/oscap-anaconda-addon.pot b/po/oscap-anaconda-addon.pot
diff -U3 -N -r a/po/pl.po b/po/pl.po
--- a/po/pl.po 2021-07-02 17:17:04.000000000 +0200
+++ b/po/pl.po 2022-05-18 11:49:17.451932208 +0200
+++ b/po/pl.po 2023-02-08 14:41:10.535059228 +0100
@@ -25,43 +25,45 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
@ -4718,7 +4772,7 @@ diff -U3 -N -r a/po/pl.po b/po/pl.po
#~ "%s\n"
diff -U3 -N -r a/po/pt_BR.po b/po/pt_BR.po
--- a/po/pt_BR.po 2021-07-02 17:17:04.000000000 +0200
+++ b/po/pt_BR.po 2022-05-18 11:49:17.451932208 +0200
+++ b/po/pt_BR.po 2023-02-08 14:41:10.535059228 +0100
@@ -11,7 +11,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
@ -5080,7 +5134,7 @@ diff -U3 -N -r a/po/pt_BR.po b/po/pt_BR.po
#: tmp/oscap.glade.h:2
diff -U3 -N -r a/po/pt.po b/po/pt.po
--- a/po/pt.po 2021-07-02 17:17:04.000000000 +0200
+++ b/po/pt.po 2022-05-18 11:49:17.451932208 +0200
+++ b/po/pt.po 2023-02-08 14:41:10.535059228 +0100
@@ -3,7 +3,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
@ -5417,7 +5471,7 @@ diff -U3 -N -r a/po/pt.po b/po/pt.po
#: tmp/oscap.glade.h:2
diff -U3 -N -r a/po/ru.po b/po/ru.po
--- a/po/ru.po 2021-07-02 17:17:04.000000000 +0200
+++ b/po/ru.po 2022-05-18 11:49:17.451932208 +0200
+++ b/po/ru.po 2023-02-08 14:41:10.535059228 +0100
@@ -3,7 +3,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
@ -5775,7 +5829,7 @@ diff -U3 -N -r a/po/ru.po b/po/ru.po
#: tmp/oscap.glade.h:2
diff -U3 -N -r a/po/si.po b/po/si.po
--- a/po/si.po 2021-07-02 17:17:04.000000000 +0200
+++ b/po/si.po 2022-05-18 11:49:17.451932208 +0200
+++ b/po/si.po 2023-02-08 14:41:10.535059228 +0100
@@ -6,21 +6,24 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
@ -6112,7 +6166,7 @@ diff -U3 -N -r a/po/si.po b/po/si.po
#: tmp/oscap.glade.h:2
diff -U3 -N -r a/po/sr.po b/po/sr.po
--- a/po/sr.po 2021-07-02 17:17:04.000000000 +0200
+++ b/po/sr.po 2022-05-18 11:49:17.451932208 +0200
+++ b/po/sr.po 2023-02-08 14:41:10.535059228 +0100
@@ -9,7 +9,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
@ -6455,7 +6509,7 @@ diff -U3 -N -r a/po/sr.po b/po/sr.po
#: tmp/oscap.glade.h:2
diff -U3 -N -r a/po/sv.po b/po/sv.po
--- a/po/sv.po 2021-07-02 17:17:04.000000000 +0200
+++ b/po/sv.po 2022-05-18 11:49:17.451932208 +0200
+++ b/po/sv.po 2023-02-08 14:41:10.535059228 +0100
@@ -3,43 +3,43 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
@ -6850,7 +6904,7 @@ diff -U3 -N -r a/po/sv.po b/po/sv.po
#~ "%s\n"
diff -U3 -N -r a/po/uk.po b/po/uk.po
--- a/po/uk.po 2021-07-02 17:17:04.000000000 +0200
+++ b/po/uk.po 2022-05-18 11:49:17.451932208 +0200
+++ b/po/uk.po 2023-02-08 14:41:10.535059228 +0100
@@ -4,42 +4,45 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
@ -7241,7 +7295,7 @@ diff -U3 -N -r a/po/uk.po b/po/uk.po
#~ "%s\n"
diff -U3 -N -r a/po/zh_CN.po b/po/zh_CN.po
--- a/po/zh_CN.po 2021-07-02 17:17:04.000000000 +0200
+++ b/po/zh_CN.po 2022-05-18 11:49:17.451932208 +0200
+++ b/po/zh_CN.po 2023-02-08 14:41:10.535059228 +0100
@@ -4,40 +4,40 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
@ -7251,8 +7305,8 @@ diff -U3 -N -r a/po/zh_CN.po b/po/zh_CN.po
-"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
-"Language-Team: Chinese (Simplified)\n"
+"POT-Creation-Date: 2021-07-02 15:52+0200\n"
+"PO-Revision-Date: 2022-05-07 06:18+0000\n"
+"Last-Translator: Transtats <suanand@redhat.com>\n"
+"PO-Revision-Date: 2022-11-02 07:19+0000\n"
+"Last-Translator: Ludek Janda <ljanda@redhat.com>\n"
+"Language-Team: Chinese (Simplified) <https://translate.fedoraproject.org/"
+"projects/oscap-anaconda-addon/rhel9-branch/zh_CN/>\n"
"Language: zh_CN\n"
@ -7262,7 +7316,7 @@ diff -U3 -N -r a/po/zh_CN.po b/po/zh_CN.po
-"Plural-Forms: nplurals=1; plural=0\n"
-"X-Generator: Zanata 4.6.2\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Weblate 4.12.1\n"
+"X-Generator: Weblate 4.14.1\n"
-#: ../org_fedora_oscap/common.py:326
+#: ../org_fedora_oscap/common.py:358
@ -7612,6 +7666,15 @@ diff -U3 -N -r a/po/zh_CN.po b/po/zh_CN.po
#: tmp/oscap.glade.h:3
msgid "Apply security policy:"
@@ -293,7 +297,7 @@
#: tmp/oscap.glade.h:6
msgid "Choose profile below:"
-msgstr "选择档案:"
+msgstr "选择下面的配置文件:"
#: tmp/oscap.glade.h:7
msgid "Profile"
@@ -305,7 +309,7 @@
#: tmp/oscap.glade.h:9
@ -7633,7 +7696,7 @@ diff -U3 -N -r a/po/zh_CN.po b/po/zh_CN.po
#~ "%s\n"
diff -U3 -N -r a/po/zh_TW.po b/po/zh_TW.po
--- a/po/zh_TW.po 2021-07-02 17:17:04.000000000 +0200
+++ b/po/zh_TW.po 2022-05-18 11:49:17.451932208 +0200
+++ b/po/zh_TW.po 2023-02-08 14:41:10.535059228 +0100
@@ -3,7 +3,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"

View File

@ -0,0 +1,380 @@
From a1b983b4b5f8e49daa978aec6f9d28ba6dcea20c Mon Sep 17 00:00:00 2001
From: Matej Tyc <matyc@redhat.com>
Date: Wed, 12 Oct 2022 11:37:04 +0200
Subject: [PATCH 1/5] Add capability to preselect content from archives
Users can specify content path and tailoring path in kickstarts,
and the addon should be able to assure that those files are available,
and that they have precedence over other files.
---
org_fedora_oscap/content_discovery.py | 35 +++++++++++++++++++
tests/test_content_discovery.py | 48 +++++++++++++++++++++++++++
2 files changed, 83 insertions(+)
create mode 100644 tests/test_content_discovery.py
diff --git a/org_fedora_oscap/content_discovery.py b/org_fedora_oscap/content_discovery.py
index ccfe6c8..9ef144e 100644
--- a/org_fedora_oscap/content_discovery.py
+++ b/org_fedora_oscap/content_discovery.py
@@ -12,6 +12,7 @@
from org_fedora_oscap import data_fetch, utils
from org_fedora_oscap import common
from org_fedora_oscap import content_handling
+from org_fedora_oscap.content_handling import CONTENT_TYPES
from org_fedora_oscap import rule_handling
from org_fedora_oscap.common import _
@@ -191,6 +192,38 @@ def _verify_fingerprint(self, dest_filename, fingerprint=""):
raise content_handling.ContentCheckError(msg)
log.info(f"Integrity check passed using {hash_obj.name} hash")
+ def filter_discovered_content(self, labelled_files):
+ expected_path = self._addon_data.content_path
+ categories = (CONTENT_TYPES["DATASTREAM"], CONTENT_TYPES["XCCDF_CHECKLIST"])
+ if expected_path:
+ labelled_files = self.reduce_files(labelled_files, expected_path, categories)
+
+ expected_path = self._addon_data.tailoring_path
+ categories = (CONTENT_TYPES["TAILORING"], )
+ if expected_path:
+ labelled_files = self.reduce_files(labelled_files, expected_path, categories)
+
+ expected_path = self._addon_data.cpe_path
+ categories = (CONTENT_TYPES["CPE_DICT"], )
+ if expected_path:
+ labelled_files = self.reduce_files(labelled_files, expected_path, categories)
+
+ return labelled_files
+
+ def reduce_files(self, labelled_files, expected_path, categories):
+ reduced_files = dict()
+ if expected_path not in labelled_files:
+ msg = (
+ f"Expected a file {expected_path} to be part of the supplied content, "
+ f"but it was not the case, got only {list(labelled_files.keys())}"
+ )
+ raise RuntimeError(msg)
+ for path, label in labelled_files.items():
+ if label in categories and path != expected_path:
+ continue
+ reduced_files[path] = label
+ return reduced_files
+
def _finish_actual_fetch(self, wait_for, fingerprint, report_callback, dest_filename):
if wait_for:
log.info(f"OSCAP Addon: Waiting for thread {wait_for}")
@@ -210,6 +243,8 @@ def _finish_actual_fetch(self, wait_for, fingerprint, report_callback, dest_file
structured_content.add_content_archive(dest_filename)
labelled_files = content_handling.identify_files(fpaths)
+ labelled_files = self.filter_discovered_content(labelled_files)
+
for fname, label in labelled_files.items():
structured_content.add_file(fname, label)
diff --git a/tests/test_content_discovery.py b/tests/test_content_discovery.py
new file mode 100644
index 0000000..5463c9a
--- /dev/null
+++ b/tests/test_content_discovery.py
@@ -0,0 +1,48 @@
+import pytest
+
+import org_fedora_oscap.content_discovery as tested_module
+
+
+@pytest.fixture
+def labelled_files():
+ return {
+ "dir/datastream": "D",
+ "dir/datastream2": "D",
+ "dir/dir/datastream3": "D",
+ "dir/dir/datastream3": "D",
+ "dir/XCCDF": "X",
+ "XCCDF2": "X",
+ "cpe": "C",
+ "t1": "T",
+ "dir3/t2": "T",
+ }
+
+
+def test_reduce(labelled_files):
+ bringer = tested_module.ContentBringer(None)
+
+ d_count = 0
+ x_count = 0
+ for l in labelled_files.values():
+ if l == "D":
+ d_count += 1
+ elif l == "X":
+ x_count += 1
+
+ reduced = bringer.reduce_files(labelled_files, "dir/datastream", ["D"])
+ assert len(reduced) == len(labelled_files) - d_count + 1
+ assert "dir/datastream" in reduced
+
+ reduced = bringer.reduce_files(labelled_files, "dir/datastream", ["D", "X"])
+ assert len(reduced) == len(labelled_files) - d_count - x_count + 1
+ assert "dir/datastream" in reduced
+
+ reduced = bringer.reduce_files(labelled_files, "dir/XCCDF", ["D", "X"])
+ assert len(reduced) == len(labelled_files) - d_count - x_count + 1
+ assert "dir/XCCDF" in reduced
+
+ with pytest.raises(RuntimeError, match="dir/datastream4"):
+ bringer.reduce_files(labelled_files, "dir/datastream4", ["D"])
+
+ reduced = bringer.reduce_files(labelled_files, "cpe", ["C"])
+ assert reduced == labelled_files
From 2a536a8ec4cdf20e4f19e8175898b7ace3fc7ca4 Mon Sep 17 00:00:00 2001
From: Matej Tyc <matyc@redhat.com>
Date: Wed, 12 Oct 2022 11:40:11 +0200
Subject: [PATCH 2/5] Handle changes in content identification
The code is able to handle changes in the way how oscap identifies
content much more gracefully.
---
org_fedora_oscap/content_discovery.py | 13 +++++++++----
org_fedora_oscap/content_handling.py | 5 +++++
2 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/org_fedora_oscap/content_discovery.py b/org_fedora_oscap/content_discovery.py
index 9ef144e..9ed643b 100644
--- a/org_fedora_oscap/content_discovery.py
+++ b/org_fedora_oscap/content_discovery.py
@@ -2,6 +2,7 @@
import logging
import pathlib
import shutil
+import os
from glob import glob
from typing import List
@@ -242,11 +243,15 @@ def _finish_actual_fetch(self, wait_for, fingerprint, report_callback, dest_file
if content_type in ("archive", "rpm"):
structured_content.add_content_archive(dest_filename)
- labelled_files = content_handling.identify_files(fpaths)
- labelled_files = self.filter_discovered_content(labelled_files)
+ labelled_filenames = content_handling.identify_files(fpaths)
+ labelled_relative_filenames = {
+ os.path.relpath(path, self.CONTENT_DOWNLOAD_LOCATION): label
+ for path, label in labelled_filenames.items()}
+ labelled_relative_filenames = self.filter_discovered_content(labelled_relative_filenames)
- for fname, label in labelled_files.items():
- structured_content.add_file(fname, label)
+ for rel_fname, label in labelled_relative_filenames.items():
+ fname = self.CONTENT_DOWNLOAD_LOCATION / rel_fname
+ structured_content.add_file(str(fname), label)
if fingerprint and dest_filename:
structured_content.record_verification(dest_filename)
diff --git a/org_fedora_oscap/content_handling.py b/org_fedora_oscap/content_handling.py
index 65d5a28..3e2ecae 100644
--- a/org_fedora_oscap/content_handling.py
+++ b/org_fedora_oscap/content_handling.py
@@ -122,6 +122,11 @@ def get_doc_type(file_path):
if line.startswith("Document type:"):
_prefix, _sep, type_info = line.partition(":")
content_type = type_info.strip()
+ if content_type not in CONTENT_TYPES.values():
+ log.info(
+ f"File {file_path} labelled by oscap as {content_type}, "
+ "which is an unexpected type.")
+ content_type = f"unknown - {content_type}"
break
except OSError:
# 'oscap info' exitted with a non-zero exit code -> unknown doc
From 17f80b71d17ce5a2bdbed87730133cdabec2e22b Mon Sep 17 00:00:00 2001
From: Matej Tyc <matyc@redhat.com>
Date: Wed, 12 Oct 2022 11:38:51 +0200
Subject: [PATCH 3/5] Remove unused code
The function is not referenced anywhere in the project
---
org_fedora_oscap/content_handling.py | 40 ----------------------------
1 file changed, 40 deletions(-)
diff --git a/org_fedora_oscap/content_handling.py b/org_fedora_oscap/content_handling.py
index 3e2ecae..5096bab 100644
--- a/org_fedora_oscap/content_handling.py
+++ b/org_fedora_oscap/content_handling.py
@@ -141,43 +141,3 @@ def get_doc_type(file_path):
log.info("OSCAP addon: Identified {file_path} as {content_type}"
.format(file_path=file_path, content_type=content_type))
return content_type
-
-
-def explore_content_files(fpaths):
- """
- Function for finding content files in a list of file paths. SIMPLY PICKS
- THE FIRST USABLE CONTENT FILE OF A PARTICULAR TYPE AND JUST PREFERS DATA
- STREAMS OVER STANDALONE BENCHMARKS.
-
- :param fpaths: a list of file paths to search for content files in
- :type fpaths: [str]
- :return: ContentFiles instance containing the file names of the XCCDF file,
- CPE dictionary and tailoring file or "" in place of those items
- if not found
- :rtype: ContentFiles
-
- """
- xccdf_file = ""
- cpe_file = ""
- tailoring_file = ""
- found_ds = False
-
- for fpath in fpaths:
- doc_type = get_doc_type(fpath)
- if not doc_type:
- continue
-
- # prefer DS over standalone XCCDF
- if doc_type == "Source Data Stream" and (not xccdf_file or not found_ds):
- xccdf_file = fpath
- found_ds = True
- elif doc_type == "XCCDF Checklist" and not xccdf_file:
- xccdf_file = fpath
- elif doc_type == "CPE Dictionary" and not cpe_file:
- cpe_file = fpath
- elif doc_type == "XCCDF Tailoring" and not tailoring_file:
- tailoring_file = fpath
-
- # TODO: raise exception if no xccdf_file is found?
- files = ContentFiles(xccdf_file, cpe_file, tailoring_file)
- return files
From 3aff547e2689a1ede4236c9166b11c99f272e3f7 Mon Sep 17 00:00:00 2001
From: Matej Tyc <matyc@redhat.com>
Date: Thu, 13 Oct 2022 14:11:25 +0200
Subject: [PATCH 4/5] Dont use tailoring if it is not expected
Take tailorings into account only if it is specified in the kickstart.
Compulsive usage of tailoring may be unwanted.
---
org_fedora_oscap/content_discovery.py | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/org_fedora_oscap/content_discovery.py b/org_fedora_oscap/content_discovery.py
index 9ed643b..4235af7 100644
--- a/org_fedora_oscap/content_discovery.py
+++ b/org_fedora_oscap/content_discovery.py
@@ -193,16 +193,25 @@ def _verify_fingerprint(self, dest_filename, fingerprint=""):
raise content_handling.ContentCheckError(msg)
log.info(f"Integrity check passed using {hash_obj.name} hash")
+ def allow_one_expected_tailoring_or_no_tailoring(self, labelled_files):
+ expected_tailoring = self._addon_data.tailoring_path
+ tailoring_label = CONTENT_TYPES["TAILORING"]
+ if expected_tailoring:
+ labelled_files = self.reduce_files(labelled_files, expected_tailoring, [tailoring_label])
+ else:
+ labelled_files = {
+ path: label for path, label in labelled_files.items()
+ if label != tailoring_label
+ }
+ return labelled_files
+
def filter_discovered_content(self, labelled_files):
expected_path = self._addon_data.content_path
categories = (CONTENT_TYPES["DATASTREAM"], CONTENT_TYPES["XCCDF_CHECKLIST"])
if expected_path:
labelled_files = self.reduce_files(labelled_files, expected_path, categories)
- expected_path = self._addon_data.tailoring_path
- categories = (CONTENT_TYPES["TAILORING"], )
- if expected_path:
- labelled_files = self.reduce_files(labelled_files, expected_path, categories)
+ labelled_files = self.allow_one_expected_tailoring_or_no_tailoring(labelled_files)
expected_path = self._addon_data.cpe_path
categories = (CONTENT_TYPES["CPE_DICT"], )
From 56d8e497e0a4c394784b1c950bd1a148a6dc42ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C4=9Bj=20T=C3=BD=C4=8D?= <matyc@redhat.com>
Date: Thu, 10 Nov 2022 12:46:46 +0100
Subject: [PATCH 5/5] Make the content RPM installation robust
If a package manager fails to install the package,
use the rpm command directly and skip deps.
---
org_fedora_oscap/service/installation.py | 48 +++++++++++++++++-------
1 file changed, 34 insertions(+), 14 deletions(-)
diff --git a/org_fedora_oscap/service/installation.py b/org_fedora_oscap/service/installation.py
index 255b992..f667479 100644
--- a/org_fedora_oscap/service/installation.py
+++ b/org_fedora_oscap/service/installation.py
@@ -18,6 +18,7 @@
import logging
import os
import shutil
+import io
from pyanaconda.core import util
from pyanaconda.modules.common.task import Task
@@ -198,21 +199,11 @@ def run(self):
elif self._policy_data.content_type == "datastream":
shutil.copy2(self._content_path, target_content_dir)
elif self._policy_data.content_type == "rpm":
- # copy the RPM to the target system
- shutil.copy2(self._file_path, target_content_dir)
+ try:
+ self._copy_rpm_to_target_and_install(target_content_dir)
- # get the path of the RPM
- content_name = common.get_content_name(self._policy_data)
- package_path = utils.join_paths(self._target_directory, content_name)
-
- # and install it with yum
- ret = util.execInSysroot(
- "yum", ["-y", "--nogpg", "install", package_path]
- )
-
- if ret != 0:
- msg = _(f"Failed to install content RPM to the target system.")
- terminate(msg)
+ except Exception as exc:
+ terminate(str(exc))
return
else:
pattern = utils.join_paths(common.INSTALLATION_CONTENT_DIR, "*")
@@ -221,6 +212,35 @@ def run(self):
if os.path.exists(self._tailoring_path):
shutil.copy2(self._tailoring_path, target_content_dir)
+ def _attempt_rpm_installation(self, chroot_package_path):
+ log.info("OSCAP addon: Installing the security content RPM to the installed system.")
+ stdout = io.StringIO()
+ ret = util.execWithRedirect(
+ "dnf", ["-y", "--nogpg", "install", chroot_package_path],
+ stdout=stdout, root=self._sysroot)
+ stdout.seek(0)
+ if ret != 0:
+ log.error(
+ "OSCAP addon: Error installing security content RPM using yum: {0}",
+ stdout.read())
+
+ stdout = io.StringIO()
+ ret = util.execWithRedirect(
+ "rpm", ["--install", "--nodeps", chroot_package_path],
+ stdout=stdout, root=self._sysroot)
+ if ret != 0:
+ log.error(
+ "OSCAP addon: Error installing security content RPM using rpm: {0}",
+ stdout.read())
+ msg = _(f"Failed to install content RPM to the target system.")
+ raise RuntimeError(msg)
+
+ def _copy_rpm_to_target_and_install(self, target_content_dir):
+ shutil.copy2(self._file_path, target_content_dir)
+ content_name = common.get_content_name(self._policy_data)
+ chroot_package_path = utils.join_paths(self._target_directory, content_name)
+ self._attempt_rpm_installation(chroot_package_path)
+
class RemediateSystemTask(Task):
"""The installation task for running the remediation."""

View File

@ -0,0 +1,74 @@
From 99fc53d3691b24c6724c1cf3e7281c181b31cf45 Mon Sep 17 00:00:00 2001
From: Matej Tyc <matyc@redhat.com>
Date: Tue, 11 Oct 2022 17:07:28 +0200
Subject: [PATCH 1/2] Remove redundant message
The send_ready already performs what the removed call
could aim to accomplish.
---
org_fedora_oscap/gui/spokes/oscap.py | 1 -
1 file changed, 1 deletion(-)
diff --git a/org_fedora_oscap/gui/spokes/oscap.py b/org_fedora_oscap/gui/spokes/oscap.py
index 6d0aa5c..37b9681 100644
--- a/org_fedora_oscap/gui/spokes/oscap.py
+++ b/org_fedora_oscap/gui/spokes/oscap.py
@@ -151,7 +151,6 @@ def decorated(self, *args, **kwargs):
self._ready = True
# pylint: disable-msg=E1101
hubQ.send_ready(self.__class__.__name__)
- hubQ.send_message(self.__class__.__name__, self.status)
return ret
From 24787f02e80162129256dc57dc3d491f00080370 Mon Sep 17 00:00:00 2001
From: Matej Tyc <matyc@redhat.com>
Date: Thu, 13 Oct 2022 17:19:17 +0200
Subject: [PATCH 2/2] Increase robustness of fetching state detection
It is not completely practical to rely on locks alone,
and we can elliminate some corner cases by looking
whether well-known UI threads exist.
---
org_fedora_oscap/gui/spokes/oscap.py | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/org_fedora_oscap/gui/spokes/oscap.py b/org_fedora_oscap/gui/spokes/oscap.py
index 37b9681..97c4553 100644
--- a/org_fedora_oscap/gui/spokes/oscap.py
+++ b/org_fedora_oscap/gui/spokes/oscap.py
@@ -389,11 +389,14 @@ def _render_selected(self, column, renderer, model, itr, user_data=None):
else:
renderer.set_property("stock-id", None)
+ def _still_fetching(self):
+ return self._fetching or threadMgr.get('OSCAPguiWaitForDataFetchThread')
+
def _fetch_data_and_initialize(self):
"""Fetch data from a specified URL and initialize everything."""
with self._fetch_flag_lock:
- if self._fetching:
+ if self._still_fetching():
# prevent multiple fetches running simultaneously
return
self._fetching = True
@@ -940,7 +943,7 @@ def _refresh_ui(self):
# hide the progress box, no progress now
with self._fetch_flag_lock:
- if not self._fetching:
+ if not self._still_fetching():
really_hide(self._progress_box)
self._content_url_entry.set_sensitive(True)
@@ -1165,7 +1168,7 @@ def on_fetch_button_clicked(self, *args):
"""Handler for the Fetch button"""
with self._fetch_flag_lock:
- if self._fetching:
+ if self._still_fetching():
# some other fetching/pre-processing running, give up
log.warn(
"OSCAP Addon: "

View File

@ -0,0 +1,325 @@
From e2c47422b0ecfd561a8fe203b53e4a3831ae0ff7 Mon Sep 17 00:00:00 2001
From: Matej Tyc <matyc@redhat.com>
Date: Tue, 22 Nov 2022 11:45:11 +0100
Subject: [PATCH 1/3] Fix handling of content paths
Archives and ready-to-use content use paths differently.
Archives get unpacked into a directory, where they need to be unpacked,
analyzed, and cross-checked with e.g. the supplied content path,
whereas ready-to-use content can be used directly.
As the current codebase doesn't untangle all possible ways how to obtain
existing content in a way of decomposing those into layers, this change
just makes the current code working at the expense of making it worse to
maintain.
---
org_fedora_oscap/content_discovery.py | 34 ++++++++++++++++++---------
org_fedora_oscap/service/kickstart.py | 10 +++++++-
tests/test_content_discovery.py | 21 +++++++++++++++++
3 files changed, 53 insertions(+), 12 deletions(-)
diff --git a/org_fedora_oscap/content_discovery.py b/org_fedora_oscap/content_discovery.py
index 4235af7..ebef618 100644
--- a/org_fedora_oscap/content_discovery.py
+++ b/org_fedora_oscap/content_discovery.py
@@ -46,6 +46,14 @@ def clear_all(data):
data.dry_run = False
+def path_is_present_among_paths(path, paths):
+ absolute_path = os.path.abspath(path)
+ for second_path in paths:
+ if absolute_path == os.path.abspath(second_path):
+ return True
+ return False
+
+
class ContentBringer:
CONTENT_DOWNLOAD_LOCATION = pathlib.Path(common.INSTALLATION_CONTENT_DIR)
DEFAULT_SSG_DATA_STREAM_PATH = f"{common.SSG_DIR}/{common.SSG_CONTENT}"
@@ -194,7 +202,7 @@ def _verify_fingerprint(self, dest_filename, fingerprint=""):
log.info(f"Integrity check passed using {hash_obj.name} hash")
def allow_one_expected_tailoring_or_no_tailoring(self, labelled_files):
- expected_tailoring = self._addon_data.tailoring_path
+ expected_tailoring = common.get_preinst_tailoring_path(self._addon_data)
tailoring_label = CONTENT_TYPES["TAILORING"]
if expected_tailoring:
labelled_files = self.reduce_files(labelled_files, expected_tailoring, [tailoring_label])
@@ -206,7 +214,7 @@ def allow_one_expected_tailoring_or_no_tailoring(self, labelled_files):
return labelled_files
def filter_discovered_content(self, labelled_files):
- expected_path = self._addon_data.content_path
+ expected_path = common.get_preinst_content_path(self._addon_data)
categories = (CONTENT_TYPES["DATASTREAM"], CONTENT_TYPES["XCCDF_CHECKLIST"])
if expected_path:
labelled_files = self.reduce_files(labelled_files, expected_path, categories)
@@ -222,7 +230,7 @@ def filter_discovered_content(self, labelled_files):
def reduce_files(self, labelled_files, expected_path, categories):
reduced_files = dict()
- if expected_path not in labelled_files:
+ if not path_is_present_among_paths(expected_path, labelled_files.keys()):
msg = (
f"Expected a file {expected_path} to be part of the supplied content, "
f"but it was not the case, got only {list(labelled_files.keys())}"
@@ -253,13 +261,9 @@ def _finish_actual_fetch(self, wait_for, fingerprint, report_callback, dest_file
structured_content.add_content_archive(dest_filename)
labelled_filenames = content_handling.identify_files(fpaths)
- labelled_relative_filenames = {
- os.path.relpath(path, self.CONTENT_DOWNLOAD_LOCATION): label
- for path, label in labelled_filenames.items()}
- labelled_relative_filenames = self.filter_discovered_content(labelled_relative_filenames)
+ labelled_filenames = self.filter_discovered_content(labelled_filenames)
- for rel_fname, label in labelled_relative_filenames.items():
- fname = self.CONTENT_DOWNLOAD_LOCATION / rel_fname
+ for fname, label in labelled_filenames.items():
structured_content.add_file(str(fname), label)
if fingerprint and dest_filename:
@@ -303,11 +307,18 @@ def use_downloaded_content(self, content):
# We know that we have ended up with a datastream-like content,
# but if we can't convert an archive to a datastream.
# self._addon_data.content_type = "datastream"
- self._addon_data.content_path = str(preferred_content.relative_to(content.root))
+ content_type = self._addon_data.content_type
+ if content_type in ("archive", "rpm"):
+ self._addon_data.content_path = str(preferred_content.relative_to(content.root))
+ else:
+ self._addon_data.content_path = str(preferred_content)
preferred_tailoring = self.get_preferred_tailoring(content)
if content.tailoring:
- self._addon_data.tailoring_path = str(preferred_tailoring.relative_to(content.root))
+ if content_type in ("archive", "rpm"):
+ self._addon_data.tailoring_path = str(preferred_tailoring.relative_to(content.root))
+ else:
+ self._addon_data.tailoring_path = str(preferred_tailoring)
def use_system_content(self, content=None):
clear_all(self._addon_data)
@@ -403,6 +414,7 @@ def _xccdf_content(self):
def find_expected_usable_content(self, relative_expected_content_path):
content_path = self.root / relative_expected_content_path
+ content_path = content_path.resolve()
eligible_main_content = (self._datastream_content(), self._xccdf_content())
if content_path in eligible_main_content:
diff --git a/org_fedora_oscap/service/kickstart.py b/org_fedora_oscap/service/kickstart.py
index ce049d1..6698978 100644
--- a/org_fedora_oscap/service/kickstart.py
+++ b/org_fedora_oscap/service/kickstart.py
@@ -17,6 +17,7 @@
#
import logging
import re
+import os
from pyanaconda.core.kickstart import KickstartSpecification
from pyanaconda.core.kickstart.addon import AddonData
@@ -146,7 +147,14 @@ def _parse_profile_id(self, value):
self.policy_data.profile_id = value
def _parse_content_path(self, value):
- # need to be checked?
+ absolute_content_path_in_archive_like_file = (
+ self.policy_data.content_type in ("archive", "rpm")
+ and os.path.isabs(value))
+ if absolute_content_path_in_archive_like_file:
+ msg = (
+ "When using archives-like content input, the corresponding content path "
+ "has to be relative, but got '{value}'.")
+ raise KickstartValueError(msg)
self.policy_data.content_path = value
def _parse_cpe_path(self, value):
diff --git a/tests/test_content_discovery.py b/tests/test_content_discovery.py
index 5463c9a..d6e14d9 100644
--- a/tests/test_content_discovery.py
+++ b/tests/test_content_discovery.py
@@ -1,3 +1,5 @@
+import os
+
import pytest
import org_fedora_oscap.content_discovery as tested_module
@@ -46,3 +48,22 @@ def test_reduce(labelled_files):
reduced = bringer.reduce_files(labelled_files, "cpe", ["C"])
assert reduced == labelled_files
+
+
+def test_path_presence_detection():
+ list_of_paths = ["file1", os.path.abspath("file2"), os.path.abspath("dir///file3")]
+
+ list_of_paths_in_list = [
+ "file1", os.path.abspath("file1"), "./file1",
+ "file2", "dir/..//file2",
+ "dir/../dir/file3", "dir/file3",
+ ]
+ list_of_paths_not_in_list = [
+ "../file1", "file3"
+ ]
+
+ for path in list_of_paths_in_list:
+ assert tested_module.path_is_present_among_paths(path, list_of_paths)
+
+ for path in list_of_paths_not_in_list:
+ assert not tested_module.path_is_present_among_paths(path, list_of_paths)
From 9808e21ff4e6a4ce878d556f26cfddede04c870f Mon Sep 17 00:00:00 2001
From: Matej Tyc <matyc@redhat.com>
Date: Wed, 16 Nov 2022 15:35:09 +0100
Subject: [PATCH 2/3] Compare paths according to their equivalence
not according their arbitrary string form
---
org_fedora_oscap/content_discovery.py | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/org_fedora_oscap/content_discovery.py b/org_fedora_oscap/content_discovery.py
index ebef618..9da44e7 100644
--- a/org_fedora_oscap/content_discovery.py
+++ b/org_fedora_oscap/content_discovery.py
@@ -46,10 +46,14 @@ def clear_all(data):
data.dry_run = False
+def paths_are_equivalent(p1, p2):
+ return os.path.abspath(p1) == os.path.abspath(p2)
+
+
def path_is_present_among_paths(path, paths):
absolute_path = os.path.abspath(path)
for second_path in paths:
- if absolute_path == os.path.abspath(second_path):
+ if paths_are_equivalent(path, second_path):
return True
return False
@@ -237,7 +241,7 @@ def reduce_files(self, labelled_files, expected_path, categories):
)
raise RuntimeError(msg)
for path, label in labelled_files.items():
- if label in categories and path != expected_path:
+ if label in categories and not paths_are_equivalent(path, expected_path):
continue
reduced_files[path] = label
return reduced_files
From b422abba29a9304225c97e79945cf0f1a21de810 Mon Sep 17 00:00:00 2001
From: Matej Tyc <matyc@redhat.com>
Date: Tue, 22 Nov 2022 15:44:13 +0100
Subject: [PATCH 3/3] Fix tests when relative content paths are enforced
---
org_fedora_oscap/content_discovery.py | 2 +-
org_fedora_oscap/service/installation.py | 7 ++++++-
tests/test_content_discovery.py | 3 ++-
tests/test_installation.py | 2 +-
tests/test_kickstart.py | 6 +++---
tests/test_service_kickstart.py | 19 +++++++++++++++----
6 files changed, 28 insertions(+), 11 deletions(-)
diff --git a/org_fedora_oscap/content_discovery.py b/org_fedora_oscap/content_discovery.py
index 9da44e7..61c4930 100644
--- a/org_fedora_oscap/content_discovery.py
+++ b/org_fedora_oscap/content_discovery.py
@@ -239,7 +239,7 @@ def reduce_files(self, labelled_files, expected_path, categories):
f"Expected a file {expected_path} to be part of the supplied content, "
f"but it was not the case, got only {list(labelled_files.keys())}"
)
- raise RuntimeError(msg)
+ raise content_handling.ContentHandlingError(msg)
for path, label in labelled_files.items():
if label in categories and not paths_are_equivalent(path, expected_path):
continue
diff --git a/org_fedora_oscap/service/installation.py b/org_fedora_oscap/service/installation.py
index f667479..5ca102c 100644
--- a/org_fedora_oscap/service/installation.py
+++ b/org_fedora_oscap/service/installation.py
@@ -23,10 +23,11 @@
from pyanaconda.core import util
from pyanaconda.modules.common.task import Task
from pyanaconda.modules.common.errors.installation import NonCriticalInstallationError
+from pykickstart.errors import KickstartValueError
from org_fedora_oscap import common, data_fetch, rule_handling, utils
from org_fedora_oscap.common import _, get_packages_data, set_packages_data
-from org_fedora_oscap.content_handling import ContentCheckError
+from org_fedora_oscap.content_handling import ContentCheckError, ContentHandlingError
from org_fedora_oscap import content_discovery
log = logging.getLogger("anaconda")
@@ -48,6 +49,10 @@ def _handle_error(exception):
msg = _("There was an error fetching and loading the security content:\n" +
f"{str(exception)}")
terminate(msg)
+ elif isinstance(exception, ContentHandlingError):
+ msg = _("There was a problem with the supplied security content:\n" +
+ f"{str(exception)}")
+ terminate(msg)
else:
msg = _("There was an unexpected problem with the supplied content.")
diff --git a/tests/test_content_discovery.py b/tests/test_content_discovery.py
index d6e14d9..d664ede 100644
--- a/tests/test_content_discovery.py
+++ b/tests/test_content_discovery.py
@@ -3,6 +3,7 @@
import pytest
import org_fedora_oscap.content_discovery as tested_module
+from org_fedora_oscap import content_handling
@pytest.fixture
@@ -43,7 +44,7 @@ def test_reduce(labelled_files):
assert len(reduced) == len(labelled_files) - d_count - x_count + 1
assert "dir/XCCDF" in reduced
- with pytest.raises(RuntimeError, match="dir/datastream4"):
+ with pytest.raises(content_handling.ContentHandlingError, match="dir/datastream4"):
bringer.reduce_files(labelled_files, "dir/datastream4", ["D"])
reduced = bringer.reduce_files(labelled_files, "cpe", ["C"])
diff --git a/tests/test_installation.py b/tests/test_installation.py
index 302f5ed..2cf78db 100644
--- a/tests/test_installation.py
+++ b/tests/test_installation.py
@@ -76,7 +76,7 @@ def test_fetch_content_task(caplog, file_path, content_path):
assert task.name == "Fetch the content, and optionally perform check or archive extraction"
- with pytest.raises(NonCriticalInstallationError, match="Couldn't find a valid datastream"):
+ with pytest.raises(NonCriticalInstallationError, match="Expected a file"):
task.run()
diff --git a/tests/test_kickstart.py b/tests/test_kickstart.py
index d4cfda2..60fe63d 100644
--- a/tests/test_kickstart.py
+++ b/tests/test_kickstart.py
@@ -163,7 +163,7 @@ def test_rpm(service):
content-url = http://example.com/oscap_content.rpm
content-type = RPM
profile = Web Server
- xccdf-path = /usr/share/oscap/xccdf.xml
+ xccdf-path = usr/share/oscap/xccdf.xml
%end
"""
check_ks_input(service, ks_in)
@@ -198,7 +198,7 @@ def test_rpm_with_wrong_suffix(service):
content-url = http://example.com/oscap_content.xml
content-type = RPM
profile = Web Server
- xccdf-path = /usr/share/oscap/xccdf.xml
+ xccdf-path = usr/share/oscap/xccdf.xml
%end
"""
check_ks_input(service, ks_in, errors=[

View File

@ -0,0 +1,66 @@
From 5e91b77a0e96b811d95b7fa48cfd8f645a5616eb Mon Sep 17 00:00:00 2001
From: Matej Tyc <matyc@redhat.com>
Date: Wed, 18 Jan 2023 16:36:36 +0100
Subject: [PATCH 1/2] Handle the URL with missing ://
---
org_fedora_oscap/content_discovery.py | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/org_fedora_oscap/content_discovery.py b/org_fedora_oscap/content_discovery.py
index 61c4930..76959cd 100644
--- a/org_fedora_oscap/content_discovery.py
+++ b/org_fedora_oscap/content_discovery.py
@@ -88,9 +88,14 @@ def content_uri(self):
@content_uri.setter
def content_uri(self, uri):
- scheme, path = uri.split("://", 1)
- self.content_uri_path = path
- self.content_uri_scheme = scheme
+ scheme_and_maybe_path = uri.split("://")
+ if len(scheme_and_maybe_path) == 1:
+ msg = (
+ f"Invalid supplied content URL '{uri}', "
+ "use the 'scheme://path' form.")
+ raise KickstartValueError(msg)
+ self.content_uri_path = scheme_and_maybe_path[1]
+ self.content_uri_scheme = scheme_and_maybe_path[0]
def fetch_content(self, what_if_fail, ca_certs_path=""):
"""
@@ -101,7 +106,10 @@ def fetch_content(self, what_if_fail, ca_certs_path=""):
should handle them in the calling layer.
ca_certs_path: Path to the HTTPS certificate file
"""
- self.content_uri = self._addon_data.content_url
+ try:
+ self.content_uri = self._addon_data.content_url
+ except Exception as exc:
+ what_if_fail(exc)
shutil.rmtree(self.CONTENT_DOWNLOAD_LOCATION, ignore_errors=True)
self.CONTENT_DOWNLOAD_LOCATION.mkdir(parents=True, exist_ok=True)
fetching_thread_name = self._fetch_files(
From 9588cb840d8c6193157e677decad843539bd2819 Mon Sep 17 00:00:00 2001
From: Matej Tyc <matyc@redhat.com>
Date: Wed, 18 Jan 2023 16:36:53 +0100
Subject: [PATCH 2/2] Stop fetching when there is an invalid profile
---
org_fedora_oscap/gui/spokes/oscap.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/org_fedora_oscap/gui/spokes/oscap.py b/org_fedora_oscap/gui/spokes/oscap.py
index 97c4553..7765fbf 100644
--- a/org_fedora_oscap/gui/spokes/oscap.py
+++ b/org_fedora_oscap/gui/spokes/oscap.py
@@ -505,6 +505,8 @@ def update_progress_label(msg):
if self._policy_data.profile_id and not selected:
# profile ID given, but it was impossible to select it -> invalid
# profile ID given
+ with self._fetch_flag_lock:
+ self._fetching = False
self._invalid_profile_id()
return

View File

@ -10,7 +10,7 @@
Name: oscap-anaconda-addon
Version: 2.0.0
Release: 12%{?dist}
Release: 16%{?dist}
Summary: Anaconda addon integrating OpenSCAP to the installation process
License: GPLv2+
@ -30,6 +30,10 @@ Patch7: oscap-anaconda-addon-1.2.2-dbus_show_integration-PR_182.patch
Patch8: oscap-anaconda-addon-2.1.0-unified_help-PR_192.patch
Patch9: oscap-anaconda-addon-2.0.1-absent_appstream-PR_185.patch
Patch10: oscap-anaconda-addon-2.0.1-fix_strings-PR_207.patch
Patch11: oscap-anaconda-addon-2.1.0-clicking_fix-PR_223.patch
Patch12: oscap-anaconda-addon-2.1.0-archive_handling-PR_224.patch
Patch13: oscap-anaconda-addon-2.1.0-content_paths-PR_227.patch
Patch14: oscap-anaconda-addon-null-http_only_uri-PR_233.patch
BuildArch: noarch
BuildRequires: make
@ -69,6 +73,25 @@ make install DESTDIR=%{buildroot}
%doc COPYING ChangeLog README.md
%changelog
* Wed Feb 08 2023 Matej Tyc <matyc@redhat.com> - 2.0.0-16
- Update translations
Resolves: rhbz#2139667
Resolves: rhbz#2150877
* Mon Jan 23 2023 Matej Tyc <matyc@redhat.com> - 2.0.0-15
- Fix a reaction to invalid content URI
Resolves: rhbz#2148508
* Fri Nov 25 2022 Matej Tyc <matyc@redhat.com> - 2.0.0-14
- Fix regression introduced when fixing content archive input
Resolves: rhbz#2129008
* Fri Nov 11 2022 Matej Tyc <matyc@redhat.com> - 2.0.0-13
- Fix problems with handling multi-datastream archives
Resolves: rhbz#2129846
- Fix a crash when compulsively clicking in the GUI
Resolves: rhbz#2127502
* Fri Jun 10 2022 Matej Tyc <matyc@redhat.com> - 2.0.0-12
- Remove the firstboot remediation feature completely.
We can't have it, while maintaining the standard UX.