From 059c56bddd7b549abf003a8813f1a9016591d1c7 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Fri, 21 Nov 2014 22:16:21 +0000
Subject: coreutils: update to 8.23

---
 .../0001-cp-don-t-reserve-a-device-number.patch    | 77 ++++++++++++++++++++++
 abs/core/coreutils/PKGBUILD                        | 45 ++++++++-----
 2 files changed, 106 insertions(+), 16 deletions(-)
 create mode 100644 abs/core/coreutils/0001-cp-don-t-reserve-a-device-number.patch

diff --git a/abs/core/coreutils/0001-cp-don-t-reserve-a-device-number.patch b/abs/core/coreutils/0001-cp-don-t-reserve-a-device-number.patch
new file mode 100644
index 0000000..1f276b4
--- /dev/null
+++ b/abs/core/coreutils/0001-cp-don-t-reserve-a-device-number.patch
@@ -0,0 +1,77 @@
+From d0294ff3b90430750a631556277c75f1a555dd44 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@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
+
diff --git a/abs/core/coreutils/PKGBUILD b/abs/core/coreutils/PKGBUILD
index d38de6e..f10a12e 100644
--- a/abs/core/coreutils/PKGBUILD
+++ b/abs/core/coreutils/PKGBUILD
@@ -1,34 +1,47 @@
-# $Id: PKGBUILD 201684 2013-12-18 05:22:31Z allan $
-# Maintainer: Allan McRae <allan@archlinux.org>
+# $Id$
+# Maintainer:  Sébastien "Seblu" Luttringer
+# Contributor:  Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
 # Contributor: judd <jvinet@zeroflux.org>
 
 pkgname=coreutils
-pkgver=8.22
-pkgrel=2
-pkgdesc="The basic file, shell and text manipulation utilities of the GNU operating system"
+pkgver=8.23
+pkgrel=1
+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"
+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})
+install=$pkgname.install
+source=("ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz"{,.sig})
+md5sums=('abed135279f87ad6762ce57ff6d89c41'
+         'SKIP')
+
+#prepare() {
+#  cd $pkgname-$pkgver
+#}
 
 build() {
-  cd ${srcdir}/${pkgname}-${pkgver}
-  ./configure --prefix=/usr --libexecdir=/usr/lib --with-openssl \
-              --enable-no-install-program=groups,hostname,kill,uptime
+  cd $pkgname-$pkgver
+  FORCE_UNSAFE_CONFIGURE=1
+  export FORCE_UNSAFE_CONFIGURE
+  ./configure \
+      --prefix=/usr \
+      --libexecdir=/usr/lib \
+      --with-openssl \
+      --enable-no-install-program=groups,hostname,kill,uptime
   make
 }
 
 check() {
-  cd ${srcdir}/${pkgname}-${pkgver}
+  cd $pkgname-$pkgver
   make RUN_EXPENSIVE_TESTS=yes check
 }
 
 package() {
-  cd ${srcdir}/${pkgname}-${pkgver}
-  make DESTDIR=${pkgdir} install
+  cd $pkgname-$pkgver
+  make DESTDIR="$pkgdir" install
 }
-md5sums=('8fb0ae2267aa6e728958adc38f8163a2'
-         'SKIP')
+
+# vim:set ts=2 sw=2 et:
-- 
cgit v0.12

