Gentoo Archives: gentoo-commits

From: Lars Wendler <polynomial-c@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-apps/diffutils/, sys-apps/diffutils/files/
Date: Mon, 08 May 2017 11:29:22
Message-Id: 1494242949.56f4cf1b65b83ac2e625b7c4a7f058bfe05a42b0.polynomial-c@gentoo
1 commit: 56f4cf1b65b83ac2e625b7c4a7f058bfe05a42b0
2 Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
3 AuthorDate: Mon May 8 11:28:53 2017 +0000
4 Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
5 CommitDate: Mon May 8 11:29:09 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=56f4cf1b
7
8 sys-apps/diffutils: Removed old.
9
10 Package-Manager: Portage-2.3.5, Repoman-2.3.2
11
12 sys-apps/diffutils/Manifest | 1 -
13 sys-apps/diffutils/diffutils-3.4-r1.ebuild | 49 --------
14 .../files/diffutils-3.4-diff3_fix_leaks.patch | 123 ---------------------
15 .../files/diffutils-3.4-diff3_use_after_free.patch | 26 -----
16 .../diffutils-3.4-no_color_on_dumb_terms.patch | 49 --------
17 5 files changed, 248 deletions(-)
18
19 diff --git a/sys-apps/diffutils/Manifest b/sys-apps/diffutils/Manifest
20 index 92e1c60bba5..6a6a1963700 100644
21 --- a/sys-apps/diffutils/Manifest
22 +++ b/sys-apps/diffutils/Manifest
23 @@ -1,3 +1,2 @@
24 DIST diffutils-3.3.tar.xz 1197832 SHA256 a25e89a8ab65fded1731e4186be1bb25cda967834b6df973599cdcd5abdfc19c SHA512 b04b998717e45e8fd1ba675957dad1909beeed68ffc41c0d9bbaddaf78965f9e63af5a8d8811bb94f33a3cddcad2fe1ad794e52e545def9ce96c092999a74a83 WHIRLPOOL 8fd3b179afdc3fd127cee8829535b0fc6d949443645e8df80fa45c2fa44a732ea652259b644d81a9be14d4c7f7c3b5bad7b8861934a6bc691cd02a34c0200ed3
25 -DIST diffutils-3.4.tar.xz 1358392 SHA256 db53c025f2ac3d217bcf753dad6dee7b410b33d0948495ff015aaf8b91189ce2 SHA512 0fc273007e35e67e217116e776956c6a24421f298d3e6fe60aa1d4250938a65bb8e685cd815517317b5637f5c412c1550d7c1994a9e0283ebbcae9bde24a260d WHIRLPOOL cd9460385d618b169b343e5f197937a4abfbf3d64076c609a0cde78372d08225fc2078fa7c028a80963f08f3eadfc2ee8074b03b83730745842da44f7483113f
26 DIST diffutils-3.5.tar.xz 1360996 SHA256 dad398ccd5b9faca6b0ab219a036453f62a602a56203ac659b43e889bec35533 SHA512 758229637e3703215adf66c5df04126ae594424abaf2cad8f1fa482bd9759e90838c943ef56e0129beb1396f5932ed9337c8396679da3de32e49bb43d423fd6b WHIRLPOOL 2f367fc10679bfc1377612bfdc693792f5afdc0969c06d7607370bb626d8eb63868b71d2342133fea6210291f34ad3f53b4af34d457a13fc675fc7dc5f6c2f6e
27
28 diff --git a/sys-apps/diffutils/diffutils-3.4-r1.ebuild b/sys-apps/diffutils/diffutils-3.4-r1.ebuild
29 deleted file mode 100644
30 index 339b0e97416..00000000000
31 --- a/sys-apps/diffutils/diffutils-3.4-r1.ebuild
32 +++ /dev/null
33 @@ -1,49 +0,0 @@
34 -# Copyright 1999-2017 Gentoo Foundation
35 -# Distributed under the terms of the GNU General Public License v2
36 -
37 -EAPI=5
38 -
39 -inherit flag-o-matic
40 -
41 -DESCRIPTION="Tools to make diffs and compare files"
42 -HOMEPAGE="https://www.gnu.org/software/diffutils/"
43 -SRC_URI="mirror://gnu/diffutils/${P}.tar.xz
44 - mirror://gnu-alpha/diffutils/${P}.tar.xz"
45 -
46 -LICENSE="GPL-2"
47 -SLOT="0"
48 -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
49 -IUSE="nls static"
50 -
51 -DEPEND="app-arch/xz-utils
52 - nls? ( sys-devel/gettext )"
53 -
54 -DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
55 -
56 -PATCHES=(
57 - "${FILESDIR}/${P}-no_color_on_dumb_terms.patch"
58 - "${FILESDIR}/${P}-diff3_use_after_free.patch"
59 - "${FILESDIR}/${P}-diff3_fix_leaks.patch"
60 -)
61 -
62 -src_prepare() {
63 - epatch "${PATCHES[@]}"
64 -}
65 -
66 -src_configure() {
67 - use static && append-ldflags -static
68 -
69 - # Disable automagic dependency over libsigsegv; see bug #312351.
70 - export ac_cv_libsigsegv=no
71 -
72 - econf \
73 - --with-packager="Gentoo" \
74 - --with-packager-version="${PVR}" \
75 - --with-packager-bug-reports="https://bugs.gentoo.org/" \
76 - $(use_enable nls)
77 -}
78 -
79 -src_test() {
80 - # explicitly allow parallel testing
81 - emake check
82 -}
83
84 diff --git a/sys-apps/diffutils/files/diffutils-3.4-diff3_fix_leaks.patch b/sys-apps/diffutils/files/diffutils-3.4-diff3_fix_leaks.patch
85 deleted file mode 100644
86 index fda8319c73c..00000000000
87 --- a/sys-apps/diffutils/files/diffutils-3.4-diff3_fix_leaks.patch
88 +++ /dev/null
89 @@ -1,123 +0,0 @@
90 -From edd942ca27d570a33d612b12eecaa33a76640e46 Mon Sep 17 00:00:00 2001
91 -From: Jim Meyering <meyering@××.com>
92 -Date: Fri, 12 Aug 2016 21:40:29 -0700
93 -Subject: diff3: fix leaks, for real
94 -
95 -* src/diff3.c (struct diff_block)[lint]: Add member, n2.
96 -(free_diff_block, next_to_n2): New functions.
97 ----
98 -
99 -diff --git a/src/diff3.c b/src/diff3.c
100 -index 0eb643e..b80aeb3 100644
101 ---- a/src/diff3.c
102 -+++ b/src/diff3.c
103 -@@ -78,6 +78,9 @@ struct diff_block {
104 - char **lines[2]; /* The actual lines (may contain nulls) */
105 - size_t *lengths[2]; /* Line lengths (including newlines, if any) */
106 - struct diff_block *next;
107 -+#ifdef lint
108 -+ struct diff_block *n2; /* Used only when freeing. */
109 -+#endif
110 - };
111 -
112 - /* Three way diff */
113 -@@ -176,7 +179,7 @@ static struct diff3_block *create_diff3_block (lin, lin, lin, lin, lin, lin);
114 - static struct diff3_block *make_3way_diff (struct diff_block *, struct diff_block *);
115 - static struct diff3_block *reverse_diff3_blocklist (struct diff3_block *);
116 - static struct diff3_block *using_to_diff3_block (struct diff_block *[2], struct diff_block *[2], int, int, struct diff3_block const *);
117 --static struct diff_block *process_diff (char const *, char const *, struct diff_block **);
118 -+static struct diff_block *process_diff (char const *, char const *, struct diff_block **, char **);
119 - static void check_stdout (void);
120 - static void fatal (char const *) __attribute__((noreturn));
121 - static void output_diff3 (FILE *, struct diff3_block *, int const[3], int const[3]);
122 -@@ -212,6 +215,38 @@ static struct option const longopts[] =
123 - {0, 0, 0, 0}
124 - };
125 -
126 -+static void
127 -+free_diff_block (struct diff_block *p)
128 -+{
129 -+#ifndef lint
130 -+ (void)p;
131 -+#else
132 -+ while (p)
133 -+ {
134 -+ free (p->lines[0]);
135 -+ free (p->lines[1]);
136 -+ free (p->lengths[0]);
137 -+ free (p->lengths[1]);
138 -+ struct diff_block *next = p->n2;
139 -+ free (p);
140 -+ p = next;
141 -+ }
142 -+#endif
143 -+}
144 -+
145 -+/* Copy each next pointer to n2, since make_3way_diff would clobber the former,
146 -+ yet we will still need something to free these buffers. */
147 -+static void
148 -+next_to_n2 (struct diff_block *p)
149 -+{
150 -+#ifndef lint
151 -+ (void)p;
152 -+#else
153 -+ while (p)
154 -+ p = p->n2 = p->next;
155 -+#endif
156 -+}
157 -+
158 - int
159 - main (int argc, char **argv)
160 - {
161 -@@ -377,10 +412,19 @@ main (int argc, char **argv)
162 - /* Invoke diff twice on two pairs of input files, combine the two
163 - diffs, and output them. */
164 -
165 -+ char *b0, *b1;
166 - commonname = file[rev_mapping[FILEC]];
167 -- thread1 = process_diff (file[rev_mapping[FILE1]], commonname, &last_block);
168 -- thread0 = process_diff (file[rev_mapping[FILE0]], commonname, &last_block);
169 -+ thread1 = process_diff (file[rev_mapping[FILE1]], commonname, &last_block, &b1);
170 -+ thread0 = process_diff (file[rev_mapping[FILE0]], commonname, &last_block, &b0);
171 -+
172 -+ next_to_n2 (thread0);
173 -+ next_to_n2 (thread1);
174 -+
175 - diff3 = make_3way_diff (thread0, thread1);
176 -+
177 -+ free_diff_block (thread0);
178 -+ free_diff_block (thread1);
179 -+
180 - if (edscript)
181 - conflicts_found
182 - = output_diff3_edscript (stdout, diff3, mapping, rev_mapping,
183 -@@ -400,6 +444,8 @@ main (int argc, char **argv)
184 - conflicts_found = false;
185 - }
186 -
187 -+ free (b0);
188 -+ free (b1);
189 - check_stdout ();
190 - exit (conflicts_found);
191 - }
192 -@@ -938,7 +984,8 @@ compare_line_list (char * const list1[], size_t const lengths1[],
193 - static struct diff_block *
194 - process_diff (char const *filea,
195 - char const *fileb,
196 -- struct diff_block **last_block)
197 -+ struct diff_block **last_block,
198 -+ char **buf_to_free)
199 - {
200 - char *diff_contents;
201 - char *diff_limit;
202 -@@ -953,6 +1000,7 @@ process_diff (char const *filea,
203 - sizeof *bptr->lengths[1]));
204 -
205 - diff_limit = read_diff (filea, fileb, &diff_contents);
206 -+ *buf_to_free = diff_contents;
207 - scan_diff = diff_contents;
208 -
209 - while (scan_diff < diff_limit)
210 ---
211 -cgit v1.0
212 -
213
214 diff --git a/sys-apps/diffutils/files/diffutils-3.4-diff3_use_after_free.patch b/sys-apps/diffutils/files/diffutils-3.4-diff3_use_after_free.patch
215 deleted file mode 100644
216 index 41a4b278d08..00000000000
217 --- a/sys-apps/diffutils/files/diffutils-3.4-diff3_use_after_free.patch
218 +++ /dev/null
219 @@ -1,26 +0,0 @@
220 -From 1a0df4396ebe3b9a58b882bb976cfce3f50d3cac Mon Sep 17 00:00:00 2001
221 -From: Bastian Beischer <bastian.beischer@×××××××××××.de>
222 -Date: Sat, 13 Aug 2016 18:53:36 -0700
223 -Subject: diff3: fix heap use-after-free; add minimal diff3 test coverage
224 -
225 -Commit v3.3-42-g3b74a90, "FIXME: src/diff3: plug a leak" added an
226 -invalid use of free, leading to use-after-free in nearly any invocation
227 -of diff3. Revert that commit.
228 -Reported by Bastian Beischer in http://bugs.gnu.org/24210
229 ----
230 -
231 -diff --git a/src/diff3.c b/src/diff3.c
232 -index 6ef90f4..0eb643e 100644
233 ---- a/src/diff3.c
234 -+++ b/src/diff3.c
235 -@@ -1039,7 +1039,6 @@ process_diff (char const *filea,
236 -
237 - *block_list_end = NULL;
238 - *last_block = bptr;
239 -- free (diff_contents);
240 - return block_list;
241 - }
242 -
243 ---
244 -cgit v1.0
245 -
246
247 diff --git a/sys-apps/diffutils/files/diffutils-3.4-no_color_on_dumb_terms.patch b/sys-apps/diffutils/files/diffutils-3.4-no_color_on_dumb_terms.patch
248 deleted file mode 100644
249 index 33f81e4fa2a..00000000000
250 --- a/sys-apps/diffutils/files/diffutils-3.4-no_color_on_dumb_terms.patch
251 +++ /dev/null
252 @@ -1,49 +0,0 @@
253 -From 697c1f4fa93ac971c487725e9e53fc211cd3c670 Mon Sep 17 00:00:00 2001
254 -From: Jim Meyering <meyering@××.com>
255 -Date: Mon, 8 Aug 2016 18:50:15 -0700
256 -Subject: diff: disable colorization for TERM=dumb
257 -
258 -* src/diff.c (main): With --color or --color=auto, when TERM is
259 -"dumb", disable colorization. Suggested by Daniel Colascione.
260 -* NEWS (Bug fixes): Mention it.
261 -* tests/colors: Add a test that would fail without this change,
262 -yet passes with it.
263 ----
264 -
265 -diff --git a/src/diff.c b/src/diff.c
266 -index 9bc1d96..686945e 100644
267 ---- a/src/diff.c
268 -+++ b/src/diff.c
269 -@@ -656,6 +656,13 @@ main (int argc, char **argv)
270 - prev = c;
271 - }
272 -
273 -+ if (colors_style == AUTO)
274 -+ {
275 -+ char const *t = getenv ("TERM");
276 -+ if (t && STREQ (t, "dumb"))
277 -+ colors_style = NEVER;
278 -+ }
279 -+
280 - if (output_style == OUTPUT_UNSPECIFIED)
281 - {
282 - if (show_c_function)
283 -diff --git a/tests/colors b/tests/colors
284 -index 3ad2206..8651a5b 100755
285 ---- a/tests/colors
286 -+++ b/tests/colors
287 -@@ -86,6 +86,11 @@ test $? = 1 || fail=1
288 - gen_exp_default > exp || framework_failure_
289 - compare exp out || fail=1
290 -
291 -+TERM=dumb diff ---presume-output-tty --color=auto a b > out
292 -+test $? = 1 || fail=1
293 -+gen_exp_default > exp || framework_failure_
294 -+compare exp out || fail=1
295 -+
296 - diff --color=never a b > out
297 - test $? = 1 || fail=1
298 - gen_exp_default > exp || framework_failure_
299 ---
300 -cgit v1.0
301 -