From 8f43048c4f3831fbd1544ba4ba1d9e4d4c4ce82c Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 22 Dec 2020 12:37:06 +0100 Subject: [PATCH 1/8] makepackage: Support installing Python 3.10 bindings in Windows installer --- makepanda/installer.nsi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/makepanda/installer.nsi b/makepanda/installer.nsi index 83b5182b5f..724004d7f4 100644 --- a/makepanda/installer.nsi +++ b/makepanda/installer.nsi @@ -423,12 +423,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 @@ -535,12 +537,14 @@ Function .onInit !insertmacro MaybeEnablePyBindingSection 3.7-32 !insertmacro MaybeEnablePyBindingSection 3.8-32 !insertmacro MaybeEnablePyBindingSection 3.9-32 + !insertmacro MaybeEnablePyBindingSection 3.10-32 !else !insertmacro MaybeEnablePyBindingSection 3.5 !insertmacro MaybeEnablePyBindingSection 3.6 !insertmacro MaybeEnablePyBindingSection 3.7 !insertmacro MaybeEnablePyBindingSection 3.8 !insertmacro MaybeEnablePyBindingSection 3.9 + !insertmacro MaybeEnablePyBindingSection 3.10 !endif FunctionEnd @@ -854,12 +858,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 @@ -934,12 +940,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) From 880c59eb19b61c9edbca3ab52c8b5dad8d0ea8d2 Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 22 Dec 2020 12:40:59 +0100 Subject: [PATCH 2/8] makepackage: Don't install Python 3.9/3.10 buildings on Vista/Win7 These versions of Python require Windows 8.1. --- makepanda/installer.nsi | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/makepanda/installer.nsi b/makepanda/installer.nsi index 724004d7f4..0e401865dc 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" @@ -422,16 +423,32 @@ SectionGroup "Python modules" SecGroupPython !insertmacro PyBindingSection 3.6-32 .cp36-win32.pyd !insertmacro PyBindingSection 3.7-32 .cp37-win32.pyd !insertmacro PyBindingSection 3.8-32 .cp38-win32.pyd + ${If} ${AtLeastWin8} !insertmacro PyBindingSection 3.9-32 .cp39-win32.pyd !insertmacro PyBindingSection 3.10-32 .cp310-win32.pyd + ${EndIf} !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 + ${If} ${AtLeastWin8} !insertmacro PyBindingSection 3.9 .cp39-win_amd64.pyd !insertmacro PyBindingSection 3.10 .cp310-win_amd64.pyd + ${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} SectionGroupEnd !ifdef INCLUDE_PYVER From 500e984bcc0817afbcb85413cebd2905941e8104 Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 22 Dec 2020 12:42:43 +0100 Subject: [PATCH 3/8] readme: Change thirdparty links from 1.10.7 to 1.10.8 [skip ci] --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 662492472a..508d8eb78b 100644 --- a/README.md +++ b/README.md @@ -64,8 +64,8 @@ depending on whether you are on a 32-bit or 64-bit system, or you can [click here](https://github.com/rdb/panda3d-thirdparty) for instructions on building them from source. -- https://www.panda3d.org/download/panda3d-1.10.7/panda3d-1.10.7-tools-win64.zip -- https://www.panda3d.org/download/panda3d-1.10.7/panda3d-1.10.7-tools-win32.zip +- https://www.panda3d.org/download/panda3d-1.10.8/panda3d-1.10.8-tools-win64.zip +- https://www.panda3d.org/download/panda3d-1.10.8/panda3d-1.10.8-tools-win32.zip After acquiring these dependencies, you can build Panda3D from the command prompt using the following command. Change the `--msvc-version` option based @@ -136,7 +136,7 @@ macOS ----- On macOS, you will need to download a set of precompiled thirdparty packages in order to -compile Panda3D, which can be acquired from [here](https://www.panda3d.org/download/panda3d-1.10.7/panda3d-1.10.7-tools-mac.tar.gz). +compile Panda3D, which can be acquired from [here](https://www.panda3d.org/download/panda3d-1.10.8/panda3d-1.10.8-tools-mac.tar.gz). After placing the thirdparty directory inside the panda3d source directory, you may build Panda3D using a command like the following: From c759bfd6b8b5aa5a4da38744e87c89ab76e345c4 Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 22 Dec 2020 13:00:39 +0100 Subject: [PATCH 4/8] doc: Add 1.10.8 release notes [skip ci] --- doc/ReleaseNotes | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) 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. From 401d7d0f92b60500bf62cbf98f6f0ab7d1aaadee Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 22 Dec 2020 16:09:51 +0100 Subject: [PATCH 5/8] makepackage: Fix error in installer.nsi --- makepanda/installer.nsi | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/makepanda/installer.nsi b/makepanda/installer.nsi index 0e401865dc..04b3201388 100644 --- a/makepanda/installer.nsi +++ b/makepanda/installer.nsi @@ -423,32 +423,16 @@ SectionGroup "Python modules" SecGroupPython !insertmacro PyBindingSection 3.6-32 .cp36-win32.pyd !insertmacro PyBindingSection 3.7-32 .cp37-win32.pyd !insertmacro PyBindingSection 3.8-32 .cp38-win32.pyd - ${If} ${AtLeastWin8} !insertmacro PyBindingSection 3.9-32 .cp39-win32.pyd !insertmacro PyBindingSection 3.10-32 .cp310-win32.pyd - ${EndIf} !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 - ${If} ${AtLeastWin8} !insertmacro PyBindingSection 3.9 .cp39-win_amd64.pyd !insertmacro PyBindingSection 3.10 .cp310-win_amd64.pyd - ${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} SectionGroupEnd !ifdef INCLUDE_PYVER @@ -553,16 +537,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 From 78e23c018ce973e9ebb31e603a9b783f2228c1a7 Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 22 Dec 2020 16:10:08 +0100 Subject: [PATCH 6/8] makepackage: Update links to manual in Windows installer for Sphinx --- makepanda/installer.nsi | 13 +++---------- makepanda/makepackage.py | 1 + 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/makepanda/installer.nsi b/makepanda/installer.nsi index 04b3201388..2c6920c87e 100644 --- a/makepanda/installer.nsi +++ b/makepanda/installer.nsi @@ -92,7 +92,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 @@ -671,8 +670,8 @@ 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" @@ -692,16 +691,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: diff --git a/makepanda/makepackage.py b/makepanda/makepackage.py index 31835cfd99..f9e534ca52 100755 --- a/makepanda/makepackage.py +++ b/makepanda/makepackage.py @@ -220,6 +220,7 @@ def MakeInstallerNSIS(version, file, title, installdir, runtime=False, compresso 'BUILT' : '..\\' + outputdir, 'SOURCE' : '..', 'REGVIEW' : regview, + 'MAJOR_VER' : '.'.join(version.split('.')[:2]), } # Are we shipping a version of Python? From 8f9ca34eec22c5f9cb63ea903e0903011a71b4fa Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 22 Dec 2020 16:21:55 +0100 Subject: [PATCH 7/8] makepackage: Don't write Sample Programs to start menu in Win 8/10 The start menu in newer versions of Windows doesn't show any hierarchy, making this utterly unreadable and useless. --- makepanda/installer.nsi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/makepanda/installer.nsi b/makepanda/installer.nsi index 2c6920c87e..6d8cf561e5 100644 --- a/makepanda/installer.nsi +++ b/makepanda/installer.nsi @@ -677,6 +677,7 @@ Section "Sample programs" SecSamples 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 @@ -708,6 +709,7 @@ Section "Sample programs" SecSamples FindNext $0 $1 Goto loop done: + ${EndUnless} SectionEnd !endif From 30bca7a119c41d3f863c682a2431440d628d21db Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 22 Dec 2020 16:22:45 +0100 Subject: [PATCH 8/8] dtoolutil: fix ExecutionEnvironment::has_environment_variable() for shadowed var Fixes MAIN_DIR being set more than once (which seems to avoid a compiler bug in an opt4 build). --- dtool/src/dtoolutil/executionEnvironment.cxx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/dtool/src/dtoolutil/executionEnvironment.cxx b/dtool/src/dtoolutil/executionEnvironment.cxx index ca8f45d876..96ae7fd147 100644 --- a/dtool/src/dtoolutil/executionEnvironment.cxx +++ b/dtool/src/dtoolutil/executionEnvironment.cxx @@ -217,9 +217,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 }