[arch-commits] Commit in coreutils/repos (10 files)

Dave Reisner dreisner at nymeria.archlinux.org
Thu Apr 3 18:31:50 UTC 2014


    Date: Thursday, April 3, 2014 @ 20:31:50
  Author: dreisner
Revision: 209766

archrelease: copy trunk to testing-i686, testing-x86_64

Added:
  coreutils/repos/testing-i686/
  coreutils/repos/testing-i686/0001-cp-don-t-reserve-a-device-number.patch
    (from rev 209765, coreutils/trunk/0001-cp-don-t-reserve-a-device-number.patch)
  coreutils/repos/testing-i686/PKGBUILD
    (from rev 209765, coreutils/trunk/PKGBUILD)
  coreutils/repos/testing-i686/coreutils-8.22-shuf-segfault.patch
    (from rev 209765, coreutils/trunk/coreutils-8.22-shuf-segfault.patch)
  coreutils/repos/testing-i686/coreutils.install
    (from rev 209765, coreutils/trunk/coreutils.install)
  coreutils/repos/testing-x86_64/
  coreutils/repos/testing-x86_64/0001-cp-don-t-reserve-a-device-number.patch
    (from rev 209765, coreutils/trunk/0001-cp-don-t-reserve-a-device-number.patch)
  coreutils/repos/testing-x86_64/PKGBUILD
    (from rev 209765, coreutils/trunk/PKGBUILD)
  coreutils/repos/testing-x86_64/coreutils-8.22-shuf-segfault.patch
    (from rev 209765, coreutils/trunk/coreutils-8.22-shuf-segfault.patch)
  coreutils/repos/testing-x86_64/coreutils.install
    (from rev 209765, coreutils/trunk/coreutils.install)

------------------------------------------------------------+
 testing-i686/0001-cp-don-t-reserve-a-device-number.patch   |   77 +++++++++++
 testing-i686/PKGBUILD                                      |   46 ++++++
 testing-i686/coreutils-8.22-shuf-segfault.patch            |   74 ++++++++++
 testing-i686/coreutils.install                             |   17 ++
 testing-x86_64/0001-cp-don-t-reserve-a-device-number.patch |   77 +++++++++++
 testing-x86_64/PKGBUILD                                    |   46 ++++++
 testing-x86_64/coreutils-8.22-shuf-segfault.patch          |   74 ++++++++++
 testing-x86_64/coreutils.install                           |   17 ++
 8 files changed, 428 insertions(+)

Copied: coreutils/repos/testing-i686/0001-cp-don-t-reserve-a-device-number.patch (from rev 209765, coreutils/trunk/0001-cp-don-t-reserve-a-device-number.patch)
===================================================================
--- testing-i686/0001-cp-don-t-reserve-a-device-number.patch	                        (rev 0)
+++ testing-i686/0001-cp-don-t-reserve-a-device-number.patch	2014-04-03 18:31:50 UTC (rev 209766)
@@ -0,0 +1,77 @@
+From d0294ff3b90430750a631556277c75f1a555dd44 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert at cs.ucla.edu>
+Date: Thu, 3 Apr 2014 09:48:22 -0700
+Subject: [PATCH] cp: don't reserve a device number
+
+* src/copy.c (copy_internal): Replace dev_t arg DEVICE with struct
+stat pointer arg PARENT.  All callers changed.  This removes an
+unwarranted assumption that dev_t values of 0 cannot occur in file
+systems.  See: http://bugs.gnu.org/17179
+---
+ src/copy.c | 15 +++++++--------
+ 1 file changed, 7 insertions(+), 8 deletions(-)
+
+diff --git a/src/copy.c b/src/copy.c
+index 781cc1e..d471a77 100644
+--- a/src/copy.c
++++ b/src/copy.c
+@@ -117,7 +117,7 @@ struct dir_list
+ #define DEST_INFO_INITIAL_CAPACITY 61
+ 
+ static bool copy_internal (char const *src_name, char const *dst_name,
+-                           bool new_dst, dev_t device,
++                           bool new_dst, struct stat const *parent,
+                            struct dir_list *ancestors,
+                            const struct cp_options *x,
+                            bool command_line_arg,
+@@ -621,7 +621,7 @@ copy_dir (char const *src_name_in, char const *dst_name_in, bool new_dst,
+       char *dst_name = file_name_concat (dst_name_in, namep, NULL);
+       bool first_dir_created = *first_dir_created_per_command_line_arg;
+ 
+-      ok &= copy_internal (src_name, dst_name, new_dst, src_sb->st_dev,
++      ok &= copy_internal (src_name, dst_name, new_dst, src_sb,
+                            ancestors, &non_command_line_options, false,
+                            &first_dir_created,
+                            &local_copy_into_self, NULL);
+@@ -1725,9 +1725,8 @@ should_dereference (const struct cp_options *x, bool command_line_arg)
+ /* Copy the file SRC_NAME to the file DST_NAME.  The files may be of
+    any type.  NEW_DST should be true if the file DST_NAME cannot
+    exist because its parent directory was just created; NEW_DST should
+-   be false if DST_NAME might already exist.  DEVICE is the device
+-   number of the parent directory, or 0 if the parent of this file is
+-   not known.  ANCESTORS points to a linked, null terminated list of
++   be false if DST_NAME might already exist.  A nonnull PARENT describes the
++   parent directory.  ANCESTORS points to a linked, null terminated list of
+    devices and inodes of parent directories of SRC_NAME.  COMMAND_LINE_ARG
+    is true iff SRC_NAME was specified on the command line.
+    FIRST_DIR_CREATED_PER_COMMAND_LINE_ARG is both input and output.
+@@ -1737,7 +1736,7 @@ should_dereference (const struct cp_options *x, bool command_line_arg)
+ static bool
+ copy_internal (char const *src_name, char const *dst_name,
+                bool new_dst,
+-               dev_t device,
++               struct stat const *parent,
+                struct dir_list *ancestors,
+                const struct cp_options *x,
+                bool command_line_arg,
+@@ -2434,7 +2433,7 @@ copy_internal (char const *src_name, char const *dst_name,
+         }
+ 
+       /* Decide whether to copy the contents of the directory.  */
+-      if (x->one_file_system && device != 0 && device != src_sb.st_dev)
++      if (x->one_file_system && parent && parent->st_dev != src_sb.st_dev)
+         {
+           /* Here, we are crossing a file system boundary and cp's -x option
+              is in effect: so don't copy the contents of this directory. */
+@@ -2827,7 +2826,7 @@ copy (char const *src_name, char const *dst_name,
+   top_level_dst_name = dst_name;
+ 
+   bool first_dir_created_per_command_line_arg = false;
+-  return copy_internal (src_name, dst_name, nonexistent_dst, 0, NULL,
++  return copy_internal (src_name, dst_name, nonexistent_dst, NULL, NULL,
+                         options, true,
+                         &first_dir_created_per_command_line_arg,
+                         copy_into_self, rename_succeeded);
+-- 
+1.9.1
+

Copied: coreutils/repos/testing-i686/PKGBUILD (from rev 209765, coreutils/trunk/PKGBUILD)
===================================================================
--- testing-i686/PKGBUILD	                        (rev 0)
+++ testing-i686/PKGBUILD	2014-04-03 18:31:50 UTC (rev 209766)
@@ -0,0 +1,46 @@
+# $Id$
+# Maintainer:  Sébastien "Seblu" Luttringer
+# Maintainer:  Bartłomiej Piotrowski <bpiotrowski at archlinux.org>
+# Contributor: Allan McRae <allan at archlinux.org>
+# Contributor: judd <jvinet at zeroflux.org>
+
+pkgname=coreutils
+pkgver=8.22
+pkgrel=4
+pkgdesc='The basic file, shell and text manipulation utilities of the GNU operating system'
+arch=('i686' 'x86_64')
+license=('GPL3')
+url='http://www.gnu.org/software/coreutils'
+groups=('base')
+depends=('glibc' 'pam' 'acl' 'gmp' 'libcap' 'openssl')
+install=$pkgname.install
+source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz{,.sig}
+        coreutils-8.22-shuf-segfault.patch
+        0001-cp-don-t-reserve-a-device-number.patch)
+md5sums=('8fb0ae2267aa6e728958adc38f8163a2'
+         'SKIP'
+         '94f7e6f373f37beb236caabed8fcdb52'
+         'ac3825f60b6e0300e375f656a3667c52')
+
+prepare() {
+  cd $pkgname-$pkgver
+  patch -p1 -i ../coreutils-8.22-shuf-segfault.patch
+  patch -p1 -i ../0001-cp-don-t-reserve-a-device-number.patch
+}
+
+build() {
+  cd $pkgname-$pkgver
+  ./configure --prefix=/usr --libexecdir=/usr/lib --with-openssl \
+    --enable-no-install-program=groups,hostname,kill,uptime
+  make
+}
+
+check() {
+  cd $pkgname-$pkgver
+  make RUN_EXPENSIVE_TESTS=yes check
+}
+
+package() {
+  cd $pkgname-$pkgver
+  make DESTDIR="$pkgdir" install
+}

Copied: coreutils/repos/testing-i686/coreutils-8.22-shuf-segfault.patch (from rev 209765, coreutils/trunk/coreutils-8.22-shuf-segfault.patch)
===================================================================
--- testing-i686/coreutils-8.22-shuf-segfault.patch	                        (rev 0)
+++ testing-i686/coreutils-8.22-shuf-segfault.patch	2014-04-03 18:31:50 UTC (rev 209766)
@@ -0,0 +1,74 @@
+From 24eb395471176e24762b08bfcef7562911537504 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert at cs.ucla.edu>
+Date: Sun, 23 Feb 2014 15:34:48 -0800
+Subject: [PATCH] shuf: with -r, don't dump core if the input is empty
+
+Problem reported by valiant xiao in <http://bugs.gnu.org/16855>.
+* NEWS: Document this.
+* src/shuf.c (main): With -r, report an error if the input is empty.
+* tests/misc/shuf.sh: Test for the bug.
+---
+ NEWS               |  3 +++
+ src/shuf.c         | 15 +++++++++++----
+ tests/misc/shuf.sh |  4 ++++
+ 3 files changed, 18 insertions(+), 4 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index e72942b..2df246d 100644
+--- a/NEWS
++++ b/NEWS
+@@ -22,6 +22,9 @@ GNU coreutils NEWS                                    -*- outline -*-
+   it would display an error, requiring --no-dereference to avoid the issue.
+   [bug introduced in coreutils-5.3.0]
+ 
++  shuf -r no longer dumps core if the input is empty.
++  [bug introduced in coreutils-8.22]
++
+ ** New features
+ 
+   od accepts a new option: --endian=TYPE to handle inputs with different byte
+diff --git a/src/shuf.c b/src/shuf.c
+index d4641fe..2a91072 100644
+--- a/src/shuf.c
++++ b/src/shuf.c
+@@ -576,11 +576,18 @@ main (int argc, char **argv)
+   /* Generate output according to requested method */
+   if (repeat)
+     {
+-      if (input_range)
+-        i = write_random_numbers (randint_source, head_lines,
+-                                  lo_input, hi_input, eolbyte);
++      if (head_lines == 0)
++        i = 0;
+       else
+-        i = write_random_lines (randint_source, head_lines, line, n_lines);
++        {
++          if (n_lines == 0)
++            error (EXIT_FAILURE, 0, _("No lines to repeat"));
++          if (input_range)
++            i = write_random_numbers (randint_source, head_lines,
++                                      lo_input, hi_input, eolbyte);
++          else
++            i = write_random_lines (randint_source, head_lines, line, n_lines);
++        }
+     }
+   else
+     {
+diff --git a/tests/misc/shuf.sh b/tests/misc/shuf.sh
+index d3ea1f2..d7251d1 100755
+--- a/tests/misc/shuf.sh
++++ b/tests/misc/shuf.sh
+@@ -43,6 +43,10 @@ compare in out1 || { fail=1; echo "not a permutation" 1>&2; }
+ t=$(shuf -e a b c d e | sort | fmt)
+ test "$t" = 'a b c d e' || { fail=1; echo "not a permutation" 1>&2; }
+ 
++# coreutils-8.22 dumps core.
++shuf -er
++test $? -eq 1 || fail=1
++
+ # Before coreutils-6.3, this would infloop.
+ # "seq 1860" produces 8193 (8K + 1) bytes of output.
+ seq 1860 | shuf > /dev/null || fail=1
+-- 
+1.8.5.3
+

Copied: coreutils/repos/testing-i686/coreutils.install (from rev 209765, coreutils/trunk/coreutils.install)
===================================================================
--- testing-i686/coreutils.install	                        (rev 0)
+++ testing-i686/coreutils.install	2014-04-03 18:31:50 UTC (rev 209766)
@@ -0,0 +1,17 @@
+infodir=usr/share/info
+file=coreutils.info
+
+post_install() {
+  [[ -x usr/bin/install-info ]] || return 0
+  install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+  post_install $1
+}
+
+pre_remove() {
+  [[ -x usr/bin/install-info ]] || return 0
+  install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+

Copied: coreutils/repos/testing-x86_64/0001-cp-don-t-reserve-a-device-number.patch (from rev 209765, coreutils/trunk/0001-cp-don-t-reserve-a-device-number.patch)
===================================================================
--- testing-x86_64/0001-cp-don-t-reserve-a-device-number.patch	                        (rev 0)
+++ testing-x86_64/0001-cp-don-t-reserve-a-device-number.patch	2014-04-03 18:31:50 UTC (rev 209766)
@@ -0,0 +1,77 @@
+From d0294ff3b90430750a631556277c75f1a555dd44 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert at cs.ucla.edu>
+Date: Thu, 3 Apr 2014 09:48:22 -0700
+Subject: [PATCH] cp: don't reserve a device number
+
+* src/copy.c (copy_internal): Replace dev_t arg DEVICE with struct
+stat pointer arg PARENT.  All callers changed.  This removes an
+unwarranted assumption that dev_t values of 0 cannot occur in file
+systems.  See: http://bugs.gnu.org/17179
+---
+ src/copy.c | 15 +++++++--------
+ 1 file changed, 7 insertions(+), 8 deletions(-)
+
+diff --git a/src/copy.c b/src/copy.c
+index 781cc1e..d471a77 100644
+--- a/src/copy.c
++++ b/src/copy.c
+@@ -117,7 +117,7 @@ struct dir_list
+ #define DEST_INFO_INITIAL_CAPACITY 61
+ 
+ static bool copy_internal (char const *src_name, char const *dst_name,
+-                           bool new_dst, dev_t device,
++                           bool new_dst, struct stat const *parent,
+                            struct dir_list *ancestors,
+                            const struct cp_options *x,
+                            bool command_line_arg,
+@@ -621,7 +621,7 @@ copy_dir (char const *src_name_in, char const *dst_name_in, bool new_dst,
+       char *dst_name = file_name_concat (dst_name_in, namep, NULL);
+       bool first_dir_created = *first_dir_created_per_command_line_arg;
+ 
+-      ok &= copy_internal (src_name, dst_name, new_dst, src_sb->st_dev,
++      ok &= copy_internal (src_name, dst_name, new_dst, src_sb,
+                            ancestors, &non_command_line_options, false,
+                            &first_dir_created,
+                            &local_copy_into_self, NULL);
+@@ -1725,9 +1725,8 @@ should_dereference (const struct cp_options *x, bool command_line_arg)
+ /* Copy the file SRC_NAME to the file DST_NAME.  The files may be of
+    any type.  NEW_DST should be true if the file DST_NAME cannot
+    exist because its parent directory was just created; NEW_DST should
+-   be false if DST_NAME might already exist.  DEVICE is the device
+-   number of the parent directory, or 0 if the parent of this file is
+-   not known.  ANCESTORS points to a linked, null terminated list of
++   be false if DST_NAME might already exist.  A nonnull PARENT describes the
++   parent directory.  ANCESTORS points to a linked, null terminated list of
+    devices and inodes of parent directories of SRC_NAME.  COMMAND_LINE_ARG
+    is true iff SRC_NAME was specified on the command line.
+    FIRST_DIR_CREATED_PER_COMMAND_LINE_ARG is both input and output.
+@@ -1737,7 +1736,7 @@ should_dereference (const struct cp_options *x, bool command_line_arg)
+ static bool
+ copy_internal (char const *src_name, char const *dst_name,
+                bool new_dst,
+-               dev_t device,
++               struct stat const *parent,
+                struct dir_list *ancestors,
+                const struct cp_options *x,
+                bool command_line_arg,
+@@ -2434,7 +2433,7 @@ copy_internal (char const *src_name, char const *dst_name,
+         }
+ 
+       /* Decide whether to copy the contents of the directory.  */
+-      if (x->one_file_system && device != 0 && device != src_sb.st_dev)
++      if (x->one_file_system && parent && parent->st_dev != src_sb.st_dev)
+         {
+           /* Here, we are crossing a file system boundary and cp's -x option
+              is in effect: so don't copy the contents of this directory. */
+@@ -2827,7 +2826,7 @@ copy (char const *src_name, char const *dst_name,
+   top_level_dst_name = dst_name;
+ 
+   bool first_dir_created_per_command_line_arg = false;
+-  return copy_internal (src_name, dst_name, nonexistent_dst, 0, NULL,
++  return copy_internal (src_name, dst_name, nonexistent_dst, NULL, NULL,
+                         options, true,
+                         &first_dir_created_per_command_line_arg,
+                         copy_into_self, rename_succeeded);
+-- 
+1.9.1
+

Copied: coreutils/repos/testing-x86_64/PKGBUILD (from rev 209765, coreutils/trunk/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD	                        (rev 0)
+++ testing-x86_64/PKGBUILD	2014-04-03 18:31:50 UTC (rev 209766)
@@ -0,0 +1,46 @@
+# $Id$
+# Maintainer:  Sébastien "Seblu" Luttringer
+# Maintainer:  Bartłomiej Piotrowski <bpiotrowski at archlinux.org>
+# Contributor: Allan McRae <allan at archlinux.org>
+# Contributor: judd <jvinet at zeroflux.org>
+
+pkgname=coreutils
+pkgver=8.22
+pkgrel=4
+pkgdesc='The basic file, shell and text manipulation utilities of the GNU operating system'
+arch=('i686' 'x86_64')
+license=('GPL3')
+url='http://www.gnu.org/software/coreutils'
+groups=('base')
+depends=('glibc' 'pam' 'acl' 'gmp' 'libcap' 'openssl')
+install=$pkgname.install
+source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz{,.sig}
+        coreutils-8.22-shuf-segfault.patch
+        0001-cp-don-t-reserve-a-device-number.patch)
+md5sums=('8fb0ae2267aa6e728958adc38f8163a2'
+         'SKIP'
+         '94f7e6f373f37beb236caabed8fcdb52'
+         'ac3825f60b6e0300e375f656a3667c52')
+
+prepare() {
+  cd $pkgname-$pkgver
+  patch -p1 -i ../coreutils-8.22-shuf-segfault.patch
+  patch -p1 -i ../0001-cp-don-t-reserve-a-device-number.patch
+}
+
+build() {
+  cd $pkgname-$pkgver
+  ./configure --prefix=/usr --libexecdir=/usr/lib --with-openssl \
+    --enable-no-install-program=groups,hostname,kill,uptime
+  make
+}
+
+check() {
+  cd $pkgname-$pkgver
+  make RUN_EXPENSIVE_TESTS=yes check
+}
+
+package() {
+  cd $pkgname-$pkgver
+  make DESTDIR="$pkgdir" install
+}

Copied: coreutils/repos/testing-x86_64/coreutils-8.22-shuf-segfault.patch (from rev 209765, coreutils/trunk/coreutils-8.22-shuf-segfault.patch)
===================================================================
--- testing-x86_64/coreutils-8.22-shuf-segfault.patch	                        (rev 0)
+++ testing-x86_64/coreutils-8.22-shuf-segfault.patch	2014-04-03 18:31:50 UTC (rev 209766)
@@ -0,0 +1,74 @@
+From 24eb395471176e24762b08bfcef7562911537504 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert at cs.ucla.edu>
+Date: Sun, 23 Feb 2014 15:34:48 -0800
+Subject: [PATCH] shuf: with -r, don't dump core if the input is empty
+
+Problem reported by valiant xiao in <http://bugs.gnu.org/16855>.
+* NEWS: Document this.
+* src/shuf.c (main): With -r, report an error if the input is empty.
+* tests/misc/shuf.sh: Test for the bug.
+---
+ NEWS               |  3 +++
+ src/shuf.c         | 15 +++++++++++----
+ tests/misc/shuf.sh |  4 ++++
+ 3 files changed, 18 insertions(+), 4 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index e72942b..2df246d 100644
+--- a/NEWS
++++ b/NEWS
+@@ -22,6 +22,9 @@ GNU coreutils NEWS                                    -*- outline -*-
+   it would display an error, requiring --no-dereference to avoid the issue.
+   [bug introduced in coreutils-5.3.0]
+ 
++  shuf -r no longer dumps core if the input is empty.
++  [bug introduced in coreutils-8.22]
++
+ ** New features
+ 
+   od accepts a new option: --endian=TYPE to handle inputs with different byte
+diff --git a/src/shuf.c b/src/shuf.c
+index d4641fe..2a91072 100644
+--- a/src/shuf.c
++++ b/src/shuf.c
+@@ -576,11 +576,18 @@ main (int argc, char **argv)
+   /* Generate output according to requested method */
+   if (repeat)
+     {
+-      if (input_range)
+-        i = write_random_numbers (randint_source, head_lines,
+-                                  lo_input, hi_input, eolbyte);
++      if (head_lines == 0)
++        i = 0;
+       else
+-        i = write_random_lines (randint_source, head_lines, line, n_lines);
++        {
++          if (n_lines == 0)
++            error (EXIT_FAILURE, 0, _("No lines to repeat"));
++          if (input_range)
++            i = write_random_numbers (randint_source, head_lines,
++                                      lo_input, hi_input, eolbyte);
++          else
++            i = write_random_lines (randint_source, head_lines, line, n_lines);
++        }
+     }
+   else
+     {
+diff --git a/tests/misc/shuf.sh b/tests/misc/shuf.sh
+index d3ea1f2..d7251d1 100755
+--- a/tests/misc/shuf.sh
++++ b/tests/misc/shuf.sh
+@@ -43,6 +43,10 @@ compare in out1 || { fail=1; echo "not a permutation" 1>&2; }
+ t=$(shuf -e a b c d e | sort | fmt)
+ test "$t" = 'a b c d e' || { fail=1; echo "not a permutation" 1>&2; }
+ 
++# coreutils-8.22 dumps core.
++shuf -er
++test $? -eq 1 || fail=1
++
+ # Before coreutils-6.3, this would infloop.
+ # "seq 1860" produces 8193 (8K + 1) bytes of output.
+ seq 1860 | shuf > /dev/null || fail=1
+-- 
+1.8.5.3
+

Copied: coreutils/repos/testing-x86_64/coreutils.install (from rev 209765, coreutils/trunk/coreutils.install)
===================================================================
--- testing-x86_64/coreutils.install	                        (rev 0)
+++ testing-x86_64/coreutils.install	2014-04-03 18:31:50 UTC (rev 209766)
@@ -0,0 +1,17 @@
+infodir=usr/share/info
+file=coreutils.info
+
+post_install() {
+  [[ -x usr/bin/install-info ]] || return 0
+  install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+  post_install $1
+}
+
+pre_remove() {
+  [[ -x usr/bin/install-info ]] || return 0
+  install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+




More information about the arch-commits mailing list