[Python-checkins] cpython (merge default -> default): Merge.

larry.hastings python-checkins at python.org
Sun Feb 8 23:08:17 CET 2015


https://hg.python.org/cpython/rev/b5a953ffb2be
changeset:   94567:b5a953ffb2be
parent:      94566:db77970dcabb
parent:      94556:5ea093a41198
user:        Larry Hastings <larry at hastings.org>
date:        Sun Feb 08 14:07:35 2015 -0800
summary:
  Merge.

files:
  Doc/make.bat                    |   18 ++-
  Makefile.pre.in                 |    1 +
  Tools/msi/buildrelease.bat      |   57 ++++++++--
  Tools/msi/bundle/bundle.targets |    4 +-
  Tools/msi/get_wix.py            |    2 +-
  Tools/msi/msi.props             |    1 -
  Tools/msi/testrelease.bat       |  100 ++++++++++++++++++++
  7 files changed, 158 insertions(+), 25 deletions(-)


diff --git a/Doc/make.bat b/Doc/make.bat
--- a/Doc/make.bat
+++ b/Doc/make.bat
@@ -8,13 +8,17 @@
 if "%SPHINXBUILD%" EQU "" set SPHINXBUILD=sphinx-build
 if "%PYTHON%" EQU "" set PYTHON=py
 
-if "%HTMLHELP%" EQU "" (
-    where hhc 2>nul >"%TEMP%\hhc.loc"
-    if errorlevel 1 dir "..\externals\hhc.exe" /s/b > "%TEMP%\hhc.loc"
-    if errorlevel 1 echo Cannot find HHC on PATH or in externals & exit /B 1
-    set /P HTMLHELP= < "%TEMP%\hhc.loc"
-    del "%TEMP%\hhc.loc"
-)
+if "%1" NEQ "htmlhelp" goto :skiphhcsearch
+if exist "%HTMLHELP%" goto :skiphhcsearch
+
+rem Search for HHC in likely places
+set HTMLHELP=
+where hhc /q && set HTMLHELP=hhc && goto :skiphhcsearch
+where /R ..\externals hhc > "%TEMP%\hhc.loc" 2> nul && set /P HTMLHELP= < "%TEMP%\hhc.loc" & del "%TEMP%\hhc.loc"
+if not exist "%HTMLHELP%" where /R "%ProgramFiles(x86)%" hhc > "%TEMP%\hhc.loc" 2> nul && set /P HTMLHELP= < "%TEMP%\hhc.loc" & del "%TEMP%\hhc.loc"
+if not exist "%HTMLHELP%" where /R "%ProgramFiles%" hhc > "%TEMP%\hhc.loc" 2> nul && set /P HTMLHELP= < "%TEMP%\hhc.loc" & del "%TEMP%\hhc.loc"
+if not exist "%HTMLHELP%" echo Cannot find HHC on PATH or in externals & exit /B 1
+:skiphhcsearch
 
 if "%DISTVERSION%" EQU "" for /f "usebackq" %%v in (`%PYTHON% tools/extensions/patchlevel.py`) do set DISTVERSION=%%v
 
diff --git a/Makefile.pre.in b/Makefile.pre.in
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -1143,6 +1143,7 @@
 		test/audiodata \
 		test/capath test/data \
 		test/cjkencodings test/decimaltestdata test/xmltestdata \
+		test/eintrdata \
 		test/imghdrdata \
 		test/subprocessdata test/sndhdrdata test/support \
 		test/tracedmodules test/encoded_modules \
diff --git a/Tools/msi/buildrelease.bat b/Tools/msi/buildrelease.bat
--- a/Tools/msi/buildrelease.bat
+++ b/Tools/msi/buildrelease.bat
@@ -22,17 +22,25 @@
 set BUILDX86=
 set BUILDX64=
 set TARGET=Rebuild
+set TESTTARGETDIR=
 
 
 :CheckOpts
+if "%1" EQU "-h" goto Help
 if "%1" EQU "-c" (set CERTNAME=%~2) && shift && shift && goto CheckOpts
+if "%1" EQU "--certificate" (set CERTNAME=%~2) && shift && shift && goto CheckOpts
 if "%1" EQU "-o" (set OUTDIR=%~2) && shift && shift && goto CheckOpts
+if "%1" EQU "--out" (set OUTDIR=%~2) && shift && shift && goto CheckOpts
 if "%1" EQU "-D" (set SKIPDOC=1) && shift && goto CheckOpts
+if "%1" EQU "--skip-doc" (set SKIPDOC=1) && shift && goto CheckOpts
 if "%1" EQU "-B" (set SKIPBUILD=1) && shift && goto CheckOpts
+if "%1" EQU "--skip-build" (set SKIPBUILD=1) && shift && goto CheckOpts
 if "%1" EQU "--download" (set DOWNLOAD_URL=%~2) && shift && shift && goto CheckOpts
+if "%1" EQU "--test" (set TESTTARGETDIR=%~2) && shift && shift && goto CheckOpts
 if "%1" EQU "-b" (set TARGET=Build) && shift && goto CheckOpts
-if '%1' EQU '-x86' (set BUILDX86=1) && shift && goto CheckOpts
-if '%1' EQU '-x64' (set BUILDX64=1) && shift && goto CheckOpts
+if "%1" EQU "--build" (set TARGET=Build) && shift && goto CheckOpts
+if "%1" EQU "-x86" (set BUILDX86=1) && shift && goto CheckOpts
+if "%1" EQU "-x64" (set BUILDX64=1) && shift && goto CheckOpts
 
 if not defined BUILDX86 if not defined BUILDX64 (set BUILDX86=1) && (set BUILDX64=1)
 
@@ -40,21 +48,21 @@
 if "%SKIPBUILD%" EQU "1" goto skipdoc
 if "%SKIPDOC%" EQU "1" goto skipdoc
 
+if not defined PYTHON where py -q || echo Cannot find py on path and PYTHON is not set. && exit /B 1
+if not defined SPHINXBUILD where sphinx-build -q || echo Cannot find sphinx-build on path and SPHINXBUILD is not set. && exit /B 1
 call "%D%..\..\doc\make.bat" htmlhelp
 if errorlevel 1 goto :eof
 :skipdoc
 
-where hg >nul 2>nul
-if errorlevel 1 echo Cannot find hg on PATH & exit /B 1
+where hg /q || echo Cannot find Mercurial on PATH && exit /B 1
 
-where dlltool 2>nul >"%TEMP%\dlltool.loc"
-if errorlevel 1 dir "%D%..\..\externals\dlltool.exe" /s/b > "%TEMP%\dlltool.loc"
-if errorlevel 1 echo Cannot find binutils on PATH or in externals & exit /B 1
-set /P DLLTOOL= < "%TEMP%\dlltool.loc"
-set PATH=%PATH%;%DLLTOOL:~,-12%
-set DLLTOOL=
-del "%TEMP%\dlltool.loc"
-
+where dlltool /q && goto skipdlltoolsearch
+set _DLLTOOL_PATH=
+where /R "%D%..\..\externals" dlltool > "%TEMP%\dlltool.loc" 2> nul && set /P _DLLTOOL_PATH= < "%TEMP%\dlltool.loc" & del "%TEMP%\dlltool.loc" 
+if not exist "%_DLLTOOL_PATH%" echo Cannot find binutils on PATH or in external && exit /B 1
+for %%f in (%_DLLTOOL_PATH%) do set PATH=%PATH%;%%~dpf
+set _DLLTOOL_PATH=
+:skipdlltoolsearch
 
 if defined BUILDX86 (
     call :build x86
@@ -66,6 +74,10 @@
     if errorlevel 1 exit /B
 )
 
+if defined TESTTARGETDIR (
+    call "%D%testrelease.bat" -t "%TESTTARGETDIR%"
+)
+
 exit /B 0
 
 :build
@@ -88,14 +100,12 @@
     set RELEASE_URI=%RELEASE_URI_X64%
 )
 
-echo on
 if exist "%BUILD%en-us" (
     echo Deleting %BUILD%en-us
     rmdir /q/s "%BUILD%en-us"
     if errorlevel 1 exit /B
 )
 
-echo on
 if exist "%D%obj\Release_%OBJDIR_PLAT%" (
     echo Deleting "%D%obj\Release_%OBJDIR_PLAT%"
     rmdir /q/s "%D%obj\Release_%OBJDIR_PLAT%"
@@ -132,3 +142,22 @@
     copy /Y "%BUILD%en-us\*.msi" "%OUTDIR%\%OUTDIR_PLAT%"
 )
 
+exit /B 0
+
+:Help
+echo buildrelease.bat [--out DIR] [-x86] [-x64] [--certificate CERTNAME] [--build] [--skip-build]
+echo                  [--skip-doc] [--download DOWNLOAD URL] [--test TARGETDIR] [-h]
+echo.
+echo    --out (-o)          Specify an additional output directory for installers
+echo    -x86                Build x86 installers
+echo    -x64                Build x64 installers
+echo    --build (-b)        Incrementally build Python rather than rebuilding
+echo    --skip-build (-B)   Do not build Python (just do the installers)
+echo    --skip-doc (-D)     Do not build documentation
+echo    --download          Specify the full download URL for MSIs (should include {2})
+echo    --test              Specify the test directory to run the installer tests
+echo    -h                  Display this help information
+echo.
+echo If no architecture is specified, all architectures will be built.
+echo If --test is not specified, the installer tests are not run.
+echo.
\ No newline at end of file
diff --git a/Tools/msi/bundle/bundle.targets b/Tools/msi/bundle/bundle.targets
--- a/Tools/msi/bundle/bundle.targets
+++ b/Tools/msi/bundle/bundle.targets
@@ -14,8 +14,8 @@
         <OutputPath>$(OutputPath)en-us\</OutputPath>
         <OutDir>$(OutputPath)</OutDir>
         
-        <DownloadUrl Condition="'$(DownloadUrl)' == '' and '$(DownloadUrlBase)' != ''">$(DownloadUrlBase.TrimEnd(`/`))/$(PythonVersion)/$(ArchName)/{2}</DownloadUrl>
-        <DefineConstants Condition="'$(DownloadUrl)' != ''">$(DefineConstants);DownloadUrl=$(DownloadUrl)</DefineConstants>
+        <DownloadUrl Condition="'$(DownloadUrl)' == '' and '$(DownloadUrlBase)' != ''">$(DownloadUrlBase.TrimEnd(`/`))/$(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber)/$(ArchName)$(ReleaseLevelName)/</DownloadUrl>
+        <DefineConstants Condition="'$(DownloadUrl)' != ''">$(DefineConstants);DownloadUrl=$(DownloadUrl){2}</DefineConstants>
         <DefineConstants Condition="'$(DownloadUrl)' == ''">$(DefineConstants);DownloadUrl={2}</DefineConstants>
     </PropertyGroup>
     
diff --git a/Tools/msi/get_wix.py b/Tools/msi/get_wix.py
--- a/Tools/msi/get_wix.py
+++ b/Tools/msi/get_wix.py
@@ -22,7 +22,7 @@
     print("Cannot find project root")
     sys.exit(1)
 
-WIX_BINARIES_ZIP = 'http://wixtoolset.org/downloads/v3.10.1124.0/wix310-binaries.zip'
+WIX_BINARIES_ZIP = 'http://wixtoolset.org/downloads/v3.10.0.1403/wix310-binaries.zip'
 TARGET_BIN_ZIP = EXTERNALS_DIR / "wix.zip"
 TARGET_BIN_DIR = EXTERNALS_DIR / "wix"
 
diff --git a/Tools/msi/msi.props b/Tools/msi/msi.props
--- a/Tools/msi/msi.props
+++ b/Tools/msi/msi.props
@@ -69,7 +69,6 @@
             MajorVersionNumber=$(MajorVersionNumber);
             MinorVersionNumber=$(MinorVersionNumber);
             UpgradeMinimumVersion=$(MajorVersionNumber).$(MinorVersionNumber).0.0;
-            UpgradeMaximumVersion=$(MajorVersionNumber).$(MinorVersionNumber).150.0;
             NextMajorVersionNumber=$(MajorVersionNumber).$([msbuild]::Add($(MinorVersionNumber), 1)).0.0;
             PyDebugExt=$(PyDebugExt);
         </DefineConstants>
diff --git a/Tools/msi/testrelease.bat b/Tools/msi/testrelease.bat
new file mode 100644
--- /dev/null
+++ b/Tools/msi/testrelease.bat
@@ -0,0 +1,100 @@
+ at setlocal
+ at echo off
+
+set D=%~dp0
+set PCBUILD=%D%..\..\PCBuild\
+
+set TARGETDIR=%TEMP%
+set TESTX86=
+set TESTX64=
+set TESTALLUSER=
+set TESTPERUSER=
+
+:CheckOpts
+if "%1" EQU "-h" goto Help
+if "%1" EQU "-x86" (set TESTX86=1) && shift && goto CheckOpts
+if "%1" EQU "-x64" (set TESTX64=1) && shift && goto CheckOpts
+if "%1" EQU "-t" (set TARGETDIR=%~2) && shift && shift && goto CheckOpts
+if "%1" EQU "--target" (set TARGETDIR=%~2) && shift && shift && goto CheckOpts
+if "%1" EQU "-a" (set TESTALLUSER=1) && shift && goto CheckOpts
+if "%1" EQU "--alluser" (set TESTALLUSER=1) && shift && goto CheckOpts
+if "%1" EQU "-p" (set TESTPERUSER=1) && shift && goto CheckOpts
+if "%1" EQU "--peruser" (set TESTPERUSER=1) && shift && goto CheckOpts
+
+if not defined TESTX86 if not defined TESTX64 (set TESTX86=1) && (set TESTX64=1)
+if not defined TESTALLUSER if not defined TESTPERUSER (set TESTALLUSER=1) && (set TESTPERUSER=1)
+
+
+if defined TESTX86 (
+    for %%f in ("%PCBUILD%win32\en-us\*.exe") do (
+        if defined TESTALLUSER call :test "%%~ff" "%TARGETDIR%\%%~nf-alluser" "InstallAllUsers=1 CompileAll=1"
+        if errorlevel 1 exit /B
+        if defined TESTPERUSER call :test "%%~ff" "%TARGETDIR%\%%~nf-peruser" "InstallAllUsers=0 CompileAll=0"
+        if errorlevel 1 exit /B
+    )
+)
+
+if defined TESTX64 (
+    for %%f in ("%PCBUILD%amd64\en-us\*.exe") do (
+        if defined TESTALLUSER call :test "%%~ff" "%TARGETDIR%\%%~nf-alluser" "InstallAllUsers=1 CompileAll=1"
+        if errorlevel 1 exit /B
+        if defined TESTPERUSER call :test "%%~ff" "%TARGETDIR%\%%~nf-peruser" "InstallAllUsers=0 CompileAll=0"
+        if errorlevel 1 exit /B
+    )
+)
+
+exit /B 0
+
+:test
+ at setlocal
+ at echo on
+
+ at if not exist "%~1" exit /B 1
+
+ at set EXITCODE=0
+ at echo Installing %1 into %2
+"%~1" /passive /log "%~2\install\log.txt" TargetDir="%~2\Python" Include_debug=1 Include_symbols=1 %~3
+
+ at if not errorlevel 1 (
+    @echo Printing version
+    "%~2\Python\python.exe" -c "import sys; print(sys.version)" > "%~2\version.txt" 2>&1
+)
+ at if not errorlevel 1 (
+    @echo Installing package
+    "%~2\Python\python.exe" -m pip install azure > "%~2\pip.txt" 2>&1
+    @if not errorlevel 1 (
+        "%~2\Python\python.exe" -m pip uninstall -y azure python-dateutil six >> "%~2\pip.txt" 2>&1
+    )
+)
+ at if not errorlevel 1 (
+    @echo Testing Tcl/tk
+    @set TCL_LIBRARY=%~2\Python\tcl\tcl8.6
+    "%~2\Python\python.exe" -m test -uall -v test_ttk_guionly test_tk test_idle > "%~2\tcltk.txt" 2>&1
+    @set TCL_LIBRARY=
+)
+
+ at set EXITCODE=%ERRORLEVEL%
+
+ at for /d %%f in ("%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\Python*") do @dir "%%~ff\*.lnk" /s/b > "%~2\startmenu.txt" 2>&1
+ at for /d %%f in ("%APPDATA%\Microsoft\Windows\Start Menu\Programs\Python*") do @dir "%%~ff\*.lnk" /s/b >> "%~2\startmenu.txt" 2>&1
+
+ at echo Result was %EXITCODE%
+ at echo Removing %1
+"%~1" /passive /uninstall /log "%~2\uninstall\log.txt"
+
+ at echo off
+exit /B %EXITCODE%
+
+:Help
+echo testrelease.bat [--target TARGET] [-x86] [-x64] [--alluser] [--peruser] [-h]
+echo.
+echo    --target (-t)   Specify the target directory for installs and logs
+echo    -x86            Run tests for x86 installers
+echo    -x64            Run tests for x64 installers
+echo    --alluser (-a)  Run tests for all-user installs (requires Administrator)
+echo    --peruser (-p)  Run tests for per-user installs
+echo    -h              Display this help information
+echo.
+echo If no test architecture is specified, all architectures will be tested.
+echo If no install type is selected, all install types will be tested.
+echo.

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list