···1{ stdenv, fetchurl, coreutils ? null }:
23-stdenv.mkDerivation {
4- name = "diffutils-3.2";
56 src = fetchurl {
7- url = mirror://gnu/diffutils/diffutils-3.2.tar.gz;
8- sha256 = "1lsf0ln0h3mnm2y0mwgrfk0lyfi7bnm4r886acvdrrsvc7pypaia";
9 };
10-11- patches = [ ./gets-undeclared.patch ];
1213 /* If no explicit coreutils is given, use the one from stdenv. */
14 nativeBuildInputs = [ coreutils ];
···1{ stdenv, fetchurl, coreutils ? null }:
23+stdenv.mkDerivation rec {
4+ name = "diffutils-3.3";
56 src = fetchurl {
7+ url = "mirror://gnu/diffutils/${name}.tar.xz";
8+ sha256 = "1761vymxbp4wb5rzjvabhdkskk95pghnn67464byvzb5mfl8jpm2";
9 };
001011 /* If no explicit coreutils is given, use the one from stdenv. */
12 nativeBuildInputs = [ coreutils ];
-71
pkgs/tools/text/diffutils/gets-undeclared.patch
···1-This patch is needed to allow builds with newer versions of
2-the GNU libc (2.16+).
3-4-5-commit 66712c23388e93e5c518ebc8515140fa0c807348
6-Author: Eric Blake <eblake@redhat.com>
7-Date: Thu Mar 29 13:30:41 2012 -0600
8-9- stdio: don't assume gets any more
10-11- Gnulib intentionally does not have a gets module, and now that C11
12- and glibc have dropped it, we should be more proactive about warning
13- any user on a platform that still has a declaration of this dangerous
14- interface.
15-16- * m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets
17- support.
18- * modules/stdio (Makefile.am): Likewise.
19- * lib/stdio-read.c (gets): Likewise.
20- * tests/test-stdio-c++.cc: Likewise.
21- * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment.
22- * lib/stdio.in.h (gets): Make warning occur in more places.
23- * doc/posix-functions/gets.texi (gets): Update documentation.
24- Reported by Christer Solskogen.
25-26- Signed-off-by: Eric Blake <eblake@redhat.com>
27-28-diff --git a/lib/stdio.in.h b/lib/stdio.in.h
29-index aa7b599..c377b6e 100644
30---- a/lib/stdio.in.h
31-+++ b/lib/stdio.in.h
32-@@ -698,22 +698,11 @@ _GL_WARN_ON_USE (getline, "getline is unportable - "
33- # endif
34- #endif
35-36--#if @GNULIB_GETS@
37--# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
38--# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
39--# undef gets
40--# define gets rpl_gets
41--# endif
42--_GL_FUNCDECL_RPL (gets, char *, (char *s) _GL_ARG_NONNULL ((1)));
43--_GL_CXXALIAS_RPL (gets, char *, (char *s));
44--# else
45--_GL_CXXALIAS_SYS (gets, char *, (char *s));
46--# undef gets
47--# endif
48--_GL_CXXALIASWARN (gets);
49- /* It is very rare that the developer ever has full control of stdin,
50-- so any use of gets warrants an unconditional warning. Assume it is
51-- always declared, since it is required by C89. */
52-+ so any use of gets warrants an unconditional warning; besides, C11
53-+ removed it. */
54-+#undef gets
55-+#if HAVE_RAW_DECL_GETS
56- _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
57- #endif
58-59-@@ -1053,9 +1042,9 @@ _GL_WARN_ON_USE (snprintf, "snprintf is unportable - "
60- # endif
61- #endif
62-63--/* Some people would argue that sprintf should be handled like gets
64-- (for example, OpenBSD issues a link warning for both functions),
65-- since both can cause security holes due to buffer overruns.
66-+/* Some people would argue that all sprintf uses should be warned about
67-+ (for example, OpenBSD issues a link warning for it),
68-+ since it can cause security holes due to buffer overruns.
69- However, we believe that sprintf can be used safely, and is more
70- efficient than snprintf in those safe cases; and as proof of our
71- belief, we use sprintf in several gnulib modules. So this header