Как собрать компилятор SELinux?

Пытаюсь собрать SELinux утилиты из исходников:

root@linuxmint21 ~/linux/src # git clone --depth 1 https://github.com/SELinuxProject/selinux
root@linuxmint21 ~/linux/src # git clone --depth 1 https://github.com/SELinuxProject/cil secilc
root@linuxmint21 ~/linux/src # cd selinux
root@linuxmint21 ~/linux/src/selinux # make -j12 V=1

Получаю ошибку тут: https://pastebin.com/bfWBTYJw

Собираю secilc:

root@linuxmint21 ~/linux/src/secilc # make -j12 V=1

Получаю ошибку тут: https://pastebin.com/BuVqWfse

Там была проблема с sepol/policydb/flask.h (точнее, отсутствие данного файла), пришлось тянуть из Android:

root@linuxmint21 ~/linux/src/secilc # apt install android-libsepol-dev

Впринципе, мне нужен лишь компилятор политик, ничего больше... Ну раз не собирать готовое - так хотя бы написать - думаю я. Ага, только вот я вообще не нашел соответствующей функций ни в C++, ни в Go. (а мне надо лишь эти два языка) (UPD: нашел libsepol, но вообще не понял, как им пользоваться).

Читал исходники secilc и sedump... И вообще не понял, как же собирать политику программно в бинарный формат. Единственное, что я понял насчет бинарного формата - это его "магические байты", то, что сами правила прописаны в бинарном виде, но контексты и возможные действия объявлены читаемым видом (читал через xxd sepolicy). Но всё равно желаю получить внятную информацию, как собрать утилиты для компиляции SELinux политик или хотя бы как программно скомпилировать SELinux политику.


Ответы (0 шт):