Bug 32254 - Политика не грузится с policycoreutils >= 2.4
Summary: Политика не грузится с policycoreutils >= 2.4
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: selinux-policy-altlinux (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-07-07 13:46 MSK by Anton V. Boyarshinov
Modified: 2018-11-13 19:31 MSK (History)
8 users (show)

See Also:


Attachments
context__contains.patch (408 bytes, patch)
2016-09-26 18:58 MSK, Vladimir D. Seleznev
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Anton V. Boyarshinov 2016-07-07 13:46:56 MSK
Политика не грузится в окружении текущего Сизифа/p8
Ну, во первых, ему фактически нужен policycoreutils-devel, что не вполне правильно, но даже если его поставить, возникают проблемы вида:

Unable to resolve name: system_u
Failed to resolve filecon statement at 174 of /var/lib/selinux/altlinux/tmp/modules/400/base/cil
Failed to resolve ast
semodule:  Failed!
Comment 1 Anton V. Boyarshinov 2016-07-07 13:52:10 MSK
PS эта ошибка возникает при установке пакета.
PS1 если поставить пакет, например, на c7, а потом сделать dist-upgrade до Сизифа -- работает
Comment 2 Vladimir D. Seleznev 2016-07-18 18:19:49 MSK
Для Сизифа/p8:

Из пакета policycoreutils-devel требуется

/usr/libexec/selinux/hll/

для установки selinux-policy-altlinux. Вероятно, её стоит перенести в файлы пакета policycoreutils.

С остальными ошибками сейчас разбираюсь.
Comment 3 Sergey V Turchin 2016-07-18 18:53:37 MSK
/usr/libexec/selinux/hll/ я сейчас перенесу. Полагал, это для разработки только.
Comment 4 Vladimir D. Seleznev 2016-09-14 23:39:16 MSK
Последний не-апстримный коммит [1], с которым работает 
selinux-policy-altlinux. Апстримный коммит, в котором ломаются полиси, находится где-то между [1] и [2] коммитами. Продолжу исследования.

[1] http://git.altlinux.org/gears/p/policycoreutils.git?p=policycoreutils.git;a=commit;h=063837a8c5c69289438135587f1a67fef87ba69a
[2] http://git.altlinux.org/gears/p/policycoreutils.git?p=policycoreutils.git;a=commit;h=d442b3651354c109ec408fbbe4df6c9789372391
Comment 5 Vladimir D. Seleznev 2016-09-19 16:26:48 MSK
Последний апстримный коммит [1], который собирается в окружении c7. Осталось примерно 50 коммитов, которые не собираются в окружениях c7 или Sisyphus или из-за компилятора, или из-за несоответствии версии libselinux. Продолжу исследования.

[1] http://git.altlinux.org/gears/p/policycoreutils.git?p=policycoreutils.git;a=commit;h=ac33098a807671204720aae97d6bcf6429d3fa92
Comment 6 Vladimir D. Seleznev 2016-09-19 16:42:44 MSK
Уточнение: собирается и политика грузится.
Comment 7 Anton Farygin 2016-09-19 18:19:57 MSK
Зерг, я не понял, ты же вроде это чинил ?
Comment 8 Sergey V Turchin 2016-09-20 12:01:43 MSK
(В ответ на комментарий №7)
> Зерг, я не понял, ты же вроде это чинил ?
AFAIK уже нет.
Comment 9 Vladimir D. Seleznev 2016-09-26 18:58:51 MSK
Created attachment 6823 [details]
context__contains.patch
Comment 10 Vladimir D. Seleznev 2016-09-26 19:04:37 MSK
Последний коммит [1], с которым политики загружаются, в следующем коммите [2] semodule сегфолтится при попытке их загрузить.

Чистые коммиты не собираются, для их сборки необходимо наложить патч (во вложении).

[1] http://git.altlinux.org/gears/p/policycoreutils.git?p=policycoreutils.git;a=commit;h=aea047c76904a907c0acb15ab4a6399ffe32dd63
[2] http://git.altlinux.org/gears/p/policycoreutils.git?p=policycoreutils.git;a=commit;h=e37fa2f63be89afab9b5f5ddfedbd589d0676c4e
Comment 11 Anton Farygin 2016-09-27 08:34:02 MSK
А что говорит апстрим на это ?
Ну сегфолт видимо является следствием того, что наша политика лежит в /etc, а не в /var.
Comment 12 Vladimir D. Seleznev 2016-09-29 16:47:28 MSK
> Ну сегфолт видимо является следствием того, что наша политика лежит в /etc, а
не в /var.

Не совсем. Причина сегфолта пока непонятна. Правила из /etc/selinux/altlinux/modules/ в /var/lib/selinux/altlinux/ нужно перекладывать как раз в версии policycoreutils-2.4, т.е. тот, что в p8/Sisyphus. И если их туда положить, то при их загрузке также происходит сегфолт (как и в случае того коммита). Пока продолжаю исследования.

P.S. Я в #4 (https://bugzilla.altlinux.org/show_bug.cgi?id=32254#c4) написал, что с версией 2.3 наши политики работают. Это неправда. Тоже происходит сегфолт.
Comment 13 Vladimir D. Seleznev 2016-09-29 17:25:01 MSK
Точнее, с policycoreutils 2.4 не сегфолтятся, а не загружаются правила с известной диагностикой.
Comment 14 Vladimir D. Seleznev 2016-09-29 20:08:38 MSK
Ан-нет, с версией policycoreutils 2.3 политики загружаются #4.
Comment 15 Anton V. Boyarshinov 2016-10-26 11:50:19 MSK
Правильно ли я понимаю, что, хотя задача была в целом решена, пакет в Сизиф/p8 собран не был?
Comment 16 AEN 2016-10-26 12:23:43 MSK
Я его видел в eperm.
Comment 17 Vladimir D. Seleznev 2016-10-26 16:30:53 MSK
task #170252

Он был в Eperm, сейчас он снова стал NEW. Отправил на сборку.
Comment 18 Anton Farygin 2016-10-26 16:59:18 MSK
Если его кто-то протестировал, то я могу заапрувить.
Comment 19 Anton Farygin 2016-10-26 17:12:24 MSK
Downgrade это всё-таки не решение задачи. Нам всё равно неминуемо придётся переходить на более новые версии libselinux и policycoreutils. Ещё есть время разобраться в корне проблемы и исправить её.
Comment 20 AEN 2016-10-26 17:18:49 MSK
(In reply to comment #19)
> Downgrade это всё-таки не решение задачи. Нам всё равно неминуемо придётся
> переходить на более новые версии libselinux и policycoreutils. Ещё есть время
> разобраться в корне проблемы и исправить её.

Сперва надо зафиксировать работающую версию.
Конечно, проблем много и двигаться вперед нужно.
Comment 21 Anton Farygin 2016-10-26 17:20:46 MSK
работающая версия в p7 зафиксирована.
Comment 22 Anton Farygin 2016-10-26 17:24:01 MSK
Владимир, вы пробовали собирать версию 2.6 ?
https://github.com/SELinuxProject/selinux/wiki/Releases
Comment 23 AEN 2016-10-26 17:28:22 MSK
(In reply to comment #21)
> работающая версия в p7 зафиксирована.

Меня интересует сейчас фиксация в Сизифе и p8.
Остальное -- не предмет обсуждения в этой баге.
Comment 24 Vladimir D. Seleznev 2016-10-26 17:42:48 MSK
> Владимир, вы пробовали собирать версию 2.6 ?

Нет. Она вышла недавно. Можно попробовать. Мне тоже даунгрейд не нравится, но я сомневаюсь, что в 2.6 правила заработают; правильнее было бы конечно правила переписать. Но лучше проверить.
Comment 25 Anton Farygin 2016-10-26 17:48:04 MSK
А не работает только с нашими правилами ? Тогда это совсем просто должно быть.
Comment 26 Anton V. Boyarshinov 2016-10-27 13:22:47 MSK
(В ответ на комментарий №25)
> А не работает только с нашими правилами ? Тогда это совсем просто должно быть.

Возможно. Но сначала надо сделать чтоб оно работало здесь и сейчас.
Comment 27 Repository Robot 2016-10-27 14:02:17 MSK
policycoreutils-1:2.3-alt1 -> sisyphus:

* Thu Sep 29 2016 Vladimir D. Seleznev <vseleznv@altlinux> 1:2.3-alt1
- downgraded due regression (closes: #32254)
Comment 28 Anton Farygin 2016-10-27 16:24:00 MSK
Антон, такие революции надо проводить не в Sisyphus а в стабильном бранче. Зачем оно понадобилось тебе в Sisyphus - я не понимаю.

Обнови в бранче, после этого я соберу 2.6.
Comment 29 Repository Robot 2016-10-27 17:41:49 MSK
policycoreutils-1:2.3-alt1 -> p8:

* Thu Sep 29 2016 Vladimir D. Seleznev <vseleznv@altlinux> 1:2.3-alt1
- downgraded due regression (closes: #32254)
Comment 30 Anton Farygin 2016-10-27 21:46:54 MSK
refpolicy c 2.6 грузится, policy-altlinux - нет. Проблема где-то в политике.
Comment 31 Anton Farygin 2016-10-27 21:47:19 MSK
Забрал на себя
Comment 32 Anton Farygin 2016-10-27 22:36:14 MSK
Загрузка обламывается на этих строчках (если читать CIL, на который как раз ругается):
(filecon "HOME_DIR" symlink (system_u object_r def_t ((s0) (s0))))
(filecon "HOME_DIR" dir (system_u object_r def_t ((s0) (s0))))
(filecon "HOME_DIR/.+" any (system_u object_r def_t ((s0) (s0))))
(filecon "HOME_ROOT" any (system_u object_r home_root_t ((s0) (s0))))

Судя по всему ошибка в политике была всегда, просто новые policycoreutils научились её обрабатывать. По крайней мере код, который пишет Failed to resolve %s statement появился вместе с компилятором CIL в коммите bb0f8beff890195cfd459c67230c6130c86b3214 policycoreutils.
Comment 33 Anton Farygin 2016-10-28 16:09:28 MSK
В общем это ошибка копипаста - в нашей политике не используется system_u и home_root_t, соответственно их никто не объявляет, отсюда и проблемы.

Эти строчки просто не нужны, старый policycoreutils игнорировал синтаксические ошибки, новый стал на них ругаться.

И ещё раз просьба к Владимиру и Антону - прежде чем делать глупости - посоветуйтесь с более опытными коллегами, тем более вы оба не является ментейнерами подсистемы selinux и отправлять пакеты без согласования по крайней мере не красиво, а в данном случае ещё и некорректное применение прав git_root
Comment 34 Anton Farygin 2018-11-13 19:31:27 MSK
сейчас всё грузится на текущем sisyphus и c8/p8