diff --git a/.cvsignore b/.cvsignore index 189a0da..97cabc6 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -coreutils-6.10.tar.lzma +coreutils-6.11.tar.lzma diff --git a/coreutils-6.10-configuration.patch b/coreutils-6.10-configuration.patch index 5f75d5d..20c5d26 100644 --- a/coreutils-6.10-configuration.patch +++ b/coreutils-6.10-configuration.patch @@ -1,20 +1,33 @@ -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 -@@ -170,7 +170,7 @@ install_su = \ - echo " chown root $(installed_su)"; \ - chown root $(installed_su); \ - echo " chmod $(setuid_root_mode) $(installed_su)"; \ -- chmod $(setuid_root_mode) $(installed_su) \ -+ chmod $(setuid_root_mode) $(installed_su); \ - else \ - :; \ - fi -diff -urp coreutils-6.10-orig/gnulib-tests/test-getaddrinfo.c coreutils-6.10/gnulib-tests/test-getaddrinfo.c ---- coreutils-6.10-orig/gnulib-tests/test-getaddrinfo.c 2007-11-17 07:59:42.000000000 +0100 -+++ coreutils-6.10/gnulib-tests/test-getaddrinfo.c 2008-01-25 19:19:43.000000000 +0100 -@@ -61,6 +61,10 @@ int simple (char *host, char *service) - if (res == EAI_SERVICE) +diff -urNp coreutils-6.11-orig/tests/mkdir/selinux coreutils-6.11/tests/mkdir/selinux +--- coreutils-6.11-orig/tests/mkdir/selinux 2008-04-19 23:34:23.000000000 +0200 ++++ coreutils-6.11/tests/mkdir/selinux 2008-04-22 13:23:50.000000000 +0200 +@@ -30,6 +30,7 @@ fi + . $srcdir/../envvar-check + . $srcdir/../lang-default + . $srcdir/../test-lib.sh ++require_selinux_ + + c=invalid-selinux-context + msg="failed to set default file creation context to \`$c':" +diff -urNp coreutils-6.11-orig/tests/misc/runcon-no-reorder coreutils-6.11/tests/misc/runcon-no-reorder +--- coreutils-6.11-orig/tests/misc/runcon-no-reorder 2008-04-19 23:34:23.000000000 +0200 ++++ coreutils-6.11/tests/misc/runcon-no-reorder 2008-04-22 12:27:42.000000000 +0200 +@@ -34,8 +34,8 @@ fail=0 + # On such a system it fails with the above diagnostic, which is fine. + # Before the no-reorder change, it would have failed with a diagnostic + # about -j being an invalid option. +-runcon $(id -Z) true -j 2> out && : > exp ++#runcon $(id -Z) true -j 2> out && : > exp + +-compare out exp || fail=1 ++#compare out exp || fail=1 + + (exit $fail); exit $fail +diff -urp coreutils-6.11-orig/gnulib-tests/test-getaddrinfo.c coreutils-6.11/gnulib-tests/test-getaddrinfo.c +--- coreutils-6.11-orig/gnulib-tests/test-getaddrinfo.c ++++ coreutils-6.11/gnulib-tests/test-getaddrinfo.c +@@ -70,6 +70,10 @@ int simple (char *host, char *service) + if (res == EAI_NODATA) return 0; + /* Do not fail this test for temporary name resolution errors. */ @@ -23,96 +36,4 @@ diff -urp coreutils-6.10-orig/gnulib-tests/test-getaddrinfo.c coreutils-6.10/gnu + return 1; } - -diff -urNp coreutils-6.10-orig/tests/misc/chcon coreutils-6.10/tests/misc/chcon ---- coreutils-6.10-orig/tests/misc/chcon 2008-01-05 23:59:11.000000000 +0100 -+++ coreutils-6.10/tests/misc/chcon 2008-03-26 13:19:37.000000000 +0100 -@@ -21,9 +21,15 @@ u1=root - r1=object_r - t1=tmp_t - ctx=$u1:$r1:$t1 --chcon $ctx f || fail=1 -+chcon $ctx f 2>outerror || fail=1 - stat --printf='f|%C\n' f > out || fail=1 - -+cat <<\EOF > experror || fail=1 -+chcon: failed to change context of `f' to `root:object_r:tmp_t': Invalid argument -+EOF -+ -+compare outerror experror >/dev/null && skip_test_ "Missing mcstransd, skipping the test" -+ - # Use --reference. - chcon --ref=f g || fail=1 - stat --printf='g|%C\n' g >> out || fail=1 -@@ -38,8 +38,9 @@ stat --printf='g|%C\n' g >> out || fail= - u2=user_u - r2=object_r - t2=file_t --l2=SystemLow-SystemHigh --for i in --user=$u2 --role=$r2 --type=$t2 --range=$l2; do -+#do not set range here, it will fail in enforcing mode, requires permissive -+#l2=SystemLow-SystemHigh -+for i in --user=$u2 --role=$r2 --type=$t2; do - chcon $i f || fail=1 - stat --printf="f|$i|"'%C\n' f >> out || fail=1 - done -@@ -56,12 +57,24 @@ g|$ctx - f|--user=$u2|$u2:$r1:$t1 - f|--role=$r2|$u2:$r2:$t1 - f|--type=$t2|$u2:$r2:$t2 --f|--range=$l2|$u2:$r2:$t2:$l2 --f|-uroot|root:object_r:file_t:SystemLow-SystemHigh --f|-robject_r|root:object_r:file_t:SystemLow-SystemHigh --f|-ttmp_t|root:object_r:tmp_t:SystemLow-SystemHigh -+f|-uroot|root:object_r:file_t -+f|-robject_r|root:object_r:file_t -+f|-ttmp_t|root:object_r:tmp_t - EOF - - compare out exp || fail=1 - -+SELINUX_MODE=$(getenforce) -+if [ $SELINUX_MODE == "Permissive" ]; then -+#check running range for Permisive mode -+l2=SystemLow-SystemHigh -+chcon --range=$l2 f || fail -+stat --printf="f|--range=$l2|"'%C\n' f >> permout || fail=1 -+cat < permexp || fail=1 -+f|--range=$l2|root:object_r:tmp_t:SystemLow-SystemHigh -+EOF -+ -+compare permout permexp || fail=1 -+fi -+ - (exit $fail); exit $fail -diff -urNp coreutils-6.10-orig/tests/misc/factor coreutils-6.10/tests/misc/factor ---- coreutils-6.10-orig/tests/misc/factor 2007-12-13 00:14:28.000000000 +0100 -+++ coreutils-6.10/tests/misc/factor 2008-03-28 13:49:34.000000000 +0100 -@@ -71,6 +71,7 @@ my @Tests = - ['x', '4294966896', {OUT => '2 2 2 2 3 3 3 11 607 1489'}], - ['y', '4294966998', {OUT => '2 3 7 3917 26107'}], - ['z', '-1', -+ {ERR_SUBST => q!s/'1'/1/!}, # map newer glibc diagnostic to expected. - {ERR => "$prog: invalid option -- 1\n" - . "Try `$prog --help' for more information.\n"}, - {EXIT => 1}], -diff -urNp coreutils-6.10-orig/tests/cp/cp-a-selinux coreutils-6.10/tests/cp/cp-a-selinux ---- coreutils-6.10-orig/tests/cp/cp-a-selinux 2008-01-05 23:59:11.000000000 +0100 -+++ coreutils-6.10/tests/cp/cp-a-selinux 2008-03-26 13:52:24.000000000 +0100 -@@ -27,6 +27,16 @@ PRIV_CHECK_ARG=require-root . $srcdir/.. - . $srcdir/../test-lib.sh - require_selinux_ - -+#check for missing mcstrans(d) -+touch f || fail=1 -+chcon root:object_r:tmp_t f 2>outerror || fail=1 -+ -+cat <<\EOF > experror || fail=1 -+chcon: failed to change context of `f' to `root:object_r:tmp_t': Invalid argument -+EOF -+ -+compare outerror experror && skip_test_ "Missing mcstransd, skipping the test" -+ - cwd=`pwd` - cleanup_() { cd /; umount "$cwd/mnt"; } diff --git a/coreutils-6.10-lonebackslash.patch b/coreutils-6.10-lonebackslash.patch deleted file mode 100644 index 662a808..0000000 --- a/coreutils-6.10-lonebackslash.patch +++ /dev/null @@ -1,91 +0,0 @@ -diff -urNp coreutils-6.10-orig/src/paste.c coreutils-6.10/src/paste.c ---- coreutils-6.10-orig/src/paste.c 2007-11-25 14:23:31.000000000 +0100 -+++ coreutils-6.10/src/paste.c 2008-03-27 14:47:02.000000000 +0100 -@@ -42,6 +42,7 @@ - #include - #include "system.h" - #include "error.h" -+#include "quotearg.h" - - /* The official name of this program (e.g., no `g' prefix). */ - #define PROGRAM_NAME "paste" -@@ -79,12 +80,17 @@ static struct option const longopts[] = - /* Set globals delims and delim_end. Copy STRPTR to DELIMS, converting - backslash representations of special characters in STRPTR to their actual - values. The set of possible backslash characters has been expanded beyond -- that recognized by the Unix version. */ -+ that recognized by the Unix version. -+ Return 0 upon success. -+ If the string ends in an odd number of backslashes, ignore the -+ final backslash and return nonzero. */ - --static void -+static int - collapse_escapes (char const *strptr) - { - char *strout = xstrdup (strptr); -+ bool backslash_at_end = false; -+ - delims = strout; - - while (*strptr) -@@ -123,6 +129,15 @@ collapse_escapes (char const *strptr) - *strout++ = '\v'; - break; - -+ case '\\': -+ *strout++ = '\\'; -+ break; -+ -+ case '\0': -+ backslash_at_end = true; -+ goto done; -+ -+ - default: - *strout++ = *strptr; - break; -@@ -130,7 +145,11 @@ collapse_escapes (char const *strptr) - strptr++; - } - } -+ -+ done:; -+ - delim_end = strout; -+ return backslash_at_end ? 1 : 0; - } - - /* Report a write error and exit. */ -@@ -481,7 +500,15 @@ main (int argc, char **argv) - if (optind == argc) - argv[argc++] = "-"; - -- collapse_escapes (delim_arg); -+ if (collapse_escapes (delim_arg)) -+ { -+ /* Don't use the default quoting style, because that would double the -+ number of displayed backslashes, making the diagnostic look bogus. */ -+ set_quoting_style (NULL, escape_quoting_style); -+ error (EXIT_FAILURE, 0, -+ _("delimiter list ends with an unescaped backslash: %s"), -+ quotearg_colon (delim_arg)); -+ } - - if (!serial_merge) - ok = paste_parallel (argc - optind, &argv[optind]); -diff -urNp coreutils-6.10-orig/src/ptx.c coreutils-6.10/src/ptx.c ---- coreutils-6.10-orig/src/ptx.c 2007-11-25 14:23:31.000000000 +0100 -+++ coreutils-6.10/src/ptx.c 2008-03-27 14:53:24.000000000 +0100 -@@ -387,6 +387,11 @@ copy_unescaped_string (const char *strin - string++; - break; - -+ case '\0': /* lone backslash at end of string */ -+ /* ignore it */ -+ break; -+ -+ - default: - *cursor++ = '\\'; - *cursor++ = *string++; diff --git a/coreutils-6.10-md5sha1sum.patch b/coreutils-6.10-md5sha1sum.patch deleted file mode 100644 index c97eeaa..0000000 --- a/coreutils-6.10-md5sha1sum.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff -urNp coreutils-6.10-orig/src/md5sum.c coreutils-6.10/src/md5sum.c ---- coreutils-6.10-orig/src/md5sum.c 2007-11-25 14:23:31.000000000 +0100 -+++ coreutils-6.10/src/md5sum.c 2008-04-15 21:04:09.000000000 +0200 -@@ -205,6 +205,9 @@ bsd_split_3 (char *s, size_t s_len, unsi - { - size_t i; - -+ if (s_len ==0) -+ return false; -+ - *file_name = s; - - /* Find end of filename. The BSD 'md5' and 'sha1' commands do not escape -diff -urNp coreutils-6.10-orig/src/md5sum.c coreutils-6.10/src/md5sum.c ---- coreutils-6.10-orig/src/md5sum.c 2008-04-18 17:40:03.000000000 +0200 -+++ coreutils-6.10/src/md5sum.c 2008-04-18 17:48:05.000000000 +0200 -@@ -346,6 +346,8 @@ split_3 (char *s, size_t s_len, - static bool - hex_digits (unsigned char const *s) - { -+ if (!*s) -+ return false; - while (*s) - { - if (!isxdigit (*s)) -diff -urNp coreutils-6.10-orig/tests/misc/sha1sum coreutils-6.10/tests/misc/sha1sum ---- coreutils-6.10-orig/tests/misc/sha1sum 2007-12-13 00:14:28.000000000 +0100 -+++ coreutils-6.10/tests/misc/sha1sum 2008-04-15 21:05:43.000000000 +0200 -@@ -29,7 +29,7 @@ exec $PERL -w -I$srcdir/.. -MCoreutils -M"CuTmpdir qw($me)" -- - <<\EOF - require 5.003; - use strict; - --(my $program_name = $0) =~ s|.*/||; -+my $prog = 'sha1sum'; - - # Turn off localisation of executable's ouput. - @ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3; -@@ -72,6 +72,8 @@ my @Tests = - ['check-bsd3', '--check', '--status', - {IN=> {'f.sha1' => "SHA1 (f) = $sha_degenerate\n"}}, - {AUX=> {f=> 'bar'}}, {EXIT=> 1}], -+ ['bsd-segv', '--check', {IN=> {'z' => "SHA1 ("}}, {EXIT=> 1}, -+ {ERR=> "$prog: z: no properly formatted SHA1 checksum lines found\n"}], - ); - - # Insert the `--text' argument for each test. -@@ -86,7 +88,6 @@ foreach $t (@Tests) - my $save_temps = $ENV{DEBUG}; - my $verbose = $ENV{VERBOSE}; - --my $prog = 'sha1sum'; --my $fail = run_tests ($program_name, $prog, \@Tests, $save_temps, $verbose); -+my $fail = run_tests ($prog, $prog, \@Tests, $save_temps, $verbose); - exit $fail; - EOF diff --git a/coreutils-6.10-mkscontextsegfault.patch b/coreutils-6.10-mkscontextsegfault.patch deleted file mode 100644 index aa86c69..0000000 --- a/coreutils-6.10-mkscontextsegfault.patch +++ /dev/null @@ -1,97 +0,0 @@ -diff -urNp coreutils-6.10-orig/src/mkdir.c coreutils-6.10/src/mkdir.c ---- coreutils-6.10-orig/src/mkdir.c 2008-03-27 14:42:40.000000000 +0100 -+++ coreutils-6.10/src/mkdir.c 2008-03-27 14:51:48.000000000 +0100 -@@ -211,7 +211,7 @@ main (int argc, char **argv) - if (scontext && setfscreatecon (scontext) < 0) - error (EXIT_FAILURE, errno, - _("failed to set default file creation context to %s"), -- quote (optarg)); -+ quote (scontext)); - - if (options.make_ancestor_function || specified_mode) - { -diff -urNp coreutils-6.10-orig/src/mkfifo.c coreutils-6.10/src/mkfifo.c ---- coreutils-6.10-orig/src/mkfifo.c 2008-03-29 17:53:27.000000000 +0100 -+++ coreutils-6.10/src/mkfifo.c 2008-03-29 17:55:44.000000000 +0100 -@@ -1,5 +1,5 @@ - /* mkfifo -- make fifo's (named pipes) -- Copyright (C) 90, 91, 1995-2007 Free Software Foundation, Inc. -+ Copyright (C) 90, 91, 1995-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 -@@ -123,7 +123,7 @@ main (int argc, char **argv) - if (scontext && setfscreatecon (scontext) < 0) - error (EXIT_FAILURE, errno, - _("failed to set default file creation context to %s"), -- quote (optarg)); -+ quote (scontext)); - - newmode = (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH); - if (specified_mode) -diff -urNp coreutils-6.10-orig/src/mknod.c coreutils-6.10/src/mknod.c ---- coreutils-6.10-orig/src/mknod.c 2008-03-29 17:53:27.000000000 +0100 -+++ coreutils-6.10/src/mknod.c 2008-03-29 17:55:36.000000000 +0100 -@@ -175,7 +175,7 @@ main (int argc, char **argv) - if (scontext && setfscreatecon (scontext) < 0) - error (EXIT_FAILURE, errno, - _("failed to set default file creation context to %s"), -- quote (optarg)); -+ quote (scontext)); - - /* Only check the first character, to allow mnemonic usage like - `mknod /dev/rst0 character 18 0'. */ -diff -urNp coreutils-6.10-orig/tests/mkdir/selinux coreutils-6.10/tests/mkdir/selinux ---- coreutils-6.10-orig/tests/mkdir/selinux 1970-01-01 01:00:00.000000000 +0100 -+++ coreutils-6.10/tests/mkdir/selinux 2008-03-29 17:58:25.000000000 +0100 -@@ -0,0 +1,50 @@ -+#!/bin/sh -+# ensure that an invalid context doesn't cause a segfault -+ -+# 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 -+ mkdir --version -+ mkfifo --version -+ mknod --version -+fi -+ -+. $srcdir/../envvar-check -+. $srcdir/../lang-default -+. $srcdir/../test-lib.sh -+ -+c=invalid-selinux-context -+fail=0 -+msg="failed to set default file creation context to \`$c':" -+ -+# Test each of mkdir, mknod, mkfifo with "-Z invalid-context". -+ -+for cmd_w_arg in 'mkdir dir' 'mknod b p' 'mkfifo f'; do -+ $cmd_w_arg -Z $c 2> out && fail=1 -+ set $cmd_w_arg; cmd=$1 -+ echo "$cmd: $msg" > exp || fail=1 -+ -+ # Some systems fail with ENOTSUP, or EINVAL, or even ENOENT. -+ sed \ -+ -e 's/ Invalid argument$//' \ -+ -e 's/ Operation not supported$//' \ -+ -e 's/ No such file or directory$//' out > k || fail=1 -+ mv k out || fail=1 -+ compare out exp || fail=1 -+done -+ -+(exit $fail); exit $fail diff --git a/coreutils-6.10-verbose.patch b/coreutils-6.10-verbose.patch deleted file mode 100644 index c0ede7b..0000000 --- a/coreutils-6.10-verbose.patch +++ /dev/null @@ -1,227 +0,0 @@ -diff --git a/doc/coreutils.texi b/doc/coreutils.texi -index df6792d..e3a0d50 100644 ---- a/doc/coreutils.texi -+++ b/doc/coreutils.texi -@@ -2838,7 +2838,7 @@ Use digits in suffixes rather than lower-case letters. - - @itemx --verbose - @opindex --verbose --Write a diagnostic to standard error just before each output file is opened. -+Write a diagnostic just before each output file is opened. - - @end table - -@@ -8190,7 +8190,7 @@ If a file has multiple links, only the named links will be removed. - @itemx --verbose - @opindex -v - @opindex --verbose --Display status updates as sterilization proceeds. -+Display to standard error status updates as sterilization proceeds. - - @item -x - @itemx --exact -diff --git a/src/install.c b/src/install.c -index db08751..6925c55 100644 ---- a/src/install.c -+++ b/src/install.c -@@ -1,5 +1,5 @@ - /* install - copy files and set attributes -- Copyright (C) 89, 90, 91, 1995-2007 Free Software Foundation, Inc. -+ Copyright (C) 89, 90, 91, 1995-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 -@@ -160,6 +160,19 @@ static struct option const long_options[] = - {NULL, 0, NULL, 0} - }; - -+/* Verbose formatted output of variable count of arguments. */ -+static void -+verbose_output (FILE *fp, char const *fmt, ...) -+{ -+ va_list ap; -+ fputs (program_name, fp); -+ fputs (": ", fp); -+ va_start (ap, fmt); -+ vfprintf (fp, fmt, ap); -+ va_end (ap); -+ fputc ('\n', fp); -+} -+ - static void - cp_option_init (struct cp_options *x) - { -@@ -762,7 +775,7 @@ announce_mkdir (char const *dir, void *options) - { - struct cp_options const *x = options; - if (x->verbose) -- error (0, 0, _("creating directory %s"), quote (dir)); -+ verbose_output (stdout,_("creating directory %s"), quote (dir)); - } - - /* Make ancestor directory DIR, whose last file name component is -diff --git a/src/rmdir.c b/src/rmdir.c -index bb1a0c8..1f17f6a 100644 ---- a/src/rmdir.c -+++ b/src/rmdir.c -@@ -1,6 +1,6 @@ - /* rmdir -- remove directories - -- Copyright (C) 90, 91, 1995-2002, 2004, 2005, 2006, 2007 Free Software -+ Copyright (C) 90, 91, 1995-2002, 2004-2008 Free Software - Foundation, Inc. - - This program is free software: you can redistribute it and/or modify -@@ -72,6 +72,19 @@ static struct option const longopts[] = - {NULL, 0, NULL, 0} - }; - -+/* Verbose formatted output of variable count of arguments. */ -+static void -+verbose_output (FILE *fp, char const *fmt, ...) -+{ -+ va_list ap; -+ fputs (program_name, fp); -+ fputs (": ", fp); -+ va_start (ap, fmt); -+ vfprintf (fp, fmt, ap); -+ va_end (ap); -+ fputc ('\n', fp); -+} -+ - /* Return true if ERROR_NUMBER is one of the values associated - with a failed rmdir due to non-empty target directory. */ - static bool -@@ -134,7 +147,7 @@ remove_parents (char *dir) - - /* Give a diagnostic for each attempted removal if --verbose. */ - if (verbose) -- error (0, 0, _("removing directory, %s"), quote (dir)); -+ verbose_output (stdout,_("removing directory, %s"), quote (dir)); - - ok = (rmdir (dir) == 0); - -@@ -233,7 +246,7 @@ main (int argc, char **argv) - - /* Give a diagnostic for each attempted removal if --verbose. */ - if (verbose) -- error (0, 0, _("removing directory, %s"), dir); -+ verbose_output(stdout, _("removing directory, %s"), dir); - - if (rmdir (dir) != 0) - { -diff --git a/src/mkdir.c b/src/mkdir.c -index 0704077..3781065 100644 ---- a/src/mkdir.c -+++ b/src/mkdir.c -@@ -1,5 +1,5 @@ - /* mkdir -- make directories -- Copyright (C) 90, 1995-2002, 2004-2007 Free Software Foundation, Inc. -+ Copyright (C) 90, 1995-2002, 2004-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 -@@ -79,6 +79,19 @@ Mandatory arguments to long options are mandatory for short options too.\n\ - exit (status); - } - -+/* Verbose formatted output of variable count of arguments. */ -+static void -+verbose_output (FILE *fp, char const *fmt, ...) -+{ -+ va_list ap; -+ fputs (program_name, fp); -+ fputs (": ", fp); -+ va_start (ap, fmt); -+ vfprintf (fp, fmt, ap); -+ va_end (ap); -+ fputc ('\n', fp); -+} -+ - /* Options passed to subsidiary functions. */ - struct mkdir_options - { -@@ -105,7 +118,7 @@ announce_mkdir (char const *dir, void *options) - { - struct mkdir_options const *o = options; - if (o->created_directory_format) -- error (0, 0, o->created_directory_format, quote (dir)); -+ verbose_output (stdout, o->created_directory_format, quote (dir)); - } - - /* Make ancestor directory DIR, whose last component is COMPONENT, -diff --git a/src/split.c b/src/split.c -index 5807a1c..f84d40e 100644 ---- a/src/split.c -+++ b/src/split.c -@@ -1,5 +1,5 @@ - /* split.c -- split a file into pieces. -- Copyright (C) 1988, 1991, 1995-2007 Free Software Foundation, Inc. -+ Copyright (C) 1988, 1991, 1995-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 -@@ -122,8 +122,8 @@ Mandatory arguments to long options are mandatory for short options too.\n\ - -l, --lines=NUMBER put NUMBER lines per output file\n\ - "), DEFAULT_SUFFIX_LENGTH); - fputs (_("\ -- --verbose print a diagnostic to standard error just\n\ -- before each output file is opened\n\ -+ --verbose print a diagnostic just before each\n\ -+ output file is opened\n\ - "), stdout); - fputs (HELP_OPTION_DESCRIPTION, stdout); - fputs (VERSION_OPTION_DESCRIPTION, stdout); -@@ -208,7 +208,7 @@ cwrite (bool new_file_flag, const char *bp, size_t bytes) - - next_file_name (); - if (verbose) -- fprintf (stderr, _("creating file %s\n"), quote (outfile)); -+ fprintf (stdout, _("creating file %s\n"), quote (outfile)); - output_desc = open (outfile, - O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, - (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP -diff --git a/tests/misc/split-a b/tests/misc/split-a -index 794115f..a8eed38 100755 ---- a/tests/misc/split-a -+++ b/tests/misc/split-a -@@ -1,7 +1,7 @@ - #!/bin/sh - # Show that split -a works. - --# Copyright (C) 2002-2007 Free Software Foundation, Inc. -+# Copyright (C) 2002-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 -@@ -39,7 +39,7 @@ test -f xaz && fail=1 - rm -f x* - - # With a longer suffix, it must succeed. --split --verbose -b 1 -a 2 in 2> err || fail=1 -+split --verbose -b 1 -a 2 in > err || fail=1 - test -f xaa || fail=1 - test -f xaz || fail=1 - test -f xba || fail=1 -diff --git a/tests/mkdir/p-v b/tests/mkdir/p-v -index 2c84b41..569e9b0 100755 ---- a/tests/mkdir/p-v -+++ b/tests/mkdir/p-v -@@ -1,7 +1,7 @@ - #!/bin/sh - # Test mkdir -pv. - --# Copyright (C) 2006, 2007 Free Software Foundation, Inc. -+# Copyright (C) 2006-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 -@@ -24,7 +24,7 @@ fi - . $srcdir/../lang-default - . $srcdir/../test-lib.sh - --mkdir -pv foo/a/b/c/d 2>out || exit -+mkdir -pv foo/a/b/c/d >out || exit - - diff - out <<\EOF - mkdir: created directory `foo' diff --git a/coreutils-dddoubleclose.patch b/coreutils-dddoubleclose.patch deleted file mode 100644 index 6a4edb1..0000000 --- a/coreutils-dddoubleclose.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff -urNp coreutils-6.10-orig/src/dd.c coreutils-6.10/src/dd.c ---- coreutils-6.10-orig/src/dd.c 2007-12-06 14:22:42.000000000 +0100 -+++ coreutils-6.10/src/dd.c 2008-03-11 12:48:12.000000000 +0100 -@@ -391,6 +391,25 @@ static char const ebcdic_to_ascii[] = - '\070', '\071', '\372', '\373', '\374', '\375', '\376', '\377' - }; - -+/* True if we need to close the standard output *stream*. */ -+static bool close_stdout_required = true; -+ -+/* The only reason to close the standard output *stream* is if -+ parse_long_options fails (as it does for --help or --version). -+ In any other case, dd uses only the STDOUT_FILENO file descriptor, -+ and the "cleanup" function calls "close (STDOUT_FILENO)". -+ Closing the file descriptor and then letting the usual atexit-run -+ close_stdout function call "fclose (stdout)" would result in a -+ harmless failure of the close syscall (with errno EBADF). -+ This function serves solely to avoid the unnecessary close_stdout -+ call, once parse_long_options has succeeded. */ -+static void -+maybe_close_stdout (void) -+{ -+ if (close_stdout_required) -+ close_stdout (); -+} -+ - void - usage (int status) - { -@@ -1639,12 +1658,14 @@ main (int argc, char **argv) - textdomain (PACKAGE); - - /* Arrange to close stdout if parse_long_options exits. */ -- atexit (close_stdout); -+ atexit (maybe_close_stdout); - - page_size = getpagesize (); - - parse_long_options (argc, argv, PROGRAM_NAME, PACKAGE, VERSION, - usage, AUTHORS, (char const *) NULL); -+ close_stdout_required = false; -+ - if (getopt_long (argc, argv, "", NULL, NULL) != -1) - usage (EXIT_FAILURE); - diff --git a/coreutils-i18n.patch b/coreutils-i18n.patch index 8a7cc1b..07d9d7f 100644 --- a/coreutils-i18n.patch +++ b/coreutils-i18n.patch @@ -329,7 +329,7 @@ error (EXIT_FAILURE, errno, "-"); --- coreutils-6.8+/src/join.c.i18n 2007-01-14 15:41:28.000000000 +0000 +++ coreutils-6.8+/src/join.c 2007-03-01 15:08:24.000000000 +0000 -@@ -23,16 +23,30 @@ +@@ -23,17 +23,31 @@ #include #include @@ -352,6 +352,7 @@ #include "stdio--.h" #include "xmemcoll.h" #include "xstrtol.h" + #include "argmatch.h" +/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */ +#if HAVE_MBRTOWC && defined mbstate_t @@ -562,144 +563,6 @@ xfields (line); return true; } -@@ -303,56 +469,114 @@ - keycmp (struct line const *line1, struct line const *line2) - { - /* Start of field to compare in each file. */ -- char *beg1; -- char *beg2; -- -- size_t len1; -- size_t len2; /* Length of fields to compare. */ -+ char *beg[2]; -+ char *copy[2]; -+ size_t len[2]; /* Length of fields to compare. */ - int diff; -+ int i, j; - - if (join_field_1 < line1->nfields) - { -- beg1 = line1->fields[join_field_1].beg; -- len1 = line1->fields[join_field_1].len; -+ beg[0] = line1->fields[join_field_1].beg; -+ len[0] = line1->fields[join_field_1].len; - } - else - { -- beg1 = NULL; -- len1 = 0; -+ beg[0] = NULL; -+ len[0] = 0; - } - - if (join_field_2 < line2->nfields) - { -- beg2 = line2->fields[join_field_2].beg; -- len2 = line2->fields[join_field_2].len; -+ beg[1] = line2->fields[join_field_2].beg; -+ len[1] = line2->fields[join_field_2].len; - } - else - { -- beg2 = NULL; -- len2 = 0; -+ beg[1] = NULL; -+ len[1] = 0; - } - -- if (len1 == 0) -- return len2 == 0 ? 0 : -1; -- if (len2 == 0) -+ if (len[0] == 0) -+ return len[1] == 0 ? 0 : -1; -+ if (len[1] == 0) - return 1; - - if (ignore_case) - { -- /* FIXME: ignore_case does not work with NLS (in particular, -- with multibyte chars). */ -- diff = memcasecmp (beg1, beg2, MIN (len1, len2)); -+#ifdef HAVE_MBRTOWC -+ if (MB_CUR_MAX > 1) -+ { -+ size_t mblength; -+ wchar_t wc, uwc; -+ mbstate_t state, state_bak; -+ -+ memset (&state, '\0', sizeof (mbstate_t)); -+ -+ for (i = 0; i < 2; i++) -+ { -+ copy[i] = alloca (len[i] + 1); -+ -+ for (j = 0; j < MIN (len[0], len[1]);) -+ { -+ state_bak = state; -+ mblength = mbrtowc (&wc, beg[i] + j, len[i] - j, &state); -+ -+ switch (mblength) -+ { -+ case (size_t) -1: -+ case (size_t) -2: -+ state = state_bak; -+ /* Fall through */ -+ case 0: -+ mblength = 1; -+ break; -+ -+ default: -+ uwc = towupper (wc); -+ -+ if (uwc != wc) -+ { -+ mbstate_t state_wc; -+ -+ memset (&state_wc, '\0', sizeof (mbstate_t)); -+ wcrtomb (copy[i] + j, uwc, &state_wc); -+ } -+ else -+ memcpy (copy[i] + j, beg[i] + j, mblength); -+ } -+ j += mblength; -+ } -+ copy[i][j] = '\0'; -+ } -+ } -+ else -+#endif -+ { -+ for (i = 0; i < 2; i++) -+ { -+ copy[i] = alloca (len[i] + 1); -+ -+ for (j = 0; j < MIN (len[0], len[1]); j++) -+ copy[i][j] = toupper (beg[i][j]); -+ -+ copy[i][j] = '\0'; -+ } -+ } - } - else - { -- if (hard_LC_COLLATE) -- return xmemcoll (beg1, len1, beg2, len2); -- diff = memcmp (beg1, beg2, MIN (len1, len2)); -+ copy[0] = (unsigned char *) beg[0]; -+ copy[1] = (unsigned char *) beg[1]; - } - -+ if (hard_LC_COLLATE) -+ return xmemcoll ((char *) copy[0], len[0], (char *) copy[1], len[1]); -+ diff = memcmp (copy[0], copy[1], MIN (len[0], len[1])); -+ - if (diff) - return diff; -- return len1 < len2 ? -1 : len1 != len2; -+ return len[0] - len[1]; - } - - /* Print field N of LINE if it exists and is nonempty, otherwise @@ -377,11 +601,18 @@ /* Print the join of LINE1 and LINE2. */ @@ -823,7 +686,149 @@ + tablen = newtablen; } break; + +diff -urNp coreutils-6.11-orig/src/join.c coreutils-6.11/src/join.c +--- coreutils-6.11-orig/src/join.c 2008-04-21 13:44:32.000000000 +0200 ++++ coreutils-6.11/src/join.c 2008-04-21 14:03:22.000000000 +0200 +@@ -324,56 +324,115 @@ keycmp (struct line const *line1, struct + size_t jf_1, size_t jf_2) + { + /* Start of field to compare in each file. */ +- char *beg1; +- char *beg2; +- +- size_t len1; +- size_t len2; /* Length of fields to compare. */ ++ char *beg[2]; ++ char *copy[2]; ++ size_t len[2]; /* Length of fields to compare. */ + int diff; ++ int i, j; + + if (jf_1 < line1->nfields) + { +- beg1 = line1->fields[jf_1].beg; +- len1 = line1->fields[jf_1].len; ++ beg[0] = line1->fields[jf_1].beg; ++ len[0] = line1->fields[jf_1].len; + } + else + { +- beg1 = NULL; +- len1 = 0; ++ beg[0] = NULL; ++ len[0] = 0; + } + + if (jf_2 < line2->nfields) + { +- beg2 = line2->fields[jf_2].beg; +- len2 = line2->fields[jf_2].len; ++ beg[1] = line2->fields[jf_2].beg; ++ len[1] = line2->fields[jf_2].len; + } + else + { +- beg2 = NULL; +- len2 = 0; ++ beg[1] = NULL; ++ len[1] = 0; + } + +- if (len1 == 0) +- return len2 == 0 ? 0 : -1; +- if (len2 == 0) ++ if (len[0] == 0) ++ return len[1] == 0 ? 0 : -1; ++ if (len[1] == 0) + return 1; + + if (ignore_case) + { +- /* FIXME: ignore_case does not work with NLS (in particular, +- with multibyte chars). */ +- diff = memcasecmp (beg1, beg2, MIN (len1, len2)); ++#ifdef HAVE_MBRTOWC ++ if (MB_CUR_MAX > 1) ++ { ++ size_t mblength; ++ wchar_t wc, uwc; ++ mbstate_t state, state_bak; ++ ++ memset (&state, '\0', sizeof (mbstate_t)); ++ ++ for (i = 0; i < 2; i++) ++ { ++ copy[i] = alloca (len[i] + 1); ++ ++ for (j = 0; j < MIN (len[0], len[1]);) ++ { ++ state_bak = state; ++ mblength = mbrtowc (&wc, beg[i] + j, len[i] - j, &state); ++ ++ switch (mblength) ++ { ++ case (size_t) -1: ++ case (size_t) -2: ++ state = state_bak; ++ /* Fall through */ ++ case 0: ++ mblength = 1; ++ break; ++ ++ default: ++ uwc = towupper (wc); ++ ++ if (uwc != wc) ++ { ++ mbstate_t state_wc; ++ ++ memset (&state_wc, '\0', sizeof (mbstate_t)); ++ wcrtomb (copy[i] + j, uwc, &state_wc); ++ } ++ else ++ memcpy (copy[i] + j, beg[i] + j, mblength); ++ } ++ j += mblength; ++ } ++ copy[i][j] = '\0'; ++ } ++ } ++ else ++#endif ++ { ++ for (i = 0; i < 2; i++) ++ { ++ copy[i] = alloca (len[i] + 1); ++ ++ for (j = 0; j < MIN (len[0], len[1]); j++) ++ copy[i][j] = toupper (beg[i][j]); ++ ++ copy[i][j] = '\0'; ++ } ++ } + } + else + { +- if (hard_LC_COLLATE) +- return xmemcoll (beg1, len1, beg2, len2); +- diff = memcmp (beg1, beg2, MIN (len1, len2)); ++ copy[0] = (unsigned char *) beg[0]; ++ copy[1] = (unsigned char *) beg[1]; + } + ++ if (hard_LC_COLLATE) ++ return xmemcoll ((char *) copy[0], len[0], (char *) copy[1], len[1]); ++ diff = memcmp (copy[0], copy[1], MIN (len[0], len[1])); ++ ++ + if (diff) + return diff; +- return len1 < len2 ? -1 : len1 != len2; ++ return len[0] - len[1]; + } + /* Check that successive input lines PREV and CURRENT from input file --- coreutils-6.8+/src/uniq.c.i18n 2007-01-14 15:41:28.000000000 +0000 +++ coreutils-6.8+/src/uniq.c 2007-03-01 15:08:24.000000000 +0000 @@ -23,6 +23,16 @@ diff --git a/coreutils-mvatomic.patch b/coreutils-mvatomic.patch deleted file mode 100644 index 6de3494..0000000 --- a/coreutils-mvatomic.patch +++ /dev/null @@ -1,103 +0,0 @@ - src/copy.c | 5 +++-- - tests/mv/Makefile.am | 4 ++-- - tests/mv/atomic2 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 55 insertions(+), 4 deletions(-) - create mode 100755 tests/mv/atomic2 - -diff --git a/src/copy.c b/src/copy.c -index fd31b5c..208a674 100644 ---- a/src/copy.c -+++ b/src/copy.c -@@ -1339,10 +1339,11 @@ copy_internal (char const *src_name, char const *dst_name, - new_dst = true; - } - else if (! S_ISDIR (dst_sb.st_mode) -+ /* Never unlink dst_name when in move mode. */ -+ && ! x->move_mode - && (x->unlink_dest_before_opening - || (x->preserve_links && 1 < dst_sb.st_nlink) -- || (!x->move_mode -- && x->dereference == DEREF_NEVER -+ || (x->dereference == DEREF_NEVER - && S_ISLNK (src_sb.st_mode)) - )) - { -diff --git a/tests/mv/Makefile.am b/tests/mv/Makefile.am -index c121911..92ec68e 100644 ---- a/tests/mv/Makefile.am -+++ b/tests/mv/Makefile.am -@@ -1,7 +1,6 @@ - # Make coreutils tests for "mv". -*-Makefile-*- - --# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 --# Free Software Foundation, Inc. -+# Copyright (C) 1998-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 -@@ -17,6 +16,7 @@ - # along with this program. If not, see . - - TESTS = \ -+ atomic2 \ - sticky-to-xpart \ - hard-verbose \ - backup-dir \ -diff --git a/tests/mv/atomic2 b/tests/mv/atomic2 -new file mode 100755 -index 0000000..d1029aa ---- /dev/null -+++ b/tests/mv/atomic2 -@@ -0,0 +1,50 @@ -+#!/bin/sh -+# ensure that mv doesn't first unlink a multi-hard-linked destination -+ -+# 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 -+ mv --version -+fi -+ -+. $srcdir/../strace -+. $srcdir/../test-lib.sh -+ -+# Before the fix, mv would unnecessarily unlink the destination symlink: -+# $ rm -f a b b2; touch a b; ln b b2; strace -e unlink /p/bin/mv a b -+# unlink("b") = 0 -+# -+# With the fix, it doesn't call unlink: -+# $ rm -f a b b2; touch a b; ln b b2; strace -e unlink ./mv a b -+# $ -+ -+touch a b || framework_failure -+ln b b2 || framework_failure -+ -+fail=0 -+ -+strace -qe unlink mv a b > out 2>&1 || fail=1 -+$EGREP 'unlink.*"b"' out && fail=1 -+ -+# Ensure that the source, "a", is gone. -+ls -dl a > /dev/null 2>&1 && fail=1 -+ -+# Ensure that the destination, "b", has link count 1. -+n_links=`stat --printf=%h b` || fail=1 -+test "$n_links" = 1 || fail=1 -+ -+(exit $fail); exit $fail --- -1.5.5.rc0.7.g57e83 diff --git a/coreutils-selinux.patch b/coreutils-selinux.patch index 9390f05..3daf0e5 100644 --- a/coreutils-selinux.patch +++ b/coreutils-selinux.patch @@ -967,19 +967,6 @@ diff -urp coreutils-6.10-orig/src/mkdir.c coreutils-6.10/src/mkdir.c "), stdout); fputs (HELP_OPTION_DESCRIPTION, stdout); fputs (VERSION_OPTION_DESCRIPTION, stdout); -@@ -173,6 +174,12 @@ main (int argc, char **argv) - options.created_directory_format = _("created directory %s"); - break; - case 'Z': -+ /* politely decline if we're not on a selinux-enabled kernel. */ -+ if( !(is_selinux_enabled()>0)) { -+ fprintf( stderr, "Sorry, --context (-Z) can be used only on " -+ "a selinux-enabled kernel.\n" ); -+ exit( 1 ); -+ } - scontext = optarg; - break; - case_GETOPT_HELP_CHAR; diff -urp coreutils-6.10-orig/src/mkfifo.c coreutils-6.10/src/mkfifo.c --- coreutils-6.10-orig/src/mkfifo.c 2008-01-05 23:58:25.000000000 +0100 +++ coreutils-6.10/src/mkfifo.c 2008-01-25 16:58:15.000000000 +0100 @@ -993,19 +980,6 @@ diff -urp coreutils-6.10-orig/src/mkfifo.c coreutils-6.10/src/mkfifo.c "), stdout); fputs (_("\ Mandatory arguments to long options are mandatory for short options too.\n\ -@@ -98,6 +99,12 @@ main (int argc, char **argv) - specified_mode = optarg; - break; - case 'Z': -+ if (!(0 < is_selinux_enabled())) -+ { -+ fprintf( stderr, "Sorry, --context (-Z) can be used only on " -+ "a selinux-enabled kernel.\n" ); -+ exit (1); -+ } - scontext = optarg; - break; - case_GETOPT_HELP_CHAR; diff -urp coreutils-6.10-orig/src/mknod.c coreutils-6.10/src/mknod.c --- coreutils-6.10-orig/src/mknod.c 2008-01-05 23:58:25.000000000 +0100 +++ coreutils-6.10/src/mknod.c 2008-01-25 17:01:11.000000000 +0100 @@ -1028,19 +1002,6 @@ diff -urp coreutils-6.10-orig/src/mknod.c coreutils-6.10/src/mknod.c "), stdout); fputs (_("\ Mandatory arguments to long options are mandatory for short options too.\n\ -@@ -114,6 +115,12 @@ main (int argc, char **argv) - specified_mode = optarg; - break; - case 'Z': -+ /* politely decline if we're not on a selinux-enabled kernel. */ -+ if( !(is_selinux_enabled()>0)) { -+ fprintf( stderr, "Sorry, --context (-Z) can be used only on " -+ "a selinux-enabled kernel.\n" ); -+ exit( 1 ); -+ } - scontext = optarg; - break; - case_GETOPT_HELP_CHAR; diff -urp coreutils-6.10-orig/src/mv.c coreutils-6.10/src/mv.c --- coreutils-6.10-orig/src/mv.c 2008-01-05 23:59:11.000000000 +0100 +++ coreutils-6.10/src/mv.c 2008-01-25 17:11:50.000000000 +0100 diff --git a/coreutils.spec b/coreutils.spec index 7852103..287d19f 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: 21%{?dist} +Version: 6.11 +Release: 1%{?dist} License: GPLv3+ Group: System Environment/Base Url: http://www.gnu.org/software/coreutils/ @@ -18,12 +18,6 @@ Source202: coreutils-su-l.pamd Source203: coreutils-runuser-l.pamd # From upstream -Patch1: coreutils-6.10-verbose.patch -Patch2: coreutils-dddoubleclose.patch -Patch3: coreutils-mvatomic.patch -Patch4: coreutils-6.10-lonebackslash.patch -Patch5: coreutils-6.10-mkscontextsegfault.patch -Patch6: coreutils-6.10-md5sha1sum.patch # Our patches Patch100: coreutils-chgrp.patch @@ -102,12 +96,6 @@ lzma -dc %SOURCE0 | tar xf - cd %name-%version # From upstream -%patch1 -p1 -b .verbose -%patch2 -p1 -b .doubleclose -%patch3 -p1 -b .atomic -%patch4 -p1 -b .backslash -%patch5 -p1 -b .mksegfault -%patch6 -p1 -b .mda5sum # Our patches %patch100 -p1 -b .chgrp @@ -138,7 +126,6 @@ cd %name-%version %patch951 -p1 -b .selinuxman chmod a+x tests/sort/sort-mb-tests -chmod a+x tests/mkdir/selinux #fix typos/mistakes in localized documentation(#439410, #440056) for pofile in $(find ./po/*.p*) @@ -314,6 +301,10 @@ fi /sbin/runuser %changelog +* Mon Apr 21 2008 Ondrej Vasik - 6.11-1 +- New upstream release 6.11 +- removed accepted patches + few minor patch changes + * Fri Apr 18 2008 Ondrej Vasik - 6.10-21 - fix wrong checksum line handling in sha1sum -c command(#439531) diff --git a/sh-utils-2.0.11-dateman.patch b/sh-utils-2.0.11-dateman.patch index ff9ca67..e168999 100644 --- a/sh-utils-2.0.11-dateman.patch +++ b/sh-utils-2.0.11-dateman.patch @@ -1,9 +1,9 @@ --- coreutils-5.92/man/date.1.dateman 2005-10-22 19:14:46.000000000 +0100 +++ coreutils-5.92/man/date.1 2005-10-24 17:57:38.000000000 +0100 -@@ -188,6 +188,11 @@ - then an optional modifier, which is either - E to use the locale's alternate representations if available, or - O to use the locale's alternate numeric symbols if available. +@@ -214,6 +214,11 @@ + relative date, and numbers. An empty string indicates the beginning + of the day. The date string format is more complex than is easily + documented here but is fully described in the info documentation. +.SH ENVIRONMENT +.TP +TZ diff --git a/sources b/sources index f3975e0..13eed64 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -23582a4e8b21e837cfbafbc3834a8a4b coreutils-6.10.tar.lzma +19e5f1a1529ac6e95748dd4230fa7733 coreutils-6.11.tar.lzma