Karsten Hopp e287a3
To: vim_dev@googlegroups.com
Karsten Hopp e287a3
Subject: Patch 7.4.238
Karsten Hopp e287a3
Fcc: outbox
Karsten Hopp e287a3
From: Bram Moolenaar <Bram@moolenaar.net>
Karsten Hopp e287a3
Mime-Version: 1.0
Karsten Hopp e287a3
Content-Type: text/plain; charset=UTF-8
Karsten Hopp e287a3
Content-Transfer-Encoding: 8bit
Karsten Hopp e287a3
------------
Karsten Hopp e287a3
Karsten Hopp e287a3
Patch 7.4.238
Karsten Hopp e287a3
Problem:    Vim does not support the smack library.
Karsten Hopp e287a3
Solution:   Add smack support (Jose Bollo)
Karsten Hopp e287a3
Files:	    src/config.h.in, src/configure.in, src/fileio.c, src/memfile.c,
Karsten Hopp e287a3
	    src/os_unix.c, src/undo.c, src/auto/configure
Karsten Hopp e287a3
Karsten Hopp e287a3
Karsten Hopp e287a3
*** ../vim-7.4.237/src/config.h.in	2014-02-23 22:52:33.364764715 +0100
Karsten Hopp e287a3
--- src/config.h.in	2014-04-02 13:37:41.095910851 +0200
Karsten Hopp e287a3
***************
Karsten Hopp e287a3
*** 191,196 ****
Karsten Hopp e287a3
--- 191,197 ----
Karsten Hopp e287a3
  #undef HAVE_SIGSETJMP
Karsten Hopp e287a3
  #undef HAVE_SIGSTACK
Karsten Hopp e287a3
  #undef HAVE_SIGVEC
Karsten Hopp e287a3
+ #undef HAVE_SMACK
Karsten Hopp e287a3
  #undef HAVE_STRCASECMP
Karsten Hopp e287a3
  #undef HAVE_STRERROR
Karsten Hopp e287a3
  #undef HAVE_STRFTIME
Karsten Hopp e287a3
*** ../vim-7.4.237/src/configure.in	2014-03-27 18:51:06.604760919 +0100
Karsten Hopp e287a3
--- src/configure.in	2014-04-02 13:49:36.955901004 +0200
Karsten Hopp e287a3
***************
Karsten Hopp e287a3
*** 387,406 ****
Karsten Hopp e287a3
  AC_SUBST(QUOTESED)
Karsten Hopp e287a3
  
Karsten Hopp e287a3
  
Karsten Hopp e287a3
! dnl Link with -lselinux for SELinux stuff; if not found
Karsten Hopp e287a3
! AC_MSG_CHECKING(--disable-selinux argument)
Karsten Hopp e287a3
! AC_ARG_ENABLE(selinux,
Karsten Hopp e287a3
! 	[  --disable-selinux	  Don't check for SELinux support.],
Karsten Hopp e287a3
! 	, enable_selinux="yes")
Karsten Hopp e287a3
! if test "$enable_selinux" = "yes"; then
Karsten Hopp e287a3
    AC_MSG_RESULT(no)
Karsten Hopp e287a3
!   AC_CHECK_LIB(selinux, is_selinux_enabled,
Karsten Hopp e287a3
! 	  [LIBS="$LIBS -lselinux"
Karsten Hopp e287a3
! 	   AC_DEFINE(HAVE_SELINUX)])
Karsten Hopp e287a3
  else
Karsten Hopp e287a3
     AC_MSG_RESULT(yes)
Karsten Hopp e287a3
  fi
Karsten Hopp e287a3
  
Karsten Hopp e287a3
  dnl Check user requested features.
Karsten Hopp e287a3
  
Karsten Hopp e287a3
  AC_MSG_CHECKING(--with-features argument)
Karsten Hopp e287a3
--- 387,427 ----
Karsten Hopp e287a3
  AC_SUBST(QUOTESED)
Karsten Hopp e287a3
  
Karsten Hopp e287a3
  
Karsten Hopp e287a3
! dnl Link with -lsmack for Smack stuff; if not found
Karsten Hopp e287a3
! AC_MSG_CHECKING(--disable-smack argument)
Karsten Hopp e287a3
! AC_ARG_ENABLE(smack,
Karsten Hopp e287a3
! 	[  --disable-smack	  Do not check for Smack support.],
Karsten Hopp e287a3
! 	, enable_smack="yes")
Karsten Hopp e287a3
! if test "$enable_smack" = "yes"; then
Karsten Hopp e287a3
!   AC_CHECK_HEADER([linux/xattr.h], true, enable_smack="no")
Karsten Hopp e287a3
! fi
Karsten Hopp e287a3
! if test "$enable_smack" = "yes"; then
Karsten Hopp e287a3
    AC_MSG_RESULT(no)
Karsten Hopp e287a3
!   AC_CHECK_LIB(attr, llistxattr,
Karsten Hopp e287a3
! 	  [LIBS="$LIBS -lattr"
Karsten Hopp e287a3
! 	   found_smack="yes"
Karsten Hopp e287a3
! 	   AC_DEFINE(HAVE_SMACK)])
Karsten Hopp e287a3
  else
Karsten Hopp e287a3
     AC_MSG_RESULT(yes)
Karsten Hopp e287a3
  fi
Karsten Hopp e287a3
  
Karsten Hopp e287a3
+ dnl When smack was found don't search for SELinux
Karsten Hopp e287a3
+ if test "x$found_smack" = "x"; then
Karsten Hopp e287a3
+   dnl Link with -lselinux for SELinux stuff; if not found
Karsten Hopp e287a3
+   AC_MSG_CHECKING(--disable-selinux argument)
Karsten Hopp e287a3
+   AC_ARG_ENABLE(selinux,
Karsten Hopp e287a3
+ 	  [  --disable-selinux	  Do not check for SELinux support.],
Karsten Hopp e287a3
+ 	  , enable_selinux="yes")
Karsten Hopp e287a3
+   if test "$enable_selinux" = "yes"; then
Karsten Hopp e287a3
+     AC_MSG_RESULT(no)
Karsten Hopp e287a3
+     AC_CHECK_LIB(selinux, is_selinux_enabled,
Karsten Hopp e287a3
+ 	    [LIBS="$LIBS -lselinux"
Karsten Hopp e287a3
+ 	     AC_DEFINE(HAVE_SELINUX)])
Karsten Hopp e287a3
+   else
Karsten Hopp e287a3
+      AC_MSG_RESULT(yes)
Karsten Hopp e287a3
+   fi
Karsten Hopp e287a3
+ fi
Karsten Hopp e287a3
+ 
Karsten Hopp e287a3
  dnl Check user requested features.
Karsten Hopp e287a3
  
Karsten Hopp e287a3
  AC_MSG_CHECKING(--with-features argument)
Karsten Hopp e287a3
*** ../vim-7.4.237/src/fileio.c	2014-03-12 16:51:35.056792541 +0100
Karsten Hopp e287a3
--- src/fileio.c	2014-04-02 13:39:28.983909367 +0200
Karsten Hopp e287a3
***************
Karsten Hopp e287a3
*** 4030,4036 ****
Karsten Hopp e287a3
  						)
Karsten Hopp e287a3
  			    mch_setperm(backup,
Karsten Hopp e287a3
  					  (perm & 0707) | ((perm & 07) << 3));
Karsten Hopp e287a3
! # ifdef HAVE_SELINUX
Karsten Hopp e287a3
  			mch_copy_sec(fname, backup);
Karsten Hopp e287a3
  # endif
Karsten Hopp e287a3
  #endif
Karsten Hopp e287a3
--- 4030,4036 ----
Karsten Hopp e287a3
  						)
Karsten Hopp e287a3
  			    mch_setperm(backup,
Karsten Hopp e287a3
  					  (perm & 0707) | ((perm & 07) << 3));
Karsten Hopp e287a3
! # if defined(HAVE_SELINUX) || defined(HAVE_SMACK)
Karsten Hopp e287a3
  			mch_copy_sec(fname, backup);
Karsten Hopp e287a3
  # endif
Karsten Hopp e287a3
  #endif
Karsten Hopp e287a3
***************
Karsten Hopp e287a3
*** 4069,4075 ****
Karsten Hopp e287a3
  #ifdef HAVE_ACL
Karsten Hopp e287a3
  			mch_set_acl(backup, acl);
Karsten Hopp e287a3
  #endif
Karsten Hopp e287a3
! #ifdef HAVE_SELINUX
Karsten Hopp e287a3
  			mch_copy_sec(fname, backup);
Karsten Hopp e287a3
  #endif
Karsten Hopp e287a3
  			break;
Karsten Hopp e287a3
--- 4069,4075 ----
Karsten Hopp e287a3
  #ifdef HAVE_ACL
Karsten Hopp e287a3
  			mch_set_acl(backup, acl);
Karsten Hopp e287a3
  #endif
Karsten Hopp e287a3
! #if defined(HAVE_SELINUX) || defined(HAVE_SMACK)
Karsten Hopp e287a3
  			mch_copy_sec(fname, backup);
Karsten Hopp e287a3
  #endif
Karsten Hopp e287a3
  			break;
Karsten Hopp e287a3
***************
Karsten Hopp e287a3
*** 4718,4724 ****
Karsten Hopp e287a3
      }
Karsten Hopp e287a3
  #endif
Karsten Hopp e287a3
  
Karsten Hopp e287a3
! #ifdef HAVE_SELINUX
Karsten Hopp e287a3
      /* Probably need to set the security context. */
Karsten Hopp e287a3
      if (!backup_copy)
Karsten Hopp e287a3
  	mch_copy_sec(backup, wfname);
Karsten Hopp e287a3
--- 4718,4724 ----
Karsten Hopp e287a3
      }
Karsten Hopp e287a3
  #endif
Karsten Hopp e287a3
  
Karsten Hopp e287a3
! #if defined(HAVE_SELINUX) || defined(HAVE_SMACK)
Karsten Hopp e287a3
      /* Probably need to set the security context. */
Karsten Hopp e287a3
      if (!backup_copy)
Karsten Hopp e287a3
  	mch_copy_sec(backup, wfname);
Karsten Hopp e287a3
***************
Karsten Hopp e287a3
*** 6707,6713 ****
Karsten Hopp e287a3
      mch_set_acl(to, acl);
Karsten Hopp e287a3
      mch_free_acl(acl);
Karsten Hopp e287a3
  #endif
Karsten Hopp e287a3
! #ifdef HAVE_SELINUX
Karsten Hopp e287a3
      mch_copy_sec(from, to);
Karsten Hopp e287a3
  #endif
Karsten Hopp e287a3
      if (errmsg != NULL)
Karsten Hopp e287a3
--- 6707,6713 ----
Karsten Hopp e287a3
      mch_set_acl(to, acl);
Karsten Hopp e287a3
      mch_free_acl(acl);
Karsten Hopp e287a3
  #endif
Karsten Hopp e287a3
! #if defined(HAVE_SELINUX) || defined(HAVE_SMACK)
Karsten Hopp e287a3
      mch_copy_sec(from, to);
Karsten Hopp e287a3
  #endif
Karsten Hopp e287a3
      if (errmsg != NULL)
Karsten Hopp e287a3
*** ../vim-7.4.237/src/memfile.c	2013-05-23 22:22:22.000000000 +0200
Karsten Hopp e287a3
--- src/memfile.c	2014-04-02 13:37:41.103910851 +0200
Karsten Hopp e287a3
***************
Karsten Hopp e287a3
*** 1358,1364 ****
Karsten Hopp e287a3
  	if (fdflags >= 0 && (fdflags & FD_CLOEXEC) == 0)
Karsten Hopp e287a3
  	    fcntl(mfp->mf_fd, F_SETFD, fdflags | FD_CLOEXEC);
Karsten Hopp e287a3
  #endif
Karsten Hopp e287a3
! #ifdef HAVE_SELINUX
Karsten Hopp e287a3
  	mch_copy_sec(fname, mfp->mf_fname);
Karsten Hopp e287a3
  #endif
Karsten Hopp e287a3
  	mch_hide(mfp->mf_fname);    /* try setting the 'hidden' flag */
Karsten Hopp e287a3
--- 1358,1364 ----
Karsten Hopp e287a3
  	if (fdflags >= 0 && (fdflags & FD_CLOEXEC) == 0)
Karsten Hopp e287a3
  	    fcntl(mfp->mf_fd, F_SETFD, fdflags | FD_CLOEXEC);
Karsten Hopp e287a3
  #endif
Karsten Hopp e287a3
! #if defined(HAVE_SELINUX) || defined(HAVE_SMACK)
Karsten Hopp e287a3
  	mch_copy_sec(fname, mfp->mf_fname);
Karsten Hopp e287a3
  #endif
Karsten Hopp e287a3
  	mch_hide(mfp->mf_fname);    /* try setting the 'hidden' flag */
Karsten Hopp e287a3
*** ../vim-7.4.237/src/os_unix.c	2014-04-01 21:00:45.436733663 +0200
Karsten Hopp e287a3
--- src/os_unix.c	2014-04-02 13:58:55.427893322 +0200
Karsten Hopp e287a3
***************
Karsten Hopp e287a3
*** 46,51 ****
Karsten Hopp e287a3
--- 46,59 ----
Karsten Hopp e287a3
  static int selinux_enabled = -1;
Karsten Hopp e287a3
  #endif
Karsten Hopp e287a3
  
Karsten Hopp e287a3
+ #ifdef HAVE_SMACK
Karsten Hopp e287a3
+ # include <attr/xattr.h>
Karsten Hopp e287a3
+ # include <linux/xattr.h>
Karsten Hopp e287a3
+ # ifndef SMACK_LABEL_LEN
Karsten Hopp e287a3
+ #  define SMACK_LABEL_LEN 1024
Karsten Hopp e287a3
+ # endif
Karsten Hopp e287a3
+ #endif
Karsten Hopp e287a3
+ 
Karsten Hopp e287a3
  /*
Karsten Hopp e287a3
   * Use this prototype for select, some include files have a wrong prototype
Karsten Hopp e287a3
   */
Karsten Hopp e287a3
***************
Karsten Hopp e287a3
*** 2798,2803 ****
Karsten Hopp e287a3
--- 2806,2895 ----
Karsten Hopp e287a3
  }
Karsten Hopp e287a3
  #endif /* HAVE_SELINUX */
Karsten Hopp e287a3
  
Karsten Hopp e287a3
+ #if defined(HAVE_SMACK) && !defined(PROTO)
Karsten Hopp e287a3
+ /*
Karsten Hopp e287a3
+  * Copy security info from "from_file" to "to_file".
Karsten Hopp e287a3
+  */
Karsten Hopp e287a3
+     void
Karsten Hopp e287a3
+ mch_copy_sec(from_file, to_file)
Karsten Hopp e287a3
+     char_u	*from_file;
Karsten Hopp e287a3
+     char_u	*to_file;
Karsten Hopp e287a3
+ {
Karsten Hopp e287a3
+     static const char const *smack_copied_attributes[] =
Karsten Hopp e287a3
+ 	{
Karsten Hopp e287a3
+ 	    XATTR_NAME_SMACK,
Karsten Hopp e287a3
+ 	    XATTR_NAME_SMACKEXEC,
Karsten Hopp e287a3
+ 	    XATTR_NAME_SMACKMMAP
Karsten Hopp e287a3
+ 	};
Karsten Hopp e287a3
+ 
Karsten Hopp e287a3
+     char	buffer[SMACK_LABEL_LEN];
Karsten Hopp e287a3
+     const char	*name;
Karsten Hopp e287a3
+     int		index;
Karsten Hopp e287a3
+     int		ret;
Karsten Hopp e287a3
+     ssize_t	size;
Karsten Hopp e287a3
+ 
Karsten Hopp e287a3
+     if (from_file == NULL)
Karsten Hopp e287a3
+ 	return;
Karsten Hopp e287a3
+ 
Karsten Hopp e287a3
+     for (index = 0 ; index < (int)(sizeof(smack_copied_attributes)
Karsten Hopp e287a3
+ 			      / sizeof(smack_copied_attributes)[0]) ; index++)
Karsten Hopp e287a3
+     {
Karsten Hopp e287a3
+ 	/* get the name of the attribute to copy */
Karsten Hopp e287a3
+ 	name = smack_copied_attributes[index];
Karsten Hopp e287a3
+ 
Karsten Hopp e287a3
+ 	/* get the value of the attribute in buffer */
Karsten Hopp e287a3
+ 	size = getxattr((char*)from_file, name, buffer, sizeof(buffer));
Karsten Hopp e287a3
+ 	if (size >= 0)
Karsten Hopp e287a3
+ 	{
Karsten Hopp e287a3
+ 	    /* copy the attribute value of buffer */
Karsten Hopp e287a3
+ 	    ret = setxattr((char*)to_file, name, buffer, (size_t)size, 0);
Karsten Hopp e287a3
+ 	    if (ret < 0)
Karsten Hopp e287a3
+ 	    {
Karsten Hopp e287a3
+ 		MSG_PUTS(_("Could not set security context "));
Karsten Hopp e287a3
+ 		MSG_PUTS(name);
Karsten Hopp e287a3
+ 		MSG_PUTS(_(" for "));
Karsten Hopp e287a3
+ 		msg_outtrans(to_file);
Karsten Hopp e287a3
+ 		msg_putchar('\n');
Karsten Hopp e287a3
+ 	    }
Karsten Hopp e287a3
+ 	}
Karsten Hopp e287a3
+ 	else
Karsten Hopp e287a3
+ 	{
Karsten Hopp e287a3
+ 	    /* what reason of not having the attribute value? */
Karsten Hopp e287a3
+ 	    switch (errno)
Karsten Hopp e287a3
+ 	    {
Karsten Hopp e287a3
+ 		case ENOTSUP:
Karsten Hopp e287a3
+ 		    /* extended attributes aren't supported or enabled */
Karsten Hopp e287a3
+ 		    /* should a message be echoed? not sure... */
Karsten Hopp e287a3
+ 		    return; /* leave because it isn't usefull to continue */
Karsten Hopp e287a3
+ 
Karsten Hopp e287a3
+ 		case ERANGE:
Karsten Hopp e287a3
+ 		default:
Karsten Hopp e287a3
+ 		    /* no enough size OR unexpected error */
Karsten Hopp e287a3
+ 		    MSG_PUTS(_("Could not get security context "));
Karsten Hopp e287a3
+ 		    MSG_PUTS(name);
Karsten Hopp e287a3
+ 		    MSG_PUTS(_(" for "));
Karsten Hopp e287a3
+ 		    msg_outtrans(from_file);
Karsten Hopp e287a3
+ 		    MSG_PUTS(_(". Removing it!\n"));
Karsten Hopp e287a3
+ 		    /* FALLTHROUGH to remove the attribute */
Karsten Hopp e287a3
+ 
Karsten Hopp e287a3
+ 		case ENODATA:
Karsten Hopp e287a3
+ 		    /* no attribute of this name */
Karsten Hopp e287a3
+ 		    ret = removexattr((char*)to_file, name);
Karsten Hopp e287a3
+ 		    if (ret < 0 && errno != ENODATA)
Karsten Hopp e287a3
+ 		    {
Karsten Hopp e287a3
+ 			MSG_PUTS(_("Could not remove security context "));
Karsten Hopp e287a3
+ 			MSG_PUTS(name);
Karsten Hopp e287a3
+ 			MSG_PUTS(_(" for "));
Karsten Hopp e287a3
+ 			msg_outtrans(to_file);
Karsten Hopp e287a3
+ 			msg_putchar('\n');
Karsten Hopp e287a3
+ 		    }
Karsten Hopp e287a3
+ 		    break;
Karsten Hopp e287a3
+ 	    }
Karsten Hopp e287a3
+ 	}
Karsten Hopp e287a3
+     }
Karsten Hopp e287a3
+ }
Karsten Hopp e287a3
+ #endif /* HAVE_SMACK */
Karsten Hopp e287a3
+ 
Karsten Hopp e287a3
  /*
Karsten Hopp e287a3
   * Return a pointer to the ACL of file "fname" in allocated memory.
Karsten Hopp e287a3
   * Return NULL if the ACL is not available for whatever reason.
Karsten Hopp e287a3
*** ../vim-7.4.237/src/undo.c	2014-03-23 15:12:29.943264337 +0100
Karsten Hopp e287a3
--- src/undo.c	2014-04-02 13:42:15.387907078 +0200
Karsten Hopp e287a3
***************
Karsten Hopp e287a3
*** 1455,1461 ****
Karsten Hopp e287a3
  # endif
Karsten Hopp e287a3
         )
Karsten Hopp e287a3
  	mch_setperm(file_name, (perm & 0707) | ((perm & 07) << 3));
Karsten Hopp e287a3
! # ifdef HAVE_SELINUX
Karsten Hopp e287a3
      if (buf->b_ffname != NULL)
Karsten Hopp e287a3
  	mch_copy_sec(buf->b_ffname, file_name);
Karsten Hopp e287a3
  # endif
Karsten Hopp e287a3
--- 1455,1461 ----
Karsten Hopp e287a3
  # endif
Karsten Hopp e287a3
         )
Karsten Hopp e287a3
  	mch_setperm(file_name, (perm & 0707) | ((perm & 07) << 3));
Karsten Hopp e287a3
! # if defined(HAVE_SELINUX) || defined(HAVE_SMACK)
Karsten Hopp e287a3
      if (buf->b_ffname != NULL)
Karsten Hopp e287a3
  	mch_copy_sec(buf->b_ffname, file_name);
Karsten Hopp e287a3
  # endif
Karsten Hopp e287a3
*** ../vim-7.4.237/src/auto/configure	2014-03-27 18:51:06.612760919 +0100
Karsten Hopp e287a3
--- src/auto/configure	2014-04-02 13:50:11.375900531 +0200
Karsten Hopp e287a3
***************
Karsten Hopp e287a3
*** 782,787 ****
Karsten Hopp e287a3
--- 782,788 ----
Karsten Hopp e287a3
  with_view_name
Karsten Hopp e287a3
  with_global_runtime
Karsten Hopp e287a3
  with_modified_by
Karsten Hopp e287a3
+ enable_smack
Karsten Hopp e287a3
  enable_selinux
Karsten Hopp e287a3
  with_features
Karsten Hopp e287a3
  with_compiledby
Karsten Hopp e287a3
***************
Karsten Hopp e287a3
*** 1453,1459 ****
Karsten Hopp e287a3
    --enable-fail-if-missing    Fail if dependencies on additional features
Karsten Hopp e287a3
       specified on the command line are missing.
Karsten Hopp e287a3
    --disable-darwin        Disable Darwin (Mac OS X) support.
Karsten Hopp e287a3
!   --disable-selinux	  Don't check for SELinux support.
Karsten Hopp e287a3
    --disable-xsmp          Disable XSMP session management
Karsten Hopp e287a3
    --disable-xsmp-interact Disable XSMP interaction
Karsten Hopp e287a3
    --enable-luainterp=OPTS     Include Lua interpreter.  default=no OPTS=no/yes/dynamic
Karsten Hopp e287a3
--- 1454,1461 ----
Karsten Hopp e287a3
    --enable-fail-if-missing    Fail if dependencies on additional features
Karsten Hopp e287a3
       specified on the command line are missing.
Karsten Hopp e287a3
    --disable-darwin        Disable Darwin (Mac OS X) support.
Karsten Hopp e287a3
!   --disable-smack	  Do not check for Smack support.
Karsten Hopp e287a3
!   --disable-selinux	  Do not check for SELinux support.
Karsten Hopp e287a3
    --disable-xsmp          Disable XSMP session management
Karsten Hopp e287a3
    --disable-xsmp-interact Disable XSMP interaction
Karsten Hopp e287a3
    --enable-luainterp=OPTS     Include Lua interpreter.  default=no OPTS=no/yes/dynamic
Karsten Hopp e287a3
***************
Karsten Hopp e287a3
*** 4588,4606 ****
Karsten Hopp e287a3
  
Karsten Hopp e287a3
  
Karsten Hopp e287a3
  
Karsten Hopp e287a3
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking --disable-selinux argument" >&5
Karsten Hopp e287a3
  $as_echo_n "checking --disable-selinux argument... " >&6; }
Karsten Hopp e287a3
! # Check whether --enable-selinux was given.
Karsten Hopp e287a3
  if test "${enable_selinux+set}" = set; then :
Karsten Hopp e287a3
    enableval=$enable_selinux;
Karsten Hopp e287a3
  else
Karsten Hopp e287a3
    enable_selinux="yes"
Karsten Hopp e287a3
  fi
Karsten Hopp e287a3
  
Karsten Hopp e287a3
! if test "$enable_selinux" = "yes"; then
Karsten Hopp e287a3
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
Karsten Hopp e287a3
  $as_echo "no" >&6; }
Karsten Hopp e287a3
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for is_selinux_enabled in -lselinux" >&5
Karsten Hopp e287a3
  $as_echo_n "checking for is_selinux_enabled in -lselinux... " >&6; }
Karsten Hopp e287a3
  if ${ac_cv_lib_selinux_is_selinux_enabled+:} false; then :
Karsten Hopp e287a3
    $as_echo_n "(cached) " >&6
Karsten Hopp e287a3
--- 4590,4679 ----
Karsten Hopp e287a3
  
Karsten Hopp e287a3
  
Karsten Hopp e287a3
  
Karsten Hopp e287a3
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking --disable-smack argument" >&5
Karsten Hopp e287a3
! $as_echo_n "checking --disable-smack argument... " >&6; }
Karsten Hopp e287a3
! # Check whether --enable-smack was given.
Karsten Hopp e287a3
! if test "${enable_smack+set}" = set; then :
Karsten Hopp e287a3
!   enableval=$enable_smack;
Karsten Hopp e287a3
! else
Karsten Hopp e287a3
!   enable_smack="yes"
Karsten Hopp e287a3
! fi
Karsten Hopp e287a3
! 
Karsten Hopp e287a3
! if test "$enable_smack" = "yes"; then
Karsten Hopp e287a3
!   ac_fn_c_check_header_mongrel "$LINENO" "linux/xattr.h" "ac_cv_header_linux_xattr_h" "$ac_includes_default"
Karsten Hopp e287a3
! if test "x$ac_cv_header_linux_xattr_h" = xyes; then :
Karsten Hopp e287a3
!   true
Karsten Hopp e287a3
! else
Karsten Hopp e287a3
!   enable_smack="no"
Karsten Hopp e287a3
! fi
Karsten Hopp e287a3
! 
Karsten Hopp e287a3
! 
Karsten Hopp e287a3
! fi
Karsten Hopp e287a3
! if test "$enable_smack" = "yes"; then
Karsten Hopp e287a3
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
Karsten Hopp e287a3
! $as_echo "no" >&6; }
Karsten Hopp e287a3
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for llistxattr in -lattr" >&5
Karsten Hopp e287a3
! $as_echo_n "checking for llistxattr in -lattr... " >&6; }
Karsten Hopp e287a3
! if ${ac_cv_lib_attr_llistxattr+:} false; then :
Karsten Hopp e287a3
!   $as_echo_n "(cached) " >&6
Karsten Hopp e287a3
! else
Karsten Hopp e287a3
!   ac_check_lib_save_LIBS=$LIBS
Karsten Hopp e287a3
! LIBS="-lattr  $LIBS"
Karsten Hopp e287a3
! cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Karsten Hopp e287a3
! /* end confdefs.h.  */
Karsten Hopp e287a3
! 
Karsten Hopp e287a3
! /* Override any GCC internal prototype to avoid an error.
Karsten Hopp e287a3
!    Use char because int might match the return type of a GCC
Karsten Hopp e287a3
!    builtin and then its argument prototype would still apply.  */
Karsten Hopp e287a3
! #ifdef __cplusplus
Karsten Hopp e287a3
! extern "C"
Karsten Hopp e287a3
! #endif
Karsten Hopp e287a3
! char llistxattr ();
Karsten Hopp e287a3
! int
Karsten Hopp e287a3
! main ()
Karsten Hopp e287a3
! {
Karsten Hopp e287a3
! return llistxattr ();
Karsten Hopp e287a3
!   ;
Karsten Hopp e287a3
!   return 0;
Karsten Hopp e287a3
! }
Karsten Hopp e287a3
! _ACEOF
Karsten Hopp e287a3
! if ac_fn_c_try_link "$LINENO"; then :
Karsten Hopp e287a3
!   ac_cv_lib_attr_llistxattr=yes
Karsten Hopp e287a3
! else
Karsten Hopp e287a3
!   ac_cv_lib_attr_llistxattr=no
Karsten Hopp e287a3
! fi
Karsten Hopp e287a3
! rm -f core conftest.err conftest.$ac_objext \
Karsten Hopp e287a3
!     conftest$ac_exeext conftest.$ac_ext
Karsten Hopp e287a3
! LIBS=$ac_check_lib_save_LIBS
Karsten Hopp e287a3
! fi
Karsten Hopp e287a3
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_attr_llistxattr" >&5
Karsten Hopp e287a3
! $as_echo "$ac_cv_lib_attr_llistxattr" >&6; }
Karsten Hopp e287a3
! if test "x$ac_cv_lib_attr_llistxattr" = xyes; then :
Karsten Hopp e287a3
!   LIBS="$LIBS -lattr"
Karsten Hopp e287a3
! 	   found_smack="yes"
Karsten Hopp e287a3
! 	   $as_echo "#define HAVE_SMACK 1" >>confdefs.h
Karsten Hopp e287a3
! 
Karsten Hopp e287a3
! fi
Karsten Hopp e287a3
! 
Karsten Hopp e287a3
! else
Karsten Hopp e287a3
!    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
Karsten Hopp e287a3
! $as_echo "yes" >&6; }
Karsten Hopp e287a3
! fi
Karsten Hopp e287a3
! 
Karsten Hopp e287a3
! if test "x$found_smack" = "x"; then
Karsten Hopp e287a3
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking --disable-selinux argument" >&5
Karsten Hopp e287a3
  $as_echo_n "checking --disable-selinux argument... " >&6; }
Karsten Hopp e287a3
!   # Check whether --enable-selinux was given.
Karsten Hopp e287a3
  if test "${enable_selinux+set}" = set; then :
Karsten Hopp e287a3
    enableval=$enable_selinux;
Karsten Hopp e287a3
  else
Karsten Hopp e287a3
    enable_selinux="yes"
Karsten Hopp e287a3
  fi
Karsten Hopp e287a3
  
Karsten Hopp e287a3
!   if test "$enable_selinux" = "yes"; then
Karsten Hopp e287a3
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
Karsten Hopp e287a3
  $as_echo "no" >&6; }
Karsten Hopp e287a3
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for is_selinux_enabled in -lselinux" >&5
Karsten Hopp e287a3
  $as_echo_n "checking for is_selinux_enabled in -lselinux... " >&6; }
Karsten Hopp e287a3
  if ${ac_cv_lib_selinux_is_selinux_enabled+:} false; then :
Karsten Hopp e287a3
    $as_echo_n "(cached) " >&6
Karsten Hopp e287a3
***************
Karsten Hopp e287a3
*** 4638,4650 ****
Karsten Hopp e287a3
  $as_echo "$ac_cv_lib_selinux_is_selinux_enabled" >&6; }
Karsten Hopp e287a3
  if test "x$ac_cv_lib_selinux_is_selinux_enabled" = xyes; then :
Karsten Hopp e287a3
    LIBS="$LIBS -lselinux"
Karsten Hopp e287a3
! 	   $as_echo "#define HAVE_SELINUX 1" >>confdefs.h
Karsten Hopp e287a3
  
Karsten Hopp e287a3
  fi
Karsten Hopp e287a3
  
Karsten Hopp e287a3
! else
Karsten Hopp e287a3
!    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
Karsten Hopp e287a3
  $as_echo "yes" >&6; }
Karsten Hopp e287a3
  fi
Karsten Hopp e287a3
  
Karsten Hopp e287a3
  
Karsten Hopp e287a3
--- 4711,4724 ----
Karsten Hopp e287a3
  $as_echo "$ac_cv_lib_selinux_is_selinux_enabled" >&6; }
Karsten Hopp e287a3
  if test "x$ac_cv_lib_selinux_is_selinux_enabled" = xyes; then :
Karsten Hopp e287a3
    LIBS="$LIBS -lselinux"
Karsten Hopp e287a3
! 	     $as_echo "#define HAVE_SELINUX 1" >>confdefs.h
Karsten Hopp e287a3
  
Karsten Hopp e287a3
  fi
Karsten Hopp e287a3
  
Karsten Hopp e287a3
!   else
Karsten Hopp e287a3
!      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
Karsten Hopp e287a3
  $as_echo "yes" >&6; }
Karsten Hopp e287a3
+   fi
Karsten Hopp e287a3
  fi
Karsten Hopp e287a3
  
Karsten Hopp e287a3
  
Karsten Hopp e287a3
*** ../vim-7.4.237/src/version.c	2014-04-02 12:12:04.163981514 +0200
Karsten Hopp e287a3
--- src/version.c	2014-04-02 13:38:22.511910282 +0200
Karsten Hopp e287a3
***************
Karsten Hopp e287a3
*** 736,737 ****
Karsten Hopp e287a3
--- 736,739 ----
Karsten Hopp e287a3
  {   /* Add new patch number below this line */
Karsten Hopp e287a3
+ /**/
Karsten Hopp e287a3
+     238,
Karsten Hopp e287a3
  /**/
Karsten Hopp e287a3
Karsten Hopp e287a3
-- 
Karsten Hopp e287a3
hundred-and-one symptoms of being an internet addict:
Karsten Hopp e287a3
25. You believe nothing looks sexier than a man in boxer shorts illuminated
Karsten Hopp e287a3
    only by a 17" inch svga monitor.
Karsten Hopp e287a3
Karsten Hopp e287a3
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
Karsten Hopp e287a3
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
Karsten Hopp e287a3
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
Karsten Hopp e287a3
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///