diff --git a/coreutils-8.25-DIR_COLORS.patch b/coreutils-8.25-DIR_COLORS.patch
index a8a2d1a..94923b0 100644
--- a/coreutils-8.25-DIR_COLORS.patch
+++ b/coreutils-8.25-DIR_COLORS.patch
@@ -4,16 +4,16 @@ Date: Fri, 17 Jun 2016 16:58:18 +0200
Subject: [PATCH] downstream changes to default DIR_COLORS
---
- DIR_COLORS | 44 ++++----
- DIR_COLORS.256color | 294 +++++++++++++++++++++++-------------------------
- DIR_COLORS.lightbgcolor | 207 +++++++++++++++++-----------------
- 3 files changed, 271 insertions(+), 274 deletions(-)
+ DIR_COLORS | 41 ++++---
+ DIR_COLORS.256color | 302 ++++++++++++++++++++++++------------------------
+ DIR_COLORS.lightbgcolor | 215 +++++++++++++++++-----------------
+ 3 files changed, 286 insertions(+), 272 deletions(-)
diff --git a/DIR_COLORS b/DIR_COLORS
index d2ea453..27af9d7 100644
--- a/DIR_COLORS
+++ b/DIR_COLORS
-@@ -1,12 +1,18 @@
+@@ -1,6 +1,10 @@
# Configuration file for dircolors, a utility to help you set the
# LS_COLORS environment variable used by GNU ls with the --color option.
@@ -21,20 +21,20 @@ index d2ea453..27af9d7 100644
+# You can copy this file to .dir_colors in your $HOME directory to override
+# the system defaults.
+
- # Copyright (C) 1996-2016 Free Software Foundation, Inc.
+ # Copyright (C) 1996-2017 Free Software Foundation, Inc.
# Copying and distribution of this file, with or without modification,
# are permitted provided the copyright notice and this notice are preserved.
+@@ -8,6 +12,9 @@
+ # The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
+ # slackware version of dircolors) are recognized but ignored.
--# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
--# slackware version of dircolors) are recognized but ignored.
-+# The keywords OPTIONS and EIGHTBIT (honored by the slackware version of
-+# dircolors) are recognized but ignored. For compatibility reasons, the
-+# pattern "^COLOR.*none" is recognized as a way to disable colorization.
-+# See https://bugzilla.redhat.com/1349579 for details.
-
++# For compatibility, the pattern "^COLOR.*none" is recognized as a way to
++# disable colorization. See https://bugzilla.redhat.com/1349579 for details.
++
# Below are TERM entries, which can be a glob patterns, to match
# against the TERM environment variable to determine if it is colorizable.
-@@ -56,7 +62,7 @@ DOOR 01;35 # door
+ TERM Eterm
+@@ -56,7 +63,7 @@ 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 ...
@@ -43,7 +43,7 @@ index d2ea453..27af9d7 100644
SETUID 37;41 # file that is setuid (u+s)
SETGID 30;43 # file that is setgid (g+s)
CAPABILITY 30;41 # file with capability
-@@ -181,21 +187,21 @@ EXEC 01;32
+@@ -185,21 +192,21 @@ EXEC 01;32
.ogx 01;35
# audio formats
@@ -72,7 +72,7 @@ index d2ea453..27af9d7 100644
+.ra 01;36
+.wav 01;36
- # http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
+ # https://wiki.xiph.org/MIME_Types_and_File_Extensions
-.oga 00;36
-.opus 00;36
-.spx 00;36
@@ -85,26 +85,23 @@ diff --git a/DIR_COLORS.256color b/DIR_COLORS.256color
index d2ea453..74c34ba 100644
--- a/DIR_COLORS.256color
+++ b/DIR_COLORS.256color
-@@ -1,39 +1,22 @@
--# Configuration file for dircolors, a utility to help you set the
--# LS_COLORS environment variable used by GNU ls with the --color option.
+@@ -1,3 +1,9 @@
+# Configuration file for the 256color ls utility
+
+# This file goes in the /etc directory, and must be world readable.
+# You can copy this file to .dir_colors in your $HOME directory to override
+# the system defaults.
++
+ # Configuration file for dircolors, a utility to help you set the
+ # LS_COLORS environment variable used by GNU ls with the --color option.
- # Copyright (C) 1996-2016 Free Software Foundation, Inc.
- # Copying and distribution of this file, with or without modification,
- # are permitted provided the copyright notice and this notice are preserved.
-
--# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
--# slackware version of dircolors) are recognized but ignored.
-+# The keywords OPTIONS and EIGHTBIT (honored by the slackware version of
-+# dircolors) are recognized but ignored. For compatibility reasons, the
-+# pattern "^COLOR.*none" is recognized as a way to disable colorization.
-+# See https://bugzilla.redhat.com/1349579 for details.
+@@ -8,32 +14,13 @@
+ # The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
+ # slackware version of dircolors) are recognized but ignored.
++# For compatibility, the pattern "^COLOR.*none" is recognized as a way to
++# disable colorization. See https://bugzilla.redhat.com/1349579 for details.
++
# Below are TERM entries, which can be a glob patterns, to match
# against the TERM environment variable to determine if it is colorizable.
-TERM Eterm
@@ -136,7 +133,7 @@ index d2ea453..74c34ba 100644
# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
-@@ -43,29 +26,40 @@ TERM xterm*
+@@ -43,29 +30,40 @@ TERM xterm*
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
@@ -193,7 +190,7 @@ index d2ea453..74c34ba 100644
# List any file extensions like '.gz' or '.tar' that you would like ls
# to colorize below. Put the extension, a space, and the color init string.
-@@ -83,119 +77,115 @@ EXEC 01;32
+@@ -83,123 +81,123 @@ EXEC 01;32
#.csh 01;32
# archives or compressed (bright red)
@@ -240,6 +237,10 @@ index d2ea453..74c34ba 100644
-.7z 01;31
-.rz 01;31
-.cab 01;31
+-.wim 01;31
+-.swm 01;31
+-.dwm 01;31
+-.esd 01;31
+.tar 38;5;9
+.tgz 38;5;9
+.arc 38;5;9
@@ -262,6 +263,8 @@ index d2ea453..74c34ba 100644
+.lz 38;5;9
+.lzo 38;5;9
+.xz 38;5;9
++.zst 38;5;9
++.tzst 38;5;9
+.bz2 38;5;9
+.bz 38;5;9
+.tbz 38;5;9
@@ -281,6 +284,10 @@ index d2ea453..74c34ba 100644
+.7z 38;5;9
+.rz 38;5;9
+.cab 38;5;9
++.wim 38;5;9
++.swm 38;5;9
++.dwm 38;5;9
++.esd 38;5;9
# image formats
-.jpg 01;35
@@ -332,6 +339,8 @@ index d2ea453..74c34ba 100644
-.emf 01;35
+.jpg 38;5;13
+.jpeg 38;5;13
++.mjpg 38;5;13
++.mjpeg 38;5;13
+.gif 38;5;13
+.bmp 38;5;13
+.pbm 38;5;13
@@ -376,7 +385,7 @@ index d2ea453..74c34ba 100644
+.cgm 38;5;13
+.emf 38;5;13
- # http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
+ # https://wiki.xiph.org/MIME_Types_and_File_Extensions
-.ogv 01;35
-.ogx 01;35
+.ogv 38;5;13
@@ -408,7 +417,7 @@ index d2ea453..74c34ba 100644
+.ra 38;5;45
+.wav 38;5;45
- # http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
+ # https://wiki.xiph.org/MIME_Types_and_File_Extensions
-.oga 00;36
-.opus 00;36
-.spx 00;36
@@ -421,29 +430,27 @@ diff --git a/DIR_COLORS.lightbgcolor b/DIR_COLORS.lightbgcolor
index d2ea453..95d6879 100644
--- a/DIR_COLORS.lightbgcolor
+++ b/DIR_COLORS.lightbgcolor
-@@ -1,12 +1,17 @@
--# Configuration file for dircolors, a utility to help you set the
--# LS_COLORS environment variable used by GNU ls with the --color option.
+@@ -1,3 +1,9 @@
+# Configuration file for the color ls utility - modified for lighter backgrounds
+
+# This file goes in the /etc directory, and must be world readable.
+# You can copy this file to .dir_colors in your $HOME directory to override
+# the system defaults.
++
+ # Configuration file for dircolors, a utility to help you set the
+ # LS_COLORS environment variable used by GNU ls with the --color option.
- # Copyright (C) 1996-2016 Free Software Foundation, Inc.
- # Copying and distribution of this file, with or without modification,
- # are permitted provided the copyright notice and this notice are preserved.
-
--# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
--# slackware version of dircolors) are recognized but ignored.
-+# The keywords OPTIONS and EIGHTBIT (honored by the slackware version of
-+# dircolors) are recognized but ignored. For compatibility reasons, the
-+# pattern "^COLOR.*none" is recognized as a way to disable colorization.
-+# See https://bugzilla.redhat.com/1349579 for details.
+@@ -8,6 +14,9 @@
+ # The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
+ # slackware version of dircolors) are recognized but ignored.
++# For compatibility, the pattern "^COLOR.*none" is recognized as a way to
++# disable colorization. See https://bugzilla.redhat.com/1349579 for details.
++
# Below are TERM entries, which can be a glob patterns, to match
# against the TERM environment variable to determine if it is colorizable.
-@@ -46,17 +51,17 @@ TERM xterm*
+ TERM Eterm
+@@ -46,17 +55,17 @@ TERM xterm*
#NORMAL 00 # no color code at all
#FILE 00 # regular file: use no color at all
RESET 0 # reset to "normal" color
@@ -466,7 +473,7 @@ index d2ea453..95d6879 100644
SETUID 37;41 # file that is setuid (u+s)
SETGID 30;43 # file that is setgid (g+s)
CAPABILITY 30;41 # file with capability
-@@ -65,7 +70,7 @@ OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
+@@ -65,7 +74,7 @@ OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
# This is for files with execute permission:
@@ -475,7 +482,7 @@ index d2ea453..95d6879 100644
# List any file extensions like '.gz' or '.tar' that you would like ls
# to colorize below. Put the extension, a space, and the color init string.
-@@ -82,103 +87,99 @@ EXEC 01;32
+@@ -82,107 +91,107 @@ EXEC 01;32
#.sh 01;32
#.csh 01;32
@@ -523,6 +530,10 @@ index d2ea453..95d6879 100644
-.7z 01;31
-.rz 01;31
-.cab 01;31
+-.wim 01;31
+-.swm 01;31
+-.dwm 01;31
+-.esd 01;31
+# archives or compressed (red)
+.tar 00;31
+.tgz 00;31
@@ -546,6 +557,8 @@ index d2ea453..95d6879 100644
+.lz 00;31
+.lzo 00;31
+.xz 00;31
++.zst 00;31
++.tzst 00;31
+.bz2 00;31
+.bz 00;31
+.tbz 00;31
@@ -565,6 +578,10 @@ index d2ea453..95d6879 100644
+.7z 00;31
+.rz 00;31
+.cab 00;31
++.wim 00;31
++.swm 00;31
++.dwm 00;31
++.esd 00;31
# image formats
-.jpg 01;35
@@ -616,6 +633,8 @@ index d2ea453..95d6879 100644
-.emf 01;35
+.jpg 00;35
+.jpeg 00;35
++.mjpg 00;35
++.mjpeg 00;35
+.gif 00;35
+.bmp 00;35
+.pbm 00;35
@@ -660,7 +679,7 @@ index d2ea453..95d6879 100644
+.cgm 00;35
+.emf 00;35
- # http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
+ # https://wiki.xiph.org/MIME_Types_and_File_Extensions
-.ogv 01;35
-.ogx 01;35
+.ogv 00;35
diff --git a/coreutils-8.26-date-fix-tz-regre.patch b/coreutils-8.26-date-fix-tz-regre.patch
deleted file mode 100644
index 158c80a..0000000
--- a/coreutils-8.26-date-fix-tz-regre.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 12284825dcc5d9485ebaa78aedd93f450bad7b73 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?P=C3=A1draig=20Brady?=
-Date: Fri, 20 Jan 2017 12:40:35 +0000
-Subject: [PATCH 1/2] date: fix TZ= regression
-
-On 17/03/16 17:38, Paul Eggert wrote:
-> On 03/16/2016 08:51 PM, Assaf Gordon wrote:
->> I suspect it has something to do with this commit:
->> commit 037e3b9847feb46cf6b58d99ce960d3987faaf52
->
-> You're right, and thanks for that detailed bug report. I installed the
-> attached patch, which fixed the bug for me.
-
-This introduced a bug unfortunately due to the side effects of
-parse_datetime().
-parse_datetime resets the TZ env variable but doesn't call tzset().
-Hence using the wrong timezone for output.
-Previously localtime() called tzset() implicitly.
-Perhaps we should call tzset() in parse_datetime() if needed?
-I'm not sure as to whether this undoes the fix for bug 23035?
-
-Anyway this avoids the issue on GNU/Linux.
-
-Signed-off-by: Kamil Dudka
----
- src/date.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/date.c b/src/date.c
-index 619a72b..2b3d890 100644
---- a/src/date.c
-+++ b/src/date.c
-@@ -571,6 +571,8 @@ show_date (const char *format, struct timespec when, timezone_t tz)
- {
- struct tm tm;
-
-+ tzset ();
-+
- if (localtime_rz (tz, &when.tv_sec, &tm))
- {
- if (format == rfc_2822_format)
---
-2.7.4
-
-
-From 3c082157634bd4fbc79c26e9c56abb4da79e9a2d Mon Sep 17 00:00:00 2001
-From: Paul Eggert
-Date: Fri, 20 Jan 2017 18:24:02 -0800
-Subject: [PATCH 2/2] date: test for TZ= regression
-
-Problem reported by Paul Wise for Debian, in:
-https://bugs.debian.org/851934
-This is fallout from the fix for GNU Bug#23035.
-* tests/misc/date.pl: Test the fix.
-
-Upstream-commit: b14be5085cd1aefd473a000456b21270e6070711
-Signed-off-by: Kamil Dudka
----
- tests/misc/date-debug.sh | 4 ++--
- tests/misc/date.pl | 6 ++++++
- 2 files changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/tests/misc/date.pl b/tests/misc/date.pl
-index 7e45e98..be8b39e 100755
---- a/tests/misc/date.pl
-+++ b/tests/misc/date.pl
-@@ -291,6 +291,12 @@ my @Tests =
- {ERR => "date: invalid date 'TZ=\"\"\"'\n"},
- {EXIT => 1},
- ],
-+
-+ # https://bugs.debian.org/851934#10
-+ ['cross-TZ-mishandled', "-d 'TZ=\"EST5\" 1970-01-01 00:00'",
-+ {ENV => 'TZ=PST8'},
-+ {OUT => 'Wed Dec 31 21:00:00 PST 1969'},
-+ ],
- );
-
- # Repeat the cross-dst test, using Jan 1, 2005 and every interval from 1..364.
---
-2.7.4
-
diff --git a/coreutils-8.26-test-lock.patch b/coreutils-8.26-test-lock.patch
index 786aa33..d66928c 100644
--- a/coreutils-8.26-test-lock.patch
+++ b/coreutils-8.26-test-lock.patch
@@ -1,211 +1,7 @@
-From 4f6cb65ce4d643aca0c6bf7db2e8b32c0d08eb89 Mon Sep 17 00:00:00 2001
-From: Bruno Haible
-Date: Sat, 24 Dec 2016 18:21:59 +0100
-Subject: [PATCH 1/2] lock test: Fix performance problem on multi-core
- machines.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-* tests/test-lock.c (USE_VOLATILE): New macro.
-(struct atomic_int): New type.
-(init_atomic_int, get_atomic_int_value, set_atomic_int_value): New
-functions.
-(lock_checker_done, rwlock_checker_done, reclock_checker_done): Define
-as 'struct atomic_int'.
-(lock_checker_thread, test_lock, rwlock_checker_thread, test_rwlock,
-reclock_checker_thread, test_recursive_lock): Use the new functions.
-Reported by Eric Blake in
-https://www.redhat.com/archives/libvir-list/2012-March/msg00854.html
-and by Pádraig Brady in
-http://lists.gnu.org/archive/html/bug-gnulib/2016-12/msg00117.html.
-
-Upstream-commit: 480d374e596a0ee3fed168ab42cd84c313ad3c89
-Signed-off-by: Kamil Dudka
----
- gnulib-tests/test-lock.c | 79 ++++++++++++++++++++++++++++++++++++++++--------
- 1 file changed, 67 insertions(+), 12 deletions(-)
-
-diff --git a/gnulib-tests/test-lock.c b/gnulib-tests/test-lock.c
-index cb734b4..aa6de27 100644
---- a/gnulib-tests/test-lock.c
-+++ b/gnulib-tests/test-lock.c
-@@ -50,6 +50,13 @@
- Uncomment this to see if the operating system has a fair scheduler. */
- #define EXPLICIT_YIELD 1
-
-+/* Whether to use 'volatile' on some variables that communicate information
-+ between threads. If set to 0, a lock is used to protect these variables.
-+ If set to 1, 'volatile' is used; this is theoretically equivalent but can
-+ lead to much slower execution (e.g. 30x slower total run time on a 40-core
-+ machine. */
-+#define USE_VOLATILE 0
-+
- /* Whether to print debugging messages. */
- #define ENABLE_DEBUGGING 0
-
-@@ -103,6 +110,51 @@
- # define yield()
- #endif
-
-+#if USE_VOLATILE
-+struct atomic_int {
-+ volatile int value;
-+};
-+static void
-+init_atomic_int (struct atomic_int *ai)
-+{
-+}
-+static int
-+get_atomic_int_value (struct atomic_int *ai)
-+{
-+ return ai->value;
-+}
-+static void
-+set_atomic_int_value (struct atomic_int *ai, int new_value)
-+{
-+ ai->value = new_value;
-+}
-+#else
-+struct atomic_int {
-+ gl_lock_define (, lock)
-+ int value;
-+};
-+static void
-+init_atomic_int (struct atomic_int *ai)
-+{
-+ gl_lock_init (ai->lock);
-+}
-+static int
-+get_atomic_int_value (struct atomic_int *ai)
-+{
-+ gl_lock_lock (ai->lock);
-+ int ret = ai->value;
-+ gl_lock_unlock (ai->lock);
-+ return ret;
-+}
-+static void
-+set_atomic_int_value (struct atomic_int *ai, int new_value)
-+{
-+ gl_lock_lock (ai->lock);
-+ ai->value = new_value;
-+ gl_lock_unlock (ai->lock);
-+}
-+#endif
-+
- #define ACCOUNT_COUNT 4
-
- static int account[ACCOUNT_COUNT];
-@@ -170,12 +222,12 @@ lock_mutator_thread (void *arg)
- return NULL;
- }
-
--static volatile int lock_checker_done;
-+static struct atomic_int lock_checker_done;
-
- static void *
- lock_checker_thread (void *arg)
- {
-- while (!lock_checker_done)
-+ while (get_atomic_int_value (&lock_checker_done) == 0)
- {
- dbgprintf ("Checker %p before check lock\n", gl_thread_self_pointer ());
- gl_lock_lock (my_lock);
-@@ -200,7 +252,8 @@ test_lock (void)
- /* Initialization. */
- for (i = 0; i < ACCOUNT_COUNT; i++)
- account[i] = 1000;
-- lock_checker_done = 0;
-+ init_atomic_int (&lock_checker_done);
-+ set_atomic_int_value (&lock_checker_done, 0);
-
- /* Spawn the threads. */
- checkerthread = gl_thread_create (lock_checker_thread, NULL);
-@@ -210,7 +263,7 @@ test_lock (void)
- /* Wait for the threads to terminate. */
- for (i = 0; i < THREAD_COUNT; i++)
- gl_thread_join (threads[i], NULL);
-- lock_checker_done = 1;
-+ set_atomic_int_value (&lock_checker_done, 1);
- gl_thread_join (checkerthread, NULL);
- check_accounts ();
- }
-@@ -254,12 +307,12 @@ rwlock_mutator_thread (void *arg)
- return NULL;
- }
-
--static volatile int rwlock_checker_done;
-+static struct atomic_int rwlock_checker_done;
-
- static void *
- rwlock_checker_thread (void *arg)
- {
-- while (!rwlock_checker_done)
-+ while (get_atomic_int_value (&rwlock_checker_done) == 0)
- {
- dbgprintf ("Checker %p before check rdlock\n", gl_thread_self_pointer ());
- gl_rwlock_rdlock (my_rwlock);
-@@ -284,7 +337,8 @@ test_rwlock (void)
- /* Initialization. */
- for (i = 0; i < ACCOUNT_COUNT; i++)
- account[i] = 1000;
-- rwlock_checker_done = 0;
-+ init_atomic_int (&rwlock_checker_done);
-+ set_atomic_int_value (&rwlock_checker_done, 0);
-
- /* Spawn the threads. */
- for (i = 0; i < THREAD_COUNT; i++)
-@@ -295,7 +349,7 @@ test_rwlock (void)
- /* Wait for the threads to terminate. */
- for (i = 0; i < THREAD_COUNT; i++)
- gl_thread_join (threads[i], NULL);
-- rwlock_checker_done = 1;
-+ set_atomic_int_value (&rwlock_checker_done, 1);
- for (i = 0; i < THREAD_COUNT; i++)
- gl_thread_join (checkerthreads[i], NULL);
- check_accounts ();
-@@ -356,12 +410,12 @@ reclock_mutator_thread (void *arg)
- return NULL;
- }
-
--static volatile int reclock_checker_done;
-+static struct atomic_int reclock_checker_done;
-
- static void *
- reclock_checker_thread (void *arg)
- {
-- while (!reclock_checker_done)
-+ while (get_atomic_int_value (&reclock_checker_done) == 0)
- {
- dbgprintf ("Checker %p before check lock\n", gl_thread_self_pointer ());
- gl_recursive_lock_lock (my_reclock);
-@@ -386,7 +440,8 @@ test_recursive_lock (void)
- /* Initialization. */
- for (i = 0; i < ACCOUNT_COUNT; i++)
- account[i] = 1000;
-- reclock_checker_done = 0;
-+ init_atomic_int (&reclock_checker_done);
-+ set_atomic_int_value (&reclock_checker_done, 0);
-
- /* Spawn the threads. */
- checkerthread = gl_thread_create (reclock_checker_thread, NULL);
-@@ -396,7 +451,7 @@ test_recursive_lock (void)
- /* Wait for the threads to terminate. */
- for (i = 0; i < THREAD_COUNT; i++)
- gl_thread_join (threads[i], NULL);
-- reclock_checker_done = 1;
-+ set_atomic_int_value (&reclock_checker_done, 1);
- gl_thread_join (checkerthread, NULL);
- check_accounts ();
- }
---
-2.7.4
-
-
From 0d04ee8ddedb2bf33d64f148f246a3b7ec4fef21 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Mon, 23 Jan 2017 12:35:41 +0100
-Subject: [PATCH 2/2] test-lock: disable the rwlock test
+Subject: [PATCH] test-lock: disable the rwlock test
It hangs indefinitely if the system rwlock implementation does not
prevent writer starvation (and glibc does not implement it).
diff --git a/coreutils-8.26.tar.xz.sig b/coreutils-8.26.tar.xz.sig
deleted file mode 100644
index fe1635d..0000000
--- a/coreutils-8.26.tar.xz.sig
+++ /dev/null
@@ -1,17 +0,0 @@
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1
-
-iQIcBAABAgAGBQJYPyRpAAoJEN9v2XEwYDfZ0I4P/3oaPYXMPEOKuDDpEcLumn26
-gYIMQc1jIMbBNQe120gQmNPkRr5dTKt5Bap9qYkCj0pI/6VxVIWDo0xrOLYZi7AN
-Xgr0kX2qLDFEH+EHkC1BpsAdpsgwfvLmVWPHS62CNKgVDgGiP1cRJZe8oVmlBCiR
-3ES7pUsBfDn3hbdKNTTmMDtro1rQMOxfHkVCZLAva+JjdzpE+KTvzZzKkVuZZfJ/
-Mi/ZySrXZXFvPBS7GXgop4x8EodyzQMeKO+nvpIUEBY1yLQgCvni5/CBI8w/EViD
-DSjj0zWsCQkEjx6HCohi8sBHUYZ+M3lB4rkFk7aevdioPZUGfLkW31LT/cUJC/VV
-MIQKWzQtZO/WCJuyEbWP2m25c4MtnnhTm5yoi29yT/CoTRlUWkIQpXm4oD1cJXHy
-PpHveu8qM0qRaAtVdXE3pmapIMYUV4g7vxSuCjZRrgiDLhp/K7Lzt5xBhl++kPU2
-U9uc202eah4Towo0pbHsuEJT0vk0GGLq8/17dCa/ss8wV+86ZLxl0kZYy4CNEnIW
-vsCN6CJ5AoAEVrMN1F7ZJYnH4hoJedvIczThnAkNTqYYE3wnN9stOe28Oy/a0/tg
-bt5/Mn0JbmQei890uU8zcEdUjidHqGV4hKk1E2UC4UCyHG/VcHv9gfr8OaD/xPDr
-SoauDCHpBU7J7FT/DX+k
-=vkKy
------END PGP SIGNATURE-----
diff --git a/coreutils-8.27.tar.xz.sig b/coreutils-8.27.tar.xz.sig
new file mode 100644
index 0000000..7555c00
--- /dev/null
+++ b/coreutils-8.27.tar.xz.sig
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIcBAABAgAGBQJYwOwaAAoJEN9v2XEwYDfZQrUP/RdXj/ug35e+u+VD1ts9/b8n
+7JihJmxngEZQAJECNTMbJ7mNj6DhpMY0Jg/Hwg7zJT28T6QDeS1Iuk3Id4uM5eFa
+CgHKAZumntSMTkQdNvnCEFEIqu+L8BtBYGcOaw66wAFNFw3jdJUUs2sOST2r46jR
+N7aY9oARKJuHfgTZ2BI2zL0Q+poXM1O0k/U+BScE6c139zJsbg+1uM9kGVtJWPkM
+EPLFWkbTgjYnt+qEFrDlWL0YFOS42sgR7P1sVfBC1nAu5lwgzPy62OtGv9WCEBhm
+3+PRNZ0KLW8CKp06llG/0bG4QwssWs6p/vPwrRGeAg6pKsRNN1ni27AnDThiPgvz
+YbBLgU+EZj1HuibvYArHXNKY2+O5ZC3nYU6bdAffl3TAtrGFA1ncZXGiFD5UgOQ2
+V9Q38S41FUEwKGtf9tWGCRTxrb4FQ1CDzJglV9vHKetn4mgH/HpEG/q07k4RNW5d
+ikfrS0xFxbqtLjlY3UqvtkrFyVQFY093ozsP7fKsq53JAtEWc3YvXR8UCbliU+gV
+5qug0REBQafe9EAyH+oq0dzD2BZ3KtFcjtKI/2UzAf3idcyygsHgcEPQObqI8BfD
+NscEMjdFY7+Zh5w2shQlyq4xr2aI2nXCX3+AMcS/6Yfg6W6fBvgIjtmXBrQsbWpV
+DBcx50TVDa/ERBX1+FI1
+=skPR
+-----END PGP SIGNATURE-----
diff --git a/coreutils-getgrouplist.patch b/coreutils-getgrouplist.patch
index 7defd19..5b35f42 100644
--- a/coreutils-getgrouplist.patch
+++ b/coreutils-getgrouplist.patch
@@ -30,7 +30,7 @@ index 76474c2..0a9d221 100644
- : getgroups (0, NULL));
+ if (!username)
+ max_n_groups = getgroups(0, NULL);
-+ else
++ else
+ {
+#ifdef HAVE_GETGROUPLIST
+ max_n_groups = 0;
diff --git a/coreutils-i18n-fix2-expand-unexpand.patch b/coreutils-i18n-fix2-expand-unexpand.patch
index 1a63012..b34d7b7 100644
--- a/coreutils-i18n-fix2-expand-unexpand.patch
+++ b/coreutils-i18n-fix2-expand-unexpand.patch
@@ -22,7 +22,7 @@ index 380e020..310b349 100644
+ }
}
- while (false);
-+
++
if (convert)
{
@@ -50,7 +50,7 @@ index 3bbbd66..863a90a 100644
+ }
}
- while (false);
-+
++
if (convert)
{
diff --git a/coreutils-i18n-fold-newline.patch b/coreutils-i18n-fold-newline.patch
index 79d1a09..f7286ef 100644
--- a/coreutils-i18n-fold-newline.patch
+++ b/coreutils-i18n-fold-newline.patch
@@ -4,8 +4,8 @@ Date: Fri, 3 Feb 2017 12:26:53 +0100
Subject: [PATCH] fold.c: preserve new-lines in mutlibyte text
---
- src/fold.c | 55 +++++++++++++++++++++++++++----------------------------
- 1 file changed, 27 insertions(+), 28 deletions(-)
+ src/fold.c | 49 ++++++++++++++++++++++++-------------------------
+ 1 file changed, 24 insertions(+), 25 deletions(-)
diff --git a/src/fold.c b/src/fold.c
index d23edd5..8c232a7 100644
@@ -43,15 +43,24 @@ index d23edd5..8c232a7 100644
- fwrite (line_out, sizeof(char), offset_out, stdout);
- START_NEW_LINE;
- continue;
--
++ case L'\b':
++ increment = (column > 0) ? -1 : 0;
++ break;
+
- case L'\b':
- increment = (column > 0) ? -1 : 0;
- break;
--
++ case L'\r':
++ increment = -1 * column;
++ break;
+
- case L'\r':
- increment = -1 * column;
- break;
--
++ case L'\t':
++ increment = 8 - column % 8;
++ break;
+
- case L'\t':
- increment = 8 - column % 8;
- break;
@@ -60,18 +69,6 @@ index d23edd5..8c232a7 100644
- increment = wcwidth (wc);
- increment = (increment < 0) ? 0 : increment;
- }
-+ case L'\b':
-+ increment = (column > 0) ? -1 : 0;
-+ break;
-+
-+ case L'\r':
-+ increment = -1 * column;
-+ break;
-+
-+ case L'\t':
-+ increment = 8 - column % 8;
-+ break;
-+
+ default:
+ increment = wcwidth (wc);
+ increment = (increment < 0) ? 0 : increment;
diff --git a/coreutils-i18n-un-expand-BOM.patch b/coreutils-i18n-un-expand-BOM.patch
index 56e7fa5..2ccdcca 100644
--- a/coreutils-i18n-un-expand-BOM.patch
+++ b/coreutils-i18n-un-expand-BOM.patch
@@ -1,3 +1,17 @@
+From 7a7c776a4e228d180e74614fd8c8afcad5d4bdf7 Mon Sep 17 00:00:00 2001
+From: Jakub Martisko
+Date: Thu, 7 Jul 2016 12:53:26 +0200
+Subject: [PATCH] coreutils-i18n-un-expand-BOM.patch
+
+---
+ src/expand-common.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/expand-common.h | 12 ++++++
+ src/expand.c | 45 +++++++++++++++++++-
+ src/unexpand.c | 43 ++++++++++++++++++-
+ tests/expand/mb.sh | 71 ++++++++++++++++++++++++++++++++
+ tests/unexpand/mb.sh | 59 ++++++++++++++++++++++++++
+ 6 files changed, 342 insertions(+), 2 deletions(-)
+
diff --git a/src/expand-common.c b/src/expand-common.c
index 4657e46..97cbb09 100644
--- a/src/expand-common.c
@@ -10,8 +24,8 @@ index 4657e46..97cbb09 100644
#include "system.h"
#include "die.h"
#include "error.h"
-@@ -85,6 +86,119 @@ add_tab_stop (uintmax_t tabval)
- }
+@@ -105,6 +106,119 @@ set_extend_size (uintmax_t tabval)
+ return ok;
}
+extern int
@@ -40,12 +54,12 @@ index 4657e46..97cbb09 100644
+check_utf_locale(void)
+{
+ char* locale = setlocale (LC_CTYPE , NULL);
-+ if (locale == NULL)
++ if (locale == NULL)
+ {
+ return false;
+ }
+ else if (strcasestr(locale, "utf8") == NULL && strcasestr(locale, "utf-8") == NULL)
-+ {
++ {
+ return false;
+ }
+ return true;
@@ -147,7 +161,7 @@ index 8cb2079..763bfda 100644
+extern bool
+check_bom(FILE* fp, mb_file_t *mbf);
+
-+extern void
++extern void
+print_bom(void);
+
/* Add tab stop TABVAL to the end of 'tab_list'. */
@@ -161,14 +175,13 @@ index 310b349..4136824 100644
FILE *fp = next_file (NULL);
mb_file_t mbf;
mbf_char_t c;
--
+ /* True if the starting locale is utf8. */
+ bool using_utf_locale;
-+
++
+ /* True if the first file contains BOM header. */
+ bool found_bom;
+ using_utf_locale=check_utf_locale();
-+
+
if (!fp)
return;
-
@@ -178,13 +191,13 @@ index 310b349..4136824 100644
+ if (using_utf_locale == false && found_bom == true)
+ {
+ /*try using some predefined locale */
-+
++
+ if (set_utf_locale () != 0)
+ {
+ error (EXIT_FAILURE, errno, _("cannot set UTF-8 locale"));
+ }
+ }
-+
++
+
+ if (found_bom == true)
+ {
@@ -212,7 +225,7 @@ index 310b349..4136824 100644
+ {
+ if(using_utf_locale==false && found_bom==true)
+ {
-+ /*First file conatined BOM header - locale was switched to UTF
++ /*First file conatined BOM header - locale was switched to UTF
+ /*all subsequent files should contain BOM. */
+ error (EXIT_FAILURE, errno, _("combination of files with and without BOM header"));
+ }
@@ -231,7 +244,7 @@ index 863a90a..5681b58 100644
mbf_char_t *pending_blank;
+ /* True if the starting locale is utf8. */
+ bool using_utf_locale;
-+
++
+ /* True if the first file contains BOM header. */
+ bool found_bom;
+ using_utf_locale=check_utf_locale();
@@ -240,11 +253,11 @@ index 863a90a..5681b58 100644
return;
+ mbf_init (mbf, fp);
+ found_bom=check_bom(fp,&mbf);
-
++
+ if (using_utf_locale == false && found_bom == true)
+ {
+ /*try using some predefined locale */
-+
+
+ if (set_utf_locale () != 0)
+ {
+ error (EXIT_FAILURE, errno, _("cannot set UTF-8 locale"));
@@ -282,7 +295,7 @@ index 863a90a..5681b58 100644
+ {
+ if(using_utf_locale==false && found_bom==true)
+ {
-+ /*First file conatined BOM header - locale was switched to UTF
++ /*First file conatined BOM header - locale was switched to UTF
+ /*all subsequent files should contain BOM. */
+ error (EXIT_FAILURE, errno, _("combination of files with and without BOM header"));
+ }
@@ -301,7 +314,7 @@ index 031be7a..1621c84 100755
+
+
-+#BOM header test 1
++#BOM header test 1
+printf "\xEF\xBB\xBF" > in; cat <<\EOF >> in || framework_failure_
+1234567812345678123456781
+. . . .
@@ -380,7 +393,7 @@ index 8d75652..9d4ee3e 100755
unexpand -a < in > out || fail=1
compare exp out > /dev/null 2>&1 || fail=1
+
-+#BOM header test 1
++#BOM header test 1
+printf "\xEF\xBB\xBF" > in; cat <<\EOF >> in || framework_failure_
+1234567812345678123456781
+. . . .
@@ -438,3 +451,6 @@ index 8d75652..9d4ee3e 100755
+
+LC_ALL=C unexpand in in > out || fail=1
+compare exp out > /dev/null 2>&1 || fail=1
+--
+2.9.3
+
diff --git a/coreutils-i18n.patch b/coreutils-i18n.patch
index d7cf59c..ab5d8dc 100644
--- a/coreutils-i18n.patch
+++ b/coreutils-i18n.patch
@@ -315,7 +315,7 @@ index 8cd0d6b..d23edd5 100644
+ fwrite (line_out, sizeof(char), offset_out, stdout);
+ START_NEW_LINE;
+ continue;
-+
++
+ case L'\b':
+ increment = (column > 0) ? -1 : 0;
+ break;
@@ -672,7 +672,7 @@ index 98b461c..9990f38 100644
+ extract_field (line, ptr, lim - ptr);
+}
+#endif
-+
++
static void
freeline (struct line *line)
{
@@ -2843,7 +2843,7 @@ index 87a0c93..9f755d9 100644
+ while (pos < size)
+ {
+ MBCHAR_TO_WCHAR (wc, mblength, lp, pos, size, statep, convfail);
-+
++
+ if (convfail || !(iswblank (wc) || wc == '\n'))
+ {
+ pos += mblength;
@@ -2886,7 +2886,7 @@ index 87a0c93..9f755d9 100644
if (check_chars < oldlen)
oldlen = check_chars;
if (check_chars < newlen)
-@@ -295,14 +401,103 @@ different (char *old, char *new, size_t oldlen, size_t newlen)
+@@ -295,15 +401,104 @@ different (char *old, char *new, size_t oldlen, size_t newlen)
if (ignore_case)
{
@@ -2918,8 +2918,8 @@ index 87a0c93..9f755d9 100644
+
+ return xmemcoll (copy_old, oldlen, copy_new, newlen);
+
-+}
-+
+ }
+
+#if HAVE_MBRTOWC
+static int
+different_multi (const char *old, const char *new, size_t oldlen, size_t newlen, mbstate_t oldstate, mbstate_t newstate)
@@ -2990,11 +2990,12 @@ index 87a0c93..9f755d9 100644
+ free (copy[1]);
+ return rc;
+
- }
++}
+#endif
-
++
/* Output the line in linebuffer LINE to standard output
provided that the switches say it should be output.
+ MATCH is true if the line matches the previous line.
@@ -367,19 +562,38 @@ check_file (const char *infile, const char *outfile, char delimiter)
char *prevfield IF_LINT ( = NULL);
size_t prevlen IF_LINT ( = 0);
@@ -3156,7 +3157,7 @@ diff --git a/tests/local.mk b/tests/local.mk
index 568944e..192f776 100644
--- a/tests/local.mk
+++ b/tests/local.mk
-@@ -350,6 +350,8 @@ all_tests = \
+@@ -352,6 +352,8 @@ all_tests = \
tests/misc/sort-discrim.sh \
tests/misc/sort-files0-from.pl \
tests/misc/sort-float.sh \
@@ -3211,8 +3212,8 @@ index 8a9cad1..9293e39 100755
my @Tests =
(
['t1', '--tabs=3', {IN=>"a\tb"}, {OUT=>"a b"}],
-@@ -140,6 +149,8 @@ my @Tests =
-
+@@ -152,6 +161,8 @@ my @Tests =
+ ['trail9', '--tab=1,2 -t/5',{IN=>"\ta\tb\tc"}, {OUT=>" a b c"}],
# Test errors
+ # FIXME: The following tests contain ‘quoting’ specific to LC_MESSAGES
@@ -3220,8 +3221,8 @@ index 8a9cad1..9293e39 100755
['e1', '--tabs="a"', {IN=>''}, {OUT=>''}, {EXIT=>1},
{ERR => "$prog: tab size contains invalid character(s): 'a'\n"}],
['e2', "-t $UINTMAX_OFLOW", {IN=>''}, {OUT=>''}, {EXIT=>1},
-@@ -150,6 +161,37 @@ my @Tests =
- {ERR => "$prog: tab sizes must be ascending\n"}],
+@@ -168,6 +179,37 @@ my @Tests =
+ {ERR => "$prog: '/' specifier not at start of number: '/'\n"}],
);
+if ($mb_locale ne 'C')
@@ -3533,7 +3534,7 @@ index c3e7f8e..6ecd3ff 100755
# Since each test is run with a file name and with redirected stdin,
# the name in the diagnostic is either the file name or "-".
# Normalize each diagnostic to use '-'.
-@@ -424,6 +429,38 @@ foreach my $t (@Tests)
+@@ -423,6 +428,38 @@ foreach my $t (@Tests)
}
}
@@ -3572,7 +3573,7 @@ index c3e7f8e..6ecd3ff 100755
@Tests = triple_test \@Tests;
# Remember that triple_test creates from each test with exactly one "IN"
-@@ -433,6 +470,7 @@ foreach my $t (@Tests)
+@@ -432,6 +469,7 @@ foreach my $t (@Tests)
# Remove the IN_PIPE version of the "output-is-input" test above.
# The others aren't susceptible because they have three inputs each.
@Tests = grep {$_->[0] ne 'output-is-input.p'} @Tests;
diff --git a/coreutils-selinux.patch b/coreutils-selinux.patch
index cee4f7c..8274a23 100644
--- a/coreutils-selinux.patch
+++ b/coreutils-selinux.patch
@@ -48,7 +48,7 @@ index 1b528c6..25dbb88 100644
+ case 'c':
+ fprintf (stderr, "%s: warning: option '-c' is deprecated, please use '--preserve=context' instead\n", argv[0]);
-+ if ( x.set_security_context ) {
++ if ( x.set_security_context ) {
+ (void) fprintf(stderr, "%s: cannot force target context and preserve it\n", argv[0]);
+ exit( 1 );
+ }
diff --git a/coreutils.spec b/coreutils.spec
index a2899d7..0af685d 100644
--- a/coreutils.spec
+++ b/coreutils.spec
@@ -1,11 +1,11 @@
Summary: A set of basic GNU tools commonly used in shell scripts
Name: coreutils
-Version: 8.26
-Release: 7%{?dist}
+Version: 8.27
+Release: 1%{?dist}
License: GPLv3+
Group: System Environment/Base
-Url: http://www.gnu.org/software/coreutils/
-Source0: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
+Url: https://www.gnu.org/software/coreutils/
+Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
Source50: supported_utils
Source105: coreutils-colorls.sh
Source106: coreutils-colorls.csh
@@ -19,9 +19,6 @@ Source10: coreutils-find-requires.sh
# disable the test-lock gnulib test prone to deadlock
Patch1: coreutils-8.26-test-lock.patch
-# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=851934#10
-Patch2: coreutils-8.26-date-fix-tz-regre.patch
-
#add note about no difference between binary/text mode on Linux - md5sum manpage
Patch101: coreutils-6.10-manpages.patch
# downstream changes to default DIR_COLORS
@@ -172,6 +169,8 @@ including documentation and translations.
# will be modified by coreutils-8.25-DIR_COLORS.patch
tee DIR_COLORS{,.256color,.lightbgcolor} /dev/null
+# git add DIR_COLORS{,.256color,.lightbgcolor}
+# git commit -m "clone DIR_COLORS before patching"
# apply all patches
%autopatch -p1
@@ -301,6 +300,9 @@ fi
%license COPYING
%changelog
+* Thu Mar 09 2017 Kamil Dudka - 8.27-1
+- new upstream release 8.27
+
* Fri Feb 10 2017 Fedora Release Engineering - 8.26-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
diff --git a/sources b/sources
index becdeb6..2566cf4 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-d5aa2072f662d4118b9f4c63b94601a6 coreutils-8.26.tar.xz
+SHA512 (coreutils-8.27.tar.xz) = abf3280aaa54e9bd5851df0eda2af1de1017ca174633e52d1e592455d46ea0e99812dda46d2f320e979553cef271485d8818c595bba6ed31264511a511c93679