Skip to content

Commit

Permalink
Issue #1303434: Include PDBs in release.
Browse files Browse the repository at this point in the history
Patch by James Lee and Daniel Stutzbach.
  • Loading branch information
loewis committed Sep 4, 2010
1 parent cc645b9 commit a5e3109
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 1 deletion.
2 changes: 2 additions & 0 deletions Misc/NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
17 changes: 16 additions & 1 deletion Tools/msi/msi.py
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -31,6 +31,8 @@
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 *
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -1398,3 +1410,6 @@ def merge(msi, feature, rootdir, 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()

0 comments on commit a5e3109

Please sign in to comment.