On Sun, 2009-03-15 at 02:03 +0800, CAI Qian wrote:
> Hi,
>
> Version 3 fixes line wrapping problem and adds more comments.
>
> This late patch is to address Masatake YAMATO's concern for,
>
> <1> selinux.h is available, but libselinux is not.
> <2> libselinux is available, but selinux.h is not.
>
> Therefore, we only set HAVE_LIBSELINUX_DEVEL when all libraries and
> headers are available. The following situations have been tested.
>
> * no selinux.h and libselinux:
> $ ./configure
> ...
> checking selinux/selinux.h usability... no
> checking selinux/selinux.h presence... no
> checking for selinux/selinux.h... no
> ...
> $ cat include/config.h
> ...
> /* #undef HAVE_LIBSELINUX_DEVEL */
> ...
> $ cat config.mk
> ...
> SELINUX_LIBS =
> ...
>
> * only have libselinux:
> $ ./configure
> ...
> checking selinux/selinux.h usability... no
> checking selinux/selinux.h presence... no
> checking for selinux/selinux.h... no
> ...
> $ cat include/config.h
> ...
> /* #undef HAVE_LIBSELINUX_DEVEL */
> ...
> $ cat config.mk
> ...
> SELINUX_LIBS =
> ...
>
> * only have selinux.h
> $ ./configure
> ...
> checking selinux/selinux.h usability... yes
> checking selinux/selinux.h presence... yes
> checking for selinux/selinux.h... yes
> checking for is_selinux_enabled in -lselinux... no
> ...
> $ cat include/config.h
> ...
> /* #undef HAVE_LIBSELINUX_DEVEL */
> ...
> $ cat config.mk
> ...
> SELINUX_LIBS =
> ...
>
> * have both libselinux and selinux.h
> $ ./configure
> ...
> checking selinux/selinux.h usability... yes
> checking selinux/selinux.h presence... yes
> checking for selinux/selinux.h... yes
> checking for is_selinux_enabled in -lselinux... yes
> ...
> $ cat include/config.h
> ...
> #define HAVE_LIBSELINUX_DEVEL 1
> ...
> $ cat config.mk
> ...
> SELINUX_LIBS = -lselinux
> ...
>
> Signed-off-by: Masatake YAMATO <[email protected]>
> Signed-off-by: CAI Qian <[email protected]>
>
Thanks. Merged.
Regards--
Subrata
> --- m4/ltp-selinux.m4.orig 2009-02-16 13:44:04.000000000 +0800
> +++ m4/ltp-selinux.m4 2009-03-13 15:34:19.000000000 +0800
> @@ -22,8 +22,11 @@
> dnl
> AC_DEFUN([LTP_CHECK_SELINUX],
> [dnl
> +AH_TEMPLATE(HAVE_LIBSELINUX_DEVEL,
> +[Define to 1 if you have both SELinux libraries and headers.])
> AC_CHECK_HEADERS(selinux/selinux.h,[
> - SELINUX_LIBS="-lselinux"],[
> + AC_CHECK_LIB(selinux,is_selinux_enabled,[
> + AC_DEFINE(HAVE_LIBSELINUX_DEVEL) SELINUX_LIBS="-lselinux"],[
> + SELINUX_LIBS=""])],[
> SELINUX_LIBS=""])
> -AC_SUBST(SELINUX_LIBS)
> -])
> +AC_SUBST(SELINUX_LIBS)])
> --- testcases/kernel/fs/proc/proc01.c.orig 2009-03-13 13:55:33.000000000
> +0800
> +++ testcases/kernel/fs/proc/proc01.c 2009-03-15 01:56:21.000000000 +0800
> @@ -39,7 +39,7 @@
> #include <fcntl.h>
> #include <fnmatch.h>
>
> -#ifdef HAVE_SELINUX_SELINUX_H
> +#ifdef HAVE_LIBSELINUX_DEVEL
> #include <selinux/selinux.h>
> #endif
>
> @@ -105,15 +105,24 @@
> {"", "", 0}
> };
>
> -/* If a particular LSM is enabled, it is expected that some entries can
> - be read successfully. */
> -#ifdef HAVE_SELINUX_SELINUX_H
> +/*
> + * If a particular LSM is enabled, it is expected that some entries can
> + * be read successfully. Otherwise, those entries will retrun some
> + * failures listed above. Here to add any LSM specific entries.
> + */
> +
> +/*
> + * Test macro to indicate that SELinux libraries and headers are
> + * installed.
> + */
> +#ifdef HAVE_LIBSELINUX_DEVEL
> const char lsm_should_work[][PATH_MAX] =
> {
> "/proc/self/attr/*",
> "/proc/self/task/[0-9]*/attr/*",
> ""
> };
> +/* Place holder for none of LSM is detected. */
> #else
> const char lsm_should_work[][PATH_MAX] =
> {
> @@ -129,10 +138,13 @@
> ""
> };
>
> -/* Check if a particular LSM is enabled. */
> +/*
> + * Here to add any function to check if a particular LSM is enabled.
> + * Return non-zero if enabled, and zero otherwise.
> + */
> int is_lsm_enabled(void)
> {
> -#ifdef HAVE_SELINUX_SELINUX_H
> +#ifdef HAVE_LIBSELINUX_DEVEL
> return is_selinux_enabled();
> #else
> return 0;
>
> ------------------------------------------------------------------------------
> Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
> powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
> easily build your RIAs with Flex Builder, the Eclipse(TM)based development
> software that enables intelligent coding and step-through debugging.
> Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
> _______________________________________________
> Ltp-list mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ltp-list
------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list