]> Dogcows Code - chaz/tar/commitdiff
Bugfixes.
authorPavel Raiskup <praiskup@redhat.com>
Mon, 19 Nov 2012 21:06:21 +0000 (23:06 +0200)
committerSergey Poznyakoff <gray@gnu.org.ua>
Mon, 19 Nov 2012 21:08:04 +0000 (23:08 +0200)
* configure.ac: Avoid linking against -lacl when
--without-posix-acls is given.
* tests/selacl01.at: Call restorecon
* tests/selnx01.at: Likewise.
* tests/testsuite.at (AT_SELINUX_UTILS_PREREQ): Likewise.
(AT_SELINUX_PREREQ,AT_ACLS_PREREQ): Use the right _PREREQ macros.

configure.ac
tests/selacl01.at
tests/selnx01.at
tests/testsuite.at

index 3e501a82d091da4ce56f6a6b378f00e30846bb75..8225031c0bd4cfb766f8394845748a34aea43400 100644 (file)
@@ -70,6 +70,29 @@ if test $diff_cv_st_fstype_string = yes; then
     [Define if struct stat has a char st_fstype[] member.])
 fi
 
+# even if we use gnulib's acl.h with integrated m4 file later on (used because
+# of very useful file_has_acl() function) we need following checks that restrict
+# tar to use POSIX.1e ACLs only.
+AC_ARG_WITH([posix-acls],
+    AS_HELP_STRING([--without-posix-acls],
+                   [do not use POSIX.1e access control lists]),
+    [with_posix_acls=no])
+if test "x$with_posix_acls" != "xno"; then
+  AC_CHECK_HEADERS(sys/acl.h,, [with_posix_acl=no])
+  AC_SEARCH_LIBS([acl_get_file],  [acl pacl],, [with_posix_acl=no])
+  AC_SEARCH_LIBS([acl_get_fd],    [acl pacl],, [with_posix_acl=no])
+  AC_SEARCH_LIBS([acl_set_file],  [acl pacl],, [with_posix_acl=no])
+  AC_SEARCH_LIBS([acl_set_fd],    [acl pacl],, [with_posix_acl=no])
+  AC_SEARCH_LIBS([acl_to_text],   [acl pacl],, [with_posix_acl=no])
+  AC_SEARCH_LIBS([acl_from_text], [acl pacl],, [with_posix_acl=no])
+  if test "x$with_posix_acls" != xno; then
+    AC_DEFINE(HAVE_POSIX_ACLS,,[Define when we have working POSIX acls])
+  fi
+else
+  # disable acls in gnulib's checks
+  export enable_acl=no
+fi
+
 AC_TYPE_SIGNAL
 AC_TYPE_MODE_T
 AC_TYPE_PID_T
@@ -94,25 +117,6 @@ TAR_HEADERS_ATTR_XATTR_H
 
 AC_CHECK_FUNCS_ONCE([fchmod fchown fsync lstat mkfifo readlink symlink])
 
-# we use gnulib's acl.h - because of very useful file_has_acl() function.  M4
-# file from gnulib/acl does a quite good job of course.  The problem is that
-# this function works on wide list of platforms and we need to restrict tar to
-# use POSIX.1e ACLs only.
-AC_ARG_WITH([posix-acls],
-    AS_HELP_STRING([--without-posix-acls],
-                   [do not use POSIX.1e access control lists]),
-    [with_posix_acls=no])
-AC_CHECK_HEADERS(sys/acl.h,, [with_posix_acl=no])
-AC_SEARCH_LIBS([acl_get_file],  [acl pacl],, [with_posix_acl=no])
-AC_SEARCH_LIBS([acl_get_fd],    [acl pacl],, [with_posix_acl=no])
-AC_SEARCH_LIBS([acl_set_file],  [acl pacl],, [with_posix_acl=no])
-AC_SEARCH_LIBS([acl_set_fd],    [acl pacl],, [with_posix_acl=no])
-AC_SEARCH_LIBS([acl_to_text],   [acl pacl],, [with_posix_acl=no])
-AC_SEARCH_LIBS([acl_from_text], [acl pacl],, [with_posix_acl=no])
-if test "x$with_posix_acls" != xno; then
-  AC_DEFINE(HAVE_POSIX_ACLS,,[Define when we have working POSIX acls])
-fi
-
 AC_CHECK_DECLS([getgrgid],,, [#include <grp.h>])
 AC_CHECK_DECLS([getpwuid],,, [#include <pwd.h>])
 AC_CHECK_DECLS([time],,, [#include <time.h>])
index 60f106b421b7df836ea7856d6ea256baa80448c4..90d0c5b8a1b359bb2169726fd651667e431be908 100644 (file)
@@ -36,6 +36,7 @@ MINOR=$( stat /dev/urandom --printf="%T" )
 mknod dir/chartype c $MAJOR $MINOR
 
 # setup attributes
+restorecon -R dir
 chcon -h --user=system_u dir/fifo
 chcon -h --user=system_u dir/chartype
 setfacl -m u:$UID:--- dir/fifo
index 13a208a9fcd569d4df8011be75cd54ad890dffa9..79f72679745988ca613f1c8df19c85e4981f871e 100644 (file)
@@ -33,6 +33,7 @@ ln -s file dir/link
 
 getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
 
+restorecon -R dir
 chcon -h --user=system_u     dir
 chcon -h --user=unconfined_u dir/file
 chcon -h --user=system_u     dir/link
index 08266c98b5b595ef5d8199b247ecb4ccb646655e..d8ee991adfcf5dc6fa95e00597cd8f757828a839 100644 (file)
@@ -132,6 +132,7 @@ m4_define([AT_XATTRS_UTILS_PREREQ],[
 ])
 m4_define([AT_SELINUX_UTILS_PREREQ],[
   file=$( mktemp -p . )
+  AT_CHECK_UTIL(restorecon $file, 0)
   AT_CHECK_UTIL(chcon -h --user=unconfined_u $file,0)
   rm -rf $file
 ])
@@ -158,7 +159,7 @@ m4_define([AT_XATTRS_PREREQ],[
   fi
 ])
 m4_define([AT_SELINUX_PREREQ],[
-  AT_XATTRS_UTILS_PREREQ
+  AT_SELINUX_UTILS_PREREQ
   file=$( mktemp -p . )
   err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
   if test "$err" != "0"; then
@@ -166,7 +167,7 @@ m4_define([AT_SELINUX_PREREQ],[
   fi
 ])
 m4_define([AT_ACLS_PREREQ],[
-  AT_XATTRS_UTILS_PREREQ
+  AT_ACLS_UTILS_PREREQ
   file=$( mktemp -p . )
   setfacl -m u:$UID:rwx $file
   err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
This page took 0.025896 seconds and 4 git commands to generate.