python: 2.7.14 -> 2.7.15 (bugfix + security)
Fixes CVE-2018-1000030, /cc #38993. The ncurses patch no longer applied, and it appears the problems have been resolved upstream https://bugs.python.org/issue25720 https://github.com/python/cpython/commit/6ba0b583d67
This commit is contained in:
parent
a18b493e02
commit
59beaf7fa2
@ -31,7 +31,7 @@ with stdenv.lib;
|
|||||||
|
|
||||||
let
|
let
|
||||||
majorVersion = "2.7";
|
majorVersion = "2.7";
|
||||||
minorVersion = "14";
|
minorVersion = "15";
|
||||||
minorVersionSuffix = "";
|
minorVersionSuffix = "";
|
||||||
pythonVersion = majorVersion;
|
pythonVersion = majorVersion;
|
||||||
version = "${majorVersion}.${minorVersion}${minorVersionSuffix}";
|
version = "${majorVersion}.${minorVersion}${minorVersionSuffix}";
|
||||||
@ -40,7 +40,7 @@ let
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://www.python.org/ftp/python/${majorVersion}.${minorVersion}/Python-${version}.tar.xz";
|
url = "https://www.python.org/ftp/python/${majorVersion}.${minorVersion}/Python-${version}.tar.xz";
|
||||||
sha256 = "0rka541ys16jwzcnnvjp2v12m4cwgd2jp6wj4kj511p715pb5zvi";
|
sha256 = "0x2mvz9dp11wj7p5ccvmk9s0hzjk2fa1m462p395l4r6bfnb3n92";
|
||||||
};
|
};
|
||||||
|
|
||||||
hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false);
|
hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false);
|
||||||
@ -58,8 +58,6 @@ let
|
|||||||
# if DETERMINISTIC_BUILD env var is set
|
# if DETERMINISTIC_BUILD env var is set
|
||||||
./deterministic-build.patch
|
./deterministic-build.patch
|
||||||
|
|
||||||
./properly-detect-curses.patch
|
|
||||||
|
|
||||||
] ++ optionals (x11Support && stdenv.isDarwin) [
|
] ++ optionals (x11Support && stdenv.isDarwin) [
|
||||||
./use-correct-tcl-tk-on-darwin.patch
|
./use-correct-tcl-tk-on-darwin.patch
|
||||||
] ++ optionals stdenv.isLinux [
|
] ++ optionals stdenv.isLinux [
|
||||||
|
@ -1,116 +0,0 @@
|
|||||||
From 6dc83db69b5e29d25ba6d73646ea2e9a1097848a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Roumen Petrov <local@example.net>
|
|
||||||
Date: Sun, 19 Feb 2012 16:13:24 +0200
|
|
||||||
Subject: [PATCH] CROSS-properly detect WINDOW _flags for different ncurses versions
|
|
||||||
|
|
||||||
---
|
|
||||||
Include/py_curses.h | 5 +++++
|
|
||||||
configure.ac | 40 ++++++++++++++++++++++++++++++++++++++--
|
|
||||||
pyconfig.h.in | 6 ++++++
|
|
||||||
3 files changed, 49 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/Include/py_curses.h b/Include/py_curses.h
|
|
||||||
index f2c08f6..a9b5260 100644
|
|
||||||
--- a/Include/py_curses.h
|
|
||||||
+++ b/Include/py_curses.h
|
|
||||||
@@ -14,7 +14,9 @@
|
|
||||||
/* the following define is necessary for OS X 10.6; without it, the
|
|
||||||
Apple-supplied ncurses.h sets NCURSES_OPAQUE to 1, and then Python
|
|
||||||
can't get at the WINDOW flags field. */
|
|
||||||
+/* NOTE configure check if ncurses require such definition
|
|
||||||
#define NCURSES_OPAQUE 0
|
|
||||||
+*/
|
|
||||||
#endif /* __APPLE__ */
|
|
||||||
|
|
||||||
#ifdef __FreeBSD__
|
|
||||||
@@ -57,9 +59,12 @@
|
|
||||||
#ifdef HAVE_NCURSES_H
|
|
||||||
/* configure was checking <curses.h>, but we will
|
|
||||||
use <ncurses.h>, which has all these features. */
|
|
||||||
+/* NOTE configure check for existence of flags
|
|
||||||
+ * Also flags are visible only if WINDOW structure is not opaque
|
|
||||||
#ifndef WINDOW_HAS_FLAGS
|
|
||||||
#define WINDOW_HAS_FLAGS 1
|
|
||||||
#endif
|
|
||||||
+*/
|
|
||||||
#ifndef MVWDELCH_IS_EXPRESSION
|
|
||||||
#define MVWDELCH_IS_EXPRESSION 1
|
|
||||||
#endif
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
|
||||||
index 0a3a186..75f5142 100644
|
|
||||||
--- a/configure.ac
|
|
||||||
+++ b/configure.ac
|
|
||||||
@@ -4150,15 +4150,51 @@ then
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_MSG_CHECKING(whether WINDOW has _flags)
|
|
||||||
-AC_CACHE_VAL(ac_cv_window_has_flags,
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <curses.h>]], [[
|
|
||||||
WINDOW *w;
|
|
||||||
w->_flags = 0;
|
|
||||||
]])],
|
|
||||||
[ac_cv_window_has_flags=yes],
|
|
||||||
-[ac_cv_window_has_flags=no]))
|
|
||||||
+[ac_cv_window_has_flags=no])
|
|
||||||
AC_MSG_RESULT($ac_cv_window_has_flags)
|
|
||||||
|
|
||||||
+py_curses_window_is_opaque=no
|
|
||||||
+if test no = $ac_cv_window_has_flags; then
|
|
||||||
+ AC_MSG_CHECKING([whether WINDOW has _flags in non-opaque structure])
|
|
||||||
+ AC_COMPILE_IFELSE([
|
|
||||||
+ AC_LANG_PROGRAM([[
|
|
||||||
+ #define NCURSES_OPAQUE 0
|
|
||||||
+ #include <curses.h>
|
|
||||||
+ ]],[[
|
|
||||||
+ WINDOW *w;
|
|
||||||
+ w->_flags = 0;
|
|
||||||
+ ]])],
|
|
||||||
+ [py_curses_window_is_opaque=yes])
|
|
||||||
+ AC_MSG_RESULT([$py_curses_window_is_opaque])
|
|
||||||
+fi
|
|
||||||
+if test yes = $py_curses_window_is_opaque; then
|
|
||||||
+ ac_cv_window_has_flags=yes
|
|
||||||
+ AC_DEFINE([NCURSES_OPAQUE], [0], [Define to 0 if you have WINDOW _flags in non-opaque structure.])
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
+py_curses_window_is_internal=no
|
|
||||||
+if test no = $ac_cv_window_has_flags; then
|
|
||||||
+ AC_MSG_CHECKING([whether WINDOW has _flags as internal structure])
|
|
||||||
+ AC_COMPILE_IFELSE([
|
|
||||||
+ AC_LANG_PROGRAM([[
|
|
||||||
+ #define NCURSES_INTERNALS 1
|
|
||||||
+ #include <curses.h>
|
|
||||||
+ ]],[[
|
|
||||||
+ WINDOW *w;
|
|
||||||
+ w->_flags = 0;
|
|
||||||
+ ]])],
|
|
||||||
+ [py_curses_window_is_internal=yes])
|
|
||||||
+ AC_MSG_RESULT([$py_curses_window_is_internal])
|
|
||||||
+fi
|
|
||||||
+if test yes = $py_curses_window_is_internal; then
|
|
||||||
+ ac_cv_window_has_flags=yes
|
|
||||||
+ AC_DEFINE([NCURSES_INTERNALS], [1], [Define to 1 if you have WINDOW _flags as internal structure.])
|
|
||||||
+fi
|
|
||||||
|
|
||||||
if test "$ac_cv_window_has_flags" = yes
|
|
||||||
then
|
|
||||||
diff --git a/pyconfig.h.in b/pyconfig.h.in
|
|
||||||
index 3ca3a4f..484c817 100644
|
|
||||||
--- a/pyconfig.h.in
|
|
||||||
+++ b/pyconfig.h.in
|
|
||||||
@@ -1130,6 +1130,12 @@
|
|
||||||
/* Define if mvwdelch in curses.h is an expression. */
|
|
||||||
#undef MVWDELCH_IS_EXPRESSION
|
|
||||||
|
|
||||||
+/* Define to 1 if you have WINDOW _flags as internal structure. */
|
|
||||||
+#undef NCURSES_INTERNALS
|
|
||||||
+
|
|
||||||
+/* Define to 0 if you have WINDOW _flags in non-opaque structure. */
|
|
||||||
+#undef NCURSES_OPAQUE
|
|
||||||
+
|
|
||||||
/* Define to the address where bug reports for this package should be sent. */
|
|
||||||
#undef PACKAGE_BUGREPORT
|
|
||||||
|
|
||||||
--
|
|
||||||
1.6.4
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user