Page Menu
Home
Solus
Search
Configure Global Search
Log In
Files
F11054306
D357.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
35 KB
Referenced Files
None
Subscribers
None
D357.diff
View Options
diff --git a/files/coreutils-8.26-i18n-1.patch b/files/coreutils-8.27-i18n-1.patch
rename from files/coreutils-8.26-i18n-1.patch
rename to files/coreutils-8.27-i18n-1.patch
--- a/files/coreutils-8.26-i18n-1.patch
+++ b/files/coreutils-8.27-i18n-1.patch
@@ -1,14 +1,14 @@
Submitted by: DJ Lucas (dj_AT_linuxfromscratch_DOT_org)
-Date: 2016-12-03
-Initial Package Version: 8.26
+Date: 2017-03-12
+Initial Package Version: 8.27
Upstream Status: Rejected
-Origin: Based on Suse's i18n patches at
- https://build.opensuse.org/package/show/Base:System/coreutils/
+Origin: Based on Fedora's i18n patches at
+ http://pkgs.fedoraproject.org/cgit/rpms/coreutils.git/tree/
Description: Fixes i18n issues with various Coreutils programs
-diff -Naurp coreutils-8.26-orig/bootstrap.conf coreutils-8.26/bootstrap.conf
---- coreutils-8.26-orig/bootstrap.conf 2016-11-06 16:15:29.000000000 -0600
-+++ coreutils-8.26/bootstrap.conf 2016-12-02 19:15:23.514391986 -0600
+diff -Naurp coreutils-8.27-orig/bootstrap.conf coreutils-8.27/bootstrap.conf
+--- coreutils-8.27-orig/bootstrap.conf 2017-03-07 23:34:06.000000000 -0600
++++ coreutils-8.27/bootstrap.conf 2017-03-11 23:47:38.068058445 -0600
@@ -152,6 +152,7 @@ gnulib_modules="
maintainer-makefile
malloc-gnu
@@ -17,10 +17,10 @@
mbrlen
mbrtowc
mbsalign
-diff -Naurp coreutils-8.26-orig/configure.ac coreutils-8.26/configure.ac
---- coreutils-8.26-orig/configure.ac 2016-11-29 12:03:45.000000000 -0600
-+++ coreutils-8.26/configure.ac 2016-12-02 19:15:23.515391902 -0600
-@@ -427,6 +427,8 @@ fi
+diff -Naurp coreutils-8.27-orig/configure.ac coreutils-8.27/configure.ac
+--- coreutils-8.27-orig/configure.ac 2017-02-26 08:52:29.000000000 -0600
++++ coreutils-8.27/configure.ac 2017-03-11 23:47:38.068058445 -0600
+@@ -429,6 +429,8 @@ fi
# I'm leaving it here for now. This whole thing needs to be modernized...
gl_WINSIZE_IN_PTEM
@@ -29,9 +29,9 @@
gl_HEADER_TIOCGWINSZ_IN_TERMIOS_H
if test $gl_cv_sys_tiocgwinsz_needs_termios_h = no && \
-diff -Naurp coreutils-8.26-orig/lib/linebuffer.h coreutils-8.26/lib/linebuffer.h
---- coreutils-8.26-orig/lib/linebuffer.h 2016-07-15 14:47:39.000000000 -0500
-+++ coreutils-8.26/lib/linebuffer.h 2016-12-02 19:15:23.515391902 -0600
+diff -Naurp coreutils-8.27-orig/lib/linebuffer.h coreutils-8.27/lib/linebuffer.h
+--- coreutils-8.27-orig/lib/linebuffer.h 2017-01-01 16:35:38.000000000 -0600
++++ coreutils-8.27/lib/linebuffer.h 2017-03-11 23:47:13.089286391 -0600
@@ -21,6 +21,11 @@
# include <stdio.h>
@@ -54,19 +54,19 @@
};
/* Initialize linebuffer LINEBUFFER for use. */
-diff -Naurp coreutils-8.26-orig/lib/mbfile.c coreutils-8.26/lib/mbfile.c
---- coreutils-8.26-orig/lib/mbfile.c 1969-12-31 18:00:00.000000000 -0600
-+++ coreutils-8.26/lib/mbfile.c 2016-12-02 19:15:23.515391902 -0600
+diff -Naurp coreutils-8.27-orig/lib/mbfile.c coreutils-8.27/lib/mbfile.c
+--- coreutils-8.27-orig/lib/mbfile.c 1969-12-31 18:00:00.000000000 -0600
++++ coreutils-8.27/lib/mbfile.c 2017-03-11 23:47:38.069058397 -0600
@@ -0,0 +1,3 @@
+#include <config.h>
+#define MBFILE_INLINE _GL_EXTERN_INLINE
+#include "mbfile.h"
-diff -Naurp coreutils-8.26-orig/lib/mbfile.h coreutils-8.26/lib/mbfile.h
---- coreutils-8.26-orig/lib/mbfile.h 1969-12-31 18:00:00.000000000 -0600
-+++ coreutils-8.26/lib/mbfile.h 2016-12-02 19:15:23.516391818 -0600
+diff -Naurp coreutils-8.27-orig/lib/mbfile.h coreutils-8.27/lib/mbfile.h
+--- coreutils-8.27-orig/lib/mbfile.h 1969-12-31 18:00:00.000000000 -0600
++++ coreutils-8.27/lib/mbfile.h 2017-03-11 23:47:38.069058397 -0600
@@ -0,0 +1,255 @@
+/* Multibyte character I/O: macros for multi-byte encodings.
-+ Copyright (C) 2001, 2005, 2009-2015 Free Software Foundation, Inc.
++ Copyright (C) 2001, 2005, 2009-2017 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
@@ -320,12 +320,12 @@
+_GL_INLINE_HEADER_BEGIN
+
+#endif /* _MBFILE_H */
-diff -Naurp coreutils-8.26-orig/m4/mbfile.m4 coreutils-8.26/m4/mbfile.m4
---- coreutils-8.26-orig/m4/mbfile.m4 1969-12-31 18:00:00.000000000 -0600
-+++ coreutils-8.26/m4/mbfile.m4 2016-12-02 19:15:23.516391818 -0600
+diff -Naurp coreutils-8.27-orig/m4/mbfile.m4 coreutils-8.27/m4/mbfile.m4
+--- coreutils-8.27-orig/m4/mbfile.m4 1969-12-31 18:00:00.000000000 -0600
++++ coreutils-8.27/m4/mbfile.m4 2017-03-11 23:47:38.070058349 -0600
@@ -0,0 +1,14 @@
+# mbfile.m4 serial 7
-+dnl Copyright (C) 2005, 2008-2015 Free Software Foundation, Inc.
++dnl Copyright (C) 2005, 2008-2017 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
@@ -338,9 +338,9 @@
+ AC_REQUIRE([AC_TYPE_MBSTATE_T])
+ :
+])
-diff -Naurp coreutils-8.26-orig/src/cut.c coreutils-8.26/src/cut.c
---- coreutils-8.26-orig/src/cut.c 2016-10-15 16:00:55.000000000 -0500
-+++ coreutils-8.26/src/cut.c 2016-12-02 19:15:23.517391733 -0600
+diff -Naurp coreutils-8.27-orig/src/cut.c coreutils-8.27/src/cut.c
+--- coreutils-8.27-orig/src/cut.c 2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/src/cut.c 2017-03-11 23:47:59.526048471 -0600
@@ -28,6 +28,11 @@
#include <assert.h>
#include <getopt.h>
@@ -902,9 +902,9 @@
}
if (optind == argc)
-diff -Naurp coreutils-8.26-orig/src/expand.c coreutils-8.26/src/expand.c
---- coreutils-8.26-orig/src/expand.c 2016-11-06 16:15:30.000000000 -0600
-+++ coreutils-8.26/src/expand.c 2016-12-02 19:15:23.518391649 -0600
+diff -Naurp coreutils-8.27-orig/src/expand.c coreutils-8.27/src/expand.c
+--- coreutils-8.27-orig/src/expand.c 2017-02-26 15:42:25.000000000 -0600
++++ coreutils-8.27/src/expand.c 2017-03-11 23:49:06.758133530 -0600
@@ -37,6 +37,9 @@
#include <stdio.h>
#include <getopt.h>
@@ -1057,9 +1057,9 @@
}
}
-diff -Naurp coreutils-8.26-orig/src/expand-common.c coreutils-8.26/src/expand-common.c
---- coreutils-8.26-orig/src/expand-common.c 2016-11-06 16:15:30.000000000 -0600
-+++ coreutils-8.26/src/expand-common.c 2016-12-02 19:15:23.518391649 -0600
+diff -Naurp coreutils-8.27-orig/src/expand-common.c coreutils-8.27/src/expand-common.c
+--- coreutils-8.27-orig/src/expand-common.c 2017-03-01 11:22:55.000000000 -0600
++++ coreutils-8.27/src/expand-common.c 2017-03-11 23:49:06.757133570 -0600
@@ -18,6 +18,7 @@
#include <stdio.h>
@@ -1068,8 +1068,8 @@
#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
@@ -1188,9 +1188,9 @@
/* Add the comma or blank separated list of tab stops STOPS
to the list of tab stops. */
extern void
-diff -Naurp coreutils-8.26-orig/src/expand-common.h coreutils-8.26/src/expand-common.h
---- coreutils-8.26-orig/src/expand-common.h 2016-11-06 16:15:30.000000000 -0600
-+++ coreutils-8.26/src/expand-common.h 2016-12-02 19:15:23.518391649 -0600
+diff -Naurp coreutils-8.27-orig/src/expand-common.h coreutils-8.27/src/expand-common.h
+--- coreutils-8.27-orig/src/expand-common.h 2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/src/expand-common.h 2017-03-11 23:49:06.758133530 -0600
@@ -34,6 +34,18 @@ extern size_t max_column_width;
/* The desired exit status. */
extern int exit_status;
@@ -1210,9 +1210,9 @@
/* Add tab stop TABVAL to the end of 'tab_list'. */
extern void
add_tab_stop (uintmax_t tabval);
-diff -Naurp coreutils-8.26-orig/src/fold.c coreutils-8.26/src/fold.c
---- coreutils-8.26-orig/src/fold.c 2016-11-06 16:15:30.000000000 -0600
-+++ coreutils-8.26/src/fold.c 2016-12-02 19:15:23.519391564 -0600
+diff -Naurp coreutils-8.27-orig/src/fold.c coreutils-8.27/src/fold.c
+--- coreutils-8.27-orig/src/fold.c 2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/src/fold.c 2017-03-11 23:49:30.982169404 -0600
@@ -22,12 +22,34 @@
#include <getopt.h>
#include <sys/types.h>
@@ -1360,16 +1360,16 @@
/* Look for the last blank. */
while (logical_end)
{
-@@ -215,11 +252,221 @@ fold_file (char const *filename, size_t
+@@ -215,11 +252,220 @@ fold_file (char const *filename, size_t
line_out[offset_out++] = c;
}
- saved_errno = errno;
+ *saved_errno = errno;
-
- if (offset_out)
- fwrite (line_out, sizeof (char), (size_t) offset_out, stdout);
-
++
++ if (offset_out)
++ fwrite (line_out, sizeof (char), (size_t) offset_out, stdout);
++
+}
+
+#if HAVE_MBRTOWC
@@ -1455,39 +1455,38 @@
+ }
+
+rescan:
-+ if (operating_mode == byte_mode) /* byte mode */
++ if (convfail)
++ increment = 1;
++ else if (wc == L'\n')
++ {
++ /* preserve newline */
++ fwrite (line_out, sizeof(char), offset_out, stdout);
++ START_NEW_LINE;
++ continue;
++ }
++ else if (operating_mode == byte_mode) /* byte mode */
+ increment = mblength;
+ else if (operating_mode == character_mode) /* character mode */
+ increment = 1;
-+ else /* column mode */
++ else /* column mode */
+ {
-+ if (convfail)
-+ increment = 1;
-+ else
++ switch (wc)
+ {
-+ switch (wc)
-+ {
-+ case L'\n':
-+ 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;
+
-+ default:
-+ increment = wcwidth (wc);
-+ increment = (increment < 0) ? 0 : increment;
-+ }
++ default:
++ increment = wcwidth (wc);
++ increment = (increment < 0) ? 0 : increment;
+ }
+ }
+
@@ -1541,10 +1540,10 @@
+ }
+
+ *saved_errno = errno;
-+
-+ if (offset_out)
-+ fwrite (line_out, sizeof (char), (size_t) offset_out, stdout);
-+
+
+ if (offset_out)
+ fwrite (line_out, sizeof (char), (size_t) offset_out, stdout);
+
+}
+#endif
+
@@ -1583,7 +1582,7 @@
if (ferror (istream))
{
error (0, saved_errno, "%s", quotef (filename));
-@@ -252,7 +499,8 @@ main (int argc, char **argv)
+@@ -252,7 +498,8 @@ main (int argc, char **argv)
atexit (close_stdout);
@@ -1593,7 +1592,7 @@
while ((optc = getopt_long (argc, argv, shortopts, longopts, NULL)) != -1)
{
-@@ -261,7 +509,15 @@ main (int argc, char **argv)
+@@ -261,7 +508,15 @@ main (int argc, char **argv)
switch (optc)
{
case 'b': /* Count bytes rather than columns. */
@@ -1610,9 +1609,9 @@
break;
case 's': /* Break at word boundaries. */
-diff -Naurp coreutils-8.26-orig/src/join.c coreutils-8.26/src/join.c
---- coreutils-8.26-orig/src/join.c 2016-11-06 16:15:30.000000000 -0600
-+++ coreutils-8.26/src/join.c 2016-12-02 19:15:23.520391480 -0600
+diff -Naurp coreutils-8.27-orig/src/join.c coreutils-8.27/src/join.c
+--- coreutils-8.27-orig/src/join.c 2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/src/join.c 2017-03-11 23:47:13.091286290 -0600
@@ -22,19 +22,33 @@
#include <sys/types.h>
#include <getopt.h>
@@ -2102,9 +2101,9 @@
}
break;
-diff -Naurp coreutils-8.26-orig/src/pr.c coreutils-8.26/src/pr.c
---- coreutils-8.26-orig/src/pr.c 2016-11-25 07:40:49.000000000 -0600
-+++ coreutils-8.26/src/pr.c 2016-12-02 19:15:23.522391311 -0600
+diff -Naurp coreutils-8.27-orig/src/pr.c coreutils-8.27/src/pr.c
+--- coreutils-8.27-orig/src/pr.c 2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/src/pr.c 2017-03-11 23:47:13.094286139 -0600
@@ -311,6 +311,24 @@
#include <getopt.h>
@@ -2867,9 +2866,9 @@
/* We've just printed some files and need to clean up things before
looking for more options and printing the next batch of files.
-diff -Naurp coreutils-8.26-orig/src/sort.c coreutils-8.26/src/sort.c
---- coreutils-8.26-orig/src/sort.c 2016-11-06 16:15:30.000000000 -0600
-+++ coreutils-8.26/src/sort.c 2016-12-02 19:15:23.525391058 -0600
+diff -Naurp coreutils-8.27-orig/src/sort.c coreutils-8.27/src/sort.c
+--- coreutils-8.27-orig/src/sort.c 2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/src/sort.c 2017-03-11 23:49:22.416505389 -0600
@@ -29,6 +29,14 @@
#include <sys/wait.h>
#include <signal.h>
@@ -3897,9 +3896,9 @@
if (have_read_stdin && fclose (stdin) == EOF)
sort_die (_("close failed"), "-");
-diff -Naurp coreutils-8.26-orig/src/unexpand.c coreutils-8.26/src/unexpand.c
---- coreutils-8.26-orig/src/unexpand.c 2016-11-06 16:15:30.000000000 -0600
-+++ coreutils-8.26/src/unexpand.c 2016-12-02 19:15:23.525391058 -0600
+diff -Naurp coreutils-8.27-orig/src/unexpand.c coreutils-8.27/src/unexpand.c
+--- coreutils-8.27-orig/src/unexpand.c 2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/src/unexpand.c 2017-03-11 23:49:06.758133530 -0600
@@ -38,6 +38,9 @@
#include <stdio.h>
#include <getopt.h>
@@ -4102,9 +4101,9 @@
}
}
-diff -Naurp coreutils-8.26-orig/src/uniq.c coreutils-8.26/src/uniq.c
---- coreutils-8.26-orig/src/uniq.c 2016-11-06 16:15:30.000000000 -0600
-+++ coreutils-8.26/src/uniq.c 2016-12-02 19:15:23.526390974 -0600
+diff -Naurp coreutils-8.27-orig/src/uniq.c coreutils-8.27/src/uniq.c
+--- coreutils-8.27-orig/src/uniq.c 2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/src/uniq.c 2017-03-11 23:47:13.098285938 -0600
@@ -21,6 +21,17 @@
#include <getopt.h>
#include <sys/types.h>
@@ -4490,13 +4489,13 @@
skip_chars = 0;
skip_fields = 0;
check_chars = SIZE_MAX;
-diff -Naurp coreutils-8.26-orig/tests/expand/mb.sh coreutils-8.26/tests/expand/mb.sh
---- coreutils-8.26-orig/tests/expand/mb.sh 1969-12-31 18:00:00.000000000 -0600
-+++ coreutils-8.26/tests/expand/mb.sh 2016-12-02 19:15:23.526390974 -0600
+diff -Naurp coreutils-8.27-orig/tests/expand/mb.sh coreutils-8.27/tests/expand/mb.sh
+--- coreutils-8.27-orig/tests/expand/mb.sh 1969-12-31 18:00:00.000000000 -0600
++++ coreutils-8.27/tests/expand/mb.sh 2017-03-11 23:49:06.759133489 -0600
@@ -0,0 +1,183 @@
+#!/bin/sh
+
-+# Copyright (C) 2012-2015 Free Software Foundation, Inc.
++# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
@@ -4677,9 +4676,9 @@
+compare exp out > /dev/null 2>&1 || fail=1
+
+exit $fail
-diff -Naurp coreutils-8.26-orig/tests/i18n/sort.sh coreutils-8.26/tests/i18n/sort.sh
---- coreutils-8.26-orig/tests/i18n/sort.sh 1969-12-31 18:00:00.000000000 -0600
-+++ coreutils-8.26/tests/i18n/sort.sh 2016-12-02 19:15:23.527390889 -0600
+diff -Naurp coreutils-8.27-orig/tests/i18n/sort.sh coreutils-8.27/tests/i18n/sort.sh
+--- coreutils-8.27-orig/tests/i18n/sort.sh 1969-12-31 18:00:00.000000000 -0600
++++ coreutils-8.27/tests/i18n/sort.sh 2017-03-11 23:47:13.100285838 -0600
@@ -0,0 +1,29 @@
+#!/bin/sh
+# Verify sort's multi-byte support.
@@ -4710,10 +4709,10 @@
+
+
+Exit $fail
-diff -Naurp coreutils-8.26-orig/tests/local.mk coreutils-8.26/tests/local.mk
---- coreutils-8.26-orig/tests/local.mk 2016-11-22 14:04:32.000000000 -0600
-+++ coreutils-8.26/tests/local.mk 2016-12-02 19:15:23.527390889 -0600
-@@ -350,6 +350,8 @@ all_tests = \
+diff -Naurp coreutils-8.27-orig/tests/local.mk coreutils-8.27/tests/local.mk
+--- coreutils-8.27-orig/tests/local.mk 2017-02-28 22:25:37.000000000 -0600
++++ coreutils-8.27/tests/local.mk 2017-03-11 23:47:38.072058253 -0600
+@@ -352,6 +352,8 @@ all_tests = \
tests/misc/sort-discrim.sh \
tests/misc/sort-files0-from.pl \
tests/misc/sort-float.sh \
@@ -4722,7 +4721,7 @@
tests/misc/sort-h-thousands-sep.sh \
tests/misc/sort-merge.pl \
tests/misc/sort-merge-fdlimit.sh \
-@@ -542,6 +544,7 @@ all_tests = \
+@@ -544,6 +546,7 @@ all_tests = \
tests/du/threshold.sh \
tests/du/trailing-slash.sh \
tests/du/two-args.sh \
@@ -4730,7 +4729,7 @@
tests/id/gnu-zero-uids.sh \
tests/id/no-context.sh \
tests/id/context.sh \
-@@ -682,6 +685,7 @@ all_tests = \
+@@ -684,6 +687,7 @@ all_tests = \
tests/touch/read-only.sh \
tests/touch/relative.sh \
tests/touch/trailing-slash.sh \
@@ -4738,9 +4737,9 @@
$(all_root_tests)
# See tests/factor/create-test.sh.
-diff -Naurp coreutils-8.26-orig/tests/misc/cut.pl coreutils-8.26/tests/misc/cut.pl
---- coreutils-8.26-orig/tests/misc/cut.pl 2016-03-16 07:21:24.000000000 -0500
-+++ coreutils-8.26/tests/misc/cut.pl 2016-12-02 19:15:23.527390889 -0600
+diff -Naurp coreutils-8.27-orig/tests/misc/cut.pl coreutils-8.27/tests/misc/cut.pl
+--- coreutils-8.27-orig/tests/misc/cut.pl 2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/tests/misc/cut.pl 2017-03-11 23:47:13.100285838 -0600
@@ -23,9 +23,11 @@ use strict;
# Turn off localization of executable's output.
@ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
@@ -4763,9 +4762,9 @@
push @new, ["$test_name-mb", @new_t, {ENV => "LC_ALL=$mb_locale"}];
}
push @Tests, @new;
-diff -Naurp coreutils-8.26-orig/tests/misc/expand.pl coreutils-8.26/tests/misc/expand.pl
---- coreutils-8.26-orig/tests/misc/expand.pl 2016-11-06 16:15:30.000000000 -0600
-+++ coreutils-8.26/tests/misc/expand.pl 2016-12-02 19:15:23.528390805 -0600
+diff -Naurp coreutils-8.27-orig/tests/misc/expand.pl coreutils-8.27/tests/misc/expand.pl
+--- coreutils-8.27-orig/tests/misc/expand.pl 2017-03-01 11:16:46.000000000 -0600
++++ coreutils-8.27/tests/misc/expand.pl 2017-03-11 23:47:13.101285788 -0600
@@ -27,6 +27,15 @@ my $prog = 'expand';
# Turn off localization of executable's output.
@ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
@@ -4782,8 +4781,8 @@
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
@@ -4791,8 +4790,8 @@
['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')
@@ -4829,9 +4828,9 @@
my $save_temps = $ENV{DEBUG};
my $verbose = $ENV{VERBOSE};
-diff -Naurp coreutils-8.26-orig/tests/misc/fold.pl coreutils-8.26/tests/misc/fold.pl
---- coreutils-8.26-orig/tests/misc/fold.pl 2016-03-16 07:21:24.000000000 -0500
-+++ coreutils-8.26/tests/misc/fold.pl 2016-12-02 19:15:23.528390805 -0600
+diff -Naurp coreutils-8.27-orig/tests/misc/fold.pl coreutils-8.27/tests/misc/fold.pl
+--- coreutils-8.27-orig/tests/misc/fold.pl 2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/tests/misc/fold.pl 2017-03-11 23:47:13.101285788 -0600
@@ -20,9 +20,18 @@ use strict;
(my $program_name = $0) =~ s|.*/||;
@@ -4901,9 +4900,9 @@
-my $prog = 'fold';
my $fail = run_tests ($program_name, $prog, \@Tests, $save_temps, $verbose);
exit $fail;
-diff -Naurp coreutils-8.26-orig/tests/misc/join.pl coreutils-8.26/tests/misc/join.pl
---- coreutils-8.26-orig/tests/misc/join.pl 2016-03-16 07:21:24.000000000 -0500
-+++ coreutils-8.26/tests/misc/join.pl 2016-12-02 19:15:23.528390805 -0600
+diff -Naurp coreutils-8.27-orig/tests/misc/join.pl coreutils-8.27/tests/misc/join.pl
+--- coreutils-8.27-orig/tests/misc/join.pl 2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/tests/misc/join.pl 2017-03-11 23:47:13.102285737 -0600
@@ -25,6 +25,15 @@ my $limits = getlimits ();
my $prog = 'join';
@@ -4970,9 +4969,9 @@
my $save_temps = $ENV{DEBUG};
my $verbose = $ENV{VERBOSE};
-diff -Naurp coreutils-8.26-orig/tests/misc/sort-mb-tests.sh coreutils-8.26/tests/misc/sort-mb-tests.sh
---- coreutils-8.26-orig/tests/misc/sort-mb-tests.sh 1969-12-31 18:00:00.000000000 -0600
-+++ coreutils-8.26/tests/misc/sort-mb-tests.sh 2016-12-02 19:15:23.528390805 -0600
+diff -Naurp coreutils-8.27-orig/tests/misc/sort-mb-tests.sh coreutils-8.27/tests/misc/sort-mb-tests.sh
+--- coreutils-8.27-orig/tests/misc/sort-mb-tests.sh 1969-12-31 18:00:00.000000000 -0600
++++ coreutils-8.27/tests/misc/sort-mb-tests.sh 2017-03-11 23:47:13.102285737 -0600
@@ -0,0 +1,45 @@
+#!/bin/sh
+# Verify sort's multi-byte support.
@@ -5019,9 +5018,9 @@
+compare exp out || { fail=1; cat out; }
+
+Exit $fail
-diff -Naurp coreutils-8.26-orig/tests/misc/sort-merge.pl coreutils-8.26/tests/misc/sort-merge.pl
---- coreutils-8.26-orig/tests/misc/sort-merge.pl 2016-03-16 07:21:24.000000000 -0500
-+++ coreutils-8.26/tests/misc/sort-merge.pl 2016-12-02 19:15:23.529390720 -0600
+diff -Naurp coreutils-8.27-orig/tests/misc/sort-merge.pl coreutils-8.27/tests/misc/sort-merge.pl
+--- coreutils-8.27-orig/tests/misc/sort-merge.pl 2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/tests/misc/sort-merge.pl 2017-03-11 23:47:13.102285737 -0600
@@ -26,6 +26,15 @@ my $prog = 'sort';
# Turn off localization of executable's output.
@ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
@@ -5078,9 +5077,9 @@
my $save_temps = $ENV{DEBUG};
my $verbose = $ENV{VERBOSE};
-diff -Naurp coreutils-8.26-orig/tests/misc/sort.pl coreutils-8.26/tests/misc/sort.pl
---- coreutils-8.26-orig/tests/misc/sort.pl 2016-03-16 07:21:24.000000000 -0500
-+++ coreutils-8.26/tests/misc/sort.pl 2016-12-02 19:15:23.529390720 -0600
+diff -Naurp coreutils-8.27-orig/tests/misc/sort.pl coreutils-8.27/tests/misc/sort.pl
+--- coreutils-8.27-orig/tests/misc/sort.pl 2017-01-21 08:53:43.000000000 -0600
++++ coreutils-8.27/tests/misc/sort.pl 2017-03-11 23:47:13.103285687 -0600
@@ -24,10 +24,15 @@ my $prog = 'sort';
# Turn off localization of executable's output.
@ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
@@ -5098,7 +5097,7 @@
# 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)
}
}
@@ -5137,7 +5136,7 @@
@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;
@@ -5145,9 +5144,9 @@
my $save_temps = $ENV{DEBUG};
my $verbose = $ENV{VERBOSE};
-diff -Naurp coreutils-8.26-orig/tests/misc/unexpand.pl coreutils-8.26/tests/misc/unexpand.pl
---- coreutils-8.26-orig/tests/misc/unexpand.pl 2016-11-06 16:15:30.000000000 -0600
-+++ coreutils-8.26/tests/misc/unexpand.pl 2016-12-02 19:15:23.530390636 -0600
+diff -Naurp coreutils-8.27-orig/tests/misc/unexpand.pl coreutils-8.27/tests/misc/unexpand.pl
+--- coreutils-8.27-orig/tests/misc/unexpand.pl 2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/tests/misc/unexpand.pl 2017-03-11 23:47:13.103285687 -0600
@@ -27,6 +27,14 @@ my $limits = getlimits ();
my $prog = 'unexpand';
@@ -5201,9 +5200,9 @@
my $save_temps = $ENV{DEBUG};
my $verbose = $ENV{VERBOSE};
-diff -Naurp coreutils-8.26-orig/tests/misc/uniq.pl coreutils-8.26/tests/misc/uniq.pl
---- coreutils-8.26-orig/tests/misc/uniq.pl 2016-03-16 07:21:24.000000000 -0500
-+++ coreutils-8.26/tests/misc/uniq.pl 2016-12-02 19:15:23.530390636 -0600
+diff -Naurp coreutils-8.27-orig/tests/misc/uniq.pl coreutils-8.27/tests/misc/uniq.pl
+--- coreutils-8.27-orig/tests/misc/uniq.pl 2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/tests/misc/uniq.pl 2017-03-11 23:47:13.103285687 -0600
@@ -23,9 +23,17 @@ my $limits = getlimits ();
my $prog = 'uniq';
my $try = "Try '$prog --help' for more information.\n";
@@ -5276,9 +5275,9 @@
@Tests = add_z_variants \@Tests;
@Tests = triple_test \@Tests;
-diff -Naurp coreutils-8.26-orig/tests/pr/pr-tests.pl coreutils-8.26/tests/pr/pr-tests.pl
---- coreutils-8.26-orig/tests/pr/pr-tests.pl 2016-11-25 08:01:44.000000000 -0600
-+++ coreutils-8.26/tests/pr/pr-tests.pl 2016-12-02 19:15:23.530390636 -0600
+diff -Naurp coreutils-8.27-orig/tests/pr/pr-tests.pl coreutils-8.27/tests/pr/pr-tests.pl
+--- coreutils-8.27-orig/tests/pr/pr-tests.pl 2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/tests/pr/pr-tests.pl 2017-03-11 23:47:13.103285687 -0600
@@ -24,6 +24,15 @@ use strict;
my $prog = 'pr';
my $normalize_strerror = "s/': .*/'/";
@@ -5344,13 +5343,13 @@
my $save_temps = $ENV{DEBUG};
my $verbose = $ENV{VERBOSE};
-diff -Naurp coreutils-8.26-orig/tests/unexpand/mb.sh coreutils-8.26/tests/unexpand/mb.sh
---- coreutils-8.26-orig/tests/unexpand/mb.sh 1969-12-31 18:00:00.000000000 -0600
-+++ coreutils-8.26/tests/unexpand/mb.sh 2016-12-02 19:15:23.531390552 -0600
+diff -Naurp coreutils-8.27-orig/tests/unexpand/mb.sh coreutils-8.27/tests/unexpand/mb.sh
+--- coreutils-8.27-orig/tests/unexpand/mb.sh 1969-12-31 18:00:00.000000000 -0600
++++ coreutils-8.27/tests/unexpand/mb.sh 2017-03-11 23:49:06.759133489 -0600
@@ -0,0 +1,172 @@
+#!/bin/sh
+
-+# Copyright (C) 2012-2015 Free Software Foundation, Inc.
++# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
diff --git a/files/security/cve-2017-7476.patch b/files/security/cve-2017-7476.patch
new file mode 100644
--- /dev/null
+++ b/files/security/cve-2017-7476.patch
@@ -0,0 +1,190 @@
+From fc286e2b3af5b2ed9aec44b520265bb0968f1660 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
+Date: Mon, 24 Apr 2017 01:43:36 -0700
+Subject: [PATCH 1/2] time_rz: fix heap buffer overflow vulnerability
+
+This issue has been assigned CVE-2017-7476 and was
+detected with American Fuzzy Lop 2.41b run on the
+coreutils date(1) program with ASAN enabled.
+
+ ERROR: AddressSanitizer: heap-buffer-overflow on address 0x...
+ WRITE of size 8 at 0x60d00000cff8 thread T0
+ #1 0x443020 in extend_abbrs lib/time_rz.c:88
+ #2 0x443356 in save_abbr lib/time_rz.c:155
+ #3 0x44393f in localtime_rz lib/time_rz.c:290
+ #4 0x41e4fe in parse_datetime2 lib/parse-datetime.y:1798
+
+A minimized reproducer is the following 120 byte TZ value,
+which goes beyond the value of ABBR_SIZE_MIN (119) on x86_64.
+Extend the aa...b portion to overwrite more of the heap.
+
+ date -d $(printf 'TZ="aaa%020daaaaaab%089d"')
+
+localtime_rz and mktime_z were affected since commit 4bc76593.
+parse_datetime was affected since commit 4e6e16b3f.
+
+* lib/time_rz.c (save_abbr): Rearrange the calculation determining
+whether there is enough buffer space available. The rearrangement
+ensures we're only dealing with positive numbers, thus avoiding
+the problematic promotion of signed to unsigned causing an invalid
+comparison when zone_copy is more than ABBR_SIZE_MIN bytes beyond
+the start of the buffer.
+* tests/test-parse-datetime.c (main): Add a test case written by
+Paul Eggert, which overwrites enough of the heap so that
+standard glibc will fail with "free(): invalid pointer"
+without the patch applied.
+Reported and analyzed at https://bugzilla.redhat.com/1444774
+
+Upstream-commit: 94e01571507835ff59dd8ce2a0b56a4b566965a4
+Signed-off-by: Kamil Dudka <kdudka@redhat.com>
+---
+ gnulib-tests/test-parse-datetime.c | 16 ++++++++++++++++
+ lib/time_rz.c | 15 +++++++++++++--
+ 2 files changed, 29 insertions(+), 2 deletions(-)
+
+diff --git a/gnulib-tests/test-parse-datetime.c b/gnulib-tests/test-parse-datetime.c
+index b42a51c..b6fe457 100644
+--- a/gnulib-tests/test-parse-datetime.c
++++ b/gnulib-tests/test-parse-datetime.c
+@@ -432,5 +432,21 @@ main (int argc _GL_UNUSED, char **argv)
+ ASSERT ( parse_datetime (&result, "TZ=\"\\\\\"", &now));
+ ASSERT ( parse_datetime (&result, "TZ=\"\\\"\"", &now));
+
++ /* Outlandishly-long time zone abbreviations should not cause problems. */
++ {
++ static char const bufprefix[] = "TZ=\"";
++ enum { tzname_len = 2000 };
++ static char const bufsuffix[] = "0\" 1970-01-01 01:02:03.123456789";
++ enum { bufsize = sizeof bufprefix - 1 + tzname_len + sizeof bufsuffix };
++ char buf[bufsize];
++ memcpy (buf, bufprefix, sizeof bufprefix - 1);
++ memset (buf + sizeof bufprefix - 1, 'X', tzname_len);
++ strcpy (buf + bufsize - sizeof bufsuffix, bufsuffix);
++ ASSERT (parse_datetime (&result, buf, &now));
++ LOG (buf, now, result);
++ ASSERT (result.tv_sec == 1 * 60 * 60 + 2 * 60 + 3
++ && result.tv_nsec == 123456789);
++ }
++
+ return 0;
+ }
+diff --git a/lib/time_rz.c b/lib/time_rz.c
+index adb9c1c..c41a8ef 100644
+--- a/lib/time_rz.c
++++ b/lib/time_rz.c
+@@ -27,6 +27,7 @@
+ #include <time.h>
+
+ #include <errno.h>
++#include <limits.h>
+ #include <stdbool.h>
+ #include <stddef.h>
+ #include <stdlib.h>
+@@ -35,6 +36,10 @@
+ #include "flexmember.h"
+ #include "time-internal.h"
+
++#ifndef SIZE_MAX
++# define SIZE_MAX ((size_t) -1)
++#endif
++
+ #if !HAVE_TZSET
+ static void tzset (void) { }
+ #endif
+@@ -43,7 +48,7 @@ static void tzset (void) { }
+ the largest "small" request for the GNU C library malloc. */
+ enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 };
+
+-/* Minimum size of the ABBRS member of struct abbr. ABBRS is larger
++/* Minimum size of the ABBRS member of struct tm_zone. ABBRS is larger
+ only in the unlikely case where an abbreviation longer than this is
+ used. */
+ enum { ABBR_SIZE_MIN = DEFAULT_MXFAST - offsetof (struct tm_zone, abbrs) };
+@@ -150,7 +155,13 @@ save_abbr (timezone_t tz, struct tm *tm)
+ if (! (*zone_copy || (zone_copy == tz->abbrs && tz->tz_is_set)))
+ {
+ size_t zone_size = strlen (zone) + 1;
+- if (zone_size < tz->abbrs + ABBR_SIZE_MIN - zone_copy)
++ size_t zone_used = zone_copy - tz->abbrs;
++ if (SIZE_MAX - zone_used < zone_size)
++ {
++ errno = ENOMEM;
++ return false;
++ }
++ if (zone_used + zone_size < ABBR_SIZE_MIN)
+ extend_abbrs (zone_copy, zone, zone_size);
+ else
+ {
+--
+2.9.3
+
+
+From 9579f90484c71e5a22f32f35189192a82e47550e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
+Date: Wed, 26 Apr 2017 20:51:39 -0700
+Subject: [PATCH 2/2] date,touch: test and document large TZ security issue
+
+Add a test for CVE-2017-7476 which was fixed in gnulib at:
+http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=94e01571
+
+* tests/misc/date-tz.sh: Add a new test which overwrites enough
+of the heap to trigger a segfault, even without ASAN enabled.
+* tests/local.mk: Reference the new test.
+* NEWS: Mention the bug fix.
+
+Upstream-commit: 9287ef2b1707e2a222f8ae776ce3785abcb16fba
+Signed-off-by: Kamil Dudka <kdudka@redhat.com>
+---
+ tests/local.mk | 1 +
+ tests/misc/date-tz.sh | 26 ++++++++++++++++++++++++++
+ 2 files changed, 27 insertions(+)
+ create mode 100755 tests/misc/date-tz.sh
+
+diff --git a/tests/local.mk b/tests/local.mk
+index 9f1a853..ec0b414 100644
+--- a/tests/local.mk
++++ b/tests/local.mk
+@@ -282,6 +282,7 @@ all_tests = \
+ tests/misc/csplit-suppress-matched.pl \
+ tests/misc/date-debug.sh \
+ tests/misc/date-sec.sh \
++ tests/misc/date-tz.sh \
+ tests/misc/dircolors.pl \
+ tests/misc/dirname.pl \
+ tests/misc/env-null.sh \
+diff --git a/tests/misc/date-tz.sh b/tests/misc/date-tz.sh
+new file mode 100755
+index 0000000..3fe1579
+--- /dev/null
++++ b/tests/misc/date-tz.sh
+@@ -0,0 +1,26 @@
++#!/bin/sh
++# Verify TZ processing.
++
++# Copyright (C) 2017 Free Software Foundation, Inc.
++
++# This program is free software: you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation, either version 3 of the License, or
++# (at your option) any later version.
++
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++
++# You should have received a copy of the GNU General Public License
++# along with this program. If not, see <http://www.gnu.org/licenses/>.
++
++. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
++print_ver_ date
++
++# coreutils-8.27 would overwrite the heap with large TZ values
++tz_long=$(printf '%2000s' | tr ' ' a)
++date -d "TZ=\"${tz_long}0\" 2017" || fail=1
++
++Exit $fail
+--
+2.9.3
+
+
diff --git a/package.yml b/package.yml
--- a/package.yml
+++ b/package.yml
@@ -1,8 +1,8 @@
name : coreutils
-version : 8.26
-release : 14
+version : 8.27
+release : 15
source :
- - http://ftp.gnu.org/gnu/coreutils/coreutils-8.26.tar.xz : 155e94d748f8e2bc327c66e0cbebdb8d6ab265d2f37c3c928f7bf6c3beba9a8e
+ - https://ftp.gnu.org/gnu/coreutils/coreutils-8.27.tar.xz : 8891d349ee87b9ff7870f52b6d9312a9db672d2439d289bc57084771ca21656b
license :
- GPL-3.0
summary : GNU core utilities
@@ -24,7 +24,8 @@
- acl-devel
- attr-devel
setup : |
- %patch -p1 < $pkgfiles/coreutils-8.26-i18n-1.patch
+ %patch -p1 < $pkgfiles/coreutils-8.27-i18n-1.patch
+ %patch -p1 < $pkgfiles/security/cve-2017-7476.patch
export FORCE_UNSAFE_CONFIGURE=1
%reconfigure --enable-largefile \
--enable-no-install-program=kill,uptime
diff --git a/pspec_x86_64.xml b/pspec_x86_64.xml
--- a/pspec_x86_64.xml
+++ b/pspec_x86_64.xml
@@ -2,8 +2,8 @@
<Source>
<Name>coreutils</Name>
<Packager>
- <Name>Ikey Doherty</Name>
- <Email>ikey@solus-project.com</Email>
+ <Name>Pierre-Yves</Name>
+ <Email>pyu@riseup.net</Email>
</Packager>
<License>GPL-3.0</License>
<PartOf>system.base</PartOf>
@@ -50,12 +50,12 @@
</Files>
</Package>
<History>
- <Update release="14">
- <Date>2015-12-10</Date>
- <Version>8.26</Version>
+ <Update release="15">
+ <Date>2017-06-08</Date>
+ <Version>8.27</Version>
<Comment>Packaging update</Comment>
- <Name>Ikey Doherty</Name>
- <Email>ikey@solus-project.com</Email>
+ <Name>Pierre-Yves</Name>
+ <Email>pyu@riseup.net</Email>
</Update>
</History>
</PISI>
\ No newline at end of file
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Aug 12, 12:38 AM (3 h, 11 m ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5813220
Default Alt Text
D357.diff (35 KB)
Attached To
Mode
D357: Update coreutils to 8.27, resolves CVE-2017-7476
Attached
Detach File
Event Timeline
Log In to Comment