From b5c93e9cadb4311ec3a267d18979d7a5e59d8422 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 5 Mar 2011 15:04:01 +0100 Subject: Add .hgeol file and fix newlines in the 2.6 branch. --- .hgeol | 39 +++++++++ Doc/make.bat | 116 ++++++++++++------------- PC/VS7.1/build_ssl.bat | 24 +++--- PC/VS8.0/build.bat | 34 ++++---- PC/VS8.0/build_env.bat | 2 +- PC/VS8.0/build_pgo.bat | 82 +++++++++--------- PC/VS8.0/build_ssl.bat | 24 +++--- PC/VS8.0/env.bat | 10 +-- PC/VS8.0/idle.bat | 30 +++---- PC/VS8.0/rt.bat | 104 +++++++++++------------ Tools/buildbot/build-amd64.bat | 12 +-- Tools/buildbot/build.bat | 14 ++-- Tools/buildbot/buildmsi.bat | 40 ++++----- Tools/buildbot/clean-amd64.bat | 14 ++-- Tools/buildbot/clean.bat | 14 ++-- Tools/buildbot/external-amd64.bat | 40 ++++----- Tools/buildbot/external-common.bat | 90 ++++++++++---------- Tools/buildbot/external.bat | 42 +++++----- Tools/buildbot/test-amd64.bat | 6 +- Tools/buildbot/test.bat | 6 +- Tools/msi/merge.py | 168 ++++++++++++++++++------------------- 21 files changed, 475 insertions(+), 436 deletions(-) create mode 100644 .hgeol diff --git a/.hgeol b/.hgeol new file mode 100644 index 0000000..e1c1992 --- /dev/null +++ b/.hgeol @@ -0,0 +1,39 @@ +[patterns] + +# Non human-editable files are binary + +**.dsp = BIN +**.dsw = BIN +**.mk = BIN +**.sln = BIN +**.vcproj = BIN +**.vsprops = BIN + +**.aif = BIN +**.au = BIN +**.bmp = BIN +**.db = BIN +**.exe = BIN +**.icns = BIN +**.gif = BIN +**.ico = BIN +**.info = BIN +**.jpg = BIN +**.pck = BIN +**.png = BIN +**.psd = BIN +**.tar = BIN +**.xar = BIN +**.zip = BIN + +Lib/email/test/data/msg_26.txt = BIN +Lib/test/sndhdrdata/sndhdr.* = BIN +Lib/test/decimaltestdata/*.decTest = BIN + +# All other files (which presumably are human-editable) are "native". +# This must be the last rule! + +** = native + +[repository] +native = LF diff --git a/Doc/make.bat b/Doc/make.bat index 7026951..80ac806 100644 --- a/Doc/make.bat +++ b/Doc/make.bat @@ -1,58 +1,58 @@ -@@echo off -setlocal - -set SVNROOT=http://svn.python.org/projects -if "%PYTHON%" EQU "" set PYTHON=..\pcbuild\python -if "%HTMLHELP%" EQU "" set HTMLHELP=%ProgramFiles%\HTML Help Workshop\hhc.exe -if "%DISTVERSION%" EQU "" for /f "usebackq" %%v in (`%PYTHON% tools/sphinxext/patchlevel.py`) do set DISTVERSION=%%v - -if "%1" EQU "" goto help -if "%1" EQU "html" goto build -if "%1" EQU "htmlhelp" goto build -if "%1" EQU "latex" goto build -if "%1" EQU "text" goto build -if "%1" EQU "suspicious" goto build -if "%1" EQU "linkcheck" goto build -if "%1" EQU "changes" goto build -if "%1" EQU "checkout" goto checkout -if "%1" EQU "update" goto update - -:help -set this=%~n0 -echo HELP -echo. -echo %this% checkout -echo %this% update -echo %this% html -echo %this% htmlhelp -echo %this% latex -echo %this% text -echo %this% suspicious -echo %this% linkcheck -echo %this% changes -echo. -goto end - -:checkout -svn co %SVNROOT%/external/Sphinx-0.6.5/sphinx tools/sphinx -svn co %SVNROOT%/external/docutils-0.6/docutils tools/docutils -svn co %SVNROOT%/external/Jinja-2.3.1/jinja2 tools/jinja2 -svn co %SVNROOT%/external/Pygments-1.3.1/pygments tools/pygments -goto end - -:update -svn update tools/sphinx -svn update tools/docutils -svn update tools/jinja2 -svn update tools/pygments -goto end - -:build -if not exist build mkdir build -if not exist build\%1 mkdir build\%1 -if not exist build\doctrees mkdir build\doctrees -cmd /C %PYTHON% tools\sphinx-build.py -b%1 -dbuild\doctrees . build\%* -if "%1" EQU "htmlhelp" "%HTMLHELP%" build\htmlhelp\python%DISTVERSION:.=%.hhp -goto end - -:end +@@echo off +setlocal + +set SVNROOT=http://svn.python.org/projects +if "%PYTHON%" EQU "" set PYTHON=..\pcbuild\python +if "%HTMLHELP%" EQU "" set HTMLHELP=%ProgramFiles%\HTML Help Workshop\hhc.exe +if "%DISTVERSION%" EQU "" for /f "usebackq" %%v in (`%PYTHON% tools/sphinxext/patchlevel.py`) do set DISTVERSION=%%v + +if "%1" EQU "" goto help +if "%1" EQU "html" goto build +if "%1" EQU "htmlhelp" goto build +if "%1" EQU "latex" goto build +if "%1" EQU "text" goto build +if "%1" EQU "suspicious" goto build +if "%1" EQU "linkcheck" goto build +if "%1" EQU "changes" goto build +if "%1" EQU "checkout" goto checkout +if "%1" EQU "update" goto update + +:help +set this=%~n0 +echo HELP +echo. +echo %this% checkout +echo %this% update +echo %this% html +echo %this% htmlhelp +echo %this% latex +echo %this% text +echo %this% suspicious +echo %this% linkcheck +echo %this% changes +echo. +goto end + +:checkout +svn co %SVNROOT%/external/Sphinx-0.6.5/sphinx tools/sphinx +svn co %SVNROOT%/external/docutils-0.6/docutils tools/docutils +svn co %SVNROOT%/external/Jinja-2.3.1/jinja2 tools/jinja2 +svn co %SVNROOT%/external/Pygments-1.3.1/pygments tools/pygments +goto end + +:update +svn update tools/sphinx +svn update tools/docutils +svn update tools/jinja2 +svn update tools/pygments +goto end + +:build +if not exist build mkdir build +if not exist build\%1 mkdir build\%1 +if not exist build\doctrees mkdir build\doctrees +cmd /C %PYTHON% tools\sphinx-build.py -b%1 -dbuild\doctrees . build\%* +if "%1" EQU "htmlhelp" "%HTMLHELP%" build\htmlhelp\python%DISTVERSION:.=%.hhp +goto end + +:end diff --git a/PC/VS7.1/build_ssl.bat b/PC/VS7.1/build_ssl.bat index 9aad441..f6be3c0 100644 --- a/PC/VS7.1/build_ssl.bat +++ b/PC/VS7.1/build_ssl.bat @@ -1,12 +1,12 @@ -if "%1" == "ReleaseAMD64" call "%MSSdk%\SetEnv" /XP64 /RETAIL - -@echo off -if not defined HOST_PYTHON ( - if %1 EQU Debug ( - set HOST_PYTHON=python_d.exe - ) ELSE ( - set HOST_PYTHON=python.exe - ) -) -%HOST_PYTHON% build_ssl.py %1 %2 - +if "%1" == "ReleaseAMD64" call "%MSSdk%\SetEnv" /XP64 /RETAIL + +@echo off +if not defined HOST_PYTHON ( + if %1 EQU Debug ( + set HOST_PYTHON=python_d.exe + ) ELSE ( + set HOST_PYTHON=python.exe + ) +) +%HOST_PYTHON% build_ssl.py %1 %2 + diff --git a/PC/VS8.0/build.bat b/PC/VS8.0/build.bat index a6d961e..9bc8186 100644 --- a/PC/VS8.0/build.bat +++ b/PC/VS8.0/build.bat @@ -1,17 +1,17 @@ -@echo off -rem A batch program to build or rebuild a particular configuration. -rem just for convenience. - -setlocal -set platf=Win32 -set conf=Release -set build=/build - -:CheckOpts -if "%1"=="-c" (set conf=%2) & shift & shift & goto CheckOpts -if "%1"=="-p" (set platf=%2) & shift & shift & goto CheckOpts -if "%1"=="-r" (set build=/rebuild) & shift & goto CheckOpts - -set cmd=devenv pcbuild.sln %build% "%conf%|%platf%" -echo %cmd% -%cmd% +@echo off +rem A batch program to build or rebuild a particular configuration. +rem just for convenience. + +setlocal +set platf=Win32 +set conf=Release +set build=/build + +:CheckOpts +if "%1"=="-c" (set conf=%2) & shift & shift & goto CheckOpts +if "%1"=="-p" (set platf=%2) & shift & shift & goto CheckOpts +if "%1"=="-r" (set build=/rebuild) & shift & goto CheckOpts + +set cmd=devenv pcbuild.sln %build% "%conf%|%platf%" +echo %cmd% +%cmd% diff --git a/PC/VS8.0/build_env.bat b/PC/VS8.0/build_env.bat index 01024cf..4c67ae3 100644 --- a/PC/VS8.0/build_env.bat +++ b/PC/VS8.0/build_env.bat @@ -1 +1 @@ -@%comspec% /k env.bat %* +@%comspec% /k env.bat %* diff --git a/PC/VS8.0/build_pgo.bat b/PC/VS8.0/build_pgo.bat index d28a767..a37b5bf 100644 --- a/PC/VS8.0/build_pgo.bat +++ b/PC/VS8.0/build_pgo.bat @@ -1,41 +1,41 @@ -@echo off -rem A batch program to build PGO (Profile guided optimization) by first -rem building instrumented binaries, then running the testsuite, and -rem finally building the optimized code. -rem Note, after the first instrumented run, one can just keep on -rem building the PGUpdate configuration while developing. - -setlocal -set platf=Win32 - -rem use the performance testsuite. This is quick and simple -set job1=..\..\tools\pybench\pybench.py -n 1 -C 1 --with-gc -set path1=..\..\tools\pybench - -rem or the whole testsuite for more thorough testing -set job2=..\..\lib\test\regrtest.py -set path2=..\..\lib - -set job=%job1% -set clrpath=%path1% - -:CheckOpts -if "%1"=="-p" (set platf=%2) & shift & shift & goto CheckOpts -if "%1"=="-2" (set job=%job2%) & (set clrpath=%path2%) & shift & goto CheckOpts - -set PGI=%platf%-pgi -set PGO=%platf%-pgo - -@echo on -rem build the instrumented version -call build -p %platf% -c PGInstrument - -rem remove .pyc files, .pgc files and execute the job -%PGI%\python.exe rmpyc.py %clrpath% -del %PGI%\*.pgc -%PGI%\python.exe %job% - -rem finally build the optimized version -if exist %PGO% del /s /q %PGO% -call build -p %platf% -c PGUpdate - +@echo off +rem A batch program to build PGO (Profile guided optimization) by first +rem building instrumented binaries, then running the testsuite, and +rem finally building the optimized code. +rem Note, after the first instrumented run, one can just keep on +rem building the PGUpdate configuration while developing. + +setlocal +set platf=Win32 + +rem use the performance testsuite. This is quick and simple +set job1=..\..\tools\pybench\pybench.py -n 1 -C 1 --with-gc +set path1=..\..\tools\pybench + +rem or the whole testsuite for more thorough testing +set job2=..\..\lib\test\regrtest.py +set path2=..\..\lib + +set job=%job1% +set clrpath=%path1% + +:CheckOpts +if "%1"=="-p" (set platf=%2) & shift & shift & goto CheckOpts +if "%1"=="-2" (set job=%job2%) & (set clrpath=%path2%) & shift & goto CheckOpts + +set PGI=%platf%-pgi +set PGO=%platf%-pgo + +@echo on +rem build the instrumented version +call build -p %platf% -c PGInstrument + +rem remove .pyc files, .pgc files and execute the job +%PGI%\python.exe rmpyc.py %clrpath% +del %PGI%\*.pgc +%PGI%\python.exe %job% + +rem finally build the optimized version +if exist %PGO% del /s /q %PGO% +call build -p %platf% -c PGUpdate + diff --git a/PC/VS8.0/build_ssl.bat b/PC/VS8.0/build_ssl.bat index 676f113..cb5a797 100644 --- a/PC/VS8.0/build_ssl.bat +++ b/PC/VS8.0/build_ssl.bat @@ -1,12 +1,12 @@ -@echo off -if not defined HOST_PYTHON ( - if %1 EQU Debug ( - set HOST_PYTHON=python_d.exe - if not exist python26_d.dll exit 1 - ) ELSE ( - set HOST_PYTHON=python.exe - if not exist python26.dll exit 1 - ) -) -%HOST_PYTHON% build_ssl.py %1 %2 %3 - +@echo off +if not defined HOST_PYTHON ( + if %1 EQU Debug ( + set HOST_PYTHON=python_d.exe + if not exist python26_d.dll exit 1 + ) ELSE ( + set HOST_PYTHON=python.exe + if not exist python26.dll exit 1 + ) +) +%HOST_PYTHON% build_ssl.py %1 %2 %3 + diff --git a/PC/VS8.0/env.bat b/PC/VS8.0/env.bat index 7717d01..a4990a8 100644 --- a/PC/VS8.0/env.bat +++ b/PC/VS8.0/env.bat @@ -1,5 +1,5 @@ -@echo off -set VS8=%ProgramFiles%\Microsoft Visual Studio 8 -echo Build environments: x86, ia64, amd64, x86_amd64, x86_ia64 -echo. -call "%VS8%\VC\vcvarsall.bat" %1 +@echo off +set VS8=%ProgramFiles%\Microsoft Visual Studio 8 +echo Build environments: x86, ia64, amd64, x86_amd64, x86_ia64 +echo. +call "%VS8%\VC\vcvarsall.bat" %1 diff --git a/PC/VS8.0/idle.bat b/PC/VS8.0/idle.bat index 274ae1a..123e704 100644 --- a/PC/VS8.0/idle.bat +++ b/PC/VS8.0/idle.bat @@ -1,15 +1,15 @@ -@echo off -rem start idle -rem Usage: idle [-d] -rem -d Run Debug build (python_d.exe). Else release build. - -setlocal -set exe=python -PATH %PATH%;..\..\..\tcltk\bin - -if "%1"=="-d" (set exe=python_d) & shift - -set cmd=%exe% ../../Lib/idlelib/idle.py %1 %2 %3 %4 %5 %6 %7 %8 %9 - -echo on -%cmd% +@echo off +rem start idle +rem Usage: idle [-d] +rem -d Run Debug build (python_d.exe). Else release build. + +setlocal +set exe=python +PATH %PATH%;..\..\..\tcltk\bin + +if "%1"=="-d" (set exe=python_d) & shift + +set cmd=%exe% ../../Lib/idlelib/idle.py %1 %2 %3 %4 %5 %6 %7 %8 %9 + +echo on +%cmd% diff --git a/PC/VS8.0/rt.bat b/PC/VS8.0/rt.bat index 90fd794..767af76 100644 --- a/PC/VS8.0/rt.bat +++ b/PC/VS8.0/rt.bat @@ -1,52 +1,52 @@ -@echo off -rem Run Tests. Run the regression test suite. -rem Usage: rt [-d] [-O] [-q] regrtest_args -rem -d Run Debug build (python_d.exe). Else release build. -rem -O Run python.exe or python_d.exe (see -d) with -O. -rem -q "quick" -- normally the tests are run twice, the first time -rem after deleting all the .py[co] files reachable from Lib/. -rem -q runs the tests just once, and without deleting .py[co] files. -rem All leading instances of these switches are shifted off, and -rem whatever remains is passed to regrtest.py. For example, -rem rt -O -d -x test_thread -rem runs -rem python_d -O ../lib/test/regrtest.py -x test_thread -rem twice, and -rem rt -q -g test_binascii -rem runs -rem python_d ../lib/test/regrtest.py -g test_binascii -rem to generate the expected-output file for binascii quickly. -rem -rem Confusing: if you want to pass a comma-separated list, like -rem -u network,largefile -rem then you have to quote it on the rt line, like -rem rt -u "network,largefile" - -setlocal - -set exe=python -set qmode= -set dashO= -PATH %PATH%;..\..\..\tcltk\bin - -:CheckOpts -if "%1"=="-O" (set dashO=-O) & shift & goto CheckOpts -if "%1"=="-q" (set qmode=yes) & shift & goto CheckOpts -if "%1"=="-d" (set exe=python_d) & shift & goto CheckOpts - -set cmd=%exe% %dashO% -E -tt ../../lib/test/regrtest.py %1 %2 %3 %4 %5 %6 %7 %8 %9 -if defined qmode goto Qmode - -echo Deleting .pyc/.pyo files ... -%exe% rmpyc.py - -echo on -%cmd% -@echo off - -echo About to run again without deleting .pyc/.pyo first: -pause - -:Qmode -echo on -%cmd% +@echo off +rem Run Tests. Run the regression test suite. +rem Usage: rt [-d] [-O] [-q] regrtest_args +rem -d Run Debug build (python_d.exe). Else release build. +rem -O Run python.exe or python_d.exe (see -d) with -O. +rem -q "quick" -- normally the tests are run twice, the first time +rem after deleting all the .py[co] files reachable from Lib/. +rem -q runs the tests just once, and without deleting .py[co] files. +rem All leading instances of these switches are shifted off, and +rem whatever remains is passed to regrtest.py. For example, +rem rt -O -d -x test_thread +rem runs +rem python_d -O ../lib/test/regrtest.py -x test_thread +rem twice, and +rem rt -q -g test_binascii +rem runs +rem python_d ../lib/test/regrtest.py -g test_binascii +rem to generate the expected-output file for binascii quickly. +rem +rem Confusing: if you want to pass a comma-separated list, like +rem -u network,largefile +rem then you have to quote it on the rt line, like +rem rt -u "network,largefile" + +setlocal + +set exe=python +set qmode= +set dashO= +PATH %PATH%;..\..\..\tcltk\bin + +:CheckOpts +if "%1"=="-O" (set dashO=-O) & shift & goto CheckOpts +if "%1"=="-q" (set qmode=yes) & shift & goto CheckOpts +if "%1"=="-d" (set exe=python_d) & shift & goto CheckOpts + +set cmd=%exe% %dashO% -E -tt ../../lib/test/regrtest.py %1 %2 %3 %4 %5 %6 %7 %8 %9 +if defined qmode goto Qmode + +echo Deleting .pyc/.pyo files ... +%exe% rmpyc.py + +echo on +%cmd% +@echo off + +echo About to run again without deleting .pyc/.pyo first: +pause + +:Qmode +echo on +%cmd% diff --git a/Tools/buildbot/build-amd64.bat b/Tools/buildbot/build-amd64.bat index 8ec3328..5175c62 100644 --- a/Tools/buildbot/build-amd64.bat +++ b/Tools/buildbot/build-amd64.bat @@ -1,6 +1,6 @@ -@rem Used by the buildbot "compile" step. -cmd /c Tools\buildbot\external-amd64.bat -call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64 -cmd /c Tools\buildbot\clean-amd64.bat -vcbuild /useenv PCbuild\kill_python.vcproj "Debug|x64" && PCbuild\amd64\kill_python_d.exe -vcbuild PCbuild\pcbuild.sln "Debug|x64" +@rem Used by the buildbot "compile" step. +cmd /c Tools\buildbot\external-amd64.bat +call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64 +cmd /c Tools\buildbot\clean-amd64.bat +vcbuild /useenv PCbuild\kill_python.vcproj "Debug|x64" && PCbuild\amd64\kill_python_d.exe +vcbuild PCbuild\pcbuild.sln "Debug|x64" diff --git a/Tools/buildbot/build.bat b/Tools/buildbot/build.bat index 976ce72..ab3ea7d 100644 --- a/Tools/buildbot/build.bat +++ b/Tools/buildbot/build.bat @@ -1,7 +1,7 @@ -@rem Used by the buildbot "compile" step. -cmd /c Tools\buildbot\external.bat -call "%VS90COMNTOOLS%vsvars32.bat" -cmd /c Tools\buildbot\clean.bat -vcbuild /useenv PCbuild\kill_python.vcproj "Debug|Win32" && PCbuild\kill_python_d.exe -vcbuild /useenv PCbuild\pcbuild.sln "Debug|Win32" - +@rem Used by the buildbot "compile" step. +cmd /c Tools\buildbot\external.bat +call "%VS90COMNTOOLS%vsvars32.bat" +cmd /c Tools\buildbot\clean.bat +vcbuild /useenv PCbuild\kill_python.vcproj "Debug|Win32" && PCbuild\kill_python_d.exe +vcbuild /useenv PCbuild\pcbuild.sln "Debug|Win32" + diff --git a/Tools/buildbot/buildmsi.bat b/Tools/buildbot/buildmsi.bat index 5fb458a..23f1535 100644 --- a/Tools/buildbot/buildmsi.bat +++ b/Tools/buildbot/buildmsi.bat @@ -1,20 +1,20 @@ -@rem Used by the buildbot "buildmsi" step. - -cmd /c Tools\buildbot\external.bat -@rem build release versions of things -call "%VS90COMNTOOLS%vsvars32.bat" - -@rem build Python -vcbuild /useenv PCbuild\pcbuild.sln "Release|Win32" - -@rem build the documentation -bash.exe -c 'cd Doc;make PYTHON=python2.5 update htmlhelp' -"%ProgramFiles%\HTML Help Workshop\hhc.exe" Doc\build\htmlhelp\python26a3.hhp - -@rem buold the MSI file -cd PC -nmake /f icons.mak -cd ..\Tools\msi -del *.msi -nmake /f msisupport.mak -%HOST_PYTHON% msi.py +@rem Used by the buildbot "buildmsi" step. + +cmd /c Tools\buildbot\external.bat +@rem build release versions of things +call "%VS90COMNTOOLS%vsvars32.bat" + +@rem build Python +vcbuild /useenv PCbuild\pcbuild.sln "Release|Win32" + +@rem build the documentation +bash.exe -c 'cd Doc;make PYTHON=python2.5 update htmlhelp' +"%ProgramFiles%\HTML Help Workshop\hhc.exe" Doc\build\htmlhelp\python26a3.hhp + +@rem buold the MSI file +cd PC +nmake /f icons.mak +cd ..\Tools\msi +del *.msi +nmake /f msisupport.mak +%HOST_PYTHON% msi.py diff --git a/Tools/buildbot/clean-amd64.bat b/Tools/buildbot/clean-amd64.bat index 1ce1605..9fb35e9 100644 --- a/Tools/buildbot/clean-amd64.bat +++ b/Tools/buildbot/clean-amd64.bat @@ -1,7 +1,7 @@ -@rem Used by the buildbot "clean" step. -call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64 -cd PCbuild -@echo Deleting .pyc/.pyo files ... -del /s Lib\*.pyc Lib\*.pyo -vcbuild /clean pcbuild.sln "Release|x64" -vcbuild /clean pcbuild.sln "Debug|x64" +@rem Used by the buildbot "clean" step. +call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64 +cd PCbuild +@echo Deleting .pyc/.pyo files ... +del /s Lib\*.pyc Lib\*.pyo +vcbuild /clean pcbuild.sln "Release|x64" +vcbuild /clean pcbuild.sln "Debug|x64" diff --git a/Tools/buildbot/clean.bat b/Tools/buildbot/clean.bat index 0d4d12e..ec71804 100644 --- a/Tools/buildbot/clean.bat +++ b/Tools/buildbot/clean.bat @@ -1,7 +1,7 @@ -@rem Used by the buildbot "clean" step. -call "%VS90COMNTOOLS%vsvars32.bat" -@echo Deleting .pyc/.pyo files ... -del /s Lib\*.pyc Lib\*.pyo -cd PCbuild -vcbuild /clean pcbuild.sln "Release|Win32" -vcbuild /clean pcbuild.sln "Debug|Win32" +@rem Used by the buildbot "clean" step. +call "%VS90COMNTOOLS%vsvars32.bat" +@echo Deleting .pyc/.pyo files ... +del /s Lib\*.pyc Lib\*.pyo +cd PCbuild +vcbuild /clean pcbuild.sln "Release|Win32" +vcbuild /clean pcbuild.sln "Debug|Win32" diff --git a/Tools/buildbot/external-amd64.bat b/Tools/buildbot/external-amd64.bat index 902e37a..e9c7011 100644 --- a/Tools/buildbot/external-amd64.bat +++ b/Tools/buildbot/external-amd64.bat @@ -1,20 +1,20 @@ -@rem Fetches (and builds if necessary) external dependencies - -@rem Assume we start inside the Python source directory -call "Tools\buildbot\external-common.bat" -call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64 - -if not exist tcltk64\bin\tcl85g.dll ( - cd tcl-8.5.2.1\win - nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 clean all - nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 install - cd ..\.. -) - -if not exist tcltk64\bin\tk85g.dll ( - cd tk-8.5.2.0\win - nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.2.1 clean - nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.2.1 all - nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.2.1 install - cd ..\.. -) +@rem Fetches (and builds if necessary) external dependencies + +@rem Assume we start inside the Python source directory +call "Tools\buildbot\external-common.bat" +call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64 + +if not exist tcltk64\bin\tcl85g.dll ( + cd tcl-8.5.2.1\win + nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 clean all + nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 install + cd ..\.. +) + +if not exist tcltk64\bin\tk85g.dll ( + cd tk-8.5.2.0\win + nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.2.1 clean + nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.2.1 all + nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.2.1 install + cd ..\.. +) diff --git a/Tools/buildbot/external-common.bat b/Tools/buildbot/external-common.bat index 839a4cd..c67efdf 100644 --- a/Tools/buildbot/external-common.bat +++ b/Tools/buildbot/external-common.bat @@ -1,45 +1,45 @@ -@rem Common file shared between external.bat and external-amd64.bat. Responsible for -@rem fetching external components into the root\.. buildbot directories. - -cd .. -@rem XXX: If you need to force the buildbots to start from a fresh environment, uncomment -@rem the following, check it in, then check it out, comment it out, then check it back in. -@rem if exist bzip2-1.0.5 rd /s/q bzip2-1.0.5 -@rem if exist tcltk rd /s/q tcltk -@rem if exist tcltk64 rd /s/q tcltk64 -@rem if exist tcl8.4.12 rd /s/q tcl8.4.12 -@rem if exist tcl8.4.16 rd /s/q tcl8.4.16 -@rem if exist tcl-8.4.18.1 rd /s/q tcl-8.4.18.1 -@rem if exist tk8.4.12 rd /s/q tk8.4.12 -@rem if exist tk8.4.16 rd /s/q tk8.4.16 -@rem if exist tk-8.4.18.1 rd /s/q tk-8.4.18.1 -@rem if exist db-4.4.20 rd /s/q db-4.4.20 -@rem if exist db-4.7.25.0 rd /s/q db-4.7.25.0 -@rem if exist openssl-0.9.8l rd /s/q openssl-0.9.8l -@rem if exist sqlite-3.5.9 rd /s/q sqlite-3.5.9 - -@rem bzip -if not exist bzip2-1.0.5 ( - rd /s/q bzip2-1.0.3 - svn export http://svn.python.org/projects/external/bzip2-1.0.5 -) - -@rem Berkeley DB -if exist db-4.4.20 rd /s/q db-4.4.20 -if not exist db-4.7.25.0 svn export http://svn.python.org/projects/external/db-4.7.25.0 - -@rem OpenSSL -if not exist openssl-0.9.8l svn export http://svn.python.org/projects/external/openssl-0.9.8l - -@rem tcl/tk -if not exist tcl-8.5.2.1 ( - rd /s/q tcltk tcltk64 - svn export http://svn.python.org/projects/external/tcl-8.5.2.1 -) -if not exist tk-8.5.2.0 svn export http://svn.python.org/projects/external/tk-8.5.2.0 - -@rem sqlite3 -if not exist sqlite-3.5.9 ( - rd /s/q sqlite-source-3.3.4 - svn export http://svn.python.org/projects/external/sqlite-3.5.9 -) +@rem Common file shared between external.bat and external-amd64.bat. Responsible for +@rem fetching external components into the root\.. buildbot directories. + +cd .. +@rem XXX: If you need to force the buildbots to start from a fresh environment, uncomment +@rem the following, check it in, then check it out, comment it out, then check it back in. +@rem if exist bzip2-1.0.5 rd /s/q bzip2-1.0.5 +@rem if exist tcltk rd /s/q tcltk +@rem if exist tcltk64 rd /s/q tcltk64 +@rem if exist tcl8.4.12 rd /s/q tcl8.4.12 +@rem if exist tcl8.4.16 rd /s/q tcl8.4.16 +@rem if exist tcl-8.4.18.1 rd /s/q tcl-8.4.18.1 +@rem if exist tk8.4.12 rd /s/q tk8.4.12 +@rem if exist tk8.4.16 rd /s/q tk8.4.16 +@rem if exist tk-8.4.18.1 rd /s/q tk-8.4.18.1 +@rem if exist db-4.4.20 rd /s/q db-4.4.20 +@rem if exist db-4.7.25.0 rd /s/q db-4.7.25.0 +@rem if exist openssl-0.9.8l rd /s/q openssl-0.9.8l +@rem if exist sqlite-3.5.9 rd /s/q sqlite-3.5.9 + +@rem bzip +if not exist bzip2-1.0.5 ( + rd /s/q bzip2-1.0.3 + svn export http://svn.python.org/projects/external/bzip2-1.0.5 +) + +@rem Berkeley DB +if exist db-4.4.20 rd /s/q db-4.4.20 +if not exist db-4.7.25.0 svn export http://svn.python.org/projects/external/db-4.7.25.0 + +@rem OpenSSL +if not exist openssl-0.9.8l svn export http://svn.python.org/projects/external/openssl-0.9.8l + +@rem tcl/tk +if not exist tcl-8.5.2.1 ( + rd /s/q tcltk tcltk64 + svn export http://svn.python.org/projects/external/tcl-8.5.2.1 +) +if not exist tk-8.5.2.0 svn export http://svn.python.org/projects/external/tk-8.5.2.0 + +@rem sqlite3 +if not exist sqlite-3.5.9 ( + rd /s/q sqlite-source-3.3.4 + svn export http://svn.python.org/projects/external/sqlite-3.5.9 +) diff --git a/Tools/buildbot/external.bat b/Tools/buildbot/external.bat index d6b18ae..d90e8ce 100644 --- a/Tools/buildbot/external.bat +++ b/Tools/buildbot/external.bat @@ -1,21 +1,21 @@ -@rem Fetches (and builds if necessary) external dependencies - -@rem Assume we start inside the Python source directory -call "Tools\buildbot\external-common.bat" -call "%VS90COMNTOOLS%\vsvars32.bat" - -if not exist tcltk\bin\tcl85g.dll ( - @rem all and install need to be separate invocations, otherwise nmakehlp is not found on install - cd tcl-8.5.2.1\win - nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk clean all - nmake -f makefile.vc DEBUG=1 INSTALLDIR=..\..\tcltk install - cd ..\.. -) - -if not exist tcltk\bin\tk85g.dll ( - cd tk-8.5.2.0\win - nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 clean - nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 all - nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 install - cd ..\.. -) +@rem Fetches (and builds if necessary) external dependencies + +@rem Assume we start inside the Python source directory +call "Tools\buildbot\external-common.bat" +call "%VS90COMNTOOLS%\vsvars32.bat" + +if not exist tcltk\bin\tcl85g.dll ( + @rem all and install need to be separate invocations, otherwise nmakehlp is not found on install + cd tcl-8.5.2.1\win + nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk clean all + nmake -f makefile.vc DEBUG=1 INSTALLDIR=..\..\tcltk install + cd ..\.. +) + +if not exist tcltk\bin\tk85g.dll ( + cd tk-8.5.2.0\win + nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 clean + nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 all + nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 install + cd ..\.. +) diff --git a/Tools/buildbot/test-amd64.bat b/Tools/buildbot/test-amd64.bat index 6124b51..d178c92 100644 --- a/Tools/buildbot/test-amd64.bat +++ b/Tools/buildbot/test-amd64.bat @@ -1,3 +1,3 @@ -@rem Used by the buildbot "test" step. -cd PCbuild -call rt.bat -q -d -x64 -uall -rw +@rem Used by the buildbot "test" step. +cd PCbuild +call rt.bat -q -d -x64 -uall -rw diff --git a/Tools/buildbot/test.bat b/Tools/buildbot/test.bat index 3764b43..c8b1937 100644 --- a/Tools/buildbot/test.bat +++ b/Tools/buildbot/test.bat @@ -1,3 +1,3 @@ -@rem Used by the buildbot "test" step. -cd PCbuild -call rt.bat -d -q -uall -rw +@rem Used by the buildbot "test" step. +cd PCbuild +call rt.bat -d -q -uall -rw diff --git a/Tools/msi/merge.py b/Tools/msi/merge.py index def3964..85de209 100644 --- a/Tools/msi/merge.py +++ b/Tools/msi/merge.py @@ -1,84 +1,84 @@ -import msilib,os,win32com,tempfile,sys -PCBUILD="PCBuild" -certname = None -from config import * - -Win64 = "amd64" in PCBUILD - -mod_dir = os.path.join(os.environ["ProgramFiles"], "Common Files", "Merge Modules") -msi = None -if len(sys.argv)==2: - msi = sys.argv[1] -if Win64: - modules = ["Microsoft_VC90_CRT_x86_x64.msm", "policy_9_0_Microsoft_VC90_CRT_x86_x64.msm"] - if not msi: msi = "python-%s.amd64.msi" % full_current_version -else: - modules = ["Microsoft_VC90_CRT_x86.msm","policy_9_0_Microsoft_VC90_CRT_x86.msm"] - if not msi: msi = "python-%s.msi" % full_current_version -for i, n in enumerate(modules): - modules[i] = os.path.join(mod_dir, n) - -def merge(msi, feature, rootdir, modules): - cab_and_filecount = [] - # Step 1: Merge databases, extract cabfiles - m = msilib.MakeMerge2() - m.OpenLog("merge.log") - print "Opened Log" - m.OpenDatabase(msi) - print "Opened DB" - for module in modules: - print module - m.OpenModule(module,0) - print "Opened Module",module - m.Merge(feature, rootdir) - print "Errors:" - for e in m.Errors: - print e.Type, e.ModuleTable, e.DatabaseTable - print " Modkeys:", - for s in e.ModuleKeys: print s, - print - print " DBKeys:", - for s in e.DatabaseKeys: print s, - print - cabname = tempfile.mktemp(suffix=".cab") - m.ExtractCAB(cabname) - cab_and_filecount.append((cabname, len(m.ModuleFiles))) - m.CloseModule() - m.CloseDatabase(True) - m.CloseLog() - - # Step 2: Add CAB files - i = msilib.MakeInstaller() - db = i.OpenDatabase(msi, win32com.client.constants.msiOpenDatabaseModeTransact) - - v = db.OpenView("SELECT LastSequence FROM Media") - v.Execute(None) - maxmedia = -1 - while 1: - r = v.Fetch() - if not r: break - seq = r.IntegerData(1) - if seq > maxmedia: - maxmedia = seq - print "Start of Media", maxmedia - - for cabname, count in cab_and_filecount: - stream = "merged%d" % maxmedia - msilib.add_data(db, "Media", - [(maxmedia+1, maxmedia+count, None, "#"+stream, None, None)]) - msilib.add_stream(db, stream, cabname) - os.unlink(cabname) - maxmedia += count - # The merge module sets ALLUSERS to 1 in the property table. - # This is undesired; delete that - v = db.OpenView("DELETE FROM Property WHERE Property='ALLUSERS'") - v.Execute(None) - v.Close() - db.Commit() - -merge(msi, "SharedCRT", "TARGETDIR", modules) - -# certname (from config.py) should be (a substring of) -# the certificate subject, e.g. "Python Software Foundation" -if certname: - os.system('signtool sign /n "%s" /t http://timestamp.verisign.com/scripts/timestamp.dll %s' % (certname, msi)) +import msilib,os,win32com,tempfile,sys +PCBUILD="PCBuild" +certname = None +from config import * + +Win64 = "amd64" in PCBUILD + +mod_dir = os.path.join(os.environ["ProgramFiles"], "Common Files", "Merge Modules") +msi = None +if len(sys.argv)==2: + msi = sys.argv[1] +if Win64: + modules = ["Microsoft_VC90_CRT_x86_x64.msm", "policy_9_0_Microsoft_VC90_CRT_x86_x64.msm"] + if not msi: msi = "python-%s.amd64.msi" % full_current_version +else: + modules = ["Microsoft_VC90_CRT_x86.msm","policy_9_0_Microsoft_VC90_CRT_x86.msm"] + if not msi: msi = "python-%s.msi" % full_current_version +for i, n in enumerate(modules): + modules[i] = os.path.join(mod_dir, n) + +def merge(msi, feature, rootdir, modules): + cab_and_filecount = [] + # Step 1: Merge databases, extract cabfiles + m = msilib.MakeMerge2() + m.OpenLog("merge.log") + print "Opened Log" + m.OpenDatabase(msi) + print "Opened DB" + for module in modules: + print module + m.OpenModule(module,0) + print "Opened Module",module + m.Merge(feature, rootdir) + print "Errors:" + for e in m.Errors: + print e.Type, e.ModuleTable, e.DatabaseTable + print " Modkeys:", + for s in e.ModuleKeys: print s, + print + print " DBKeys:", + for s in e.DatabaseKeys: print s, + print + cabname = tempfile.mktemp(suffix=".cab") + m.ExtractCAB(cabname) + cab_and_filecount.append((cabname, len(m.ModuleFiles))) + m.CloseModule() + m.CloseDatabase(True) + m.CloseLog() + + # Step 2: Add CAB files + i = msilib.MakeInstaller() + db = i.OpenDatabase(msi, win32com.client.constants.msiOpenDatabaseModeTransact) + + v = db.OpenView("SELECT LastSequence FROM Media") + v.Execute(None) + maxmedia = -1 + while 1: + r = v.Fetch() + if not r: break + seq = r.IntegerData(1) + if seq > maxmedia: + maxmedia = seq + print "Start of Media", maxmedia + + for cabname, count in cab_and_filecount: + stream = "merged%d" % maxmedia + msilib.add_data(db, "Media", + [(maxmedia+1, maxmedia+count, None, "#"+stream, None, None)]) + msilib.add_stream(db, stream, cabname) + os.unlink(cabname) + maxmedia += count + # The merge module sets ALLUSERS to 1 in the property table. + # This is undesired; delete that + v = db.OpenView("DELETE FROM Property WHERE Property='ALLUSERS'") + v.Execute(None) + v.Close() + db.Commit() + +merge(msi, "SharedCRT", "TARGETDIR", modules) + +# certname (from config.py) should be (a substring of) +# the certificate subject, e.g. "Python Software Foundation" +if certname: + os.system('signtool sign /n "%s" /t http://timestamp.verisign.com/scripts/timestamp.dll %s' % (certname, msi)) -- cgit v0.12