vapier 15/07/06 15:16:07
Added: 003_all_coreutils-gentoo-uname.patch
010_all_coreutils-tests.patch
030_all_coreutils-more-dir-colors.patch
040_all_coreutils-cp-mkdir-eexist.patch
051_all_coreutils-mangen.patch README.history
Log:
initial 8.24 patchset based on last 8.23 patchset
Revision Changes Path
1.1
src/patchsets/coreutils/8.24/003_all_coreutils-gentoo-uname.patch
file :
http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/coreutils/8.24/003_all_coreutils-gentoo-uname.patch?rev=1.1&view=markup
plain:
http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/coreutils/8.24/003_all_coreutils-gentoo-uname.patch?rev=1.1&content-type=text/plain
Index: 003_all_coreutils-gentoo-uname.patch
===================================================================
On linux platforms, grok /proc/cpuinfo for the CPU/vendor info.
Prob not suitable for upstream seeing as how it's 100% linux-specific
http://lists.gnu.org/archive/html/bug-coreutils/2005-09/msg00063.html
Patch originally by Carlos E. Gorges <[email protected]>, but
heavily reworked to suck less.
To add support for additional platforms, check out the show_cpuinfo()
func in the linux/arch/<ARCH>/ source tree of the kernel.
--- coreutils/src/uname.c
+++ coreutils/src/uname.c
@@ -50,6 +50,11 @@
# include <mach-o/arch.h>
#endif
+#if defined(__linux__)
+# define USE_PROCINFO
+# define UNAME_HARDWARE_PLATFORM
+#endif
+
#include "system.h"
#include "error.h"
#include "quote.h"
@@ -138,6 +143,117 @@
exit (status);
}
+#if defined(USE_PROCINFO)
+
+# if defined(__s390__) || defined(__s390x__)
+# define CPUINFO_FILE "/proc/sysinfo"
+# define CPUINFO_FORMAT "%64[^\t :]%*[ :]%256[^\n]%c"
+# else
+# define CPUINFO_FILE "/proc/cpuinfo"
+# define CPUINFO_FORMAT "%64[^\t:]\t:%256[^\n]%c"
+# endif
+
+# define PROCINFO_PROCESSOR 0
+# define PROCINFO_HARDWARE_PLATFORM 1
+
+static void __eat_cpuinfo_space(char *buf)
+{
+ /* first eat trailing space */
+ char *tmp = buf + strlen(buf) - 1;
+ while (tmp > buf && isspace(*tmp))
+ *tmp-- = '\0';
+ /* then eat leading space */
+ tmp = buf;
+ while (*tmp && isspace(*tmp))
+ tmp++;
+ if (tmp != buf)
+ memmove(buf, tmp, strlen(tmp)+1);
+ /* finally collapse whitespace */
+ tmp = buf;
+ while (tmp[0] && tmp[1]) {
+ if (isspace(tmp[0]) && isspace(tmp[1])) {
+ memmove(tmp, tmp+1, strlen(tmp));
+ continue;
+ }
+ ++tmp;
+ }
+}
+
+static int __linux_procinfo(int x, char *fstr, size_t s)
+{
+ FILE *fp;
+
+ char *procinfo_keys[] = {
+ /* --processor --hardware-platform */
+ #if defined(__alpha__)
+ "cpu model", "system type"
+ #elif defined(__arm__)
+ "Processor", "Hardware"
+ #elif defined(__avr32__)
+ "processor", "cpu family"
+ #elif defined(__bfin__)
+ "CPU", "BOARD Name"
+ #elif defined(__cris__)
+ "cpu", "cpu model"
+ #elif defined(__frv__)
+ "CPU-Core", "System"
+ #elif defined(__i386__) || defined(__x86_64__)
+ "model name", "vendor_id"
+ #elif defined(__ia64__)
+ "model name", "vendor"
+ #elif defined(__hppa__)
+ "cpu", "model"
+ #elif defined(__m68k__)
+ "CPU", "MMU"
+ #elif defined(__mips__)
+ "cpu model", "system type"
+ #elif defined(__powerpc__) || defined(__powerpc64__)
+ "cpu", "machine"
+ #elif defined(__s390__) || defined(__s390x__)
+ "Type", "Manufacturer"
+ #elif defined(__sh__)
+ "cpu type", "machine"
+ #elif defined(sparc) || defined(__sparc__)
+ "type", "cpu"
+ #elif defined(__vax__)
+ "cpu type", "cpu"
+ #else
+ "unknown", "unknown"
+ #endif
+ };
+
+ if ((fp = fopen(CPUINFO_FILE, "r")) != NULL) {
+ char key[65], value[257], eol, *ret = NULL;
+
+ while (fscanf(fp, CPUINFO_FORMAT, key, value, &eol) != EOF) {
+ __eat_cpuinfo_space(key);
+ if (!strcmp(key, procinfo_keys[x])) {
+ __eat_cpuinfo_space(value);
+ ret = value;
+ break;
+ }
+ if (eol != '\n') {
+ /* we need two fscanf's here in case the
previous
+ * length limit caused us to read right up to
the
+ * newline ... doing "%*[^\n]\n" wont eat the
newline
+ */
+ fscanf(fp, "%*[^\n]");
+ fscanf(fp, "\n");
+ }
+ }
+ fclose(fp);
+
+ if (ret) {
+ strncpy(fstr, ret, s);
+ return 0;
+ }
+ }
+
+ return -1;
+}
+
+#endif
+
/* Print ELEMENT, preceded by a space if something has already been
printed. */
@@ -250,10 +344,14 @@ main (int argc, char **argv)
if (toprint & PRINT_PROCESSOR)
{
char const *element = unknown;
-#if HAVE_SYSINFO && defined SI_ARCHITECTURE
+#if ( HAVE_SYSINFO && defined SI_ARCHITECTURE ) || defined(USE_PROCINFO)
{
static char processor[257];
+#if defined(USE_PROCINFO)
+ if (0 <= __linux_procinfo (PROCINFO_PROCESSOR, processor, sizeof
processor))
+#else
if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor))
+#endif
element = processor;
}
#endif
@@ -306,9 +404,13 @@ main (int argc, char **argv)
if (element == unknown)
{
static char hardware_platform[257];
+#if defined(USE_PROCINFO)
+ if (0 <= __linux_procinfo (PROCINFO_HARDWARE_PLATFORM,
hardware_platform, sizeof hardware_platform))
+#else
size_t s = sizeof hardware_platform;
static int mib[] = { CTL_HW, UNAME_HARDWARE_PLATFORM };
if (sysctl (mib, 2, hardware_platform, &s, 0, 0) >= 0)
+#endif
element = hardware_platform;
}
#endif
1.1 src/patchsets/coreutils/8.24/010_all_coreutils-tests.patch
file :
http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/coreutils/8.24/010_all_coreutils-tests.patch?rev=1.1&view=markup
plain:
http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/coreutils/8.24/010_all_coreutils-tests.patch?rev=1.1&content-type=text/plain
Index: 010_all_coreutils-tests.patch
===================================================================
this test only gets run as non-root, so giving it temp write access to the
root dir is safe since normal unix access will deny it #259876
--- a/tests/touch/not-owner.sh
+++ b/tests/touch/not-owner.sh
@@ -34,6 +34,7 @@
# Before fileutils-4.1, we'd get the following misleading
# diagnostic instead of '...: Permission denied'.
# touch: creating '/': Is a directory
+env SANDBOX_WRITE=${SANDBOX_WRITE}:/ \
touch / > out 2>&1 && fail=1
# On SunOS4, EPERM is 'Not owner'.
the dd test looks up a device and tries to test seeking on it. it shouldnt
cause any corruption because it uses a count of 0 and seeks past the end of
the device
--- a/tests/dd/skip-seek-past-dev.sh
+++ b/tests/dd/skip-seek-past-dev.sh
@@ -48,6 +48,7 @@
0+0 records out" > err_ok || framework_failure_
compare err_ok err || fail=1
+env SANDBOX_WRITE=${SANDBOX_WRITE}:$device \
timeout 10 dd bs=1 seek=$DEV_OFLOW count=0 status=noxfer > "$device" 2> err
test "$?" = "1" || fail=1
echo "dd: 'standard output': cannot seek: Invalid argument
running through strace and counting stat syscalls is off when using sandbox
https://bugs.gentoo.org/415487
--- a/tests/ls/stat-free-color.sh
+++ b/tests/ls/stat-free-color.sh
@@ -19,6 +19,8 @@
. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
print_ver_ ls
+skip_ 'strace does not work under sandbox #415487'
+
# Note this list of _file name_ stat functions must be
# as cross platform as possible and so doesn't include
# fstatat64 as that's not available on aarch64 for example.
1.1
src/patchsets/coreutils/8.24/030_all_coreutils-more-dir-colors.patch
file :
http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/coreutils/8.24/030_all_coreutils-more-dir-colors.patch?rev=1.1&view=markup
plain:
http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/coreutils/8.24/030_all_coreutils-more-dir-colors.patch?rev=1.1&content-type=text/plain
Index: 030_all_coreutils-more-dir-colors.patch
===================================================================
--- coreutils-8.24/src/dircolors.hin
+++ coreutils-8.24/src/dircolors.hin
@@ -7,6 +7,9 @@
# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
# slackware version of dircolors) are recognized but ignored.
+
+# You can copy this file to .dir_colors in your $HOME directory to override
+# the system defaults.
# Below, there should be one TERM entry for each termtype that is colorizable
TERM Eterm
@@ -86,8 +89,8 @@
DOOR 01;35 # door
BLK 40;33;01 # block device driver
CHR 40;33;01 # character device driver
-ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file ...
-MISSING 00 # ... and the files they point to
+ORPHAN 01;05;37;41 # symlink to nonexistent file, or non-stat'able file ...
+MISSING 01;05;37;41 # ... and the files they point to
SETUID 37;41 # file that is setuid (u+s)
SETGID 30;43 # file that is setgid (g+s)
CAPABILITY 30;41 # file with capability
@@ -207,6 +210,19 @@
.ogv 01;35
.ogx 01;35
+# Text/document files
+.cfg 00;32
+.conf 00;32
+.diff 00;32
+.doc 00;32
+.ini 00;32
+.log 00;32
+.patch 00;32
+.pdf 00;32
+.ps 00;32
+.tex 00;32
+.txt 00;32
+
# audio formats
.aac 00;36
.au 00;36
1.1
src/patchsets/coreutils/8.24/040_all_coreutils-cp-mkdir-eexist.patch
file :
http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/coreutils/8.24/040_all_coreutils-cp-mkdir-eexist.patch?rev=1.1&view=markup
plain:
http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/coreutils/8.24/040_all_coreutils-cp-mkdir-eexist.patch?rev=1.1&content-type=text/plain
Index: 040_all_coreutils-cp-mkdir-eexist.patch
===================================================================
https://bugs.gentoo.org/449838
http://lists.gnu.org/archive/html/bug-coreutils/2013-01/msg00002.html
>From 597db089bfa64656540206b3826e0a97759f6720 Mon Sep 17 00:00:00 2001
From: Mike Frysinger <[email protected]>
Date: Thu, 3 Jan 2013 18:31:37 -0500
Subject: [PATCH] cp: ignore EEXIST errors from mkdir
If you're copying multiple source trees into a single destination in
parallel (which have overlapping dirs, but not files), you can easily
hit a race condition.
This can crop up more generally if you're running multiple installs
from different build directories in parallel. You don't get as much
of a speed up due to the parallel I/O, but you do from processing all
the build scripts.
Simple test to reproduce:
mkdir -p in/`printf %s/ {a..z} {0..10}`
(rm -rf out; for ((i=0;i<100;++i)); do cp -pPR in out & :; done)
* src/cp.c (make_dir_parents_private): Ignore EEXIST from mkdir.
---
src/cp.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/cp.c b/src/cp.c
index 625ea0b..b9dff18 100644
--- a/src/cp.c
+++ b/src/cp.c
@@ -473,9 +473,15 @@ make_dir_parents_private (char const *const_dir, size_t
src_offset,
mkdir_mode = src_mode & CHMOD_MODE_BITS & ~omitted_permissions;
if (mkdir (dir, mkdir_mode) != 0)
{
- error (0, errno, _("cannot make directory %s"),
- quote (dir));
- return false;
+ /* If someone else created it between our stat/mkdir,
+ don't complain. It's debatable whether we should
+ also preserve the mode bits in this scenario. */
+ if (errno != EEXIST)
+ {
+ error (0, errno, _("cannot make directory %s"),
+ quote (dir));
+ return false;
+ }
}
else
{
--
1.8.0.2
1.1 src/patchsets/coreutils/8.24/051_all_coreutils-mangen.patch
file :
http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/coreutils/8.24/051_all_coreutils-mangen.patch?rev=1.1&view=markup
plain:
http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/coreutils/8.24/051_all_coreutils-mangen.patch?rev=1.1&content-type=text/plain
Index: 051_all_coreutils-mangen.patch
===================================================================
avoid regenerating man pages all the time (since the locally compiled binaries
will always be newer than the bundled man pages)
--- a/Makefile.in
+++ b/Makefile.in
@@ -14132,115 +14132,6 @@ check-local: check-texinfo
distclean-local:
test x$(srcdir) = x$(builddir) || rm -f $(ALL_MANS)
-$(ALL_MANS): $(mandeps)
-# Most prog.1 man pages depend on src/prog. List the exceptions:
-@SINGLE_BINARY_FALSE@man/arch.1: src/uname$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/install.1: src/ginstall$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/test.1: src/[$(EXEEXT)
-
-@SINGLE_BINARY_FALSE@man/base64.1: src/base64$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/basename.1: src/basename$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/cat.1: src/cat$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/chcon.1: src/chcon$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/chgrp.1: src/chgrp$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/chmod.1: src/chmod$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/chown.1: src/chown$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/chroot.1: src/chroot$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/cksum.1: src/cksum$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/comm.1: src/comm$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/coreutils.1: src/coreutils$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/cp.1: src/cp$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/csplit.1: src/csplit$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/cut.1: src/cut$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/date.1: src/date$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/dd.1: src/dd$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/df.1: src/df$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/dir.1: src/dir$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/dircolors.1: src/dircolors$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/dirname.1: src/dirname$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/du.1: src/du$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/echo.1: src/echo$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/env.1: src/env$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/expand.1: src/expand$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/expr.1: src/expr$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/factor.1: src/factor$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/false.1: src/false$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/fmt.1: src/fmt$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/fold.1: src/fold$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/groups.1: src/groups$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/head.1: src/head$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/hostid.1: src/hostid$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/hostname.1: src/hostname$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/id.1: src/id$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/join.1: src/join$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/kill.1: src/kill$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/link.1: src/link$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/ln.1: src/ln$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/logname.1: src/logname$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/ls.1: src/ls$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/md5sum.1: src/md5sum$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/mkdir.1: src/mkdir$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/mkfifo.1: src/mkfifo$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/mknod.1: src/mknod$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/mktemp.1: src/mktemp$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/mv.1: src/mv$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/nice.1: src/nice$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/nl.1: src/nl$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/nohup.1: src/nohup$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/nproc.1: src/nproc$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/numfmt.1: src/numfmt$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/od.1: src/od$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/paste.1: src/paste$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/pathchk.1: src/pathchk$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/pinky.1: src/pinky$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/pr.1: src/pr$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/printenv.1: src/printenv$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/printf.1: src/printf$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/ptx.1: src/ptx$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/pwd.1: src/pwd$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/readlink.1: src/readlink$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/realpath.1: src/realpath$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/rm.1: src/rm$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/rmdir.1: src/rmdir$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/runcon.1: src/runcon$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/seq.1: src/seq$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/sha1sum.1: src/sha1sum$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/sha224sum.1: src/sha224sum$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/sha256sum.1: src/sha256sum$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/sha384sum.1: src/sha384sum$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/sha512sum.1: src/sha512sum$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/shred.1: src/shred$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/shuf.1: src/shuf$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/sleep.1: src/sleep$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/sort.1: src/sort$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/split.1: src/split$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/stat.1: src/stat$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/stdbuf.1: src/stdbuf$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/stty.1: src/stty$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/sum.1: src/sum$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/sync.1: src/sync$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/tac.1: src/tac$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/tail.1: src/tail$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/tee.1: src/tee$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/timeout.1: src/timeout$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/touch.1: src/touch$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/tr.1: src/tr$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/true.1: src/true$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/truncate.1: src/truncate$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/tsort.1: src/tsort$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/tty.1: src/tty$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/uname.1: src/uname$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/unexpand.1: src/unexpand$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/uniq.1: src/uniq$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/unlink.1: src/unlink$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/uptime.1: src/uptime$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/users.1: src/users$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/vdir.1: src/vdir$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/wc.1: src/wc$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/who.1: src/who$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/whoami.1: src/whoami$(EXEEXT)
-@SINGLE_BINARY_FALSE@man/yes.1: src/yes$(EXEEXT)
-
.x.1:
$(AM_V_GEN)name=`echo $@ | sed 's|.*/||; s|\.1$$||'` || exit 1; \
case $$name in \
1.1 src/patchsets/coreutils/8.24/README.history
file :
http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/coreutils/8.24/README.history?rev=1.1&view=markup
plain:
http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/coreutils/8.24/README.history?rev=1.1&content-type=text/plain
Index: README.history
===================================================================
1.0 06 Jul 2015
+ 003_all_coreutils-gentoo-uname.patch
+ 010_all_coreutils-tests.patch
+ 030_all_coreutils-more-dir-colors.patch
+ 040_all_coreutils-cp-mkdir-eexist.patch
+ 051_all_coreutils-mangen.patch