Issue #1303434: Include PDBs in release.

Patch by James Lee and Daniel Stutzbach.
This commit is contained in:
Martin v. Löwis 2010-09-04 14:38:09 +00:00
parent cc645b9a59
commit a5e3109154
2 changed files with 18 additions and 1 deletions

View file

@ -381,6 +381,8 @@ Tests
Build Build
----- -----
- Issue #1303434: Generate ZIP file containing all PDBs.
- Issue #9193: PEP 3149 is accepted. - Issue #9193: PEP 3149 is accepted.
- Issue #3101: Helper functions _add_one_to_index_C() and - Issue #3101: Helper functions _add_one_to_index_C() and

View file

@ -1,7 +1,7 @@
# Python MSI Generator # Python MSI Generator
# (C) 2003 Martin v. Loewis # (C) 2003 Martin v. Loewis
# See "FOO" in comments refers to MSDN sections with the title FOO. # See "FOO" in comments refers to MSDN sections with the title FOO.
import msilib, schema, sequence, os, glob, time, re, shutil import msilib, schema, sequence, os, glob, time, re, shutil, zipfile
from msilib import Feature, CAB, Directory, Dialog, Binary, add_data from msilib import Feature, CAB, Directory, Dialog, Binary, add_data
import uisample import uisample
from win32com.client import constants from win32com.client import constants
@ -31,6 +31,8 @@ PCBUILD="PCbuild"
MSVCR = "90" MSVCR = "90"
# Name of certificate in default store to sign MSI with # Name of certificate in default store to sign MSI with
certname = None certname = None
# Make a zip file containing the PDB files for this build?
pdbzip = True
try: try:
from config import * from config import *
@ -1316,6 +1318,16 @@ def add_registry(db):
]) ])
db.Commit() db.Commit()
def build_pdbzip():
pdbexclude = ['kill_python.pdb', 'make_buildinfo.pdb',
'make_versioninfo.pdb']
path = "python-%s%s-pdb.zip" % (full_current_version, msilib.arch_ext)
pdbzip = zipfile.ZipFile(path, 'w')
for f in glob.glob1(os.path.join(srcdir, PCBUILD), "*.pdb"):
if f not in pdbexclude and not f.endswith('_d.pdb'):
pdbzip.write(os.path.join(srcdir, PCBUILD, f), f)
pdbzip.close()
db,msiname = build_database() db,msiname = build_database()
try: try:
add_features(db) add_features(db)
@ -1398,3 +1410,6 @@ merge(msiname, "SharedCRT", "TARGETDIR", modules)
# the certificate subject, e.g. "Python Software Foundation" # the certificate subject, e.g. "Python Software Foundation"
if certname: if certname:
os.system('signtool sign /n "%s" /t http://timestamp.verisign.com/scripts/timestamp.dll %s' % (certname, msiname)) os.system('signtool sign /n "%s" /t http://timestamp.verisign.com/scripts/timestamp.dll %s' % (certname, msiname))
if pdbzip:
build_pdbzip()