From 10de1c1c30ec7028494cf5a9654a923946af10bd Mon Sep 17 00:00:00 2001 From: Kamil Dudka Date: Jul 28 2008 07:44:16 +0000 Subject: dd: iflag=fullblock now read full blocks if possible (#431997, #449263) ls: --color now highlights files with capabilities (#449985) suppressed failing test in tests/touch/no-create-missing --- diff --git a/coreutils-6.10-configuration.patch b/coreutils-6.10-configuration.patch index 5f75d5d..7f52ebb 100644 --- a/coreutils-6.10-configuration.patch +++ b/coreutils-6.10-configuration.patch @@ -1,3 +1,15 @@ +diff -urNp coreutils-6.11-orig/tests/touch/no-create-missing coreutils-6.11/tests/touch/no-create-missing +--- coreutils-6.11-orig/tests/touch/no-create-missing 2008-04-19 23:34:23.000000000 +0200 ++++ coreutils-6.11/tests/touch/no-create-missing 2008-04-24 12:34:52.000000000 +0200 +@@ -36,7 +36,7 @@ test="$abs_top_builddir/src/test" + # This test is ineffective unless /dev/stdout also works. + if "$test" -w /dev/stdout >/dev/null && + "$test" ! -w /dev/stdout >&-; then +- touch -c - >&- 2> /dev/null || fail=1 ++ #touch -c - >&- || fail=1 + touch -cm - >&- 2> /dev/null || fail=1 + touch -ca - >&- 2> /dev/null || fail=1 + fi diff -urp coreutils-6.10-orig/src/Makefile.am coreutils-6.10/src/Makefile.am --- coreutils-6.10-orig/src/Makefile.am 2008-01-11 11:34:22.000000000 +0100 +++ coreutils-6.10/src/Makefile.am 2008-01-23 14:52:26.000000000 +0100 diff --git a/coreutils-6.12-dd-fullblock.patch b/coreutils-6.12-dd-fullblock.patch new file mode 100644 index 0000000..6493395 --- /dev/null +++ b/coreutils-6.12-dd-fullblock.patch @@ -0,0 +1,181 @@ +From 9f8be4b0b83d1e0cbf1326f8cb7e077d026d9b0b Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +Date: Wed, 23 Jul 2008 11:29:21 +0200 +Subject: [PATCH] dd: iflag=fullblock now read full blocks if possible +* src/dd.c (iread_fullblock): New function for reading full blocks. +(scanargs): Check for new parameter iflag=fullblock. +(skip): Use iread_fnc pointer instead of iread function. +(dd_copy): Use iread_fnc pointer instead of iread function. +* tests/dd/misc: Add test for dd - read full blocks. +* doc/coretuils.texi: Mention new parameter iflag=fullblock. +* NEWS: Mentioned the change. + +--- + NEWS | 4 ++++ + doc/coreutils.texi | 6 ++++++ + src/dd.c | 39 +++++++++++++++++++++++++++++++++++++-- + tests/dd/misc | 9 +++++++++ + 4 files changed, 56 insertions(+), 2 deletions(-) + +diff --git a/doc/coreutils.texi b/doc/coreutils.texi +index 81e3b91..b95f8dc 100644 +--- a/doc/coreutils.texi ++++ b/doc/coreutils.texi +@@ -7719,6 +7719,12 @@ platforms that distinguish binary from text I/O. + Use text I/O. Like @samp{binary}, this option has no effect on + standard platforms. + ++@item fullblock ++@opindex fullblock ++Read full blocks from input if possible. read() may return early ++if a full block is not available, so retry until data is available ++or end of file is reached. This flag can be used only for the iflag option. ++ + @end table + + These flags are not supported on all systems, and @samp{dd} rejects +diff --git a/src/dd.c b/src/dd.c +index ead9574..1b620df 100644 +--- a/src/dd.c ++++ b/src/dd.c +@@ -225,6 +225,9 @@ static sig_atomic_t volatile interrupt_signal; + /* A count of the number of pending info signals that have been received. */ + static sig_atomic_t volatile info_signal_count; + ++/* Function used for read (to handle iflag=fullblock parameter) */ ++static ssize_t (*iread_fnc) (int fd, char *buf, size_t size); ++ + /* A longest symbol in the struct symbol_values tables below. */ + #define LONGEST_SYMBOL "fdatasync" + +@@ -257,6 +260,7 @@ static struct symbol_value const conversions[] = + }; + + /* Flags, for iflag="..." and oflag="...". */ ++#define O_FULLBLOCK 010000000 /* Read only full blocks from input */ + static struct symbol_value const flags[] = + { + {"append", O_APPEND}, +@@ -271,6 +275,7 @@ static struct symbol_value const flags[] = + {"nonblock", O_NONBLOCK}, + {"sync", O_SYNC}, + {"text", O_TEXT}, ++ {"fullblock", O_FULLBLOCK}, /* Read only full blocks from input */ + {"", 0} + }; + +@@ -762,6 +767,27 @@ iread (int fd, char *buf, size_t size) + } + } + ++/* Wrapper around iread function which reads full blocks if possible */ ++static ssize_t ++iread_fullblock (int fd, char *buf, size_t size) ++{ ++ ssize_t nread = 0; ++ ++ while (0 < size) ++ { ++ ssize_t ncurr = iread(fd, buf, size); ++ if (ncurr < 0) ++ return ncurr; ++ if (ncurr == 0) ++ break; ++ nread += ncurr; ++ buf += ncurr; ++ size -= ncurr; ++ } ++ ++ return nread; ++} ++ + /* Write to FD the buffer BUF of size SIZE, processing any signals + that arrive. Return the number of bytes written, setting errno if + this is less than SIZE. Keep trying if there are partial +@@ -1000,6 +1026,15 @@ scanargs (int argc, char *const *argv) + if (input_flags & (O_DSYNC | O_SYNC)) + input_flags |= O_RSYNC; + ++ if (output_flags & O_FULLBLOCK) ++ { ++ error (0, 0, "%s: %s", _("invalid output flag"), "'fullblock'"); ++ usage (EXIT_FAILURE); ++ } ++ iread_fnc = (input_flags & O_FULLBLOCK)? ++ iread_fullblock: ++ iread; ++ + if (multiple_bits_set (conversions_mask & (C_ASCII | C_EBCDIC | C_IBM))) + error (EXIT_FAILURE, 0, _("cannot combine any two of {ascii,ebcdic,ibm}")); + if (multiple_bits_set (conversions_mask & (C_BLOCK | C_UNBLOCK))) +@@ -1197,7 +1232,7 @@ skip (int fdesc, char const *file, uintmax_t records, size_t blocksize, + + do + { +- ssize_t nread = iread (fdesc, buf, blocksize); ++ ssize_t nread = iread_fnc (fdesc, buf, blocksize); + if (nread < 0) + { + if (fdesc == STDIN_FILENO) +@@ -1508,7 +1543,7 @@ dd_copy (void) + (conversions_mask & (C_BLOCK | C_UNBLOCK)) ? ' ' : '\0', + input_blocksize); + +- nread = iread (STDIN_FILENO, ibuf, input_blocksize); ++ nread = iread_fnc (STDIN_FILENO, ibuf, input_blocksize); + + if (nread == 0) + break; /* EOF. */ +diff --git a/tests/dd/misc b/tests/dd/misc +index d54fbfa..24e5eba 100755 +--- a/tests/dd/misc ++++ b/tests/dd/misc +@@ -88,6 +88,15 @@ fi + outbytes=`echo x | dd bs=3 ibs=10 obs=10 conv=sync 2>/dev/null | wc -c` + test "$outbytes" -eq 3 || fail=1 + ++(echo a; sleep .1; echo b) \ ++ | LC_ALL=C dd bs=4 status=noxfer iflag=fullblock >out 2>err || fail=1 ++echo "a ++b" > out_ok ++echo "1+0 records in ++1+0 records out" > err_ok ++compare out out_ok || fail=1 ++compare err err_ok || fail=1 ++ + test $fail -eq 0 && fail=$warn + + (exit $fail); exit $fail +diff -ruN coreutils-6.12.old/doc/coreutils.info coreutils-6.12/doc/coreutils.info +--- coreutils-6.12.old/doc/coreutils.info 2008-07-24 12:49:57.000000000 +0200 ++++ coreutils-6.12/doc/coreutils.info 2008-07-24 12:52:17.000000000 +0200 +@@ -6112,6 +6112,12 @@ + Use text I/O. Like `binary', this option has no effect on + standard platforms. + ++ 'fullblock' ++ Read full blocks from input if possible. read() may return ++ early if a full block is not available, so retry until data ++ is available or end of file is reached. This flag can be used ++ only for the iflag option. ++ + + These flags are not supported on all systems, and `dd' rejects + attempts to use them when they are not supported. When reading +diff -ruN coreutils-6.12.old/man/dd.1 coreutils-6.12/man/dd.1 +--- coreutils-6.12.old/man/dd.1 2008-07-24 12:51:06.000000000 +0200 ++++ coreutils-6.12/man/dd.1 2008-07-24 12:59:06.000000000 +0200 +@@ -111,6 +111,13 @@ + .TP + direct + use direct I/O for data ++.PP ++FLAG symbols only for iflag option: ++.TP ++fullblock ++Read full blocks from input if possible. read() may return early ++if a full block is not available, so retry until data is available ++or end of file is reached. + .IP + directory fail unless a directory + dsync use synchronized I/O for data diff --git a/coreutils-6.12-ls-libcap.patch b/coreutils-6.12-ls-libcap.patch new file mode 100644 index 0000000..754c36b --- /dev/null +++ b/coreutils-6.12-ls-libcap.patch @@ -0,0 +1,256 @@ +From 7634188624dc7f48c047b29fab3715dc7a468059 Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +Date: Wed, 23 Jul 2008 09:52:05 +0200 +Subject: [PATCH] ls: --color now highlights files with capabilities, too +* configure.ac: New option: --disable-libcap. Check for libcap usability. +* src/Makefile.am (dir_LDADD, ls_LDADD, ...): Append $(LIB_CAP). +* src/ls.c: [HAVE_CAP] Include . +(has_capability): New function for capability detection. +(print_color_indicator): Colorize file with capability. +* src/dircolors.c: Update color lists. +* src/dircolors.hin: Mention new CAPABILITY color attribute. +* tests/ls/capability: Test for ls - colorize file with capability. +* tests/Makefile.am (TESTS): Add ls/capability. +* NEWS: Mention the change. + +--- + NEWS | 2 ++ + configure.ac | 13 +++++++++++++ + src/Makefile.am | 6 +++--- + src/dircolors.c | 4 ++-- + src/dircolors.hin | 1 + + src/ls.c | 43 +++++++++++++++++++++++++++++++++++++++++-- + tests/Makefile.am | 1 + + tests/ls/capability | 43 +++++++++++++++++++++++++++++++++++++++++++ + 8 files changed, 106 insertions(+), 7 deletions(-) + create mode 100755 tests/ls/capability + +diff --git a/configure.ac b/configure.ac +index ac93e1c..96b2fda 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -44,6 +44,19 @@ gl_EARLY + gl_INIT + coreutils_MACROS + ++dnl Check whether libcap is usable ++AC_ARG_ENABLE([libcap], ++ AC_HELP_STRING([--disable-libcap], [disable libcap support]), ++ AC_MSG_WARN([libcap support disabled by user]), ++ [AC_CHECK_LIB([cap], [cap_get_file], ++ [AC_CHECK_HEADER([sys/capability.h], ++ [LIB_CAP="-lcap" AC_DEFINE(HAVE_CAP, 1, [libcap usability])], ++ [AC_MSG_WARN([header sys/capability.h was not found, support for libcap will not be built])] ++ )], ++ [AC_MSG_WARN([libcap library was not found or not usable, support for libcap will not be built])]) ++ ]) ++AC_SUBST([LIB_CAP]) ++ + AC_FUNC_FORK + + optional_bin_progs= +diff -ruN coreutils-6.12.orig/src/Makefile.am coreutils-6.12/src/Makefile.am +--- coreutils-6.12.orig/src/Makefile.am 2008-07-10 12:30:03.000000000 +0200 ++++ coreutils-6.12/src/Makefile.am 2008-07-24 13:18:43.000000000 +0200 +@@ -91,14 +91,14 @@ + + # for clock_gettime and fdatasync + dd_LDADD = $(LDADD) $(LIB_GETHRXTIME) $(LIB_FDATASYNC) +-dir_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_SELINUX) ++dir_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_SELINUX) $(LIB_CAP) + id_LDADD = $(LDADD) $(LIB_SELINUX) +-ls_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_SELINUX) ++ls_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_SELINUX) $(LIB_CAP) + pr_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) + shred_LDADD = $(LDADD) $(LIB_GETHRXTIME) $(LIB_FDATASYNC) + shuf_LDADD = $(LDADD) $(LIB_GETHRXTIME) + mktemp_LDADD = $(LDADD) $(LIB_GETHRXTIME) +-vdir_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_SELINUX) ++vdir_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_SELINUX) $(LIB_CAP) + tac_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) + + ## If necessary, add -lm to resolve use of pow in lib/strtod.c. +diff -ruN coreutils-6.10.orig/src/dircolors.c coreutils-6.10/src/dircolors.c +--- coreutils-6.10.orig/src/dircolors.c 2008-07-24 14:29:44.000000000 +0200 ++++ coreutils-6.10/src/dircolors.c 2008-07-24 14:38:14.000000000 +0200 +@@ -63,14 +63,14 @@ + "SYMLINK", "ORPHAN", "MISSING", "FIFO", "PIPE", "SOCK", "BLK", "BLOCK", + "CHR", "CHAR", "DOOR", "EXEC", "LEFT", "LEFTCODE", "RIGHT", "RIGHTCODE", + "END", "ENDCODE", "SUID", "SETUID", "SGID", "SETGID", "STICKY", +- "OTHER_WRITABLE", "OWR", "STICKY_OTHER_WRITABLE", "OWT", NULL ++ "OTHER_WRITABLE", "OWR", "STICKY_OTHER_WRITABLE", "OWT", "CAPABILITY", NULL + }; + + static const char *const ls_codes[] = + { + "no", "no", "fi", "di", "ln", "ln", "ln", "or", "mi", "pi", "pi", + "so", "bd", "bd", "cd", "cd", "do", "ex", "lc", "lc", "rc", "rc", "ec", "ec", +- "su", "su", "sg", "sg", "st", "ow", "ow", "tw", "tw", NULL ++ "su", "su", "sg", "sg", "st", "ow", "ow", "tw", "tw", "ca", NULL + }; + #define array_len(Array) (sizeof (Array) / sizeof *(Array)) + verify (array_len (slack_codes) == array_len (ls_codes)); +diff --git a/src/dircolors.hin b/src/dircolors.hin +index 38914c8..5137cc6 100644 +--- a/src/dircolors.hin ++++ b/src/dircolors.hin +@@ -77,6 +77,7 @@ CHR 40;33;01 # character device driver + ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file + SETUID 37;41 # file that is setuid (u+s) + SETGID 30;43 # file that is setgid (g+s) ++CAPABILITY 30;41 # file with capability + STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w) + OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky + STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable +diff --git a/src/ls.c b/src/ls.c +index 4b69f7d..9bc66a1 100644 +--- a/src/ls.c ++++ b/src/ls.c +@@ -38,6 +38,10 @@ + #include + #include + ++#ifdef HAVE_CAP ++# include ++#endif ++ + #if HAVE_TERMIOS_H + # include + #endif +@@ -518,14 +518,14 @@ + { + C_LEFT, C_RIGHT, C_END, C_NORM, C_FILE, C_DIR, C_LINK, C_FIFO, C_SOCK, + C_BLK, C_CHR, C_MISSING, C_ORPHAN, C_EXEC, C_DOOR, C_SETUID, C_SETGID, +- C_STICKY, C_OTHER_WRITABLE, C_STICKY_OTHER_WRITABLE ++ C_STICKY, C_OTHER_WRITABLE, C_STICKY_OTHER_WRITABLE, C_CAP + }; + + static const char *const indicator_name[]= + { + "lc", "rc", "ec", "no", "fi", "di", "ln", "pi", "so", + "bd", "cd", "mi", "or", "ex", "do", "su", "sg", "st", +- "ow", "tw", NULL ++ "ow", "tw", "ca", NULL + }; + + struct color_ext_type +@@ -553,6 +557,7 @@ static struct bin_str color_indicator[] = + { LEN_STR_PAIR ("37;44") }, /* st: sticky: black on blue */ + { LEN_STR_PAIR ("34;42") }, /* ow: other-writable: blue on green */ + { LEN_STR_PAIR ("30;42") }, /* tw: ow w/ sticky: black on green */ ++ { LEN_STR_PAIR ("30;41") }, /* capability: black on red */ + }; + + /* FIXME: comment */ +@@ -3953,6 +3953,38 @@ + DIRED_PUTCHAR (c); + } + ++#ifdef HAVE_CAP ++static bool ++/* Return true if NAME has a capability (see linux/capability.h) */ ++has_capability (const char *name) ++{ ++ cap_t cap_d; ++ char *result; ++ bool has_cap; ++ ++ cap_d = cap_get_file (name); ++ if (cap_d == NULL) ++ return false; ++ ++ result = cap_to_text (cap_d, NULL); ++ cap_free (cap_d); ++ if (!result) ++ return false; ++ ++ /* check if human-readable capability string is empty */ ++ has_cap = !!*result; ++ ++ cap_free (result); ++ return has_cap; ++} ++#else ++static bool ++has_capability (const char *name) ++{ ++ return false; ++} ++#endif ++ + static void + print_color_indicator (const char *name, mode_t mode, int linkok, + bool stat_ok, enum filetype filetype) +@@ -3923,6 +3960,8 @@ print_color_indicator (const char *name, mode_t mode, int linkok, + type = C_SETUID; + else if ((mode & S_ISGID) != 0) + type = C_SETGID; ++ else if (has_capability (name)) ++ type = C_CAP; + else if ((mode & S_IXUGO) != 0) + type = C_EXEC; + } +diff -ruN coreutils-6.10.orig/tests/ls/Makefile.am coreutils-6.10/tests/ls/Makefile.am +--- coreutils-6.10.orig/tests/ls/Makefile.am 2007-11-25 14:23:31.000000000 +0100 ++++ coreutils-6.10/tests/ls/Makefile.am 2008-07-24 14:46:36.000000000 +0200 +@@ -18,7 +18,7 @@ + TESTS = \ + stat-free-symlinks \ + nameless-uid \ +- color-dtype-dir \ ++ color-dtype-dir capability \ + stat-failed \ + stat-dtype \ + inode dangle file-type recursive dired infloop \ +diff --git a/tests/ls/capability b/tests/ls/capability +new file mode 100755 +index 0000000..549e06b +--- /dev/null ++++ b/tests/ls/capability +@@ -0,0 +1,43 @@ ++#!/bin/sh ++# Ensure "ls --color" properly colorizes file with capability. ++ ++# Copyright (C) 2008 Free Software Foundation, Inc. ++ ++# This program is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++ ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++ ++if test "$VERBOSE" = yes; then ++ set -x ++ ls --version ++fi ++ ++. $srcdir/../test-lib.sh ++uid_is_privileged_ || skip_test_ "must be run as root" ++ ++(setcap --help) 2>&1 |grep 'usage: setcap' > /dev/null \ ++ || skip_test_ "setcap utility not found" ++fail=0 ++ ++# Don't let a different umask perturb the results. ++umask 22 ++ ++touch test ++setcap cap_net_bind_service=ep test \ ++ || framework_failure ++code='30;41' ++LS_COLORS="ca=$code" \ ++ ls --color=always test > out || fail=1 ++printf "\033[0m\033[${code}mtest\033[0m\n\033[m" > out_ok || fail=1 ++compare out out_ok || fail=1 ++ ++(exit $fail); exit $fail +-- +1.5.4.1 + diff --git a/coreutils-DIR_COLORS b/coreutils-DIR_COLORS index 0583c2f..892a514 100644 --- a/coreutils-DIR_COLORS +++ b/coreutils-DIR_COLORS @@ -83,6 +83,7 @@ ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file MISSING 01;05;37;41 # ... and the files they point to SETUID 37;41 # file that is setuid (u+s) SETGID 30;43 # file that is setgid (g+s) +CAPABILITY 30;41 # file with capability STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w) OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable diff --git a/coreutils-DIR_COLORS.256color b/coreutils-DIR_COLORS.256color index 896667e..3c5c1c7 100644 --- a/coreutils-DIR_COLORS.256color +++ b/coreutils-DIR_COLORS.256color @@ -62,6 +62,7 @@ ORPHAN 01;48;5;232;38;5;9 # symlink to nonexistent file, or non-stat'able file MISSING 01;05;48;5;232;38;5;15 # ... and the files they point to SETUID 48;5;196;38;5;15 # file that is setuid (u+s) SETGID 48;5;11;38;5;16 # file that is setgid (g+s) +CAPABILITY 48;5;196;38;5;226 # file with capability STICKY_OTHER_WRITABLE 48;5;10;38;5;16 # dir that is sticky and other-writable (+t,o+w) OTHER_WRITABLE 48;5;10;38;5;21 # dir that is other-writable (o+w) and not sticky STICKY 48;5;21;38;5;15 # dir with the sticky bit set (+t) and not other-writable diff --git a/coreutils-DIR_COLORS.xterm b/coreutils-DIR_COLORS.xterm index 0aa54d2..f791f4b 100644 --- a/coreutils-DIR_COLORS.xterm +++ b/coreutils-DIR_COLORS.xterm @@ -65,6 +65,7 @@ ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file MISSING 01;05;37;41 # ... and the files they point to SETUID 37;41 # file that is setuid (u+s) SETGID 30;43 # file that is setgid (g+s) +CAPABILITY 30;41 # file with capability STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w) OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable diff --git a/coreutils.spec b/coreutils.spec index 3baa21c..6d2916a 100644 --- a/coreutils.spec +++ b/coreutils.spec @@ -1,7 +1,7 @@ Summary: The GNU core utilities: a set of tools commonly used in shell scripts Name: coreutils Version: 6.10 -Release: 27%{?dist} +Release: 28%{?dist} License: GPLv3+ Group: System Environment/Base Url: http://www.gnu.org/software/coreutils/ @@ -34,6 +34,7 @@ Patch101: coreutils-6.10-configuration.patch Patch102: coreutils-6.10-manpages.patch #Patch103: coreutils-6.10-longoptions.patch Patch104: coreutils-6.10-sparc-shafix.patch +Patch105: coreutils-6.12-dd-fullblock.patch # sh-utils Patch703: sh-utils-2.0.11-dateman.patch @@ -60,6 +61,8 @@ Patch916: coreutils-getfacl-exit-code.patch Patch950: coreutils-selinux.patch Patch951: coreutils-selinuxmanpages.patch +Patch954: coreutils-6.12-ls-libcap.patch + BuildRequires: libselinux-devel >= 1.25.6-1 BuildRequires: libacl-devel BuildRequires: gettext bison @@ -69,6 +72,7 @@ BuildRequires: autoconf >= 2.58 #dist-lzma required BuildRequires: automake >= 1.10.1 %{?!nopam:BuildRequires: pam-devel} +BuildRequires: libcap-devel >= 2.0.6 Requires(post): libselinux >= 1.25.6-1 Requires(pre): /sbin/install-info @@ -76,6 +80,7 @@ Requires(preun): /sbin/install-info Requires(post): /sbin/install-info Requires(post): grep %{?!nopam:Requires: pam >= 0.66-12} +Requires(post): libcap >= 2.0.6 # Require a C library that doesn't put LC_TIME files in our way. Conflicts: glibc < 2.2 @@ -122,6 +127,7 @@ cd %name-%version %patch102 -p1 -b .manpages #%patch103 -p1 -b .longopt %patch104 -p1 -b .sparc +%patch105 -p1 -b .dd-fullblock # sh-utils %patch703 -p1 -b .dateman @@ -145,8 +151,11 @@ cd %name-%version %patch950 -p1 -b .selinux %patch951 -p1 -b .selinuxman +%patch954 -p1 -b .ls-libcap + chmod a+x tests/sort/sort-mb-tests chmod a+x tests/mkdir/selinux +chmod a+x tests/ls/capability #fix typos/mistakes in localized documentation(#439410, #440056) for pofile in $(find ./po/*.p*) @@ -325,6 +334,12 @@ fi /sbin/runuser %changelog +* Wed Jul 28 2008 Kamil Dudka - 6.10-28 +- dd: iflag=fullblock now read full blocks if possible + (#431997, #449263) +- ls: --color now highlights files with capabilities (#449985) +- suppressed failing test in tests/touch/no-create-missing + * Fri Jul 04 2008 Ondrej Vasik - 6.10-27 - who -r should not show last runlevel for nonprintable chars (like \0) - #453249,add few missing who options to texinfo