forked from python/cpython
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merged revisions 61440-61441,61443,61445-61448,61451-61452,61455-6145…
…7,61459-61464,61466-61467,61469-61470,61476-61477,61479,61481-61482,61485,61487,61490,61493-61494,61497,61499-61502,61505-61506,61508,61511-61514,61519,61521-61522,61530-61531,61533-61537,61541-61555,61557-61558,61561-61562,61566-61569,61572-61574,61578-61579,61583-61584,61588-61589,61592,61594,61598-61601,61603-61604,61607-61612,61617,61619-61620,61624,61626,61628-61630,61635-61638,61640-61643,61645,61648,61653-61655,61659-61662,61664,61666,61668-61671,61673,61675,61679-61680,61682,61685-61686,61689-61695,61697-61699,61701-61703,61706,61710,61713,61717,61723,61726-61730,61736,61738,61740,61742,61745-61752,61754-61760,61762-61764,61768,61770-61772,61774-61775,61784-61787,61789-61792,61794-61795,61797-61806,61808-61809,61811-61812,61814-61819,61824,61826-61833,61835-61840,61843-61845,61848,61850,61854-61862,61865-61866,61868,61872-61873,61876-61877,61883-61888,61890-61891,61893-61899,61901-61903,61905-61912,61914,61917,61920-61921,61927,61930,61932-61934,61939,61941-61942,61944-61951,61955,61960-61963,61980,61982-61983,61991,61994-61996,62001-62003,62008-62010,62016-62017,62022,62024,62027,62031-62034,62041,62045-62046,62055-62058,62060-62066,62068-62074,62076-62079,62081-62083,62086-62089,62092-62094,62098,62101,62104,62106-62109,62115-62122,62124-62125,62128,62130,62132,62134-62135,62137,62139-62140,62144,62146,62151,62155,62157,62162-62174 via svnmerge from svn+ssh://[email protected]/python/trunk ........ r62167 | martin.v.loewis | 2008-04-05 17:45:25 +0200 (Sa, 05 Apr 2008) | 1 line Extend sizes of various fields, to support the CRT90 merge module. ........ r62168 | martin.v.loewis | 2008-04-05 17:48:36 +0200 (Sa, 05 Apr 2008) | 1 line Add two features to distinguish between private and SxS CRT. ........ r62169 | martin.v.loewis | 2008-04-05 17:50:58 +0200 (Sa, 05 Apr 2008) | 1 line Add script to merge msvcr90. ........ r62170 | andrew.kuchling | 2008-04-05 17:57:46 +0200 (Sa, 05 Apr 2008) | 1 line Markup fixes; write PEP 3118 section ........ r62173 | georg.brandl | 2008-04-05 19:45:58 +0200 (Sa, 05 Apr 2008) | 2 lines Mention that the tuple returned by __reduce__ is pickled as normal. ........ r62174 | andrew.kuchling | 2008-04-05 20:15:30 +0200 (Sa, 05 Apr 2008) | 1 line Write PEP 3119 section ........
- Loading branch information
Showing
5 changed files
with
319 additions
and
99 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
import msilib,os,win32com,tempfile | ||
PCBUILD="PCBuild" | ||
from config import * | ||
|
||
Win64 = "amd64" in PCBUILD | ||
|
||
mod_dir = os.path.join(os.environ["ProgramFiles"], "Common Files", "Merge Modules") | ||
if Win64: | ||
modules = ["Microsoft_VC90_CRT_x86.msm", "policy_8_0_Microsoft_VC80_CRT_x86_x64.msm"] | ||
msi = "python-%s.amd64.msi" % full_current_version | ||
else: | ||
modules = ["Microsoft_VC90_CRT_x86.msm","policy_8_0_Microsoft_VC80_CRT_x86.msm"] | ||
msi = "python-%s.msi" % full_current_version | ||
for i, n in enumerate(modules): | ||
modules[i] = os.path.join(mod_dir, n) | ||
|
||
def merge(msi, feature, rootdir, modules): | ||
cab_and_filecount = [] | ||
# Step 1: Merge databases, extract cabfiles | ||
m = msilib.MakeMerge2() | ||
m.OpenLog("merge.log") | ||
print "Opened Log" | ||
m.OpenDatabase(msi) | ||
print "Opened DB" | ||
for module in modules: | ||
print module | ||
m.OpenModule(module,0) | ||
print "Opened Module",module | ||
m.Merge(feature, rootdir) | ||
print "Errors:" | ||
for e in m.Errors: | ||
print e.Type, e.ModuleTable, e.DatabaseTable | ||
print " Modkeys:", | ||
for s in e.ModuleKeys: print s, | ||
print " DBKeys:", | ||
for s in e.DatabaseKeys: print s, | ||
cabname = tempfile.mktemp(suffix=".cab") | ||
m.ExtractCAB(cabname) | ||
cab_and_filecount.append((cabname, len(m.ModuleFiles))) | ||
m.CloseModule() | ||
m.CloseDatabase(True) | ||
m.CloseLog() | ||
|
||
# Step 2: Add CAB files | ||
i = msilib.MakeInstaller() | ||
db = i.OpenDatabase(msi, win32com.client.constants.msiOpenDatabaseModeTransact) | ||
|
||
v = db.OpenView("SELECT LastSequence FROM Media") | ||
v.Execute(None) | ||
maxmedia = -1 | ||
while 1: | ||
r = v.Fetch() | ||
if not r: break | ||
seq = r.IntegerData(1) | ||
if seq > maxmedia: | ||
maxmedia = seq | ||
print "Start of Media", maxmedia | ||
|
||
for cabname, count in cab_and_filecount: | ||
stream = "merged%d" % maxmedia | ||
msilib.add_data(db, "Media", | ||
[(maxmedia+1, maxmedia+count, None, "#"+stream, None, None)]) | ||
msilib.add_stream(db, stream, cabname) | ||
os.unlink(cabname) | ||
maxmedia += count | ||
db.Commit() | ||
|
||
merge(msi, "SharedCRT", "TARGETDIR", modules) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.