From 907549e21fb729a50bd9f886ce3c5f6e9ac7b584 Mon Sep 17 00:00:00 2001 From: Petr Lautrbach Date: Tue, 14 Nov 2023 20:40:57 +0100 Subject: [PATCH] SELinux userspace 3.6-rc1 release --- .gitignore | 1 + ...t-to-Xephyr-as-it-works-better-with-.patch | 4 +- ...t-be-verbose-if-you-are-not-on-a-tty.patch | 4 +- ...rate-Handle-more-reserved-port-types.patch | 4 +- ...hbox-window-manager-instead-of-openb.patch | 10 +- 0005-Use-SHA-2-instead-of-SHA-1.patch | 140 +- 0006-python-chcat-Improve-man-pages.patch | 74 - ...-sepolicy-Fix-spec-file-dependencies.patch | 7 +- ...llow-Add-missing-options-to-man-page.patch | 79 - ...007-sepolicy-port-to-dnf4-python-API.patch | 2 +- 0008-python-semanage-Improve-man-pages.patch | 464 ---- ...dit2allow-Remove-unused-debug-option.patch | 29 - ...ycoreutils-Add-examples-to-man-pages.patch | 308 --- 0011-python-sepolicy-Improve-man-pages.patch | 390 ---- 0012-sandbox-Add-examples-to-man-pages.patch | 128 -- ...Fix-template-for-confined-user-polic.patch | 93 - ...ormat-strings-for-proper-localizatio.patch | 455 ---- ...ard-formating-from-localized-strings.patch | 148 -- ...rop-unnecessary-import-from-seobject.patch | 32 - 0018-python-update-python.pot.patch | 2009 ----------------- policycoreutils.spec | 89 +- sources | 2 +- 22 files changed, 49 insertions(+), 4423 deletions(-) delete mode 100644 0006-python-chcat-Improve-man-pages.patch rename 0014-python-sepolicy-Fix-spec-file-dependencies.patch => 0006-python-sepolicy-Fix-spec-file-dependencies.patch (92%) delete mode 100644 0007-python-audit2allow-Add-missing-options-to-man-page.patch rename 0019-sepolicy-port-to-dnf4-python-API.patch => 0007-sepolicy-port-to-dnf4-python-API.patch (97%) delete mode 100644 0008-python-semanage-Improve-man-pages.patch delete mode 100644 0009-python-audit2allow-Remove-unused-debug-option.patch delete mode 100644 0010-policycoreutils-Add-examples-to-man-pages.patch delete mode 100644 0011-python-sepolicy-Improve-man-pages.patch delete mode 100644 0012-sandbox-Add-examples-to-man-pages.patch delete mode 100644 0013-python-sepolicy-Fix-template-for-confined-user-polic.patch delete mode 100644 0015-python-improve-format-strings-for-proper-localizatio.patch delete mode 100644 0016-python-Drop-hard-formating-from-localized-strings.patch delete mode 100644 0017-semanage-Drop-unnecessary-import-from-seobject.patch delete mode 100644 0018-python-update-python.pot.patch diff --git a/.gitignore b/.gitignore index 90492d8..f4b9319 100644 --- a/.gitignore +++ b/.gitignore @@ -352,3 +352,4 @@ policycoreutils-2.0.83.tgz /selinux-python.zip /selinux-sandbox.zip /selinux-gui.zip +/selinux-3.6-rc1.tar.gz diff --git a/0001-sandbox-add-reset-to-Xephyr-as-it-works-better-with-.patch b/0001-sandbox-add-reset-to-Xephyr-as-it-works-better-with-.patch index b166f5d..ed3f2a4 100644 --- a/0001-sandbox-add-reset-to-Xephyr-as-it-works-better-with-.patch +++ b/0001-sandbox-add-reset-to-Xephyr-as-it-works-better-with-.patch @@ -1,4 +1,4 @@ -From eabd9ffb34666ef467106ef10d8a0e98bbe35f79 Mon Sep 17 00:00:00 2001 +From 10542b4fde99a089950126b008105c14b9452da1 Mon Sep 17 00:00:00 2001 From: Petr Lautrbach Date: Thu, 20 Aug 2015 12:58:41 +0200 Subject: [PATCH] sandbox: add -reset to Xephyr as it works better with it in @@ -23,5 +23,5 @@ index eaa500d08143..4774528027ef 100644 cat > ~/seremote << __EOF #!/bin/sh -- -2.39.1 +2.41.0 diff --git a/0002-Don-t-be-verbose-if-you-are-not-on-a-tty.patch b/0002-Don-t-be-verbose-if-you-are-not-on-a-tty.patch index e38c3d0..87f5561 100644 --- a/0002-Don-t-be-verbose-if-you-are-not-on-a-tty.patch +++ b/0002-Don-t-be-verbose-if-you-are-not-on-a-tty.patch @@ -1,4 +1,4 @@ -From 4affa1d7888b8489058d2942ea4431ff65f2430e Mon Sep 17 00:00:00 2001 +From 5dd7c8460230bd27170725bbb27014855652f356 Mon Sep 17 00:00:00 2001 From: Dan Walsh Date: Fri, 14 Feb 2014 12:32:12 -0500 Subject: [PATCH] Don't be verbose if you are not on a tty @@ -21,5 +21,5 @@ index 166af6f360a2..ebe64563c7d7 100755 THREADS="" RPMFILES="" -- -2.39.1 +2.41.0 diff --git a/0003-sepolicy-generate-Handle-more-reserved-port-types.patch b/0003-sepolicy-generate-Handle-more-reserved-port-types.patch index 0d3a253..20134a1 100644 --- a/0003-sepolicy-generate-Handle-more-reserved-port-types.patch +++ b/0003-sepolicy-generate-Handle-more-reserved-port-types.patch @@ -1,4 +1,4 @@ -From dbebbe4ff79fe790425ca8740e5ace54396671f2 Mon Sep 17 00:00:00 2001 +From 6213773ec3a6364cac48eb39d8ecfb11b5addc12 Mon Sep 17 00:00:00 2001 From: Masatake YAMATO Date: Thu, 14 Dec 2017 15:57:58 +0900 Subject: [PATCH] sepolicy-generate: Handle more reserved port types @@ -68,5 +68,5 @@ index b6df3e91160b..36a3ea1196b1 100644 dict[(p['low'], p['high'], p['protocol'])] = (p['type'], p.get('range')) return dict -- -2.39.1 +2.41.0 diff --git a/0004-sandbox-Use-matchbox-window-manager-instead-of-openb.patch b/0004-sandbox-Use-matchbox-window-manager-instead-of-openb.patch index 3b29996..a920866 100644 --- a/0004-sandbox-Use-matchbox-window-manager-instead-of-openb.patch +++ b/0004-sandbox-Use-matchbox-window-manager-instead-of-openb.patch @@ -1,4 +1,4 @@ -From 42b676e7677d4efe5383558afb3de962948f7a1d Mon Sep 17 00:00:00 2001 +From 7bf4ac2438df52b259b9d3d539b9a9e889cc7424 Mon Sep 17 00:00:00 2001 From: Petr Lautrbach Date: Wed, 18 Jul 2018 09:09:35 +0200 Subject: [PATCH] sandbox: Use matchbox-window-manager instead of openbox @@ -33,17 +33,17 @@ index a2762a7d215a..a32a33ea3cf6 100644 parser.add_option("-l", "--level", dest="level", diff --git a/sandbox/sandbox.8 b/sandbox/sandbox.8 -index 1ee0ecea96d1..775e4b231204 100644 +index 095b9e27042d..1c1870190e51 100644 --- a/sandbox/sandbox.8 +++ b/sandbox/sandbox.8 @@ -80,7 +80,7 @@ Specifies the windowsize when creating an X based Sandbox. The default windowsiz \fB\-W\fR \fB\-\-windowmanager\fR - Select alternative window manager to run within + Select alternative window manager to run within .B sandbox \-X. -Default to /usr/bin/openbox. +Default to /usr/bin/matchbox-window-manager. .TP - \fB\-X\fR + \fB\-X\fR Create an X based Sandbox for gui apps, temporary files for diff --git a/sandbox/sandboxX.sh b/sandbox/sandboxX.sh index 4774528027ef..c211ebc14549 100644 @@ -71,5 +71,5 @@ index 4774528027ef..c211ebc14549 100644 export DISPLAY=:$D cat > ~/seremote << __EOF -- -2.39.1 +2.41.0 diff --git a/0005-Use-SHA-2-instead-of-SHA-1.patch b/0005-Use-SHA-2-instead-of-SHA-1.patch index 518980e..7025395 100644 --- a/0005-Use-SHA-2-instead-of-SHA-1.patch +++ b/0005-Use-SHA-2-instead-of-SHA-1.patch @@ -1,4 +1,4 @@ -From 74e2d05df2ed090909c0ac6fd7ff7816b94d83ce Mon Sep 17 00:00:00 2001 +From 94859162dbf9d2ccd4ffb923720c654a4cb9150a Mon Sep 17 00:00:00 2001 From: Petr Lautrbach Date: Fri, 30 Jul 2021 14:14:37 +0200 Subject: [PATCH] Use SHA-2 instead of SHA-1 @@ -6,17 +6,14 @@ Content-type: text/plain The use of SHA-1 in RHEL9 is deprecated --- - policycoreutils/setfiles/restorecon.8 | 10 +++++----- - policycoreutils/setfiles/restorecon_xattr.8 | 8 ++++---- - policycoreutils/setfiles/restorecon_xattr.c | 12 ++++++------ - policycoreutils/setfiles/ru/restorecon.8 | 8 ++++---- - policycoreutils/setfiles/ru/restorecon_xattr.8 | 10 +++++----- - policycoreutils/setfiles/ru/setfiles.8 | 8 ++++---- - policycoreutils/setfiles/setfiles.8 | 10 +++++----- - 7 files changed, 33 insertions(+), 33 deletions(-) + policycoreutils/setfiles/restorecon.8 | 10 +++++----- + policycoreutils/setfiles/restorecon_xattr.8 | 8 ++++---- + policycoreutils/setfiles/restorecon_xattr.c | 12 ++++++------ + policycoreutils/setfiles/setfiles.8 | 10 +++++----- + 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/policycoreutils/setfiles/restorecon.8 b/policycoreutils/setfiles/restorecon.8 -index e07db2c87dc4..dbd55ce7c512 100644 +index c3cc5c9b0e52..6160aced5922 100644 --- a/policycoreutils/setfiles/restorecon.8 +++ b/policycoreutils/setfiles/restorecon.8 @@ -95,14 +95,14 @@ display usage information and exit. @@ -56,7 +53,7 @@ index e07db2c87dc4..dbd55ce7c512 100644 and provided the .B \-n diff --git a/policycoreutils/setfiles/restorecon_xattr.8 b/policycoreutils/setfiles/restorecon_xattr.8 -index e04528e60824..4b1ce304d995 100644 +index 51d12a4dbb80..09bfd8c40ab4 100644 --- a/policycoreutils/setfiles/restorecon_xattr.8 +++ b/policycoreutils/setfiles/restorecon_xattr.8 @@ -23,7 +23,7 @@ or @@ -136,125 +133,8 @@ index 31fb82fd2099..bc22d3fd4560 100644 printf("\n"); } -diff --git a/policycoreutils/setfiles/ru/restorecon.8 b/policycoreutils/setfiles/ru/restorecon.8 -index 9be3a63db356..745135020f4b 100644 ---- a/policycoreutils/setfiles/ru/restorecon.8 -+++ b/policycoreutils/setfiles/ru/restorecon.8 -@@ -82,11 +82,11 @@ restorecon \- восстановить SELinux-контексты безопас - игнорировать файлы, которые не существуют. - .TP - .B \-I --игнорировать дайджест, чтобы принудительно проверить метки, даже если хранимый дайджест SHA1 соответствует дайджесту SHA1 файлов спецификации. Затем (при условии отсутствия ошибок) дайджест будет обновлён. Более подробные сведения доступны в разделе -+игнорировать дайджест, чтобы принудительно проверить метки, даже если хранимый дайджест SHA256 соответствует дайджесту SHA256 файлов спецификации. Затем (при условии отсутствия ошибок) дайджест будет обновлён. Более подробные сведения доступны в разделе - .B ПРИМЕЧАНИЯ. - .TP - .B \-D --установить или обновить дайджесты SHA1 для любых каталогов. Используйте этот параметр, чтобы включить использование расширенного атрибута -+установить или обновить дайджесты SHA256 для любых каталогов. Используйте этот параметр, чтобы включить использование расширенного атрибута - .IR security.restorecon_last. - .TP - .B \-m -@@ -159,7 +159,7 @@ GNU - .B \-D - команды - .B restorecon --обеспечит сохранение дайджеста SHA1 файлов спецификации по умолчанию в расширенном атрибуте с именем -+обеспечит сохранение дайджеста SHA256 файлов спецификации по умолчанию в расширенном атрибуте с именем - .IR security.restorecon_last - для каталогов, указанных в соответствующих путях - .IR pathname \ ... -@@ -173,7 +173,7 @@ GNU - .sp - Параметр - .B \-I --позволяет игнорировать дайджест SHA1 из каждого каталога, указанного в -+позволяет игнорировать дайджест SHA256 из каждого каталога, указанного в - .IR pathname \ ... - , и, при условии, что НЕ установлен параметр - .B \-n -diff --git a/policycoreutils/setfiles/ru/restorecon_xattr.8 b/policycoreutils/setfiles/ru/restorecon_xattr.8 -index 41c441b8c5c2..25c4c3033334 100644 ---- a/policycoreutils/setfiles/ru/restorecon_xattr.8 -+++ b/policycoreutils/setfiles/ru/restorecon_xattr.8 -@@ -23,7 +23,7 @@ restorecon_xattr \- управление записями расширенных - - .SH "ОПИСАНИЕ" - .B restorecon_xattr --покажет дайджесты SHA1, добавленные в расширенные атрибуты -+покажет дайджесты SHA256, добавленные в расширенные атрибуты - .I security.restorecon_last, - или полностью удалит эти атрибуты. Эти атрибуты устанавливаются командой - .BR restorecon (8) -@@ -47,11 +47,11 @@ restorecon_xattr \- управление записями расширенных - .sp - По умолчанию - .B restorecon_xattr --показывает дайджесты SHA1, добавляя в конце "Match", если они соответствуют установленному по умолчанию файлу спецификации или файлу спецификации -+показывает дайджесты SHA256, добавляя в конце "Match", если они соответствуют установленному по умолчанию файлу спецификации или файлу спецификации - .I specfile, - который установлен с помощью параметра - .B \-f. --Несоответствующие дайджесты SHA1 будут показаны с добавлением "No Match" в конце. -+Несоответствующие дайджесты SHA256 будут показаны с добавлением "No Match" в конце. - Эту возможность можно отключить с помощью параметра - .B \-n. - -@@ -81,7 +81,7 @@ restorecon_xattr \- управление записями расширенных - рекурсивно спускаться по каталогам. - .TP - .B \-v --показать дайджест SHA1, созданный установленным файлом спецификации. -+показать дайджест SHA256, созданный установленным файлом спецификации. - .TP - .B \-e - .I directory -@@ -97,7 +97,7 @@ restorecon_xattr \- управление записями расширенных - .BR file_contexts (5). - Он будет использоваться - .BR selabel_open (3) --для получения набора записей меток; получение дайджеста SHA1 выполняется с помощью -+для получения набора записей меток; получение дайджеста SHA256 выполняется с помощью - .BR selabel_digest (3). - Если этот параметр не указан, будет использоваться файл file_contexts по умолчанию. - -diff --git a/policycoreutils/setfiles/ru/setfiles.8 b/policycoreutils/setfiles/ru/setfiles.8 -index 910101452625..7f2daa09191b 100644 ---- a/policycoreutils/setfiles/ru/setfiles.8 -+++ b/policycoreutils/setfiles/ru/setfiles.8 -@@ -69,11 +69,11 @@ setfiles \- установить SELinux-контексты безопаснос - игнорировать файлы, которые не существуют. - .TP - .B \-I --игнорировать дайджест, чтобы принудительно проверить метки, даже если хранимый дайджест SHA1 соответствует дайджесту SHA1 файлов спецификации. Затем (при условии отсутствия ошибок) дайджест будет обновлён. Более подробные сведения доступны в разделе -+игнорировать дайджест, чтобы принудительно проверить метки, даже если хранимый дайджест SHA256 соответствует дайджесту SHA256 файлов спецификации. Затем (при условии отсутствия ошибок) дайджест будет обновлён. Более подробные сведения доступны в разделе - .B ПРИМЕЧАНИЯ. - .TP - .B \-D --установить или обновить дайджесты SHA1 для любых каталогов. Используйте этот параметр, чтобы включить использование расширенного атрибута -+установить или обновить дайджесты SHA256 для любых каталогов. Используйте этот параметр, чтобы включить использование расширенного атрибута - .IR security.restorecon_last. - .TP - .B \-l -@@ -186,7 +186,7 @@ GNU - .B \-D - команды - .B setfiles . --Он обеспечивает сохранение дайджеста SHA1 файла спецификации -+Он обеспечивает сохранение дайджеста SHA256 файла спецификации - .B spec_file - в расширенном атрибуте с именем - .IR security.restorecon_last -@@ -204,7 +204,7 @@ GNU - .sp - Параметр - .B \-I --позволяет игнорировать дайджест SHA1 из каждого каталога, указанного в -+позволяет игнорировать дайджест SHA256 из каждого каталога, указанного в - .IR pathname \ ... - , и, при условии, что НЕ установлен параметр - .B \-n diff --git a/policycoreutils/setfiles/setfiles.8 b/policycoreutils/setfiles/setfiles.8 -index bf26e161a71d..36fe6b369548 100644 +index ee01725050bb..57c663a99d67 100644 --- a/policycoreutils/setfiles/setfiles.8 +++ b/policycoreutils/setfiles/setfiles.8 @@ -95,14 +95,14 @@ display usage information and exit. @@ -294,5 +174,5 @@ index bf26e161a71d..36fe6b369548 100644 and provided the .B \-n -- -2.39.1 +2.41.0 diff --git a/0006-python-chcat-Improve-man-pages.patch b/0006-python-chcat-Improve-man-pages.patch deleted file mode 100644 index 4672bf8..0000000 --- a/0006-python-chcat-Improve-man-pages.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 6c3527eeada62cbec8f58eb1aa55b76bb0e6018d Mon Sep 17 00:00:00 2001 -From: Vit Mojzis -Date: Thu, 4 May 2023 14:04:47 +0200 -Subject: [PATCH] python/chcat: Improve man pages - -- Explain applying range/list of categories -- "-d" removes all categories of given file/user -- Add examples - -Signed-off-by: Vit Mojzis -Acked-by: James Carter ---- - python/chcat/chcat.8 | 23 ++++++++++++++++------- - 1 file changed, 16 insertions(+), 7 deletions(-) - -diff --git a/python/chcat/chcat.8 b/python/chcat/chcat.8 -index d095a255..3e1f7ca2 100644 ---- a/python/chcat/chcat.8 -+++ b/python/chcat/chcat.8 -@@ -1,6 +1,6 @@ - .TH CHCAT "8" "September 2005" "chcat" "User Commands" - .SH NAME --chcat \- change file SELinux security category -+chcat \- change SELinux security categories of files/users - .SH SYNOPSIS - .B chcat - \fIcategory file\fR... -@@ -25,23 +25,33 @@ chcat \- change file SELinux security category - .br - .SH DESCRIPTION - .PP --Change/Remove the security \fIcategory\fR for each \fIfile\fR or \fIuser\fR. --.PP --Use +/- to add/remove categories from a \fIfile\fR or \fIuser\fR. -+Use +/- to add/remove categories from a \fIfile\fR or \fIuser\fR (only a single category can be specified at a time). Or specify the desired list/range of categories to be applied (replacing the existing categories). - .PP - .B - Note: --When removing a category you must specify '\-\-' on the command line before using the \-Category syntax. This tells the command that you have finished entering options and are now specifying a category name instead. -+When removing a category you must specify '\-\-' on the command line before using the \-Category syntax. This tells the command that you have finished entering options and are now specifying a category name instead. - - .TP - \fB\-d\fR --delete the category from each FILE/USER. -+delete all categories from given FILE/USER. - .TP - \fB\-L\fR - list available categories. - .TP - \fB\-l\fR - Tells chcat to operate on users instead of files. -+ -+.SH EXAMPLE -+.nf -+Replace categories of user "test" with c0.c6 -+# chcat -l c0.c6 test -+Add category c1023 to user "test" -+# chcat -l +c1023 test -+Remove category c5 from file "file" -+# chcat -- -c5 file -+Remove all categories from file "file" -+# chcat -d file -+ - .SH "SEE ALSO" - .TP - chcon(1), selinux(8), semanage(8) -@@ -52,4 +62,3 @@ When operating on files this script wraps the chcon command. - /etc/selinux/{SELINUXTYPE}/setrans.conf - .br - /etc/selinux/{SELINUXTYPE}/seusers -- --- -2.40.0 - diff --git a/0014-python-sepolicy-Fix-spec-file-dependencies.patch b/0006-python-sepolicy-Fix-spec-file-dependencies.patch similarity index 92% rename from 0014-python-sepolicy-Fix-spec-file-dependencies.patch rename to 0006-python-sepolicy-Fix-spec-file-dependencies.patch index 0f178b9..817224b 100644 --- a/0014-python-sepolicy-Fix-spec-file-dependencies.patch +++ b/0006-python-sepolicy-Fix-spec-file-dependencies.patch @@ -1,7 +1,8 @@ -From 057ea895d85ae8297749778a3dcfc4ff7489ab37 Mon Sep 17 00:00:00 2001 +From f364324e66cb2bf014362c5c1d1b6a2bcf98d6ff Mon Sep 17 00:00:00 2001 From: Vit Mojzis Date: Tue, 30 May 2023 09:07:28 +0200 Subject: [PATCH] python/sepolicy: Fix spec file dependencies +Content-type: text/plain semanage is part of policycoreutils-python-utils package, selinuxenabled is part of libselinux-utils (required by ^^^) and restorecon/load_policy @@ -13,7 +14,7 @@ Signed-off-by: Vit Mojzis 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/python/sepolicy/sepolicy/templates/spec.py b/python/sepolicy/sepolicy/templates/spec.py -index 16a22081..cb3b2f63 100644 +index 433c298a17e0..a6d4508bb670 100644 --- a/python/sepolicy/sepolicy/templates/spec.py +++ b/python/sepolicy/sepolicy/templates/spec.py @@ -11,18 +11,20 @@ Version: 1.0 @@ -43,5 +44,5 @@ index 16a22081..cb3b2f63 100644 mid_section="""\ -- -2.40.0 +2.41.0 diff --git a/0007-python-audit2allow-Add-missing-options-to-man-page.patch b/0007-python-audit2allow-Add-missing-options-to-man-page.patch deleted file mode 100644 index 3c657b7..0000000 --- a/0007-python-audit2allow-Add-missing-options-to-man-page.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 11325baab31cec170e01c2548d09e540d6a2e67a Mon Sep 17 00:00:00 2001 -From: Vit Mojzis -Date: Thu, 4 May 2023 14:04:48 +0200 -Subject: [PATCH] python/audit2allow: Add missing options to man page - -Signed-off-by: Vit Mojzis ---- - python/audit2allow/audit2allow.1 | 24 +++++++++++++++++++----- - 1 file changed, 19 insertions(+), 5 deletions(-) - -diff --git a/python/audit2allow/audit2allow.1 b/python/audit2allow/audit2allow.1 -index 04ec3239..c31021d3 100644 ---- a/python/audit2allow/audit2allow.1 -+++ b/python/audit2allow/audit2allow.1 -@@ -40,10 +40,10 @@ - Read input from audit and message log, conflicts with \-i - .TP - .B "\-b" | "\-\-boot" --Read input from audit messages since last boot conflicts with \-i -+Read input from audit messages since last boot, conflicts with \-i - .TP - .B "\-d" | "\-\-dmesg" --Read input from output of -+Read input from output of - .I /bin/dmesg. - Note that all audit messages are not available via dmesg when - auditd is running; use "ausearch \-m avc | audit2allow" or "\-a" instead. -@@ -51,15 +51,22 @@ auditd is running; use "ausearch \-m avc | audit2allow" or "\-a" instead. - .B "\-D" | "\-\-dontaudit" - Generate dontaudit rules (Default: allow) - .TP -+.B "\-e" | "\-\-explain" -+Fully explain generated output -+.TP - .B "\-h" | "\-\-help" - Print a short usage message - .TP - .B "\-i " | "\-\-input " --read input from -+Read input from - .I - .TP -+.B "\-\-interface-info=" -+Read interface information from -+.I -+.TP - .B "\-l" | "\-\-lastreload" --read input only after last policy reload -+Read input only after last policy reload - .TP - .B "\-m " | "\-\-module " - Generate module/require output -@@ -70,8 +77,12 @@ Generate loadable module package, conflicts with \-o - .B "\-p " | "\-\-policy " - Policy file to use for analysis - .TP -+.B "\-\-perm-map " -+Read permission map from -+.I -+.TP - .B "\-o " | "\-\-output " --append output to -+Append output to - .I - .TP - .B "\-r" | "\-\-requires" -@@ -85,6 +96,9 @@ This is the default behavior. - Generate reference policy using installed macros. - This attempts to match denials against interfaces and may be inaccurate. - .TP -+.B "\-t " | "\-\-type=" -+Only process messages with a type that matches this regex -+.TP - .B "\-x" | "\-\-xperms" - Generate extended permission access vector rules - .TP --- -2.40.0 - diff --git a/0019-sepolicy-port-to-dnf4-python-API.patch b/0007-sepolicy-port-to-dnf4-python-API.patch similarity index 97% rename from 0019-sepolicy-port-to-dnf4-python-API.patch rename to 0007-sepolicy-port-to-dnf4-python-API.patch index bc62ff3..7410ccd 100644 --- a/0019-sepolicy-port-to-dnf4-python-API.patch +++ b/0007-sepolicy-port-to-dnf4-python-API.patch @@ -1,4 +1,4 @@ -From d925b00da35384331df9bf31935398c37117f895 Mon Sep 17 00:00:00 2001 +From 4417766f66fb5a1d41503c2d1f0008823ae11269 Mon Sep 17 00:00:00 2001 From: Petr Lautrbach Date: Sat, 29 Jul 2023 20:33:06 +0200 Subject: [PATCH] sepolicy: port to dnf4 python API diff --git a/0008-python-semanage-Improve-man-pages.patch b/0008-python-semanage-Improve-man-pages.patch deleted file mode 100644 index 653e06e..0000000 --- a/0008-python-semanage-Improve-man-pages.patch +++ /dev/null @@ -1,464 +0,0 @@ -From fe6d5bd9a3043beb4c65b13d675f32bac2bbdaeb Mon Sep 17 00:00:00 2001 -From: Vit Mojzis -Date: Thu, 4 May 2023 14:04:49 +0200 -Subject: [PATCH] python/semanage: Improve man pages - -- Add missing options -- Add more examples -- Note special cases - -Signed-off-by: Vit Mojzis ---- - python/semanage/semanage-boolean.8 | 9 ++++++--- - python/semanage/semanage-dontaudit.8 | 8 +++++--- - python/semanage/semanage-export.8 | 10 +++++++++- - python/semanage/semanage-fcontext.8 | 17 +++++++++++------ - python/semanage/semanage-ibendport.8 | 6 ++++-- - python/semanage/semanage-ibpkey.8 | 6 ++++-- - python/semanage/semanage-import.8 | 10 +++++++++- - python/semanage/semanage-interface.8 | 8 ++++++-- - python/semanage/semanage-login.8 | 14 ++++++++------ - python/semanage/semanage-module.8 | 15 ++++++++++----- - python/semanage/semanage-node.8 | 16 +++++++++++++--- - python/semanage/semanage-permissive.8 | 8 +++++--- - python/semanage/semanage-port.8 | 10 ++++++---- - python/semanage/semanage-user.8 | 8 +++++--- - 14 files changed, 101 insertions(+), 44 deletions(-) - -diff --git a/python/semanage/semanage-boolean.8 b/python/semanage/semanage-boolean.8 -index 1282d106..3b664023 100644 ---- a/python/semanage/semanage-boolean.8 -+++ b/python/semanage/semanage-boolean.8 -@@ -7,11 +7,14 @@ semanage\-boolean \- SELinux Policy Management boolean tool - .SH "DESCRIPTION" - semanage is used to configure certain elements of - SELinux policy without requiring modification to or recompilation --from policy sources. semanage boolean command controls the settings of booleans in SELinux policy. booleans are if\-then\-else rules written in SELinux Policy. They can be used to customize the way that SELinux Policy rules effect a confined domain. -+from policy sources. -+.B semanage boolean -+command controls the settings of booleans in SELinux policy. Booleans are if\-then\-else rules written in SELinux Policy. They can be used to customize the way that SELinux Policy rules effect a confined domain. -+ - .SH "OPTIONS" - .TP - .I \-h, \-\-help --show this help message and exit -+Show this help message and exit - .TP - .I \-n, \-\-noheading - Do not print heading when listing the specified object type -@@ -45,7 +48,7 @@ Disable the boolean - - .SH EXAMPLE - .nf --Turn on the apache can send mail boolean -+Turn on the "apache can send mail" boolean (persistent version of #setsebool httpd_can_sendmail on) - # semanage boolean \-m \-\-on httpd_can_sendmail - - List customized booleans -diff --git a/python/semanage/semanage-dontaudit.8 b/python/semanage/semanage-dontaudit.8 -index 81accc6f..51d1f4b6 100644 ---- a/python/semanage/semanage-dontaudit.8 -+++ b/python/semanage/semanage-dontaudit.8 -@@ -7,13 +7,15 @@ - .SH "DESCRIPTION" - semanage is used to configure certain elements of - SELinux policy without requiring modification to or recompilation --from policy sources. semanage dontaudit toggles whether or not dontaudit rules will be in the policy. Policy writers use dontaudit rules to cause --confined applications to use alternative paths. Dontaudit rules are denied but not reported in the logs. Some times dontaudit rules can cause bugs in applications but policy writers will not realize it since the AVC is not audited. Turning off dontaudit rules with this command to see if the kernel is blocking an access. -+from policy sources. -+.B semanage dontaudit -+toggles whether or not dontaudit rules will be in the policy. Policy writers use dontaudit rules to cause -+confined applications to use alternative paths. Dontaudit rules are denied but not reported in the logs. Sometimes dontaudit rules can cause bugs in applications but policy writers will not realize it since the AVC is not audited. Turn off dontaudit rules with this command to see if the kernel is blocking an access. - - .SH "OPTIONS" - .TP - .I \-h, \-\-help --show this help message and exit -+Show this help message and exit - .TP - .I \-S STORE, \-\-store STORE - Select an alternate SELinux Policy Store to manage -diff --git a/python/semanage/semanage-export.8 b/python/semanage/semanage-export.8 -index d422683b..51984793 100644 ---- a/python/semanage/semanage-export.8 -+++ b/python/semanage/semanage-export.8 -@@ -7,7 +7,15 @@ - .SH "DESCRIPTION" - semanage is used to configure certain elements of - SELinux policy without requiring modification to or recompilation --from policy sources. semanage import and export can be used to extract the SELinux modifications from one machine and apply them to another. You can put a whole group of semanage commands within a file and apply them to a machine in a single transaction. -+from policy sources. -+.B semanage import -+and -+.B export -+can be used to extract the SELinux modifications from one machine and apply them to another. Please note that this will remove all current semanage customizations on the second machine as the command list generated using -+.B semanage export -+start with -+.I -D -+for all semanage sub-commands. You can put a whole group of semanage commands within a file and apply them to a machine in a single transaction. - - .SH "OPTIONS" - .TP -diff --git a/python/semanage/semanage-fcontext.8 b/python/semanage/semanage-fcontext.8 -index 1ebf085f..3e327d88 100644 ---- a/python/semanage/semanage-fcontext.8 -+++ b/python/semanage/semanage-fcontext.8 -@@ -8,8 +8,10 @@ semanage\-fcontext \- SELinux Policy Management file context tool - .SH "DESCRIPTION" - semanage is used to configure certain elements of - SELinux policy without requiring modification to or recompilation --from policy sources. semanage fcontext is used to manage the default --file system labeling on an SELinux system. This command maps file paths using regular expressions to SELinux labels. -+from policy sources. -+.B semanage fcontext -+is used to manage the default file system labeling on an SELinux system. -+This command maps file paths using regular expressions to SELinux labels. - - FILE_SPEC may contain either a fully qualified path, - or a Perl compatible regular expression (PCRE), -@@ -32,7 +34,7 @@ to avoid unintentionally impacting other parts of the filesystem. - .SH "OPTIONS" - .TP - .I \-h, \-\-help --show this help message and exit -+Show this help message and exit - .TP - .I \-n, \-\-noheading - Do not print heading when listing the specified object type -@@ -82,12 +84,13 @@ MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux login ma - - .SH EXAMPLE - .nf --.I remember to run restorecon after you set the file context --Add file-context for everything under /web -+.I Remember to run restorecon after you set the file context -+Add file-context httpd_sys_content_t for everything under /web - # semanage fcontext \-a \-t httpd_sys_content_t "/web(/.*)?" - # restorecon \-R \-v /web - - Substitute /home1 with /home when setting file context -+i.e. label everything under /home1 the same way /home is labeled - # semanage fcontext \-a \-e /home /home1 - # restorecon \-R \-v /home1 - -@@ -99,7 +102,9 @@ execute the following commands. - - .SH "SEE ALSO" - .BR selinux (8), --.BR semanage (8) -+.BR semanage (8), -+.BR restorecon (8), -+.BR selabel_file (5) - - .SH "AUTHOR" - This man page was written by Daniel Walsh -diff --git a/python/semanage/semanage-ibendport.8 b/python/semanage/semanage-ibendport.8 -index 0a29eae1..53fe4ee8 100644 ---- a/python/semanage/semanage-ibendport.8 -+++ b/python/semanage/semanage-ibendport.8 -@@ -5,12 +5,14 @@ - .B semanage ibendport [\-h] [\-n] [\-N] [\-S STORE] [ \-\-add \-t TYPE \-z IBDEV_NAME \-r RANGE port | \-\-delete \-z IBDEV_NAME port | \-\-deleteall | \-\-extract | \-\-list [\-C] | \-\-modify \-t TYPE \-z IBDEV_NAME \-r RANGE port ] - - .SH "DESCRIPTION" --semanage is used to configure certain elements of SELinux policy without requiring modification to or recompilation from policy sources. semanage ibendport controls the ibendport number to ibendport type definitions. -+semanage is used to configure certain elements of SELinux policy without requiring modification to or recompilation from policy sources. -+.B semanage ibendport -+controls the ibendport number to ibendport type definitions. - - .SH "OPTIONS" - .TP - .I \-h, \-\-help --show this help message and exit -+Show this help message and exit - .TP - .I \-n, \-\-noheading - Do not print heading when listing the specified object type -diff --git a/python/semanage/semanage-ibpkey.8 b/python/semanage/semanage-ibpkey.8 -index 51f455ab..6cc5e02f 100644 ---- a/python/semanage/semanage-ibpkey.8 -+++ b/python/semanage/semanage-ibpkey.8 -@@ -5,12 +5,14 @@ - .B semanage ibpkey [\-h] [\-n] [\-N] [\-S STORE] [ \-\-add \-t TYPE \-x SUBNET_PREFIX \-r RANGE ibpkey_name | ibpkey_range | \-\-delete \-x SUBNET_PREFIX ibpkey_name | ibpkey_range | \-\-deleteall | \-\-extract | \-\-list [\-C] | \-\-modify \-t TYPE \-x SUBNET_PREFIX \-r RANGE ibpkey_name | ibpkey_range ] - - .SH "DESCRIPTION" --semanage is used to configure certain elements of SELinux policy without requiring modification to or recompilation from policy sources. semanage ibpkey controls the ibpkey number to ibpkey type definitions. -+semanage is used to configure certain elements of SELinux policy without requiring modification to or recompilation from policy sources. -+.B semanage ibpkey -+controls the ibpkey number to ibpkey type definitions. - - .SH "OPTIONS" - .TP - .I \-h, \-\-help --show this help message and exit -+Show this help message and exit - .TP - .I \-n, \-\-noheading - Do not print heading when listing the specified object type -diff --git a/python/semanage/semanage-import.8 b/python/semanage/semanage-import.8 -index 4a9b3e76..041e9ab0 100644 ---- a/python/semanage/semanage-import.8 -+++ b/python/semanage/semanage-import.8 -@@ -7,7 +7,15 @@ - .SH "DESCRIPTION" - semanage is used to configure certain elements of - SELinux policy without requiring modification to or recompilation --from policy sources. semanage import and export can be used to extract the SELinux modifications from one machine and apply them to another. You can put a whole group of semanage commands within a file and apply them to a machine in a single transaction. -+from policy sources. -+.B semanage import -+and -+.B export -+can be used to extract the SELinux modifications from one machine and apply them to another. Please note that this will remove all current semanage customizations on the second machine as the command list generated using -+.B semanage export -+start with -+.I -D -+for all semanage sub-commands. You can put a whole group of semanage commands within a file and apply them to a machine in a single transaction. - - .SH "OPTIONS" - .TP -diff --git a/python/semanage/semanage-interface.8 b/python/semanage/semanage-interface.8 -index d9d526dc..080db70b 100644 ---- a/python/semanage/semanage-interface.8 -+++ b/python/semanage/semanage-interface.8 -@@ -7,12 +7,14 @@ - .SH "DESCRIPTION" - semanage is used to configure certain elements of - SELinux policy without requiring modification to or recompilation --from policy sources. semanage interface controls the labels assigned to network interfaces. -+from policy sources. -+.B semanage interface -+controls the labels assigned to network interfaces. - - .SH "OPTIONS" - .TP - .I \-h, \-\-help --show this help message and exit -+Show this help message and exit - .TP - .I \-n, \-\-noheading - Do not print heading when listing the specified object type -@@ -54,6 +56,8 @@ MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux login ma - .nf - list all interface definitions - # semanage interface \-l -+Assign type netif_t and MLS/MCS range s0:c0.c1023 to interface eth0 -+# semanage interface \-a \-t netif_t \-r s0:c0.c1023 eth0 - - .SH "SEE ALSO" - .BR selinux (8), -diff --git a/python/semanage/semanage-login.8 b/python/semanage/semanage-login.8 -index f451bdc6..9076a1ed 100644 ---- a/python/semanage/semanage-login.8 -+++ b/python/semanage/semanage-login.8 -@@ -7,12 +7,14 @@ - .SH "DESCRIPTION" - semanage is used to configure certain elements of - SELinux policy without requiring modification to or recompilation --from policy sources. semanage login controls the mapping between a Linux User and the SELinux User. It can be used to turn on confined users. For example you could define that a particular user or group of users will login to a system as the user_u user. Prefix the group name with a '%' sign to indicate a group name. -+from policy sources. -+.B semanage login -+controls the mapping between a Linux User and the SELinux User. It can be used to turn on confined users. For example you could define that a particular user or group of users will login to a system as the user_u user. Prefix the group name with a '%' sign to indicate a group name. - - .SH "OPTIONS" - .TP - .I \-h, \-\-help --show this help message and exit -+Show this help message and exit - .TP - .I \-n, \-\-noheading - Do not print heading when listing the specified object type -@@ -52,11 +54,11 @@ MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux login ma - - .SH EXAMPLE - .nf --Modify the default user on the system to the guest_u user -+Set the default SELinux user on the system to guest_u - # semanage login \-m \-s guest_u __default__ --Assign gijoe user on an MLS machine a range and to the staff_u user --# semanage login \-a \-s staff_u \-rSystemLow-Secret gijoe --Assign all users in the engineering group to the staff_u user -+Map user gijoe to SELinux user staff_u and assign MLS range SystemLow\-Secret -+# semanage login \-a \-s staff_u \-rSystemLow\-Secret gijoe -+Map all users in the engineering group to SELinux user staff_u - # semanage login \-a \-s staff_u %engineering - - .SH "SEE ALSO" -diff --git a/python/semanage/semanage-module.8 b/python/semanage/semanage-module.8 -index e0057167..6913b0cd 100644 ---- a/python/semanage/semanage-module.8 -+++ b/python/semanage/semanage-module.8 -@@ -5,12 +5,14 @@ - .B semanage module [\-h] [\-n] [\-N] [\-S STORE] (\-a | \-r | \-e | \-d | \-\-extract | \-\-list [\-C] | \-\-deleteall) [module_name] - - .SH "DESCRIPTION" --semanage is used to configure certain elements of SELinux policy without requiring modification to or recompilation from policy sources. semanage module installs, removes, disables SELinux Policy modules. -+semanage is used to configure certain elements of SELinux policy without requiring modification to or recompilation from policy sources. -+.B semanage module -+installs, removes, disables, or enables SELinux Policy modules. - - .SH "OPTIONS" - .TP - .I \-h, \-\-help --show this help message and exit -+Show this help message and exit - .TP - .I \-n, \-\-noheading - Do not print heading when listing the specified object type -@@ -22,11 +24,14 @@ Do not reload policy after commit - Select an alternate SELinux Policy Store to manage - .TP - .I \-a, \-\-add --Install specified module -+Install specified module. Accepts both binary policy files (.pp) and CIL source files - .TP - .I \-r, \-\-remove - Remove specified module - .TP -+.I \-D, \-\-deleteall -+Remove all local customizations related to modules -+.TP - .I \-d \-\-disable - Disable specified module - .TP -@@ -48,8 +53,8 @@ List all modules - # semanage module \-l - Disable unconfined module - # semanage module \-\-disable unconfined --Install custom apache policy module --# semanage module \-a myapache -+Install custom apache policy module (same as #semodule -i myapache.pp) -+# semanage module \-a myapache.pp - - .SH "SEE ALSO" - .BR selinux (8), -diff --git a/python/semanage/semanage-node.8 b/python/semanage/semanage-node.8 -index a0098221..c78d6c3e 100644 ---- a/python/semanage/semanage-node.8 -+++ b/python/semanage/semanage-node.8 -@@ -7,12 +7,14 @@ - .SH "DESCRIPTION" - semanage is used to configure certain elements of - SELinux policy without requiring modification to or recompilation --from policy sources. semanage controls the ipaddress to node type definitions. -+from policy sources. -+.B semanage node -+controls the IP address to node type definitions. - - .SH "OPTIONS" - .TP - .I \-h, \-\-help --show this help message and exit -+Show this help message and exit - .TP - .I \-n, \-\-noheading - Do not print heading when listing the specified object type -@@ -54,5 +56,13 @@ SELinux type for the object - MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux login mapping defaults to the SELinux user record range. SELinux Range for SELinux user defaults to s0. - .TP - .I \-p PROTO, \-\-proto PROTO -- - Protocol for the specified port (tcp|udp) or internet protocol version for the specified node (ipv4|ipv6). -+ -+.SH "EXAMPLE" -+.nf -+Apply type node_t to ipv4 node 127.0.0.2 -+# semanage node \-a \-t node_t \-p ipv4 \-M 255.255.255.255 127.0.0.2 -+ -+.SH "SEE ALSO" -+.BR selinux (8), -+.BR semanage (8) -diff --git a/python/semanage/semanage-permissive.8 b/python/semanage/semanage-permissive.8 -index 5c3364fa..0414a850 100644 ---- a/python/semanage/semanage-permissive.8 -+++ b/python/semanage/semanage-permissive.8 -@@ -5,12 +5,14 @@ - .B semanage permissive [\-h] [\-n] [\-N] [\-S STORE] (\-\-add TYPE | \-\-delete TYPE | \-\-deleteall | \-\-extract | \-\-list) - - .SH "DESCRIPTION" --semanage is used to configure certain elements of SELinux policy without requiring modification to or recompilation from policy sources. semanage permissive adds or removes a SELinux Policy permissive module. -+semanage is used to configure certain elements of SELinux policy without requiring modification to or recompilation from policy sources. -+.B semanage permissive -+adds or removes a SELinux Policy permissive module. Please note that this command can make any domain permissive, but can only remove the permissive property from domains where it was added by semanage permissive ("semanage permissive -d" can only be used on types listed as "Customized Permissive Types" by "semanage permissive -l"). - - .SH "OPTIONS" - .TP - .I \-h, \-\-help --show this help message and exit -+Show this help message and exit - .TP - .I \-a, \-\-add - Add a record of the specified object type -@@ -38,7 +40,7 @@ Select an alternate SELinux Policy Store to manage - - .SH EXAMPLE - .nf --List all permissive modules -+List all permissive domains ("Builtin Permissive Types" where set by the system policy, or a custom policy module) - # semanage permissive \-l - Make httpd_t (Web Server) a permissive domain - # semanage permissive \-a httpd_t -diff --git a/python/semanage/semanage-port.8 b/python/semanage/semanage-port.8 -index 12ec14c2..c6048660 100644 ---- a/python/semanage/semanage-port.8 -+++ b/python/semanage/semanage-port.8 -@@ -5,12 +5,14 @@ - .B semanage port [\-h] [\-n] [\-N] [\-S STORE] [ \-\-add \-t TYPE \-p PROTOCOL \-r RANGE port_name | port_range | \-\-delete \-p PROTOCOL port_name | port_range | \-\-deleteall | \-\-extract | \-\-list [\-C] | \-\-modify \-t TYPE \-p PROTOCOL \-r RANGE port_name | port_range ] - - .SH "DESCRIPTION" --semanage is used to configure certain elements of SELinux policy without requiring modification to or recompilation from policy sources. semanage port controls the port number to port type definitions. -+semanage is used to configure certain elements of SELinux policy without requiring modification to or recompilation from policy sources. -+.B semanage port -+controls the port number to port type definitions. - - .SH "OPTIONS" - .TP - .I \-h, \-\-help --show this help message and exit -+Show this help message and exit - .TP - .I \-n, \-\-noheading - Do not print heading when listing the specified object type -@@ -55,9 +57,9 @@ Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol version - .nf - List all port definitions - # semanage port \-l --Allow Apache to listen on tcp port 81 -+Allow Apache to listen on tcp port 81 (i.e. assign tcp port 81 label http_port_t, which apache is allowed to listen on) - # semanage port \-a \-t http_port_t \-p tcp 81 --Allow sshd to listen on tcp port 8991 -+Allow sshd to listen on tcp port 8991 (i.e. assign tcp port 8991 label ssh_port_t, which sshd is allowed to listen on) - # semanage port \-a \-t ssh_port_t \-p tcp 8991 - - .SH "SEE ALSO" -diff --git a/python/semanage/semanage-user.8 b/python/semanage/semanage-user.8 -index 23fec698..50d50bea 100644 ---- a/python/semanage/semanage-user.8 -+++ b/python/semanage/semanage-user.8 -@@ -7,12 +7,14 @@ - .SH "DESCRIPTION" - semanage is used to configure certain elements of - SELinux policy without requiring modification to or recompilation --from policy sources. semanage user controls the mapping between an SELinux User and the roles and MLS/MCS levels. -+from policy sources. -+.B semanage user -+controls the mapping between an SELinux User and the roles and MLS/MCS levels. - - .SH "OPTIONS" - .TP - .I \-h, \-\-help --show this help message and exit -+Show this help message and exit - .TP - .I \-n, \-\-noheading - Do not print heading when listing the specified object type -@@ -59,7 +61,7 @@ List SELinux users - # semanage user \-l - Modify groups for staff_u user - # semanage user \-m \-R "system_r unconfined_r staff_r" staff_u --Add level for TopSecret Users -+Assign user topsecret_u role staff_r and range s0\-TopSecret - # semanage user \-a \-R "staff_r" \-rs0\-TopSecret topsecret_u - - .SH "SEE ALSO" --- -2.40.0 - diff --git a/0009-python-audit2allow-Remove-unused-debug-option.patch b/0009-python-audit2allow-Remove-unused-debug-option.patch deleted file mode 100644 index 811cabf..0000000 --- a/0009-python-audit2allow-Remove-unused-debug-option.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 10fb1da179ab377db96697e79ac45bfdcd251989 Mon Sep 17 00:00:00 2001 -From: Vit Mojzis -Date: Thu, 4 May 2023 14:04:50 +0200 -Subject: [PATCH] python/audit2allow: Remove unused "debug" option - -The option is not referenced anywhere in the code and I couldn't figure -out its purpose from the description. - -Signed-off-by: Vit Mojzis ---- - python/audit2allow/audit2allow | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/python/audit2allow/audit2allow b/python/audit2allow/audit2allow -index eafeea88..5587a2db 100644 ---- a/python/audit2allow/audit2allow -+++ b/python/audit2allow/audit2allow -@@ -88,8 +88,6 @@ class AuditToPolicy: - parser.add_option("--interface-info", dest="interface_info", help="file name of interface information") - parser.add_option("-x", "--xperms", action="store_true", dest="xperms", - default=False, help="generate extended permission rules") -- parser.add_option("--debug", dest="debug", action="store_true", default=False, -- help="leave generated modules for -M") - parser.add_option("-w", "--why", dest="audit2why", action="store_true", default=(os.path.basename(sys.argv[0]) == "audit2why"), - help="Translates SELinux audit messages into a description of why the access was denied") - --- -2.40.0 - diff --git a/0010-policycoreutils-Add-examples-to-man-pages.patch b/0010-policycoreutils-Add-examples-to-man-pages.patch deleted file mode 100644 index 4aead05..0000000 --- a/0010-policycoreutils-Add-examples-to-man-pages.patch +++ /dev/null @@ -1,308 +0,0 @@ -From 10cfbd2825e12efdc0faa872987d5987e02e7eae Mon Sep 17 00:00:00 2001 -From: Vit Mojzis -Date: Thu, 1 Jun 2023 16:39:11 +0200 -Subject: [PATCH] policycoreutils: Add examples to man pages - -While at it, remove trailing whitespaces. - -Signed-off-by: Vit Mojzis -Acked-by: Petr Lautrbach ---- - policycoreutils/scripts/fixfiles.8 | 34 +++++++++++++-------- - policycoreutils/secon/secon.1 | 12 ++++++-- - policycoreutils/semodule/semodule.8 | 14 ++++----- - policycoreutils/setfiles/restorecon.8 | 9 ++++++ - policycoreutils/setfiles/restorecon_xattr.8 | 7 +++++ - policycoreutils/setfiles/setfiles.8 | 9 ++++++ - policycoreutils/setsebool/setsebool.8 | 16 +++++++--- - 7 files changed, 74 insertions(+), 27 deletions(-) - -diff --git a/policycoreutils/scripts/fixfiles.8 b/policycoreutils/scripts/fixfiles.8 -index 9a317d91..928b8200 100644 ---- a/policycoreutils/scripts/fixfiles.8 -+++ b/policycoreutils/scripts/fixfiles.8 -@@ -14,7 +14,7 @@ fixfiles \- fix file SELinux security contexts. - .B fixfiles - .I [\-v] [\-F] [\-B | \-N time ] [\-T nthreads] { check | restore | verify } - --.B fixfiles -+.B fixfiles - .I [\-v] [\-F] [\-T nthreads] \-R rpmpackagename[,rpmpackagename...] { check | restore | verify } - - .B fixfiles -@@ -31,7 +31,7 @@ This manual page describes the - script. - .P - This script is primarily used to correct the security context --database (extended attributes) on filesystems. -+database (extended attributes) on filesystems. - .P - It can also be run at any time to relabel when adding support for - new policy, or just check whether the file contexts are all -@@ -41,29 +41,29 @@ option. You can use the \-R flag to use rpmpackages as an alternative. - The file /etc/selinux/fixfiles_exclude_dirs can contain a list of directories - excluded from relabeling. - .P --.B fixfiles onboot -+.B fixfiles onboot - will setup the machine to relabel on the next reboot. - - .SH "OPTIONS" --.TP -+.TP - .B \-B - If specified with onboot, this fixfiles will record the current date in the /.autorelabel file, so that it can be used later to speed up labeling. If used with restore, the restore will only affect files that were modified today. - .TP - .B \-F - Force reset of context to match file_context for customizable files - --.TP -+.TP - .B \-f - Clear /tmp directory with out prompt for removal. - --.TP -+.TP - .B \-R rpmpackagename[,rpmpackagename...] - Use the rpm database to discover all files within the specified packages and restore the file contexts. - .TP - .B \-C PREVIOUS_FILECONTEXT - Run a diff on the PREVIOUS_FILECONTEXT file to the currently installed one, and restore the context of all affected files. - --.TP -+.TP - .B \-N time - Only act on files created after the specified date. Date must be specified in - "YYYY\-MM\-DD HH:MM" format. Date field will be passed to find \-\-newermt command. -@@ -83,19 +83,28 @@ Use parallel relabeling, see - - .SH "ARGUMENTS" - One of: --.TP -+.TP - .B check | verify - print any incorrect file context labels, showing old and new context, but do not change them. --.TP -+.TP - .B restore - change any incorrect file context labels. --.TP -+.TP - .B relabel - Prompt for removal of contents of /tmp directory and then change any incorrect file context labels to match the install file_contexts file. --.TP --.B [[dir/file] ... ] -+.TP -+.B [[dir/file] ... ] - List of files or directories trees that you wish to check file context on. - -+.SH EXAMPLE -+.nf -+Relabel the whole filesystem, except paths listed in /etc/selinux/fixfiles_exclude_dirs -+# fixfiles relabel -+Schedule the machine to relabel on the next boot and force relabeling of customizable types -+# fixfiles -F onboot -+Check labeling of all files from the samba package (while not changing any labels) -+# fixfiles -R samba check -+ - .SH "AUTHOR" - This man page was written by Richard Hally . - The script was written by Dan Walsh -@@ -103,4 +112,3 @@ The script was written by Dan Walsh - .SH "SEE ALSO" - .BR setfiles (8), - .BR restorecon (8) -- -diff --git a/policycoreutils/secon/secon.1 b/policycoreutils/secon/secon.1 -index 501b5cb8..c0e8b05a 100644 ---- a/policycoreutils/secon/secon.1 -+++ b/policycoreutils/secon/secon.1 -@@ -107,16 +107,24 @@ then the context will be read from stdin. - .br - If there is no argument, - .B secon --will try reading a context from stdin, if that is not a tty, otherwise -+will try reading a context from stdin, if that is not a tty, otherwise - .B secon - will act as though \fB\-\-self\fR had been passed. - .PP - If none of \fB\-\-user\fR, \fB\-\-role\fR, \fB\-\-type\fR, \fB\-\-level\fR or - \fB\-\-mls\-range\fR is passed. - Then all of them will be output. -+ -+.SH EXAMPLE -+.nf -+Show SElinux context of the init process -+# secon --pid 1 -+Parse the type portion of given security context -+# secon -t system_u:object_r:httpd_sys_rw_content_t:s0 -+ - .PP - .SH SEE ALSO - .BR chcon (1) - .SH AUTHORS - .nf --James Antill (james.antill@redhat.com) -+James Antill (james.antill@redhat.com) -diff --git a/policycoreutils/semodule/semodule.8 b/policycoreutils/semodule/semodule.8 -index c56e580f..01757b00 100644 ---- a/policycoreutils/semodule/semodule.8 -+++ b/policycoreutils/semodule/semodule.8 -@@ -1,5 +1,5 @@ - .TH SEMODULE "8" "Nov 2005" "Security Enhanced Linux" NSA --.SH NAME -+.SH NAME - semodule \- Manage SELinux policy modules. - - .SH SYNOPSIS -@@ -8,7 +8,7 @@ semodule \- Manage SELinux policy modules. - .SH DESCRIPTION - .PP - semodule is the tool used to manage SELinux policy modules, --including installing, upgrading, listing and removing modules. -+including installing, upgrading, listing and removing modules. - semodule may also be used to force a rebuild of policy from the - module store and/or to force a reload of policy without performing - any other transaction. semodule acts on module packages created -@@ -39,7 +39,7 @@ install/replace a module package - .B \-u,\-\-upgrade=MODULE_PKG - deprecated, alias for --install - .TP --.B \-b,\-\-base=MODULE_PKG -+.B \-b,\-\-base=MODULE_PKG - deprecated, alias for --install - .TP - .B \-r,\-\-remove=MODULE_NAME -@@ -77,7 +77,7 @@ name of the store to operate on - .B \-n,\-\-noreload,\-N - do not reload policy after commit - .TP --.B \-h,\-\-help -+.B \-h,\-\-help - prints help message and quit - .TP - .B \-P,\-\-preserve_tunables -@@ -92,7 +92,7 @@ Use an alternate path for the policy root - .B \-S,\-\-store-path - Use an alternate path for the policy store root - .TP --.B \-v,\-\-verbose -+.B \-v,\-\-verbose - be verbose - .TP - .B \-c,\-\-cil -@@ -131,8 +131,6 @@ $ semodule \-B - $ semodule \-d alsa - # Install a module at a specific priority. - $ semodule \-X 100 \-i alsa.pp --# List all modules. --$ semodule \-\-list=full - # Set an alternate path for the policy root - $ semodule \-B \-p "/tmp" - # Set an alternate path for the policy store root -@@ -143,6 +141,8 @@ $ semodule \-X 400 \-\-hll \-E puppet \-\-cil \-E wireshark - # Check whether a module in "localmodule.pp" file is same as installed module "localmodule" - $ /usr/libexec/selinux/hll/pp localmodule.pp | sha256sum - $ semodule -l -m | grep localmodule -+# Translate binary module file into CIL (useful for debugging installation errors) -+$ /usr/libexec/selinux/hll/pp alsa.pp > alsa.cil - .fi - - .SH SEE ALSO -diff --git a/policycoreutils/setfiles/restorecon.8 b/policycoreutils/setfiles/restorecon.8 -index dbd55ce7..6160aced 100644 ---- a/policycoreutils/setfiles/restorecon.8 -+++ b/policycoreutils/setfiles/restorecon.8 -@@ -224,6 +224,15 @@ and provided the - option is NOT set and recursive mode is set, files will be relabeled as - required with the digests then being updated provided there are no errors. - -+.SH EXAMPLE -+.nf -+Fix labeling of /var/www/ including all sub-directories and list all context changes -+# restorecon -rv /var/www/ -+List mislabeled files in user home directory and what the correct label should be -+# restorecon -nvr ~ -+Fix labeling of files listed in file_list file, ignoring any that do not exist -+# restorecon -vif file_list -+ - .SH "AUTHOR" - This man page was written by Dan Walsh . - Some of the content of this man page was taken from the setfiles -diff --git a/policycoreutils/setfiles/restorecon_xattr.8 b/policycoreutils/setfiles/restorecon_xattr.8 -index 4b1ce304..09bfd8c4 100644 ---- a/policycoreutils/setfiles/restorecon_xattr.8 -+++ b/policycoreutils/setfiles/restorecon_xattr.8 -@@ -112,6 +112,13 @@ If the option is not specified, then the default file_contexts will be used. - .br - the pathname of the directory tree to be searched. - -+.SH EXAMPLE -+.nf -+List all paths that where assigned a checksum by "restorecon/setfiles -D" -+# restorecon_xattr -r / -+Remove all non-matching checksums -+# restorecon_xattr -rd / -+ - .SH "SEE ALSO" - .BR restorecon (8), - .BR setfiles (8) -diff --git a/policycoreutils/setfiles/setfiles.8 b/policycoreutils/setfiles/setfiles.8 -index 36fe6b36..6071d9ba 100644 ---- a/policycoreutils/setfiles/setfiles.8 -+++ b/policycoreutils/setfiles/setfiles.8 -@@ -289,6 +289,15 @@ and provided the - option is NOT set, files will be relabeled as required with the digests then - being updated provided there are no errors. - -+.SH EXAMPLE -+.nf -+Fix labeling of /var/www/ including all sub-directories, using targeted policy file context definitions and list all context changes -+# setfiles -v /etc/selinux/targeted/contexts/files/file_contexts /var/www/ -+List mislabeled files in user home directory and what the label should be based on targeted policy file context definitions -+# setfiles -nv /etc/selinux/targeted/contexts/files/file_contexts ~ -+Fix labeling of files listed in file_list file, ignoring any that do not exist -+# setfiles -vif file_list /etc/selinux/targeted/contexts/files/file_contexts -+ - .SH "AUTHOR" - This man page was written by Russell Coker . - The program was written by Stephen Smalley -diff --git a/policycoreutils/setsebool/setsebool.8 b/policycoreutils/setsebool/setsebool.8 -index 52936f5a..f54664fb 100644 ---- a/policycoreutils/setsebool/setsebool.8 -+++ b/policycoreutils/setsebool/setsebool.8 -@@ -7,13 +7,13 @@ setsebool \- set SELinux boolean value - .I "[ \-PNV ] boolean value | bool1=val1 bool2=val2 ..." - - .SH "DESCRIPTION" --.B setsebool --sets the current state of a particular SELinux boolean or a list of booleans --to a given value. The value may be 1 or true or on to enable the boolean, or 0 or false or off to disable it. -+.B setsebool -+sets the current state of a particular SELinux boolean or a list of booleans -+to a given value. The value may be 1 or true or on to enable the boolean, or 0 or false or off to disable it. - - Without the \-P option, only the current boolean value is --affected; the boot-time default settings --are not changed. -+affected; the boot-time default settings -+are not changed. - - If the \-P option is given, all pending values are written to - the policy file on disk. So they will be persistent across reboots. -@@ -22,6 +22,12 @@ If the \-N option is given, the policy on disk is not reloaded into the kernel. - - If the \-V option is given, verbose error messages will be printed from semanage libraries. - -+.SH EXAMPLE -+.nf -+Enable container_use_devices boolean (will return to persistent value after reboot) -+# setsebool container_use_devices 1 -+Persistently enable samba_create_home_dirs and samba_enable_home_dirs booleans -+# setsebool -P samba_create_home_dirs=on samba_enable_home_dirs=on - - .SH AUTHOR - This manual page was written by Dan Walsh . --- -2.40.0 - diff --git a/0011-python-sepolicy-Improve-man-pages.patch b/0011-python-sepolicy-Improve-man-pages.patch deleted file mode 100644 index 4620b3e..0000000 --- a/0011-python-sepolicy-Improve-man-pages.patch +++ /dev/null @@ -1,390 +0,0 @@ -From 835b208cad02557cf99c3ab7289ca511b8bfa91e Mon Sep 17 00:00:00 2001 -From: Vit Mojzis -Date: Thu, 1 Jun 2023 16:39:12 +0200 -Subject: [PATCH] python/sepolicy: Improve man pages - -- Add missing options -- Add examples -- Emphasize keywords -- Remove trailing whitespaces - -Signed-off-by: Vit Mojzis -Acked-by: Petr Lautrbach ---- - python/sepolicy/sepolicy-booleans.8 | 15 +++++++++--- - python/sepolicy/sepolicy-communicate.8 | 14 ++++++++--- - python/sepolicy/sepolicy-generate.8 | 34 ++++++++++++-------------- - python/sepolicy/sepolicy-gui.8 | 4 +-- - python/sepolicy/sepolicy-interface.8 | 18 +++++++++++--- - python/sepolicy/sepolicy-manpage.8 | 25 ++++++++++++++----- - python/sepolicy/sepolicy-network.8 | 17 ++++++------- - python/sepolicy/sepolicy-transition.8 | 19 +++++++++----- - 8 files changed, 96 insertions(+), 50 deletions(-) - -diff --git a/python/sepolicy/sepolicy-booleans.8 b/python/sepolicy/sepolicy-booleans.8 -index f8d8b56d..7f4b18e7 100644 ---- a/python/sepolicy/sepolicy-booleans.8 -+++ b/python/sepolicy/sepolicy-booleans.8 -@@ -8,12 +8,16 @@ sepolicy-booleans \- Query SELinux Policy to see description of booleans - .B sepolicy booleans [\-h] [ \-a | \-b booleanname ... ] - - .SH "DESCRIPTION" --sepolicy booleans will show all booleans and their descriptions, or you can --choose individual booleans to display -+.B sepolicy booleans -+will show all booleans and their descriptions, or you can -+choose individual booleans to display. -+Please make sure that selinux-policy-devel is present in your system since it contains boolean descriptions extracted from the policy source code. Otherwise -+.B sepolicy booleans -+will only show descriptions generated based on boolean names. - - .SH "OPTIONS" - .TP --.I \-h, \-\-help -+.I \-h, \-\-help - Display help message - .TP - .I \-a, \-\-all -@@ -22,6 +26,11 @@ Display all boolean descriptions - .I \-b, \-\-boolean - boolean to get description - -+.SH EXAMPLE -+.nf -+List descriptions of samba_create_home_dirs and samba_enable_home_dirs booleans -+# sepolicy booleans -b samba_create_home_dirs samba_enable_home_dirs -+ - .SH "AUTHOR" - This man page was written by Daniel Walsh - -diff --git a/python/sepolicy/sepolicy-communicate.8 b/python/sepolicy/sepolicy-communicate.8 -index 050aa475..5ecf6eff 100644 ---- a/python/sepolicy/sepolicy-communicate.8 -+++ b/python/sepolicy/sepolicy-communicate.8 -@@ -8,7 +8,9 @@ sepolicy-communicate \- Generate a report showing if two SELinux Policy Domains - .B sepolicy communicate [\-h] \-s SOURCE \-t TARGET [\-c TCLASS] [\-S SOURCEACCESS] [\-T TARGETACCESS] - - .SH "DESCRIPTION" --Use sepolicy communicate to examine SELinux Policy to if a source SELinux Domain can communicate with a target SELinux Domain. -+Use -+.B sepolicy communicate -+to examine SELinux Policy and determine if a source SELinux Domain can communicate with a target SELinux Domain. - The default command looks to see if there are any file types that the source domain can write, which the target domain can read. - - .SH "OPTIONS" -@@ -16,7 +18,7 @@ The default command looks to see if there are any file types that the source dom - .I \-c, \-\-class - Specify the SELinux class which the source domain will attempt to communicate with the target domain. (Default file) - .TP --.I \-h, \-\-help -+.I \-h, \-\-help - Display help message - .TP - .I \-s, \-\-source -@@ -31,9 +33,15 @@ Specify the target SELinux domain type. - .I \-T, \-\-targetaccess - Specify the list of accesses used by the target SELinux domain type to receive communications from the source domain. Default Open, Read. - -+.SH EXAMPLE -+.nf -+List types that can be used to communicate between samba daemon and apache server -+# sepolicy communicate -s httpd_t -t smbd_t -+Consider a type to be accessible by the source domain when it can be opened and appended to (as opposed to opened and written to) -+# sepolicy communicate -s httpd_t -t smbd_t -S open,append -+ - .SH "AUTHOR" - This man page was written by Daniel Walsh - - .SH "SEE ALSO" - sepolicy(8), selinux(8) -- -diff --git a/python/sepolicy/sepolicy-generate.8 b/python/sepolicy/sepolicy-generate.8 -index 0c5f998f..72d0e8e4 100644 ---- a/python/sepolicy/sepolicy-generate.8 -+++ b/python/sepolicy/sepolicy-generate.8 -@@ -57,32 +57,29 @@ path. \fBsepolicy generate\fP will use the rpm payload of the - application along with \fBnm \-D APPLICATION\fP to help it generate - types and policy rules for your policy files. - --.B Type Enforcing File NAME.te -+.B NAME.te - .br --This file can be used to define all the types rules for a particular domain. -+This file can be used to define all the types enforcement rules for a particular domain. - - .I Note: --Policy generated by \fBsepolicy generate\fP will automatically add a permissive DOMAIN to your te file. When you are satisfied that your policy works, you need to remove the permissive line from the te file to run your domain in enforcing mode. -+Policy generated by \fBsepolicy generate\fP will automatically add a \fIpermissive DOMAIN\fP to your \fB.te\fP file. When you are satisfied that your policy works, you need to remove the permissive line from the \fB.te\fP file to run your domain in enforcing mode. - --.B Interface File NAME.if -+.B NAME.if - .br --This file defines the interfaces for the types generated in the te file, which can be used by other policy domains. -+This file defines the interfaces for the types generated in the \fB.te\fP file, which can be used by other policy domains. - --.B File Context NAME.fc -+.B NAME.fc - .br --This file defines the default file context for the system, it takes the file types created in the te file and associates -+This file defines the default file context for the system, it takes the file types created in the \fB.te\fP file and associates - file paths to the types. Tools like restorecon and RPM will use these paths to put down labels. - --.B RPM Spec File NAME_selinux.spec -+.B NAME_selinux.spec - .br --This file is an RPM SPEC file that can be used to install the SELinux policy on to machines and setup the labeling. The spec file also installs the interface file and a man page describing the policy. You can use \fBsepolicy manpage \-d NAME\fP to generate the man page. -+This file is an RPM SPEC file that can be used to install the SELinux policy on to machines and setup the labeling. The spec file also installs the interface file and a man page describing the policy. You can use \fBsepolicy manpage \-d NAME\fP to generate the man page. - --.B Shell File NAME.sh -+.B NAME.sh - .br --This is a helper shell script to compile, install and fix the labeling on your test system. It will also generate a man page based on the installed policy, and --compile and build an RPM suitable to be installed on other machines -- --If a generate is possible, this tool will print out all generate paths from the source domain to the target domain -+This is a helper shell script to compile, install and fix the labeling on your test system. It will also generate a man page based on the installed policy, and compile and build an RPM suitable to be installed on other machines. - - .SH "OPTIONS" - .TP -@@ -97,10 +94,11 @@ Specify alternate name of policy. The policy will default to the executable or n - .TP - .I \-p, \-\-path - Specify the directory to store the created policy files. (Default to current working directory ) -+.TP - optional arguments: - .TP - .I \-r, \-\-role --Enter role(s) to which this admin user will transition. -+Enter role(s) to which this admin user will transition - .TP - .I \-t, \-\-type - Enter type(s) for which you will generate new definition and rule(s) -@@ -109,12 +107,12 @@ Enter type(s) for which you will generate new definition and rule(s) - SELinux user(s) which will transition to this domain - .TP - .I \-w, \-\-writepath --Path(s) which the confined processes need to write -+Path(s) which the confined processes need to write to - .TP - .I \-a, \-\-admin - Domain(s) which the confined admin will administrate - .TP --.I \-\-admin_user -+.I \-\-admin_user - Generate Policy for Administrator Login User Role - .TP - .I \-\-application -@@ -142,7 +140,7 @@ Generate Policy for Internet Services Daemon - Generate Policy for Standard Init Daemon (Default) - .TP - .I \-\-newtype --Generate new policy for new types to add to an existing policy. -+Generate new policy for new types to add to an existing policy - .TP - .I \-\-sandbox - Generate Policy for Sandbox -diff --git a/python/sepolicy/sepolicy-gui.8 b/python/sepolicy/sepolicy-gui.8 -index ed744cdb..65b69fab 100644 ---- a/python/sepolicy/sepolicy-gui.8 -+++ b/python/sepolicy/sepolicy-gui.8 -@@ -11,7 +11,7 @@ Common options - .br - - .SH "DESCRIPTION" --Use \fBsepolicy gui\fP to run a the graphical user interface, which -+Use \fBsepolicy gui\fP to run the graphical user interface, which - allows you to explore how SELinux confines different process domains. - - .SH "OPTIONS" -@@ -20,7 +20,7 @@ allows you to explore how SELinux confines different process domains. - Display help message - .TP - .I \-d, \-\-domain --Initialize gui to the selected domain. -+Initialize gui to the selected domain - - .SH "AUTHOR" - This man page was written by Daniel Walsh -diff --git a/python/sepolicy/sepolicy-interface.8 b/python/sepolicy/sepolicy-interface.8 -index 3e74ea62..a70a9306 100644 ---- a/python/sepolicy/sepolicy-interface.8 -+++ b/python/sepolicy/sepolicy-interface.8 -@@ -5,10 +5,10 @@ sepolicy-interface \- Print interface information based on the installed SELinux - .SH "SYNOPSIS" - - .br --.B sepolicy interface [\-h] [\-c] [\-v] [\-a | \-u | \-l | \-i INTERFACE [INTERFACE ... ]] -+.B sepolicy interface [\-h] [\-c] [\-v] [\-f FILE] [\-a | \-u | \-l | \-i INTERFACE [INTERFACE ... ]] - - .SH "DESCRIPTION" --Use sepolicy interface to print interfaces information based on SELinux Policy. -+Use \fBsepolicy interface\fP to print interface information based on SELinux Policy. - - .SH "OPTIONS" - .TP -@@ -18,7 +18,7 @@ List all domains with admin interface - .I \-c, \-\-compile - Test compile of interfaces - .TP --.I \-h, \-\-help -+.I \-h, \-\-help - Display help message - .TP - .I \-i, \-\-interface -@@ -32,6 +32,18 @@ List all domains with SELinux user role interface - .TP - .I \-v, \-\-verbose - Display extended information about the interface including parameters and description if available. -+.TP -+.I \-f, \-\-file -+Interface file to be explored -+ -+.SH EXAMPLE -+.nf -+Show description of given interface -+# sepolicy interface -vi samba_rw_config -+List interfaces in given interface file and show their description -+# sepolicy interface -f my_policy.if -lv -+Run compile test for all interfaces in given file -+# sepolicy interface -f my_policy.if -lc - - .SH "AUTHOR" - This man page was written by Daniel Walsh -diff --git a/python/sepolicy/sepolicy-manpage.8 b/python/sepolicy/sepolicy-manpage.8 -index c05c9430..4991f645 100644 ---- a/python/sepolicy/sepolicy-manpage.8 -+++ b/python/sepolicy/sepolicy-manpage.8 -@@ -8,27 +8,40 @@ sepolicy-manpage \- Generate a man page based on the installed SELinux Policy - .B sepolicy manpage [\-w] [\-h] [\-p PATH ] [\-r ROOTDIR ] [\-a | \-d ] - - .SH "DESCRIPTION" --Use sepolicy manpage to generate manpages based on SELinux Policy. -+Use \fBsepolicy manpage\fP to generate manpages based on SELinux Policy. - - .SH "OPTIONS" - .TP --.I \-a, \-\-all -+.I \-a, \-\-all - Generate Man Pages for All Domains - .TP --.I \-d, \-\-domain -+.I \-d, \-\-domain - Generate a Man Page for the specified domain. (Supports multiple commands) - .TP --.I \-h, \-\-help -+.I \-h, \-\-help - Display help message - .TP -+.I \-o, \-\-os -+Specify the name of the OS to be used in the man page (only affects HTML man pages) -+.TP - .I \-p, \-\-path - Specify the directory to store the created man pages. (Default to /tmp) - .TP - .I \-r, \-\-root --Specify alternate root directory to generate man pages from. (Default to /) -+Specify alternative root directory to generate man pages from. (Default to /) -+.TP -+.I \-\-source_files -+Use file_contexts and policy.xml files from the specified root directory (the alternative root needs to include both files) - .TP - .I \-w, \-\-web --Generate an additional HTML man pages for the specified domain(s). -+Generate an additional HTML man pages for the specified domain(s) -+ -+.SH EXAMPLE -+.nf -+Generate man pages for all available domains -+# sepolicy manpage -a -+Generate an HTML man page for domain alsa_t, setting the OS name to "My_distro" -+# sepolicy manpage -o My_distro -d alsa_t -w - - .SH "AUTHOR" - This man page was written by Daniel Walsh -diff --git a/python/sepolicy/sepolicy-network.8 b/python/sepolicy/sepolicy-network.8 -index dcddec75..6faf60ab 100644 ---- a/python/sepolicy/sepolicy-network.8 -+++ b/python/sepolicy/sepolicy-network.8 -@@ -8,27 +8,27 @@ sepolicy-network \- Examine the SELinux Policy and generate a network report - .B sepolicy network [\-h] (\-l | \-a application [application ...] | \-p PORT [PORT ...] | \-t TYPE [TYPE ...] | \-d DOMAIN [DOMAIN ...]) - - .SH "DESCRIPTION" --Use sepolicy network to examine SELinux Policy and generate network reports. -+Use \fBsepolicy network\fP to examine SELinux Policy and generate network reports. - - .SH "OPTIONS" - .TP - .I \-a, \-\-application --Generate a report listing the ports to which the specified init application is allowed to connect and or bind. -+Generate a report listing the ports to which the specified init application is allowed to connect and or bind - .TP --.I \-d, \-\-domain --Generate a report listing the ports to which the specified domain is allowed to connect and or bind. -+.I \-d, \-\-domain -+Generate a report listing the ports to which the specified domain is allowed to connect and or bind - .TP --.I \-l, \-\-list -+.I \-l, \-\-list - List all Network Port Types defined in SELinux Policy - .TP --.I \-h, \-\-help -+.I \-h, \-\-help - Display help message - .TP - .I \-t, \-\-type --Generate a report listing the port numbers associate with the specified SELinux port type. -+Generate a report listing the port numbers associate with the specified SELinux port type - .TP - .I \-p, \-\-port --Generate a report listing the SELinux port types associate with the specified port number. -+Generate a report listing the SELinux port types associate with the specified port number - - .SH "EXAMPLES" - -@@ -88,4 +88,3 @@ This man page was written by Daniel Walsh - - .SH "SEE ALSO" - sepolicy(8), selinux(8), semanage(8) -- -diff --git a/python/sepolicy/sepolicy-transition.8 b/python/sepolicy/sepolicy-transition.8 -index 897f0c4c..9f9ff5a5 100644 ---- a/python/sepolicy/sepolicy-transition.8 -+++ b/python/sepolicy/sepolicy-transition.8 -@@ -11,21 +11,28 @@ sepolicy-transition \- Examine the SELinux Policy and generate a process transit - .B sepolicy transition [\-h] \-s SOURCE \-t TARGET - - .SH "DESCRIPTION" --sepolicy transition will show all domains that a give SELinux source domain can transition to, including the entrypoint. -+\fBsepolicy transition\fP will show all domains that a given SELinux source domain can transition to, including the entrypoint. - --If a target domain is given, sepolicy transition will examine policy for all transition paths from the source domain to the target domain, and will list the --paths. If a transition is possible, this tool will print out all transition paths from the source domain to the target domain -+If a target domain is given, sepolicy transition will examine policy for all transition paths from the source domain to the target domain, and will list the -+paths. - - .SH "OPTIONS" - .TP --.I \-h, \-\-help -+.I \-h, \-\-help - Display help message - .TP - .I \-s, \-\-source --Specify the source SELinux domain type. -+Specify the source SELinux domain type - .TP - .I \-t, \-\-target --Specify the target SELinux domain type. -+Specify the target SELinux domain type -+ -+.SH EXAMPLE -+.nf -+List all domain transition paths from init_t to httpd_t -+# sepolicy transition -s init_t -t httpd_t -+List all transitions available from samba domain, including entry points and booleans controlling each transition -+# sepolicy transition -s smbd_t - - .SH "AUTHOR" - This man page was written by Daniel Walsh --- -2.40.0 - diff --git a/0012-sandbox-Add-examples-to-man-pages.patch b/0012-sandbox-Add-examples-to-man-pages.patch deleted file mode 100644 index 28c0e64..0000000 --- a/0012-sandbox-Add-examples-to-man-pages.patch +++ /dev/null @@ -1,128 +0,0 @@ -From 0beb84506b86844374d43db32180a4ea17aeb825 Mon Sep 17 00:00:00 2001 -From: Vit Mojzis -Date: Thu, 1 Jun 2023 16:39:13 +0200 -Subject: [PATCH] sandbox: Add examples to man pages - -While at it, remove trailing whitespaces. - -Signed-off-by: Vit Mojzis -Acked-by: Petr Lautrbach ---- - sandbox/sandbox.8 | 28 ++++++++++++++++++---------- - sandbox/seunshare.8 | 21 ++++++++++++++------- - 2 files changed, 32 insertions(+), 17 deletions(-) - -diff --git a/sandbox/sandbox.8 b/sandbox/sandbox.8 -index 775e4b23..1c187019 100644 ---- a/sandbox/sandbox.8 -+++ b/sandbox/sandbox.8 -@@ -11,12 +11,12 @@ sandbox \- Run cmd under an SELinux sandbox - .br - .SH DESCRIPTION - .PP --Run the --.I cmd -+Run the -+.I cmd - application within a tightly confined SELinux domain. The default sandbox domain only allows applications the ability to read and write stdin, stdout and any other file descriptors handed to it. It is not allowed to open any other files. The \-M option will mount an alternate homedir and tmpdir to be used by the sandbox. - --If you have the --.I policycoreutils-sandbox -+If you have the -+.I policycoreutils-sandbox - package installed, you can use the \-X option and the \-M option. - .B sandbox \-X - allows you to run X applications within a sandbox. These applications will start up their own X Server and create a temporary home directory and /tmp. The default SELinux policy does not allow any capabilities or network access. It also prevents all access to the users other processes and files. Files specified on the command that are in the home directory or /tmp will be copied into the sandbox directories. -@@ -78,27 +78,35 @@ Run a full desktop session, Requires level, and home and tmpdir. - Specifies the windowsize when creating an X based Sandbox. The default windowsize is 1000x700. - .TP - \fB\-W\fR \fB\-\-windowmanager\fR --Select alternative window manager to run within -+Select alternative window manager to run within - .B sandbox \-X. - Default to /usr/bin/matchbox-window-manager. - .TP --\fB\-X\fR -+\fB\-X\fR - Create an X based Sandbox for gui apps, temporary files for - $HOME and /tmp, secondary Xserver, defaults to sandbox_x_t - .TP - \fB\-d\fR \fB\-\-dpi\fR - Set the DPI value for the sandbox X Server. Defaults to the current X Sever DPI. - .TP --\fB\-C\fR \fB\-\-capabilities\fR Use capabilities within the --sandbox. By default applications executed within the sandbox will not --be allowed to use capabilities (setuid apps), with the \-C flag, you --can use programs requiring capabilities. -+\fB\-C\fR \fB\-\-capabilities\fR -+Use capabilities within the sandbox. By default applications executed within the sandbox will not be allowed to use capabilities (setuid apps), with the \-C flag, you can use programs requiring capabilities. - .PP - .SH "SEE ALSO" - .TP - runcon(1), seunshare(8), selinux(8) - .PP - -+.SH EXAMPLE -+.nf -+Run a graphical application inside the sandbox -+# sandbox -X evince -+Run a graphical application that requires the use of network -+# sandbox ‑X ‑t sandbox_web_t firefox -+Preserve data from one session to the next -+# mkdir -p ~/sandbox/home ~/sandbox/tmp -+# sandbox -H ~/sandbox/home -T ~/sandbox/tmp -X libreoffice --writer -+ - .SH AUTHOR - This manual page was written by - .I Dan Walsh -diff --git a/sandbox/seunshare.8 b/sandbox/seunshare.8 -index 09cf7fea..5339a3b1 100644 ---- a/sandbox/seunshare.8 -+++ b/sandbox/seunshare.8 -@@ -9,29 +9,36 @@ seunshare \- Run cmd with alternate homedir, tmpdir and/or SELinux context - .PP - Run the - .I executable --within the specified context, using the alternate home directory and /tmp directory. The seunshare command unshares from the default namespace, then mounts the specified homedir and tmpdir over the default homedir and /tmp. Finally it tells the kernel to execute the application under the specified SELinux context. -+within the specified context, using custom home directory and /tmp directory. The seunshare command unshares from the default namespace, then mounts the specified homedir and tmpdir over the default homedir and /tmp. Finally it tells the kernel to execute the application under the specified SELinux context. - - .TP - \fB\-h homedir\fR --Alternate homedir to be used by the application. Homedir must be owned by the user. -+Alternate homedir to be used by the application. Homedir must be owned by the user - .TP - \fB\-t\ tmpdir --Use alternate temporary directory to mount on /tmp. tmpdir must be owned by the user. -+Use alternate temporary directory to mount on /tmp. tmpdir must be owned by the user - .TP - \fB\-r\ runuserdir --Use alternate temporary directory to mount on XDG_RUNTIME_DIR (/run/user/$UID). runuserdir must be owned by the user. -+Use alternate temporary directory to mount on XDG_RUNTIME_DIR (/run/user/$UID). runuserdir must be owned by the user - .TP - \fB\-C --capabilities\fR --Allow apps executed within the namespace to use capabilities. Default is no capabilities. -+Allow apps executed within the namespace to use capabilities. Default is no capabilities - .TP - \fB\-k --kill\fR --Kill all processes with matching MCS level. -+Kill all processes with matching MCS level - .TP - \fB\-Z\ context --Use alternate SELinux context while running the executable. -+Use alternate SELinux context while running the executable - .TP - \fB\-v\fR - Verbose output -+ -+.SH EXAMPLE -+.nf -+Run bash with temporary /home and /tmp directory -+# USERHOMEDIR=`mktemp -d /tmp/home.XXXXXX`; USERTEMPDIR=`mktemp -d /tmp/temp.XXXXXX` -+# seunshare -v -h ${USERHOMEDIR} -t ${USERTEMPDIR} -- /bin/bash -+ - .SH "SEE ALSO" - .TP - runcon(1), sandbox(8), selinux(8) --- -2.40.0 - diff --git a/0013-python-sepolicy-Fix-template-for-confined-user-polic.patch b/0013-python-sepolicy-Fix-template-for-confined-user-polic.patch deleted file mode 100644 index b2271a2..0000000 --- a/0013-python-sepolicy-Fix-template-for-confined-user-polic.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 73fd4231024f6241af6263ba74b70459bf9611f1 Mon Sep 17 00:00:00 2001 -From: Vit Mojzis -Date: Thu, 1 Jun 2023 18:34:30 +0200 -Subject: [PATCH] python/sepolicy: Fix template for confined user policy - modules - -The following commit -https://github.com/SELinuxProject/refpolicy/commit/330b0fc3331d3b836691464734c96f3da3044490 -changed the userdom_base_user_template, which now requires a role -corresponding to the user being created to be defined outside of the -template. -Similar change was also done to fedora-selinux/selinux-policy -https://github.com/fedora-selinux/selinux-policy/commit/e1e216b25df1bdb4eb7dbb8f73f32927ad6f3d1f - -Although I believe the template should define the role (just as it -defines the new user), that will require extensive changes to refpolicy. -In the meantime the role needs to be defined separately. - -Fixes: - # sepolicy generate --term_user -n newuser - Created the following files: - /root/a/test/newuser.te # Type Enforcement file - /root/a/test/newuser.if # Interface file - /root/a/test/newuser.fc # File Contexts file - /root/a/test/newuser_selinux.spec # Spec file - /root/a/test/newuser.sh # Setup Script - - # ./newuser.sh - Building and Loading Policy - + make -f /usr/share/selinux/devel/Makefile newuser.pp - Compiling targeted newuser module - Creating targeted newuser.pp policy package - rm tmp/newuser.mod tmp/newuser.mod.fc - + /usr/sbin/semodule -i newuser.pp - Failed to resolve roleattributeset statement at /var/lib/selinux/targeted/tmp/modules/400/newuser/cil:8 - Failed to resolve AST - /usr/sbin/semodule: Failed! - -Signed-off-by: Vit Mojzis -Acked-by: Petr Lautrbach ---- - python/sepolicy/sepolicy/templates/user.py | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/python/sepolicy/sepolicy/templates/user.py b/python/sepolicy/sepolicy/templates/user.py -index 1ff9d2ce..7081fbae 100644 ---- a/python/sepolicy/sepolicy/templates/user.py -+++ b/python/sepolicy/sepolicy/templates/user.py -@@ -28,6 +28,8 @@ policy_module(TEMPLATETYPE, 1.0.0) - # - # Declarations - # -+role TEMPLATETYPE_r; -+ - userdom_unpriv_user_template(TEMPLATETYPE) - """ - -@@ -38,6 +40,8 @@ policy_module(TEMPLATETYPE, 1.0.0) - # - # Declarations - # -+role TEMPLATETYPE_r; -+ - userdom_admin_user_template(TEMPLATETYPE) - """ - -@@ -48,6 +52,7 @@ policy_module(TEMPLATETYPE, 1.0.0) - # - # Declarations - # -+role TEMPLATETYPE_r; - - userdom_restricted_user_template(TEMPLATETYPE) - """ -@@ -59,6 +64,7 @@ policy_module(TEMPLATETYPE, 1.0.0) - # - # Declarations - # -+role TEMPLATETYPE_r; - - userdom_restricted_xwindows_user_template(TEMPLATETYPE) - """ -@@ -89,6 +95,7 @@ gen_tunable(TEMPLATETYPE_manage_user_files, false) - # - # Declarations - # -+role TEMPLATETYPE_r; - - userdom_base_user_template(TEMPLATETYPE) - """ --- -2.40.0 - diff --git a/0015-python-improve-format-strings-for-proper-localizatio.patch b/0015-python-improve-format-strings-for-proper-localizatio.patch deleted file mode 100644 index 79f1193..0000000 --- a/0015-python-improve-format-strings-for-proper-localizatio.patch +++ /dev/null @@ -1,455 +0,0 @@ -From d55f376b3cdff4e4159db32039175f9a5ea105db Mon Sep 17 00:00:00 2001 -From: Petr Lautrbach -Date: Tue, 16 May 2023 15:45:05 +0200 -Subject: [PATCH] python: improve format strings for proper localization -Content-type: text/plain - -If a string contains more than one unnamed argument it's hard for -translators to proper localize as they don't know which value is -represented by a unnamed argument. It also blocks them to use a -different order of arguments which would make better sense in other -languages. - -Fixes: - - $ xgettext --default-domain=python -L Python --keyword=_ --keyword=N_ ../audit2allow/audit2allow ../chcat/chcat ../semanage/semanage ../semanage/seobject.py ../sepolgen/src/sepolgen/interfaces.py ../sepolicy/sepolicy/generate.py ../sepolicy/sepolicy/gui.py ../sepolicy/sepolicy/__init__.py ../sepolicy/sepolicy/interface.py ../sepolicy/sepolicy.py - ../chcat/chcat:220: warning: 'msgid' format string with unnamed arguments cannot be properly localized: - The translator cannot reorder the arguments. - Please consider using a format string with named arguments, - and a mapping instead of a tuple for the arguments. - ../semanage/seobject.py:1178: warning: 'msgid' format string with unnamed arguments cannot be properly localized: - The translator cannot reorder the arguments. - Please consider using a format string with named arguments, - and a mapping instead of a tuple for the arguments. - ... - -Signed-off-by: Petr Lautrbach ---- - python/chcat/chcat | 6 +- - python/semanage/seobject.py | 130 ++++++++++++++++++------------------ - 2 files changed, 68 insertions(+), 68 deletions(-) - -diff --git a/python/chcat/chcat b/python/chcat/chcat -index 68718ec5f102..c4f592291821 100755 ---- a/python/chcat/chcat -+++ b/python/chcat/chcat -@@ -125,7 +125,7 @@ def chcat_add(orig, newcat, objects, login_ind): - - if len(clist) > 1: - if cat in clist[1:]: -- print(_("%s is already in %s") % (f, orig)) -+ print(_("{target} is already in {category}").format(target=f, category=orig)) - continue - clist.append(cat) - cats = clist[1:] -@@ -207,7 +207,7 @@ def chcat_remove(orig, newcat, objects, login_ind): - - if len(clist) > 1: - if cat not in clist[1:]: -- print(_("%s is not in %s") % (f, orig)) -+ print(_("{target} is not in {category}").format(target=f, category=orig)) - continue - clist.remove(cat) - if len(clist) > 1: -@@ -217,7 +217,7 @@ def chcat_remove(orig, newcat, objects, login_ind): - else: - cat = "" - else: -- print(_("%s is not in %s") % (f, orig)) -+ print(_("{target} is not in {category}").format(target=f, category=orig)) - continue - - if len(cat) == 0: -diff --git a/python/semanage/seobject.py b/python/semanage/seobject.py -index d82da4942987..2b1eb44ce8a3 100644 ---- a/python/semanage/seobject.py -+++ b/python/semanage/seobject.py -@@ -843,7 +843,7 @@ class seluserRecords(semanageRecords): - for r in roles: - rc = semanage_user_add_role(self.sh, u, r) - if rc < 0: -- raise ValueError(_("Could not add role %s for %s") % (r, name)) -+ raise ValueError(_("Could not add role {role} for {name}").format(role=r, name=name)) - - if is_mls_enabled == 1: - rc = semanage_user_set_mlsrange(self.sh, u, serange) -@@ -855,7 +855,7 @@ class seluserRecords(semanageRecords): - raise ValueError(_("Could not set MLS level for %s") % name) - rc = semanage_user_set_prefix(self.sh, u, prefix) - if rc < 0: -- raise ValueError(_("Could not add prefix %s for %s") % (r, prefix)) -+ raise ValueError(_("Could not add prefix {prefix} for {role}").format(role=r, prefix=prefix)) - (rc, key) = semanage_user_key_extract(self.sh, u) - if rc < 0: - raise ValueError(_("Could not extract key for %s") % name) -@@ -1088,7 +1088,7 @@ class portRecords(semanageRecords): - - (rc, k) = semanage_port_key_create(self.sh, low, high, proto_d) - if rc < 0: -- raise ValueError(_("Could not create a key for %s/%s") % (proto, port)) -+ raise ValueError(_("Could not create a key for {proto}/{port}").format(proto=proto, port=port)) - return (k, proto_d, low, high) - - def __add(self, port, proto, serange, type): -@@ -1110,44 +1110,44 @@ class portRecords(semanageRecords): - - (rc, exists) = semanage_port_exists(self.sh, k) - if rc < 0: -- raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port)) -+ raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port)) - if exists: -- raise ValueError(_("Port %s/%s already defined") % (proto, port)) -+ raise ValueError(_("Port {proto}/{port} already defined").format(proto=proto, port=port)) - - (rc, p) = semanage_port_create(self.sh) - if rc < 0: -- raise ValueError(_("Could not create port for %s/%s") % (proto, port)) -+ raise ValueError(_("Could not create port for {proto}/{port}").format(proto=proto, port=port)) - - semanage_port_set_proto(p, proto_d) - semanage_port_set_range(p, low, high) - (rc, con) = semanage_context_create(self.sh) - if rc < 0: -- raise ValueError(_("Could not create context for %s/%s") % (proto, port)) -+ raise ValueError(_("Could not create context for {proto}/{port}").format(proto=proto, port=port)) - - rc = semanage_context_set_user(self.sh, con, "system_u") - if rc < 0: -- raise ValueError(_("Could not set user in port context for %s/%s") % (proto, port)) -+ raise ValueError(_("Could not set user in port context for {proto}/{port}").format(proto=proto, port=port)) - - rc = semanage_context_set_role(self.sh, con, "object_r") - if rc < 0: -- raise ValueError(_("Could not set role in port context for %s/%s") % (proto, port)) -+ raise ValueError(_("Could not set role in port context for {proto}/{port}").format(proto=proto, port=port)) - - rc = semanage_context_set_type(self.sh, con, type) - if rc < 0: -- raise ValueError(_("Could not set type in port context for %s/%s") % (proto, port)) -+ raise ValueError(_("Could not set type in port context for {proto}/{port}").format(proto=proto, port=port)) - - if (is_mls_enabled == 1) and (serange != ""): - rc = semanage_context_set_mls(self.sh, con, serange) - if rc < 0: -- raise ValueError(_("Could not set mls fields in port context for %s/%s") % (proto, port)) -+ raise ValueError(_("Could not set mls fields in port context for {proto}/{port}").format(proto=proto, port=port)) - - rc = semanage_port_set_con(self.sh, p, con) - if rc < 0: -- raise ValueError(_("Could not set port context for %s/%s") % (proto, port)) -+ raise ValueError(_("Could not set port context for {proto}/{port}").format(proto=proto, port=port)) - - rc = semanage_port_modify_local(self.sh, k, p) - if rc < 0: -- raise ValueError(_("Could not add port %s/%s") % (proto, port)) -+ raise ValueError(_("Could not add port {proto}/{port}").format(proto=proto, port=port)) - - semanage_context_free(con) - semanage_port_key_free(k) -@@ -1175,13 +1175,13 @@ class portRecords(semanageRecords): - - (rc, exists) = semanage_port_exists(self.sh, k) - if rc < 0: -- raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port)) -+ raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port)) - if not exists: -- raise ValueError(_("Port %s/%s is not defined") % (proto, port)) -+ raise ValueError(_("Port {proto}/{port} is not defined").format(proto=proto, port=port)) - - (rc, p) = semanage_port_query(self.sh, k) - if rc < 0: -- raise ValueError(_("Could not query port %s/%s") % (proto, port)) -+ raise ValueError(_("Could not query port {proto}/{port}").format(proto=proto, port=port)) - - con = semanage_port_get_con(p) - -@@ -1195,7 +1195,7 @@ class portRecords(semanageRecords): - - rc = semanage_port_modify_local(self.sh, k, p) - if rc < 0: -- raise ValueError(_("Could not modify port %s/%s") % (proto, port)) -+ raise ValueError(_("Could not modify port {proto}/{port}").format(proto=proto, port=port)) - - semanage_port_key_free(k) - semanage_port_free(p) -@@ -1241,19 +1241,19 @@ class portRecords(semanageRecords): - (k, proto_d, low, high) = self.__genkey(port, proto) - (rc, exists) = semanage_port_exists(self.sh, k) - if rc < 0: -- raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port)) -+ raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port)) - if not exists: -- raise ValueError(_("Port %s/%s is not defined") % (proto, port)) -+ raise ValueError(_("Port {proto}/{port} is not defined").format(proto=proto, port=port)) - - (rc, exists) = semanage_port_exists_local(self.sh, k) - if rc < 0: -- raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port)) -+ raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port)) - if not exists: -- raise ValueError(_("Port %s/%s is defined in policy, cannot be deleted") % (proto, port)) -+ raise ValueError(_("Port {proto}/{port} is defined in policy, cannot be deleted").format(proto=proto, port=port)) - - rc = semanage_port_del_local(self.sh, k) - if rc < 0: -- raise ValueError(_("Could not delete port %s/%s") % (proto, port)) -+ raise ValueError(_("Could not delete port {proto}/{port}").format(proto=proto, port=port)) - - semanage_port_key_free(k) - -@@ -1362,7 +1362,7 @@ class ibpkeyRecords(semanageRecords): - - (rc, k) = semanage_ibpkey_key_create(self.sh, subnet_prefix, low, high) - if rc < 0: -- raise ValueError(_("Could not create a key for %s/%s") % (subnet_prefix, pkey)) -+ raise ValueError(_("Could not create a key for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey)) - return (k, subnet_prefix, low, high) - - def __add(self, pkey, subnet_prefix, serange, type): -@@ -1384,44 +1384,44 @@ class ibpkeyRecords(semanageRecords): - - (rc, exists) = semanage_ibpkey_exists(self.sh, k) - if rc < 0: -- raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey)) -+ raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").formnat(subnet_prefix=subnet_prefix, pkey=pkey)) - if exists: -- raise ValueError(_("ibpkey %s/%s already defined") % (subnet_prefix, pkey)) -+ raise ValueError(_("ibpkey {subnet_prefix}/{pkey} already defined").format(subnet_prefix=subnet_prefix, pkey=pkey)) - - (rc, p) = semanage_ibpkey_create(self.sh) - if rc < 0: -- raise ValueError(_("Could not create ibpkey for %s/%s") % (subnet_prefix, pkey)) -+ raise ValueError(_("Could not create ibpkey for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey)) - - semanage_ibpkey_set_subnet_prefix(self.sh, p, subnet_prefix) - semanage_ibpkey_set_range(p, low, high) - (rc, con) = semanage_context_create(self.sh) - if rc < 0: -- raise ValueError(_("Could not create context for %s/%s") % (subnet_prefix, pkey)) -+ raise ValueError(_("Could not create context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey)) - - rc = semanage_context_set_user(self.sh, con, "system_u") - if rc < 0: -- raise ValueError(_("Could not set user in ibpkey context for %s/%s") % (subnet_prefix, pkey)) -+ raise ValueError(_("Could not set user in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey)) - - rc = semanage_context_set_role(self.sh, con, "object_r") - if rc < 0: -- raise ValueError(_("Could not set role in ibpkey context for %s/%s") % (subnet_prefix, pkey)) -+ raise ValueError(_("Could not set role in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey)) - - rc = semanage_context_set_type(self.sh, con, type) - if rc < 0: -- raise ValueError(_("Could not set type in ibpkey context for %s/%s") % (subnet_prefix, pkey)) -+ raise ValueError(_("Could not set type in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey)) - - if (is_mls_enabled == 1) and (serange != ""): - rc = semanage_context_set_mls(self.sh, con, serange) - if rc < 0: -- raise ValueError(_("Could not set mls fields in ibpkey context for %s/%s") % (subnet_prefix, pkey)) -+ raise ValueError(_("Could not set mls fields in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey)) - - rc = semanage_ibpkey_set_con(self.sh, p, con) - if rc < 0: -- raise ValueError(_("Could not set ibpkey context for %s/%s") % (subnet_prefix, pkey)) -+ raise ValueError(_("Could not set ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey)) - - rc = semanage_ibpkey_modify_local(self.sh, k, p) - if rc < 0: -- raise ValueError(_("Could not add ibpkey %s/%s") % (subnet_prefix, pkey)) -+ raise ValueError(_("Could not add ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey)) - - semanage_context_free(con) - semanage_ibpkey_key_free(k) -@@ -1448,13 +1448,13 @@ class ibpkeyRecords(semanageRecords): - - (rc, exists) = semanage_ibpkey_exists(self.sh, k) - if rc < 0: -- raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey)) -+ raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").format(subnet_prefix=subnet_prefix, pkey=pkey)) - if not exists: -- raise ValueError(_("ibpkey %s/%s is not defined") % (subnet_prefix, pkey)) -+ raise ValueError(_("ibpkey {subnet_prefix}/{pkey} is not defined").format(subnet_prefix=subnet_prefix, pkey=pkey)) - - (rc, p) = semanage_ibpkey_query(self.sh, k) - if rc < 0: -- raise ValueError(_("Could not query ibpkey %s/%s") % (subnet_prefix, pkey)) -+ raise ValueError(_("Could not query ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey)) - - con = semanage_ibpkey_get_con(p) - -@@ -1465,7 +1465,7 @@ class ibpkeyRecords(semanageRecords): - - rc = semanage_ibpkey_modify_local(self.sh, k, p) - if rc < 0: -- raise ValueError(_("Could not modify ibpkey %s/%s") % (subnet_prefix, pkey)) -+ raise ValueError(_("Could not modify ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey)) - - semanage_ibpkey_key_free(k) - semanage_ibpkey_free(p) -@@ -1502,19 +1502,19 @@ class ibpkeyRecords(semanageRecords): - (k, subnet_prefix, low, high) = self.__genkey(pkey, subnet_prefix) - (rc, exists) = semanage_ibpkey_exists(self.sh, k) - if rc < 0: -- raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey)) -+ raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").format(subnet_prefix=subnet_prefix, pkey=pkey)) - if not exists: -- raise ValueError(_("ibpkey %s/%s is not defined") % (subnet_prefix, pkey)) -+ raise ValueError(_("ibpkey {subnet_prefix}/{pkey} is not defined").format(subnet_prefix=subnet_prefix, pkey=pkey)) - - (rc, exists) = semanage_ibpkey_exists_local(self.sh, k) - if rc < 0: -- raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey)) -+ raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").format(subnet_prefix=subnet_prefix, pkey=pkey)) - if not exists: -- raise ValueError(_("ibpkey %s/%s is defined in policy, cannot be deleted") % (subnet_prefix, pkey)) -+ raise ValueError(_("ibpkey {subnet_prefix}/{pkey} is defined in policy, cannot be deleted").format(subnet_prefix=subnet_prefix, pkey=pkey)) - - rc = semanage_ibpkey_del_local(self.sh, k) - if rc < 0: -- raise ValueError(_("Could not delete ibpkey %s/%s") % (subnet_prefix, pkey)) -+ raise ValueError(_("Could not delete ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey)) - - semanage_ibpkey_key_free(k) - -@@ -1617,7 +1617,7 @@ class ibendportRecords(semanageRecords): - - (rc, k) = semanage_ibendport_key_create(self.sh, ibdev_name, port) - if rc < 0: -- raise ValueError(_("Could not create a key for ibendport %s/%s") % (ibdev_name, ibendport)) -+ raise ValueError(_("Could not create a key for ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport)) - return (k, ibdev_name, port) - - def __add(self, ibendport, ibdev_name, serange, type): -@@ -1638,44 +1638,44 @@ class ibendportRecords(semanageRecords): - - (rc, exists) = semanage_ibendport_exists(self.sh, k) - if rc < 0: -- raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, port)) -+ raise ValueError(_("Could not check if ibendport {ibdev_name}/{port} is defined").format(ibdev_name=ibdev_name, port=port)) - if exists: -- raise ValueError(_("ibendport %s/%s already defined") % (ibdev_name, port)) -+ raise ValueError(_("ibendport {ibdev_name}/{port} already defined").format(ibdev_name=ibdev_name, port=port)) - - (rc, p) = semanage_ibendport_create(self.sh) - if rc < 0: -- raise ValueError(_("Could not create ibendport for %s/%s") % (ibdev_name, port)) -+ raise ValueError(_("Could not create ibendport for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port)) - - semanage_ibendport_set_ibdev_name(self.sh, p, ibdev_name) - semanage_ibendport_set_port(p, port) - (rc, con) = semanage_context_create(self.sh) - if rc < 0: -- raise ValueError(_("Could not create context for %s/%s") % (ibdev_name, port)) -+ raise ValueError(_("Could not create context for {ibendport}/{port}").format(ibdev_name=ibdev_name, port=port)) - - rc = semanage_context_set_user(self.sh, con, "system_u") - if rc < 0: -- raise ValueError(_("Could not set user in ibendport context for %s/%s") % (ibdev_name, port)) -+ raise ValueError(_("Could not set user in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port)) - - rc = semanage_context_set_role(self.sh, con, "object_r") - if rc < 0: -- raise ValueError(_("Could not set role in ibendport context for %s/%s") % (ibdev_name, port)) -+ raise ValueError(_("Could not set role in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port)) - - rc = semanage_context_set_type(self.sh, con, type) - if rc < 0: -- raise ValueError(_("Could not set type in ibendport context for %s/%s") % (ibdev_name, port)) -+ raise ValueError(_("Could not set type in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port)) - - if (is_mls_enabled == 1) and (serange != ""): - rc = semanage_context_set_mls(self.sh, con, serange) - if rc < 0: -- raise ValueError(_("Could not set mls fields in ibendport context for %s/%s") % (ibdev_name, port)) -+ raise ValueError(_("Could not set mls fields in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port)) - - rc = semanage_ibendport_set_con(self.sh, p, con) - if rc < 0: -- raise ValueError(_("Could not set ibendport context for %s/%s") % (ibdev_name, port)) -+ raise ValueError(_("Could not set ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port)) - - rc = semanage_ibendport_modify_local(self.sh, k, p) - if rc < 0: -- raise ValueError(_("Could not add ibendport %s/%s") % (ibdev_name, port)) -+ raise ValueError(_("Could not add ibendport {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port)) - - semanage_context_free(con) - semanage_ibendport_key_free(k) -@@ -1702,13 +1702,13 @@ class ibendportRecords(semanageRecords): - - (rc, exists) = semanage_ibendport_exists(self.sh, k) - if rc < 0: -- raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport)) -+ raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport)) - if not exists: -- raise ValueError(_("ibendport %s/%s is not defined") % (ibdev_name, ibendport)) -+ raise ValueError(_("ibendport {ibdev_name}/{ibendport} is not defined").format(ibdev_name=ibdev_name, ibendport=ibendport)) - - (rc, p) = semanage_ibendport_query(self.sh, k) - if rc < 0: -- raise ValueError(_("Could not query ibendport %s/%s") % (ibdev_name, ibendport)) -+ raise ValueError(_("Could not query ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport)) - - con = semanage_ibendport_get_con(p) - -@@ -1719,7 +1719,7 @@ class ibendportRecords(semanageRecords): - - rc = semanage_ibendport_modify_local(self.sh, k, p) - if rc < 0: -- raise ValueError(_("Could not modify ibendport %s/%s") % (ibdev_name, ibendport)) -+ raise ValueError(_("Could not modify ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport)) - - semanage_ibendport_key_free(k) - semanage_ibendport_free(p) -@@ -1741,11 +1741,11 @@ class ibendportRecords(semanageRecords): - port = semanage_ibendport_get_port(ibendport) - (k, ibdev_name, port) = self.__genkey(str(port), ibdev_name) - if rc < 0: -- raise ValueError(_("Could not create a key for %s/%d") % (ibdevname, port)) -+ raise ValueError(_("Could not create a key for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port)) - - rc = semanage_ibendport_del_local(self.sh, k) - if rc < 0: -- raise ValueError(_("Could not delete the ibendport %s/%d") % (ibdev_name, port)) -+ raise ValueError(_("Could not delete the ibendport {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port)) - semanage_ibendport_key_free(k) - - self.commit() -@@ -1754,19 +1754,19 @@ class ibendportRecords(semanageRecords): - (k, ibdev_name, port) = self.__genkey(ibendport, ibdev_name) - (rc, exists) = semanage_ibendport_exists(self.sh, k) - if rc < 0: -- raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport)) -+ raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport)) - if not exists: -- raise ValueError(_("ibendport %s/%s is not defined") % (ibdev_name, ibendport)) -+ raise ValueError(_("ibendport {ibdev_name}/{ibendport} is not defined").format(ibdev_name=ibdev_name, ibendport=ibendport)) - - (rc, exists) = semanage_ibendport_exists_local(self.sh, k) - if rc < 0: -- raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport)) -+ raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport)) - if not exists: -- raise ValueError(_("ibendport %s/%s is defined in policy, cannot be deleted") % (ibdev_name, ibendport)) -+ raise ValueError(_("ibendport {ibdev_name}/{ibendport} is defined in policy, cannot be deleted").format(ibdev_name=ibdev_name, ibendport=ibendport)) - - rc = semanage_ibendport_del_local(self.sh, k) - if rc < 0: -- raise ValueError(_("Could not delete ibendport %s/%s") % (ibdev_name, ibendport)) -+ raise ValueError(_("Could not delete ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport)) - - semanage_ibendport_key_free(k) - -@@ -2765,7 +2765,7 @@ class booleanRecords(semanageRecords): - try: - boolname, val = b.split("=") - except ValueError: -- raise ValueError(_("Bad format %s: Record %s" % (name, b))) -+ raise ValueError(_("Bad format {filename}: Record {record}").format(filename=name, record=b)) - self.__mod(boolname.strip(), val.strip()) - fd.close() - else: --- -2.41.0 - diff --git a/0016-python-Drop-hard-formating-from-localized-strings.patch b/0016-python-Drop-hard-formating-from-localized-strings.patch deleted file mode 100644 index 612a03b..0000000 --- a/0016-python-Drop-hard-formating-from-localized-strings.patch +++ /dev/null @@ -1,148 +0,0 @@ -From 9de7df951d5c54de2a58e728a2089a0837f0c72e Mon Sep 17 00:00:00 2001 -From: Petr Lautrbach -Date: Wed, 17 May 2023 12:18:54 +0200 -Subject: [PATCH] python: Drop hard formating from localized strings -Content-type: text/plain - -It confuses translators and new lines are dropped by parser module anyway. - -Signed-off-by: Petr Lautrbach ---- - python/audit2allow/audit2allow | 14 ++++++-- - python/semanage/semanage | 60 +++++++++++++--------------------- - 2 files changed, 34 insertions(+), 40 deletions(-) - -diff --git a/python/audit2allow/audit2allow b/python/audit2allow/audit2allow -index 5587a2dbb006..35b0b151ac86 100644 ---- a/python/audit2allow/audit2allow -+++ b/python/audit2allow/audit2allow -@@ -234,9 +234,17 @@ class AuditToPolicy: - print(e) - sys.exit(1) - -- sys.stdout.write(_("******************** IMPORTANT ***********************\n")) -- sys.stdout.write((_("To make this policy package active, execute:" + -- "\n\nsemodule -i %s\n\n") % packagename)) -+ sys.stdout.write( -+"""******************** {important} *********************** -+{text} -+ -+semodule -i {packagename} -+ -+""".format( -+ important=_("IMPORTANT"), -+ text=_("To make this policy package active, execute:"), -+ packagename=packagename -+)) - - def __output_audit2why(self): - import selinux -diff --git a/python/semanage/semanage b/python/semanage/semanage -index e0bd98a95c77..4fdb490f7df4 100644 ---- a/python/semanage/semanage -+++ b/python/semanage/semanage -@@ -238,30 +238,22 @@ def parser_add_level(parser, name): - - - def parser_add_range(parser, name): -- parser.add_argument('-r', '--range', default='', -- help=_(''' --MLS/MCS Security Range (MLS/MCS Systems only) --SELinux Range for SELinux login mapping --defaults to the SELinux user record range. --SELinux Range for SELinux user defaults to s0. --''')) -+ parser.add_argument('-r', '--range', default='', help=_( -+ "MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux login mapping defaults to the SELinux user record range. \ -+SELinux Range for SELinux user defaults to s0." -+ )) - - - def parser_add_proto(parser, name): -- parser.add_argument('-p', '--proto', help=_(''' -- Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol -- version for the specified node (ipv4|ipv6). --''')) -+ parser.add_argument('-p', '--proto', help=_( -+ "Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol version for the specified node (ipv4|ipv6)." -+ )) - - def parser_add_subnet_prefix(parser, name): -- parser.add_argument('-x', '--subnet_prefix', help=_(''' -- Subnet prefix for the specified infiniband ibpkey. --''')) -+ parser.add_argument('-x', '--subnet_prefix', help=_('Subnet prefix for the specified infiniband ibpkey.')) - - def parser_add_ibdev_name(parser, name): -- parser.add_argument('-z', '--ibdev_name', help=_(''' -- Name for the specified infiniband end port. --''')) -+ parser.add_argument('-z', '--ibdev_name', help=_("Name for the specified infiniband end port.")) - - def parser_add_modify(parser, name): - parser.add_argument('-m', '--modify', dest='action', action='store_const', const='modify', help=_("Modify a record of the %s object type") % name) -@@ -348,15 +340,6 @@ def handleFcontext(args): - - - def setupFcontextParser(subparsers): -- ftype_help = ''' --File Type. This is used with fcontext. Requires a file type --as shown in the mode field by ls, e.g. use d to match only --directories or f to match only regular files. The following --file type options can be passed: --f (regular file),d (directory),c (character device), --b (block device),s (socket),l (symbolic link),p (named pipe) --If you do not specify a file type, the file type will default to "all files". --''' - generate_usage = generate_custom_usage(usage_fcontext, usage_fcontext_dict) - fcontextParser = subparsers.add_parser('fcontext', usage=generate_usage, help=_("Manage file context mapping definitions")) - parser_add_locallist(fcontextParser, "fcontext") -@@ -372,11 +355,16 @@ If you do not specify a file type, the file type will default to "all files". - parser_add_extract(fcontext_action, "fcontext") - parser_add_deleteall(fcontext_action, "fcontext") - -- fcontextParser.add_argument('-e', '--equal', help=_('''Substitute target path with sourcepath when generating default -- label. This is used with fcontext. Requires source and target -- path arguments. The context labeling for the target subtree is -- made equivalent to that defined for the source.''')) -- fcontextParser.add_argument('-f', '--ftype', default="", choices=["a", "f", "d", "c", "b", "s", "l", "p"], help=_(ftype_help)) -+ fcontextParser.add_argument('-e', '--equal', help=_( -+ 'Substitute target path with sourcepath when generating default label. This is used with fcontext. Requires source and target \ -+path arguments. The context labeling for the target subtree is made equivalent to that defined for the source.' -+ )) -+ fcontextParser.add_argument('-f', '--ftype', default="", choices=["a", "f", "d", "c", "b", "s", "l", "p"], help=_( -+ 'File Type. This is used with fcontext. Requires a file type as shown in the mode field by ls, e.g. use d to match only \ -+directories or f to match only regular files. The following file type options can be passed: f (regular file), d (directory), \ -+c (character device), b (block device), s (socket), l (symbolic link), p (named pipe). \ -+If you do not specify a file type, the file type will default to "all files".' -+ )) - parser_add_seuser(fcontextParser, "fcontext") - parser_add_type(fcontextParser, "fcontext") - parser_add_range(fcontextParser, "fcontext") -@@ -426,9 +414,7 @@ def setupUserParser(subparsers): - parser_add_range(userParser, "user") - userParser.add_argument('-R', '--roles', default=[], - action=CheckRole, -- help=_(''' --SELinux Roles. You must enclose multiple roles within quotes, separate by spaces. Or specify -R multiple times. --''')) -+ help=_("SELinux Roles. You must enclose multiple roles within quotes, separate by spaces. Or specify -R multiple times.")) - userParser.add_argument('-P', '--prefix', default="user", help=argparse.SUPPRESS) - userParser.add_argument('selinux_name', nargs='?', default=None, help=_('selinux_name')) - userParser.set_defaults(func=handleUser) -@@ -901,9 +887,9 @@ def setupImportParser(subparsers): - def createCommandParser(): - commandParser = seParser(prog='semanage', - formatter_class=argparse.ArgumentDefaultsHelpFormatter, -- description='''semanage is used to configure certain elements -- of SELinux policy with-out requiring modification -- to or recompilation from policy source.''') -+ description=_( -+ "semanage is used to configure certain elements of SELinux policy with-out requiring modification or recompilation from policy source." -+ )) - - #To add a new subcommand define the parser for it in a function above and call it here. - subparsers = commandParser.add_subparsers(dest='subcommand') --- -2.41.0 - diff --git a/0017-semanage-Drop-unnecessary-import-from-seobject.patch b/0017-semanage-Drop-unnecessary-import-from-seobject.patch deleted file mode 100644 index 03fb543..0000000 --- a/0017-semanage-Drop-unnecessary-import-from-seobject.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 74b849c9405f1b751e696c7fb2e419fcbd491fab Mon Sep 17 00:00:00 2001 -From: Petr Lautrbach -Date: Wed, 17 May 2023 13:09:58 +0200 -Subject: [PATCH] semanage: Drop unnecessary import from seobject -Content-type: text/plain - -sepolgen.module is not used for permissive domains - -Signed-off-by: Petr Lautrbach ---- - python/semanage/seobject.py | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/python/semanage/seobject.py b/python/semanage/seobject.py -index 2b1eb44ce8a3..361205d11c10 100644 ---- a/python/semanage/seobject.py -+++ b/python/semanage/seobject.py -@@ -504,11 +504,6 @@ class permissiveRecords(semanageRecords): - print(t) - - def add(self, type): -- try: -- import sepolgen.module as module -- except ImportError: -- raise ValueError(_("The sepolgen python module is required to setup permissive domains.\nIn some distributions it is included in the policycoreutils-devel package.\n# yum install policycoreutils-devel\nOr similar for your distro.")) -- - name = "permissive_%s" % type - modtxt = "(typepermissive %s)" % type - --- -2.41.0 - diff --git a/0018-python-update-python.pot.patch b/0018-python-update-python.pot.patch deleted file mode 100644 index e928a89..0000000 --- a/0018-python-update-python.pot.patch +++ /dev/null @@ -1,2009 +0,0 @@ -From 7f00d6b53f73ee501fa4c6e48f85e641841efcc1 Mon Sep 17 00:00:00 2001 -From: Petr Lautrbach -Date: Wed, 17 May 2023 13:52:22 +0200 -Subject: [PATCH] python: update python.pot -Content-type: text/plain - -Signed-off-by: Petr Lautrbach ---- - python/po/python.pot | 963 ++++++++++++++++++++++--------------------- - 1 file changed, 487 insertions(+), 476 deletions(-) - -diff --git a/python/po/python.pot b/python/po/python.pot -index 16d04eb0f18e..435a1b764e34 100644 ---- a/python/po/python.pot -+++ b/python/po/python.pot -@@ -8,7 +8,7 @@ msgid "" - msgstr "" - "Project-Id-Version: PACKAGE VERSION\n" - "Report-Msgid-Bugs-To: \n" --"POT-Creation-Date: 2023-01-18 11:57+0100\n" -+"POT-Creation-Date: 2023-06-12 18:13+0200\n" - "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" - "Last-Translator: FULL NAME \n" - "Language-Team: LANGUAGE \n" -@@ -17,17 +17,12 @@ msgstr "" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" - --#: ../audit2allow/audit2allow:239 --msgid "******************** IMPORTANT ***********************\n" -+#: ../audit2allow/audit2allow:244 -+msgid "IMPORTANT" - msgstr "" - --#: ../audit2allow/audit2allow:240 --#, python-format --msgid "" --"To make this policy package active, execute:\n" --"\n" --"semodule -i %s\n" --"\n" -+#: ../audit2allow/audit2allow:245 -+msgid "To make this policy package active, execute:" - msgstr "" - - #: ../chcat/chcat:111 ../chcat/chcat:191 -@@ -40,13 +35,13 @@ msgid "Can not modify sensitivity levels using '+' on %s" - msgstr "" - - #: ../chcat/chcat:128 --#, python-format --msgid "%s is already in %s" -+#, python-brace-format -+msgid "{target} is already in {category}" - msgstr "" - - #: ../chcat/chcat:210 ../chcat/chcat:220 --#, python-format --msgid "%s is not in %s" -+#, python-brace-format -+msgid "{target} is not in {category}" - msgstr "" - - #: ../chcat/chcat:291 ../chcat/chcat:296 -@@ -152,218 +147,222 @@ msgstr "" - - #: ../semanage/semanage:242 - msgid "" --"\n" --"MLS/MCS Security Range (MLS/MCS Systems only)\n" --"SELinux Range for SELinux login mapping\n" --"defaults to the SELinux user record range.\n" --"SELinux Range for SELinux user defaults to s0.\n" -+"MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux " -+"login mapping defaults to the SELinux user record range. SELinux Range for " -+"SELinux user defaults to s0." - msgstr "" - --#: ../semanage/semanage:251 -+#: ../semanage/semanage:249 - msgid "" --"\n" --" Protocol for the specified port (tcp|udp|dccp|sctp) or internet " --"protocol\n" --" version for the specified node (ipv4|ipv6).\n" -+"Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol " -+"version for the specified node (ipv4|ipv6)." - msgstr "" - --#: ../semanage/semanage:257 --msgid "" --"\n" --" Subnet prefix for the specified infiniband ibpkey.\n" -+#: ../semanage/semanage:253 -+msgid "Subnet prefix for the specified infiniband ibpkey." - msgstr "" - --#: ../semanage/semanage:262 --msgid "" --"\n" --" Name for the specified infiniband end port.\n" -+#: ../semanage/semanage:256 -+msgid "Name for the specified infiniband end port." - msgstr "" - --#: ../semanage/semanage:267 -+#: ../semanage/semanage:259 - #, python-format - msgid "Modify a record of the %s object type" - msgstr "" - --#: ../semanage/semanage:271 -+#: ../semanage/semanage:263 - #, python-format - msgid "List records of the %s object type" - msgstr "" - --#: ../semanage/semanage:275 -+#: ../semanage/semanage:267 - #, python-format - msgid "Delete a record of the %s object type" - msgstr "" - --#: ../semanage/semanage:279 -+#: ../semanage/semanage:271 - msgid "Extract customizable commands, for use within a transaction" - msgstr "" - --#: ../semanage/semanage:283 -+#: ../semanage/semanage:275 - #, python-format - msgid "Remove all %s objects local customizations" - msgstr "" - --#: ../semanage/semanage:287 -+#: ../semanage/semanage:279 - msgid "SELinux user name" - msgstr "" - --#: ../semanage/semanage:292 -+#: ../semanage/semanage:284 - msgid "Manage login mappings between linux users and SELinux confined users" - msgstr "" - --#: ../semanage/semanage:309 -+#: ../semanage/semanage:301 - #, python-format - msgid "login_name | %%groupname" - msgstr "" - --#: ../semanage/semanage:361 -+#: ../semanage/semanage:344 - msgid "Manage file context mapping definitions" - msgstr "" - --#: ../semanage/semanage:375 -+#: ../semanage/semanage:359 -+msgid "" -+"Substitute target path with sourcepath when generating default label. This " -+"is used with fcontext. Requires source and target path arguments. The " -+"context labeling for the target subtree is made equivalent to that defined " -+"for the source." -+msgstr "" -+ -+#: ../semanage/semanage:363 - msgid "" --"Substitute target path with sourcepath when generating default\n" --" label. " --"This is used with fcontext. Requires source and target\n" --" path " --"arguments. The context labeling for the target subtree is\n" --" made " --"equivalent to that defined for the source." -+"File Type. This is used with fcontext. Requires a file type as shown in the " -+"mode field by ls, e.g. use d to match only directories or f to match only " -+"regular files. The following file type options can be passed: f (regular " -+"file), d (directory), c (character device), b (block device), s (socket), l " -+"(symbolic link), p (named pipe). If you do not specify a file type, the file " -+"type will default to \"all files\"." - msgstr "" - --#: ../semanage/semanage:383 -+#: ../semanage/semanage:371 - msgid "" - "Path to be labeled (may be in the form of a Perl compatible regular " - "expression)" - msgstr "" - --#: ../semanage/semanage:411 -+#: ../semanage/semanage:399 - msgid "Manage SELinux confined users (Roles and levels for an SELinux user)" - msgstr "" - --#: ../semanage/semanage:429 -+#: ../semanage/semanage:417 - msgid "" --"\n" --"SELinux Roles. You must enclose multiple roles within quotes, separate by " --"spaces. Or specify -R multiple times.\n" -+"SELinux Roles. You must enclose multiple roles within quotes, separate by " -+"spaces. Or specify -R multiple times." - msgstr "" - --#: ../semanage/semanage:433 -+#: ../semanage/semanage:419 - msgid "selinux_name" - msgstr "" - --#: ../semanage/semanage:461 -+#: ../semanage/semanage:447 - msgid "Manage network port type definitions" - msgstr "" - --#: ../semanage/semanage:477 -+#: ../semanage/semanage:463 - msgid "port | port_range" - msgstr "" - --#: ../semanage/semanage:506 -+#: ../semanage/semanage:492 - msgid "Manage infiniband ibpkey type definitions" - msgstr "" - --#: ../semanage/semanage:522 -+#: ../semanage/semanage:508 - msgid "pkey | pkey_range" - msgstr "" - --#: ../semanage/semanage:549 -+#: ../semanage/semanage:535 - msgid "Manage infiniband end port type definitions" - msgstr "" - --#: ../semanage/semanage:565 -+#: ../semanage/semanage:551 - msgid "ibendport" - msgstr "" - --#: ../semanage/semanage:592 -+#: ../semanage/semanage:578 - msgid "Manage network interface type definitions" - msgstr "" - --#: ../semanage/semanage:607 -+#: ../semanage/semanage:593 - msgid "interface_spec" - msgstr "" - --#: ../semanage/semanage:631 -+#: ../semanage/semanage:617 - msgid "Manage SELinux policy modules" - msgstr "" - --#: ../semanage/semanage:642 -+#: ../semanage/semanage:628 - msgid "Add a module" - msgstr "" - --#: ../semanage/semanage:643 -+#: ../semanage/semanage:629 - msgid "Remove a module" - msgstr "" - --#: ../semanage/semanage:644 -+#: ../semanage/semanage:630 - msgid "Disable a module" - msgstr "" - --#: ../semanage/semanage:645 -+#: ../semanage/semanage:631 - msgid "Enable a module" - msgstr "" - --#: ../semanage/semanage:672 -+#: ../semanage/semanage:658 - msgid "Manage network node type definitions" - msgstr "" - --#: ../semanage/semanage:686 -+#: ../semanage/semanage:672 - msgid "Network Mask" - msgstr "" - --#: ../semanage/semanage:690 -+#: ../semanage/semanage:676 - msgid "node" - msgstr "" - --#: ../semanage/semanage:715 -+#: ../semanage/semanage:701 - msgid "Manage booleans to selectively enable functionality" - msgstr "" - --#: ../semanage/semanage:720 -+#: ../semanage/semanage:706 - msgid "boolean" - msgstr "" - --#: ../semanage/semanage:730 -+#: ../semanage/semanage:716 - msgid "Enable the boolean" - msgstr "" - --#: ../semanage/semanage:731 -+#: ../semanage/semanage:717 - msgid "Disable the boolean" - msgstr "" - --#: ../semanage/semanage:752 -+#: ../semanage/semanage:738 - msgid "semanage permissive: error: the following argument is required: type\n" - msgstr "" - --#: ../semanage/semanage:756 -+#: ../semanage/semanage:742 - msgid "Manage process type enforcement mode" - msgstr "" - --#: ../semanage/semanage:768 ../semanage/seobject.py:2677 -+#: ../semanage/semanage:754 ../semanage/seobject.py:2672 - msgid "type" - msgstr "" - --#: ../semanage/semanage:779 -+#: ../semanage/semanage:765 - msgid "Disable/Enable dontaudit rules in policy" - msgstr "" - --#: ../semanage/semanage:799 -+#: ../semanage/semanage:785 - msgid "Output local customizations" - msgstr "" - --#: ../semanage/semanage:801 -+#: ../semanage/semanage:787 - msgid "Output file" - msgstr "" - --#: ../semanage/semanage:894 -+#: ../semanage/semanage:880 - msgid "Import local customizations" - msgstr "" - --#: ../semanage/semanage:897 -+#: ../semanage/semanage:883 - msgid "Input file" - msgstr "" - -+#: ../semanage/semanage:891 -+msgid "" -+"semanage is used to configure certain elements of SELinux policy with-out " -+"requiring modification or recompilation from policy source." -+msgstr "" -+ - #: ../semanage/seobject.py:279 - msgid "Could not create semanage handle" - msgstr "" -@@ -485,123 +484,115 @@ msgstr "" - msgid "Customized Permissive Types" - msgstr "" - --#: ../semanage/seobject.py:510 --msgid "" --"The sepolgen python module is required to setup permissive domains.\n" --"In some distributions it is included in the policycoreutils-devel package.\n" --"# yum install policycoreutils-devel\n" --"Or similar for your distro." --msgstr "" -- --#: ../semanage/seobject.py:520 -+#: ../semanage/seobject.py:515 - #, python-format - msgid "Could not set permissive domain %s (module installation failed)" - msgstr "" - --#: ../semanage/seobject.py:526 -+#: ../semanage/seobject.py:521 - #, python-format - msgid "Could not remove permissive domain %s (remove failed)" - msgstr "" - --#: ../semanage/seobject.py:563 ../semanage/seobject.py:633 --#: ../semanage/seobject.py:678 ../semanage/seobject.py:797 --#: ../semanage/seobject.py:827 ../semanage/seobject.py:892 --#: ../semanage/seobject.py:948 ../semanage/seobject.py:1226 --#: ../semanage/seobject.py:1492 ../semanage/seobject.py:2502 --#: ../semanage/seobject.py:2575 ../semanage/seobject.py:2599 --#: ../semanage/seobject.py:2730 ../semanage/seobject.py:2781 -+#: ../semanage/seobject.py:558 ../semanage/seobject.py:628 -+#: ../semanage/seobject.py:673 ../semanage/seobject.py:792 -+#: ../semanage/seobject.py:822 ../semanage/seobject.py:887 -+#: ../semanage/seobject.py:943 ../semanage/seobject.py:1221 -+#: ../semanage/seobject.py:1487 ../semanage/seobject.py:2497 -+#: ../semanage/seobject.py:2570 ../semanage/seobject.py:2594 -+#: ../semanage/seobject.py:2725 ../semanage/seobject.py:2776 - #, python-format - msgid "Could not create a key for %s" - msgstr "" - --#: ../semanage/seobject.py:567 ../semanage/seobject.py:637 --#: ../semanage/seobject.py:682 ../semanage/seobject.py:688 -+#: ../semanage/seobject.py:562 ../semanage/seobject.py:632 -+#: ../semanage/seobject.py:677 ../semanage/seobject.py:683 - #, python-format - msgid "Could not check if login mapping for %s is defined" - msgstr "" - --#: ../semanage/seobject.py:569 -+#: ../semanage/seobject.py:564 - #, python-format - msgid "Login mapping for %s is already defined" - msgstr "" - --#: ../semanage/seobject.py:574 -+#: ../semanage/seobject.py:569 - #, python-format - msgid "Linux Group %s does not exist" - msgstr "" - --#: ../semanage/seobject.py:579 -+#: ../semanage/seobject.py:574 - #, python-format - msgid "Linux User %s does not exist" - msgstr "" - --#: ../semanage/seobject.py:583 -+#: ../semanage/seobject.py:578 - #, python-format - msgid "Could not create login mapping for %s" - msgstr "" - --#: ../semanage/seobject.py:587 ../semanage/seobject.py:841 -+#: ../semanage/seobject.py:582 ../semanage/seobject.py:836 - #, python-format - msgid "Could not set name for %s" - msgstr "" - --#: ../semanage/seobject.py:592 ../semanage/seobject.py:851 -+#: ../semanage/seobject.py:587 ../semanage/seobject.py:846 - #, python-format - msgid "Could not set MLS range for %s" - msgstr "" - --#: ../semanage/seobject.py:596 -+#: ../semanage/seobject.py:591 - #, python-format - msgid "Could not set SELinux user for %s" - msgstr "" - --#: ../semanage/seobject.py:600 -+#: ../semanage/seobject.py:595 - #, python-format - msgid "Could not add login mapping for %s" - msgstr "" - --#: ../semanage/seobject.py:616 -+#: ../semanage/seobject.py:611 - msgid "Requires seuser or serange" - msgstr "" - --#: ../semanage/seobject.py:639 ../semanage/seobject.py:684 -+#: ../semanage/seobject.py:634 ../semanage/seobject.py:679 - #, python-format - msgid "Login mapping for %s is not defined" - msgstr "" - --#: ../semanage/seobject.py:643 -+#: ../semanage/seobject.py:638 - #, python-format - msgid "Could not query seuser for %s" - msgstr "" - --#: ../semanage/seobject.py:658 -+#: ../semanage/seobject.py:653 - #, python-format - msgid "Could not modify login mapping for %s" - msgstr "" - --#: ../semanage/seobject.py:690 -+#: ../semanage/seobject.py:685 - #, python-format - msgid "Login mapping for %s is defined in policy, cannot be deleted" - msgstr "" - --#: ../semanage/seobject.py:694 -+#: ../semanage/seobject.py:689 - #, python-format - msgid "Could not delete login mapping for %s" - msgstr "" - --#: ../semanage/seobject.py:713 ../semanage/seobject.py:745 --#: ../semanage/seobject.py:991 -+#: ../semanage/seobject.py:708 ../semanage/seobject.py:740 -+#: ../semanage/seobject.py:986 - msgid "Could not list login mappings" - msgstr "" - --#: ../semanage/seobject.py:772 ../semanage/seobject.py:784 -+#: ../semanage/seobject.py:767 ../semanage/seobject.py:779 - #: ../sepolicy/sepolicy/sepolicy.glade:1156 - #: ../sepolicy/sepolicy/sepolicy.glade:3138 - msgid "Login Name" - msgstr "" - --#: ../semanage/seobject.py:772 ../semanage/seobject.py:784 --#: ../semanage/seobject.py:1041 ../semanage/seobject.py:1046 -+#: ../semanage/seobject.py:767 ../semanage/seobject.py:779 -+#: ../semanage/seobject.py:1036 ../semanage/seobject.py:1041 - #: ../sepolicy/sepolicy/sepolicy.glade:1182 - #: ../sepolicy/sepolicy/sepolicy.glade:3156 - #: ../sepolicy/sepolicy/sepolicy.glade:3242 -@@ -609,938 +600,958 @@ msgstr "" - msgid "SELinux User" - msgstr "" - --#: ../semanage/seobject.py:772 -+#: ../semanage/seobject.py:767 - msgid "MLS/MCS Range" - msgstr "" - --#: ../semanage/seobject.py:772 -+#: ../semanage/seobject.py:767 - msgid "Service" - msgstr "" - --#: ../semanage/seobject.py:800 ../semanage/seobject.py:831 --#: ../semanage/seobject.py:896 ../semanage/seobject.py:952 --#: ../semanage/seobject.py:958 -+#: ../semanage/seobject.py:795 ../semanage/seobject.py:826 -+#: ../semanage/seobject.py:891 ../semanage/seobject.py:947 -+#: ../semanage/seobject.py:953 - #, python-format - msgid "Could not check if SELinux user %s is defined" - msgstr "" - --#: ../semanage/seobject.py:803 ../semanage/seobject.py:902 --#: ../semanage/seobject.py:964 -+#: ../semanage/seobject.py:798 ../semanage/seobject.py:897 -+#: ../semanage/seobject.py:959 - #, python-format - msgid "Could not query user for %s" - msgstr "" - --#: ../semanage/seobject.py:823 -+#: ../semanage/seobject.py:818 - #, python-format - msgid "You must add at least one role for %s" - msgstr "" - --#: ../semanage/seobject.py:833 -+#: ../semanage/seobject.py:828 - #, python-format - msgid "SELinux user %s is already defined" - msgstr "" - --#: ../semanage/seobject.py:837 -+#: ../semanage/seobject.py:832 - #, python-format - msgid "Could not create SELinux user for %s" - msgstr "" - --#: ../semanage/seobject.py:846 --#, python-format --msgid "Could not add role %s for %s" -+#: ../semanage/seobject.py:841 -+#, python-brace-format -+msgid "Could not add role {role} for {name}" - msgstr "" - --#: ../semanage/seobject.py:855 -+#: ../semanage/seobject.py:850 - #, python-format - msgid "Could not set MLS level for %s" - msgstr "" - --#: ../semanage/seobject.py:858 --#, python-format --msgid "Could not add prefix %s for %s" -+#: ../semanage/seobject.py:853 -+#, python-brace-format -+msgid "Could not add prefix {prefix} for {role}" - msgstr "" - --#: ../semanage/seobject.py:861 -+#: ../semanage/seobject.py:856 - #, python-format - msgid "Could not extract key for %s" - msgstr "" - --#: ../semanage/seobject.py:865 -+#: ../semanage/seobject.py:860 - #, python-format - msgid "Could not add SELinux user %s" - msgstr "" - --#: ../semanage/seobject.py:886 -+#: ../semanage/seobject.py:881 - msgid "Requires prefix, roles, level or range" - msgstr "" - --#: ../semanage/seobject.py:888 -+#: ../semanage/seobject.py:883 - msgid "Requires prefix or roles" - msgstr "" - --#: ../semanage/seobject.py:898 ../semanage/seobject.py:954 -+#: ../semanage/seobject.py:893 ../semanage/seobject.py:949 - #, python-format - msgid "SELinux user %s is not defined" - msgstr "" - --#: ../semanage/seobject.py:927 -+#: ../semanage/seobject.py:922 - #, python-format - msgid "Could not modify SELinux user %s" - msgstr "" - --#: ../semanage/seobject.py:960 -+#: ../semanage/seobject.py:955 - #, python-format - msgid "SELinux user %s is defined in policy, cannot be deleted" - msgstr "" - --#: ../semanage/seobject.py:971 -+#: ../semanage/seobject.py:966 - #, python-format - msgid "Could not delete SELinux user %s" - msgstr "" - --#: ../semanage/seobject.py:1009 -+#: ../semanage/seobject.py:1004 - msgid "Could not list SELinux users" - msgstr "" - --#: ../semanage/seobject.py:1015 -+#: ../semanage/seobject.py:1010 - #, python-format - msgid "Could not list roles for user %s" - msgstr "" - --#: ../semanage/seobject.py:1040 -+#: ../semanage/seobject.py:1035 - msgid "Labeling" - msgstr "" - --#: ../semanage/seobject.py:1040 -+#: ../semanage/seobject.py:1035 - msgid "MLS/" - msgstr "" - --#: ../semanage/seobject.py:1041 -+#: ../semanage/seobject.py:1036 - msgid "Prefix" - msgstr "" - --#: ../semanage/seobject.py:1041 -+#: ../semanage/seobject.py:1036 - msgid "MCS Level" - msgstr "" - --#: ../semanage/seobject.py:1041 -+#: ../semanage/seobject.py:1036 - msgid "MCS Range" - msgstr "" - --#: ../semanage/seobject.py:1041 ../semanage/seobject.py:1046 -+#: ../semanage/seobject.py:1036 ../semanage/seobject.py:1041 - #: ../sepolicy/sepolicy/sepolicy.glade:3262 - #: ../sepolicy/sepolicy/sepolicy.glade:5233 - #: ../sepolicy/sepolicy/sepolicy.glade:5382 - msgid "SELinux Roles" - msgstr "" - --#: ../semanage/seobject.py:1071 -+#: ../semanage/seobject.py:1066 - msgid "Protocol has to be one of udp, tcp, dccp or sctp" - msgstr "" - --#: ../semanage/seobject.py:1073 -+#: ../semanage/seobject.py:1068 - msgid "Port is required" - msgstr "" - --#: ../semanage/seobject.py:1087 -+#: ../semanage/seobject.py:1082 - msgid "Invalid Port" - msgstr "" - --#: ../semanage/seobject.py:1091 ../semanage/seobject.py:1365 --#, python-format --msgid "Could not create a key for %s/%s" -+#: ../semanage/seobject.py:1086 -+#, python-brace-format -+msgid "Could not create a key for {proto}/{port}" - msgstr "" - --#: ../semanage/seobject.py:1102 ../semanage/seobject.py:1376 --#: ../semanage/seobject.py:1631 -+#: ../semanage/seobject.py:1097 ../semanage/seobject.py:1371 -+#: ../semanage/seobject.py:1626 - msgid "Type is required" - msgstr "" - --#: ../semanage/seobject.py:1107 ../semanage/seobject.py:1172 -+#: ../semanage/seobject.py:1102 ../semanage/seobject.py:1167 - #, python-format - msgid "Type %s is invalid, must be a port type" - msgstr "" - --#: ../semanage/seobject.py:1113 ../semanage/seobject.py:1178 --#: ../semanage/seobject.py:1244 ../semanage/seobject.py:1250 --#, python-format --msgid "Could not check if port %s/%s is defined" -+#: ../semanage/seobject.py:1108 ../semanage/seobject.py:1173 -+#: ../semanage/seobject.py:1239 ../semanage/seobject.py:1245 -+#, python-brace-format -+msgid "Could not check if port {proto}/{port} is defined" - msgstr "" - --#: ../semanage/seobject.py:1115 --#, python-format --msgid "Port %s/%s already defined" -+#: ../semanage/seobject.py:1110 -+#, python-brace-format -+msgid "Port {proto}/{port} already defined" - msgstr "" - --#: ../semanage/seobject.py:1119 --#, python-format --msgid "Could not create port for %s/%s" -+#: ../semanage/seobject.py:1114 -+#, python-brace-format -+msgid "Could not create port for {proto}/{port}" - msgstr "" - --#: ../semanage/seobject.py:1125 ../semanage/seobject.py:1399 --#: ../semanage/seobject.py:1653 --#, python-format --msgid "Could not create context for %s/%s" -+#: ../semanage/seobject.py:1120 -+#, python-brace-format -+msgid "Could not create context for {proto}/{port}" - msgstr "" - --#: ../semanage/seobject.py:1129 --#, python-format --msgid "Could not set user in port context for %s/%s" -+#: ../semanage/seobject.py:1124 -+#, python-brace-format -+msgid "Could not set user in port context for {proto}/{port}" - msgstr "" - --#: ../semanage/seobject.py:1133 --#, python-format --msgid "Could not set role in port context for %s/%s" -+#: ../semanage/seobject.py:1128 -+#, python-brace-format -+msgid "Could not set role in port context for {proto}/{port}" - msgstr "" - --#: ../semanage/seobject.py:1137 --#, python-format --msgid "Could not set type in port context for %s/%s" -+#: ../semanage/seobject.py:1132 -+#, python-brace-format -+msgid "Could not set type in port context for {proto}/{port}" - msgstr "" - --#: ../semanage/seobject.py:1142 --#, python-format --msgid "Could not set mls fields in port context for %s/%s" -+#: ../semanage/seobject.py:1137 -+#, python-brace-format -+msgid "Could not set mls fields in port context for {proto}/{port}" - msgstr "" - --#: ../semanage/seobject.py:1146 --#, python-format --msgid "Could not set port context for %s/%s" -+#: ../semanage/seobject.py:1141 -+#, python-brace-format -+msgid "Could not set port context for {proto}/{port}" - msgstr "" - --#: ../semanage/seobject.py:1150 --#, python-format --msgid "Could not add port %s/%s" -+#: ../semanage/seobject.py:1145 -+#, python-brace-format -+msgid "Could not add port {proto}/{port}" - msgstr "" - --#: ../semanage/seobject.py:1166 ../semanage/seobject.py:1438 --#: ../semanage/seobject.py:1692 ../semanage/seobject.py:1970 --#: ../semanage/seobject.py:2176 -+#: ../semanage/seobject.py:1161 ../semanage/seobject.py:1433 -+#: ../semanage/seobject.py:1687 ../semanage/seobject.py:1965 -+#: ../semanage/seobject.py:2171 - msgid "Requires setype or serange" - msgstr "" - --#: ../semanage/seobject.py:1168 ../semanage/seobject.py:1440 --#: ../semanage/seobject.py:1694 -+#: ../semanage/seobject.py:1163 ../semanage/seobject.py:1435 -+#: ../semanage/seobject.py:1689 - msgid "Requires setype" - msgstr "" - --#: ../semanage/seobject.py:1180 ../semanage/seobject.py:1246 --#, python-format --msgid "Port %s/%s is not defined" -+#: ../semanage/seobject.py:1175 ../semanage/seobject.py:1241 -+#, python-brace-format -+msgid "Port {proto}/{port} is not defined" - msgstr "" - --#: ../semanage/seobject.py:1184 --#, python-format --msgid "Could not query port %s/%s" -+#: ../semanage/seobject.py:1179 -+#, python-brace-format -+msgid "Could not query port {proto}/{port}" - msgstr "" - --#: ../semanage/seobject.py:1198 --#, python-format --msgid "Could not modify port %s/%s" -+#: ../semanage/seobject.py:1193 -+#, python-brace-format -+msgid "Could not modify port {proto}/{port}" - msgstr "" - --#: ../semanage/seobject.py:1213 -+#: ../semanage/seobject.py:1208 - msgid "Could not list the ports" - msgstr "" - --#: ../semanage/seobject.py:1230 -+#: ../semanage/seobject.py:1225 - #, python-format - msgid "Could not delete the port %s" - msgstr "" - --#: ../semanage/seobject.py:1252 --#, python-format --msgid "Port %s/%s is defined in policy, cannot be deleted" -+#: ../semanage/seobject.py:1247 -+#, python-brace-format -+msgid "Port {proto}/{port} is defined in policy, cannot be deleted" - msgstr "" - --#: ../semanage/seobject.py:1256 --#, python-format --msgid "Could not delete port %s/%s" -+#: ../semanage/seobject.py:1251 -+#, python-brace-format -+msgid "Could not delete port {proto}/{port}" - msgstr "" - --#: ../semanage/seobject.py:1274 ../semanage/seobject.py:1294 -+#: ../semanage/seobject.py:1269 ../semanage/seobject.py:1289 - msgid "Could not list ports" - msgstr "" - --#: ../semanage/seobject.py:1329 ../sepolicy/sepolicy/sepolicy.glade:2668 -+#: ../semanage/seobject.py:1324 ../sepolicy/sepolicy/sepolicy.glade:2668 - #: ../sepolicy/sepolicy/sepolicy.glade:2766 - #: ../sepolicy/sepolicy/sepolicy.glade:4630 - msgid "SELinux Port Type" - msgstr "" - --#: ../semanage/seobject.py:1329 -+#: ../semanage/seobject.py:1324 - msgid "Proto" - msgstr "" - --#: ../semanage/seobject.py:1329 ../semanage/seobject.py:1835 -+#: ../semanage/seobject.py:1324 ../semanage/seobject.py:1830 - #: ../sepolicy/sepolicy/sepolicy.glade:1407 - msgid "Port Number" - msgstr "" - --#: ../semanage/seobject.py:1351 -+#: ../semanage/seobject.py:1346 - msgid "Subnet Prefix is required" - msgstr "" - --#: ../semanage/seobject.py:1361 -+#: ../semanage/seobject.py:1356 - msgid "Invalid Pkey" - msgstr "" - --#: ../semanage/seobject.py:1381 ../semanage/seobject.py:1445 -+#: ../semanage/seobject.py:1360 -+#, python-brace-format -+msgid "Could not create a key for {subnet_prefix}/{pkey}" -+msgstr "" -+ -+#: ../semanage/seobject.py:1376 ../semanage/seobject.py:1440 - #, python-format - msgid "Type %s is invalid, must be a ibpkey type" - msgstr "" - --#: ../semanage/seobject.py:1387 ../semanage/seobject.py:1451 --#: ../semanage/seobject.py:1505 ../semanage/seobject.py:1511 --#, python-format --msgid "Could not check if ibpkey %s/%s is defined" -+#: ../semanage/seobject.py:1382 ../semanage/seobject.py:1446 -+#: ../semanage/seobject.py:1500 ../semanage/seobject.py:1506 -+#, python-brace-format -+msgid "Could not check if ibpkey {subnet_prefix}/{pkey} is defined" - msgstr "" - --#: ../semanage/seobject.py:1389 --#, python-format --msgid "ibpkey %s/%s already defined" -+#: ../semanage/seobject.py:1384 -+#, python-brace-format -+msgid "ibpkey {subnet_prefix}/{pkey} already defined" - msgstr "" - --#: ../semanage/seobject.py:1393 --#, python-format --msgid "Could not create ibpkey for %s/%s" -+#: ../semanage/seobject.py:1388 -+#, python-brace-format -+msgid "Could not create ibpkey for {subnet_prefix}/{pkey}" - msgstr "" - --#: ../semanage/seobject.py:1403 --#, python-format --msgid "Could not set user in ibpkey context for %s/%s" -+#: ../semanage/seobject.py:1394 -+#, python-brace-format -+msgid "Could not create context for {subnet_prefix}/{pkey}" - msgstr "" - --#: ../semanage/seobject.py:1407 --#, python-format --msgid "Could not set role in ibpkey context for %s/%s" -+#: ../semanage/seobject.py:1398 -+#, python-brace-format -+msgid "Could not set user in ibpkey context for {subnet_prefix}/{pkey}" - msgstr "" - --#: ../semanage/seobject.py:1411 --#, python-format --msgid "Could not set type in ibpkey context for %s/%s" -+#: ../semanage/seobject.py:1402 -+#, python-brace-format -+msgid "Could not set role in ibpkey context for {subnet_prefix}/{pkey}" - msgstr "" - --#: ../semanage/seobject.py:1416 --#, python-format --msgid "Could not set mls fields in ibpkey context for %s/%s" -+#: ../semanage/seobject.py:1406 -+#, python-brace-format -+msgid "Could not set type in ibpkey context for {subnet_prefix}/{pkey}" - msgstr "" - --#: ../semanage/seobject.py:1420 --#, python-format --msgid "Could not set ibpkey context for %s/%s" -+#: ../semanage/seobject.py:1411 -+#, python-brace-format -+msgid "Could not set mls fields in ibpkey context for {subnet_prefix}/{pkey}" - msgstr "" - --#: ../semanage/seobject.py:1424 --#, python-format --msgid "Could not add ibpkey %s/%s" -+#: ../semanage/seobject.py:1415 -+#, python-brace-format -+msgid "Could not set ibpkey context for {subnet_prefix}/{pkey}" - msgstr "" - --#: ../semanage/seobject.py:1453 ../semanage/seobject.py:1507 --#, python-format --msgid "ibpkey %s/%s is not defined" -+#: ../semanage/seobject.py:1419 -+#, python-brace-format -+msgid "Could not add ibpkey {subnet_prefix}/{pkey}" - msgstr "" - --#: ../semanage/seobject.py:1457 --#, python-format --msgid "Could not query ibpkey %s/%s" -+#: ../semanage/seobject.py:1448 ../semanage/seobject.py:1502 -+#, python-brace-format -+msgid "ibpkey {subnet_prefix}/{pkey} is not defined" - msgstr "" - --#: ../semanage/seobject.py:1468 --#, python-format --msgid "Could not modify ibpkey %s/%s" -+#: ../semanage/seobject.py:1452 -+#, python-brace-format -+msgid "Could not query ibpkey {subnet_prefix}/{pkey}" - msgstr "" - --#: ../semanage/seobject.py:1481 -+#: ../semanage/seobject.py:1463 -+#, python-brace-format -+msgid "Could not modify ibpkey {subnet_prefix}/{pkey}" -+msgstr "" -+ -+#: ../semanage/seobject.py:1476 - msgid "Could not list the ibpkeys" - msgstr "" - --#: ../semanage/seobject.py:1496 -+#: ../semanage/seobject.py:1491 - #, python-format - msgid "Could not delete the ibpkey %s" - msgstr "" - --#: ../semanage/seobject.py:1513 --#, python-format --msgid "ibpkey %s/%s is defined in policy, cannot be deleted" -+#: ../semanage/seobject.py:1508 -+#, python-brace-format -+msgid "ibpkey {subnet_prefix}/{pkey} is defined in policy, cannot be deleted" - msgstr "" - --#: ../semanage/seobject.py:1517 --#, python-format --msgid "Could not delete ibpkey %s/%s" -+#: ../semanage/seobject.py:1512 -+#, python-brace-format -+msgid "Could not delete ibpkey {subnet_prefix}/{pkey}" - msgstr "" - --#: ../semanage/seobject.py:1533 ../semanage/seobject.py:1554 -+#: ../semanage/seobject.py:1528 ../semanage/seobject.py:1549 - msgid "Could not list ibpkeys" - msgstr "" - --#: ../semanage/seobject.py:1589 -+#: ../semanage/seobject.py:1584 - msgid "SELinux IB Pkey Type" - msgstr "" - --#: ../semanage/seobject.py:1589 -+#: ../semanage/seobject.py:1584 - msgid "Subnet_Prefix" - msgstr "" - --#: ../semanage/seobject.py:1589 -+#: ../semanage/seobject.py:1584 - msgid "Pkey Number" - msgstr "" - --#: ../semanage/seobject.py:1611 -+#: ../semanage/seobject.py:1606 - msgid "IB device name is required" - msgstr "" - --#: ../semanage/seobject.py:1616 -+#: ../semanage/seobject.py:1611 - msgid "Invalid Port Number" - msgstr "" - --#: ../semanage/seobject.py:1620 --#, python-format --msgid "Could not create a key for ibendport %s/%s" -+#: ../semanage/seobject.py:1615 -+#, python-brace-format -+msgid "Could not create a key for ibendport {ibdev_name}/{ibendport}" - msgstr "" - --#: ../semanage/seobject.py:1636 ../semanage/seobject.py:1699 -+#: ../semanage/seobject.py:1631 ../semanage/seobject.py:1694 - #, python-format - msgid "Type %s is invalid, must be an ibendport type" - msgstr "" - --#: ../semanage/seobject.py:1641 ../semanage/seobject.py:1705 --#: ../semanage/seobject.py:1757 ../semanage/seobject.py:1763 --#, python-format --msgid "Could not check if ibendport %s/%s is defined" -+#: ../semanage/seobject.py:1636 -+#, python-brace-format -+msgid "Could not check if ibendport {ibdev_name}/{port} is defined" - msgstr "" - --#: ../semanage/seobject.py:1643 --#, python-format --msgid "ibendport %s/%s already defined" -+#: ../semanage/seobject.py:1638 -+#, python-brace-format -+msgid "ibendport {ibdev_name}/{port} already defined" - msgstr "" - --#: ../semanage/seobject.py:1647 --#, python-format --msgid "Could not create ibendport for %s/%s" -+#: ../semanage/seobject.py:1642 -+#, python-brace-format -+msgid "Could not create ibendport for {ibdev_name}/{port}" - msgstr "" - --#: ../semanage/seobject.py:1657 --#, python-format --msgid "Could not set user in ibendport context for %s/%s" -+#: ../semanage/seobject.py:1648 -+#, python-brace-format -+msgid "Could not create context for {ibendport}/{port}" - msgstr "" - --#: ../semanage/seobject.py:1661 --#, python-format --msgid "Could not set role in ibendport context for %s/%s" -+#: ../semanage/seobject.py:1652 -+#, python-brace-format -+msgid "Could not set user in ibendport context for {ibdev_name}/{port}" -+msgstr "" -+ -+#: ../semanage/seobject.py:1656 -+#, python-brace-format -+msgid "Could not set role in ibendport context for {ibdev_name}/{port}" -+msgstr "" -+ -+#: ../semanage/seobject.py:1660 -+#, python-brace-format -+msgid "Could not set type in ibendport context for {ibdev_name}/{port}" - msgstr "" - - #: ../semanage/seobject.py:1665 --#, python-format --msgid "Could not set type in ibendport context for %s/%s" -+#, python-brace-format -+msgid "Could not set mls fields in ibendport context for {ibdev_name}/{port}" - msgstr "" - --#: ../semanage/seobject.py:1670 --#, python-format --msgid "Could not set mls fields in ibendport context for %s/%s" -+#: ../semanage/seobject.py:1669 -+#, python-brace-format -+msgid "Could not set ibendport context for {ibdev_name}/{port}" - msgstr "" - --#: ../semanage/seobject.py:1674 --#, python-format --msgid "Could not set ibendport context for %s/%s" -+#: ../semanage/seobject.py:1673 -+#, python-brace-format -+msgid "Could not add ibendport {ibdev_name}/{port}" - msgstr "" - --#: ../semanage/seobject.py:1678 --#, python-format --msgid "Could not add ibendport %s/%s" -+#: ../semanage/seobject.py:1700 ../semanage/seobject.py:1752 -+#: ../semanage/seobject.py:1758 -+#, python-brace-format -+msgid "Could not check if ibendport {ibdev_name}/{ibendport} is defined" - msgstr "" - --#: ../semanage/seobject.py:1707 ../semanage/seobject.py:1759 --#, python-format --msgid "ibendport %s/%s is not defined" -+#: ../semanage/seobject.py:1702 ../semanage/seobject.py:1754 -+#, python-brace-format -+msgid "ibendport {ibdev_name}/{ibendport} is not defined" - msgstr "" - --#: ../semanage/seobject.py:1711 --#, python-format --msgid "Could not query ibendport %s/%s" -+#: ../semanage/seobject.py:1706 -+#, python-brace-format -+msgid "Could not query ibendport {ibdev_name}/{ibendport}" - msgstr "" - --#: ../semanage/seobject.py:1722 --#, python-format --msgid "Could not modify ibendport %s/%s" -+#: ../semanage/seobject.py:1717 -+#, python-brace-format -+msgid "Could not modify ibendport {ibdev_name}/{ibendport}" - msgstr "" - --#: ../semanage/seobject.py:1735 -+#: ../semanage/seobject.py:1730 - msgid "Could not list the ibendports" - msgstr "" - --#: ../semanage/seobject.py:1744 --#, python-format --msgid "Could not create a key for %s/%d" -+#: ../semanage/seobject.py:1739 -+#, python-brace-format -+msgid "Could not create a key for {ibdev_name}/{port}" - msgstr "" - --#: ../semanage/seobject.py:1748 --#, python-format --msgid "Could not delete the ibendport %s/%d" -+#: ../semanage/seobject.py:1743 -+#, python-brace-format -+msgid "Could not delete the ibendport {ibdev_name}/{port}" - msgstr "" - --#: ../semanage/seobject.py:1765 --#, python-format --msgid "ibendport %s/%s is defined in policy, cannot be deleted" -+#: ../semanage/seobject.py:1760 -+#, python-brace-format -+msgid "" -+"ibendport {ibdev_name}/{ibendport} is defined in policy, cannot be deleted" - msgstr "" - --#: ../semanage/seobject.py:1769 --#, python-format --msgid "Could not delete ibendport %s/%s" -+#: ../semanage/seobject.py:1764 -+#, python-brace-format -+msgid "Could not delete ibendport {ibdev_name}/{ibendport}" - msgstr "" - --#: ../semanage/seobject.py:1785 ../semanage/seobject.py:1805 -+#: ../semanage/seobject.py:1780 ../semanage/seobject.py:1800 - msgid "Could not list ibendports" - msgstr "" - --#: ../semanage/seobject.py:1835 -+#: ../semanage/seobject.py:1830 - msgid "SELinux IB End Port Type" - msgstr "" - --#: ../semanage/seobject.py:1835 -+#: ../semanage/seobject.py:1830 - msgid "IB Device Name" - msgstr "" - --#: ../semanage/seobject.py:1861 -+#: ../semanage/seobject.py:1856 - msgid "Node Address is required" - msgstr "" - --#: ../semanage/seobject.py:1873 ../semanage/seobject.py:1885 -+#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1880 - msgid "Unknown or missing protocol" - msgstr "" - --#: ../semanage/seobject.py:1899 -+#: ../semanage/seobject.py:1894 - msgid "SELinux node type is required" - msgstr "" - --#: ../semanage/seobject.py:1904 ../semanage/seobject.py:1975 -+#: ../semanage/seobject.py:1899 ../semanage/seobject.py:1970 - #, python-format - msgid "Type %s is invalid, must be a node type" - msgstr "" - --#: ../semanage/seobject.py:1908 ../semanage/seobject.py:1979 --#: ../semanage/seobject.py:2016 ../semanage/seobject.py:2117 --#: ../semanage/seobject.py:2180 ../semanage/seobject.py:2216 --#: ../semanage/seobject.py:2435 -+#: ../semanage/seobject.py:1903 ../semanage/seobject.py:1974 -+#: ../semanage/seobject.py:2011 ../semanage/seobject.py:2112 -+#: ../semanage/seobject.py:2175 ../semanage/seobject.py:2211 -+#: ../semanage/seobject.py:2430 - #, python-format - msgid "Could not create key for %s" - msgstr "" - --#: ../semanage/seobject.py:1912 ../semanage/seobject.py:1983 --#: ../semanage/seobject.py:2020 ../semanage/seobject.py:2026 -+#: ../semanage/seobject.py:1907 ../semanage/seobject.py:1978 -+#: ../semanage/seobject.py:2015 ../semanage/seobject.py:2021 - #, python-format - msgid "Could not check if addr %s is defined" - msgstr "" - --#: ../semanage/seobject.py:1914 -+#: ../semanage/seobject.py:1909 - #, python-format - msgid "Addr %s already defined" - msgstr "" - --#: ../semanage/seobject.py:1918 -+#: ../semanage/seobject.py:1913 - #, python-format - msgid "Could not create addr for %s" - msgstr "" - --#: ../semanage/seobject.py:1924 ../semanage/seobject.py:2132 --#: ../semanage/seobject.py:2389 -+#: ../semanage/seobject.py:1919 ../semanage/seobject.py:2127 -+#: ../semanage/seobject.py:2384 - #, python-format - msgid "Could not create context for %s" - msgstr "" - --#: ../semanage/seobject.py:1928 -+#: ../semanage/seobject.py:1923 - #, python-format - msgid "Could not set mask for %s" - msgstr "" - --#: ../semanage/seobject.py:1932 -+#: ../semanage/seobject.py:1927 - #, python-format - msgid "Could not set user in addr context for %s" - msgstr "" - --#: ../semanage/seobject.py:1936 -+#: ../semanage/seobject.py:1931 - #, python-format - msgid "Could not set role in addr context for %s" - msgstr "" - --#: ../semanage/seobject.py:1940 -+#: ../semanage/seobject.py:1935 - #, python-format - msgid "Could not set type in addr context for %s" - msgstr "" - --#: ../semanage/seobject.py:1945 -+#: ../semanage/seobject.py:1940 - #, python-format - msgid "Could not set mls fields in addr context for %s" - msgstr "" - --#: ../semanage/seobject.py:1949 -+#: ../semanage/seobject.py:1944 - #, python-format - msgid "Could not set addr context for %s" - msgstr "" - --#: ../semanage/seobject.py:1953 -+#: ../semanage/seobject.py:1948 - #, python-format - msgid "Could not add addr %s" - msgstr "" - --#: ../semanage/seobject.py:1985 ../semanage/seobject.py:2022 -+#: ../semanage/seobject.py:1980 ../semanage/seobject.py:2017 - #, python-format - msgid "Addr %s is not defined" - msgstr "" - --#: ../semanage/seobject.py:1989 -+#: ../semanage/seobject.py:1984 - #, python-format - msgid "Could not query addr %s" - msgstr "" - --#: ../semanage/seobject.py:1999 -+#: ../semanage/seobject.py:1994 - #, python-format - msgid "Could not modify addr %s" - msgstr "" - --#: ../semanage/seobject.py:2028 -+#: ../semanage/seobject.py:2023 - #, python-format - msgid "Addr %s is defined in policy, cannot be deleted" - msgstr "" - --#: ../semanage/seobject.py:2032 -+#: ../semanage/seobject.py:2027 - #, python-format - msgid "Could not delete addr %s" - msgstr "" - --#: ../semanage/seobject.py:2046 -+#: ../semanage/seobject.py:2041 - msgid "Could not deleteall node mappings" - msgstr "" - --#: ../semanage/seobject.py:2060 -+#: ../semanage/seobject.py:2055 - msgid "Could not list addrs" - msgstr "" - --#: ../semanage/seobject.py:2113 ../semanage/seobject.py:2426 -+#: ../semanage/seobject.py:2108 ../semanage/seobject.py:2421 - msgid "SELinux Type is required" - msgstr "" - --#: ../semanage/seobject.py:2121 ../semanage/seobject.py:2184 --#: ../semanage/seobject.py:2220 ../semanage/seobject.py:2226 -+#: ../semanage/seobject.py:2116 ../semanage/seobject.py:2179 -+#: ../semanage/seobject.py:2215 ../semanage/seobject.py:2221 - #, python-format - msgid "Could not check if interface %s is defined" - msgstr "" - --#: ../semanage/seobject.py:2123 -+#: ../semanage/seobject.py:2118 - #, python-format - msgid "Interface %s already defined" - msgstr "" - --#: ../semanage/seobject.py:2127 -+#: ../semanage/seobject.py:2122 - #, python-format - msgid "Could not create interface for %s" - msgstr "" - --#: ../semanage/seobject.py:2136 -+#: ../semanage/seobject.py:2131 - #, python-format - msgid "Could not set user in interface context for %s" - msgstr "" - --#: ../semanage/seobject.py:2140 -+#: ../semanage/seobject.py:2135 - #, python-format - msgid "Could not set role in interface context for %s" - msgstr "" - --#: ../semanage/seobject.py:2144 -+#: ../semanage/seobject.py:2139 - #, python-format - msgid "Could not set type in interface context for %s" - msgstr "" - --#: ../semanage/seobject.py:2149 -+#: ../semanage/seobject.py:2144 - #, python-format - msgid "Could not set mls fields in interface context for %s" - msgstr "" - --#: ../semanage/seobject.py:2153 -+#: ../semanage/seobject.py:2148 - #, python-format - msgid "Could not set interface context for %s" - msgstr "" - --#: ../semanage/seobject.py:2157 -+#: ../semanage/seobject.py:2152 - #, python-format - msgid "Could not set message context for %s" - msgstr "" - --#: ../semanage/seobject.py:2161 -+#: ../semanage/seobject.py:2156 - #, python-format - msgid "Could not add interface %s" - msgstr "" - --#: ../semanage/seobject.py:2186 ../semanage/seobject.py:2222 -+#: ../semanage/seobject.py:2181 ../semanage/seobject.py:2217 - #, python-format - msgid "Interface %s is not defined" - msgstr "" - --#: ../semanage/seobject.py:2190 -+#: ../semanage/seobject.py:2185 - #, python-format - msgid "Could not query interface %s" - msgstr "" - --#: ../semanage/seobject.py:2201 -+#: ../semanage/seobject.py:2196 - #, python-format - msgid "Could not modify interface %s" - msgstr "" - --#: ../semanage/seobject.py:2228 -+#: ../semanage/seobject.py:2223 - #, python-format - msgid "Interface %s is defined in policy, cannot be deleted" - msgstr "" - --#: ../semanage/seobject.py:2232 -+#: ../semanage/seobject.py:2227 - #, python-format - msgid "Could not delete interface %s" - msgstr "" - --#: ../semanage/seobject.py:2246 -+#: ../semanage/seobject.py:2241 - msgid "Could not delete all interface mappings" - msgstr "" - --#: ../semanage/seobject.py:2260 -+#: ../semanage/seobject.py:2255 - msgid "Could not list interfaces" - msgstr "" - --#: ../semanage/seobject.py:2285 -+#: ../semanage/seobject.py:2280 - msgid "SELinux Interface" - msgstr "" - --#: ../semanage/seobject.py:2285 ../semanage/seobject.py:2677 -+#: ../semanage/seobject.py:2280 ../semanage/seobject.py:2672 - msgid "Context" - msgstr "" - --#: ../semanage/seobject.py:2355 -+#: ../semanage/seobject.py:2350 - #, python-format - msgid "Target %s is not valid. Target is not allowed to end with '/'" - msgstr "" - --#: ../semanage/seobject.py:2358 -+#: ../semanage/seobject.py:2353 - #, python-format - msgid "Substitute %s is not valid. Substitute is not allowed to end with '/'" - msgstr "" - --#: ../semanage/seobject.py:2361 -+#: ../semanage/seobject.py:2356 - #, python-format - msgid "Equivalence class for %s already exists" - msgstr "" - --#: ../semanage/seobject.py:2367 -+#: ../semanage/seobject.py:2362 - #, python-format - msgid "File spec %s conflicts with equivalency rule '%s %s'" - msgstr "" - --#: ../semanage/seobject.py:2378 -+#: ../semanage/seobject.py:2373 - #, python-format - msgid "Equivalence class for %s does not exist" - msgstr "" - --#: ../semanage/seobject.py:2395 -+#: ../semanage/seobject.py:2390 - #, python-format - msgid "Could not set user in file context for %s" - msgstr "" - --#: ../semanage/seobject.py:2399 -+#: ../semanage/seobject.py:2394 - #, python-format - msgid "Could not set role in file context for %s" - msgstr "" - --#: ../semanage/seobject.py:2404 ../semanage/seobject.py:2464 -+#: ../semanage/seobject.py:2399 ../semanage/seobject.py:2459 - #, python-format - msgid "Could not set mls fields in file context for %s" - msgstr "" - --#: ../semanage/seobject.py:2410 -+#: ../semanage/seobject.py:2405 - msgid "Invalid file specification" - msgstr "" - --#: ../semanage/seobject.py:2412 -+#: ../semanage/seobject.py:2407 - msgid "File specification can not include spaces" - msgstr "" - --#: ../semanage/seobject.py:2417 -+#: ../semanage/seobject.py:2412 - #, python-format - msgid "" - "File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead" - msgstr "" - --#: ../semanage/seobject.py:2431 ../semanage/seobject.py:2496 -+#: ../semanage/seobject.py:2426 ../semanage/seobject.py:2491 - #, python-format - msgid "Type %s is invalid, must be a file or device type" - msgstr "" - --#: ../semanage/seobject.py:2439 ../semanage/seobject.py:2444 --#: ../semanage/seobject.py:2506 ../semanage/seobject.py:2515 --#: ../semanage/seobject.py:2603 ../semanage/seobject.py:2607 -+#: ../semanage/seobject.py:2434 ../semanage/seobject.py:2439 -+#: ../semanage/seobject.py:2501 ../semanage/seobject.py:2510 -+#: ../semanage/seobject.py:2598 ../semanage/seobject.py:2602 - #, python-format - msgid "Could not check if file context for %s is defined" - msgstr "" - --#: ../semanage/seobject.py:2447 -+#: ../semanage/seobject.py:2442 - #, python-format - msgid "File context for %s already defined" - msgstr "" - --#: ../semanage/seobject.py:2451 -+#: ../semanage/seobject.py:2446 - #, python-format - msgid "Could not create file context for %s" - msgstr "" - --#: ../semanage/seobject.py:2459 -+#: ../semanage/seobject.py:2454 - #, python-format - msgid "Could not set type in file context for %s" - msgstr "" - --#: ../semanage/seobject.py:2467 ../semanage/seobject.py:2539 --#: ../semanage/seobject.py:2543 -+#: ../semanage/seobject.py:2462 ../semanage/seobject.py:2534 -+#: ../semanage/seobject.py:2538 - #, python-format - msgid "Could not set file context for %s" - msgstr "" - --#: ../semanage/seobject.py:2473 -+#: ../semanage/seobject.py:2468 - #, python-format - msgid "Could not add file context for %s" - msgstr "" - --#: ../semanage/seobject.py:2492 -+#: ../semanage/seobject.py:2487 - msgid "Requires setype, serange or seuser" - msgstr "" - --#: ../semanage/seobject.py:2511 ../semanage/seobject.py:2521 -+#: ../semanage/seobject.py:2506 ../semanage/seobject.py:2516 - #, python-format - msgid "Could not query file context for %s" - msgstr "" - --#: ../semanage/seobject.py:2517 ../semanage/seobject.py:2611 -+#: ../semanage/seobject.py:2512 ../semanage/seobject.py:2606 - #, python-format - msgid "File context for %s is not defined" - msgstr "" - --#: ../semanage/seobject.py:2547 -+#: ../semanage/seobject.py:2542 - #, python-format - msgid "Could not modify file context for %s" - msgstr "" - --#: ../semanage/seobject.py:2565 -+#: ../semanage/seobject.py:2560 - msgid "Could not list the file contexts" - msgstr "" - --#: ../semanage/seobject.py:2579 -+#: ../semanage/seobject.py:2574 - #, python-format - msgid "Could not delete the file context %s" - msgstr "" - --#: ../semanage/seobject.py:2609 -+#: ../semanage/seobject.py:2604 - #, python-format - msgid "File context for %s is defined in policy, cannot be deleted" - msgstr "" - --#: ../semanage/seobject.py:2615 -+#: ../semanage/seobject.py:2610 - #, python-format - msgid "Could not delete file context for %s" - msgstr "" - --#: ../semanage/seobject.py:2632 -+#: ../semanage/seobject.py:2627 - msgid "Could not list file contexts" - msgstr "" - --#: ../semanage/seobject.py:2636 -+#: ../semanage/seobject.py:2631 - msgid "Could not list file contexts for home directories" - msgstr "" - --#: ../semanage/seobject.py:2640 -+#: ../semanage/seobject.py:2635 - msgid "Could not list local file contexts" - msgstr "" - --#: ../semanage/seobject.py:2677 -+#: ../semanage/seobject.py:2672 - msgid "SELinux fcontext" - msgstr "" - --#: ../semanage/seobject.py:2690 -+#: ../semanage/seobject.py:2685 - msgid "" - "\n" - "SELinux Distribution fcontext Equivalence \n" - msgstr "" - --#: ../semanage/seobject.py:2695 -+#: ../semanage/seobject.py:2690 - msgid "" - "\n" - "SELinux Local fcontext Equivalence \n" - msgstr "" - --#: ../semanage/seobject.py:2733 ../semanage/seobject.py:2784 --#: ../semanage/seobject.py:2790 -+#: ../semanage/seobject.py:2728 ../semanage/seobject.py:2779 -+#: ../semanage/seobject.py:2785 - #, python-format - msgid "Could not check if boolean %s is defined" - msgstr "" - --#: ../semanage/seobject.py:2735 ../semanage/seobject.py:2786 -+#: ../semanage/seobject.py:2730 ../semanage/seobject.py:2781 - #, python-format - msgid "Boolean %s is not defined" - msgstr "" - --#: ../semanage/seobject.py:2739 -+#: ../semanage/seobject.py:2734 - #, python-format - msgid "Could not query file context %s" - msgstr "" - --#: ../semanage/seobject.py:2744 -+#: ../semanage/seobject.py:2739 - #, python-format - msgid "You must specify one of the following values: %s" - msgstr "" - --#: ../semanage/seobject.py:2749 -+#: ../semanage/seobject.py:2744 - #, python-format - msgid "Could not set active value of boolean %s" - msgstr "" - --#: ../semanage/seobject.py:2752 -+#: ../semanage/seobject.py:2747 - #, python-format - msgid "Could not modify boolean %s" - msgstr "" - --#: ../semanage/seobject.py:2768 --#, python-format --msgid "Bad format %s: Record %s" -+#: ../semanage/seobject.py:2763 -+#, python-brace-format -+msgid "Bad format {filename}: Record {record}" - msgstr "" - --#: ../semanage/seobject.py:2792 -+#: ../semanage/seobject.py:2787 - #, python-format - msgid "Boolean %s is defined in policy, cannot be deleted" - msgstr "" - --#: ../semanage/seobject.py:2796 -+#: ../semanage/seobject.py:2791 - #, python-format - msgid "Could not delete boolean %s" - msgstr "" - --#: ../semanage/seobject.py:2808 ../semanage/seobject.py:2825 -+#: ../semanage/seobject.py:2803 ../semanage/seobject.py:2820 - msgid "Could not list booleans" - msgstr "" - --#: ../semanage/seobject.py:2858 -+#: ../semanage/seobject.py:2853 - msgid "off" - msgstr "" - --#: ../semanage/seobject.py:2858 -+#: ../semanage/seobject.py:2853 - msgid "on" - msgstr "" - --#: ../semanage/seobject.py:2870 -+#: ../semanage/seobject.py:2865 - msgid "SELinux boolean" - msgstr "" - --#: ../semanage/seobject.py:2870 -+#: ../semanage/seobject.py:2865 - msgid "State" - msgstr "" - --#: ../semanage/seobject.py:2870 -+#: ../semanage/seobject.py:2865 - msgid "Default" - msgstr "" - --#: ../semanage/seobject.py:2870 ../sepolicy/sepolicy/sepolicy.glade:2140 -+#: ../semanage/seobject.py:2865 ../sepolicy/sepolicy/sepolicy.glade:2140 - #: ../sepolicy/sepolicy/sepolicy.glade:2510 - #: ../sepolicy/sepolicy/sepolicy.glade:5099 - msgid "Description" -@@ -1555,151 +1566,151 @@ msgstr "" - msgid "Missing interface definition for %s" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:140 -+#: ../sepolicy/sepolicy/generate.py:138 - msgid "Standard Init Daemon" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:141 -+#: ../sepolicy/sepolicy/generate.py:139 - msgid "DBUS System Daemon" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:142 -+#: ../sepolicy/sepolicy/generate.py:140 - msgid "Internet Services Daemon" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:143 -+#: ../sepolicy/sepolicy/generate.py:141 - msgid "Web Application/Script (CGI)" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:144 -+#: ../sepolicy/sepolicy/generate.py:142 - msgid "Sandbox" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:145 -+#: ../sepolicy/sepolicy/generate.py:143 - msgid "User Application" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:146 -+#: ../sepolicy/sepolicy/generate.py:144 - msgid "Existing Domain Type" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:147 -+#: ../sepolicy/sepolicy/generate.py:145 - msgid "Minimal Terminal Login User Role" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:148 -+#: ../sepolicy/sepolicy/generate.py:146 - msgid "Minimal X Windows Login User Role" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:149 -+#: ../sepolicy/sepolicy/generate.py:147 - msgid "Desktop Login User Role" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:150 -+#: ../sepolicy/sepolicy/generate.py:148 - msgid "Administrator Login User Role" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:151 -+#: ../sepolicy/sepolicy/generate.py:149 - msgid "Confined Root Administrator Role" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:152 -+#: ../sepolicy/sepolicy/generate.py:150 - msgid "Module information for a new type" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:158 -+#: ../sepolicy/sepolicy/generate.py:156 - msgid "Valid Types:\n" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:193 -+#: ../sepolicy/sepolicy/generate.py:191 - #, python-format - msgid "Ports must be numbers or ranges of numbers from 1 to %d " - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:205 -+#: ../sepolicy/sepolicy/generate.py:203 - msgid "You must enter a valid policy type" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:208 -+#: ../sepolicy/sepolicy/generate.py:206 - #, python-format - msgid "You must enter a name for your policy module for your '%s'." - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:346 -+#: ../sepolicy/sepolicy/generate.py:344 - msgid "" - "Name must be alphanumeric with no spaces. Consider using option \"-n " - "MODULENAME\"" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:438 -+#: ../sepolicy/sepolicy/generate.py:436 - msgid "User Role types can not be assigned executables." - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:444 -+#: ../sepolicy/sepolicy/generate.py:442 - msgid "Only Daemon apps can use an init script." - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:462 -+#: ../sepolicy/sepolicy/generate.py:460 - msgid "use_resolve must be a boolean value " - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:468 -+#: ../sepolicy/sepolicy/generate.py:466 - msgid "use_syslog must be a boolean value " - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:474 -+#: ../sepolicy/sepolicy/generate.py:472 - msgid "use_kerberos must be a boolean value " - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:480 -+#: ../sepolicy/sepolicy/generate.py:478 - msgid "manage_krb5_rcache must be a boolean value " - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:510 -+#: ../sepolicy/sepolicy/generate.py:508 - msgid "USER Types automatically get a tmp type" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:847 -+#: ../sepolicy/sepolicy/generate.py:845 - #, python-format - msgid "'%s' policy modules require existing domains" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:872 -+#: ../sepolicy/sepolicy/generate.py:870 - msgid "Type field required" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:885 -+#: ../sepolicy/sepolicy/generate.py:883 - #, python-format - msgid "" - "You need to define a new type which ends with: \n" - " %s" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:1113 -+#: ../sepolicy/sepolicy/generate.py:1111 - msgid "You must enter the executable path for your confined process" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:1378 -+#: ../sepolicy/sepolicy/generate.py:1376 - msgid "Created the following files:\n" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:1379 -+#: ../sepolicy/sepolicy/generate.py:1377 - msgid "Type Enforcement file" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:1380 -+#: ../sepolicy/sepolicy/generate.py:1378 - msgid "Interface file" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:1381 -+#: ../sepolicy/sepolicy/generate.py:1379 - msgid "File Contexts file" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:1383 -+#: ../sepolicy/sepolicy/generate.py:1381 - msgid "Spec file" - msgstr "" - --#: ../sepolicy/sepolicy/generate.py:1384 -+#: ../sepolicy/sepolicy/generate.py:1382 - msgid "Setup Script" - msgstr "" - -@@ -2367,29 +2378,29 @@ msgstr "" - msgid "named pipe" - msgstr "" - --#: ../sepolicy/sepolicy/__init__.py:148 -+#: ../sepolicy/sepolicy/__init__.py:149 - msgid "No SELinux Policy installed" - msgstr "" - --#: ../sepolicy/sepolicy/__init__.py:184 -+#: ../sepolicy/sepolicy/__init__.py:185 - #, python-format - msgid "Failed to read %s policy file" - msgstr "" - --#: ../sepolicy/sepolicy/__init__.py:470 -+#: ../sepolicy/sepolicy/__init__.py:471 - #, python-format - msgid "-- Allowed %s [ %s ]" - msgstr "" - --#: ../sepolicy/sepolicy/__init__.py:896 -+#: ../sepolicy/sepolicy/__init__.py:897 - msgid "You must regenerate interface info by running /usr/bin/sepolgen-ifgen" - msgstr "" - --#: ../sepolicy/sepolicy/__init__.py:1221 -+#: ../sepolicy/sepolicy/__init__.py:1230 - msgid "unknown" - msgstr "" - --#: ../sepolicy/sepolicy/__init__.py:1230 -+#: ../sepolicy/sepolicy/__init__.py:1239 - #, python-brace-format - msgid "Allow {subject} to {rest}" - msgstr "" --- -2.41.0 - diff --git a/policycoreutils.spec b/policycoreutils.spec index e6eb739..4d576c2 100644 --- a/policycoreutils.spec +++ b/policycoreutils.spec @@ -1,7 +1,7 @@ %global libauditver 3.0 -%global libsepolver 3.5-1 -%global libsemanagever 3.5-1 -%global libselinuxver 3.5-1 +%global libsepolver 3.6-0 +%global libsemanagever 3.6-0 +%global libselinuxver 3.6-0 %global generatorsdir %{_prefix}/lib/systemd/system-generators @@ -10,11 +10,11 @@ Summary: SELinux policy core utilities Name: policycoreutils -Version: 3.5 -Release: 8%{?dist} +Version: 3.6 +Release: 0.rc1.1%{?dist} License: GPL-2.0-or-later # https://github.com/SELinuxProject/selinux/wiki/Releases -Source0: https://github.com/SELinuxProject/selinux/releases/download/3.5/selinux-3.5.tar.gz +Source0: https://github.com/SELinuxProject/selinux/releases/download/3.6-rc1/selinux-3.6-rc1.tar.gz URL: https://github.com/SELinuxProject/selinux Source13: system-config-selinux.png Source14: sepolicy-icons.tgz @@ -33,7 +33,7 @@ Source22: selinux-gui.zip # wlc --key --url https://translate.fedoraproject.org/api/ download selinux/sandbox --output ./ Source23: selinux-sandbox.zip # https://github.com/fedora-selinux/selinux -# $ git format-patch -N 3.5 -- policycoreutils python gui sandbox dbus semodule-utils restorecond +# $ git format-patch -N 3.6-rc1 -- policycoreutils python gui sandbox dbus semodule-utils restorecond # $ for j in [0-9]*.patch; do printf "Patch%s: %s\n" ${j/-*/} $j; done # Patch list start Patch0001: 0001-sandbox-add-reset-to-Xephyr-as-it-works-better-with-.patch @@ -41,20 +41,8 @@ Patch0002: 0002-Don-t-be-verbose-if-you-are-not-on-a-tty.patch Patch0003: 0003-sepolicy-generate-Handle-more-reserved-port-types.patch Patch0004: 0004-sandbox-Use-matchbox-window-manager-instead-of-openb.patch Patch0005: 0005-Use-SHA-2-instead-of-SHA-1.patch -Patch0006: 0006-python-chcat-Improve-man-pages.patch -Patch0007: 0007-python-audit2allow-Add-missing-options-to-man-page.patch -Patch0008: 0008-python-semanage-Improve-man-pages.patch -Patch0009: 0009-python-audit2allow-Remove-unused-debug-option.patch -Patch0010: 0010-policycoreutils-Add-examples-to-man-pages.patch -Patch0011: 0011-python-sepolicy-Improve-man-pages.patch -Patch0012: 0012-sandbox-Add-examples-to-man-pages.patch -Patch0013: 0013-python-sepolicy-Fix-template-for-confined-user-polic.patch -Patch0014: 0014-python-sepolicy-Fix-spec-file-dependencies.patch -Patch0015: 0015-python-improve-format-strings-for-proper-localizatio.patch -Patch0016: 0016-python-Drop-hard-formating-from-localized-strings.patch -Patch0017: 0017-semanage-Drop-unnecessary-import-from-seobject.patch -Patch0018: 0018-python-update-python.pot.patch -Patch0019: 0019-sepolicy-port-to-dnf4-python-API.patch +Patch0006: 0006-python-sepolicy-Fix-spec-file-dependencies.patch +Patch0007: 0007-sepolicy-port-to-dnf4-python-API.patch # Patch list end Obsoletes: policycoreutils < 2.0.61-2 @@ -90,7 +78,7 @@ load_policy to load policies, setfiles to label filesystems, newrole to switch roles. %prep -p /usr/bin/bash -%autosetup -p 1 -n selinux-%{version} +%autosetup -p 1 -n selinux-%{version}-rc1 cp %{SOURCE13} gui/ tar -xvf %{SOURCE14} -C python/sepolicy/ @@ -100,18 +88,14 @@ tar -xvf %{SOURCE14} -C python/sepolicy/ # For more information see README.translations # First remove old translation files # rm -f policycoreutils/po/*.po python/po/*.po gui/po/*.po sandbox/po/*.po -# tar -x -f %{SOURCE20} -C policycoreutils -z -# tar -x -f %{SOURCE21} -C python -z -# tar -x -f %{SOURCE22} -C gui -z -# tar -x -f %{SOURCE23} -C sandbox -z -unzip %{SOURCE20} -cp -r selinux/policycoreutils/po policycoreutils -unzip %{SOURCE21} -cp -r selinux/python/po python -unzip %{SOURCE22} -cp -r selinux/gui/po gui -unzip %{SOURCE23} -cp -r selinux/sandbox/po sandbox +# unzip %{SOURCE20} +# cp -r selinux/policycoreutils/po policycoreutils +# unzip %{SOURCE21} +# cp -r selinux/python/po python +# unzip %{SOURCE22} +# cp -r selinux/gui/po gui +# unzip %{SOURCE23} +# cp -r selinux/sandbox/po sandbox %build %set_build_flags @@ -153,13 +137,9 @@ chmod 0755 %{buildroot}%{_bindir}/newrole # Systemd rm -rf %{buildroot}/%{_sysconfdir}/rc.d/init.d/restorecond -rm -f %{buildroot}/usr/share/man/ru/man8/genhomedircon.8.gz -rm -f %{buildroot}/usr/share/man/ru/man8/open_init_pty.8* -rm -f %{buildroot}/usr/share/man/ru/man8/semodule_deps.8.gz rm -f %{buildroot}/usr/share/man/man8/open_init_pty.8 rm -f %{buildroot}/usr/sbin/open_init_pty rm -f %{buildroot}/usr/sbin/run_init -rm -f %{buildroot}/usr/share/man/ru/man8/run_init.8* rm -f %{buildroot}/usr/share/man/man8/run_init.8* rm -f %{buildroot}/etc/pam.d/run_init* @@ -195,14 +175,10 @@ an SELinux environment. %{_bindir}/audit2allow %{_bindir}/audit2why %{_mandir}/man1/audit2allow.1* -%{_mandir}/ru/man1/audit2allow.1* %{_mandir}/man1/audit2why.1* -%{_mandir}/ru/man1/audit2why.1* %{_sysconfdir}/dbus-1/system.d/org.selinux.conf %{_mandir}/man8/chcat.8* -%{_mandir}/ru/man8/chcat.8* %{_mandir}/man8/semanage*.8* -%{_mandir}/ru/man8/semanage*.8* %{_datadir}/bash-completion/completions/semanage %package dbus @@ -282,7 +258,6 @@ The policycoreutils-devel package contains the management tools use to develop p /var/lib/sepolgen/perm_map %{_bindir}/sepolicy %{_mandir}/man8/sepolgen.8* -%{_mandir}/ru/man8/sepolgen.8* %{_mandir}/man8/sepolicy-booleans.8* %{_mandir}/man8/sepolicy-generate.8* %{_mandir}/man8/sepolicy-interface.8* @@ -291,7 +266,6 @@ The policycoreutils-devel package contains the management tools use to develop p %{_mandir}/man8/sepolicy-communicate.8* %{_mandir}/man8/sepolicy-manpage.8* %{_mandir}/man8/sepolicy-transition.8* -%{_mandir}/ru/man8/sepolicy*.8* %{_usr}/share/bash-completion/completions/sepolicy @@ -312,12 +286,9 @@ sandboxes %{_datadir}/sandbox/start %caps(cap_setpcap,cap_setuid,cap_fowner,cap_dac_override,cap_sys_admin,cap_sys_nice=pe) %{_sbindir}/seunshare %{_mandir}/man8/seunshare.8* -%{_mandir}/ru/man8/seunshare.8* %{_bindir}/sandbox %{_mandir}/man5/sandbox.5* -%{_mandir}/ru/man5/sandbox.5* %{_mandir}/man8/sandbox.8* -%{_mandir}/ru/man8/sandbox.8* %package newrole Summary: The newrole application for RBAC/MLS @@ -330,7 +301,6 @@ or level of a logged in user. %files newrole %attr(0755,root,root) %caps(cap_dac_read_search,cap_setpcap,cap_audit_write,cap_sys_admin,cap_fowner,cap_chown,cap_dac_override=pe) %{_bindir}/newrole %{_mandir}/man1/newrole.1.gz -%{_mandir}/ru/man1/newrole.1.gz %config(noreplace) %{_sysconfdir}/pam.d/newrole %package gui @@ -365,11 +335,8 @@ system-config-selinux is a utility for managing the SELinux environment %{_datadir}/icons/hicolor/*/apps/sepolicy.png %{_datadir}/pixmaps/sepolicy.png %{_mandir}/man8/system-config-selinux.8* -%{_mandir}/ru/man8/system-config-selinux.8* %{_mandir}/man8/selinux-polgengui.8* -%{_mandir}/ru/man8/selinux-polgengui.8* %{_mandir}/man8/sepolicy-gui.8* -%{_mandir}/ru/man8/sepolicy-gui.8* %files -f %{name}.lang %{_sbindir}/restorecon @@ -396,37 +363,21 @@ system-config-selinux is a utility for managing the SELinux environment %{generatorsdir}/selinux-autorelabel-generator.sh %config(noreplace) %{_sysconfdir}/sestatus.conf %{_mandir}/man5/selinux_config.5.gz -%{_mandir}/ru/man5/selinux_config.5.gz %{_mandir}/man5/sestatus.conf.5.gz -%{_mandir}/ru/man5/sestatus.conf.5.gz %{_mandir}/man8/fixfiles.8* -%{_mandir}/ru/man8/fixfiles.8* %{_mandir}/man8/load_policy.8* -%{_mandir}/ru/man8/load_policy.8* %{_mandir}/man8/restorecon.8* -%{_mandir}/ru/man8/restorecon.8* %{_mandir}/man8/restorecon_xattr.8* -%{_mandir}/ru/man8/restorecon_xattr.8* %{_mandir}/man8/semodule.8* -%{_mandir}/ru/man8/semodule.8* %{_mandir}/man8/sestatus.8* -%{_mandir}/ru/man8/sestatus.8* %{_mandir}/man8/setfiles.8* -%{_mandir}/ru/man8/setfiles.8* %{_mandir}/man8/setsebool.8* -%{_mandir}/ru/man8/setsebool.8* %{_mandir}/man1/secon.1* -%{_mandir}/ru/man1/secon.1* %{_mandir}/man8/genhomedircon.8* -%{_mandir}/ru/man8/genhomedircon.8* %{_mandir}/man8/semodule_expand.8* -%{_mandir}/ru/man8/semodule_expand.8* %{_mandir}/man8/semodule_link.8* -%{_mandir}/ru/man8/semodule_link.8* %{_mandir}/man8/semodule_unpackage.8* -%{_mandir}/ru/man8/semodule_unpackage.8* %{_mandir}/man8/semodule_package.8* -%{_mandir}/ru/man8/semodule_package.8* %dir %{_datadir}/bash-completion %{_datadir}/bash-completion/completions/setsebool %{!?_licensedir:%global license %%doc} @@ -449,7 +400,6 @@ The policycoreutils-restorecond package contains the restorecond service. %{_sysconfdir}/xdg/autostart/restorecond.desktop %{_datadir}/dbus-1/services/org.selinux.Restorecond.service %{_mandir}/man8/restorecond.8* -%{_mandir}/ru/man8/restorecond.8* %{!?_licensedir:%global license %%doc} %license policycoreutils/LICENSE @@ -470,6 +420,9 @@ The policycoreutils-restorecond package contains the restorecond service. %systemd_postun_with_restart restorecond.service %changelog +* Tue Nov 14 2023 Petr Lautrbach - 3.6-0.rc1.1 +- SELinux userspace 3.6-rc1 release + * Mon Oct 30 2023 Petr Lautrbach - 3.5-8 - Update translations https://translate.fedoraproject.org/projects/selinux/ diff --git a/sources b/sources index c428c60..92605d3 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (selinux-3.5.tar.gz) = a91b978d7a5f8adc6c4a4fb47ac92e49e73528905b8fe061ecff77d6ad6b316c4f8391e85dfcc7b422ed83076b9b84f592f567e76d862c569ab3a1079100a1fc +SHA512 (selinux-3.6-rc1.tar.gz) = b447b4f51055861730868dbe357cc740cef7ee97e10c59c1bc5840d3ea2141af0331d226d8fa9a4e06aea510a1854cfb5bc49a517b4ecd83ca527c1ab9bd1c6b SHA512 (selinux-policycoreutils.zip) = 0df9dc274e0d1a2e4e2467f95a18a5bf7b6de2428ac90a0a73d7f3bd766a897062af142ba3cf39cdb79565ba78af960bcd2e35865cc26e14bf2305321780c918 SHA512 (selinux-python.zip) = 35d209f8bcff498f66465499fcc4cef0780781276a4ba060b2d1d56eed1dd72d253f6b0eae5f679d46cf426b967a7aadac909363513be5d483c95a31249eacdd SHA512 (selinux-sandbox.zip) = ecbc0c8280eb6c013b039a2e63ee5a361cd84807613962a012ac0a98092357e9809bea23c3c71bd8ae4745b1dd12a4fce43db5e1cab31614f386a2a8db88b733