Go to file
Petr Lautrbach 960b943b2f sepolicy: Make manpage and transition faster
SETools4 and Python 3 versions of map() and filter() uses iterators to
generates query results and these iterators can't be imply re-used. It
makes manpage and transitions operations really slow as they do lot of queries.

This patch changes it in the way that it caches results in lists for all
types, allow rules and transitions first and use cached results to
filter them using Python's filter() function.

Before:
$ time sepolicy manpage -d httpd_t sshd_t init_t
real    0m53.486s
user    0m53.171s
sys     0m0.054s

After:
$ time sepolicy manpage -d httpd_t sshd_t init_t
real    0m10.532s
user    0m10.368s
sys     0m0.114s

Signed-off-by: Petr Lautrbach <plautrba@redhat.com>
2017-07-27 09:49:32 -04:00
checkpolicy Update VERSION files for 2.7-rc5 2017-07-18 12:01:26 -04:00
dbus Update VERSION files for 2.7-rc5 2017-07-18 12:01:26 -04:00
gui Update VERSION files for 2.7-rc5 2017-07-18 12:01:26 -04:00
libselinux libselinux: fix thread safety issues with lookup_common() 2017-07-26 16:23:04 -04:00
libsemanage Update VERSION files for 2.7-rc5 2017-07-18 12:01:26 -04:00
libsepol libsepol: cil: enable cpp compilation of cil.h. 2017-07-26 13:24:22 -04:00
mcstrans Update VERSION files for 2.7-rc5 2017-07-18 12:01:26 -04:00
policycoreutils Update VERSION files for 2.7-rc5 2017-07-18 12:01:26 -04:00
python sepolicy: Make manpage and transition faster 2017-07-27 09:49:32 -04:00
restorecond Update VERSION files for 2.7-rc5 2017-07-18 12:01:26 -04:00
sandbox Update VERSION files for 2.7-rc5 2017-07-18 12:01:26 -04:00
scripts Fix release script 2016-11-16 11:19:51 -05:00
secilc Update VERSION files for 2.7-rc5 2017-07-18 12:01:26 -04:00
semodule-utils Update VERSION files for 2.7-rc5 2017-07-18 12:01:26 -04:00
.gitignore restorecond: Add gitignore 2016-11-16 11:20:05 -05:00
.travis.yml Travis-CI: test defining CFLAGS, LDFLAGS, etc. on make command line 2017-06-30 08:56:43 -04:00
CleanSpec.mk Add empty top level Android.mk / CleanSpec.mk files 2015-04-16 07:54:09 -04:00
Makefile Add includes for DESTDIR only in root Makefile 2017-04-25 08:31:10 -04:00
README libsepol compilation fixes for macOS. 2017-01-20 13:19:57 -05:00

Please submit all bug reports and patches to selinux@tycho.nsa.gov.
Subscribe via selinux-join@tycho.nsa.gov.

Build dependencies on Fedora:
yum install audit-libs-devel bison bzip2-devel dbus-devel dbus-glib-devel flex flex-devel flex-static glib2-devel libcap-devel libcap-ng-devel pam-devel pcre-devel python-devel setools-devel swig xmlto redhat-rpm-config

To build and install everything under a private directory, run:
make DESTDIR=~/obj install install-pywrap

To install as the default system libraries and binaries
(overwriting any previously installed ones - dangerous!),
on x86_64, run:
make LIBDIR=/usr/lib64 SHLIBDIR=/lib64 install install-pywrap relabel
or on x86 (32-bit), run:
make install install-pywrap relabel

This may render your system unusable if the upstream SELinux userspace
lacks library functions or other dependencies relied upon by your
distribution.  If it breaks, you get to keep both pieces.

To install libsepol on macOS (mainly for policy analysis):
cd libsepol; make DESTDIR=/usr/local PREFIX=/usr/local install

This requires GNU coreutils (brew install coreutils).