import CS libsemanage-3.6-1.el9

This commit is contained in:
eabdullin 2024-03-28 10:50:16 +00:00
parent 6139a92faa
commit 3fe191782e
6 changed files with 179 additions and 112 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/libsemanage-3.5.tar.gz
SOURCES/libsemanage-3.6.tar.gz

View File

@ -1 +1 @@
7dfb7935f03d08640a3afc5107d8e29405909a91 SOURCES/libsemanage-3.5.tar.gz
10759ea4d5706212c3b2d10e0433a435f0643b1b SOURCES/libsemanage-3.6.tar.gz

View File

@ -0,0 +1,25 @@
From a87290f734ba136e7b648a9ce9754767cbb5eed3 Mon Sep 17 00:00:00 2001
From: Petr Lautrbach <lautrbach@redhat.com>
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

View File

@ -1,103 +0,0 @@
From 22312b1bd9e754a7362ae3d72e5ae7816d31a587 Mon Sep 17 00:00:00 2001
From: Ondrej Mosnacek <omosnace@redhat.com>
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 <stephen.smalley.work@gmail.com>
Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com>
---
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

View File

@ -0,0 +1,138 @@
From 020da857956beea5749c9347cafbd527774aeaa5 Mon Sep 17 00:00:00 2001
From: Petr Lautrbach <lautrbach@redhat.com>
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, как определено в <sepol/policydb/policydb.h>. Измените этот параметр, если для политики требуется установить другую версию.
+
+.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 <guido@trentalancia.com>.
+Библиотека управления SELinux была написана Tresys Technology LLC и Red Hat Inc.
+Перевод на русский язык выполнила Герасименко Олеся <gammaray@basealt.ru>.
--
2.41.0

View File

@ -1,16 +1,17 @@
%define libsepolver 3.5-1
%define libselinuxver 3.5-1
%define libsepolver 3.6-1
%define libselinuxver 3.6-1
Summary: SELinux binary policy manipulation library
Name: libsemanage
Version: 3.5
Release: 2%{?dist}
Version: 3.6
Release: 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/libsemanage-3.6.tar.gz
# fedora-selinux/selinux: git checkout c9s; git format-patch -N 3.6 -- 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
@ -154,6 +155,12 @@ cp %{SOURCE1} ${RPM_BUILD_ROOT}%{_sysconfdir}/selinux/semanage.conf
%{_libexecdir}/selinux/semanage_migrate_store
%changelog
* Wed Dec 13 2023 Petr Lautrbach <lautrbach@redhat.com> - 3.6-1
- SELinux userspace 3.6 release
* Mon Nov 13 2023 Petr Lautrbach <lautrbach@redhat.com> - 3.6-0.rc1.1
- SELinux userspace 3.6-rc1 release
* Wed Mar 22 2023 Petr Lautrbach <lautrbach@redhat.com> - 3.5-2
- Include more parameters in the module checksum (#2173959)