tags 338821 +patch
quit
> The patch isn't broken, it just wasn't meant to work on non-linux systems.
The patch added optional feature, which is not enabled by default.
But without explicitly requesting this feature,
the source fails to build everywhere.
Enclosed please find a patch, which fixes this regression.
The patch should go into debian/patches.
Thanks in advance for applying
Petr
diff -ur ../build-tree-old/coreutils-5.93/configure.ac
coreutils-5.93/configure.ac
--- ../build-tree-old/coreutils-5.93/configure.ac 2005-11-14
16:33:15.000000000 +0000
+++ coreutils-5.93/configure.ac 2005-11-14 16:45:43.000000000 +0000
@@ -32,7 +32,9 @@
AC_ARG_ENABLE(selinux, dnl
[ --enable-selinux Enable use of the SELINUX libraries],
[AC_DEFINE(WITH_SELINUX, 1, [Define if you want to use SELINUX])
-LIB_SELINUX="-lselinux"
+ LIB_SELINUX="-lselinux"
+ OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS chcon\$(EXEEXT)
runcon\$(EXEEXT)"
+ MAN="$MAN chcon.1 runcon.1"
AC_SUBST(LIB_SELINUX)])
gl_DEFAULT_POSIX2_VERSION
diff -ur ../build-tree-old/coreutils-5.93/src/cp.c coreutils-5.93/src/cp.c
--- ../build-tree-old/coreutils-5.93/src/cp.c 2005-11-14 16:33:15.000000000
+0000
+++ coreutils-5.93/src/cp.c 2005-11-14 16:48:01.000000000 +0000
@@ -831,17 +831,19 @@
case PRESERVE_LINK:
x->preserve_links = on_off;
break;
-
+#ifdef WITH_SELINUX
case PRESERVE_CONTEXT:
x->preserve_security_context = on_off;
break;
-
+#endif
case PRESERVE_ALL:
x->preserve_mode = on_off;
x->preserve_timestamps = on_off;
x->preserve_ownership = on_off;
x->preserve_links = on_off;
+#ifdef WITH_SELINUX
x->preserve_security_context = on_off;
+#endif
break;
default:
diff -ur ../build-tree-old/coreutils-5.93/src/id.c coreutils-5.93/src/id.c
--- ../build-tree-old/coreutils-5.93/src/id.c 2005-11-14 16:33:15.000000000
+0000
+++ coreutils-5.93/src/id.c 2005-11-14 16:50:14.000000000 +0000
@@ -72,7 +72,9 @@
/* The SELinux context */
/* Set `context' to a known invalid value so print_full_info() will *
* know when `context' has not been set to a meaningful value. */
+#ifdef WITH_SELINUX
static security_context_t context=NULL;
+#endif
static struct option const longopts[] =
{
@@ -122,7 +124,9 @@
main (int argc, char **argv)
{
int optc;
+#ifdef WITH_SELINUX
int selinux_enabled=(is_selinux_enabled()>0);
+#endif
/* If true, output the list of all group IDs. -G */
bool just_group_list = false;
@@ -200,10 +204,13 @@
error (1, 0, "can't get process context");
}
#endif
-
+#ifdef WITH_SELINUX
if (just_user + just_group + just_group_list + just_context > 1)
error (EXIT_FAILURE, 0, _("cannot print \"only\" of more than one
choice"));
-
+#else
+ if (just_user + just_group + just_group_list > 1)
+ error (EXIT_FAILURE, 0, _("cannot print \"only\" of more than one
choice"));
+#endif
if (just_user + just_group + just_group_list == 0 && (use_real | use_name))
error (EXIT_FAILURE, 0,
_("cannot print only names or real IDs in default format"));
diff -ur ../build-tree-old/coreutils-5.93/src/stat.c coreutils-5.93/src/stat.c
--- ../build-tree-old/coreutils-5.93/src/stat.c 2005-11-14 16:33:15.000000000
+0000
+++ coreutils-5.93/src/stat.c 2005-11-14 16:48:36.000000000 +0000
@@ -867,9 +867,12 @@
terse = true;
break;
case 'Z':
+#ifdef WITH_SELINUX
if((is_selinux_enabled()>0))
secure = 1;
- else {
+ else
+#endif
+ {
error (0, 0, _("Kernel is not SELinux enabled"));
usage (EXIT_FAILURE);
}
--- ../build-tree-old/coreutils-5.93/src/Makefile.am 2005-11-14
16:33:15.000000000 +0000
+++ coreutils-5.93/src/Makefile.am 2005-11-14 17:45:33.000000000 +0000
@@ -17,16 +17,16 @@
## along with this program; if not, write to the Free Software Foundation,
## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-EXTRA_PROGRAMS = chroot df hostid nice pinky stty su uname uptime users who
+EXTRA_PROGRAMS = chroot df hostid nice pinky stty su uname uptime users who
chcon runcon
bin_SCRIPTS = groups
-bin_PROGRAMS = [ chgrp chown chmod chcon cp dd dircolors du \
+bin_PROGRAMS = [ chgrp chown chmod cp dd dircolors du \
ginstall link ln dir vdir ls mkdir \
mkfifo mknod mv nohup readlink rm rmdir shred stat sync touch unlink \
cat cksum comm csplit cut expand fmt fold head join md5sum \
nl od paste pr ptx sha1sum sort split sum tac tail tr tsort unexpand uniq wc
\
basename date dirname echo env expr factor false \
- hostname id kill logname pathchk printenv printf pwd runcon seq sleep tee \
+ hostname id kill logname pathchk printenv printf pwd seq sleep tee \
test true tty whoami yes \
$(OPTIONAL_BIN_PROGS) $(DF_PROG)
@@ -238,7 +238,7 @@
$(EXTRA_PROGRAMS)
all_programs.list:
- @echo $(all_programs) | tr ' ' '\n' | sed -e 's,$(EXEEXT)$$,,' \
+ @echo $(bin_PROGRAMS) $(bin_SCRIPTS) | tr ' ' '\n' | sed -e
's,$(EXEEXT)$$,,' \
| $(ASSORT) -u
pm = progs-makefile
@@ -260,7 +260,7 @@
au_dotdot = authors-dotdot
au_actual = authors-actual
.PHONY: check-AUTHORS
-check-AUTHORS: $(all_programs)
+check-AUTHORS:
rm -f $(au_actual) $(au_dotdot)
for i in `ls $(all_programs) | sed -e 's,$(EXEEXT)$$,,' \
| $(ASSORT) -u`; do \