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
-----
- Issue #1303434: Generate ZIP file containing all PDBs.
- Issue #9193: PEP 3149 is accepted.
- Issue #3101: Helper functions _add_one_to_index_C() and

View File

@ -1,7 +1,7 @@
# Python MSI Generator
# (C) 2003 Martin v. Loewis
# 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
import uisample
from win32com.client import constants
@ -31,6 +31,8 @@ PCBUILD="PCbuild"
MSVCR = "90"
# Name of certificate in default store to sign MSI with
certname = None
# Make a zip file containing the PDB files for this build?
pdbzip = True
try:
from config import *
@ -1316,6 +1318,16 @@ def add_registry(db):
])
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()
try:
add_features(db)
@ -1398,3 +1410,6 @@ merge(msiname, "SharedCRT", "TARGETDIR", modules)
# the certificate subject, e.g. "Python Software Foundation"
if certname:
os.system('signtool sign /n "%s" /t http://timestamp.verisign.com/scripts/timestamp.dll %s' % (certname, msiname))
if pdbzip:
build_pdbzip()