summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Iooss2014-04-24 11:14:13 +0200
committerNicolas Iooss2014-04-24 12:14:14 +0200
commitceb896e0ca2374f86e0819bfe60725c94359ba78 (patch)
tree1ef1416d24b341b98f8b851834ebb089fcabe5fc
parent33cc706b7f85d74a065ffc54fcf29d3bf595a0dd (diff)
downloadaur-ceb896e0ca2374f86e0819bfe60725c94359ba78.tar.gz
coreutils-selinux 8.22-4 update
Add patch "cp: don't reserve a device number", also included in coreutils package.
-rw-r--r--.SRCINFO8
-rw-r--r--0001-cp-don-t-reserve-a-device-number.patch77
-rw-r--r--PKGBUILD7
3 files changed, 87 insertions, 5 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 24480de0bd33..02a317a0ae03 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = coreutils-selinux
pkgdesc = The basic file, shell and text manipulation utilities of the GNU operating system with SELinux support
pkgver = 8.22
- pkgrel = 3
+ pkgrel = 4
url = http://www.gnu.org/software/coreutils
install = coreutils.install
arch = i686
@@ -15,18 +15,20 @@ pkgbase = coreutils-selinux
depends = libcap
depends = openssl
depends = libselinux
- provides = coreutils=8.22-3
- provides = selinux-coreutils=8.22-3
+ provides = coreutils=8.22-4
+ provides = selinux-coreutils=8.22-4
conflicts = coreutils
conflicts = selinux-coreutils
source = ftp://ftp.gnu.org/gnu/coreutils/coreutils-8.22.tar.xz
source = ftp://ftp.gnu.org/gnu/coreutils/coreutils-8.22.tar.xz.sig
source = coreutils-8.22-shuf-segfault.patch
+ source = 0001-cp-don-t-reserve-a-device-number.patch
source = 0001-copy-fix-SELinux-context-preservation-for-existing-d.patch
source = 0002-copy-fix-a-segfault-in-SELinux-context-copying-code.patch
md5sums = 8fb0ae2267aa6e728958adc38f8163a2
md5sums = SKIP
md5sums = 94f7e6f373f37beb236caabed8fcdb52
+ md5sums = ac3825f60b6e0300e375f656a3667c52
md5sums = a320632626e1639643f3510ae1c62ed0
md5sums = 40575ec80e895b5db52dafa6556e6e26
diff --git a/0001-cp-don-t-reserve-a-device-number.patch b/0001-cp-don-t-reserve-a-device-number.patch
new file mode 100644
index 000000000000..1f276b4a49d8
--- /dev/null
+++ b/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/PKGBUILD b/PKGBUILD
index 1a09f9f963f1..e9ae697a5168 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -9,7 +9,7 @@
pkgname=coreutils-selinux
pkgver=8.22
-pkgrel=3
+pkgrel=4
pkgdesc="The basic file, shell and text manipulation utilities of the GNU operating system with SELinux support"
arch=('i686' 'x86_64')
license=('GPL3')
@@ -22,17 +22,20 @@ provides=("${pkgname/-selinux}=${pkgver}-${pkgrel}"
"selinux-${pkgname/-selinux}=${pkgver}-${pkgrel}")
source=(ftp://ftp.gnu.org/gnu/${pkgname/-selinux}/${pkgname/-selinux}-$pkgver.tar.xz{,.sig}
'coreutils-8.22-shuf-segfault.patch'
+ '0001-cp-don-t-reserve-a-device-number.patch'
'0001-copy-fix-SELinux-context-preservation-for-existing-d.patch'
'0002-copy-fix-a-segfault-in-SELinux-context-copying-code.patch')
md5sums=('8fb0ae2267aa6e728958adc38f8163a2'
'SKIP'
'94f7e6f373f37beb236caabed8fcdb52'
+ 'ac3825f60b6e0300e375f656a3667c52'
'a320632626e1639643f3510ae1c62ed0'
'40575ec80e895b5db52dafa6556e6e26')
prepare() {
cd ${pkgname/-selinux}-$pkgver
- patch -Np1 -i ../coreutils-8.22-shuf-segfault.patch
+ patch -p1 -i ../coreutils-8.22-shuf-segfault.patch
+ patch -p1 -i ../0001-cp-don-t-reserve-a-device-number.patch
patch -Np1 -i ../0001-copy-fix-SELinux-context-preservation-for-existing-d.patch
patch -Np1 -i ../0002-copy-fix-a-segfault-in-SELinux-context-copying-code.patch
}