platform_external_selinux/secilc
Nick Kralevich bb39dd1e81 Merge remote-tracking branch 'aosp/upstream-master' into mymerge
Changes included in this merge:

9872b04a libsepol: check decl_id bounds before using it
fb237459 libsepol: detect duplicated symbol IDs
a206297e mcstrans/utils: make "make all" use $DESTDIR
527380a1 libsepol/tests: use LDFLAGS when linking
1c187d79 checkpolicy: remove -lfl from LDLIBS
ab270850 libsepol,libsemanage: write file name in flex output
c034875c policycoreutils/sepolicy/gui: fix current selinux state radiobutton
cf8625be libsepol: do not #include <sys/cdefs.h>
dd8d5671 libselinux: avcstat: Clean up redundant condition
fff90bd2 libsepol: sepol_av_to_string: clear static buffer
7e09f584 libsepol,libselinux,audit2allow: teach audit2why about type bounds failures
041e0010 python/sepolicy/sepolicy/gui: Fix getting python lib path
86e568c2 python/semanage/semanage: Unify argument handling
3fe4499f libsepol/cil: Add ability to write policy.conf file from CIL AST
93e677d8 secilc: Add secil2conf which creates a policy.conf from CIL policy
9e81e611 libsepol: Fix neverallow checking to also check the other types when self is included in a target type set.
468a0dba seobject: Handle python error returns correctly

Test: Android compiles and the device boots
Change-Id: I3ceb4d0ff9ee96d6347d33e6351e4846a8f37038
2016-11-30 09:31:03 -08:00
..
docs selinux: Add support for portcon dccp protocol 2016-04-06 10:14:27 -04:00
test selinux: Add support for portcon dccp protocol 2016-04-06 10:14:27 -04:00
.gitignore secilc: Add secil2conf which creates a policy.conf from CIL policy 2016-11-30 10:18:19 -05:00
Android.mk Remove Android.mk files and only keep them in Android tree 2016-09-30 08:32:55 -04:00
COPYING libsepol: Move secilc out of libsepol 2015-03-31 12:31:38 -04:00
Makefile secilc: Add secil2conf which creates a policy.conf from CIL policy 2016-11-30 10:18:19 -05:00
README secilc: update dependency information and man page creation 2016-01-08 09:38:40 -05:00
secil2conf.8.xml secilc: Add secil2conf which creates a policy.conf from CIL policy 2016-11-30 10:18:19 -05:00
secil2conf.c secilc: Add secil2conf which creates a policy.conf from CIL policy 2016-11-30 10:18:19 -05:00
secilc.8.xml libsepol: Move secilc out of libsepol 2015-03-31 12:31:38 -04:00
secilc.c secilc: correct include path of cil.h for Android 2016-09-30 08:33:21 -04:00
VERSION Update VERSION and ChangeLog files for 2.6 final release. 2016-10-14 11:31:26 -04:00

SELinux Common Intermediate Language (CIL) Compiler

INTRODUCTION

	The SELinux CIL Compiler is a compiler that converts the CIL language as
	described on the CIL design wiki into a kernel binary policy file.
	Please see the CIL Design Wiki at:
	http://github.com/SELinuxProject/cil/wiki/
	for more information about the goals and features on the CIL language.

DEPENDENCIES

	gcc >= 4.5.1
	libsepol >= 2.5


BUILD STEPS

	Run "make" with one of the following targets:

	make
		Build the CIL compiler (secilc).

	make test
		Pass a sample policy to test with the compiler.

	make install
		Install the secilc compiler and man page to disk.

	make clean
		Remove temporary build files.

	make man
		Build the secilc man page.

	make bare
		Remove temporary build files and compile binaries.


USAGE

	Execute 'secilc' with any number of CIL files as arguments. A binary policy and
	file_contexts file will be created.

	Use the '--help' option for more details.


DOCUMENTATION

	There is a github markdown CIL Reference Guide in the docs directory. To
	view the table of contents, see README.md in the docs directory.

	To convert the github markdown content to HTML and PDF, change to the docs
	directory and run:
		make

	The documents will be located in the docs/html and docs/pdf directories.

	To build the html and pdf, the pandoc package is required.

KNOWN ISSUES

	- Blocks inside of macros causes undefined behavior

	- Policy must be well formed. For example, invalid usage of
	  sensitivities/categories/levels may create an unloaded binary

	- Recursive limits are not handled