diff --git a/.gitignore b/.gitignore index 5ebf2f2..e0514bc 100644 --- a/.gitignore +++ b/.gitignore @@ -157,3 +157,4 @@ libsemanage-2.0.45.tgz /libsemanage-3.5-rc2.tar.gz /libsemanage-3.5-rc3.tar.gz /libsemanage-3.5.tar.gz +/libsemanage-3.6-rc1.tar.gz diff --git a/0001-Revert-Do-not-automatically-install-Russian-translat.patch b/0001-Revert-Do-not-automatically-install-Russian-translat.patch new file mode 100644 index 0000000..73a6dd6 --- /dev/null +++ b/0001-Revert-Do-not-automatically-install-Russian-translat.patch @@ -0,0 +1,25 @@ +From a87290f734ba136e7b648a9ce9754767cbb5eed3 Mon Sep 17 00:00:00 2001 +From: Petr Lautrbach +Date: Mon, 13 Nov 2023 13:37:36 +0100 +Subject: [PATCH] Revert "Do not automatically install Russian translations" +Content-type: text/plain + +This reverts commit 14f35fde50cd080650ac3b0136234464a3ea6fbe. +--- + libsemanage/man/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libsemanage/man/Makefile b/libsemanage/man/Makefile +index 5e21a65ea725..f626447dadbe 100644 +--- a/libsemanage/man/Makefile ++++ b/libsemanage/man/Makefile +@@ -1,5 +1,5 @@ + # Installation directories. +-LINGUAS ?= ++LINGUAS ?= ru + PREFIX ?= /usr + MANDIR ?= $(PREFIX)/share/man + MAN3SUBDIR ?= man3 +-- +2.41.0 + diff --git a/0001-libsemanage-include-more-parameters-in-the-module-ch.patch b/0001-libsemanage-include-more-parameters-in-the-module-ch.patch deleted file mode 100644 index ee2f23a..0000000 --- a/0001-libsemanage-include-more-parameters-in-the-module-ch.patch +++ /dev/null @@ -1,103 +0,0 @@ -From 22312b1bd9e754a7362ae3d72e5ae7816d31a587 Mon Sep 17 00:00:00 2001 -From: Ondrej Mosnacek -Date: Wed, 8 Mar 2023 10:46:42 +0100 -Subject: [PATCH] libsemanage: include more parameters in the module checksum -Content-type: text/plain - -The check_ext_changes option currently assumes that as long as the -module content is unchanged, it is safe to assume that the policy.linked -file doesn't need to be rebuilt. However, there are some additional -parameters that can affect the content of this policy file, namely: -* the disable_dontaudit and preserve_tunables flags -* the target_platform and policyvers configuration values - -Include these in the checksum so that the option works correctly when -only some of these input values are changed versus the current state. - -Fixes: 286a679fadc4 ("libsemanage: optionally rebuild policy when modules are changed externally") -Acked-by: Stephen Smalley -Signed-off-by: Ondrej Mosnacek ---- - libsemanage/src/direct_api.c | 31 +++++++++++++++++++++++++++++-- - 1 file changed, 29 insertions(+), 2 deletions(-) - -diff --git a/libsemanage/src/direct_api.c b/libsemanage/src/direct_api.c -index 7aa081abb3b7..d740070d538e 100644 ---- a/libsemanage/src/direct_api.c -+++ b/libsemanage/src/direct_api.c -@@ -863,6 +863,14 @@ static void update_checksum_with_len(Sha256Context *context, size_t s) - Sha256Update(context, buffer, 8); - } - -+static void update_checksum_with_bool(Sha256Context *context, bool b) -+{ -+ uint8_t byte; -+ -+ byte = b ? UINT8_C(1) : UINT8_C(0); -+ Sha256Update(context, &byte, 1); -+} -+ - static int semanage_compile_module(semanage_handle_t *sh, - semanage_module_info_t *modinfo, - Sha256Context *context) -@@ -977,13 +985,21 @@ static int modinfo_cmp(const void *a, const void *b) - return strcmp(ma->name, mb->name); - } - -+struct extra_checksum_params { -+ int disable_dontaudit; -+ int preserve_tunables; -+ int target_platform; -+ int policyvers; -+}; -+ - static int semanage_compile_hll_modules(semanage_handle_t *sh, - semanage_module_info_t *modinfos, - int num_modinfos, -+ const struct extra_checksum_params *extra, - char *cil_checksum) - { - /* to be incremented when checksum input data format changes */ -- static const size_t CHECKSUM_EPOCH = 1; -+ static const size_t CHECKSUM_EPOCH = 2; - - int i, status = 0; - char cil_path[PATH_MAX]; -@@ -1000,6 +1016,10 @@ static int semanage_compile_hll_modules(semanage_handle_t *sh, - - Sha256Initialise(&context); - update_checksum_with_len(&context, CHECKSUM_EPOCH); -+ update_checksum_with_bool(&context, !!extra->disable_dontaudit); -+ update_checksum_with_bool(&context, !!extra->preserve_tunables); -+ update_checksum_with_len(&context, (size_t)extra->target_platform); -+ update_checksum_with_len(&context, (size_t)extra->policyvers); - - /* prefix with module count to avoid collisions */ - update_checksum_with_len(&context, num_modinfos); -@@ -1134,6 +1154,7 @@ static int semanage_direct_commit(semanage_handle_t * sh) - mode_t mask = umask(0077); - struct stat sb; - char modules_checksum[CHECKSUM_CONTENT_SIZE + 1 /* '\0' */]; -+ struct extra_checksum_params extra; - - int do_rebuild, do_write_kernel, do_install; - int fcontexts_modified, ports_modified, seusers_modified, -@@ -1274,8 +1295,14 @@ static int semanage_direct_commit(semanage_handle_t * sh) - goto cleanup; - } - -+ extra = (struct extra_checksum_params){ -+ .disable_dontaudit = sepol_get_disable_dontaudit(sh->sepolh), -+ .preserve_tunables = sepol_get_preserve_tunables(sh->sepolh), -+ .target_platform = sh->conf->target_platform, -+ .policyvers = sh->conf->policyvers, -+ }; - retval = semanage_compile_hll_modules(sh, modinfos, num_modinfos, -- modules_checksum); -+ &extra, modules_checksum); - if (retval < 0) { - ERR(sh, "Failed to compile hll files into cil files.\n"); - goto cleanup; --- -2.40.0 - diff --git a/0002-Revert-libsemanage-Remove-the-Russian-translations.patch b/0002-Revert-libsemanage-Remove-the-Russian-translations.patch new file mode 100644 index 0000000..88eb622 --- /dev/null +++ b/0002-Revert-libsemanage-Remove-the-Russian-translations.patch @@ -0,0 +1,138 @@ +From 020da857956beea5749c9347cafbd527774aeaa5 Mon Sep 17 00:00:00 2001 +From: Petr Lautrbach +Date: Mon, 13 Nov 2023 13:37:57 +0100 +Subject: [PATCH] Revert "libsemanage: Remove the Russian translations" +Content-type: text/plain + +This reverts commit 1303a6af486eeef1138a99513214700f543c0ef7. +--- + libsemanage/man/ru/man5/semanage.conf.5 | 117 ++++++++++++++++++++++++ + 1 file changed, 117 insertions(+) + create mode 100644 libsemanage/man/ru/man5/semanage.conf.5 + +diff --git a/libsemanage/man/ru/man5/semanage.conf.5 b/libsemanage/man/ru/man5/semanage.conf.5 +new file mode 100644 +index 000000000000..548aa58d37b6 +--- /dev/null ++++ b/libsemanage/man/ru/man5/semanage.conf.5 +@@ -0,0 +1,117 @@ ++.TH semanage.conf "5" "Сентябрь 2011" "semanage.conf" "Администрирование системы Linux" ++.SH ИМЯ ++semanage.conf \- глобальный файл конфигурации для библиотеки управления SELinux ++.SH ОПИСАНИЕ ++.PP ++Файл ++.BR semanage.conf ++обычно располагается в каталоге /etc/selinux и используется для конфигурации поведения библиотеки управления SELinux в среде выполнения. ++ ++.PP ++Каждая строка должна содержать параметр конфигурации, за которым следует знак равенства ("=") и значение конфигурации этого параметра. Все символы, которые следуют за "#", игнорируются (аналогично пустым строкам). ++ ++.PP ++Разрешены следующие параметры: ++ ++.RS ++.TP ++.B module-store ++Указать, как библиотека управления SELinux должна взаимодействовать с хранилищем политики SELinux. Если установлено "direct", библиотека управления SELinux выполняет запись напрямую в хранилище модулей политики SELinux (это значение по умолчанию). ++В ином случае в качестве аргумента может использоваться путь к сокету или имя сервера. ++Если аргумент начинается с "/" (как в "/foo/bar"), он представляет собой путь к именованному сокету, который следует использовать для подключения сервера управления политикой. ++Если аргумент не начинается с "/" (как в "example.com:4242"), он должен интерпретироваться как имя удалённого сервера управления политикой, который следует использовать через TCP-подключение (порт по умолчанию 4242, если только после имени сервера через двоеточие, разделяющее два поля, не указан другой порт). ++ ++.TP ++.B root ++Указать альтернативный корневой путь к хранилищу. По умолчанию: "/" ++ ++.TP ++.B store-root ++Указать альтернативный путь store_root. По умолчанию: "/var/lib/selinux" ++ ++.TP ++.B compiler-directory ++Указать альтернативный каталог, который содержит компиляторы HLL в CIL. Значение по умолчанию: "/usr/libexec/selinux/hll". ++ ++.TP ++.B ignore-module-cache ++Определяет, следует ли игнорировать кэш модулей CIL, скомпилированных из HLL. Можно установить либо значение "true", либо значение "false" (по умолчанию установлено "false"). ++Если кэш игнорируется, все модули CIL перекомпилируются из соответствующих модулей HLL. ++ ++.TP ++.B policy-version ++При создании политики ++.BR semanage ++по умолчанию устанавливает версию политики POLICYDB_VERSION_MAX, как определено в . Измените этот параметр, если для политики требуется установить другую версию. ++ ++.TP ++.B target-platform ++Целевая платформа, для которой создаются политики. Действительными значениями являются "selinux" и "xen" (по умолчанию установлено "selinux"). ++ ++.TP ++.B expand-check ++Определяет, следует ли проверять правила "neverallow" при исполнении всех команд ++.BR semanage. ++Для этого параметра можно установить либо значение "0" (отключён), либо "1" (включён). По умолчанию параметр включён. Время выполнения может сильно возрасти, если этот параметр включён. ++ ++.TP ++.B file-mode ++По умолчанию для разрешительного режима для файлов среды выполнения политики установлено значение 0644. ++ ++.TP ++.B save-previous ++Определяет, следует ли сохранять прежний каталог модуля после успешной фиксации модуля в хранилище политики. Для параметра можно установить либо значение "true", либо значение "false". По умолчанию установлено "false" (прежняя версия удаляется). ++ ++.TP ++.B save-linked ++Определяет, следует ли сохранять прежний связанный модуль (с именем "base.linked") после успешной фиксации модуля в хранилище политики. ++Для параметра можно установить либо значение "true", либо значение "false". По умолчанию установлено "false" (прежний модуль удаляется). ++ ++.TP ++.B ignoredirs ++Разделённый ";" список каталогов, которые следует игнорировать при установке домашних каталогов пользователей. ++В некоторых дистрибутивах этот параметр используется для того, чтобы /root не отмечался как домашний каталог. ++ ++.TP ++.B usepasswd ++Определяет, использовать ли getpwent(), чтобы получить список домашних каталогов, для которых следует проставить метки. Для параметра можно установить либо значение "true", либо значение "false" (по умолчанию установлено "true"). ++ ++.TP ++.B disable-genhomedircon ++Определяет, следует ли исполнять функцию genhomedircon при использовании команды ++.BR semanage. ++Для параметра можно установить либо значение "true", либо значение "false". По умолчанию возможность genhomedircon включена (эквивалентно установке значения "false" для этого параметра). ++ ++.TP ++.B handle-unknown ++Этот параметр управляет тем, как ядро обрабатывает разрешения, которые определены в ядре, но отсутствуют в фактической политике. ++Возможные значения: "deny", "reject" или "allow". ++ ++.TP ++.B bzip-blocksize ++Этот параметр должен находиться в диапазоне 0-9. Значение 0 означает отсутствие сжатия. По умолчанию значение размера блока bzip равняется 9 (фактическое значение размера блока получается путём умножения на 100000). ++ ++.TP ++.B bzip-small ++Если для этого параметра установлено значение "true", алгоритм bzip попытается уменьшить использование системной памяти. Также для этого параметра можно установить значение "false" (по умолчанию установлено это значение). ++ ++.TP ++.B remove-hll ++Если для этого параметра установлено значение "true", файлы HLL будут удалены после компиляции в CIL. Чтобы удалить уже cкомпилированные в CIL файлы HLL, необходимо перекомпилировать модули, установив для параметра ++.BR ignore-module-cache ++значение "true", или используя параметр ++.BR ignore-module-cache ++с semodule. Для параметра remove-hll можно установить либо значение "true", либо значение "false" (по умолчанию установлено "false"). ++ ++Обратите внимание: так как этот параметр удаляет все файлы HLL, обновлённый компилятор HLL не сможет перекомпилировать исходный файл HLL в CIL. ++Чтобы скомпилировать исходный файл HLL в CIL, необходимо переустановить этот файл HLL. ++ ++.SH "СМОТРИТЕ ТАКЖЕ" ++.TP ++semanage(8) ++.PP ++ ++.SH АВТОРЫ ++Эта страница руководства была написана Guido Trentalancia . ++Библиотека управления SELinux была написана Tresys Technology LLC и Red Hat Inc. ++Перевод на русский язык выполнила Герасименко Олеся . +-- +2.41.0 + diff --git a/libsemanage.spec b/libsemanage.spec index d2e5317..3812da9 100644 --- a/libsemanage.spec +++ b/libsemanage.spec @@ -1,16 +1,17 @@ -%define libsepolver 3.5-1 -%define libselinuxver 3.5-1 +%define libsepolver 3.6-0 +%define libselinuxver 3.6-0 Summary: SELinux binary policy manipulation library Name: libsemanage -Version: 3.5 -Release: 2%{?dist} +Version: 3.6 +Release: 0.rc1.1%{?dist} License: LGPLv2+ -Source0: https://github.com/SELinuxProject/selinux/releases/download/3.5/libsemanage-3.5.tar.gz -# fedora-selinux/selinux: git checkout c9s; git format-patch -N 3.5 -- libsemanage +Source0: https://github.com/SELinuxProject/selinux/releases/download/3.6-rc1/libsemanage-3.6-rc1.tar.gz +# fedora-selinux/selinux: git checkout c9s; git format-patch -N 3.6-rc1 -- libsemanage # i=1; for j in 00*patch; do printf "Patch%04d: %s\n" $i $j; i=$((i+1));done # Patch list start -Patch0001: 0001-libsemanage-include-more-parameters-in-the-module-ch.patch +Patch0001: 0001-Revert-Do-not-automatically-install-Russian-translat.patch +Patch0002: 0002-Revert-libsemanage-Remove-the-Russian-translations.patch # Patch list end URL: https://github.com/SELinuxProject/selinux/wiki Source1: semanage.conf @@ -75,7 +76,7 @@ The libsemanage-python3 package contains the python 3 bindings for developing SELinux management applications. %prep -%autosetup -p 2 -n libsemanage-%{version} +%autosetup -p 2 -n libsemanage-%{version}-rc1 %build @@ -154,6 +155,9 @@ cp %{SOURCE1} ${RPM_BUILD_ROOT}%{_sysconfdir}/selinux/semanage.conf %{_libexecdir}/selinux/semanage_migrate_store %changelog +* Mon Nov 13 2023 Petr Lautrbach - 3.6-0.rc1.1 +- SELinux userspace 3.6-rc1 release + * Wed Mar 22 2023 Petr Lautrbach - 3.5-2 - Include more parameters in the module checksum (#2173959) diff --git a/sources b/sources index 4a76b67..07b7597 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libsemanage-3.5.tar.gz) = 959fbd0d6bc6849da6caa13dc41c3f8818cbbd29f04b5d2ac7246c4b395b4f370f113a04cc9cfcb52be2afebfa636013ac4ad4011384c58c7ce066a45cae2751 +SHA512 (libsemanage-3.6-rc1.tar.gz) = c0e70853497454c9e68aeccb45c947868c5dfae3cdfd456977f7ec44de8ff5f9e7f6ac2c6a74fd48a2c18312f4b13834558a52530767cd315c91c569432ecab5