Re: [PATCH] libsepol: Move secilc out of libsepol

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/26/2015 03:30 PM, Yuli Khodorkovskiy wrote:
> Since the secilc compiler is independent of libsepol, move secilc out of
> libsepol. Linke secilc dynamically rather than statically with libsepol.
> 
> - Move secilc source, test policies, docs, and secilc manpage to secilc
>   directory.
> - Remove unneeded Makefile from libsepol/cil. To build secilc, run make
>   in the secilc directory.
> - Add target to install the secilc binary to /usr/bin/.
> - Create an Android makefile for secilc and move secilc out of libsepol
>   Android makefile.
> - Add cil_set_mls to libsepol public API as it is needed by secilc.
> - Remove policy.conf from testing since it is no longer used.
> 
> Signed-off-by: Yuli Khodorkovskiy <ykhodorkovskiy@xxxxxxxxxx>

No longer builds with make DESTDIR=~/obj install:
cc -Wall -Wshadow -Wextra -Wundef -Wmissing-format-attribute
-Wcast-align -Wstrict-prototypes -Wpointer-arith -Wunused
-I/home/sds/obj/usr/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -o
secilc secilc.o -lsepol
secilc.o: In function `main':
secilc.c:(.text+0x564): undefined reference to `cil_set_log_level'
secilc.c:(.text+0x573): undefined reference to `cil_db_init'
secilc.c:(.text+0x587): undefined reference to `cil_set_disable_dontaudit'
secilc.c:(.text+0x59b): undefined reference to `cil_set_disable_neverallow'
secilc.c:(.text+0x5af): undefined reference to `cil_set_preserve_tunables'
secilc.c:(.text+0x5c9): undefined reference to `cil_set_handle_unknown'
secilc.c:(.text+0x5eb): undefined reference to `cil_set_mls'
secilc.c:(.text+0x5ff): undefined reference to `cil_set_target_platform'
secilc.c:(.text+0x613): undefined reference to `cil_set_policy_version'
secilc.c:(.text+0x7b8): undefined reference to `cil_add_file'
secilc.c:(.text+0x82f): undefined reference to `cil_compile'
secilc.c:(.text+0x86f): undefined reference to `cil_build_policydb'
secilc.c:(.text+0xa5f): undefined reference to `cil_filecons_to_string'
secilc.c:(.text+0xba2): undefined reference to `cil_db_destroy'
collect2: error: ld returned 1 exit status
make[1]: *** [secilc] Error 1
make[1]: Leaving directory `/home/sds/selinux/secilc'

> ---
>  Makefile                                           |   2 +-
>  libsepol/Android.mk                                |  15 ---
>  libsepol/cil/Makefile                              | 102 ---------------
>  libsepol/cil/test/policy.conf                      | 143 ---------------------
>  libsepol/src/libsepol.map.in                       |   1 +
>  secilc/.gitignore                                  |   6 +
>  secilc/Android.mk                                  |  31 +++++
>  {libsepol/cil => secilc}/COPYING                   |   0
>  secilc/Makefile                                    |  47 +++++++
>  {libsepol/cil => secilc}/README                    |  26 ++--
>  .../cil => secilc}/docs/CIL_Reference_Guide.xml    |   0
>  {libsepol/cil => secilc}/docs/Makefile             |  17 +--
>  .../docs/cil_access_vector_rules.xml               |   0
>  .../docs/cil_call_macro_statements.xml             |   0
>  .../docs/cil_class_and_permission_statements.xml   |   0
>  .../docs/cil_conditional_statements.xml            |   0
>  .../docs/cil_constraint_statements.xml             |   0
>  .../docs/cil_container_statements.xml              |   0
>  .../cil => secilc}/docs/cil_context_statement.xml  |   0
>  .../docs/cil_default_object_statements.xml         |   0
>  {libsepol/cil => secilc}/docs/cil_design.dia       | Bin
>  {libsepol/cil => secilc}/docs/cil_design.jpeg      | Bin
>  .../docs/cil_file_labeling_statements.xml          |   0
>  .../docs/cil_mls_labeling_statements.xml           |   0
>  .../docs/cil_network_labeling_statements.xml       |   0
>  .../docs/cil_policy_config_statements.xml          |   0
>  .../cil => secilc}/docs/cil_role_statements.xml    |   0
>  .../cil => secilc}/docs/cil_sid_statements.xml     |   0
>  .../cil => secilc}/docs/cil_type_statements.xml    |   0
>  .../cil => secilc}/docs/cil_user_statements.xml    |   0
>  .../cil => secilc}/docs/cil_xen_statements.xml     |   0
>  {libsepol/cil/docs => secilc}/secilc.8.xml         |   0
>  {libsepol/cil => secilc}/secilc.c                  |  36 +++---
>  {libsepol/cil => secilc}/test/block_test.cil       |   0
>  {libsepol/cil => secilc}/test/in_test.cil          |   0
>  {libsepol/cil => secilc}/test/integration.cil      |   0
>  {libsepol/cil => secilc}/test/minimum.cil          |   0
>  .../cil => secilc}/test/name_resolution_test.cil   |   0
>  {libsepol/cil => secilc}/test/optional_test.cil    |   0
>  {libsepol/cil => secilc}/test/policy.cil           |   0
>  40 files changed, 116 insertions(+), 310 deletions(-)
>  delete mode 100644 libsepol/cil/Makefile
>  delete mode 100644 libsepol/cil/test/policy.conf
>  create mode 100644 secilc/.gitignore
>  create mode 100644 secilc/Android.mk
>  rename {libsepol/cil => secilc}/COPYING (100%)
>  create mode 100644 secilc/Makefile
>  rename {libsepol/cil => secilc}/README (73%)
>  rename {libsepol/cil => secilc}/docs/CIL_Reference_Guide.xml (100%)
>  rename {libsepol/cil => secilc}/docs/Makefile (81%)
>  rename {libsepol/cil => secilc}/docs/cil_access_vector_rules.xml (100%)
>  rename {libsepol/cil => secilc}/docs/cil_call_macro_statements.xml (100%)
>  rename {libsepol/cil => secilc}/docs/cil_class_and_permission_statements.xml (100%)
>  rename {libsepol/cil => secilc}/docs/cil_conditional_statements.xml (100%)
>  rename {libsepol/cil => secilc}/docs/cil_constraint_statements.xml (100%)
>  rename {libsepol/cil => secilc}/docs/cil_container_statements.xml (100%)
>  rename {libsepol/cil => secilc}/docs/cil_context_statement.xml (100%)
>  rename {libsepol/cil => secilc}/docs/cil_default_object_statements.xml (100%)
>  rename {libsepol/cil => secilc}/docs/cil_design.dia (100%)
>  rename {libsepol/cil => secilc}/docs/cil_design.jpeg (100%)
>  rename {libsepol/cil => secilc}/docs/cil_file_labeling_statements.xml (100%)
>  rename {libsepol/cil => secilc}/docs/cil_mls_labeling_statements.xml (100%)
>  rename {libsepol/cil => secilc}/docs/cil_network_labeling_statements.xml (100%)
>  rename {libsepol/cil => secilc}/docs/cil_policy_config_statements.xml (100%)
>  rename {libsepol/cil => secilc}/docs/cil_role_statements.xml (100%)
>  rename {libsepol/cil => secilc}/docs/cil_sid_statements.xml (100%)
>  rename {libsepol/cil => secilc}/docs/cil_type_statements.xml (100%)
>  rename {libsepol/cil => secilc}/docs/cil_user_statements.xml (100%)
>  rename {libsepol/cil => secilc}/docs/cil_xen_statements.xml (100%)
>  rename {libsepol/cil/docs => secilc}/secilc.8.xml (100%)
>  rename {libsepol/cil => secilc}/secilc.c (90%)
>  rename {libsepol/cil => secilc}/test/block_test.cil (100%)
>  rename {libsepol/cil => secilc}/test/in_test.cil (100%)
>  rename {libsepol/cil => secilc}/test/integration.cil (100%)
>  rename {libsepol/cil => secilc}/test/minimum.cil (100%)
>  rename {libsepol/cil => secilc}/test/name_resolution_test.cil (100%)
>  rename {libsepol/cil => secilc}/test/optional_test.cil (100%)
>  rename {libsepol/cil => secilc}/test/policy.cil (100%)
> 
> diff --git a/Makefile b/Makefile
> index f71faab..93e10de 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1,4 +1,4 @@
> -SUBDIRS=libsepol libselinux libsemanage sepolgen checkpolicy policycoreutils # policy
> +SUBDIRS=libsepol libselinux libsemanage sepolgen checkpolicy secilc policycoreutils # policy
>  PYSUBDIRS=libselinux libsemanage
>  DISTCLEANSUBIDRS=libselinux libsemanage
>  
> diff --git a/libsepol/Android.mk b/libsepol/Android.mk
> index ab4bcd1..3e4700b 100644
> --- a/libsepol/Android.mk
> +++ b/libsepol/Android.mk
> @@ -135,18 +135,3 @@ LOCAL_SRC_FILES := $(common_src_files)
>  LOCAL_MODULE_CLASS := STATIC_LIBRARIES
>  
>  include $(BUILD_STATIC_LIBRARY)
> -
> -##
> -# secilc
> -#
> -include $(CLEAR_VARS)
> -
> -LOCAL_MODULE := secilc
> -LOCAL_MODULE_TAGS := optional
> -LOCAL_C_INCLUDES := $(common_includes)
> -LOCAL_CFLAGS := $(common_cflags)
> -LOCAL_SRC_FILES := cil/secilc.c
> -LOCAL_STATIC_LIBRARIES := libsepol
> -LOCAL_MODULE_CLASS := EXECUTABLES
> -
> -include $(BUILD_HOST_EXECUTABLE)
> diff --git a/libsepol/cil/Makefile b/libsepol/cil/Makefile
> deleted file mode 100644
> index 9f52ee4..0000000
> --- a/libsepol/cil/Makefile
> +++ /dev/null
> @@ -1,102 +0,0 @@
> -PREFIX ?= $(DESTDIR)/usr
> -LIBDIR ?= $(PREFIX)/lib
> -SHLIBDIR ?= $(DESTDIR)/lib
> -INCLUDEDIR ?= $(PREFIX)/include
> -SRCDIR ?= ./src
> -TESTDIR ?= ./test
> -UNITDIR ?= $(TESTDIR)/unit
> -LIBCILDIR ?= $(SRCDIR)
> -
> -LEX = flex
> -
> -DEBUG = 0
> -
> -SECILC = secilc
> -
> -UNIT = unit_tests
> -
> -SECILC_SRCS := secilc.c
> -SECILC_OBJS := $(patsubst %.c,%.o,$(SECILC_SRCS))
> -
> -TEST_SRCS := $(wildcard $(UNITDIR)/*.c)
> -TEST_OBJS := $(patsubst %.c,%.o,$(TEST_SRCS))
> -
> -LIBCIL_GENERATED := $(LIBCILDIR)/cil_lexer.c
> -LIBCIL_SRCS  := $(wildcard $(LIBCILDIR)/*.c) $(LIBCIL_GENERATED)
> -LIBCIL_OBJS := $(patsubst %.c,%.o,$(LIBCIL_SRCS))
> -LIBCIL_INCLUDES := $(wildcard $(LIBCILDIR)/*.h)
> -
> -LIBCIL_STATIC := $(SRCDIR)/libcil.a
> -
> -LIBSEPOL_STATIC = /usr/lib/libsepol.a
> -
> -LIBS =
> -LDFLAGS =
> -COVCFLAGS = -fprofile-arcs -ftest-coverage -O0
> -
> -CFLAGS ?= -Wall -Wshadow -Wextra -Wundef -Wmissing-format-attribute -Wcast-align -Wstrict-prototypes -Wpointer-arith -Wunused
> -
> -ifeq ($(DEBUG),1)
> -	override CFLAGS += -g3 -O0 -gdwarf-2 -fno-strict-aliasing -DDEBUG
> -	override LDFLAGS += -g
> -else
> -	override CFLAGS += -O2
> -endif
> -
> -override CFLAGS += -I./include -I$(INCLUDEDIR) -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
> -
> -ARCH := $(patsubst i%86,i386,$(shell uname -m))
> -ifneq (,$(filter i386,$(ARCH)))
> -	TLSFLAGS += -mno-tls-direct-seg-refs
> -endif
> -ifneq (,$(filter x86_64,$(ARCH)))
> -	override LDFLAGS += -I/usr/lib64
> -	override LIBSEPOL_STATIC = /usr/lib64/libsepol.a
> -endif
> -
> -all: $(SECILC)
> -
> -%.o: %.c $(LIBCIL_INCLUDES)
> -	$(CC) $(CFLAGS) -c -o $@ $<
> -
> -$(LIBCIL_STATIC): $(LIBCIL_OBJS)
> -	$(AR) rcs $@ $^
> -	ranlib $@
> -
> -$(LIBCIL_GENERATED): $(LIBCILDIR)/cil_lexer.l
> -	$(LEX) -t $< > $@
> -
> -$(UNIT): $(TEST_OBJS) $(LIBCIL_STATIC)
> -	$(CC) $(CFLAGS) -o $@ $^ $(LIBCIL_STATIC) $(LIBSEPOL_STATIC) $(LDFLAGS)
> -
> -$(SECILC): $(SECILC_OBJS) $(LIBCIL_STATIC)
> -	$(CC) $(CFLAGS) -o $@ $^ $(LIBCIL_STATIC) $(LIBSEPOL_STATIC) $(LDFLAGS)
> -
> -unit: $(SECILC) $(UNIT)
> -
> -# Requires lcov 1.9+ (--ignore-errors)
> -coverage: CFLAGS += $(COVCFLAGS)
> -coverage: clean unit
> -	./unit_tests
> -	test -d cov || mkdir cov
> -	lcov --directory src --capture --output-file cov/app.info --ignore-errors source -b src
> -	lcov --remove cov/app.info '/usr/include/*' --remove cov/app.info 'sepol/*' --output-file cov/app.info
> -	genhtml -o ./cov/html ./cov/app.info
> -
> -test: $(SECILC)
> -	./$(SECILC) test/policy.cil
> -
> -clean:
> -	rm -f $(SECILC)
> -	rm -f $(LIBCIL_STATIC)
> -	rm -f $(TEST_OBJS) $(SECILC_OBJS)
> -	rm -rf cov src/*.gcda src/*.gcno *.gcda *.gcno
> -	rm -f $(LIBCIL_OBJS)
> -
> -bare: clean
> -	rm -f $(LIBCIL_GENERATED)
> -	rm -f $(UNIT)
> -	rm -f policy.*
> -	rm -f file_contexts
> -
> -.PHONY: all bare clean coverage test unit
> diff --git a/libsepol/cil/test/policy.conf b/libsepol/cil/test/policy.conf
> deleted file mode 100644
> index 938af91..0000000
> --- a/libsepol/cil/test/policy.conf
> +++ /dev/null
> @@ -1,143 +0,0 @@
> -class file
> -class process
> -class char
> -
> -sid kernel
> -sid security
> -sid unlabeled
> -
> -common file {ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute swapon quotaon mounton }
> -
> -class file inherits file { execute_no_trans entrypoint execmod open audit_access }
> -class char inherits file { foo transition }
> -class process { open }
> -
> -sensitivity s0 alias sens0;
> -sensitivity s1;
> -
> -dominance { s0 s1 }
> -
> -category c0 alias cat0;
> -category c1;
> -category c2;
> -
> -level s0:c0.c2;
> -level s1:c0.c2;
> -
> -mlsconstrain file { open } (not (((l1 eq l2) and (u1 eq u2)) or (r1 eq r2)));
> -mlsconstrain file { open } (((l1 eq l2) and (u1 eq u2)) or (r1 != r2));
> -mlsconstrain file { open } (l1 dom h2);
> -mlsconstrain file { open } (h1 domby l2);
> -mlsconstrain file { open } (l1 incomp l2);
> -
> -mlsvalidatetrans file (h1 domby l2);
> -
> -attribute foo_type;
> -attribute bar_type;
> -attribute baz_type;
> -attribute exec_type;
> -
> -type bin_t, bar_type, exec_type;
> -type kernel_t, foo_type, exec_type, baz_type;
> -type security_t, baz_type;
> -type unlabeled_t, baz_type;
> -
> -type exec_t, baz_type;
> -type console_t, baz_type;
> -type auditadm_t, baz_type;
> -type console_device_t, baz_type;
> -type user_tty_device_t, baz_type;
> -type device_t, baz_type;
> -type getty_t, baz_type;
> -type a_t, baz_type;
> -type b_t, baz_type;
> -
> -typealias bin_t alias sbin_t;
> -
> -bool secure_mode false;
> -bool console_login true;
> -bool b1 false;
> -
> -role system_r;
> -role user_r;
> -role system_r types bin_t; 
> -role system_r types kernel_t; 
> -role system_r types security_t; 
> -role system_r types unlabeled_t; 
> -
> -policycap open_perms;
> -permissive device_t;
> -
> -range_transition device_t console_t : file s0:c0 - s1:c0.c1;
> -
> -type_transition device_t console_t : file console_device_t;
> -type_member device_t bin_t : file exec_t;
> -
> -if console_login{
> -	type_change auditadm_t console_device_t : file user_tty_device_t;
> -}
> -
> -role_transition system_r bin_t user_r;
> -
> -auditallow device_t auditadm_t: file { open };
> -dontaudit device_t auditadm_t: file { read };
> -
> -allow system_r user_r;
> -
> -allow console_t console_device_t: char { write setattr };
> -allow console_t console_device_t: file { open read getattr };
> -allow foo_type self: file { execute };
> -allow bin_t device_t: file { execute };
> -allow bin_t exec_t: file { execute };
> -allow bin_t bin_t: file { execute };
> -allow a_t b_t : file { write };
> -allow console_t console_device_t: file { read write getattr setattr lock append };
> -allow kernel_t kernel_t : file { execute };
> -
> -if b1 {
> -	allow a_t b_t : file { read };
> -}
> -
> -if secure_mode{
> -	auditallow device_t exec_t: file { read write };
> -}
> -
> -if console_login{
> -	allow getty_t console_device_t: file { getattr open read write append };
> -}
> -else {
> -	dontaudit getty_t console_device_t: file { getattr open read write append };
> -}
> -
> -if (not ((secure_mode eq console_login) xor ((secure_mode or console_login) and secure_mode))){
> -	allow bin_t exec_t: file { execute };
> -}
> -
> -user system_u roles system_r level s0:c0 range s0:c0 - s1:c0,c1; 
> -user user_u roles user_r level s0:c0 range s0:c0 - s0:c0;
> -
> -validatetrans file (t1 == exec_t);
> -
> -constrain char transition (not (((t1 eq exec_t) and (t2 eq bin_t)) or (r1 eq r2)));
> -constrain file { open } (r1 dom r2);
> -constrain file { open }	(r1 domby r2);
> -constrain file { open }	(r1 incomp r2);
> -constrain file { open read getattr } (not (((t1 eq exec_t) and (t2 eq bin_t)) or (r1 eq r2)));
> -constrain char { write setattr } (not (((t1 eq exec_t) and (t2 eq bin_t)) or (r1 eq r2)));
> -
> -
> -sid kernel system_u:system_r:kernel_t:s0:c0 - s1:c0,c1
> -sid security system_u:system_r:security_t:s0:c0 - s1:c0,c1
> -sid unlabeled system_u:system_r:unlabeled_t:s0:c0 - s1:c0,c1
> -
> -fs_use_xattr ext3 system_u:system_r:bin_t:s0:c0 - s1:c0,c1;
> -
> -genfscon proc /usr/bin system_u:system_r:bin_t:s0:c0 - s1:c0,c1
> -
> -portcon tcp 22 system_u:system_r:bin_t:s0:c0 - s1:c0,c1
> -portcon udp 25 system_u:system_r:bin_t:s0:c0 - s1:c0,c1
> -
> -netifcon eth0 system_u:system_r:bin_t:s0:c0 - s1:c0,c1 system_u:system_r:bin_t:s0:c0 - s1:c0,c1
> -
> -nodecon 192.25.35.200 192.168.1.1 system_u:system_r:bin_t:s0:c0 - s1:c0,c1
> -nodecon 2001:db8:ac10:fe01:: 2001:de0:da88:2222:: system_u:system_r:bin_t:s0:c0 - s1:c0,c1
> diff --git a/libsepol/src/libsepol.map.in b/libsepol/src/libsepol.map.in
> index 1285314..0ae0f1a 100644
> --- a/libsepol/src/libsepol.map.in
> +++ b/libsepol/src/libsepol.map.in
> @@ -44,5 +44,6 @@ LIBSEPOL_1.1 {
>  	cil_filecons_to_string;
>  	cil_set_target_platform;
>  	cil_set_policy_version;
> +	cil_set_mls;
>    local: *;
>  } LIBSEPOL_1.0;
> diff --git a/secilc/.gitignore b/secilc/.gitignore
> new file mode 100644
> index 0000000..98c367a
> --- /dev/null
> +++ b/secilc/.gitignore
> @@ -0,0 +1,6 @@
> +secilc
> +secilc.8
> +policy.*
> +file_contexts
> +docs/html
> +docs/pdf
> diff --git a/secilc/Android.mk b/secilc/Android.mk
> new file mode 100644
> index 0000000..b80955c
> --- /dev/null
> +++ b/secilc/Android.mk
> @@ -0,0 +1,31 @@
> +LOCAL_PATH:= $(call my-dir)
> +
> +common_src_files := secilc.c
> +
> +common_cflags := \
> +	-Wall -Wshadow -O2 \
> +	-pipe -fno-strict-aliasing \
> +	-Wno-return-type
> +
> +ifeq ($(HOST_OS), darwin)
> +common_cflags += -DDARWIN
> +endif
> +
> +common_includes := \
> +	$(LOCAL_PATH)/../libsepol/cil/include/ \
> +	$(LOCAL_PATH)/../libsepol/include/ \
> +
> +##
> +# secilc
> +#
> +include $(CLEAR_VARS)
> +
> +LOCAL_MODULE := secilc
> +LOCAL_MODULE_TAGS := optional
> +LOCAL_C_INCLUDES := $(common_includes)
> +LOCAL_CFLAGS := $(common_cflags)
> +LOCAL_SRC_FILES := ./secilc.c
> +LOCAL_SHARED_LIRARIES := libsepol
> +LOCAL_MODULE_CLASS := EXECUTABLES
> +
> +include $(BUILD_HOST_EXECUTABLE)
> diff --git a/libsepol/cil/COPYING b/secilc/COPYING
> similarity index 100%
> rename from libsepol/cil/COPYING
> rename to secilc/COPYING
> diff --git a/secilc/Makefile b/secilc/Makefile
> new file mode 100644
> index 0000000..d6767fa
> --- /dev/null
> +++ b/secilc/Makefile
> @@ -0,0 +1,47 @@
> +PREFIX ?= $(DESTDIR)/usr
> +BINDIR ?= $(PREFIX)/bin
> +MANDIR ?= $(PREFIX)/share/man
> +INCLUDEDIR ?= $(PREFIX)/include
> +TESTDIR ?= ./test
> +
> +LDFLAGS = -lsepol
> +SECILC = secilc
> +SECILC_SRCS := secilc.c
> +SECILC_OBJS := $(patsubst %.c,%.o,$(SECILC_SRCS))
> +
> +# The secilc man page:
> +MANPAGE = secilc.8
> +XMLTO = $(shell which xmlto 2> /dev/null | grep / | head -n1)
> +
> +CFLAGS ?= -Wall -Wshadow -Wextra -Wundef -Wmissing-format-attribute -Wcast-align -Wstrict-prototypes -Wpointer-arith -Wunused
> +
> +override CFLAGS += -I$(INCLUDEDIR) -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
> +
> +$(SECILC): $(SECILC_OBJS)
> +	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
> +
> +all: $(SECILC) man
> +
> +test: $(SECILC)
> +	./$(SECILC) test/policy.cil
> +
> +man: $(MANPAGE).xml
> +	$(XMLTO) man $(MANPAGE).xml
> +
> +install: all man
> +	-mkdir -p $(BINDIR)
> +	-mkdir -p $(MANDIR)/man8
> +	install -m 755 $(SECILC) $(BINDIR)
> +	install -m 644 $(MANPAGE) $(MANDIR)/man8
> +
> +doc:
> +	$(MAKE) -C docs
> +
> +clean:
> +	rm -f $(SECILC)
> +	rm -f $(SECILC_OBJS)
> +	rm -f policy.*
> +	rm -f file_contexts
> +	rm -f $(MANPAGE)
> +
> +.PHONY: all clean test install doc
> diff --git a/libsepol/cil/README b/secilc/README
> similarity index 73%
> rename from libsepol/cil/README
> rename to secilc/README
> index e25f849..14b8cc8 100644
> --- a/libsepol/cil/README
> +++ b/secilc/README
> @@ -11,34 +11,30 @@ INTRODUCTION
>  DEPENDENCIES
>  
>  	gcc >= 4.5.1
> -	libsepol-static >= 2.1.4
> -	lcov >= 1.9
> -	flex >= 2.5.35
> +	libsepol >= 2.4
>  
>  
>  BUILD STEPS
>  
> -	Open a terminal client and execute the following command to download the source code:
> -
> -			git clone https://github.com/SELinuxProject/cil.git
> -
> -	Change directory into the "cil" directory.
>  	Run "make" with one of the following targets:
>  
>  	make
> -		Build the CIL compiler (secilc)
> +		Build the CIL compiler (secilc).
>  
> -	make unit
> -		Build the unit_test application to run unit tests
> +	make test
> +		Pass a sample policy to test with the compiler.
>  
> -	make coverage
> -		Build the unit test binary and create coverage reports
> +	make install
> +		Install the secilc compiler and man page to disk.
>  
>  	make clean
> -		Remove temporary build files
> +		Remove temporary build files.
> +
> +	make man
> +		Build the secilc man page.
>  
>  	make bare
> -		Remove temporary build files and compile binaries
> +		Remove temporary build files and compile binaries.
>  
>  
>  USAGE
> diff --git a/libsepol/cil/docs/CIL_Reference_Guide.xml b/secilc/docs/CIL_Reference_Guide.xml
> similarity index 100%
> rename from libsepol/cil/docs/CIL_Reference_Guide.xml
> rename to secilc/docs/CIL_Reference_Guide.xml
> diff --git a/libsepol/cil/docs/Makefile b/secilc/docs/Makefile
> similarity index 81%
> rename from libsepol/cil/docs/Makefile
> rename to secilc/docs/Makefile
> index cf18e36..1655f59 100644
> --- a/libsepol/cil/docs/Makefile
> +++ b/secilc/docs/Makefile
> @@ -1,6 +1,5 @@
>  HTMLDIR ?= ./html
>  PDFDIR ?= ./pdf
> -MAN8DIR ?= ./man8
>  
>  # The CIL Reference Guide first part
>  CIL_REF_GUIDE = CIL_Reference_Guide.xml
> @@ -9,10 +8,6 @@ FILE_LIST ?= $(CIL_REF_GUIDE) $(wildcard cil*.xml)
>  # xmlto generates a *.proc file that can be removed.
>  PROC_FILE = CIL_Reference_Guide.proc
>  
> -# The secilc man page:
> -MANPAGE = secilc.8.xml
> -
> -
>  # look for xmlto and dblatex packages
>  XMLTO = $(shell which xmlto 2> /dev/null | grep / | head -n1)
>  DBLATEX = $(shell which dblatex 2> /dev/null | grep / | head -n1)
> @@ -22,7 +17,7 @@ ifeq ($(XMLTO),)
>  $(error xmlto package not found - install package.)
>  endif
>  
> -all: html pdf man
> +all: html pdf
>  
>  html: $(FILE_LIST)
>  	$(XMLTO) html $(CIL_REF_GUIDE)
> @@ -41,10 +36,6 @@ endif
>  	@for m in *.pdf; do if [ -f $$m ]; then mv $$m $(PDFDIR); fi; done
>  	@rm -f $(PROC_FILE)
>  
> -
> -man: $(MANPAGE)
> -	$(XMLTO) man $(MANPAGE)
> -	@mkdir -p $(MAN8DIR)
> -	@for m in *.8; do if [ -f $$m ]; then mv $$m $(MAN8DIR); fi; done
> -	@rm -f $(MANPAGE).proc
> -
> +clean:
> +	@rm -rf html/
> +	@rm -rf pdf/
> diff --git a/libsepol/cil/docs/cil_access_vector_rules.xml b/secilc/docs/cil_access_vector_rules.xml
> similarity index 100%
> rename from libsepol/cil/docs/cil_access_vector_rules.xml
> rename to secilc/docs/cil_access_vector_rules.xml
> diff --git a/libsepol/cil/docs/cil_call_macro_statements.xml b/secilc/docs/cil_call_macro_statements.xml
> similarity index 100%
> rename from libsepol/cil/docs/cil_call_macro_statements.xml
> rename to secilc/docs/cil_call_macro_statements.xml
> diff --git a/libsepol/cil/docs/cil_class_and_permission_statements.xml b/secilc/docs/cil_class_and_permission_statements.xml
> similarity index 100%
> rename from libsepol/cil/docs/cil_class_and_permission_statements.xml
> rename to secilc/docs/cil_class_and_permission_statements.xml
> diff --git a/libsepol/cil/docs/cil_conditional_statements.xml b/secilc/docs/cil_conditional_statements.xml
> similarity index 100%
> rename from libsepol/cil/docs/cil_conditional_statements.xml
> rename to secilc/docs/cil_conditional_statements.xml
> diff --git a/libsepol/cil/docs/cil_constraint_statements.xml b/secilc/docs/cil_constraint_statements.xml
> similarity index 100%
> rename from libsepol/cil/docs/cil_constraint_statements.xml
> rename to secilc/docs/cil_constraint_statements.xml
> diff --git a/libsepol/cil/docs/cil_container_statements.xml b/secilc/docs/cil_container_statements.xml
> similarity index 100%
> rename from libsepol/cil/docs/cil_container_statements.xml
> rename to secilc/docs/cil_container_statements.xml
> diff --git a/libsepol/cil/docs/cil_context_statement.xml b/secilc/docs/cil_context_statement.xml
> similarity index 100%
> rename from libsepol/cil/docs/cil_context_statement.xml
> rename to secilc/docs/cil_context_statement.xml
> diff --git a/libsepol/cil/docs/cil_default_object_statements.xml b/secilc/docs/cil_default_object_statements.xml
> similarity index 100%
> rename from libsepol/cil/docs/cil_default_object_statements.xml
> rename to secilc/docs/cil_default_object_statements.xml
> diff --git a/libsepol/cil/docs/cil_design.dia b/secilc/docs/cil_design.dia
> similarity index 100%
> rename from libsepol/cil/docs/cil_design.dia
> rename to secilc/docs/cil_design.dia
> diff --git a/libsepol/cil/docs/cil_design.jpeg b/secilc/docs/cil_design.jpeg
> similarity index 100%
> rename from libsepol/cil/docs/cil_design.jpeg
> rename to secilc/docs/cil_design.jpeg
> diff --git a/libsepol/cil/docs/cil_file_labeling_statements.xml b/secilc/docs/cil_file_labeling_statements.xml
> similarity index 100%
> rename from libsepol/cil/docs/cil_file_labeling_statements.xml
> rename to secilc/docs/cil_file_labeling_statements.xml
> diff --git a/libsepol/cil/docs/cil_mls_labeling_statements.xml b/secilc/docs/cil_mls_labeling_statements.xml
> similarity index 100%
> rename from libsepol/cil/docs/cil_mls_labeling_statements.xml
> rename to secilc/docs/cil_mls_labeling_statements.xml
> diff --git a/libsepol/cil/docs/cil_network_labeling_statements.xml b/secilc/docs/cil_network_labeling_statements.xml
> similarity index 100%
> rename from libsepol/cil/docs/cil_network_labeling_statements.xml
> rename to secilc/docs/cil_network_labeling_statements.xml
> diff --git a/libsepol/cil/docs/cil_policy_config_statements.xml b/secilc/docs/cil_policy_config_statements.xml
> similarity index 100%
> rename from libsepol/cil/docs/cil_policy_config_statements.xml
> rename to secilc/docs/cil_policy_config_statements.xml
> diff --git a/libsepol/cil/docs/cil_role_statements.xml b/secilc/docs/cil_role_statements.xml
> similarity index 100%
> rename from libsepol/cil/docs/cil_role_statements.xml
> rename to secilc/docs/cil_role_statements.xml
> diff --git a/libsepol/cil/docs/cil_sid_statements.xml b/secilc/docs/cil_sid_statements.xml
> similarity index 100%
> rename from libsepol/cil/docs/cil_sid_statements.xml
> rename to secilc/docs/cil_sid_statements.xml
> diff --git a/libsepol/cil/docs/cil_type_statements.xml b/secilc/docs/cil_type_statements.xml
> similarity index 100%
> rename from libsepol/cil/docs/cil_type_statements.xml
> rename to secilc/docs/cil_type_statements.xml
> diff --git a/libsepol/cil/docs/cil_user_statements.xml b/secilc/docs/cil_user_statements.xml
> similarity index 100%
> rename from libsepol/cil/docs/cil_user_statements.xml
> rename to secilc/docs/cil_user_statements.xml
> diff --git a/libsepol/cil/docs/cil_xen_statements.xml b/secilc/docs/cil_xen_statements.xml
> similarity index 100%
> rename from libsepol/cil/docs/cil_xen_statements.xml
> rename to secilc/docs/cil_xen_statements.xml
> diff --git a/libsepol/cil/docs/secilc.8.xml b/secilc/secilc.8.xml
> similarity index 100%
> rename from libsepol/cil/docs/secilc.8.xml
> rename to secilc/secilc.8.xml
> diff --git a/libsepol/cil/secilc.c b/secilc/secilc.c
> similarity index 90%
> rename from libsepol/cil/secilc.c
> rename to secilc/secilc.c
> index f4e32b3..923151c 100644
> --- a/libsepol/cil/secilc.c
> +++ b/secilc/secilc.c
> @@ -34,7 +34,7 @@
>  #include <getopt.h>
>  #include <sys/stat.h>
>  
> -#include <cil/cil.h>
> +#include <sepol/cil/cil.h>
>  #include <sepol/policydb.h>
>  
>  void usage(char *prog)
> @@ -210,13 +210,13 @@ int main(int argc, char *argv[])
>  	for (i = optind; i < argc; i++) {
>  		file = fopen(argv[i], "r");
>  		if (!file) {
> -			cil_log(CIL_ERR, "Could not open file: %s\n", argv[i]);
> +			fprintf(stderr, "Could not open file: %s\n", argv[i]);
>  			rc = SEPOL_ERR;
>  			goto exit;
>  		}
>  		rc = stat(argv[i], &filedata);
>  		if (rc == -1) {
> -			cil_log(CIL_ERR, "Could not stat file: %s\n", argv[i]);
> +			fprintf(stderr, "Could not stat file: %s\n", argv[i]);
>  			goto exit;
>  		}
>  		file_size = filedata.st_size;	
> @@ -224,7 +224,7 @@ int main(int argc, char *argv[])
>  		buffer = malloc(file_size);
>  		rc = fread(buffer, file_size, 1, file);
>  		if (rc != 1) {
> -			cil_log(CIL_ERR, "Failure reading file: %s\n", argv[i]);
> +			fprintf(stderr, "Failure reading file: %s\n", argv[i]);
>  			goto exit;
>  		}
>  		fclose(file);
> @@ -232,7 +232,7 @@ int main(int argc, char *argv[])
>  
>  		rc = cil_add_file(db, argv[i], buffer, file_size);
>  		if (rc != SEPOL_OK) {
> -			cil_log(CIL_ERR, "Failure adding %s\n", argv[i]);
> +			fprintf(stderr, "Failure adding %s\n", argv[i]);
>  			goto exit;
>  		}
>  
> @@ -242,13 +242,13 @@ int main(int argc, char *argv[])
>  
>  	rc = cil_compile(db);
>  	if (rc != SEPOL_OK) {
> -		cil_log(CIL_ERR, "Failed to compile cildb: %d\n", rc);
> +		fprintf(stderr, "Failed to compile cildb: %d\n", rc);
>  		goto exit;
>  	}
>  
>  	rc = cil_build_policydb(db, &pdb);
>  	if (rc != SEPOL_OK) {
> -		cil_log(CIL_ERR, "Failed to build policydb\n");
> +		fprintf(stderr, "Failed to build policydb\n");
>  		goto exit;
>  	}
>  
> @@ -256,29 +256,27 @@ int main(int argc, char *argv[])
>  		int size = snprintf(NULL, 0, "policy.%d", policyvers);
>  		output = malloc((size + 1) * sizeof(char));
>  		if (output == NULL) {
> -			cil_log(CIL_ERR, "Failed to create output filename\n");
> +			fprintf(stderr, "Failed to create output filename\n");
>  			rc = SEPOL_ERR;
>  			goto exit;
>  		}
>  		if (snprintf(output, size + 1, "policy.%d", policyvers) != size) {
> -			cil_log(CIL_ERR, "Failed to create output filename\n");
> +			fprintf(stderr, "Failed to create output filename\n");
>  			rc = SEPOL_ERR;
>  			goto exit;
>  		}
>  	}
>  
> -	cil_log(CIL_INFO, "Writing binary to %s\n", output);
> -
>  	binary = fopen(output, "w");
>  	if (binary == NULL) {
> -		cil_log(CIL_ERR, "Failure opening binary file for writing\n");
> +		fprintf(stderr, "Failure opening binary file for writing\n");
>  		rc = SEPOL_ERR;
>  		goto exit;
>  	}
>  
>  	rc = sepol_policy_file_create(&pf);
>  	if (rc != 0) {
> -		cil_log(CIL_ERR, "Failed to create policy file: %d\n", rc);
> +		fprintf(stderr, "Failed to create policy file: %d\n", rc);
>  		goto exit;
>  	}
>  
> @@ -286,18 +284,16 @@ int main(int argc, char *argv[])
>  
>  	rc = sepol_policydb_write(pdb, pf);
>  	if (rc != 0) {
> -		cil_log(CIL_ERR, "Failed to write binary policy: %d\n", rc);
> +		fprintf(stderr, "Failed to write binary policy: %d\n", rc);
>  		goto exit;
>  	}
>  
>  	fclose(binary);
>  	binary = NULL;
>  
> -	cil_log(CIL_INFO, "Writing file contexts\n");
> -	
>  	rc = cil_filecons_to_string(db, &fc_buf, &fc_size);
>  	if (rc != SEPOL_OK) {
> -		cil_log(CIL_ERR, "Failed to get file context data\n");
> +		fprintf(stderr, "Failed to get file context data\n");
>  		goto exit;
>  	}
>  
> @@ -308,12 +304,12 @@ int main(int argc, char *argv[])
>  	}
>  
>  	if (file_contexts == NULL) {
> -		cil_log(CIL_ERR, "Failed to open file_contexts file\n");
> +		fprintf(stderr, "Failed to open file_contexts file\n");
>  		goto exit;
>  	}
>  	
>  	if (fwrite(fc_buf, sizeof(char), fc_size, file_contexts) != fc_size) {
> -		cil_log(CIL_ERR, "Failed to write file_contexts file\n");
> +		fprintf(stderr, "Failed to write file_contexts file\n");
>  		goto exit;
>  	}
>  
> @@ -323,8 +319,6 @@ int main(int argc, char *argv[])
>  	rc = SEPOL_OK;
>  
>  exit:
> -	cil_log(CIL_INFO,"Exiting\n");
> -
>  	if (binary != NULL) {
>  		fclose(binary);
>  	}
> diff --git a/libsepol/cil/test/block_test.cil b/secilc/test/block_test.cil
> similarity index 100%
> rename from libsepol/cil/test/block_test.cil
> rename to secilc/test/block_test.cil
> diff --git a/libsepol/cil/test/in_test.cil b/secilc/test/in_test.cil
> similarity index 100%
> rename from libsepol/cil/test/in_test.cil
> rename to secilc/test/in_test.cil
> diff --git a/libsepol/cil/test/integration.cil b/secilc/test/integration.cil
> similarity index 100%
> rename from libsepol/cil/test/integration.cil
> rename to secilc/test/integration.cil
> diff --git a/libsepol/cil/test/minimum.cil b/secilc/test/minimum.cil
> similarity index 100%
> rename from libsepol/cil/test/minimum.cil
> rename to secilc/test/minimum.cil
> diff --git a/libsepol/cil/test/name_resolution_test.cil b/secilc/test/name_resolution_test.cil
> similarity index 100%
> rename from libsepol/cil/test/name_resolution_test.cil
> rename to secilc/test/name_resolution_test.cil
> diff --git a/libsepol/cil/test/optional_test.cil b/secilc/test/optional_test.cil
> similarity index 100%
> rename from libsepol/cil/test/optional_test.cil
> rename to secilc/test/optional_test.cil
> diff --git a/libsepol/cil/test/policy.cil b/secilc/test/policy.cil
> similarity index 100%
> rename from libsepol/cil/test/policy.cil
> rename to secilc/test/policy.cil
> 

_______________________________________________
Selinux mailing list
Selinux@xxxxxxxxxxxxx
To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx.
To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx.




[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux