[coreutils/f17] cumulative update for F17 - various fixes

Ondrej Vasik ovasik at fedoraproject.org
Fri Jul 13 11:46:00 UTC 2012


commit b626b61fa3b784bd4c62948d987b58aa6e1f0d31
Author: Ondřej Vašík <ovasik at redhat.com>
Date:   Fri Jul 13 13:45:52 2012 +0200

    cumulative update for F17 - various fixes

 coreutils-8.15-cp-attribute-truncate.patch |  103 ++++++++++++++++++++++++++++
 coreutils-8.15-du-x-nondir.patch           |   43 ++++++++++++
 coreutils-DIR_COLORS                       |    2 +
 coreutils-DIR_COLORS.256color              |    2 +
 coreutils-DIR_COLORS.lightbgcolor          |    2 +
 coreutils-colorls.csh                      |    8 +-
 coreutils-i18n.patch                       |    6 +-
 coreutils.spec                             |   18 +++++-
 8 files changed, 176 insertions(+), 8 deletions(-)
---
diff --git a/coreutils-8.15-cp-attribute-truncate.patch b/coreutils-8.15-cp-attribute-truncate.patch
new file mode 100644
index 0000000..b7d27ef
--- /dev/null
+++ b/coreutils-8.15-cp-attribute-truncate.patch
@@ -0,0 +1,103 @@
+From 3d53e7fe1c31aa440cc9708c7c51db6b78c07653 Mon Sep 17 00:00:00 2001
+From: =?utf8?q?P=C3=A1draig=20Brady?= <P at draigBrady.com>
+Date: Thu, 12 Apr 2012 12:47:30 +0100
+Subject: [PATCH 1/1] cp: change --attributes-only to not truncate existing files
+
+* src/copy.c (copy_reg): Don't truncate an existing file,
+to support copying attributes between existing files.
+The original use case only considered creating new files,
+and it would be a very unusual use case to be relying
+on the truncating behavior.
+* doc/coreutils.texi (cp invocation): Mention the non
+truncating behavior.
+* tests/cp/attr-existing: A new test to ensure O_TRUNC skipped.
+* tests/Makefile.am: Reference the new test.
+---
+ doc/coreutils.texi     |    6 +++---
+ src/copy.c             |    4 +++-
+ tests/Makefile.am      |    1 +
+ tests/cp/attr-existing |   29 +++++++++++++++++++++++++++++
+ 4 files changed, 36 insertions(+), 4 deletions(-)
+ create mode 100755 tests/cp/attr-existing
+
+diff --git a/doc/coreutils.texi b/doc/coreutils.texi
+index 510abb9..1fbf051 100644
+--- a/doc/coreutils.texi
++++ b/doc/coreutils.texi
+@@ -7649,9 +7649,9 @@ Equivalent to @option{-dR --preserve=all} with the reduced diagnostics.
+ 
+ @itemx --attributes-only
+ @opindex --attributes-only
+-Preserve the specified attributes of the original files in the copy,
+-but do not copy any data.  See the @option{--preserve} option for
+-controlling which attributes to copy.
++Copy only the specified attributes of the source file to the destination.
++If the destination already exists, do not alter its contents.
++See the @option{--preserve} option for controlling which attributes to copy.
+ 
+ @item -b
+ @itemx @w{@kbd{--backup}[=@var{method}]}
+diff --git a/src/copy.c b/src/copy.c
+index f63a726..414fbe0 100644
+--- a/src/copy.c
++++ b/src/copy.c
+@@ -826,7 +826,9 @@ copy_reg (char const *src_name, char const *dst_name,
+      by the specs for both cp and mv.  */
+   if (! *new_dst)
+     {
+-      dest_desc = open (dst_name, O_WRONLY | O_TRUNC | O_BINARY);
++      int open_flags =
++        O_WRONLY | O_BINARY | (x->data_copy_required ? O_TRUNC : 0);
++      dest_desc = open (dst_name, open_flags);
+       dest_errno = errno;
+ 
+       /* When using cp --preserve=context to copy to an existing destination,
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index 011051a..4d73a92 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -320,6 +320,7 @@ TESTS =						\
+   chown/separator				\
+   cp/abuse					\
+   cp/acl					\
++  cp/attr-existing				\
+   cp/backup-1					\
+   cp/backup-dir					\
+   cp/backup-is-src				\
+diff --git a/tests/cp/attr-existing b/tests/cp/attr-existing
+new file mode 100755
+index 0000000..9cf0ffc
+--- /dev/null
++++ b/tests/cp/attr-existing
+@@ -0,0 +1,29 @@
++#!/bin/sh
++# Make sure cp --attributes-only doesn't truncate existing data
++
++# Copyright 2012 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 <http://www.gnu.org/licenses/>.
++
++. "${srcdir=.}/init.sh"; path_prepend_ ../src
++print_ver_ cp
++
++printf '1' > file1
++printf '2' > file2
++printf '2' > file2.exp
++
++cp --attributes-only file1 file2 || fail=1
++cmp file2 file2.exp || fail=1
++
++Exit $fail
+-- 
+1.7.2.5
diff --git a/coreutils-8.15-du-x-nondir.patch b/coreutils-8.15-du-x-nondir.patch
new file mode 100644
index 0000000..02d120e
--- /dev/null
+++ b/coreutils-8.15-du-x-nondir.patch
@@ -0,0 +1,43 @@
+diff --git a/src/du.c b/src/du.c
+index e4e36df..41c9535 100644
+--- a/src/du.c
++++ b/src/du.c
+@@ -443,7 +443,14 @@ process_file (FTS *fts, FTSENT *ent)
+               return false;
+             }
+ 
+-          if (fts->fts_options & FTS_XDEV && fts->fts_dev != sb->st_dev)
++          /* The --one-file-system (-x) option cannot exclude anything
++             specified on the command-line.  By definition, it can exclude
++             a file or directory only when its device number is different
++             from that of its just-processed parent directory, and du does
++             not process the parent of a command-line argument.  */
++          if (fts->fts_options & FTS_XDEV
++              && FTS_ROOTLEVEL < ent->fts_level
++              && fts->fts_dev != sb->st_dev)
+             excluded = true;
+         }
+ 
+diff --git a/tests/du/one-file-system b/tests/du/one-file-system
+index f0d264a..110080f 100755
+--- a/tests/du/one-file-system
++++ b/tests/du/one-file-system
+@@ -43,7 +43,15 @@ compare exp out || fail=1
+ du -xL d > u || fail=1
+ sed 's/^[0-9][0-9]*	//' u > out1
+ echo d > exp1 || fail=1
+-
+ compare exp1 out1 || fail=1
+ 
++# With coreutils-8.15, "du -xs FILE" would print no output.
++touch f
++for opt in -x -xs; do
++  du $opt f > u || fail=1
++  sed 's/^[0-9][0-9]*	//' u > out2
++  echo f > exp2 || fail=1
++  compare exp2 out2 || fail=1
++done
++
+ Exit $fail
+--
+cgit v0.9.0.2
diff --git a/coreutils-DIR_COLORS b/coreutils-DIR_COLORS
index 5a41e99..9c182c8 100644
--- a/coreutils-DIR_COLORS
+++ b/coreutils-DIR_COLORS
@@ -240,5 +240,7 @@ EXEC 01;32
 .xml 00;33
 .epub 00;33
 .abw 00;33
+.htm 00;33
 .html 00;33
+.shtml 00;33
 .wpd 00;33
diff --git a/coreutils-DIR_COLORS.256color b/coreutils-DIR_COLORS.256color
index ddff4ac..1037dd5 100644
--- a/coreutils-DIR_COLORS.256color
+++ b/coreutils-DIR_COLORS.256color
@@ -213,5 +213,7 @@ EXEC 38;5;34
 .xml 00;33
 .epub 00;33
 .abw 00;33
+.htm 00;33
 .html 00;33
+.shtml 00;33
 .wpd 00;33
diff --git a/coreutils-DIR_COLORS.lightbgcolor b/coreutils-DIR_COLORS.lightbgcolor
index e2c05da..4456a8c 100644
--- a/coreutils-DIR_COLORS.lightbgcolor
+++ b/coreutils-DIR_COLORS.lightbgcolor
@@ -216,5 +216,7 @@ EXEC 00;32
 .xml 00;33
 .epub 00;33
 .abw 00;33
+.htm 00;33
 .html 00;33
+.shtml 00;33
 .wpd 00;33
diff --git a/coreutils-colorls.csh b/coreutils-colorls.csh
index 48daa78..e244afb 100755
--- a/coreutils-colorls.csh
+++ b/coreutils-colorls.csh
@@ -14,10 +14,10 @@ if ($?TERM) then
   if ( -e "/etc/DIR_COLORS.$TERM" ) then
      set COLORS="/etc/DIR_COLORS.$TERM"
   endif
-endif
-if ( -e "/etc/DIR_COLORS.256color" ) then
-  if ( "`tty -s && tput colors`" == "256" ) then
-     set COLORS=/etc/DIR_COLORS.256color
+  if ( -e "/etc/DIR_COLORS.256color" ) then
+    if ( "`tput colors`" == "256" ) then
+       set COLORS=/etc/DIR_COLORS.256color
+    endif
   endif
 endif
 if ( -f ~/.dircolors ) set COLORS=~/.dircolors
diff --git a/coreutils-i18n.patch b/coreutils-i18n.patch
index ec79964..a0bd8b0 100644
--- a/coreutils-i18n.patch
+++ b/coreutils-i18n.patch
@@ -3096,12 +3096,12 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
 +    }
 +  while (hi - lo > 1);
 +
-+  if (ea)
-+     *ea = (char *) month;
-+
 +  result = (!strncmp (month, monthtab[lo].name, strlen (monthtab[lo].name))
 +      ? monthtab[lo].val : 0);
 +
++  if (ea && result)
++     *ea = s + strlen (monthtab[lo].name);
++
 +  return result;
 +}
 +#endif
diff --git a/coreutils.spec b/coreutils.spec
index 7ef0e35..2e68606 100644
--- a/coreutils.spec
+++ b/coreutils.spec
@@ -18,6 +18,8 @@ Source202:  coreutils-su-l.pamd
 Source203:  coreutils-runuser-l.pamd
 
 # From upstream
+Patch1: coreutils-8.15-cp-attribute-truncate.patch
+Patch2: coreutils-8.15-du-x-nondir.patch
 
 # Our patches
 #general patch to workaround koji build system issues
@@ -121,6 +123,7 @@ Requires(post): grep
 Requires:       ncurses
 Requires:       gmp
 
+Provides: bundled(gnulib)
 Provides: fileutils = %{version}-%{release}
 Provides: sh-utils = %{version}-%{release}
 Provides: stat = %{version}-%{release}
@@ -143,6 +146,8 @@ the old GNU fileutils, sh-utils, and textutils packages.
 %setup -q
 
 # From upstream
+%patch1 -p1 -b .trunc
+%patch2 -p1 -b .xnondir
 
 # Our patches
 %patch100 -p1 -b .configure
@@ -173,7 +178,7 @@ the old GNU fileutils, sh-utils, and textutils packages.
 %patch951 -p1 -b .selinuxman
 %patch952 -p1 -b .cpZ
 
-chmod a+x tests/misc/sort-mb-tests tests/df/direct || :
+chmod a+x tests/misc/sort-mb-tests tests/df/direct tests/cp/attr-existing || :
 
 #fix typos/mistakes in localized documentation(#439410, #440056)
 find ./po/ -name "*.p*" | xargs \
@@ -416,6 +421,17 @@ fi
 %{?!norunuser:%{_sbindir}/runuser}
 
 %changelog
+* Fri Jul 13 2012 Ondrej Vasik <ovasik at redhat.com> 8.15-7
+- fix the tcsh colorls.csh behaviour in non-interactive
+  mode (#804604)
+- add .htm and .shtml to colorized DIR_COLORS document
+  type (#817218)
+- fix regression in du -x with nondir argument (by J.Meyering)
+- fix sort segfault with multibyte locales (by P.Brady)
+- add virtual provides for bundled(gnulib) copylib (#821748)
+- cp: change --attribute-only to not truncate existing files
+  (#811746)
+
 * Fri Feb 10 2012 Harald Hoyer <harald at redhat.com> 8.15-6
 - turn on testsuite again
 


More information about the scm-commits mailing list