diff --git a/Include/structmember.h b/Include/structmember.h index 5b68213c65e..589c47cd9a4 100644 --- a/Include/structmember.h +++ b/Include/structmember.h @@ -77,8 +77,8 @@ typedef struct PyMemberDef { #define READONLY 1 #define RO READONLY /* Shorthand */ #define READ_RESTRICTED 2 -#define WRITE_RESTRICTED 4 -#define RESTRICTED (READ_RESTRICTED | WRITE_RESTRICTED) +#define PY_WRITE_RESTRICTED 4 +#define RESTRICTED (READ_RESTRICTED | PY_WRITE_RESTRICTED) /* Obsolete API, for binary backwards compatibility */ diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index 0a71a508743..5815ecf6f2d 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -297,9 +297,11 @@ int h_errno; /* not used */ #endif #ifndef HAVE_INET_PTON +#if !defined(NTDDI_VERSION) || (NTDDI_VERSION < NTDDI_LONGHORN) int inet_pton(int af, const char *src, void *dst); const char *inet_ntop(int af, const void *src, char *dst, socklen_t size); #endif +#endif #ifdef __APPLE__ /* On OS X, getaddrinfo returns no error indication of lookup @@ -5039,6 +5041,7 @@ init_socket(void) #ifndef HAVE_INET_PTON +#if !defined(NTDDI_VERSION) || (NTDDI_VERSION < NTDDI_LONGHORN) /* Simplistic emulation code for inet_pton that only works for IPv4 */ /* These are not exposed because they do not set errno properly */ @@ -5074,3 +5077,4 @@ inet_ntop(int af, const void *src, char *dst, socklen_t size) } #endif +#endif diff --git a/Objects/funcobject.c b/Objects/funcobject.c index 913c8c509bc..3efe8dd9e47 100644 --- a/Objects/funcobject.c +++ b/Objects/funcobject.c @@ -163,13 +163,13 @@ static PyMemberDef func_memberlist[] = { RESTRICTED|READONLY}, {"__closure__", T_OBJECT, OFF(func_closure), RESTRICTED|READONLY}, - {"func_doc", T_OBJECT, OFF(func_doc), WRITE_RESTRICTED}, - {"__doc__", T_OBJECT, OFF(func_doc), WRITE_RESTRICTED}, + {"func_doc", T_OBJECT, OFF(func_doc), PY_WRITE_RESTRICTED}, + {"__doc__", T_OBJECT, OFF(func_doc), PY_WRITE_RESTRICTED}, {"func_globals", T_OBJECT, OFF(func_globals), RESTRICTED|READONLY}, {"__globals__", T_OBJECT, OFF(func_globals), RESTRICTED|READONLY}, - {"__module__", T_OBJECT, OFF(func_module), WRITE_RESTRICTED}, + {"__module__", T_OBJECT, OFF(func_module), PY_WRITE_RESTRICTED}, {NULL} /* Sentinel */ }; diff --git a/Objects/methodobject.c b/Objects/methodobject.c index 00d3cfa14b4..3daa9dd70df 100644 --- a/Objects/methodobject.c +++ b/Objects/methodobject.c @@ -180,7 +180,7 @@ static PyGetSetDef meth_getsets [] = { #define OFF(x) offsetof(PyCFunctionObject, x) static PyMemberDef meth_members[] = { - {"__module__", T_OBJECT, OFF(m_module), WRITE_RESTRICTED}, + {"__module__", T_OBJECT, OFF(m_module), PY_WRITE_RESTRICTED}, {NULL} }; diff --git a/PCbuild9/Uninstal.wse b/PCbuild9/Uninstal.wse new file mode 100644 index 00000000000..216dd30c350 --- /dev/null +++ b/PCbuild9/Uninstal.wse @@ -0,0 +1,514 @@ +Document Type: WSE +item: Global + Version=8.14 + Flags=00000100 + Split=1420 + Languages=65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + Copy Default=1 + Japanese Font Name=MS Gothic + Japanese Font Size=10 + Start Gradient=0 0 255 + End Gradient=0 0 0 + Windows Flags=00000000000000000000101000001000 + Message Font=MS Sans Serif + Font Size=8 + Disk Label=GLBS + Disk Filename=INSTALL + Patch Flags=0000000000000001 + Patch Threshold=200 + Patch Memory=4096 + Per-User Version ID=1 + Crystal Format=10111100101100000010001001001001 + Step View=&Properties +end +item: Remark + Text=Note from Tim: This is a verbatim copy of Wise's Uninstal.wse, altered at the end to write +end +item: Remark + Text=uninstall info under HKCU instead of HKLM if our DOADMIN var is false. +end +item: Remark +end +item: Remark + Text= Install Support for uninstalling the application. +end +item: Remark +end +item: Set Variable + Variable=UNINSTALL_PATH + Value=%_LOGFILE_PATH_% + Flags=00000010 +end +item: Set Variable + Variable=UNINSTALL_PATH + Value=%UNINSTALL_PATH%\UNWISE.EXE +end +item: Compiler Variable If + Variable=_EXE_OS_TYPE_ + Value=WIN32 +end +item: Install File + Source=%_WISE_%\UNWISE32.EXE + Destination=%UNINSTALL_PATH% + Flags=0000000000000010 +end +item: Compiler Variable Else +end +item: Install File + Source=%_WISE_%\UNWISE.EXE + Destination=%UNINSTALL_PATH% + Flags=0000000000000010 +end +item: Compiler Variable End +end +item: Remark +end +item: Remark + Text= Install Support for multiple languages +end +item: Remark +end +item: Set Variable + Variable=UNINSTALL_LANG + Value=%UNINSTALL_PATH% + Flags=00000010 +end +item: Set Variable + Variable=UNINSTALL_LANG + Value=%UNINSTALL_LANG%\UNWISE.INI +end +item: Compiler Variable If + Variable=_LANG_LIST_ + Value=C + Flags=00000010 +end +item: Compiler Variable If + Value=%_WISE_%\LANGUAGE\UNWISE.FRA + Flags=00000011 +end +item: If/While Statement + Variable=LANG + Value=%_LANG_C_NAME_% +end +item: Install File + Source=%_WISE_%\LANGUAGE\UNWISE.FRA + Destination=%UNINSTALL_LANG% + Flags=0000000000000010 +end +item: End Block +end +item: Compiler Variable End +end +item: Compiler Variable End +end +item: Compiler Variable If + Variable=_LANG_LIST_ + Value=D + Flags=00000010 +end +item: Compiler Variable If + Value=%_WISE_%\LANGUAGE\UNWISE.FRA + Flags=00000011 +end +item: If/While Statement + Variable=LANG + Value=%_LANG_D_NAME_% +end +item: Install File + Source=%_WISE_%\LANGUAGE\UNWISE.FRA + Destination=%UNINSTALL_LANG% + Flags=0000000000000010 +end +item: End Block +end +item: Compiler Variable End +end +item: Compiler Variable End +end +item: Compiler Variable If + Variable=_LANG_LIST_ + Value=E + Flags=00000010 +end +item: Compiler Variable If + Value=%_WISE_%\LANGUAGE\UNWISE.DEU + Flags=00000011 +end +item: If/While Statement + Variable=LANG + Value=%_LANG_E_NAME_% +end +item: Install File + Source=%_WISE_%\LANGUAGE\UNWISE.DEU + Destination=%UNINSTALL_LANG% + Flags=0000000000000010 +end +item: End Block +end +item: Compiler Variable End +end +item: Compiler Variable End +end +item: Compiler Variable If + Variable=_LANG_LIST_ + Value=F + Flags=00000010 +end +item: Compiler Variable If + Value=%_WISE_%\LANGUAGE\UNWISE.PTG + Flags=00000011 +end +item: If/While Statement + Variable=LANG + Value=%_LANG_F_NAME_% +end +item: Install File + Source=%_WISE_%\LANGUAGE\UNWISE.PTG + Destination=%UNINSTALL_LANG% + Flags=0000000000000010 +end +item: End Block +end +item: Compiler Variable End +end +item: Compiler Variable End +end +item: Compiler Variable If + Variable=_LANG_LIST_ + Value=G + Flags=00000010 +end +item: Compiler Variable If + Value=%_WISE_%\LANGUAGE\UNWISE.ESP + Flags=00000011 +end +item: If/While Statement + Variable=LANG + Value=%_LANG_G_NAME_% +end +item: Install File + Source=%_WISE_%\LANGUAGE\UNWISE.ESP + Destination=%UNINSTALL_LANG% + Flags=0000000000000010 +end +item: End Block +end +item: Compiler Variable End +end +item: Compiler Variable End +end +item: Compiler Variable If + Variable=_LANG_LIST_ + Value=H + Flags=00000010 +end +item: Compiler Variable If + Value=%_WISE_%\LANGUAGE\UNWISE.ESP + Flags=00000011 +end +item: If/While Statement + Variable=LANG + Value=%_LANG_H_NAME_% +end +item: Install File + Source=%_WISE_%\LANGUAGE\UNWISE.ESP + Destination=%UNINSTALL_LANG% + Flags=0000000000000010 +end +item: End Block +end +item: Compiler Variable End +end +item: Compiler Variable End +end +item: Compiler Variable If + Variable=_LANG_LIST_ + Value=I + Flags=00000010 +end +item: Compiler Variable If + Value=%_WISE_%\LANGUAGE\UNWISE.ITA + Flags=00000011 +end +item: If/While Statement + Variable=LANG + Value=%_LANG_I_NAME_% +end +item: Install File + Source=%_WISE_%\LANGUAGE\UNWISE.ITA + Destination=%UNINSTALL_LANG% + Flags=0000000000000010 +end +item: End Block +end +item: Compiler Variable End +end +item: Compiler Variable End +end +item: Compiler Variable If + Variable=_LANG_LIST_ + Value=J + Flags=00000010 +end +item: Compiler Variable If + Value=%_WISE_%\LANGUAGE\UNWISE.DAN + Flags=00000011 +end +item: If/While Statement + Variable=LANG + Value=%_LANG_J_NAME_% +end +item: Install File + Source=%_WISE_%\LANGUAGE\UNWISE.DAN + Destination=%UNINSTALL_LANG% + Flags=0000000000000010 +end +item: End Block +end +item: Compiler Variable End +end +item: Compiler Variable End +end +item: Compiler Variable If + Variable=_LANG_LIST_ + Value=K + Flags=00000010 +end +item: Compiler Variable If + Value=%_WISE_%\LANGUAGE\UNWISE.FIN + Flags=00000011 +end +item: If/While Statement + Variable=LANG + Value=%_LANG_K_NAME_% +end +item: Install File + Source=%_WISE_%\LANGUAGE\UNWISE.FIN + Destination=%UNINSTALL_LANG% + Flags=0000000000000010 +end +item: End Block +end +item: Compiler Variable End +end +item: Compiler Variable End +end +item: Compiler Variable If + Variable=_LANG_LIST_ + Value=L + Flags=00000010 +end +item: Compiler Variable If + Value=%_WISE_%\LANGUAGE\UNWISE.ISL + Flags=00000011 +end +item: If/While Statement + Variable=LANG + Value=%_LANG_L_NAME_% +end +item: Install File + Source=%_WISE_%\LANGUAGE\UNWISE.ISL + Destination=%UNINSTALL_LANG% + Flags=0000000000000010 +end +item: End Block +end +item: Compiler Variable End +end +item: Compiler Variable End +end +item: Compiler Variable If + Variable=_LANG_LIST_ + Value=M + Flags=00000010 +end +item: Compiler Variable If + Value=%_WISE_%\LANGUAGE\UNWISE.NLD + Flags=00000011 +end +item: If/While Statement + Variable=LANG + Value=%_LANG_M_NAME_% +end +item: Install File + Source=%_WISE_%\LANGUAGE\UNWISE.NLD + Destination=%UNINSTALL_LANG% + Flags=0000000000000010 +end +item: End Block +end +item: Compiler Variable End +end +item: Compiler Variable End +end +item: Compiler Variable If + Variable=_LANG_LIST_ + Value=N + Flags=00000010 +end +item: Compiler Variable If + Value=%_WISE_%\LANGUAGE\UNWISE.NOR + Flags=00000011 +end +item: If/While Statement + Variable=LANG + Value=%_LANG_N_NAME_% +end +item: Install File + Source=%_WISE_%\LANGUAGE\UNWISE.NOR + Destination=%UNINSTALL_LANG% + Flags=0000000000000010 +end +item: End Block +end +item: Compiler Variable End +end +item: Compiler Variable End +end +item: Compiler Variable If + Variable=_LANG_LIST_ + Value=O + Flags=00000010 +end +item: Compiler Variable If + Value=%_WISE_%\LANGUAGE\UNWISE.SVE + Flags=00000011 +end +item: If/While Statement + Variable=LANG + Value=%_LANG_O_NAME_% +end +item: Install File + Source=%_WISE_%\LANGUAGE\UNWISE.SVE + Destination=%UNINSTALL_LANG% + Flags=0000000000000010 +end +item: End Block +end +item: Compiler Variable End +end +item: Compiler Variable End +end +item: Compiler Variable If + Variable=_LANG_LIST_ + Value=P + Flags=00000010 +end +item: Compiler Variable If + Value=%_WISE_%\LANGUAGE\UNWISE.JPN + Flags=00000011 +end +item: If/While Statement + Variable=LANG + Value=%_LANG_P_NAME_% +end +item: Install File + Source=%_WISE_%\LANGUAGE\UNWISE.JPN + Destination=%UNINSTALL_LANG% + Flags=0000000000000010 +end +item: End Block +end +item: Compiler Variable End +end +item: Compiler Variable End +end +item: Remark +end +item: Remark + Text= Install the add/remove or uninstall icon +end +item: Remark +end +item: Set Variable + Variable=UNINSTALL_PATH + Value=%UNINSTALL_PATH% + Flags=00010100 +end +item: Set Variable + Variable=INST_LOG_PATH + Value=%_LOGFILE_PATH_% + Flags=00010100 +end +item: Check Configuration + Flags=10111011 +end +item: If/While Statement + Variable=DOADMIN + Value=1 +end +item: Remark + Text=Write uninstall info under HKLM. This if/else/end block added by Tim. +end +item: Edit Registry + Total Keys=1 + Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% + New Value=%APPTITLE% + Value Name=DisplayName + Root=2 +end +item: Edit Registry + Total Keys=1 + Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% + New Value=%UNINSTALL_PATH% %INST_LOG_PATH% + New Value= + Value Name=UninstallString + Root=2 +end +item: Else Statement +end +item: Remark + Text=The same, but write under HKCU instead. +end +item: Edit Registry + Total Keys=1 + Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% + New Value=%APPTITLE% + Value Name=DisplayName + Root=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% + New Value=%UNINSTALL_PATH% %INST_LOG_PATH% + New Value= + Value Name=UninstallString + Root=1 +end +item: End Block +end +item: Else Statement +end +item: Add ProgMan Icon + Group=%GROUP% + Icon Name=Uninstall %APPTITLE% + Command Line=%UNINSTALL_PATH% %INST_LOG_PATH% +end +item: End Block +end +item: Check Configuration + Flags=11110010 +end +item: If/While Statement + Variable=DOBRAND + Value=1 +end +item: Edit Registry + Total Keys=2 + item: Key + Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% + New Value=%COMPANY% + Value Name=RegCompany + Root=2 + end + item: Key + Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% + New Value=%NAME% + Value Name=RegOwner + Root=2 + end +end +item: End Block +end +item: End Block +end diff --git a/PCbuild9/_bsddb.rc b/PCbuild9/_bsddb.rc new file mode 100644 index 00000000000..2de179fdf59 --- /dev/null +++ b/PCbuild9/_bsddb.rc @@ -0,0 +1,61 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE 7, 1 +#pragma code_page(1252) + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/PCbuild9/_bsddb.vcproj b/PCbuild9/_bsddb.vcproj new file mode 100644 index 00000000000..205a1788d80 --- /dev/null +++ b/PCbuild9/_bsddb.vcproj @@ -0,0 +1,553 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/_ctypes.vcproj b/PCbuild9/_ctypes.vcproj new file mode 100644 index 00000000000..f923ca0d5c3 --- /dev/null +++ b/PCbuild9/_ctypes.vcproj @@ -0,0 +1,704 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/_ctypes_test.vcproj b/PCbuild9/_ctypes_test.vcproj new file mode 100644 index 00000000000..156c10c8453 --- /dev/null +++ b/PCbuild9/_ctypes_test.vcproj @@ -0,0 +1,521 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/_elementtree.vcproj b/PCbuild9/_elementtree.vcproj new file mode 100644 index 00000000000..c22c252014c --- /dev/null +++ b/PCbuild9/_elementtree.vcproj @@ -0,0 +1,621 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/_msi.vcproj b/PCbuild9/_msi.vcproj new file mode 100644 index 00000000000..2d925996590 --- /dev/null +++ b/PCbuild9/_msi.vcproj @@ -0,0 +1,529 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/_socket.vcproj b/PCbuild9/_socket.vcproj new file mode 100644 index 00000000000..6ef540788ee --- /dev/null +++ b/PCbuild9/_socket.vcproj @@ -0,0 +1,537 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/_sqlite3.vcproj b/PCbuild9/_sqlite3.vcproj new file mode 100644 index 00000000000..7711c68451c --- /dev/null +++ b/PCbuild9/_sqlite3.vcproj @@ -0,0 +1,629 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/_ssl.vcproj b/PCbuild9/_ssl.vcproj new file mode 100644 index 00000000000..de329956c92 --- /dev/null +++ b/PCbuild9/_ssl.vcproj @@ -0,0 +1,549 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/_testcapi.vcproj b/PCbuild9/_testcapi.vcproj new file mode 100644 index 00000000000..8ef456a58db --- /dev/null +++ b/PCbuild9/_testcapi.vcproj @@ -0,0 +1,521 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/_tkinter.vcproj b/PCbuild9/_tkinter.vcproj new file mode 100644 index 00000000000..1d7f99def40 --- /dev/null +++ b/PCbuild9/_tkinter.vcproj @@ -0,0 +1,541 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/build.bat b/PCbuild9/build.bat new file mode 100644 index 00000000000..9bc818676fe --- /dev/null +++ b/PCbuild9/build.bat @@ -0,0 +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% diff --git a/PCbuild9/build_env.bat b/PCbuild9/build_env.bat new file mode 100644 index 00000000000..4c67ae3ac25 --- /dev/null +++ b/PCbuild9/build_env.bat @@ -0,0 +1 @@ +@%comspec% /k env.bat %* diff --git a/PCbuild9/build_pgo.bat b/PCbuild9/build_pgo.bat new file mode 100644 index 00000000000..0c0a473b2c4 --- /dev/null +++ b/PCbuild9/build_pgo.bat @@ -0,0 +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 + diff --git a/PCbuild9/build_ssl.bat b/PCbuild9/build_ssl.bat new file mode 100644 index 00000000000..ba144463cbe --- /dev/null +++ b/PCbuild9/build_ssl.bat @@ -0,0 +1,12 @@ +@echo off +if not defined HOST_PYTHON ( + if %1 EQU Debug ( + set HOST_PYTHON=python_d.exe + if not exist python30_d.dll exit 1 + ) ELSE ( + set HOST_PYTHON=python.exe + if not exist python30.dll exit 1 + ) +) +%HOST_PYTHON% build_ssl.py %1 %2 %3 + diff --git a/PCbuild9/build_ssl.py b/PCbuild9/build_ssl.py new file mode 100644 index 00000000000..68e26d9b074 --- /dev/null +++ b/PCbuild9/build_ssl.py @@ -0,0 +1,198 @@ +# Script for building the _ssl and _hashlib modules for Windows. +# Uses Perl to setup the OpenSSL environment correctly +# and build OpenSSL, then invokes a simple nmake session +# for the actual _ssl.pyd and _hashlib.pyd DLLs. + +# THEORETICALLY, you can: +# * Unpack the latest SSL release one level above your main Python source +# directory. It is likely you will already find the zlib library and +# any other external packages there. +# * Install ActivePerl and ensure it is somewhere on your path. +# * Run this script from the PCBuild directory. +# +# it should configure and build SSL, then build the _ssl and _hashlib +# Python extensions without intervention. + +import os, sys, re, shutil + +# Find all "foo.exe" files on the PATH. +def find_all_on_path(filename, extras = None): + entries = os.environ["PATH"].split(os.pathsep) + ret = [] + for p in entries: + fname = os.path.abspath(os.path.join(p, filename)) + if os.path.isfile(fname) and fname not in ret: + ret.append(fname) + if extras: + for p in extras: + fname = os.path.abspath(os.path.join(p, filename)) + if os.path.isfile(fname) and fname not in ret: + ret.append(fname) + return ret + +# Find a suitable Perl installation for OpenSSL. +# cygwin perl does *not* work. ActivePerl does. +# Being a Perl dummy, the simplest way I can check is if the "Win32" package +# is available. +def find_working_perl(perls): + for perl in perls: + fh = os.popen(perl + ' -e "use Win32;"') + fh.read() + rc = fh.close() + if rc: + continue + return perl + print("Can not find a suitable PERL:") + if perls: + print(" the following perl interpreters were found:") + for p in perls: + print(" ", p) + print(" None of these versions appear suitable for building OpenSSL") + else: + print(" NO perl interpreters were found on this machine at all!") + print(" Please install ActivePerl and ensure it appears on your path") + print("The Python SSL module was not built") + return None + +# Locate the best SSL directory given a few roots to look into. +def find_best_ssl_dir(sources): + candidates = [] + for s in sources: + try: + # note: do not abspath s; the build will fail if any + # higher up directory name has spaces in it. + fnames = os.listdir(s) + except os.error: + fnames = [] + for fname in fnames: + fqn = os.path.join(s, fname) + if os.path.isdir(fqn) and fname.startswith("openssl-"): + candidates.append(fqn) + # Now we have all the candidates, locate the best. + best_parts = [] + best_name = None + for c in candidates: + parts = re.split("[.-]", os.path.basename(c))[1:] + # eg - openssl-0.9.7-beta1 - ignore all "beta" or any other qualifiers + if len(parts) >= 4: + continue + if parts > best_parts: + best_parts = parts + best_name = c + if best_name is not None: + print("Found an SSL directory at '%s'" % (best_name,)) + else: + print("Could not find an SSL directory in '%s'" % (sources,)) + sys.stdout.flush() + return best_name + +def fix_makefile(makefile, m32): + """Fix makefile for 64bit + + Replace 32 with 64bit directories + """ + if not os.path.isfile(m32): + return + with open(m32) as fin: + with open(makefile, 'w') as fout: + for line in fin: + line = line.replace("=tmp32", "=tmp64") + line = line.replace("=out32", "=out64") + line = line.replace("=inc32", "=inc64") + # force 64 bit machine + line = line.replace("MKLIB=lib", "MKLIB=lib /MACHINE:X64") + line = line.replace("LFLAGS=", "LFLAGS=/MACHINE:X64 ") + # don't link against the lib on 64bit systems + line = line.replace("bufferoverflowu.lib", "") + fout.write(line) + os.unlink(m32) + +def run_configure(configure, do_script): + print("perl Configure "+configure) + os.system("perl Configure "+configure) + print(do_script) + os.system(do_script) + +def main(): + build_all = "-a" in sys.argv + if sys.argv[1] == "Release": + debug = False + elif sys.argv[1] == "Debug": + debug = True + else: + raise ValueError(str(sys.argv)) + + if sys.argv[2] == "Win32": + arch = "x86" + configure = "VC-WIN32" + do_script = "ms\\do_nasm" + makefile="ms\\nt.mak" + m32 = makefile + elif sys.argv[2] == "x64": + arch="amd64" + configure = "VC-WIN64A" + do_script = "ms\\do_win64a" + makefile = "ms\\nt64.mak" + m32 = makefile.replace('64', '') + #os.environ["VSEXTCOMP_USECL"] = "MS_OPTERON" + else: + raise ValueError(str(sys.argv)) + + make_flags = "" + if build_all: + make_flags = "-a" + # perl should be on the path, but we also look in "\perl" and "c:\\perl" + # as "well known" locations + perls = find_all_on_path("perl.exe", ["\\perl\\bin", "C:\\perl\\bin"]) + perl = find_working_perl(perls) + if perl is None: + sys.exit(1) + + print("Found a working perl at '%s'" % (perl,)) + sys.stdout.flush() + # Look for SSL 2 levels up from pcbuild - ie, same place zlib etc all live. + ssl_dir = find_best_ssl_dir(("..\\..",)) + if ssl_dir is None: + sys.exit(1) + + old_cd = os.getcwd() + try: + os.chdir(ssl_dir) + # rebuild makefile when we do the role over from 32 to 64 build + if arch == "amd64" and os.path.isfile(m32) and not os.path.isfile(makefile): + os.unlink(m32) + + # If the ssl makefiles do not exist, we invoke Perl to generate them. + # Due to a bug in this script, the makefile sometimes ended up empty + # Force a regeneration if it is. + if not os.path.isfile(makefile) or os.path.getsize(makefile)==0: + print("Creating the makefiles...") + sys.stdout.flush() + # Put our working Perl at the front of our path + os.environ["PATH"] = os.path.dirname(perl) + \ + os.pathsep + \ + os.environ["PATH"] + run_configure(configure, do_script) + if arch=="x86" and debug: + # the do_masm script in openssl doesn't generate a debug + # build makefile so we generate it here: + os.system("perl util\mk1mf.pl debug "+configure+" >"+makefile) + + if arch == "amd64": + fix_makefile(makefile, m32) + + # Now run make. + makeCommand = "nmake /nologo PERL=\"%s\" -f \"%s\"" %(perl, makefile) + print("Executing ssl makefiles:", makeCommand) + sys.stdout.flush() + rc = os.system(makeCommand) + if rc: + print("Executing "+makefile+" failed") + print(rc) + sys.exit(rc) + finally: + os.chdir(old_cd) + sys.exit(rc) + +if __name__=='__main__': + main() diff --git a/PCbuild9/bz2.vcproj b/PCbuild9/bz2.vcproj new file mode 100644 index 00000000000..fc7d76f124a --- /dev/null +++ b/PCbuild9/bz2.vcproj @@ -0,0 +1,545 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/env.bat b/PCbuild9/env.bat new file mode 100644 index 00000000000..638b16c1064 --- /dev/null +++ b/PCbuild9/env.bat @@ -0,0 +1,5 @@ +@echo off +set VS9=%ProgramFiles%\Microsoft Visual Studio 9.0 +echo Build environments: x86, ia64, amd64, x86_amd64, x86_ia64 +echo. +call "%VS9%\VC\vcvarsall.bat" %1 diff --git a/PCbuild9/field3.py b/PCbuild9/field3.py new file mode 100644 index 00000000000..edcbe36ae08 --- /dev/null +++ b/PCbuild9/field3.py @@ -0,0 +1,35 @@ +# An absurd workaround for the lack of arithmetic in MS's resource compiler. +# After building Python, run this, then paste the output into the appropriate +# part of PC\python_nt.rc. +# Example output: +# +# * For 2.3a0, +# * PY_MICRO_VERSION = 0 +# * PY_RELEASE_LEVEL = 'alpha' = 0xA +# * PY_RELEASE_SERIAL = 1 +# * +# * and 0*1000 + 10*10 + 1 = 101. +# */ +# #define FIELD3 101 + +import sys + +major, minor, micro, level, serial = sys.version_info +levelnum = {'alpha': 0xA, + 'beta': 0xB, + 'candidate': 0xC, + 'final': 0xF, + }[level] +string = sys.version.split()[0] # like '2.3a0' + +print(" * For %s," % string) +print(" * PY_MICRO_VERSION = %d" % micro) +print(" * PY_RELEASE_LEVEL = %r = %s" % (level, hex(levelnum))) +print(" * PY_RELEASE_SERIAL = %d" % serial) +print(" *") + +field3 = micro * 1000 + levelnum * 10 + serial + +print(" * and %d*1000 + %d*10 + %d = %d" % (micro, levelnum, serial, field3)) +print(" */") +print("#define FIELD3", field3) diff --git a/PCbuild9/installer.bmp b/PCbuild9/installer.bmp new file mode 100644 index 00000000000..1875e194ba2 Binary files /dev/null and b/PCbuild9/installer.bmp differ diff --git a/PCbuild9/make_buildinfo.c b/PCbuild9/make_buildinfo.c new file mode 100644 index 00000000000..4cebf45ccd8 --- /dev/null +++ b/PCbuild9/make_buildinfo.c @@ -0,0 +1,92 @@ +#include +#include +#include +#include + +/* This file creates the getbuildinfo.o object, by first + invoking subwcrev.exe (if found), and then invoking cl.exe. + As a side effect, it might generate PCBuild\getbuildinfo2.c + also. If this isn't a subversion checkout, or subwcrev isn't + found, it compiles ..\\Modules\\getbuildinfo.c instead. + + Currently, subwcrev.exe is found from the registry entries + of TortoiseSVN. + + No attempt is made to place getbuildinfo.o into the proper + binary directory. This isn't necessary, as this tool is + invoked as a pre-link step for pythoncore, so that overwrites + any previous getbuildinfo.o. + +*/ + +int make_buildinfo2() +{ + struct _stat st; + HKEY hTortoise; + char command[500]; + DWORD type, size; + if (_stat(".svn", &st) < 0) + return 0; + /* Allow suppression of subwcrev.exe invocation if a no_subwcrev file is present. */ + if (_stat("no_subwcrev", &st) == 0) + return 0; + if (RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\TortoiseSVN", &hTortoise) != ERROR_SUCCESS && + RegOpenKey(HKEY_CURRENT_USER, "Software\\TortoiseSVN", &hTortoise) != ERROR_SUCCESS) + /* Tortoise not installed */ + return 0; + command[0] = '"'; /* quote the path to the executable */ + size = sizeof(command) - 1; + if (RegQueryValueEx(hTortoise, "Directory", 0, &type, command+1, &size) != ERROR_SUCCESS || + type != REG_SZ) + /* Registry corrupted */ + return 0; + strcat(command, "bin\\subwcrev.exe"); + if (_stat(command+1, &st) < 0) + /* subwcrev.exe not part of the release */ + return 0; + strcat(command, "\" .. ..\\Modules\\getbuildinfo.c getbuildinfo2.c"); + puts(command); fflush(stdout); + if (system(command) < 0) + return 0; + return 1; +} + +int main(int argc, char*argv[]) +{ + char command[500] = "cl.exe -c -D_WIN32 -DUSE_DL_EXPORT -D_WINDOWS -DWIN32 -D_WINDLL "; + int do_unlink, result; + if (argc != 2) { + fprintf(stderr, "make_buildinfo $(ConfigurationName)\n"); + return EXIT_FAILURE; + } + if (strcmp(argv[1], "Release") == 0) { + strcat(command, "-MD "); + } + else if (strcmp(argv[1], "Debug") == 0) { + strcat(command, "-D_DEBUG -MDd "); + } + else if (strcmp(argv[1], "ReleaseItanium") == 0) { + strcat(command, "-MD /USECL:MS_ITANIUM "); + } + else if (strcmp(argv[1], "ReleaseAMD64") == 0) { + strcat(command, "-MD "); + strcat(command, "-MD /USECL:MS_OPTERON "); + } + else { + fprintf(stderr, "unsupported configuration %s\n", argv[1]); + return EXIT_FAILURE; + } + + if ((do_unlink = make_buildinfo2())) + strcat(command, "getbuildinfo2.c -DSUBWCREV "); + else + strcat(command, "..\\Modules\\getbuildinfo.c"); + strcat(command, " -Fogetbuildinfo.o -I..\\Include -I..\\PC"); + puts(command); fflush(stdout); + result = system(command); + if (do_unlink) + unlink("getbuildinfo2.c"); + if (result < 0) + return EXIT_FAILURE; + return 0; +} \ No newline at end of file diff --git a/PCbuild9/make_buildinfo.vcproj b/PCbuild9/make_buildinfo.vcproj new file mode 100644 index 00000000000..8ba5c49a9e2 --- /dev/null +++ b/PCbuild9/make_buildinfo.vcproj @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/make_versioninfo.vcproj b/PCbuild9/make_versioninfo.vcproj new file mode 100644 index 00000000000..61feabb8803 --- /dev/null +++ b/PCbuild9/make_versioninfo.vcproj @@ -0,0 +1,326 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/pcbuild.sln b/PCbuild9/pcbuild.sln new file mode 100644 index 00000000000..1625875dd4b --- /dev/null +++ b/PCbuild9/pcbuild.sln @@ -0,0 +1,461 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_versioninfo", "make_versioninfo.vcproj", "{F0E0541E-F17D-430B-97C4-93ADF0DD284E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "python.vcproj", "{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} = {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore", "pythoncore.vcproj", "{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}" + ProjectSection(ProjectDependencies) = postProject + {F0E0541E-F17D-430B-97C4-93ADF0DD284E} = {F0E0541E-F17D-430B-97C4-93ADF0DD284E} + {C73F0EC1-358B-4177-940F-0846AC8B04CD} = {C73F0EC1-358B-4177-940F-0846AC8B04CD} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythonw", "pythonw.vcproj", "{F4229CC3-873C-49AE-9729-DD308ED4CD4A}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "w9xpopen", "w9xpopen.vcproj", "{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_buildinfo", "make_buildinfo.vcproj", "{C73F0EC1-358B-4177-940F-0846AC8B04CD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{553EC33E-9816-4996-A660-5D6186A0B0B3}" + ProjectSection(SolutionItems) = preProject + ..\Modules\getbuildinfo.c = ..\Modules\getbuildinfo.c + readme.txt = readme.txt + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsound", "winsound.vcproj", "{28B5D777-DDF2-4B6B-B34F-31D938813856}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_bsddb", "_bsddb.vcproj", "{B4D38F3F-68FB-42EC-A45D-E00657BB3627}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes", "_ctypes.vcproj", "{0E9791DB-593A-465F-98BC-681011311618}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes_test", "_ctypes_test.vcproj", "{9EC7190A-249F-4180-A900-548FDCF3055F}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_elementtree", "_elementtree.vcproj", "{17E1E049-C309-4D79-843F-AE483C264AEA}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_msi", "_msi.vcproj", "{31FFC478-7B4A-43E8-9954-8D03E2187E9C}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_socket", "_socket.vcproj", "{86937F53-C189-40EF-8CE8-8759D8E7D480}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_sqlite3", "_sqlite3.vcproj", "{13CECB97-4119-4316-9D42-8534019A5A44}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ssl", "_ssl.vcproj", "{C6E20F84-3247-4AD6-B051-B073268F73BA}" + ProjectSection(ProjectDependencies) = postProject + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} = {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} + {86937F53-C189-40EF-8CE8-8759D8E7D480} = {86937F53-C189-40EF-8CE8-8759D8E7D480} + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testcapi", "_testcapi.vcproj", "{6901D91C-6E48-4BB7-9FEC-700C8131DF1D}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_tkinter", "_tkinter.vcproj", "{4946ECAC-2E69-4BF8-A90A-F5136F5094DF}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bz2", "bz2.vcproj", "{73FCD2BD-F133-46B7-8EC1-144CD82A59D5}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "select", "select.vcproj", "{18CAE28C-B454-46C1-87A0-493D91D97F03}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicodedata", "unicodedata.vcproj", "{ECC7CEAC-A5E5-458E-BB9E-2413CC847881}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyexpat", "pyexpat.vcproj", "{D06B6426-4762-44CC-8BAD-D79052507F2F}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + PGInstrument|Win32 = PGInstrument|Win32 + PGInstrument|x64 = PGInstrument|x64 + PGUpdate|Win32 = PGUpdate|Win32 + PGUpdate|x64 = PGUpdate|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|Win32.ActiveCfg = Debug|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|Win32.Build.0 = Debug|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|x64.ActiveCfg = Debug|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|x64.Build.0 = Debug|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|Win32.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|x64.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|x64.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|Win32.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|x64.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|x64.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|Win32.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|Win32.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|x64.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|x64.Build.0 = Release|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|Win32.ActiveCfg = Debug|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|Win32.Build.0 = Debug|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|x64.ActiveCfg = Debug|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|x64.Build.0 = Debug|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|Win32.ActiveCfg = Release|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|Win32.Build.0 = Release|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|x64.ActiveCfg = Release|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|x64.Build.0 = Release|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|Win32.ActiveCfg = Debug|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|Win32.Build.0 = Debug|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|x64.ActiveCfg = Debug|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|x64.Build.0 = Debug|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|Win32.ActiveCfg = Release|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|Win32.Build.0 = Release|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|x64.ActiveCfg = Release|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|x64.Build.0 = Release|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|Win32.ActiveCfg = Debug|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|Win32.Build.0 = Debug|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|x64.ActiveCfg = Debug|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|x64.Build.0 = Debug|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.ActiveCfg = Release|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.Build.0 = Release|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.ActiveCfg = Release|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.Build.0 = Release|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|Win32.ActiveCfg = Debug|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|Win32.Build.0 = Debug|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|x64.ActiveCfg = Debug|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|x64.Build.0 = Debug|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|Win32.ActiveCfg = Release|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|Win32.Build.0 = Release|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|x64.ActiveCfg = Release|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|x64.Build.0 = Release|x64 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|Win32.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|x64.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|x64.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|Win32.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|x64.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|x64.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|Win32.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|Win32.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|x64.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|x64.Build.0 = Release|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|Win32.ActiveCfg = Debug|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|Win32.Build.0 = Debug|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|x64.ActiveCfg = Debug|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|x64.Build.0 = Debug|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|Win32.ActiveCfg = Release|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|Win32.Build.0 = Release|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|x64.ActiveCfg = Release|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|x64.Build.0 = Release|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|Win32.ActiveCfg = Debug|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|Win32.Build.0 = Debug|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|x64.ActiveCfg = Debug|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|x64.Build.0 = Debug|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|Win32.ActiveCfg = Release|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|Win32.Build.0 = Release|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|x64.ActiveCfg = Release|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|x64.Build.0 = Release|x64 + {0E9791DB-593A-465F-98BC-681011311618}.Debug|Win32.ActiveCfg = Debug|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.Debug|Win32.Build.0 = Debug|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.Debug|x64.ActiveCfg = Debug|x64 + {0E9791DB-593A-465F-98BC-681011311618}.Debug|x64.Build.0 = Debug|x64 + {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {0E9791DB-593A-465F-98BC-681011311618}.Release|Win32.ActiveCfg = Release|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.Release|Win32.Build.0 = Release|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.Release|x64.ActiveCfg = Release|x64 + {0E9791DB-593A-465F-98BC-681011311618}.Release|x64.Build.0 = Release|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|Win32.ActiveCfg = Debug|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|Win32.Build.0 = Debug|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|x64.ActiveCfg = Debug|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|x64.Build.0 = Debug|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|Win32.ActiveCfg = Release|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|Win32.Build.0 = Release|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|x64.ActiveCfg = Release|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|x64.Build.0 = Release|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|Win32.ActiveCfg = Debug|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|Win32.Build.0 = Debug|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|x64.ActiveCfg = Debug|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|x64.Build.0 = Debug|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|Win32.ActiveCfg = Release|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|Win32.Build.0 = Release|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|x64.ActiveCfg = Release|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|x64.Build.0 = Release|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|Win32.ActiveCfg = Debug|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|Win32.Build.0 = Debug|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|x64.ActiveCfg = Debug|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|x64.Build.0 = Debug|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|Win32.ActiveCfg = Release|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|Win32.Build.0 = Release|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|x64.ActiveCfg = Release|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|x64.Build.0 = Release|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|Win32.ActiveCfg = Debug|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|Win32.Build.0 = Debug|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|x64.ActiveCfg = Debug|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|x64.Build.0 = Debug|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|Win32.ActiveCfg = Release|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|Win32.Build.0 = Release|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|x64.ActiveCfg = Release|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|x64.Build.0 = Release|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|Win32.ActiveCfg = Debug|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|Win32.Build.0 = Debug|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|x64.ActiveCfg = Debug|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|x64.Build.0 = Debug|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.Release|Win32.ActiveCfg = Release|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.Release|Win32.Build.0 = Release|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.Release|x64.ActiveCfg = Release|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.Release|x64.Build.0 = Release|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|Win32.ActiveCfg = Debug|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|Win32.Build.0 = Debug|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|x64.ActiveCfg = Debug|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|x64.Build.0 = Debug|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|Win32.ActiveCfg = Release|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|Win32.Build.0 = Release|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|x64.ActiveCfg = Release|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|x64.Build.0 = Release|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|Win32.ActiveCfg = Debug|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|Win32.Build.0 = Debug|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|x64.ActiveCfg = Debug|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|x64.Build.0 = Debug|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|Win32.ActiveCfg = Release|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|Win32.Build.0 = Release|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|x64.ActiveCfg = Release|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|x64.Build.0 = Release|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|Win32.ActiveCfg = Debug|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|Win32.Build.0 = Debug|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|x64.ActiveCfg = Debug|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|x64.Build.0 = Debug|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|Win32.ActiveCfg = Release|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|Win32.Build.0 = Release|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|x64.ActiveCfg = Release|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|x64.Build.0 = Release|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|Win32.ActiveCfg = Debug|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|Win32.Build.0 = Debug|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|x64.ActiveCfg = Debug|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|x64.Build.0 = Debug|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|Win32.ActiveCfg = Release|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|Win32.Build.0 = Release|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|x64.ActiveCfg = Release|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|x64.Build.0 = Release|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|Win32.ActiveCfg = Debug|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|Win32.Build.0 = Debug|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|x64.ActiveCfg = Debug|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|x64.Build.0 = Debug|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|Win32.ActiveCfg = Release|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|Win32.Build.0 = Release|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|x64.ActiveCfg = Release|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|x64.Build.0 = Release|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|Win32.ActiveCfg = Debug|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|Win32.Build.0 = Debug|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|x64.ActiveCfg = Debug|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|x64.Build.0 = Debug|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|Win32.ActiveCfg = Release|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|Win32.Build.0 = Release|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|x64.ActiveCfg = Release|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|x64.Build.0 = Release|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|Win32.ActiveCfg = Debug|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|Win32.Build.0 = Debug|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|x64.ActiveCfg = Debug|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|x64.Build.0 = Debug|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|Win32.ActiveCfg = Release|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|Win32.Build.0 = Release|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|x64.ActiveCfg = Release|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/PCbuild9/pginstrument.vsprops b/PCbuild9/pginstrument.vsprops new file mode 100644 index 00000000000..1b08c5d5527 --- /dev/null +++ b/PCbuild9/pginstrument.vsprops @@ -0,0 +1,23 @@ + + + + + + diff --git a/PCbuild9/pgupdate.vsprops b/PCbuild9/pgupdate.vsprops new file mode 100644 index 00000000000..30ab891f223 --- /dev/null +++ b/PCbuild9/pgupdate.vsprops @@ -0,0 +1,14 @@ + + + + diff --git a/PCbuild9/pyd.vsprops b/PCbuild9/pyd.vsprops new file mode 100644 index 00000000000..2a69d9599bc --- /dev/null +++ b/PCbuild9/pyd.vsprops @@ -0,0 +1,23 @@ + + + + + + diff --git a/PCbuild9/pyd_d.vsprops b/PCbuild9/pyd_d.vsprops new file mode 100644 index 00000000000..3113381daa4 --- /dev/null +++ b/PCbuild9/pyd_d.vsprops @@ -0,0 +1,27 @@ + + + + + + diff --git a/PCbuild9/pyexpat.vcproj b/PCbuild9/pyexpat.vcproj new file mode 100644 index 00000000000..43d11462ca2 --- /dev/null +++ b/PCbuild9/pyexpat.vcproj @@ -0,0 +1,553 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/pyproject.vsprops b/PCbuild9/pyproject.vsprops new file mode 100644 index 00000000000..6d91957b85d --- /dev/null +++ b/PCbuild9/pyproject.vsprops @@ -0,0 +1,63 @@ + + + + + + + + + + + + diff --git a/PCbuild9/python.build b/PCbuild9/python.build new file mode 100644 index 00000000000..0f155135049 --- /dev/null +++ b/PCbuild9/python.build @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/python.iss b/PCbuild9/python.iss new file mode 100644 index 00000000000..480b8c1d740 --- /dev/null +++ b/PCbuild9/python.iss @@ -0,0 +1,337 @@ +; Script generated by the Inno Setup Script Wizard. +; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! + +; This is the whole ball of wax for an Inno installer for Python. +; To use, download Inno Setup from http://www.jrsoftware.org/isdl.htm/, +; install it, and double-click on this file. That launches the Inno +; script compiler. The GUI is extemely simple, and has only one button +; you may not recognize instantly: click it. You're done. It builds +; the installer into PCBuild/Python-2.2a1.exe. Size and speed of the +; installer are competitive with the Wise installer; Inno uninstall +; seems much quicker than Wise (but also feebler, and the uninstall +; log is in some un(human)readable binary format). +; +; What's Done +; ----------- +; All the usual Windows Python files are installed by this now. +; All the usual Windows Python Start menu entries are created and +; work fine. +; .py, .pyw, .pyc and .pyo extensions are registered. +; PROBLEM: Inno uninstall does not restore their previous registry +; associations (if any). Wise did. This will make life +; difficult for alpha (etc) testers. +; The Python install is fully functional for "typical" uses. +; +; What's Not Done +; --------------- +; None of "Mark Hammond's" registry entries are written. +; No installation of files is done into the system dir: +; The MS DLLs aren't handled at all by this yet. +; Python22.dll is unpacked into the main Python dir. +; +; Inno can't do different things on NT/2000 depending on whether the user +; has Admin privileges, so I don't know how to "solve" either of those, +; short of building two installers (one *requiring* Admin privs, the +; other not doing anything that needs Admin privs). +; +; Inno has no concept of variables, so lots of lines in this file need +; to be fiddled by hand across releases. Simplest way out: stick this +; file in a giant triple-quoted r-string (note that backslashes are +; required all over the place here -- forward slashes DON'T WORK in +; Inno), and use %(yadda)s string interpolation to do substitutions; i.e., +; write a very simple Python program to *produce* this script. + +[Setup] +AppName=Python and combined Win32 Extensions +AppVerName=Python 2.2.2 and combined Win32 Extensions 150 +AppId=Python 2.2.2.150 +AppVersion=2.2.2.150 +AppCopyright=Python is Copyright © 2001 Python Software Foundation. Win32 Extensions are Copyright © 1996-2001 Greg Stein and Mark Hammond. + +; Default install dir; value of {app} later (unless user overrides). +; {sd} = system root drive, probably "C:". +DefaultDirName={sd}\Python22 +;DefaultDirName={pf}\Python + +; Start menu folder name; value of {group} later (unless user overrides). +DefaultGroupName=Python 2.2 + +; Point SourceDir to one above PCBuild = src. +; means this script can run unchanged from anyone's CVS tree, no matter +; what they called the top-level directories. +SourceDir=. +OutputDir=.. +OutputBaseFilename=Python-2.2.2-Win32-150-Setup + +AppPublisher=PythonLabs at Digital Creations +AppPublisherURL=http://www.python.org +AppSupportURL=http://www.python.org +AppUpdatesURL=http://www.python.org + +AlwaysCreateUninstallIcon=true +ChangesAssociations=true +UninstallLogMode=new +AllowNoIcons=true +AdminPrivilegesRequired=true +UninstallDisplayIcon={app}\pyc.ico +WizardDebug=false + +; The fewer screens the better; leave these commented. + +Compression=bzip +InfoBeforeFile=LICENSE.txt +;InfoBeforeFile=Misc\NEWS + +; uncomment the following line if you want your installation to run on NT 3.51 too. +; MinVersion=4,3.51 + +[Types] +Name: normal; Description: Select desired components; Flags: iscustom + +[Components] +Name: main; Description: Python and Win32 Extensions; Types: normal +Name: docs; Description: Python documentation (HTML); Types: normal +Name: tk; Description: TCL/TK, tkinter, and Idle; Types: normal +Name: tools; Description: Python utility scripts (Tools\); Types: normal +Name: test; Description: Python test suite (Lib\test\); Types: normal + +[Tasks] +Name: extensions; Description: Register file associations (.py, .pyw, .pyc, .pyo); Components: main; Check: IsAdminLoggedOn + +[Files] +; Caution: Using forward slashes instead screws up in amazing ways. +; Unknown: By the time Components (and other attrs) are added to these lines, they're +; going to get awfully long. But don't see a way to continue logical lines across +; physical lines. + +Source: LICENSE.txt; DestDir: {app}; CopyMode: alwaysoverwrite +Source: README.txt; DestDir: {app}; CopyMode: alwaysoverwrite +Source: News.txt; DestDir: {app}; CopyMode: alwaysoverwrite +Source: *.ico; DestDir: {app}; CopyMode: alwaysoverwrite; Components: main + +Source: python.exe; DestDir: {app}; CopyMode: alwaysoverwrite; Components: main +Source: pythonw.exe; DestDir: {app}; CopyMode: alwaysoverwrite; Components: main +Source: w9xpopen.exe; DestDir: {app}; CopyMode: alwaysoverwrite; Components: main + + +Source: DLLs\tcl83.dll; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: tk +Source: DLLs\tk83.dll; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: tk +Source: tcl\*.*; DestDir: {app}\tcl; CopyMode: alwaysoverwrite; Components: tk; Flags: recursesubdirs + +Source: sysdir\python22.dll; DestDir: {sys}; CopyMode: alwaysskipifsameorolder; Components: main; Flags: sharedfile restartreplace +Source: sysdir\PyWinTypes22.dll; DestDir: {sys}; CopyMode: alwaysskipifsameorolder; Components: main; Flags: restartreplace sharedfile +Source: sysdir\pythoncom22.dll; DestDir: {sys}; CopyMode: alwaysskipifsameorolder; Components: main; Flags: restartreplace sharedfile + +Source: DLLs\_socket.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main +Source: libs\_socket.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main + +Source: DLLs\_sre.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main +Source: libs\_sre.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main + +Source: DLLs\_symtable.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main +Source: libs\_symtable.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main + +Source: DLLs\_testcapi.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main +Source: libs\_testcapi.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main + +Source: DLLs\_tkinter.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: tk +Source: libs\_tkinter.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: tk + +Source: DLLs\bsddb.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main +Source: libs\bsddb.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main + +Source: DLLs\mmap.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main +Source: libs\mmap.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main + +Source: DLLs\parser.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main +Source: libs\parser.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main + +Source: DLLs\pyexpat.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main +Source: libs\pyexpat.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main + +Source: DLLs\select.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main +Source: libs\select.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main + +Source: DLLs\unicodedata.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main +Source: libs\unicodedata.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main + +Source: DLLs\_winreg.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main +Source: libs\_winreg.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main + +Source: DLLs\winsound.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main +Source: libs\winsound.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main + +Source: DLLs\zlib.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main +Source: libs\zlib.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main + +Source: libs\python22.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main + +Source: DLLs\expat.dll; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main + + + +Source: Lib\*.py; DestDir: {app}\Lib; CopyMode: alwaysoverwrite; Components: main +Source: Lib\distutils\*.*; DestDir: {app}\Lib\distutils; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs +Source: Lib\email\*.*; DestDir: {app}\Lib\email; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs +Source: Lib\encodings\*.*; DestDir: {app}\Lib\encodings; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs +Source: Lib\lib-old\*.*; DestDir: {app}\Lib\lib-old; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs +Source: Lib\xml\*.*; DestDir: {app}\Lib\xml; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs +Source: Lib\test\*.*; DestDir: {app}\Lib\test; CopyMode: alwaysoverwrite; Components: test; Flags: recursesubdirs + +Source: Lib\site-packages\README.txt; DestDir: {app}\Lib\site-packages; CopyMode: alwaysoverwrite; Components: main + +Source: Lib\site-packages\PyWin32.chm; DestDir: {app}\Lib\site-packages; CopyMode: alwaysoverwrite; Components: docs +Source: Lib\site-packages\win32\*.*; DestDir: {app}\Lib\site-packages\win32; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs +Source: Lib\site-packages\win32com\*.*; DestDir: {app}\Lib\site-packages\win32com; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs +Source: Lib\site-packages\win32comext\*.*; DestDir: {app}\Lib\site-packages\win32comext; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs + +Source: Lib\lib-tk\*.py; DestDir: {app}\Lib\lib-tk; CopyMode: alwaysoverwrite; Components: tk; Flags: recursesubdirs + +Source: include\*.h; DestDir: {app}\include; CopyMode: alwaysoverwrite; Components: main + +Source: Tools\idle\*.*; DestDir: {app}\Tools\idle; CopyMode: alwaysoverwrite; Components: tk; Flags: recursesubdirs + +Source: Tools\pynche\*.*; DestDir: {app}\Tools\pynche; CopyMode: alwaysoverwrite; Components: tools; Flags: recursesubdirs +Source: Tools\scripts\*.*; DestDir: {app}\Tools\Scripts; CopyMode: alwaysoverwrite; Components: tools; Flags: recursesubdirs +Source: Tools\webchecker\*.*; DestDir: {app}\Tools\webchecker; CopyMode: alwaysoverwrite; Components: tools; Flags: recursesubdirs +Source: Tools\versioncheck\*.*; DestDir: {app}\Tools\versioncheck; CopyMode: alwaysoverwrite; Components: tools; Flags: recursesubdirs + +Source: Doc\*.*; DestDir: {app}\Doc; CopyMode: alwaysoverwrite; Flags: recursesubdirs; Components: docs + + +[Icons] +Name: {group}\Python (command line); Filename: {app}\python.exe; WorkingDir: {app}; Components: main +Name: {group}\Python Manuals; Filename: {app}\Doc\index.html; WorkingDir: {app}; Components: docs +Name: {group}\Win32 Extensions Help; Filename: {app}\Lib\site-packages\PyWin32.chm; WorkingDir: {app}\Lib\site-packages; Components: docs +Name: {group}\Module Docs; Filename: {app}\pythonw.exe; WorkingDir: {app}; Parameters: """{app}\Tools\Scripts\pydoc.pyw"""; Components: tools +Name: {group}\IDLE (Python GUI); Filename: {app}\pythonw.exe; WorkingDir: {app}; Parameters: """{app}\Tools\idle\idle.pyw"""; Components: tools + +[Registry] +; Register .py +Tasks: extensions; Root: HKCR; Subkey: .py; ValueType: string; ValueName: ; ValueData: Python File; Flags: uninsdeletevalue +Tasks: extensions; Root: HKCR; Subkey: .py; ValueType: string; ValueName: Content Type; ValueData: text/plain; Flags: uninsdeletevalue +Tasks: extensions; Root: HKCR; Subkey: Python File; ValueType: string; ValueName: ; ValueData: Python File; Flags: uninsdeletekey +Tasks: extensions; Root: HKCR; Subkey: Python File\DefaultIcon; ValueType: string; ValueName: ; ValueData: {app}\Py.ico +Tasks: extensions; Root: HKCR; Subkey: Python File\shell\open\command; ValueType: string; ValueName: ; ValueData: """{app}\python.exe"" ""%1"" %*" + +; Register .pyc +Tasks: extensions; Root: HKCR; Subkey: .pyc; ValueType: string; ValueName: ; ValueData: Python CompiledFile; Flags: uninsdeletevalue +Tasks: extensions; Root: HKCR; Subkey: Python CompiledFile; ValueType: string; ValueName: ; ValueData: Compiled Python File; Flags: uninsdeletekey +Tasks: extensions; Root: HKCR; Subkey: Python CompiledFile\DefaultIcon; ValueType: string; ValueName: ; ValueData: {app}\pyc.ico +Tasks: extensions; Root: HKCR; Subkey: Python CompiledFile\shell\open\command; ValueType: string; ValueName: ; ValueData: """{app}\python.exe"" ""%1"" %*" + +; Register .pyo +Tasks: extensions; Root: HKCR; Subkey: .pyo; ValueType: string; ValueName: ; ValueData: Python CompiledFile; Flags: uninsdeletevalue + +; Register .pyw +Tasks: extensions; Root: HKCR; Subkey: .pyw; ValueType: string; ValueName: ; ValueData: Python NoConFile; Flags: uninsdeletevalue +Tasks: extensions; Root: HKCR; Subkey: .pyw; ValueType: string; ValueName: Content Type; ValueData: text/plain; Flags: uninsdeletevalue +Tasks: extensions; Root: HKCR; Subkey: Python NoConFile; ValueType: string; ValueName: ; ValueData: Python File (no console); Flags: uninsdeletekey +Tasks: extensions; Root: HKCR; Subkey: Python NoConFile\DefaultIcon; ValueType: string; ValueName: ; ValueData: {app}\Py.ico +Tasks: extensions; Root: HKCR; Subkey: Python NoConFile\shell\open\command; ValueType: string; ValueName: ; ValueData: """{app}\pythonw.exe"" ""%1"" %*" + + +; Python Registry Keys +Root: HKLM; Subkey: SOFTWARE\Python; Flags: uninsdeletekeyifempty; Check: IsAdminLoggedOn +Root: HKLM; Subkey: SOFTWARE\Python\PythonCore; Flags: uninsdeletekeyifempty +Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2; Flags: uninsdeletekeyifempty +Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\PythonPath; ValueData: "{app}\Lib;{app}\DLLs"; Flags: uninsdeletekeyifempty +Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\PythonPath\tk; ValueData: {app}\Lib\lib-tk; Flags: uninsdeletekey; Components: tk +Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\PythonPath\win32; ValueData: "{app}\lib\site-packages\win32;{app}\lib\site-packages\win32\lib"; Flags: uninsdeletekey +Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\PythonPath\win32com; ValueData: C:\Python\lib\site-packages; Flags: uninsdeletekey +Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\Modules; Flags: uninsdeletekeyifempty +Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\Modules\pythoncom; ValueData: {sys}\pythoncom22.dll; Flags: uninsdeletekey +Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\Modules\pywintypes; ValueData: {sys}\PyWinTypes22.dll; Flags: uninsdeletekey +Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\InstallPath; ValueData: {app}; Flags: uninsdeletekeyifempty; ValueType: string +Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\InstallPath\InstallGroup; ValueData: {group}; Flags: uninsdeletekey +Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\Help; Flags: uninsdeletekeyifempty +Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\Help\Main Python Documentation; ValueType: string; ValueData: {app}\Doc\index.html; Flags: uninsdeletekey; Components: docs +Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\Help\Python Win32 Documentation; ValueType: string; ValueData: {app}\lib\site-packages\PyWin32.chm; Flags: uninsdeletekey; Components: docs + +[_ISTool] +EnableISX=true + + +[Code] +Program Setup; + +Function IsAdminNotLoggedOn(): Boolean; +begin + Result := Not IsAdminLoggedOn(); +end; + +begin +end. + + + + +[UninstallDelete] +Name: {app}\Lib\distutils\command\*.pyc; Type: files +Name: {app}\Lib\distutils\command\*.pyo; Type: files +Name: {app}\Lib\distutils\command; Type: dirifempty +Name: {app}\Lib\distutils\*.pyc; Type: files +Name: {app}\Lib\distutils\*.pyo; Type: files +Name: {app}\Lib\distutils; Type: dirifempty +Name: {app}\Lib\email\test\*.pyc; Type: files +Name: {app}\Lib\email\test\*.pyo; Type: files +Name: {app}\Lib\email\test; Type: dirifempty +Name: {app}\Lib\email\*.pyc; Type: files +Name: {app}\Lib\email\*.pyo; Type: files +Name: {app}\Lib\email; Type: dirifempty +Name: {app}\Lib\encodings\*.pyc; Type: files +Name: {app}\Lib\encodings\*.pyo; Type: files +Name: {app}\Lib\encodings; Type: dirifempty +Name: {app}\Lib\lib-old\*.pyc; Type: files +Name: {app}\Lib\lib-old\*.pyo; Type: files +Name: {app}\Lib\lib-old; Type: dirifempty +Name: {app}\Lib\lib-tk\*.pyc; Type: files +Name: {app}\Lib\lib-tk\*.pyo; Type: files +Name: {app}\Lib\lib-tk; Type: dirifempty +Name: {app}\Lib\test\*.pyc; Type: files +Name: {app}\Lib\test\*.pyo; Type: files +Name: {app}\Lib\test; Type: dirifempty +Name: {app}\Lib\xml\dom\*.pyc; Type: files +Name: {app}\Lib\xml\dom\*.pyo; Type: files +Name: {app}\Lib\xml\dom; Type: dirifempty +Name: {app}\Lib\xml\parsers\*.pyc; Type: files +Name: {app}\Lib\xml\parsers\*.pyo; Type: files +Name: {app}\Lib\xml\parsers; Type: dirifempty +Name: {app}\Lib\xml\sax\*.pyc; Type: files +Name: {app}\Lib\xml\sax\*.pyo; Type: files +Name: {app}\Lib\xml\sax; Type: dirifempty +Name: {app}\Lib\xml\*.pyc; Type: files +Name: {app}\Lib\xml\*.pyo; Type: files +Name: {app}\Lib\xml; Type: dirifempty + +Name: {app}\Lib\site-packages\win32; Type: filesandordirs +Name: {app}\Lib\site-packages\win32com; Type: filesandordirs +Name: {app}\Lib\site-packages\win32comext; Type: filesandordirs +Name: {app}\Lib\site-packages\pythoncom.py*; Type: files +Name: {app}\Lib\site-packages; Type: dirifempty + +Name: {app}\Lib\*.pyc; Type: files +Name: {app}\Lib; Type: dirifempty + +Name: {app}\Tools\pynche\*.pyc; Type: files +Name: {app}\Tools\pynche\*.pyo; Type: files +Name: {app}\Tools\pynche; Type: dirifempty + +Name: {app}\Tools\idle\*.pyc; Type: files +Name: {app}\Tools\idle\*.pyo; Type: files +Name: {app}\Tools\idle; Type: dirifempty + +Name: {app}\Tools\scripts\*.pyc; Type: files +Name: {app}\Tools\scripts\*.pyo; Type: files +Name: {app}\Tools\scripts; Type: dirifempty + +Name: {app}\Tools\versioncheck\*.pyc; Type: files +Name: {app}\Tools\versioncheck\*.pyo; Type: files +Name: {app}\Tools\versioncheck; Type: dirifempty + +Name: {app}\Tools\webchecker\*.pyc; Type: files +Name: {app}\Tools\webchecker\*.pyo; Type: files +Name: {app}\Tools\webchecker; Type: dirifempty + +Name: {app}\Tools; Type: dirifempty + diff --git a/PCbuild9/python.vcproj b/PCbuild9/python.vcproj new file mode 100644 index 00000000000..8381dcfe2e8 --- /dev/null +++ b/PCbuild9/python.vcproj @@ -0,0 +1,645 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/python20.wse b/PCbuild9/python20.wse new file mode 100644 index 00000000000..da2df69b211 --- /dev/null +++ b/PCbuild9/python20.wse @@ -0,0 +1,3127 @@ +Document Type: WSE +item: Global + Version=9.0 + Title=Python 2.4a1 + Flags=00010100 + Languages=65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + Japanese Font Name=MS Gothic + Japanese Font Size=10 + Start Gradient=0 255 0 + End Gradient=0 128 0 + Windows Flags=00000100000011010010010100001010 + Log Pathname=%MAINDIR%\INSTALL.LOG + Message Font=MS Sans Serif + Font Size=8 + Pages Modified=00010000011101000000000100000111 + Extra Pages=00000000000000000000000010110010 + Disk Filename=SETUP + Patch Flags=0000000000001001 + Patch Threshold=85 + Patch Memory=4000 + MIF PDF Version=1.0 + MIF SMS Version=2.0 + EXE Filename=Python-2.4a1.exe + Dialogs Version=8 + Version File=2.4a1 + Version Description=Python Programming Language + Version Copyright=©2001-2007 Python Software Foundation + Version Company=Python Software Foundation + Crystal Format=10111100101100000010001001001001 + Step View=&All + Variable Name1=_WISE_ + Variable Description1=WISE root directory + Variable Default1=C:\Programme\Wise Installation System + Variable Flags1=00001000 + Variable Name2=_TCLDIR_ + Variable Description2=The directory in which the Tcl/Tk installation + Variable Description2=lives. This must be a sibling of the Python + Variable Description2=directory. + Variable Default2=tcl84 + Variable Flags2=00001000 + Variable Name3=_DOC_ + Variable Description3=The unpacked HTML doc directory. + Variable Default3=..\html + Variable Flags3=00001001 + Variable Name4=_SYS_ + Variable Description4=System directory (where to find MSVCRT.DLL) + Variable Default4=C:\Windows\System + Variable Values4=C:\Windows\System + Variable Values4=C:\WINNT\System32 + Variable Values4=C:\Code\MSDLLs + Variable Values4=C:\Windows\System32 + Variable Flags4=00000010 + Variable Name5=_PYMAJOR_ + Variable Description5=Python major version number; the 2 in 2.3. + Variable Default5=2 + Variable Flags5=00001000 + Variable Name6=_PYMINOR_ + Variable Description6=Python minor version number; the 3 in 2.3 + Variable Default6=3 + Variable Flags6=00001000 + Variable Name7=_DOADMIN_ + Variable Description7=The initial value for %DOADMIN%. + Variable Description7=When 0, we never try to write under HKLM, + Variable Description7=and install the Python + MS runtime DLLs in + Variable Description7=the Python directory instead of the system dir. + Variable Default7=1 + Variable Values7=1 + Variable Values7=0 + Variable Flags7=00001010 + Variable Name8=_ALIASNAME_ + Variable Flags8=00001000 + Variable Name9=_ALIASPATH_ + Variable Flags9=00001000 + Variable Name10=_ALIASTYPE_ + Variable Flags10=00001000 +end +item: Set Variable + Variable=PYVER_STRING + Value=2.3 +end +item: Remark +end +item: Remark + Text=When the version number changes, set the compiler +end +item: Remark + Text=vrbls _PYMAJOR_ and _PYMINOR_. +end +item: Remark + Text=Nothing in the script below should need fiddling then. +end +item: Remark + Text=Other things that need fiddling: +end +item: Remark + Text= PYVER_STRING above. +end +item: Remark + Text= The "Title:" in the upper left corner of the GUI. +end +item: Remark + Text= Build Settings and Version Resource on step 6 (Finish) of the Installation Expert +end +item: Remark + Text= Be sure to select Steps->All or you may not see these! +end +item: Remark +end +item: Remark + Text=When the version of Tcl/Tk changes, the compiler vrbl +end +item: Remark + Text=_TCLDIR_ may also need to be changed. +end +item: Remark +end +item: Set Variable + Variable=APPTITLE + Value=Python %PYVER_STRING% +end +item: Remark + Text=PY_VERSION should be major.minor only; used to create the registry key; must match MS_DLL_ID in python_nt.rc +end +item: Set Variable + Variable=PY_VERSION + Value=%_PYMAJOR_%.%_PYMINOR_% +end +item: Remark + Text=GROUP is the Start menu group name; user can override. +end +item: Set Variable + Variable=GROUP + Value=Python %PY_VERSION% + Flags=10000000 +end +item: Remark + Text=MAINDIR is the app directory; user can override. +end +item: Set Variable + Variable=MAINDIR + Value=Python%_PYMAJOR_%%_PYMINOR_% +end +item: Remark +end +item: Set Variable + Variable=DOADMIN + Value=%_DOADMIN_% +end +item: Remark + Text=Give non-admin users a chance to abort. +end +item: Check Configuration + Flags=10011111 +end +item: Set Variable + Variable=DOADMIN + Value=0 +end +item: Display Message + Title=Doing non-admin install + Text=The current login does not have Administrator Privileges on this machine. Python will install its registry information into the per-user area only for the current login, instead of into the per-machine area for every account on this machine. Some advanced uses of Python may not work as a result (for example, running a Python script as a service). + Text= + Text=If this is not what you want, please click Cancel to abort this installation, log on as an Administrator, and start the installation again. + Flags=00001000 +end +item: End Block +end +item: Remark +end +item: Remark + Text=BEGIN WIZARD STUFF ----------------------------------------------------------------------------------------------------------------------------- +end +item: Remark + Text=Note from Tim: the "stop" on the next line is actually "pause". +end +item: Open/Close INSTALL.LOG + Flags=00000001 +end +item: Remark + Text=If the destination system does not have a writable Windows\System directory, system files will be written to the Windows\ directory +end +item: Check if File/Dir Exists + Pathname=%SYS% + Flags=10000100 +end +item: Set Variable + Variable=SYS + Value=%WIN% +end +item: End Block +end +item: Check Configuration + Flags=10111011 +end +item: Get Registry Key Value + Variable=COMMON + Key=SOFTWARE\Microsoft\Windows\CurrentVersion + Default=C:\Program Files\Common Files + Value Name=CommonFilesDir + Flags=00000100 +end +item: Get Registry Key Value + Variable=PROGRAM_FILES + Key=SOFTWARE\Microsoft\Windows\CurrentVersion + Default=C:\Program Files + Value Name=ProgramFilesDir + Flags=00000100 +end +item: Set Variable + Variable=EXPLORER + Value=1 +end +item: End Block +end +item: Remark + Text=Note from Tim: The Wizard hardcod "C:" at the start of the replacement text for MAINDIR. +end +item: Remark + Text=That's not appropriate if the system drive doesn't happen to be C:. +end +item: Remark + Text=I removed the "C:", and that did the right thing for two people who tested it on non-C: machines, +end +item: Remark + Text=but it's unclear whether it will always do the right thing. +end +item: Set Variable + Variable=MAINDIR + Value=\%MAINDIR% + Flags=00001100 +end +item: Remark + Text=BACKUP is the variable that holds the path that all backup files will be copied to when overwritten +end +item: Set Variable + Variable=BACKUP + Value=%MAINDIR%\BACKUP + Flags=10000000 +end +item: Remark + Text=DOBACKUP determines if a backup will be performed. The possible values are A (do backup) or B (do not do backup) +end +item: Set Variable + Variable=DOBACKUP + Value=A +end +item: Remark + Text=BRANDING determines if the installation will be branded with a name and company. By default, this is written to the INST directory (installation media). +end +item: Set Variable + Variable=BRANDING + Value=0 +end +item: If/While Statement + Variable=BRANDING + Value=1 +end +item: Read INI Value + Variable=NAME + Pathname=%INST%\CUSTDATA.INI + Section=Registration + Item=Name +end +item: Read INI Value + Variable=COMPANY + Pathname=%INST%\CUSTDATA.INI + Section=Registration + Item=Company +end +item: If/While Statement + Variable=NAME +end +item: Set Variable + Variable=DOBRAND + Value=1 +end +item: Get System Information + Variable=NAME + Flags=00000110 +end +item: Get System Information + Variable=COMPANY + Flags=00000111 +end +item: End Block +end +item: End Block +end +item: Remark + Text=END WIZARD STUFF ----------------------------------------------------------------------------------------------------------------------------- +end +item: Remark +end +item: Remark + Text=Set vrbls for the "Advanced Options" subdialog of Components. +end +item: Set Variable + Variable=SELECT_ADMIN + Value=A +end +item: If/While Statement + Variable=DOADMIN + Value=0 +end +item: Set Variable + Variable=SELECT_ADMIN + Value=B +end +item: End Block +end +item: Remark +end +item: Remark + Text=TASKS values: +end +item: Remark + Text=A: Register file extensions +end +item: Remark + Text=B: Create Start Menu shortcuts +end +item: Set Variable + Variable=TASKS + Value=AB +end +item: Remark +end +item: Remark + Text=COMPONENTS values: +end +item: Remark + Text=A: interpreter and libraries +end +item: Remark + Text=B: Tcl/Tk +end +item: Remark + Text=C: docs +end +item: Remark + Text=D: tools +end +item: Remark + Text=E: test suite +end +item: Set Variable + Variable=COMPONENTS + Value=ABCDE +end +item: Remark +end +item: Remark + Text=March thru the user GUI. +end +item: Wizard Block + Direction Variable=DIRECTION + Display Variable=DISPLAY + Bitmap Pathname=.\installer.bmp + X Position=9 + Y Position=10 + Filler Color=11173759 + Dialog=Select Destination Directory + Dialog=Backup Replaced Files + Dialog=Select Components + Dialog=Select Program Manager Group + Variable= + Variable= + Variable= + Variable=TASKS + Value= + Value= + Value= + Value=B + Compare=0 + Compare=0 + Compare=0 + Compare=3 + Flags=00000011 +end +item: If/While Statement + Variable=DISPLAY + Value=Start Installation +end +item: Set Variable + Variable=SUMMARY + Value=Install directory: %MAINDIR%%CRLF% +end +item: Remark +end +item: If/While Statement + Variable=SELECT_ADMIN + Value=A +end +item: Set Variable + Variable=SUMMARY + Value=%CRLF%Doing admin install.%CRLF% + Flags=00000001 +end +item: Else Statement +end +item: Set Variable + Variable=SUMMARY + Value=%CRLF%Doing non-admin install.%CRLF% + Flags=00000001 +end +item: End Block +end +item: Remark +end +item: If/While Statement + Variable=DOBACKUP + Value=A +end +item: Set Variable + Variable=SUMMARY + Value=%CRLF%Make backups, into %BACKUP%%CRLF% + Flags=00000001 +end +item: Else Statement +end +item: Set Variable + Variable=SUMMARY + Value=%CRLF%Don't make backups.%CRLF% + Flags=00000001 +end +item: End Block +end +item: Remark +end +item: Set Variable + Variable=SUMMARY + Value=%CRLF%Components:%CRLF% + Flags=00000001 +end +item: If/While Statement + Variable=COMPONENTS + Value=A + Flags=00000010 +end +item: Set Variable + Variable=SUMMARY + Value= Python interpreter and libraries%CRLF% + Flags=00000001 +end +item: End Block +end +item: If/While Statement + Variable=COMPONENTS + Value=B + Flags=00000010 +end +item: Set Variable + Variable=SUMMARY + Value= Tcl/Tk (Tkinter, IDLE, pydoc)%CRLF% + Flags=00000001 +end +item: End Block +end +item: If/While Statement + Variable=COMPONENTS + Value=C + Flags=00000010 +end +item: Set Variable + Variable=SUMMARY + Value= Python documentation%CRLF% + Flags=00000001 +end +item: End Block +end +item: If/While Statement + Variable=COMPONENTS + Value=D + Flags=00000010 +end +item: Set Variable + Variable=SUMMARY + Value= Tool and utility scripts%CRLF% + Flags=00000001 +end +item: End Block +end +item: If/While Statement + Variable=COMPONENTS + Value=E + Flags=00000010 +end +item: Set Variable + Variable=SUMMARY + Value= Python test suite%CRLF% + Flags=00000001 +end +item: End Block +end +item: Remark +end +item: If/While Statement + Variable=TASKS + Value=A + Flags=00000010 +end +item: Set Variable + Variable=SUMMARY + Value=%CRLF%Register file extensions.%CRLF% + Flags=00000001 +end +item: Else Statement +end +item: Set Variable + Variable=SUMMARY + Value=%CRLF%Don't register file extensions.%CRLF% + Flags=00000001 +end +item: End Block +end +item: Remark +end +item: If/While Statement + Variable=TASKS + Value=B + Flags=00000010 +end +item: Set Variable + Variable=SUMMARY + Value=%CRLF%Start Menu group: %GROUP%%CRLF% + Flags=00000001 +end +item: Else Statement +end +item: Set Variable + Variable=SUMMARY + Value=%CRLF%No Start Menu shortcuts.%CRLF% + Flags=00000001 +end +item: End Block +end +item: End Block +end +item: Remark +end +item: Custom Dialog Set + Name=Select Destination Directory + Display Variable=DISPLAY + item: Dialog + Title=%APPTITLE% Installation + Title French=Installation de %APPTITLE% + Title German=Installation von %APPTITLE% + Title Spanish=Instalación de %APPTITLE% + Title Italian=Installazione di %APPTITLE% + Width=339 + Height=280 + Font Name=Helv + Font Size=8 + item: Push Button + Rectangle=188 234 244 253 + Variable=DIRECTION + Value=N + Create Flags=01010000000000010000000000000001 + Text=&Next > + Text French=&Suite > + Text German=&Weiter > + Text Spanish=&Siguiente > + Text Italian=&Avanti > + end + item: Push Button + Rectangle=264 234 320 253 + Action=3 + Create Flags=01010000000000010000000000000000 + Text=&Cancel + Text French=&Annuler + Text German=&Abbrechen + Text Spanish=&Cancelar + Text Italian=&Annulla + end + item: Static + Rectangle=10 225 320 226 + Action=3 + Create Flags=01010000000000000000000000000111 + end + item: Static + Rectangle=108 11 323 33 + Create Flags=01010000000000000000000000000000 + Flags=0000000000000001 + Name=Times New Roman + Font Style=-24 0 0 0 700 255 0 0 0 3 2 1 18 + Text=Select Destination Directory + Text French=Sélectionner le répertoire de destination + Text German=Zielverzeichnis wählen + Text Spanish=Seleccione el directorio de destino + Text Italian=Selezionare Directory di destinazione + end + item: Listbox + Rectangle=108 58 321 219 + Variable=MAINDIR + Enabled Color=00000000000000001111111111111111 + Create Flags=01010000100000010000000101000001 + Flags=0000110000001010 + Text=%MAINDIR% + Text= + end + item: Static + Rectangle=108 40 313 58 + Enabled Color=00000000000000001111111111111111 + Create Flags=01010000000000000000000000000000 + Text=Please select a directory for the %APPTITLE% files. + end + end + item: Dialog + Title=Select Destination Directory + Title French=Sélectionner le répertoire de destination + Title German=Zielverzeichnis wählen + Title Spanish=Seleccione el directorio de destino + Title Italian=Selezionare Directory di destinazione + Width=276 + Height=216 + Font Name=Helv + Font Size=8 + item: Listbox + Rectangle=6 6 204 186 + Variable=MAINDIR + Create Flags=01010000100000010000000101000000 + Flags=0000110000100010 + Text=%MAINDIR% + Text French=%MAINDIR% + Text German=%MAINDIR% + Text Spanish=%MAINDIR% + Text Italian=%MAINDIR% + end + item: Push Button + Rectangle=209 8 265 26 + Create Flags=01010000000000010000000000000001 + Text=OK + Text French=OK + Text German=OK + Text Spanish=Aceptar + Text Italian=OK + end + item: Push Button + Rectangle=209 31 265 50 + Variable=MAINDIR + Value=%MAINDIR_SAVE% + Create Flags=01010000000000010000000000000000 + Flags=0000000000000001 + Text=Cancel + Text French=Annuler + Text German=Abbrechen + Text Spanish=Cancelar + Text Italian=Annulla + end + end +end +item: Custom Dialog Set + Name=Backup Replaced Files + Display Variable=DISPLAY + item: Dialog + Title=%APPTITLE% Installation + Title French=Fichiers de Sauvegarde Remplacés + Title German=Sicherungskopie von ersetzten Dateien erstellen + Title Portuguese=Ficheiros substituídos de segurança + Title Spanish=Copias de seguridad de los archivos reemplazados + Title Italian=Backup file sostituiti + Title Danish=Sikkerhedskopiering af erstattede filer + Title Dutch=Vervangen bestanden kopiëren + Title Norwegian=Sikkerhetskopiere erstattede filer + Title Swedish=Säkerhetskopiera utbytta filer + Width=350 + Height=280 + Font Name=Helv + Font Size=8 + item: Push Button + Rectangle=188 234 244 251 + Variable=DIRECTION + Value=N + Create Flags=01010000000000010000000000000001 + Text=&Next > + Text French=&Suivant> + Text German=&Weiter> + Text Portuguese=&Próximo> + Text Spanish=&Siguiente > + Text Italian=&Avanti > + Text Danish=&Næste> + Text Dutch=&Volgende> + Text Norwegian=&Neste> + Text Swedish=&Nästa > + end + item: Push Button + Rectangle=131 234 188 251 + Variable=DIRECTION + Value=B + Create Flags=01010000000000010000000000000000 + Text=< &Back + Text French=<&Retour + Text German=<&Zurück + Text Portuguese=<&Retornar + Text Spanish=<&Retroceder + Text Italian=< &Indietro + Text Danish=<&Tilbage + Text Dutch=<&Terug + Text Norwegian=<&Tilbake + Text Swedish=< &Tillbaka + end + item: Push Button + Rectangle=278 234 330 251 + Action=3 + Create Flags=01010000000000010000000000000000 + Text=Cancel + Text French=Annuler + Text German=Abbrechen + Text Portuguese=Cancelar + Text Spanish=Cancelar + Text Italian=Annulla + Text Danish=Annuller + Text Dutch=Annuleren + Text Norwegian=Avbryt + Text Swedish=Avbryt + end + item: Static + Rectangle=11 221 329 223 + Action=3 + Create Flags=01010000000000000000000000000111 + end + item: Static + Rectangle=108 46 320 98 + Create Flags=01010000000000000000000000000000 + Text=This installation program can create backup copies of all files replaced during the installation. These files will be used when the software is uninstalled and a rollback is requested. If backup copies are not created, you will only be able to uninstall the software and not roll the system back to a previous state. + Text= + Text=Do you want to create backups of replaced files? + Text French=Le programme d'installation peut créer des copies de sauvegarde de tous les fichiers remplacés pendant l'installation. Ces fichiers sont utilisés au cas où le logiciel est désinstallé et que l'on procède à la reprise du système. Si les copies de sauvegarde ne sont pas créées, on ne pourra que désinstaller le logiciel sans reprendre le système à un état précédent. Voulez-vous créer une sauvegarde des fichiers remplacés ? + Text German=Dieses Installationsprogramm kann Sicherungskopien von allen während der Installation ersetzten Dateien erstellen. Diese Dateien werden zur Rückgängigmachung der Installation und bei Anforderung eines Rollbacks verwendet. Ohne Sicherungskopien ist nur eine Rückgängigmachung der Installation möglich, nicht aber ein Rollback des Systems. Sicherungskopien der ersetzten Dateien erstellen? + Text Portuguese=Este programa de instalação pode criar cópias de segurança de todos os ficheiros substituídos durante a instalação. Estes ficheiros serão utilizados quando o programa for desinstalado e for requisitada uma retomada. Se as cópias de segurança não forem criadas, só poderá desinstalar o programa e não pode retomar um estado anterior do sistema. Deseja criar cópias de segurança dos ficheiros substituídos? + Text Spanish=Este programa de instalación puede crear copias de seguridad de todos los archivos reemplazados durante la instalación. Estos archivos se utilizarán cuando se desinstale el software y se solicite volver al estado anterior. Si no se crean copias de seguridad, únicamente podrá desinstalar el software y no podrá devolver el sistema al estado anterior. ¿Desea crear archivos de seguridad de los archivos reemplazados? + Text Italian=Questo programma di installazione può creare copie di backup di tutti i file sostituiti durante l’installazione. Questi file saranno usati quando il software sarà disinstallato e sarà richiesto un ritorno allo stato precedente. Se non crei le copie di backup, potrai solo disinstallare il software, ma non potrai riportare il sistema allo stato precedente. Vuoi creare i file di backup dei file sostituiti? + Text Danish=Dette installationsprogram kan oprette sikkerhedskopier af alle filer, som erstattes under installationen. Disse filer benyttes, når softwaren fjernes, og den tidligere systemkonfiguration genetableres. Hvis der ikke oprettes sikkerhedskopier, kan du kun fjerne den installerede software og ikke genetablere den tidligere systemkonfiguration. Vil du oprette sikkerhedskopier af filer, som erstattes? + Text Dutch=Dit installatieprogramma kan kopieën maken van alle bestanden die tijdens de installatie worden vervangen. Deze worden dan gebruikt als de software-installatie ongedaan wordt gemaakt en u het systeem wilt laten terugkeren naar de oorspronkelijke staat. Als er geen back-up kopieën worden gemaakt, kunt u de software enkel verwijderen maar het systeem niet in de oorspronkelijke staat terugbrengen. Wilt u een back-up maken van de vervangen bestanden? + Text Norwegian=Dette installasjonsprogrammet kan lage sikkerhetskopier av alle filer som blir erstattet under installasjonen. Disse filene vil tas i bruk når programvaren er avinstallert og det er behov for tilbakestilling. Hvis det ikke er laget sikkerhetskopier, kan du kun avinstallere programvaren og ikke stille systemet tilbake til tidligere status. Ønsker du å lage sikkerhetskopier av de filene som blir erstattet nå? + Text Swedish=Installationsprogrammet kan skapa säkerhetskopior av alla filer som byts ut under installationen. Dessa filer kan sedan användas när programvaran avinstalleras och du begär rollback. Om du då inte har några säkerhetskopior kan du bara avinstallera programvaran, inte återskapa systemet i dess tidigare skick. Vill du göra säkerhetskopior av de ersatta filerna? + end + item: Radio Button + Rectangle=141 106 265 136 + Variable=DOBACKUP + Create Flags=01010000000000010000000000001001 + Text=&Yes, make backups + Text=N&o, do not make backups + Text= + Text French=&Oui + Text French=N&on + Text French= + Text German=&Ja + Text German=N&ein + Text German= + Text Portuguese=&Sim + Text Portuguese=Nã&o + Text Portuguese= + Text Spanish=&Sí + Text Spanish=N&o + Text Spanish= + Text Italian=&Sì + Text Italian=N&o + Text Italian= + Text Danish=&Ja + Text Danish=&Nej + Text Danish= + Text Dutch=&Ja + Text Dutch=N&ee + Text Dutch= + Text Norwegian=&Ja + Text Norwegian=&Nei + Text Norwegian= + Text Swedish=&Ja + Text Swedish=N&ej + Text Swedish= + end + item: Static + Control Name=BACK2 + Rectangle=108 173 320 208 + Action=1 + Create Flags=01010000000000000000000000000111 + Text=Backup File Destination Directory + Text French=Répertoire de destination des fichiers de sauvegarde + Text German=Zielverzeichnis für die Sicherungsdatei + Text Portuguese=Directório de destino de ficheiro de segurança + Text Spanish=Directorio de Destino de los Archivos de Seguridad + Text Italian=Directory di destinazione dei file di backup + Text Danish=Destinationsbibliotek til sikkerhedskopier + Text Dutch=Doeldirectory backup-bestand + Text Norwegian=Målkatalog for sikkerhetskopier + Text Swedish=Katalog för säkerhetskopierade filer + end + item: Push Button + Control Name=BACK3 + Rectangle=265 185 318 203 + Variable=BACKUP_SAVE + Value=%BACKUP% + Destination Dialog=1 + Action=2 + Create Flags=01010000000000010000000000000000 + Text=B&rowse... + Text French=P&arcourir + Text German=B&lättern... + Text Portuguese=P&rocurar + Text Spanish=V&isualizar... + Text Italian=Sfoglia... + Text Danish=&Gennemse... + Text Dutch=B&laderen... + Text Norwegian=Bla igjennom + Text Swedish=&Bläddra + end + item: Static + Control Name=BACK4 + Rectangle=129 188 254 200 + Destination Dialog=2 + Create Flags=01010000000000000000000000000000 + Text=%BACKUP% + Text French=%BACKUP% + Text German=%BACKUP% + Text Portuguese=%BACKUP% + Text Spanish=%BACKUP% + Text Italian=%BACKUP% + Text Danish=%BACKUP% + Text Dutch=%BACKUP% + Text Norwegian=%BACKUP% + Text Swedish=%BACKUP% + end + item: Static + Rectangle=108 11 323 36 + Create Flags=01010000000000000000000000000000 + Flags=0000000000000001 + Name=Times New Roman + Font Style=-24 0 0 0 700 255 0 0 0 3 2 1 18 + Text=Backup Replaced Files + Text French=Sélectionner les composants + Text German=Komponenten auswählen + Text Spanish=Seleccione componentes + Text Italian=Selezionare i componenti + end + item: If/While Statement + Variable=DOBACKUP + Value=B + end + item: Set Control Attribute + Control Name=BACK3 + Operation=1 + end + item: Set Control Attribute + Control Name=BACK4 + Operation=1 + end + item: Else Statement + end + item: Set Control Attribute + Control Name=BACK3 + end + item: Set Control Attribute + Control Name=BACK4 + end + item: End Block + end + end + item: Dialog + Title=Select Destination Directory + Title French=Choisissez le répertoire de destination + Title German=Zielverzeichnis wählen + Title Portuguese=Seleccionar Directório de Destino + Title Spanish=Seleccione el Directorio de Destino + Title Italian=Seleziona Directory di destinazione + Title Danish=Vælg Destinationsbibliotek + Title Dutch=Kies Doeldirectory + Title Norwegian=Velg målkatalog + Title Swedish=Välj destinationskalatog + Width=276 + Height=216 + Font Name=Helv + Font Size=8 + item: Listbox + Rectangle=6 3 200 186 + Variable=BACKUP + Create Flags=01010000100000010000000101000000 + Flags=0000110000100010 + Text=%BACKUP% + Text= + Text French=%BACKUP% + Text French= + Text German=%BACKUP% + Text German= + Text Portuguese=%BACKUP% + Text Portuguese= + Text Spanish=%BACKUP% + Text Spanish= + Text Italian=%BACKUP% + Text Italian= + Text Danish=%BACKUP% + Text Danish= + Text Dutch=%BACKUP% + Text Dutch= + Text Norwegian=%BACKUP% + Text Norwegian= + Text Swedish=%BACKUP% + Text Swedish= + end + item: Push Button + Rectangle=209 8 265 26 + Create Flags=01010000000000010000000000000001 + Text=OK + Text French=OK + Text German=OK + Text Portuguese=OK + Text Spanish=ACEPTAR + Text Italian=OK + Text Danish=OK + Text Dutch=OK + Text Norwegian=OK + Text Swedish=OK + end + item: Push Button + Rectangle=209 31 265 50 + Variable=BACKUP + Value=%BACKUP_SAVE% + Create Flags=01010000000000010000000000000000 + Flags=0000000000000001 + Text=Cancel + Text French=Annuler + Text German=Abbrechen + Text Portuguese=Cancelar + Text Spanish=Cancelar + Text Italian=Annulla + Text Danish=Slet + Text Dutch=Annuleren + Text Norwegian=Avbryt + Text Swedish=Avbryt + end + end +end +item: Custom Dialog Set + Name=Select Components + Display Variable=DISPLAY + item: Dialog + Title=%APPTITLE% Installation + Title French=Installation de %APPTITLE% + Title German=Installation von %APPTITLE% + Title Spanish=Instalación de %APPTITLE% + Title Italian=Installazione di %APPTITLE% + Width=339 + Height=280 + Font Name=Helv + Font Size=8 + item: Push Button + Rectangle=188 234 244 253 + Variable=DIRECTION + Value=N + Create Flags=01010000000000010000000000000001 + Text=&Next > + Text French=&Suite > + Text German=&Weiter > + Text Spanish=&Siguiente > + Text Italian=&Avanti > + end + item: Push Button + Rectangle=131 234 188 253 + Variable=DIRECTION + Value=B + Create Flags=01010000000000010000000000000000 + Text=< &Back + Text French=< &Retour + Text German=< &Zurück + Text Spanish=< &Atrás + Text Italian=< &Indietro + end + item: Push Button + Rectangle=264 234 320 253 + Action=3 + Create Flags=01010000000000010000000000000000 + Text=&Cancel + Text French=&Annuler + Text German=&Abbrechen + Text Spanish=&Cancelar + Text Italian=&Annulla + end + item: Checkbox + Rectangle=108 66 313 156 + Variable=COMPONENTS + Create Flags=01010000000000010000000000000011 + Flags=0000000000000110 + Text=Python interpreter and libraries + Text=Tcl/Tk (Tkinter, IDLE, pydoc) + Text=Python HTML docs + Text=Python utility scripts (Tools/) + Text=Python test suite (Lib/test/) + Text= + Text French=Python interpreter, library and IDLE + Text French=Python HTML docs + Text French=Python utility scripts (Tools/) + Text French=Python test suite (Lib/test/) + Text French= + Text German=Python interpreter, library and IDLE + Text German=Python HTML docs + Text German=Python utility scripts (Tools/) + Text German=Python test suite (Lib/test/) + Text German= + Text Spanish=Python interpreter, library and IDLE + Text Spanish=Python HTML docs + Text Spanish=Python utility scripts (Tools/) + Text Spanish=Python test suite (Lib/test/) + Text Spanish= + Text Italian=Python interpreter, library and IDLE + Text Italian=Python HTML docs + Text Italian=Python utility scripts (Tools/) + Text Italian=Python test suite (Lib/test/) + Text Italian= + end + item: Static + Rectangle=108 45 320 63 + Create Flags=01010000000000000000000000000000 + Text=Choose which components to install by checking the boxes below. + Text French=Choisissez les composants que vous voulez installer en cochant les cases ci-dessous. + Text German=Wählen Sie die zu installierenden Komponenten, indem Sie in die entsprechenden Kästchen klicken. + Text Spanish=Elija los componentes que desee instalar marcando los cuadros de abajo. + Text Italian=Scegliere quali componenti installare selezionando le caselle sottostanti. + end + item: Push Button + Rectangle=188 203 269 220 + Destination Dialog=1 + Action=2 + Enabled Color=00000000000000000000000011111111 + Create Flags=01010000000000010000000000000000 + Text=Advanced Options ... + end + item: Static + Rectangle=10 225 320 226 + Action=3 + Create Flags=01010000000000000000000000000111 + end + item: Static + Rectangle=108 10 323 43 + Create Flags=01010000000000000000000000000000 + Flags=0000000000000001 + Name=Times New Roman + Font Style=-24 0 0 0 700 255 0 0 0 3 2 1 18 + Text=Select Components + Text French=Sélectionner les composants + Text German=Komponenten auswählen + Text Spanish=Seleccione componentes + Text Italian=Selezionare i componenti + end + item: Static + Rectangle=251 180 311 193 + Variable=COMPONENTS + Value=MAINDIR + Create Flags=01010000000000000000000000000010 + end + item: Static + Rectangle=251 168 311 179 + Variable=COMPONENTS + Create Flags=01010000000000000000000000000010 + end + item: Static + Rectangle=123 168 234 181 + Create Flags=01010000000000000000000000000000 + Text=Disk Space Required: + Text French=Espace disque requis : + Text German=Notwendiger Speicherplatz: + Text Spanish=Espacio requerido en el disco: + Text Italian=Spazio su disco necessario: + end + item: Static + Rectangle=123 180 234 193 + Create Flags=01010000000000000000000000000000 + Text=Disk Space Remaining: + Text French=Espace disque disponible : + Text German=Verbleibender Speicherplatz: + Text Spanish=Espacio en disco disponible: + Text Italian=Spazio su disco disponibile: + end + item: Static + Rectangle=108 158 320 196 + Action=1 + Create Flags=01010000000000000000000000000111 + end + item: If/While Statement + Variable=DLG_EVENT_TYPE + Value=VERIFY + end + item: Remark + Text=If they're installing Tcl/Tk, Tools, or the test suite, doesn't make much sense unless they're installing Python too. + end + item: If/While Statement + Variable=COMPONENTS + Value=BDE + Flags=00001010 + end + item: If/While Statement + Variable=COMPONENTS + Value=A + Flags=00000011 + end + item: Display Message + Title=Are you sure? + Text=Installing Tcl/Tk, Tools or the test suite doesn't make much sense unless you install the Python interpreter and libraries too. + Text= + Text=Click Yes if that's really what you want. + Flags=00101101 + end + item: Remark + Text=Nothing -- just proceed to the next dialog. + end + item: Else Statement + end + item: Remark + Text=Return to the dialog. + end + item: Set Variable + Variable=DLG_EVENT_TYPE + end + item: End Block + end + item: End Block + end + item: End Block + end + item: End Block + end + end + item: Dialog + Title=Advanced Options + Width=339 + Height=213 + Font Name=Helv + Font Size=8 + item: Radio Button + Control Name=ADMIN2 + Rectangle=11 46 90 76 + Variable=SELECT_ADMIN + Enabled Color=00000000000000001111111111111111 + Create Flags=01010000000000010000000000001001 + Text=Admin install + Text=Non-Admin installl + Text= + end + item: Push Button + Rectangle=188 170 244 189 + Variable=DIRECTION + Value=N + Create Flags=01010000000000010000000000000001 + Text=OK + Text French=&Suite > + Text German=&Weiter > + Text Spanish=&Siguiente > + Text Italian=&Avanti > + end + item: Static + Rectangle=5 3 326 83 + Action=1 + Enabled Color=00000000000000001111111111111111 + Create Flags=01010000000000000000000000000111 + end + item: Static + Control Name=ADMIN1 + Rectangle=11 11 321 45 + Enabled Color=00000000000000001111111111111111 + Create Flags=01010000000000000000000000000000 + Text=By default, the install records settings in the per-machine area of the registry (HKLM), and installs the Python and C runtime DLLs to %SYS32%. Choose "Non-Admin install" if you would prefer settings made in the per-user registry (HKCU), and DLLs installed in %MAINDIR%. + end + item: Static + Rectangle=5 90 326 157 + Action=1 + Enabled Color=00000000000000001111111111111111 + Create Flags=01010000000000000000000000000111 + end + item: Checkbox + Rectangle=11 121 243 151 + Variable=TASKS + Enabled Color=00000000000000001111111111111111 + Create Flags=01010000000000010000000000000011 + Text=Register file extensions (.py, .pyw, .pyc, .pyo) + Text=Create Start Menu shortcuts + Text= + end + item: Static + Rectangle=11 103 320 121 + Enabled Color=00000000000000001111111111111111 + Create Flags=01010000000000000000000000000000 + Text=Choose tasks to perform by checking the boxes below. + end + item: If/While Statement + Variable=DLG_EVENT_TYPE + Value=INIT + end + item: If/While Statement + Variable=DOADMIN + Value=1 + end + item: Set Control Attribute + Control Name=ADMIN2 + end + item: Else Statement + end + item: Set Control Text + Control Name=ADMIN1 + Control Text=This section is available only if logged in to an account with Administrator privileges. + end + item: Set Control Attribute + Control Name=ADMIN2 + Operation=1 + end + item: End Block + end + item: End Block + end + end +end +item: Custom Dialog Set + Name=Select Program Manager Group + Display Variable=DISPLAY + item: Dialog + Title=%APPTITLE% Installation + Title French=Installation de %APPTITLE% + Title German=Installation von %APPTITLE% + Title Spanish=Instalación de %APPTITLE% + Title Italian=Installazione di %APPTITLE% + Width=339 + Height=280 + Font Name=Helv + Font Size=8 + item: Push Button + Rectangle=188 234 244 253 + Variable=DIRECTION + Value=N + Create Flags=01010000000000010000000000000001 + Text=&Next > + Text French=&Suite > + Text German=&Weiter > + Text Spanish=&Siguiente > + Text Italian=&Avanti > + end + item: Push Button + Rectangle=131 234 188 253 + Variable=DIRECTION + Value=B + Create Flags=01010000000000010000000000000000 + Flags=0000000000000001 + Text=< &Back + Text French=< &Retour + Text German=< &Zurück + Text Spanish=< &Atrás + Text Italian=< &Indietro + end + item: Push Button + Rectangle=264 234 320 253 + Action=3 + Create Flags=01010000000000010000000000000000 + Text=&Cancel + Text French=&Annuler + Text German=&Abbrechen + Text Spanish=&Cancelar + Text Italian=&Annulla + end + item: Static + Rectangle=10 225 320 226 + Action=3 + Create Flags=01010000000000000000000000000111 + end + item: Static + Rectangle=108 10 323 53 + Create Flags=01010000000000000000000000000000 + Flags=0000000000000001 + Name=Times New Roman + Font Style=-24 0 0 0 700 255 0 0 0 3 2 1 18 + Text=Select Start Menu Group + Text French=Sélectionner le groupe du Gestionnaire de programme + Text German=Bestimmung der Programm-Managergruppe + Text Spanish=Seleccione grupo del Administrador de programas + Text Italian=Selezionare il gruppo ProgMan + end + item: Static + Rectangle=108 35 320 65 + Create Flags=01010000000000000000000000000000 + Text=Enter the name of the Start Menu program group to which to add the %APPTITLE% icons: + Text French=Entrez le nom du groupe du Gestionnaire de programme dans lequel vous souhaitez ajouter les icônes de %APPTITLE% : + Text German=Geben Sie den Namen der Programmgruppe ein, der das Symbol %APPTITLE% hinzugefügt werden soll: + Text Spanish=Escriba el nombre del grupo del Administrador de programas en el que desea agregar los iconos de %APPTITLE%: + Text Italian=Inserire il nome del gruppo Program Manager per aggiungere le icone %APPTITLE% a: + end + item: Combobox + Rectangle=108 56 320 219 + Variable=GROUP + Create Flags=01010000001000010000001100000001 + Flags=0000000000000001 + Text=%GROUP% + Text= + Text French=%GROUP% + Text German=%GROUP% + Text Spanish=%GROUP% + Text Italian=%GROUP% + end + end +end +item: Custom Dialog Set + Name=Start Installation + Display Variable=DISPLAY + item: Dialog + Title=%APPTITLE% Installation + Title French=Installation de %APPTITLE% + Title German=Installation von %APPTITLE% + Title Spanish=Instalación de %APPTITLE% + Title Italian=Installazione di %APPTITLE% + Width=339 + Height=280 + Font Name=Helv + Font Size=8 + item: Push Button + Rectangle=188 234 244 253 + Variable=DIRECTION + Value=N + Create Flags=01010000000000010000000000000001 + Text=&Next > + Text French=&Suite > + Text German=&Weiter > + Text Spanish=&Siguiente > + Text Italian=&Avanti > + end + item: Push Button + Rectangle=131 234 188 253 + Variable=DIRECTION + Value=B + Create Flags=01010000000000010000000000000000 + Text=< &Back + Text French=< &Retour + Text German=< &Zurück + Text Spanish=< &Atrás + Text Italian=< &Indietro + end + item: Push Button + Rectangle=264 234 320 253 + Action=3 + Create Flags=01010000000000010000000000000000 + Text=&Cancel + Text French=&Annuler + Text German=&Abbrechen + Text Spanish=&Cancelar + Text Italian=&Annulla + end + item: Static + Rectangle=10 225 320 226 + Action=3 + Create Flags=01010000000000000000000000000111 + end + item: Static + Rectangle=108 10 323 53 + Create Flags=01010000000000000000000000000000 + Flags=0000000000000001 + Name=Times New Roman + Font Style=-24 0 0 0 700 255 0 0 0 3 2 1 18 + Text=Ready to Install! + Text French=Prêt à installer ! + Text German=Installationsbereit! + Text Spanish=¡Preparado para la instalación! + Text Italian=Pronto per l'installazione! + end + item: Static + Rectangle=108 40 320 62 + Create Flags=01010000000000000000000000000000 + Text=Click the Next button to install %APPTITLE%, or the Back button to change choices: + Text French=Vous êtes maintenant prêt à installer les fichiers %APPTITLE%. + Text French= + Text French=Cliquez sur le bouton Suite pour commencer l'installation ou sur le bouton Retour pour entrer les informations d'installation à nouveau. + Text German=Sie können %APPTITLE% nun installieren. + Text German= + Text German=Klicken Sie auf "Weiter", um mit der Installation zu beginnen. Klicken Sie auf "Zurück", um die Installationsinformationen neu einzugeben. + Text Spanish=Ya está listo para instalar %APPTITLE%. + Text Spanish= + Text Spanish=Presione el botón Siguiente para comenzar la instalación o presione Atrás para volver a ingresar la información para la instalación. + Text Italian=Ora è possibile installare %APPTITLE%. + Text Italian= + Text Italian=Premere il pulsante Avanti per avviare l'installazione o il pulsante Indietro per reinserire le informazioni di installazione. + end + item: Editbox + Rectangle=108 66 324 219 + Help Context=16711681 + Enabled Color=00000000000000001111111111111111 + Create Flags=01010000100000000001100011000100 + Text=%SUMMARY% + end + end +end +item: Remark +end +item: If/While Statement + Variable=DISPLAY + Value=Select Destination Directory +end +item: Remark + Text=User may have changed MAINDIR, so reset BACKUP to match. +end +item: Set Variable + Variable=BACKUP + Value=%MAINDIR%\BACKUP +end +item: End Block +end +item: Remark +end +item: End Block +end +item: Remark +end +item: Remark + Text=BEGIN WIZARD STUFF ----------------------------------------------------------------------------------------------------------------------------- +end +item: Remark + Text=When the BACKUP feature is enabled, the BACKUPDIR is initialized +end +item: If/While Statement + Variable=DOBACKUP + Value=A +end +item: Set Variable + Variable=BACKUPDIR + Value=%BACKUP% +end +item: End Block +end +item: Remark + Text=The BRANDING information is written to the INI file on the installation media. +end +item: If/While Statement + Variable=BRANDING + Value=1 +end +item: If/While Statement + Variable=DOBRAND + Value=1 +end +item: Edit INI File + Pathname=%INST%\CUSTDATA.INI + Settings=[Registration] + Settings=NAME=%NAME% + Settings=COMPANY=%COMPANY% + Settings= +end +item: End Block +end +item: End Block +end +item: Remark + Text=Begin writing to the INSTALL.LOG +end +item: Open/Close INSTALL.LOG +end +item: Remark + Text=Check free disk space calculates free disk space as well as component sizes. +end +item: Remark + Text=It should be located before all Install File actions. +end +item: Check Disk Space + Component=COMPONENTS +end +item: Remark + Text=This include script allows uninstall support +end +item: Remark + Text=Note from Tim: this is our own Uninstal.wse, a copy of Wise's except +end +item: Remark + Text=it writes to HKCU (instead of HKLM) if the user doesn't have admin privs. +end +item: Include Script + Pathname=.\Uninstal.wse +end +item: Remark + Text=Note from Tim: these seeming no-ops actually convert to short filenames. +end +item: Set Variable + Variable=COMMON + Value=%COMMON% + Flags=00010100 +end +item: Set Variable + Variable=MAINDIR + Value=%MAINDIR% + Flags=00010100 +end +item: Remark + Text=This IF/THEN/ELSE reads the correct registry entries for shortcut/icon placement +end +item: Check Configuration + Flags=10111011 +end +item: Get Registry Key Value + Variable=STARTUPDIR + Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders + Default=%WIN%\Start Menu\Programs\StartUp + Value Name=StartUp + Flags=00000010 +end +item: Get Registry Key Value + Variable=DESKTOPDIR + Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders + Default=%WIN%\Desktop + Value Name=Desktop + Flags=00000010 +end +item: Get Registry Key Value + Variable=STARTMENUDIR + Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders + Default=%WIN%\Start Menu + Value Name=Start Menu + Flags=00000010 +end +item: Get Registry Key Value + Variable=GROUPDIR + Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders + Default=%WIN%\Start Menu\Programs + Value Name=Programs + Flags=00000010 +end +item: Get Registry Key Value + Variable=CSTARTUPDIR + Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders + Default=%STARTUPDIR% + Value Name=Common Startup + Flags=00000100 +end +item: Get Registry Key Value + Variable=CDESKTOPDIR + Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders + Default=%DESKTOPDIR% + Value Name=Common Desktop + Flags=00000100 +end +item: Get Registry Key Value + Variable=CSTARTMENUDIR + Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders + Default=%STARTMENUDIR% + Value Name=Common Start Menu + Flags=00000100 +end +item: Get Registry Key Value + Variable=CGROUPDIR + Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders + Default=%GROUPDIR% + Value Name=Common Programs + Flags=00000100 +end +item: Else Statement +end +item: Remark + Text=Note from Tim: the Wizard left this block empty! +end +item: Remark + Text=Perhaps it's only relevant on Windows 3.1. +end +item: End Block +end +item: Remark + Text=END WIZARD STUFF ----------------------------------------------------------------------------------------------------------------------------- +end +item: Remark +end +item: If/While Statement + Variable=SELECT_ADMIN + Value=B +end +item: Remark + Text=The user chose a non-admin install in "Advanced Options". +end +item: Remark + Text=This should come after the include of Uninstal.wse above, because +end +item: Remark + Text=writing uninstall info to HKCU is ineffective except under Win2K. +end +item: Set Variable + Variable=DOADMIN + Value=0 +end +item: End Block +end +item: Remark +end +item: Set Variable + Variable=CGROUP_SAVE + Value=%GROUP% +end +item: If/While Statement + Variable=TASKS + Value=B + Flags=00000010 +end +item: If/While Statement + Variable=DOADMIN + Value=1 +end +item: Set Variable + Variable=GROUP + Value=%CGROUPDIR%\%GROUP% +end +item: Else Statement +end +item: Set Variable + Variable=GROUP + Value=%GROUPDIR%\%GROUP% +end +item: End Block +end +item: End Block +end +item: Remark +end +item: Remark + Text=Long section to install files. +end +item: Remark +end +item: If/While Statement + Variable=DOADMIN + Value=1 +end +item: Set Variable + Variable=DLLDEST + Value=%SYS32% +end +item: Else Statement +end +item: Set Variable + Variable=DLLDEST + Value=%MAINDIR% +end +item: End Block +end +item: Remark +end +item: Remark + Text=Install the license even if they deselect everything . +end +item: Install File + Source=..\license + Destination=%MAINDIR%\LICENSE.txt + Flags=0000000000000010 +end +item: Install File + Source=..\readme + Destination=%MAINDIR%\README.txt + Flags=0000000000000010 +end +item: Install File + Source=..\misc\news + Destination=%MAINDIR%\NEWS.txt + Flags=0000000000000010 +end +item: Remark + Text=Icons -- always install so that the uninstaller can use them for its own display. +end +item: Install File + Source=..\pc\pycon.ico + Destination=%MAINDIR%\pycon.ico + Flags=0000000010000010 +end +item: Install File + Source=..\pc\pyc.ico + Destination=%MAINDIR%\pyc.ico + Flags=0000000010000010 +end +item: Install File + Source=..\pc\py.ico + Destination=%MAINDIR%\py.ico + Flags=0000000010000010 +end +item: Remark +end +item: Remark + Text=These arrange to (recursively!) delete all .pyc and .pyo files at uninstall time. +end +item: Remark + Text=This "does the right thing": any directories left empty at the end are removed. +end +item: Add Text to INSTALL.LOG + Text=File Tree: %MAINDIR%\*.pyc +end +item: Add Text to INSTALL.LOG + Text=File Tree: %MAINDIR%\*.pyo +end +item: Remark +end +item: Remark + Text=A: interpreter and libraries +end +item: If/While Statement + Variable=COMPONENTS + Value=A + Flags=00000010 +end +item: Remark + Text=Executables +end +item: Install File + Source=.\python.exe + Destination=%MAINDIR%\python.exe + Flags=0000000000000010 +end +item: Install File + Source=.\pythonw.exe + Destination=%MAINDIR%\pythonw.exe + Flags=0000000000000010 +end +item: Install File + Source=.\w9xpopen.exe + Destination=%MAINDIR%\w9xpopen.exe + Flags=0000000000000010 +end +item: Remark +end +item: Remark + Text=Extension module DLLs (.pyd); keep in synch with libs directory next +end +item: Install File + Source=.\_winreg.pyd + Destination=%MAINDIR%\DLLs\_winreg.pyd + Description=Extension modules + Flags=0000000000000010 +end +item: Install File + Source=.\_csv.pyd + Destination=%MAINDIR%\DLLs\_csv.pyd + Flags=0000000000000010 +end +item: Install File + Source=.\_sre.pyd + Destination=%MAINDIR%\DLLs\_sre.pyd + Flags=0000000000000010 +end +item: Install File + Source=.\_ssl.pyd + Destination=%MAINDIR%\DLLs\_ssl.pyd + Flags=0000000000000010 +end +item: Install File + Source=.\_symtable.pyd + Destination=%MAINDIR%\DLLs\_symtable.pyd + Flags=0000000000000010 +end +item: Install File + Source=.\_testcapi.pyd + Destination=%MAINDIR%\DLLs\_testcapi.pyd + Flags=0000000000000010 +end +item: Install File + Source=.\_tkinter.pyd + Destination=%MAINDIR%\DLLs\_tkinter.pyd + Flags=0000000000000010 +end +item: Install File + Source=.\_socket.pyd + Destination=%MAINDIR%\DLLs\_socket.pyd + Flags=0000000000000010 +end +item: Install File + Source=.\_bsddb.pyd + Destination=%MAINDIR%\DLLs\_bsddb.pyd + Flags=0000000000000010 +end +item: Install File + Source=.\bz2.pyd + Destination=%MAINDIR%\DLLs\bz2.pyd + Flags=0000000000000010 +end +item: Install File + Source=.\datetime.pyd + Destination=%MAINDIR%\DLLs\datetime.pyd + Flags=0000000000000010 +end +item: Install File + Source=.\mmap.pyd + Destination=%MAINDIR%\DLLs\mmap.pyd + Flags=0000000000000010 +end +item: Install File + Source=.\parser.pyd + Destination=%MAINDIR%\DLLs\parser.pyd + Flags=0000000000000010 +end +item: Install File + Source=.\pyexpat.pyd + Destination=%MAINDIR%\DLLs\pyexpat.pyd + Flags=0000000000000010 +end +item: Install File + Source=.\select.pyd + Destination=%MAINDIR%\DLLs\select.pyd + Flags=0000000000000010 +end +item: Install File + Source=.\unicodedata.pyd + Destination=%MAINDIR%\DLLs\unicodedata.pyd + Flags=0000000000000010 +end +item: Install File + Source=.\winsound.pyd + Destination=%MAINDIR%\DLLs\winsound.pyd + Flags=0000000000000010 +end +item: Install File + Source=.\zlib.pyd + Destination=%MAINDIR%\DLLs\zlib.pyd + Flags=0000000000000010 +end +item: Remark +end +item: Remark + Text=Link libraries (.lib); keep in synch with DLLs above, except that the Python lib lives here. +end +item: Install File + Source=.\_winreg.lib + Destination=%MAINDIR%\libs\_winreg.lib + Description=Link library files + Flags=0000000000000010 +end +item: Install File + Source=.\_csv.lib + Destination=%MAINDIR%\libs\_csv.lib + Flags=0000000000000010 +end +item: Install File + Source=.\_sre.lib + Destination=%MAINDIR%\libs\_sre.lib + Flags=0000000000000010 +end +item: Install File + Source=.\_ssl.lib + Destination=%MAINDIR%\libs\_ssl.lib + Flags=0000000000000010 +end +item: Install File + Source=.\_symtable.lib + Destination=%MAINDIR%\libs\_symtable.lib + Flags=0000000000000010 +end +item: Install File + Source=.\_testcapi.lib + Destination=%MAINDIR%\libs\_testcapi.lib + Flags=0000000000000010 +end +item: Install File + Source=.\_tkinter.lib + Destination=%MAINDIR%\libs\_tkinter.lib + Description=Extension modules + Flags=0000000000000010 +end +item: Install File + Source=.\_socket.lib + Destination=%MAINDIR%\libs\_socket.lib + Flags=0000000000000010 +end +item: Install File + Source=.\_bsddb.lib + Destination=%MAINDIR%\libs\_bsddb.lib + Flags=0000000000000010 +end +item: Install File + Source=.\bz2.lib + Destination=%MAINDIR%\libs\bz2.lib + Flags=0000000000000010 +end +item: Install File + Source=.\datetime.lib + Destination=%MAINDIR%\libs\datetime.lib + Flags=0000000000000010 +end +item: Install File + Source=.\mmap.lib + Destination=%MAINDIR%\libs\mmap.lib + Flags=0000000000000010 +end +item: Install File + Source=.\parser.lib + Destination=%MAINDIR%\libs\parser.lib + Flags=0000000000000010 +end +item: Install File + Source=.\pyexpat.lib + Destination=%MAINDIR%\libs\pyexpat.lib + Flags=0000000000000010 +end +item: Install File + Source=.\select.lib + Destination=%MAINDIR%\libs\select.lib + Flags=0000000000000010 +end +item: Install File + Source=.\unicodedata.lib + Destination=%MAINDIR%\libs\unicodedata.lib + Flags=0000000000000010 +end +item: Install File + Source=.\winsound.lib + Destination=%MAINDIR%\libs\winsound.lib + Flags=0000000000000010 +end +item: Install File + Source=.\zlib.lib + Destination=%MAINDIR%\libs\zlib.lib + Flags=0000000000000010 +end +item: Remark +end +item: Install File + Source=.\python%_pymajor_%%_pyminor_%.lib + Destination=%MAINDIR%\libs\python%_PYMAJOR_%%_PYMINOR_%.lib + Flags=0000000000000010 +end +item: Remark +end +item: Remark + Text=Main Python DLL +end +item: Remark + Text=Tell Wise it's OK to delete the Python DLL at uninstall time, +end +item: Remark + Text=despite that we (may) write it into a system directory. +end +item: Add Text to INSTALL.LOG + Text=Non-System File: +end +item: Install File + Source=.\python%_pymajor_%%_pyminor_%.dll + Destination=%DLLDEST%\python%_PYMAJOR_%%_PYMINOR_%.dll + Flags=0000000000000010 +end +item: Remark +end +item: Remark + Text=Libraries (Lib/) +end +item: Install File + Source=..\lib\*.py + Destination=%MAINDIR%\Lib + Description=Library Modules + Flags=0000000000000010 +end +item: Remark +end +item: Install File + Source=..\lib\bsddb\*.py + Destination=%MAINDIR%\Lib\bsddb + Description=Berkeley database package + Flags=0000000100000010 +end +item: Remark +end +item: Install File + Source=..\lib\compiler\*.py + Destination=%MAINDIR%\Lib\compiler + Description=Python compiler written in Python + Flags=0000000000000010 +end +item: Remark +end +item: Install File + Source=..\lib\distutils\*.py + Destination=%MAINDIR%\Lib\distutils + Description=Distribution utility modules + Flags=0000000000000010 +end +item: Install File + Source=..\lib\distutils\readme + Destination=%MAINDIR%\Lib\distutils\README.txt + Flags=0000000000000010 +end +item: Install File + Source=..\lib\distutils\command\*.py + Destination=%MAINDIR%\Lib\distutils\command + Flags=0000000000000010 +end +item: Install File + Source=..\lib\distutils\command\wininst.exe + Destination=%MAINDIR%\Lib\distutils\command\wininst.exe + Flags=0000000000000010 +end +item: Install File + Source=..\lib\distutils\command\command_template + Destination=%MAINDIR%\Lib\distutils\command\command_template + Flags=0000000000000010 +end +item: Remark +end +item: Install File + Source=..\lib\email\*.py + Destination=%MAINDIR%\Lib\email + Description=Library email package + Flags=0000000000000010 +end +item: Install File + Source=..\lib\email\test\*.py + Destination=%MAINDIR%\Lib\email\test + Description=email tests + Flags=0000000000000010 +end +item: Install File + Source=..\lib\email\test\data\*.txt + Destination=%MAINDIR%\Lib\email\test\data + Description=email test data + Flags=0000000000000010 +end +item: Install File + Source=..\lib\email\test\data\*.gif + Destination=%MAINDIR%\Lib\email\test\data + Description=email test data + Flags=0000000000000010 +end +item: Install File + Source=..\lib\email\test\data\*.au + Destination=%MAINDIR%\Lib\email\test\data + Description=email test data + Flags=0000000000000010 +end +item: Remark +end +item: Install File + Source=..\lib\encodings\*.py + Destination=%MAINDIR%\Lib\encodings + Description=Unicode encoding tables + Flags=0000000000000010 +end +item: Remark +end +item: Install File + Source=..\lib\lib-old\*.py + Destination=%MAINDIR%\Lib\lib-old + Description=Obsolete modules + Flags=0000000000000010 +end +item: Remark +end +item: Install File + Source=..\lib\lib-tk\*.py + Destination=%MAINDIR%\Lib\lib-tk + Description=Tkinter related library modules + Flags=0000000000000010 +end +item: Remark +end +item: Install File + Source=..\lib\logging\*.py + Destination=%MAINDIR%\Lib\logging + Description=Logging package + Flags=0000000000000010 +end +item: Remark +end +item: Install File + Source=..\lib\site-packages\readme + Destination=%MAINDIR%\Lib\site-packages\README.txt + Description=Site packages + Flags=0000000000000010 +end +item: Remark +end +item: Install File + Source=..\lib\xml\*.py + Destination=%MAINDIR%\Lib\xml + Description=XML support packages + Flags=0000000000000010 +end +item: Install File + Source=..\lib\xml\dom\*.py + Destination=%MAINDIR%\Lib\xml\dom + Flags=0000000000000010 +end +item: Install File + Source=..\lib\xml\parsers\*.py + Destination=%MAINDIR%\Lib\xml\parsers + Flags=0000000000000010 +end +item: Install File + Source=..\lib\xml\sax\*.py + Destination=%MAINDIR%\Lib\xml\sax + Flags=0000000000000010 +end +item: Remark +end +item: Remark + Text=C Include files +end +item: Install File + Source=..\include\*.h + Destination=%MAINDIR%\include + Description=Header files + Flags=0000000000000010 +end +item: Install File + Source=..\pc\pyconfig.h + Destination=%MAINDIR%\include\pyconfig.h + Description=Header files (pyconfig.h) + Flags=0000000000000010 +end +item: Remark +end +item: Remark + Text=Microsoft C runtime libraries +end +item: Install File + Source=%_SYS_%\MSVCIRT.DLL + Destination=%DLLDEST%\MSVCIRT.DLL + Description=Visual C++ Runtime DLLs + Flags=0000011000010011 +end +item: Install File + Source=%_SYS_%\MSVCRT.DLL + Destination=%DLLDEST%\MSVCRT.DLL + Description=Visual C++ Runtime DLLs + Flags=0000011000010011 +end +item: End Block +end +item: Remark +end +item: Remark + Text=B: Tcl/Tk (Tkinter, IDLE, pydoc) +end +item: If/While Statement + Variable=COMPONENTS + Value=B + Flags=00000010 +end +item: Remark + Text=Tcl/Tk +end +item: Install File + Source=..\..\%_tcldir_%\bin\*.dll + Destination=%MAINDIR%\DLLs + Description=Tcl/Tk binaries and libraries + Flags=0000000000000010 +end +item: Install File + Source=..\..\%_tcldir_%\lib\*.* + Destination=%MAINDIR%\tcl + Description=Tcl/Tk binaries and libraries + Flags=0000000100000010 +end +item: Remark +end +item: Remark + Text=IDLE +end +item: Install File + Source=..\Lib\idlelib\*.py + Destination=%MAINDIR%\Lib\idlelib + Description=Integrated DeveLopment Environment for Python + Flags=0000000000000010 +end +item: Install File + Source=..\Lib\idlelib\*.txt + Destination=%MAINDIR%\Lib\idlelib + Description=Integrated DeveLopment Environment for Python + Flags=0000000000000010 +end +item: Install File + Source=..\Lib\idlelib\*.def + Destination=%MAINDIR%\Lib\idlelib + Description=Integrated DeveLopment Environment for Python + Flags=0000000000000010 +end +item: Install File + Source=..\Lib\idlelib\Icons\* + Destination=%MAINDIR%\Lib\idlelib\Icons + Description=Integrated DeveLopment Environment for Python + Flags=0000000000000010 +end +item: Install File + Source=..\Tools\scripts\idle + Destination=%MAINDIR%\Lib\idlelib\idle.pyw + Description=IDLE bootstrap script + Flags=0000000000000010 +end +item: Remark +end +item: Remark + Text=Windows pydoc driver +end +item: Install File + Source=..\tools\scripts\*.pyw + Destination=%MAINDIR%\Tools\Scripts + Description=Windows pydoc driver + Flags=0000000000000010 +end +item: End Block +end +item: Remark +end +item: Remark + Text=C: docs +end +item: If/While Statement + Variable=COMPONENTS + Value=C + Flags=00000010 +end +item: Install File + Source=%_DOC_%\*.* + Destination=%MAINDIR%\Doc + Description=Python Documentation (HTML) + Flags=0000000100000010 +end +item: End Block +end +item: Remark +end +item: Remark + Text=D: tools +end +item: If/While Statement + Variable=COMPONENTS + Value=D + Flags=00000010 +end +item: Install File + Source=..\tools\scripts\*.py + Destination=%MAINDIR%\Tools\Scripts + Description=Utility Scripts + Flags=0000000000000010 +end +item: Install File + Source=..\tools\scripts\*.doc + Destination=%MAINDIR%\Tools\Scripts + Description=Utility Scripts + Flags=0000000000000010 +end +item: Install File + Source=..\tools\scripts\readme + Destination=%MAINDIR%\Tools\Scripts\README.txt + Description=Utility Scripts + Flags=0000000000000010 +end +item: Remark +end +item: Install File + Source=..\tools\webchecker\*.py + Destination=%MAINDIR%\Tools\webchecker + Description=Web checker tool + Flags=0000000000000010 +end +item: Install File + Source=..\tools\webchecker\readme + Destination=%MAINDIR%\Tools\webchecker\README.txt + Description=Web checker tool + Flags=0000000000000010 +end +item: Remark +end +item: Install File + Source=..\tools\versioncheck\*.py + Destination=%MAINDIR%\Tools\versioncheck + Description=Version checker tool + Flags=0000000000000010 +end +item: Install File + Source=..\tools\versioncheck\readme + Destination=%MAINDIR%\Tools\versioncheck\README.txt + Description=Version checker tool + Flags=0000000000000010 +end +item: Remark +end +item: Install File + Source=..\tools\pynche\*.py + Destination=%MAINDIR%\Tools\pynche + Description=pynche color editor + Flags=0000000000000010 +end +item: Install File + Source=..\tools\pynche\*.txt + Destination=%MAINDIR%\Tools\pynche + Description=pynche color editor + Flags=0000000000000010 +end +item: Install File + Source=..\tools\pynche\x\*.txt + Destination=%MAINDIR%\Tools\pynche\X + Description=pynche color editor - X files + Flags=0000000000000010 +end +item: Install File + Source=..\tools\pynche\readme + Destination=%MAINDIR%\Tools\pynche\README.txt + Description=pynche color editor - README + Flags=0000000100000010 +end +item: Install File + Source=..\tools\pynche\pynche + Destination=%MAINDIR%\Tools\pynche\pynche.py + Description=pynche color editor - main + Flags=0000000100000010 +end +item: Install File + Source=..\tools\pynche\pynche.pyw + Destination=%MAINDIR%\Tools\pynche\pynche.pyw + Description=pynche color editor - noconsole main + Flags=0000000100000010 +end +item: Remark +end +item: Install File + Source=..\tools\i18n\*.py + Destination=%MAINDIR%\Tools\i18n + Description=Internationalization helpers + Flags=0000000000000010 +end +item: End Block +end +item: Remark +end +item: Remark + Text=E: test suite +end +item: If/While Statement + Variable=COMPONENTS + Value=E + Flags=00000010 +end +item: Install File + Source=..\lib\test\audiotest.au + Destination=%MAINDIR%\Lib\test\audiotest.au + Description=Python Test files + Flags=0000000000000010 +end +item: Install File + Source=..\lib\test\*.uue + Destination=%MAINDIR%\Lib\test + Description=Python Test files + Flags=0000000000000010 +end +item: Install File + Source=..\lib\test\*.py + Destination=%MAINDIR%\Lib\test + Description=Python Test files + Flags=0000000000000010 +end +item: Install File + Source=..\lib\test\*.xml + Destination=%MAINDIR%\Lib\test + Description=Python Test files + Flags=0000000000000010 +end +item: Install File + Source=..\lib\test\*.out + Destination=%MAINDIR%\Lib\test + Description=Python Test files + Flags=0000000000000010 +end +item: Install File + Source=..\lib\test\*.bz2 + Destination=%MAINDIR%\Lib\test + Description=Python Test files + Flags=0000000000000010 +end +item: Install File + Source=..\lib\test\*.tar + Destination=%MAINDIR%\Lib\test + Description=Python Test files + Flags=0000000000000010 +end +item: Install File + Source=..\lib\test\*.gz + Destination=%MAINDIR%\Lib\test + Description=Python Test files + Flags=0000000000000010 +end +item: Install File + Source=..\lib\test\*.txt + Destination=%MAINDIR%\Lib\test + Description=Python Test files + Flags=0000000000000010 +end +item: Remark +end +item: Install File + Source=..\lib\test\output\*.* + Destination=%MAINDIR%\Lib\test\output + Description=Python Test output files + Flags=0000000000000010 +end +item: End Block +end +item: Remark +end +item: Remark + Text=DONE with file copying. +end +item: Remark + Text=The rest is registry and Start Menu fiddling. +end +item: Remark +end +item: If/While Statement + Variable=COMPONENTS + Value=A + Flags=00000010 +end +item: If/While Statement + Variable=TASKS + Value=A + Flags=00000010 +end +item: Remark + Text=Register file extensions. As usual, Admin privs get in the way, but with a twist: +end +item: Remark + Text=You don't need admin privs to write to HKEY_CLASSES_ROOT *except* under Win2K. +end +item: Remark + Text=On Win2K, a user without Admin privs has to register extensions under HKCU\Software\CLASSES instead. +end +item: Remark + Text=But while you can *do* that under other flavors of Windows too, it has no useful effect except in Win2K. +end +item: Set Variable + Variable=USE_HKCR + Value=1 +end +item: Check Configuration + Flags=11110010 +end +item: If/While Statement + Variable=DOADMIN + Value=0 +end +item: Set Variable + Variable=USE_HKCR + Value=0 +end +item: End Block +end +item: End Block +end +item: If/While Statement + Variable=USE_HKCR + Value=1 +end +item: Remark + Text=File types. +end +item: Edit Registry + Total Keys=1 + Key=Python.File + New Value=Python File +end +item: Edit Registry + Total Keys=1 + Key=Python.File\shell\open\command + New Value=%MAINDIR%\python.exe "%%1" %%* +end +item: Edit Registry + Total Keys=1 + Key=Python.File\DefaultIcon + New Value=%MAINDIR%\Py.ico +end +item: Remark +end +item: Edit Registry + Total Keys=1 + Key=Python.NoConFile + New Value=Python File (no console) +end +item: Edit Registry + Total Keys=1 + Key=Python.NoConFile\shell\open\command + New Value=%MAINDIR%\pythonw.exe "%%1" %%* +end +item: Edit Registry + Total Keys=1 + Key=Python.NoConFile\DefaultIcon + New Value=%MAINDIR%\Py.ico +end +item: Remark +end +item: Edit Registry + Total Keys=1 + Key=Python.CompiledFile + New Value=Compiled Python File +end +item: Edit Registry + Total Keys=1 + Key=Python.CompiledFile\shell\open\command + New Value=%MAINDIR%\python.exe "%%1" %%* +end +item: Edit Registry + Total Keys=1 + Key=Python.CompiledFile\DefaultIcon + New Value=%MAINDIR%\pyc.ico +end +item: Remark +end +item: Remark + Text=File extensions. +end +item: Edit Registry + Total Keys=1 + Key=.py + New Value=Python.File +end +item: Edit Registry + Total Keys=1 + Key=.py + New Value=text/plain + Value Name=Content Type +end +item: Remark +end +item: Edit Registry + Total Keys=1 + Key=.pyw + New Value=Python.NoConFile +end +item: Edit Registry + Total Keys=1 + Key=.pyw + New Value=text/plain + Value Name=Content Type +end +item: Remark +end +item: Edit Registry + Total Keys=1 + Key=.pyc + New Value=Python.CompiledFile +end +item: Edit Registry + Total Keys=1 + Key=.pyo + New Value=Python.CompiledFile +end +item: Else Statement +end +item: Remark + Text=File types. +end +item: Edit Registry + Total Keys=1 + Key=Software\CLASSES\Python.File + New Value=Python File + Root=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\CLASSES\Python.File\shell\open\command + New Value=%MAINDIR%\python.exe "%%1" %%* + Root=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\CLASSES\Python.File\DefaultIcon + New Value=%MAINDIR%\Py.ico + Root=1 +end +item: Remark +end +item: Edit Registry + Total Keys=1 + Key=Software\CLASSES\Python.NoConFile + New Value=Python File (no console) + Root=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\CLASSES\Python.NoConFile\shell\open\command + New Value=%MAINDIR%\pythonw.exe "%%1" %%* + Root=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\CLASSES\Python.NoConFile\DefaultIcon + New Value=%MAINDIR%\Py.ico + Root=1 +end +item: Remark +end +item: Edit Registry + Total Keys=1 + Key=Software\CLASSES\Python.CompiledFile + New Value=Compiled Python File + Root=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\CLASSES\Python.CompiledFile\shell\open\command + New Value=%MAINDIR%\python.exe "%%1" %%* + Root=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\CLASSES\Python.CompiledFile\DefaultIcon + New Value=%MAINDIR%\pyc.ico + Root=1 +end +item: Remark +end +item: Remark + Text=File extensions. +end +item: Edit Registry + Total Keys=1 + Key=Software\CLASSES\.py + New Value=Python.File + Root=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\CLASSES\.py + New Value=text/plain + Value Name=Content Type + Root=1 +end +item: Remark +end +item: Edit Registry + Total Keys=1 + Key=Software\CLASSES\.pyw + New Value=Python.NoConFile + Root=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\CLASSES\.pyw + New Value=text/plain + Value Name=Content Type + Root=1 +end +item: Remark +end +item: Edit Registry + Total Keys=1 + Key=Software\CLASSES\.pyc + New Value=Python.CompiledFile + Root=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\CLASSES\.pyo + New Value=Python.CompiledFile + Root=1 +end +item: End Block +end +item: Remark +end +item: Remark + Text=If we're installing IDLE, also set an Edit context menu action to use IDLE, for .py and .pyw files. +end +item: If/While Statement + Variable=COMPONENTS + Value=B + Flags=00000010 +end +item: If/While Statement + Variable=USE_HKCR + Value=1 +end +item: Edit Registry + Total Keys=1 + Key=Python.NoConFile\shell\Edit with IDLE\command + New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Lib\idlelib\idle.pyw -n -e "%%1" +end +item: Edit Registry + Total Keys=1 + Key=Python.File\shell\Edit with IDLE\command + New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Lib\idlelib\idle.pyw -n -e "%%1" +end +item: Else Statement +end +item: Edit Registry + Total Keys=1 + Key=Software\CLASSES\Python.NoConFile\shell\Edit with IDLE\command + New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Lib\idlelib\idle.pyw -n -e "%%1" + Root=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\CLASSES\Python.File\shell\Edit with IDLE\command + New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Lib\idlelib\idle.pyw -n -e "%%1" + Root=1 +end +item: End Block +end +item: End Block +end +item: End Block +end +item: Remark +end +item: Remark + Text=Register Python paths. +end +item: Remark + Text=Write to HKLM for admin, else HKCU. Keep these blocks otherwise identical! +end +item: If/While Statement + Variable=DOADMIN + Value=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\Python\PythonCore\CurrentVersion + Root=130 +end +item: Edit Registry + Total Keys=1 + Key=Software\Python\PythonCore\%PY_VERSION%\InstallPath + New Value=%MAINDIR% + Root=2 +end +item: Edit Registry + Total Keys=1 + Key=Software\Python\PythonCore\%PY_VERSION%\InstallPath\InstallGroup + New Value=%CGROUP_SAVE% + New Value= + Root=2 +end +item: Edit Registry + Total Keys=1 + Key=Software\Python\PythonCore\%PY_VERSION%\PythonPath + New Value=%MAINDIR%\Lib;%MAINDIR%\DLLs;%MAINDIR%\Lib\lib-tk + New Value= + Root=2 +end +item: Edit Registry + Total Keys=1 + Key=Software\Python\PythonCore\%PY_VERSION%\Modules + Root=2 +end +item: Edit Registry + Total Keys=1 + Key=Software\Microsoft\Windows\CurrentVersion\App Paths\Python.exe + New Value=%MAINDIR%\Python.exe + Root=2 +end +item: Else Statement +end +item: Edit Registry + Total Keys=1 + Key=Software\Python\PythonCore\CurrentVersion + Root=129 +end +item: Edit Registry + Total Keys=1 + Key=Software\Python\PythonCore\%PY_VERSION%\InstallPath + New Value=%MAINDIR% + Root=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\Python\PythonCore\%PY_VERSION%\InstallPath\InstallGroup + New Value=%CGROUP_SAVE% + New Value= + Root=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\Python\PythonCore\%PY_VERSION%\PythonPath + New Value=%MAINDIR%\Lib;%MAINDIR%\DLLs;%MAINDIR%\Lib\lib-tk + New Value= + Root=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\Python\PythonCore\%PY_VERSION%\Modules + Root=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\Microsoft\Windows\CurrentVersion\App Paths\Python.exe + New Value=%MAINDIR%\Python.exe + Root=1 +end +item: End Block +end +item: End Block +end +item: Remark +end +item: Remark + Text=Registry fiddling for docs. +end +item: Remark + Text=Write to HKLM for admin, else HKCU. Keep these blocks otherwise identical! +end +item: If/While Statement + Variable=COMPONENTS + Value=C + Flags=00000010 +end +item: If/While Statement + Variable=DOADMIN + Value=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\Python\PythonCore\%PY_VERSION%\Help\Main Python Documentation + New Value=%MAINDIR%\Doc\index.html + Root=2 +end +item: Else Statement +end +item: Edit Registry + Total Keys=1 + Key=Software\Python\PythonCore\%PY_VERSION%\Help\Main Python Documentation + New Value=%MAINDIR%\Doc\index.html + Root=1 +end +item: End Block +end +item: End Block +end +item: Remark +end +item: Remark + Text=Set the app publisher and URL entries for Win2K add/remove. +end +item: Remark + Text=It doesn't hurt on other systems. +end +item: Remark + Text=As usual, write to HKLM or HKCU depending on Admin privs. +end +item: Remark + Text=CAUTION: If you set this info on the "Windows 2000" page (step 6) of the +end +item: Remark + Text=Installation Expert, it only shows up in the "If" block below. Keep in synch! +end +item: If/While Statement + Variable=DOADMIN + Value=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% + New Value=http://www.python.org/ + Value Name=HelpLink + Root=2 +end +item: Edit Registry + Total Keys=1 + Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% + New Value=PythonLabs at Zope Corporation + Value Name=Publisher + Root=2 +end +item: Edit Registry + Total Keys=1 + Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% + New Value=http://www.python.org/ + Value Name=URLInfoAbout + Root=2 +end +item: Edit Registry + Total Keys=1 + Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% + New Value=%PYVER_STRING% + Value Name=DisplayVersion + Root=2 +end +item: Edit Registry + Total Keys=1 + Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% + New Value=%MAINDIR%\py.ico,-0 + Value Name=DisplayIcon + Root=2 +end +item: Else Statement +end +item: Edit Registry + Total Keys=1 + Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% + New Value=http://www.python.org/ + Value Name=HelpLink + Root=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% + New Value=PythonLabs at Zope Corporation + Value Name=Publisher + Root=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% + New Value=http://www.python.org/ + Value Name=URLInfoAbout + Root=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% + New Value=%PYVER_STRING% + Value Name=DisplayVersion + Root=1 +end +item: Edit Registry + Total Keys=1 + Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% + New Value=%MAINDIR%\py.ico,-0 + Value Name=DisplayIcon + Root=1 +end +item: End Block +end +item: Remark +end +item: Remark + Text=Populate Start Menu group +end +item: If/While Statement + Variable=TASKS + Value=B + Flags=00000010 +end +item: Remark + Text=Shortcut to installer no matter what. +end +item: Create Shortcut + Source=%MAINDIR%\unwise.exe + Destination=%GROUP%\Uninstall Python.lnk + Working Directory=%MAINDIR% + Key Type=1536 + Flags=00000001 +end +item: Remark +end +item: If/While Statement + Variable=COMPONENTS + Value=A + Flags=00000010 +end +item: Create Shortcut + Source=%MAINDIR%\python.exe + Destination=%GROUP%\Python (command line).lnk + Working Directory=%MAINDIR% + Icon Pathname=%MAINDIR%\pycon.ico + Key Type=1536 + Flags=00000001 +end +item: End Block +end +item: Remark +end +item: If/While Statement + Variable=COMPONENTS + Value=B + Flags=00000010 +end +item: Create Shortcut + Source=%MAINDIR%\pythonw.exe + Destination=%GROUP%\IDLE (Python GUI).lnk + Command Options="%MAINDIR%\Lib\idlelib\idle.pyw" + Working Directory=%MAINDIR% + Key Type=1536 + Flags=00000001 +end +item: Create Shortcut + Source=%MAINDIR%\pythonw.exe + Destination=%GROUP%\Module Docs.lnk + Command Options="%MAINDIR%\Tools\Scripts\pydocgui.pyw" + Working Directory=%MAINDIR% + Key Type=1536 + Flags=00000001 +end +item: End Block +end +item: Remark +end +item: If/While Statement + Variable=COMPONENTS + Value=C + Flags=00000010 +end +item: Create Shortcut + Source=%MAINDIR%\Doc\index.html + Destination=%GROUP%\Python Manuals.lnk + Working Directory=%MAINDIR% + Key Type=1536 + Flags=00000001 +end +item: End Block +end +item: End Block +end +item: Remark +end +item: Remark + Text=I don't think we need this, but have always done it. +end +item: Self-Register OCXs/DLLs + Description=Updating System Configuration, Please Wait... +end +item: Remark +end +remarked item: Remark + Text=Don't enable "Delete in-use files". Here's what happens: +end +remarked item: Remark + Text=Install Python; uninstall Python; install Python again. Reboot the machine. +end +remarked item: Remark + Text=Now UNWISE.EXE is missing. I think this is a Wise bug, but so it goes. +end +remarked item: Add Text to INSTALL.LOG + Text=Delete in-use files: On +end +item: Remark +end +item: Wizard Block + Direction Variable=DIRECTION + Display Variable=DISPLAY + Bitmap Pathname=.\installer.bmp + X Position=9 + Y Position=10 + Filler Color=11173759 + Flags=00000011 +end +item: Custom Dialog Set + Name=Finished + Display Variable=DISPLAY + item: Dialog + Title=%APPTITLE% Installation + Title French=Installation de %APPTITLE% + Title German=Installation von %APPTITLE% + Title Spanish=Instalación de %APPTITLE% + Title Italian=Installazione di %APPTITLE% + Width=339 + Height=280 + Font Name=Helv + Font Size=8 + item: Push Button + Rectangle=188 234 244 253 + Variable=DIRECTION + Value=N + Create Flags=01010000000000010000000000000001 + Text=&Finish + Text French=&Fin + Text German=&Weiter + Text Spanish=&Terminar + Text Italian=&Fine + end + item: Push Button + Rectangle=264 234 320 253 + Variable=DISABLED + Value=! + Action=3 + Create Flags=01010000000000010000000000000000 + Text=&Cancel + Text French=&Annuler + Text German=&Abbrechen + Text Spanish=&Cancelar + Text Italian=&Annulla + end + item: Static + Rectangle=108 10 323 48 + Create Flags=01010000000000000000000000000000 + Flags=0000000000000001 + Name=Times New Roman + Font Style=-24 0 0 0 700 255 0 0 0 3 2 1 18 + Text=Installation Completed! + Text French=Installation terminée ! + Text German=Die Installation ist abgeschlossen! + Text Spanish=¡Instalación terminada! + Text Italian=Installazione completata! + end + item: Static + Rectangle=108 44 320 82 + Create Flags=01010000000000000000000000000000 + Text=%APPTITLE% has been successfully installed. + Text= + Text=Press the Finish button to exit this installation. + Text French=%APPTITLE% est maintenant installé. + Text French= + Text French=Cliquez sur le bouton Fin pour quitter l'installation. + Text German=%APPTITLE% wurde erfolgreich installiert. + Text German= + Text German=Klicken Sie auf "Weiter", um die Installation zu beenden. + Text Spanish=%APPTITLE% se ha instalado con éxito. + Text Spanish= + Text Spanish=Presione el botón Terminar para salir de esta instalación. + Text Italian=L'installazione %APPTITLE% è stata portata a termine con successo. + Text Italian= + Text Italian=Premere il pulsante Fine per uscire dall'installazione. + end + item: Static + Rectangle=10 225 320 226 + Action=3 + Create Flags=01010000000000000000000000000111 + end + item: Static + Rectangle=106 105 312 210 + Enabled Color=00000000000000001111111111111111 + Create Flags=01010000000000000000000000000000 + Text=Special Windows thanks to: + Text= + Text=Wise Solutions, for the use of InstallMaster 8.1. + Text= http://www.wisesolutions.com/ + Text= + Text= + Text=LettError, Erik van Blokland, for the Python for Windows graphic. + Text= http://www.letterror.com/ + Text= + Text= + Text=Mark Hammond, without whose years of freely shared Windows expertise, Python for Windows would still be Python for DOS. + end + item: Static + Rectangle=106 95 312 96 + Action=3 + Enabled Color=00000000000000001111111111111111 + Create Flags=01010000000000000000000000001001 + end + end +end +item: End Block +end +item: New Event + Name=Cancel +end +item: Remark + Text=This include script supports a rollback to preinstallation state if the user chooses to cancel before the installation is complete. +end +item: Include Script + Pathname=%_WISE_%\INCLUDE\rollback.wse +end diff --git a/PCbuild9/pythoncore.vcproj b/PCbuild9/pythoncore.vcproj new file mode 100644 index 00000000000..64ce01f99f8 --- /dev/null +++ b/PCbuild9/pythoncore.vcproj @@ -0,0 +1,1761 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/pythonw.vcproj b/PCbuild9/pythonw.vcproj new file mode 100644 index 00000000000..1bc1dad0ff7 --- /dev/null +++ b/PCbuild9/pythonw.vcproj @@ -0,0 +1,618 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/readme.txt b/PCbuild9/readme.txt new file mode 100644 index 00000000000..1fd8cc35089 --- /dev/null +++ b/PCbuild9/readme.txt @@ -0,0 +1,428 @@ +Building Python using VC++ 9.0 +------------------------------ +This directory is used to build Python for Win32 platforms, e.g. Windows +2000, XP and Vista. It requires Microsoft Visual C++ 9.0 +(a.k.a. Visual Studio .NET 2008). +(For other Windows platforms and compilers, see ../PC/readme.txt.) + +All you need to do is open the workspace "pcbuild.sln" in MSVC++, select +the Debug or Release setting (using "Solution Configuration" from +the "Standard" toolbar"), and build the projects. + +The proper order to build subprojects: + +1) pythoncore (this builds the main Python DLL and library files, + python30.{dll, lib} in Release mode) + +2) python (this builds the main Python executable, + python.exe in Release mode) + +3) the other subprojects, as desired or needed (note: you probably don't + want to build most of the other subprojects, unless you're building an + entire Python distribution from scratch, or specifically making changes + to the subsystems they implement, or are running a Python core buildbot + test slave; see SUBPROJECTS below) + +When using the Debug setting, the output files have a _d added to +their name: python30_d.dll, python_d.exe, parser_d.pyd, and so on. + +SUBPROJECTS +----------- +These subprojects should build out of the box. Subprojects other than the +main ones (pythoncore, python, pythonw) generally build a DLL (renamed to +.pyd) from a specific module so that users don't have to load the code +supporting that module unless they import the module. + +pythoncore + .dll and .lib +python + .exe +pythonw + pythonw.exe, a variant of python.exe that doesn't pop up a DOS box +_socket + socketmodule.c +_testcapi + tests of the Python C API, run via Lib/test/test_capi.py, and + implemented by module Modules/_testcapimodule.c +pyexpat + Python wrapper for accelerated XML parsing, which incorporates stable + code from the Expat project: http://sourceforge.net/projects/expat/ +select + selectmodule.c +unicodedata + large tables of Unicode data +winsound + play sounds (typically .wav files) under Windows + +The following subprojects will generally NOT build out of the box. They +wrap code Python doesn't control, and you'll need to download the base +packages first and unpack them into siblings of PCbuilds's parent +directory; for example, if your PCbuild is .......\dist\src\PCbuild\, +unpack into new subdirectories of dist\. + +_tkinter + Python wrapper for the Tk windowing system. Requires building + Tcl/Tk first. Following are instructions for Tcl/Tk 8.4.12. + + Get source + ---------- + In the dist directory, run + svn export http://svn.python.org/projects/external/tcl8.4.12 + svn export http://svn.python.org/projects/external/tk8.4.12 + svn export http://svn.python.org/projects/external/tix-8.4.0 + + Build Tcl first (done here w/ MSVC 7.1 on Windows XP) + --------------- + Use "Start -> All Programs -> Microsoft Visual Studio .NET 2003 + -> Visual Studio .NET Tools -> Visual Studio .NET 2003 Command Prompt" + to get a shell window with the correct environment settings + cd dist\tcl8.4.12\win + nmake -f makefile.vc + nmake -f makefile.vc INSTALLDIR=..\..\tcltk install + + XXX Should we compile with OPTS=threads? + + Optional: run tests, via + nmake -f makefile.vc test + + On WinXP Pro, wholly up to date as of 30-Aug-2004: + all.tcl: Total 10678 Passed 9969 Skipped 709 Failed 0 + Sourced 129 Test Files. + + Build Tk + -------- + cd dist\tk8.4.12\win + nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12 + nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12 INSTALLDIR=..\..\tcltk install + + XXX Should we compile with OPTS=threads? + + XXX Our installer copies a lot of stuff out of the Tcl/Tk install + XXX directory. Is all of that really needed for Python use of Tcl/Tk? + + Optional: run tests, via + nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12 test + + On WinXP Pro, wholly up to date as of 30-Aug-2004: + all.tcl: Total 8420 Passed 6826 Skipped 1581 Failed 13 + Sourced 91 Test Files. + Files with failing tests: canvImg.test scrollbar.test textWind.test winWm.test + + Built Tix + --------- + cd dist\tix-8.4.0\win + nmake -f python.mak + nmake -f python.mak install + +bz2 + Python wrapper for the libbz2 compression library. Homepage + http://sources.redhat.com/bzip2/ + Download the source from the python.org copy into the dist + directory: + + svn export http://svn.python.org/projects/external/bzip2-1.0.3 + + A custom pre-link step in the bz2 project settings should manage to + build bzip2-1.0.3\libbz2.lib by magic before bz2.pyd (or bz2_d.pyd) is + linked in PCbuild\. + However, the bz2 project is not smart enough to remove anything under + bzip2-1.0.3\ when you do a clean, so if you want to rebuild bzip2.lib + you need to clean up bzip2-1.0.3\ by hand. + + The build step shouldn't yield any warnings or errors, and should end + by displaying 6 blocks each terminated with + FC: no differences encountered + + All of this managed to build bzip2-1.0.3\libbz2.lib, which the Python + project links in. + + +_bsddb + To use the version of bsddb that Python is built with by default, invoke + (in the dist directory) + + svn export http://svn.python.org/projects/external/db-4.4.20 + + + Then open a VS.NET 2003 shell, and invoke: + + devenv db-4.4.20\build_win32\Berkeley_DB.sln /build Release /project db_static + + and do that a second time for a Debug build too: + + devenv db-4.4.20\build_win32\Berkeley_DB.sln /build Debug /project db_static + + Alternatively, if you want to start with the original sources, + go to Sleepycat's download page: + http://www.sleepycat.com/downloads/releasehistorybdb.html + + and download version 4.4.20. + + With or without strong cryptography? You can choose either with or + without strong cryptography, as per the instructions below. By + default, Python is built and distributed WITHOUT strong crypto. + + Unpack the sources; if you downloaded the non-crypto version, rename + the directory from db-4.4.20.NC to db-4.4.20. + + Now apply any patches that apply to your version. + + Open + dist\db-4.4.20\docs\index.html + + and follow the "Windows->Building Berkeley DB with Visual C++ .NET" + instructions for building the Sleepycat + software. Note that Berkeley_DB.dsw is in the build_win32 subdirectory. + Build the "db_static" project, for "Release" mode. + + To run extensive tests, pass "-u bsddb" to regrtest.py. test_bsddb3.py + is then enabled. Running in verbose mode may be helpful. + + XXX The test_bsddb3 tests don't always pass, on Windows (according to + XXX me) or on Linux (according to Barry). (I had much better luck + XXX on Win2K than on Win98SE.) The common failure mode across platforms + XXX is + XXX DBAgainError: (11, 'Resource temporarily unavailable -- unable + XXX to join the environment') + XXX + XXX and it appears timing-dependent. On Win2K I also saw this once: + XXX + XXX test02_SimpleLocks (bsddb.test.test_thread.HashSimpleThreaded) ... + XXX Exception in thread reader 1: + XXX Traceback (most recent call last): + XXX File "C:\Code\python\lib\threading.py", line 411, in __bootstrap + XXX self.run() + XXX File "C:\Code\python\lib\threading.py", line 399, in run + XXX self.__target(*self.__args, **self.__kwargs) + XXX File "C:\Code\python\lib\bsddb\test\test_thread.py", line 268, in + XXX readerThread + XXX rec = c.next() + XXX DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed + XXX to resolve a deadlock') + XXX + XXX I'm told that DBLockDeadlockError is expected at times. It + XXX doesn't cause a test to fail when it happens (exceptions in + XXX threads are invisible to unittest). + + Building for Win64: + - open a VS.NET 2003 command prompt + - run the SDK setenv.cmd script, passing /RETAIL and the target + architecture (/SRV64 for Itanium, /X64 for AMD64) + - build BerkeleyDB with the solution configuration matching the + target ("Release IA64" for Itanium, "Release AMD64" for AMD64), e.g. + devenv db-4.4.20\build_win32\Berkeley_DB.sln /build "Release AMD64" /project db_static /useenv + +_sqlite3 + Python wrapper for SQLite library. + + Get the source code through + + svn export http://svn.python.org/projects/external/sqlite-source-3.3.4 + + To use the extension module in a Python build tree, copy sqlite3.dll into + the PCbuild folder. + +_ssl + Python wrapper for the secure sockets library. + + Get the source code through + + svn export http://svn.python.org/projects/external/openssl-0.9.8g + + Alternatively, get the latest version from http://www.openssl.org. + You can (theoretically) use any version of OpenSSL you like - the + build process will automatically select the latest version. + + You must also install ActivePerl from + http://www.activestate.com/Products/ActivePerl/ + as this is used by the OpenSSL build process. Complain to them . + + You also need the NASM assembler + from http://www.kernel.org/pub/software/devel/nasm/binaries/win32/ + Put nasmw.exe anywhere in your PATH. + + The MSVC project simply invokes PCBuild/build_ssl.py to perform + the build. This Python script locates and builds your OpenSSL + installation, then invokes a simple makefile to build the final .pyd. + + build_ssl.py attempts to catch the most common errors (such as not + being able to find OpenSSL sources, or not being able to find a Perl + that works with OpenSSL) and give a reasonable error message. + If you have a problem that doesn't seem to be handled correctly + (eg, you know you have ActivePerl but we can't find it), please take + a peek at build_ssl.py and suggest patches. Note that build_ssl.py + should be able to be run directly from the command-line. + + build_ssl.py/MSVC isn't clever enough to clean OpenSSL - you must do + this by hand. + +Building for Itanium +-------------------- + +The project files support a ReleaseItanium configuration which creates +Win64/Itanium binaries. For this to work, you need to install the Platform +SDK, in particular the 64-bit support. This includes an Itanium compiler +(future releases of the SDK likely include an AMD64 compiler as well). +In addition, you need the Visual Studio plugin for external C compilers, +from http://sf.net/projects/vsextcomp. The plugin will wrap cl.exe, to +locate the proper target compiler, and convert compiler options +accordingly. The project files require atleast version 0.9. + +Building for AMD64 +------------------ + +The build process for the ReleaseAMD64 configuration is very similar +to the Itanium configuration; make sure you use the latest version of +vsextcomp. + +Building Python Using the free MS Toolkit Compiler +-------------------------------------------------- + +The build process for Visual C++ can be used almost unchanged with the free MS +Toolkit Compiler. This provides a way of building Python using freely +available software. + +Note that Microsoft have withdrawn the free MS Toolkit Compiler, so this can +no longer be considered a supported option. The instructions are still +correct, but you need to already have a copy of the compiler in order to use +them. Microsoft now supply Visual C++ 2005 Express Edition for free, but this +is NOT compatible with Visual C++ 7.1 (it uses a different C runtime), and so +cannot be used to build a version of Python compatible with the standard +python.org build. If you are interested in using Visual C++ 2005 Express +Edition, however, you should look at the PCBuild8 directory. + +Requirements + + To build Python, the following tools are required: + + * The Visual C++ Toolkit Compiler + no longer available for download - see above + * A recent Platform SDK + from http://www.microsoft.com/downloads/details.aspx?FamilyID=484269e2-3b89-47e3-8eb7-1f2be6d7123a + * The .NET 1.1 SDK + from http://www.microsoft.com/downloads/details.aspx?FamilyID=9b3a2ca6-3647-4070-9f41-a333c6b9181d + + [Does anyone have better URLs for the last 2 of these?] + + The toolkit compiler is needed as it is an optimising compiler (the + compiler supplied with the .NET SDK is a non-optimising version). The + platform SDK is needed to provide the Windows header files and libraries + (the Windows 2003 Server SP1 edition, typical install, is known to work - + other configurations or versions are probably fine as well). The .NET 1.1 + SDK is needed because it contains a version of msvcrt.dll which links to + the msvcr71.dll CRT. Note that the .NET 2.0 SDK is NOT acceptable, as it + references msvcr80.dll. + + All of the above items should be installed as normal. + + If you intend to build the openssl (needed for the _ssl extension) you + will need the C runtime sources installed as part of the platform SDK. + + In addition, you will need Nant, available from + http://nant.sourceforge.net. The 0.85 release candidate 3 version is known + to work. This is the latest released version at the time of writing. Later + "nightly build" versions are known NOT to work - it is not clear at + present whether future released versions will work. + +Setting up the environment + + Start a platform SDK "build environment window" from the start menu. The + "Windows XP 32-bit retail" version is known to work. + + Add the following directories to your PATH: + * The toolkit compiler directory + * The SDK "Win64" binaries directory + * The Nant directory + Add to your INCLUDE environment variable: + * The toolkit compiler INCLUDE directory + Add to your LIB environment variable: + * The toolkit compiler LIB directory + * The .NET SDK Visual Studio 2003 VC7\lib directory + + The following commands should set things up as you need them: + + rem Set these values according to where you installed the software + set TOOLKIT=C:\Program Files\Microsoft Visual C++ Toolkit 2003 + set SDK=C:\Program Files\Microsoft Platform SDK + set NET=C:\Program Files\Microsoft Visual Studio .NET 2003 + set NANT=C:\Utils\Nant + + set PATH=%TOOLKIT%\bin;%PATH%;%SDK%\Bin\win64;%NANT%\bin + set INCLUDE=%TOOLKIT%\include;%INCLUDE% + set LIB=%TOOLKIT%\lib;%NET%\VC7\lib;%LIB% + + The "win64" directory from the SDK is added to supply executables such as + "cvtres" and "lib", which are not available elsewhere. The versions in the + "win64" directory are 32-bit programs, so they are fine to use here. + + That's it. To build Python (the core only, no binary extensions which + depend on external libraries) you just need to issue the command + + nant -buildfile:python.build all + + from within the PCBuild directory. + +Extension modules + + To build those extension modules which require external libraries + (_tkinter, bz2, _bsddb, _sqlite3, _ssl) you can follow the instructions + for the Visual Studio build above, with a few minor modifications. These + instructions have only been tested using the sources in the Python + subversion repository - building from original sources should work, but + has not been tested. + + For each extension module you wish to build, you should remove the + associated include line from the excludeprojects section of pc.build. + + The changes required are: + + _tkinter + The tix makefile (tix-8.4.0\win\makefile.vc) must be modified to + remove references to TOOLS32. The relevant lines should be changed to + read: + cc32 = cl.exe + link32 = link.exe + include32 = + The remainder of the build instructions will work as given. + + bz2 + No changes are needed + + _bsddb + The file db.build should be copied from the Python PCBuild directory + to the directory db-4.4.20\build_win32. + + The file db_static.vcproj in db-4.4.20\build_win32 should be edited to + remove the string "$(SolutionDir)" - this occurs in 2 places, only + relevant for 64-bit builds. (The edit is required as otherwise, nant + wants to read the solution file, which is not in a suitable form). + + The bsddb library can then be build with the command + nant -buildfile:db.build all + run from the db-4.4.20\build_win32 directory. + + _sqlite3 + No changes are needed. However, in order for the tests to succeed, a + copy of sqlite3.dll must be downloaded, and placed alongside + python.exe. + + _ssl + The documented build process works as written. However, it needs a + copy of the file setargv.obj, which is not supplied in the platform + SDK. However, the sources are available (in the crt source code). To + build setargv.obj, proceed as follows: + + Copy setargv.c, cruntime.h and internal.h from %SDK%\src\crt to a + temporary directory. + Compile using "cl /c /I. /MD /D_CRTBLD setargv.c" + Copy the resulting setargv.obj to somewhere on your LIB environment + (%SDK%\lib is a reasonable place). + + With setargv.obj in place, the standard build process should work + fine. + +YOUR OWN EXTENSION DLLs +----------------------- +If you want to create your own extension module DLL, there's an example +with easy-to-follow instructions in ../PC/example/; read the file +readme.txt there first. diff --git a/PCbuild9/rmpyc.py b/PCbuild9/rmpyc.py new file mode 100644 index 00000000000..a1e75bb7ae5 --- /dev/null +++ b/PCbuild9/rmpyc.py @@ -0,0 +1,25 @@ +# Remove all the .pyc and .pyo files under ../Lib. + + +def deltree(root): + import os + from os.path import join + + npyc = npyo = 0 + for root, dirs, files in os.walk(root): + for name in files: + delete = False + if name.endswith('.pyc'): + delete = True + npyc += 1 + elif name.endswith('.pyo'): + delete = True + npyo += 1 + + if delete: + os.remove(join(root, name)) + + return npyc, npyo + +npyc, npyo = deltree("../Lib") +print(npyc, ".pyc deleted,", npyo, ".pyo deleted") diff --git a/PCbuild9/rt.bat b/PCbuild9/rt.bat new file mode 100644 index 00000000000..8e386c58566 --- /dev/null +++ b/PCbuild9/rt.bat @@ -0,0 +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% diff --git a/PCbuild9/select.vcproj b/PCbuild9/select.vcproj new file mode 100644 index 00000000000..b97cb4d1842 --- /dev/null +++ b/PCbuild9/select.vcproj @@ -0,0 +1,537 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/unicodedata.vcproj b/PCbuild9/unicodedata.vcproj new file mode 100644 index 00000000000..084161afca4 --- /dev/null +++ b/PCbuild9/unicodedata.vcproj @@ -0,0 +1,533 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/w9xpopen.vcproj b/PCbuild9/w9xpopen.vcproj new file mode 100644 index 00000000000..d00cef4def8 --- /dev/null +++ b/PCbuild9/w9xpopen.vcproj @@ -0,0 +1,584 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/winsound.vcproj b/PCbuild9/winsound.vcproj new file mode 100644 index 00000000000..b6da131eb13 --- /dev/null +++ b/PCbuild9/winsound.vcproj @@ -0,0 +1,523 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild9/x64.vsprops b/PCbuild9/x64.vsprops new file mode 100644 index 00000000000..acc332507a5 --- /dev/null +++ b/PCbuild9/x64.vsprops @@ -0,0 +1,17 @@ + + + + + diff --git a/Python/structmember.c b/Python/structmember.c index 7cfa620a176..38fc1be49d4 100644 --- a/Python/structmember.c +++ b/Python/structmember.c @@ -172,7 +172,7 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v) PyErr_SetString(PyExc_TypeError, "readonly attribute"); return -1; } - if ((l->flags & WRITE_RESTRICTED) && PyEval_GetRestricted()) { + if ((l->flags & PY_WRITE_RESTRICTED) && PyEval_GetRestricted()) { PyErr_SetString(PyExc_RuntimeError, "restricted attribute"); return -1; }