summaryrefslogtreecommitdiff
path: root/src/mongo/installer
diff options
context:
space:
mode:
authorMark Benvenuto <mark.benvenuto@mongodb.com>2016-09-20 17:19:37 -0400
committerMark Benvenuto <mark.benvenuto@mongodb.com>2016-09-20 17:19:37 -0400
commit585edf79040ed44db42e174b8659ca7290fa48cf (patch)
tree319b90d318d37ec1bb074562b97023db13b572b4 /src/mongo/installer
parent5caef723f0f0dc52636d10e05a0ae8da8985e94b (diff)
downloadmongo-585edf79040ed44db42e174b8659ca7290fa48cf.tar.gz
SERVER-26128 Allow Side-By-Side Install of 3.4 MSIs with other versions
Diffstat (limited to 'src/mongo/installer')
-rw-r--r--src/mongo/installer/msi/SConscript27
1 files changed, 22 insertions, 5 deletions
diff --git a/src/mongo/installer/msi/SConscript b/src/mongo/installer/msi/SConscript
index b923ec5a6c7..e0e910c3121 100644
--- a/src/mongo/installer/msi/SConscript
+++ b/src/mongo/installer/msi/SConscript
@@ -45,7 +45,7 @@ if 'enterprise' in env['MONGO_MODULES']:
msi_edition = 'Enterprise'
msi_flavor = '2008R2Plus'
msi_platform = 'x64'
- upgrade_code = 'E7FE8DF3-00F1-4434-97DF-2721E7F712FA'
+ upgrade_code = '7C0EF607-3C54-4365-98F4-259C15502BC5'
# Community
else:
if has_option('ssl'):
@@ -55,18 +55,18 @@ else:
if env['TARGET_ARCH'] == 'i386':
msi_platform = 'x86'
msi_flavor = ''
- upgrade_code = 'B2E70C13-483E-4E16-B6AA-FCCA7983B767'
+ upgrade_code = '5308B51A-A882-47BF-917A-E506A990DA3C'
else:
msi_platform = 'x64'
if env.get('WIN_VERSION_MIN') == 'ws08r2' or env.get('WIN_VERSION_MIN') == 'win7':
msi_flavor = '2008R2Plus'
if msi_edition == 'SSL':
- upgrade_code = '86CB92A1-E631-4C63-89D2-40A7159B938B'
+ upgrade_code = 'B4C6C314-4E88-4C1F-B708-0E7935DAE299'
else:
- upgrade_code = '448C9172-C5E7-42E0-81CB-00DAA191DD98'
+ upgrade_code = '3E874911-94EF-4E21-867F-32209F084449'
else:
msi_flavor = 'Legacy'
- upgrade_code = '54BEB8CC-C8F7-4292-A411-BDE0A9F21CA3'
+ upgrade_code = '9295A251-1B1F-45FB-96FF-35B57E490613'
if 'msi' in BUILD_TARGETS and msi_edition == 'SSL' and msi_flavor != '2008R2Plus':
print "Building the MongoDB SSL MSI is only supported on Windows 2008 R2+ or Windows 7+ platforms."
@@ -88,6 +88,23 @@ major_version = full_version
mv = major_version.split('.')
major_version = "%s.%s" % (mv[0], mv[1])
+# We must regenerate the upgrade codes for each major release.
+# i.e., 3.0, 3.2, 3.4 need new codes but not 3.2.1, 3.2.2, etc
+# The build will now fail when the major version is bumped to prevent mistakes.
+# When the upgrade codes are bumped, remember to raise the version number to the next major version.
+# On each update to the upgrade codes:
+# 1. Generate new GUIDs
+# 2. Ensure each MSI gets a different GUID. This is used to identify products.
+# It allows upgrade from 3.2.0 to 3.2.1 in place instead of side-by-side.
+# 3. Update the check for the next major release below so we bump the GUIDs in the future.
+#
+if float(major_version) > 3.4:
+ # If you are troubleshooting this error, see the comment above
+ env.FatalError("The upgrade codes are out of date for this release. Please\n" +
+ "replace the existing GUIDs listed in this file with new GUIDs so" +
+ "side-by-side installation of major versions (i.e. 3.2, and 3.4) is" +
+ "supported.")
+
# Currently, we are planning to key the same upgrade code for each
# (msi_edition, msi_platform, msi_flavor) combination
# and change MSI ProductId on minor updates, 2.6.0 -> 2.6.1, we let Wix do automatic