diff --git a/.gitignore b/.gitignore index 4762ab25c..cb9e65075 100644 --- a/.gitignore +++ b/.gitignore @@ -9,8 +9,6 @@ *.lzma *.tmp *.bak -*.diff -*.patch *.orig *.rej *.old diff --git a/library/subtargets.sh b/library/subtargets.sh index 7a455cf65..5580afd6d 100644 --- a/library/subtargets.sh +++ b/library/subtargets.sh @@ -60,8 +60,8 @@ function fun_get_subtargets { bzip2 libffi expat - #tcl - #tk + tcl + tk $([[ $python_version == 3.3.0 ]] && echo xz-utils) sqlite ncurses @@ -134,6 +134,7 @@ function fun_get_subtargets { local readonly SUBTARGETS=( zlib ${PYTHON_SUBTARGETS[@]} + 3rdparty-post cleanup licenses build-info diff --git a/patches/tk/tk-8.6.1-prevent-tclStubsPtr-segfault.patch b/patches/tk/tk-8.6.1-prevent-tclStubsPtr-segfault.patch new file mode 100644 index 000000000..f5aa8c4a3 --- /dev/null +++ b/patches/tk/tk-8.6.1-prevent-tclStubsPtr-segfault.patch @@ -0,0 +1,21 @@ +diff -urN a/generic/tkEvent.c b/generic/tkEvent.c +--- a/generic/tkEvent.c 2013-09-03 13:52:34.000000000 +0100 ++++ b/generic/tkEvent.c 2013-10-03 23:14:31.623094600 +0100 +@@ -2039,7 +2039,16 @@ + { + ExitHandler *exitPtr; + +- Tcl_DeleteExitHandler(TkFinalize, NULL); ++ /* There's no guarantee that Tcl_InitStubs ++ * has been called before exit; tclStubsPtr ++ * is NULL in this case. ++ */ ++#if defined(USE_TCL_STUBS) ++ if (tclStubsPtr == NULL) ++ return; ++#endif ++ ++ Tcl_DeleteExitHandler(TkFinalize, NULL); + + Tcl_MutexLock(&exitMutex); + for (exitPtr = firstExitPtr; exitPtr != NULL; exitPtr = firstExitPtr) { diff --git a/scripts/3rdparty-post.sh b/scripts/3rdparty-post.sh index ed64047b2..40335d9af 100644 --- a/scripts/3rdparty-post.sh +++ b/scripts/3rdparty-post.sh @@ -35,12 +35,28 @@ # ************************************************************************** -[[ ! -f $BUILDS_DIR/3rdparty-post.marker ]] && { - DLLS=( $(find $LIBS_DIR/bin -type f -name *.dll) ) - [[ ${#DLLS[@]} >0 ]] && { - cp -f ${DLLS[@]} $PREFIX/opt/bin/ >/dev/null 2>&1 +function python_deps_post { + [[ ! -f $BUILDS_DIR/3rdparty-post.marker ]] && { + local _dlls=( $(find $LIBS_DIR/bin -type f -name *.dll) ) + [[ ${#_dlls[@]} >0 ]] && { + [[ $BUILD_MODE == gcc ]] && { + cp -f ${_dlls[@]} $PREFIX/opt/bin/ >/dev/null 2>&1 + } || { + cp -f ${_dlls[@]} $PREFIX/bin/ >/dev/null 2>&1 + local _toolchain_path=$(eval "echo \${${BUILD_ARCHITECTURE}_HOST_MINGW_PATH}") + local _gcc_dll=( $(find $_toolchain_path/bin -type f \ + -name libstdc++*.dll -o \ + -name libgcc*.dll -o \ + -name libwinpthread*.dll) ) + [[ ${#_gcc_dll[@]} >0 ]] && { + cp -f ${_gcc_dll[@]} $PREFIX/bin/ >/dev/null 2>&1 + } + } + } + touch $BUILDS_DIR/3rdparty-post.marker } - touch $BUILDS_DIR/3rdparty-post.marker } +python_deps_post + # ************************************************************************** diff --git a/scripts/gcc-4_8-branch.sh b/scripts/gcc-4_8-branch.sh index c2e2035be..113c1ea50 100644 --- a/scripts/gcc-4_8-branch.sh +++ b/scripts/gcc-4_8-branch.sh @@ -50,6 +50,7 @@ PKG_PATCHES=( gcc/gcc-4.7-stdthreads.patch gcc/gcc-4.8-iconv.patch gcc/gcc-4.8-libstdc++export.patch + gcc/gcc-4.8.1-fix-dw2.patch ) # diff --git a/scripts/gmp.sh b/scripts/gmp.sh index 72417435e..dc2b69fa5 100644 --- a/scripts/gmp.sh +++ b/scripts/gmp.sh @@ -35,7 +35,7 @@ # ************************************************************************** -PKG_VERSION=5.1.2 +PKG_VERSION=5.1.3 PKG_NAME=$BUILD_ARCHITECTURE-gmp-${PKG_VERSION}-$LINK_TYPE_SUFFIX PKG_DIR_NAME=gmp-${PKG_VERSION} PKG_TYPE=.tar.bz2 diff --git a/scripts/tk.sh b/scripts/tk.sh index 4eb30fa94..a751e110f 100644 --- a/scripts/tk.sh +++ b/scripts/tk.sh @@ -50,6 +50,7 @@ PKG_PRIORITY=extra PKG_PATCHES=( tk/tk-8.6.1-mingwexcept.patch + tk/tk-8.6.1-prevent-tclStubsPtr-segfault.patch ) # diff --git a/todo.txt b/todo.txt index 819e65f9d..0dfa910f3 100644 --- a/todo.txt +++ b/todo.txt @@ -6,8 +6,6 @@ it is necessary to decide whether it is needed in the python distribution archive, or no. if no - in the 'scripts/cleanup.sh' script add the code in order to remove it. -3. Fix building Python with TCL/TK. +3. Fix building Python with shared NCURSES. -4. Fix building Python with shared NCURSES. - -5. Fix building GNU Make with autotools. +4. Fix building GNU Make with autotools.