Go to file
xunchang 5cff2813c5
Restorecon: factor out a lookup helper for context matches
We used to hash the file_context and skip the restorecon on the top
level directory if the hash doesn't change. But the file_context might
change after an update; and some users experienced long restorecon
time as they have lots of files under directories like /data/media.
Therefore, we try to skip unnecessary restores if the file context
relates to the given directory doesn't change.

This CL is the first step that factors out a lookup helper function
and returns an array of matched pointers instead of a single one.
The old loopup_common function is then modified to take the first
element in the array.

This change has already been submitted in android selinux branch. And
porting it upstream will make these two branches more consistent and
save some work for the future merges.

Signed-off-by: Tianjie Xu <xunchang@google.com>
2019-07-27 10:39:19 +02:00
checkpolicy checkpolicy: add flag to enable policy optimization 2019-06-25 10:11:00 -04:00
dbus Update VERSIONs to 2.9 for release. 2019-03-15 11:32:30 +01:00
gui gui: Install .desktop files to /usr/share/applications by default 2019-03-18 22:06:40 +01:00
libselinux Restorecon: factor out a lookup helper for context matches 2019-07-27 10:39:19 +02:00
libsemanage libsemanage: optionally optimize policy on rebuild 2019-06-25 10:11:00 -04:00
libsepol libsepol: include module.c internal header in module_to_cil.c 2019-06-26 08:39:14 +02:00
mcstrans mcstrans: Add reference to setools.conf man page in the daemon one 2019-07-18 09:51:43 -05:00
policycoreutils Trivial style improvements 2019-05-28 07:51:28 -04:00
python Update man pages translation by Olesya Gerasimenko 2019-05-28 07:50:34 -04:00
restorecond Add documentation key in systemd .service files 2019-07-18 09:51:43 -05:00
sandbox Update VERSIONs to 2.9 for release. 2019-03-15 11:32:30 +01:00
scripts Switch to python3 by default 2019-02-20 16:43:27 +01:00
secilc secilc: add flag to enable policy optimization 2019-06-25 10:11:00 -04:00
semodule-utils Update VERSIONs to 2.9 for release. 2019-03-15 11:32:30 +01:00
.gitignore restorecond: Add gitignore 2016-11-16 11:20:05 -05:00
.travis.yml scripts: introduce env_use_destdir.sh helper 2019-01-21 12:13:41 +01:00
CleanSpec.mk Add empty top level Android.mk / CleanSpec.mk files 2015-04-16 07:54:09 -04:00
CONTRIBUTING.md Add CONTRIBUTING.md 2019-06-14 14:58:52 -04:00
Makefile build: setup buildpaths if DESTDIR is specified 2018-02-14 20:02:03 +01:00
README README: Update Fedora python 3 dependencies 2019-02-20 16:43:27 +01:00

Please submit all bug reports and patches to selinux@vger.kernel.org.
Subscribe by sending "subscribe selinux" in the body of an email
to majordomo@vger.kernel.org.

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 python3-devel python3-setools 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 PREFIX=/usr/local install

This requires GNU coreutils (brew install coreutils).