diff --git a/doc/ReleaseNotes b/doc/ReleaseNotes index 79cf156c83..c7da05ad7a 100644 --- a/doc/ReleaseNotes +++ b/doc/ReleaseNotes @@ -1,3 +1,25 @@ +------------------------ RELEASE 1.10.8 ----------------------- + +Recommended maintenance release. + +* Support building for macOS 11 "Big Sur" and "Apple Silicon" (arm64) +* Fix a memory leak, particularly noticeable with multithreaded pipeline (#1077) +* Fix problem building Windows binaries using deployment system +* Fix DirectEntry/PGEntry flickering in the multithreaded pipeline (#1070) +* Fix sounds resuming on reactivation if stop() was called while inactive (#559) +* Collision traverser now releases GIL during traversal (#1033) +* Fix crash caused by some gamepad drivers on Linux (#1066) +* Skinning-enabled shaders can now properly render unskinned models as well +* BitMask, SparseArray, BitArray types can now be pickled (#886) +* VFSImporter now properly detects source file encodings in Python 3 +* Workaround for lighting bug with scenes imported using panda3d-gltf/blend2bam +* Fix compilation error with Bullet 2.90+ +* Assimp library was updated in Windows thirdparty packages (#1020) +* libCg is now shipped as library instead of framework on macOS (#1079) +* Fix ability to use deployment system when compiling without OpenSSL (#1073) +* Fix assorted issues with rgbPanel +* Fix comparison operator of RenderEffects object + ------------------------ RELEASE 1.10.7 ----------------------- This is primarily a bugfix release, but includes a few new features as well. diff --git a/dtool/src/dtoolutil/executionEnvironment.cxx b/dtool/src/dtoolutil/executionEnvironment.cxx index b018365cfb..4af54459ae 100644 --- a/dtool/src/dtoolutil/executionEnvironment.cxx +++ b/dtool/src/dtoolutil/executionEnvironment.cxx @@ -255,9 +255,11 @@ get_cwd() { */ bool ExecutionEnvironment:: ns_has_environment_variable(const string &var) const { -#ifdef PREREAD_ENVIRONMENT - return _variables.count(var) != 0; -#else + if (_variables.count(var) != 0) { + return true; + } + +#ifndef PREREAD_ENVIRONMENT return getenv(var.c_str()) != nullptr; #endif } diff --git a/makepanda/installer.nsi b/makepanda/installer.nsi index a124e612d9..26ca4b03dd 100644 --- a/makepanda/installer.nsi +++ b/makepanda/installer.nsi @@ -30,6 +30,7 @@ SetCompressor ${COMPRESSOR} !include "MUI2.nsh" !include "Sections.nsh" !include "WinMessages.nsh" +!include "WinVer.nsh" !include "WordFunc.nsh" !include "x64.nsh" @@ -89,7 +90,6 @@ LangString DESC_SecMaxPlugins ${LANG_ENGLISH} "Plug-ins for Autodesk 3ds Max (${ LangString DESC_SecMayaPlugins ${LANG_ENGLISH} "Plug-ins and scripts for Autodesk Maya (${REGVIEW}-bit) that can be used to export models to Panda3D." var READABLE -var MANPAGE ; See http://nsis.sourceforge.net/Check_if_a_file_exists_at_compile_time for documentation !macro !defineifexist _VAR_NAME _FILE_NAME @@ -373,12 +373,14 @@ SectionGroup "Python modules" SecGroupPython !insertmacro PyBindingSection 3.7-32 .cp37-win32.pyd !insertmacro PyBindingSection 3.8-32 .cp38-win32.pyd !insertmacro PyBindingSection 3.9-32 .cp39-win32.pyd + !insertmacro PyBindingSection 3.10-32 .cp310-win32.pyd !else !insertmacro PyBindingSection 3.5 .cp35-win_amd64.pyd !insertmacro PyBindingSection 3.6 .cp36-win_amd64.pyd !insertmacro PyBindingSection 3.7 .cp37-win_amd64.pyd !insertmacro PyBindingSection 3.8 .cp38-win_amd64.pyd !insertmacro PyBindingSection 3.9 .cp39-win_amd64.pyd + !insertmacro PyBindingSection 3.10 .cp310-win_amd64.pyd !endif SectionGroupEnd @@ -483,14 +485,32 @@ Function .onInit !insertmacro MaybeEnablePyBindingSection 3.6-32 !insertmacro MaybeEnablePyBindingSection 3.7-32 !insertmacro MaybeEnablePyBindingSection 3.8-32 + ${If} ${AtLeastWin8} !insertmacro MaybeEnablePyBindingSection 3.9-32 + !insertmacro MaybeEnablePyBindingSection 3.10-32 + ${EndIf} !else !insertmacro MaybeEnablePyBindingSection 3.5 !insertmacro MaybeEnablePyBindingSection 3.6 !insertmacro MaybeEnablePyBindingSection 3.7 !insertmacro MaybeEnablePyBindingSection 3.8 + ${If} ${AtLeastWin8} !insertmacro MaybeEnablePyBindingSection 3.9 + !insertmacro MaybeEnablePyBindingSection 3.10 + ${EndIf} !endif + + ; These versions of Python require Windows 8.1 or higher. + ${Unless} ${AtLeastWin8} + !ifdef SecPyBindings3.9 + SectionSetFlags ${SecPyBindings3.9} ${SF_RO} + SectionSetInstTypes ${SecPyBindings3.9} 0 + !endif + !ifdef SecPyBindings3.10 + SectionSetFlags ${SecPyBindings3.10} ${SF_RO} + SectionSetInstTypes ${SecPyBindings3.10} 0 + !endif + ${EndUnless} FunctionEnd Function .onSelChange @@ -599,13 +619,14 @@ Section "Sample programs" SecSamples SetOutPath $INSTDIR WriteINIStr $INSTDIR\Website.url "InternetShortcut" "URL" "https://www.panda3d.org/" - WriteINIStr $INSTDIR\Manual.url "InternetShortcut" "URL" "https://www.panda3d.org/manual/index.php" - WriteINIStr $INSTDIR\Samples.url "InternetShortcut" "URL" "https://www.panda3d.org/manual/index.php/Sample_Programs_in_the_Distribution" + WriteINIStr $INSTDIR\Manual.url "InternetShortcut" "URL" "https://docs.panda3d.org/${MAJOR_VER}" + WriteINIStr $INSTDIR\Samples.url "InternetShortcut" "URL" "https://docs.panda3d.org/${MAJOR_VER}/python/more-resources/samples/index" SetOutPath $INSTDIR CreateShortCut "$SMPROGRAMS\${TITLE}\Panda3D Manual.lnk" "$INSTDIR\Manual.url" "" "$INSTDIR\pandaIcon.ico" 0 "" "" "Panda3D Manual" CreateShortCut "$SMPROGRAMS\${TITLE}\Panda3D Website.lnk" "$INSTDIR\Website.url" "" "$INSTDIR\pandaIcon.ico" 0 "" "" "Panda3D Website" CreateShortCut "$SMPROGRAMS\${TITLE}\Sample Program Manual.lnk" "$INSTDIR\Samples.url" "" "$INSTDIR\pandaIcon.ico" 0 "" "" "Sample Program Manual" + ${Unless} ${AtLeastWin8} FindFirst $0 $1 $INSTDIR\samples\* loop: StrCmp $1 "" done @@ -620,16 +641,10 @@ Section "Sample programs" SecSamples Call Capitalize Pop $R0 StrCpy $READABLE $R0 - Push $1 - Push "-" - Push "_" - Call StrRep - Pop $R0 - StrCpy $MANPAGE $R0 DetailPrint "Creating shortcuts for sample program $READABLE" CreateDirectory "$SMPROGRAMS\${TITLE}\Sample Programs\$READABLE" SetOutPath $INSTDIR\samples\$1 - WriteINIStr $INSTDIR\samples\$1\ManualPage.url "InternetShortcut" "URL" "https://www.panda3d.org/wiki/index.php/Sample_Programs:_$MANPAGE" + WriteINIStr $INSTDIR\samples\$1\ManualPage.url "InternetShortcut" "URL" "https://docs.panda3d.org/${MAJOR_VER}/python/more-resources/samples/$1" CreateShortCut "$SMPROGRAMS\${TITLE}\Sample Programs\$READABLE\Manual Page.lnk" "$INSTDIR\samples\$1\ManualPage.url" "" "$INSTDIR\pandaIcon.ico" 0 "" "" "Manual Entry on this Sample Program" CreateShortCut "$SMPROGRAMS\${TITLE}\Sample Programs\$READABLE\View Source Code.lnk" "$INSTDIR\samples\$1" iloop: @@ -643,6 +658,7 @@ Section "Sample programs" SecSamples FindNext $0 $1 Goto loop done: + ${EndUnless} SectionEnd !endif @@ -803,12 +819,14 @@ Section Uninstall !insertmacro RemovePythonPath 3.7-32 !insertmacro RemovePythonPath 3.8-32 !insertmacro RemovePythonPath 3.9-32 + !insertmacro RemovePythonPath 3.10-32 !else !insertmacro RemovePythonPath 3.5 !insertmacro RemovePythonPath 3.6 !insertmacro RemovePythonPath 3.7 !insertmacro RemovePythonPath 3.8 !insertmacro RemovePythonPath 3.9 + !insertmacro RemovePythonPath 3.10 !endif SetDetailsPrint both @@ -876,12 +894,14 @@ SectionEnd !insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings3.7-32} $(DESC_SecPyBindings3.7-32) !insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings3.8-32} $(DESC_SecPyBindings3.8-32) !insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings3.9-32} $(DESC_SecPyBindings3.9-32) + !insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings3.10-32} $(DESC_SecPyBindings3.10-32) !else !insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings3.5} $(DESC_SecPyBindings3.5) !insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings3.6} $(DESC_SecPyBindings3.6) !insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings3.7} $(DESC_SecPyBindings3.7) !insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings3.8} $(DESC_SecPyBindings3.8) !insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings3.9} $(DESC_SecPyBindings3.9) + !insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings3.10} $(DESC_SecPyBindings3.10) !endif !ifdef INCLUDE_PYVER !insertmacro MUI_DESCRIPTION_TEXT ${SecPython} $(DESC_SecPython) diff --git a/makepanda/makepackage.py b/makepanda/makepackage.py index 3be7cff675..f4f0e172a9 100755 --- a/makepanda/makepackage.py +++ b/makepanda/makepackage.py @@ -153,6 +153,7 @@ def MakeInstallerNSIS(version, file, title, installdir, compressor="lzma", **kwa 'BUILT' : '..\\' + outputdir, 'SOURCE' : '..', 'REGVIEW' : regview, + 'MAJOR_VER' : '.'.join(version.split('.')[:2]), } # Are we shipping a version of Python?