diff --git a/CMakeLists.txt b/CMakeLists.txt index 368f5de0261..a9776d3a384 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -190,9 +190,9 @@ set(CXX_WARNINGS "") # For alternate Python locations the commandline can be used to override detected/default cache settings, e.g: # On Unix: -# cmake -D PYTHON_LIBRARY=/usr/local/lib/python3.1/config/libpython3.1.so -D PYTHON_INCLUDE_DIRS=/usr/local/include/python3.1 -G "Unix Makefiles" ../blender +# cmake -D PYTHON_LIBRARY=/usr/local/lib/python3.2/config/libpython3.2.so -D PYTHON_INCLUDE_DIRS=/usr/local/include/python3.2 ../blender # On Macs: -# cmake -D PYTHON_INCLUDE_DIRS=/System/Library/Frameworks/Python.framework/Versions/3.1/include/python3.1 -D PYTHON_LIBPATH=/System/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/config -G Xcode ../blender +# cmake -D PYTHON_INCLUDE_DIRS=/System/Library/Frameworks/Python.framework/Versions/3.2/include/python3.2 -D PYTHON_LIBPATH=/System/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/config -G Xcode ../blender # # When changing any of this remember to update the notes in doc/build_systems/cmake.txt @@ -250,7 +250,7 @@ if(UNIX AND NOT APPLE) # No way to set py31. remove for now. # find_package(PythonLibs) set(PYTHON /usr) - set(PYTHON_VERSION 3.1 CACHE STRING "") + set(PYTHON_VERSION 3.2 CACHE STRING "") mark_as_advanced(PYTHON_VERSION) set(PYTHON_INCLUDE_DIRS "${PYTHON}/include/python${PYTHON_VERSION}" CACHE STRING "") mark_as_advanced(PYTHON_INCLUDE_DIRS) @@ -772,7 +772,7 @@ elseif(APPLE) set(PYTHON_VERSION 3.2) if(PYTHON_VERSION MATCHES 3.2) - # we use precompiled libraries for py 3.1 and up by default + # we use precompiled libraries for py 3.2 and up by default set(PYTHON ${LIBDIR}/python) set(PYTHON_INCLUDE_DIRS "${PYTHON}/include/python${PYTHON_VERSION}") @@ -784,7 +784,7 @@ elseif(APPLE) # otherwise, use custom system framework set(PYTHON /System/Library/Frameworks/Python.framework/Versions/) - set(PYTHON_VERSION 3.1) + set(PYTHON_VERSION 3.2) set(PYTHON_INCLUDE_DIRS "${PYTHON}${PYTHON_VERSION}/include/python${PYTHON_VERSION}") # set(PYTHON_BINARY ${PYTHON}${PYTHON_VERSION}/bin/python${PYTHON_VERSION}) # not used yet set(PYTHON_LIBRARY "") diff --git a/release/scripts/ui/space_userpref.py b/release/scripts/ui/space_userpref.py index 4f444a8e253..93985591824 100644 --- a/release/scripts/ui/space_userpref.py +++ b/release/scripts/ui/space_userpref.py @@ -1089,8 +1089,7 @@ class WM_OT_addon_install(bpy.types.Operator): addon_path = "" pyfile_dir = os.path.dirname(pyfile) for addon_path in addon_utils.paths(): - # if os.path.samefile(pyfile_dir, addon_path): # Py3.2 only!, upgrade soon! - if (hasattr(os.path, "samefile") and os.path.samefile(pyfile_dir, addon_path)) or pyfile_dir == addon_path: + if os.path.samefile(pyfile_dir, addon_path): self.report({'ERROR'}, "Source file is in the addon search path: %r" % addon_path) return {'CANCELLED'} del addon_path diff --git a/source/blender/python/generic/bpy_internal_import.c b/source/blender/python/generic/bpy_internal_import.c index 533225b1135..e0af6e085eb 100644 --- a/source/blender/python/generic/bpy_internal_import.c +++ b/source/blender/python/generic/bpy_internal_import.c @@ -74,16 +74,9 @@ void bpy_import_main_set(struct Main *maggie) } /* returns a dummy filename for a textblock so we can tell what file a text block comes from */ -void bpy_text_filename_get(char *fn, Text *text) +void bpy_text_filename_get(char *fn, size_t fn_len, Text *text) { -#if PY_VERSION_HEX >= 0x03020000 - sprintf(fn, "%s%c%s", text->id.lib ? text->id.lib->filepath : G.main->name, SEP, text->id.name+2); -#else - /* this is a bug in python's Py_CompileString()!, fixed for python 3.2. - the string encoding should not be required to be utf-8 - reported: http://bugs.python.org/msg115202 */ - strcpy(fn, text->id.name+2); -#endif + BLI_snprintf(fn, fn_len, "%s%c%s", text->id.lib ? text->id.lib->filepath : G.main->name, SEP, text->id.name+2); } PyObject *bpy_text_import(Text *text) @@ -94,7 +87,7 @@ PyObject *bpy_text_import(Text *text) if( !text->compiled ) { char fn_dummy[256]; - bpy_text_filename_get(fn_dummy, text); + bpy_text_filename_get(fn_dummy, sizeof(fn_dummy), text); buf = txt_to_buf( text ); text->compiled = Py_CompileString( buf, fn_dummy, Py_file_input ); diff --git a/source/blender/python/generic/bpy_internal_import.h b/source/blender/python/generic/bpy_internal_import.h index 45169b1b56f..7aabdcf3bf2 100644 --- a/source/blender/python/generic/bpy_internal_import.h +++ b/source/blender/python/generic/bpy_internal_import.h @@ -52,7 +52,7 @@ PyObject* bpy_text_import_name(char *name, int *found); PyObject* bpy_text_reimport(PyObject *module, int *found); /* void bpy_text_clear_modules(int clear_all);*/ /* Clear user modules */ -void bpy_text_filename_get(char *fn, struct Text *text); +void bpy_text_filename_get(char *fn, size_t fn_len, struct Text *text); extern PyMethodDef bpy_import_meth; extern PyMethodDef bpy_reload_meth; diff --git a/source/blender/python/generic/py_capi_utils.c b/source/blender/python/generic/py_capi_utils.c index ed24c164921..3f2fbb1bbec 100644 --- a/source/blender/python/generic/py_capi_utils.c +++ b/source/blender/python/generic/py_capi_utils.c @@ -60,18 +60,6 @@ void PyC_LineSpit(void) { fprintf(stderr, "%s:%d\n", filename, lineno); } -/* python 3.2 only, copied from frameobjec.c */ -#if PY_VERSION_HEX < 0x03020000 -int -PyFrame_GetLineNumber(PyFrameObject *f) -{ - if (f->f_trace) - return f->f_lineno; - else - return PyCode_Addr2Line(f->f_code, f->f_lasti); -} -#endif - void PyC_FileAndNum(const char **filename, int *lineno) { PyFrameObject *frame; diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index 03d5f528670..b54771f6b0e 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -378,7 +378,7 @@ static int python_script_exec(bContext *C, const char *fn, struct Text *text, st if (text) { char fn_dummy[FILE_MAXDIR]; - bpy_text_filename_get(fn_dummy, text); + bpy_text_filename_get(fn_dummy, sizeof(fn_dummy), text); if( !text->compiled ) { /* if it wasn't already compiled, do it now */ char *buf = txt_to_buf( text ); diff --git a/source/blender/python/intern/bpy_util.h b/source/blender/python/intern/bpy_util.h index 9b217e77844..606eefc8960 100644 --- a/source/blender/python/intern/bpy_util.h +++ b/source/blender/python/intern/bpy_util.h @@ -30,7 +30,7 @@ #ifndef BPY_UTIL_H #define BPY_UTIL_H -#if PY_VERSION_HEX < 0x03010000 +#if PY_VERSION_HEX < 0x03020000 #error "Python versions below 3.1 are not supported anymore, you'll need to update your python." #endif diff --git a/source/gameengine/GameLogic/SCA_PythonController.cpp b/source/gameengine/GameLogic/SCA_PythonController.cpp index be138db620e..d0c1155de96 100644 --- a/source/gameengine/GameLogic/SCA_PythonController.cpp +++ b/source/gameengine/GameLogic/SCA_PythonController.cpp @@ -415,11 +415,7 @@ void SCA_PythonController::Trigger(SCA_LogicManager* logicmgr) excdict= PyDict_Copy(m_pythondictionary); -#if PY_VERSION_HEX >= 0x03020000 resultobj = PyEval_EvalCode((PyObject *)m_bytecode, excdict, excdict); -#else - resultobj = PyEval_EvalCode((PyCodeObject *)m_bytecode, excdict, excdict); -#endif /* PyRun_SimpleString(m_scriptText.Ptr()); */ break;