Permalink
Browse files

SERVER-4099, SERVER-4100. MSI for mongodb binaries that allows select…

…ive installation of various binaries. Separate 32 and 64 bit msi's.
  • Loading branch information...
1 parent 7b167dd commit 0982b4085efb7cdd6115ae9c66c13a358390a4aa Sridhar Nanjundeswaran committed Mar 11, 2013
@@ -0,0 +1,2 @@
+bin
+obj
Binary file not shown.
Binary file not shown.

Large diffs are not rendered by default.

Oops, something went wrong.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+ <Version Condition=" '$(Version)' == '' ">2.4.0</Version>
+ <License Condition=" '$(License)' == '' ">..\..\..\distsrc</License>
+ <Source Condition=" '$(Source)' == '' ">..\..\..\build\win32\normal\mongo</Source>
+ <ProductVersion>3.5</ProductVersion>
+ <ProjectGuid>{fc40ea06-5d8c-4edf-9e19-a0bdd9a3a7d5}</ProjectGuid>
+ <SchemaVersion>2.0</SchemaVersion>
+ <OutputName>MongoDB_$(Version)</OutputName>
+ <OutputType>Package</OutputType>
+ <DefineSolutionProperties>false</DefineSolutionProperties>
+ <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
+ <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
+ <Name>MongoDB</Name>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+ <OutputPath>bin\$(Configuration)\$(Platform)\</OutputPath>
+ <IntermediateOutputPath>obj\$(Configuration)\$(Platform)\</IntermediateOutputPath>
+ <DefineConstants>MongoDBVersion=$(Version);LicenseSource=$(License);BinarySource=$(Source)</DefineConstants>
+ <TreatWarningsAsErrors>True</TreatWarningsAsErrors>
+ <VerboseOutput>True</VerboseOutput>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+ <OutputPath>bin\$(Configuration)\$(Platform)\</OutputPath>
+ <IntermediateOutputPath>obj\$(Configuration)\$(Platform)\</IntermediateOutputPath>
+ <DefineConstants>MongoDBVersion=$(Version);LicenseSource=$(License);BinarySource=$(Source)</DefineConstants>
+ <TreatWarningsAsErrors>True</TreatWarningsAsErrors>
+ </PropertyGroup>
+ <ItemGroup>
+ <Compile Include="wxs\BinaryFragment.wxs" />
+ <Compile Include="wxs\FeatureFragment.wxs" />
+ <Compile Include="wxs\LicensingFragment.wxs" />
+ <Compile Include="wxs\Installer.wxs" />
+ </ItemGroup>
+ <ItemGroup>
+ <WixExtension Include="WixUIExtension">
+ <HintPath>$(WixExtDir)\WixUIExtension.dll</HintPath>
+ <Name>WixUIExtension</Name>
+ </WixExtension>
+ </ItemGroup>
+ <ItemGroup>
+ <Folder Include="wxs\" />
+ </ItemGroup>
+ <Import Project="$(WixTargetsPath)" />
+ <!--
+ To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Wix.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
@@ -0,0 +1,49 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "MongoDB", "MongoDB.wixproj", "{FC40EA06-5D8C-4EDF-9E19-A0BDD9A3A7D5}"
+EndProject
+Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "MongoDB_64", "MongoDB_64.wixproj", "{FA9DF7FC-A283-4EB8-B0C6-F9FA31E22CBC}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{2E84BEF1-F2D9-4A6B-B102-EC941AF313AF}"
+ ProjectSection(SolutionItems) = preProject
+ build32bitmsi.bat = build32bitmsi.bat
+ build64bitmsi.bat = build64bitmsi.bat
+ README.md = README.md
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Mixed Platforms = Debug|Mixed Platforms
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Mixed Platforms = Release|Mixed Platforms
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {FC40EA06-5D8C-4EDF-9E19-A0BDD9A3A7D5}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {FC40EA06-5D8C-4EDF-9E19-A0BDD9A3A7D5}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {FC40EA06-5D8C-4EDF-9E19-A0BDD9A3A7D5}.Debug|x64.ActiveCfg = Debug|x86
+ {FC40EA06-5D8C-4EDF-9E19-A0BDD9A3A7D5}.Debug|x86.ActiveCfg = Debug|x86
+ {FC40EA06-5D8C-4EDF-9E19-A0BDD9A3A7D5}.Debug|x86.Build.0 = Debug|x86
+ {FC40EA06-5D8C-4EDF-9E19-A0BDD9A3A7D5}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {FC40EA06-5D8C-4EDF-9E19-A0BDD9A3A7D5}.Release|Mixed Platforms.Build.0 = Release|x86
+ {FC40EA06-5D8C-4EDF-9E19-A0BDD9A3A7D5}.Release|x64.ActiveCfg = Release|x86
+ {FC40EA06-5D8C-4EDF-9E19-A0BDD9A3A7D5}.Release|x86.ActiveCfg = Release|x86
+ {FC40EA06-5D8C-4EDF-9E19-A0BDD9A3A7D5}.Release|x86.Build.0 = Release|x86
+ {FA9DF7FC-A283-4EB8-B0C6-F9FA31E22CBC}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
+ {FA9DF7FC-A283-4EB8-B0C6-F9FA31E22CBC}.Debug|Mixed Platforms.Build.0 = Debug|x64
+ {FA9DF7FC-A283-4EB8-B0C6-F9FA31E22CBC}.Debug|x64.ActiveCfg = Debug|x64
+ {FA9DF7FC-A283-4EB8-B0C6-F9FA31E22CBC}.Debug|x64.Build.0 = Debug|x64
+ {FA9DF7FC-A283-4EB8-B0C6-F9FA31E22CBC}.Debug|x86.ActiveCfg = Debug|x64
+ {FA9DF7FC-A283-4EB8-B0C6-F9FA31E22CBC}.Release|Mixed Platforms.ActiveCfg = Release|x64
+ {FA9DF7FC-A283-4EB8-B0C6-F9FA31E22CBC}.Release|Mixed Platforms.Build.0 = Release|x64
+ {FA9DF7FC-A283-4EB8-B0C6-F9FA31E22CBC}.Release|x64.ActiveCfg = Release|x64
+ {FA9DF7FC-A283-4EB8-B0C6-F9FA31E22CBC}.Release|x64.Build.0 = Release|x64
+ {FA9DF7FC-A283-4EB8-B0C6-F9FA31E22CBC}.Release|x86.ActiveCfg = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">x64</Platform>
+ <Version Condition=" '$(Version)' == '' ">2.4.0</Version>
+ <License Condition=" '$(License)' == '' ">..\..\..\distsrc</License>
+ <Source Condition=" '$(Source)' == '' ">..\..\..\build\win32\64\mongo</Source>
+ <ProductVersion>3.5</ProductVersion>
+ <ProjectGuid>{fa9df7fc-a283-4eb8-b0c6-f9fa31e22cbc}</ProjectGuid>
+ <SchemaVersion>2.0</SchemaVersion>
+ <OutputName>MongoDB_$(Version)_x64</OutputName>
+ <OutputType>Package</OutputType>
+ <DefineSolutionProperties>false</DefineSolutionProperties>
+ <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
+ <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
+ <Name>MongoDB</Name>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
+ <OutputPath>bin\$(Configuration)\$(Platform)\</OutputPath>
+ <IntermediateOutputPath>obj\$(Configuration)\$(Platform)\</IntermediateOutputPath>
+ <DefineConstants>MongoDBVersion=$(Version);LicenseSource=$(License);BinarySource=$(Source)</DefineConstants>
+ <TreatWarningsAsErrors>True</TreatWarningsAsErrors>
+ <VerboseOutput>True</VerboseOutput>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
+ <OutputPath>bin\$(Configuration)\$(Platform)\</OutputPath>
+ <IntermediateOutputPath>obj\$(Configuration)\$(Platform)\</IntermediateOutputPath>
+ <DefineConstants>MongoDBVersion=$(Version);LicenseSource=$(License);BinarySource=$(Source)</DefineConstants>
+ <TreatWarningsAsErrors>True</TreatWarningsAsErrors>
+ </PropertyGroup>
+ <ItemGroup>
+ <Compile Include="wxs\BinaryFragment.wxs" />
+ <Compile Include="wxs\FeatureFragment.wxs" />
+ <Compile Include="wxs\Installer_64.wxs" />
+ <Compile Include="wxs\LicensingFragment.wxs" />
+ </ItemGroup>
+ <ItemGroup>
+ <WixExtension Include="WixUIExtension">
+ <HintPath>$(WixExtDir)\WixUIExtension.dll</HintPath>
+ <Name>WixUIExtension</Name>
+ </WixExtension>
+ </ItemGroup>
+ <ItemGroup>
+ <Folder Include="wxs\" />
+ </ItemGroup>
+ <Import Project="$(WixTargetsPath)" />
+ <!--
+ To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Wix.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
@@ -0,0 +1,36 @@
+## Prerequisites
+WiX Toolset v3.7.1224.0 from http://wixtoolset.org/
+
+## Features
+The following are the installer features with the executables they install.
+Each of these features can be installed independently using msiexec /ADDLOCAL
+or using the Installer GUI
+ * Server
+ * mongod.exe
+ * mongod.pdb
+ * Client
+ * mongo.exe
+ * MonitoringTools
+ * mongostat.exe
+ * mongotop.exe
+ * ImportExportTools
+ * mongodump.exe
+ * mongorestore.exe
+ * mongoexport.exe
+ * mongoimport.exe
+ * Router
+ * mongos.exe
+ * mongos.pdb
+ * MiscellaneousTools
+ * bsondump.exe
+ * mongofiles.exe
+ * mongooplog.exe
+ * mongoperf.exe
+
+## Typical install
+The typical (default) install, installs all except the Router and
+MiscellaneousTools features.
+
+## Configuring builds
+The version, location of binaries and license file can be configured when
+building. Refer to build32bitmsi.bat or build64bitmsi.bat for example
@@ -0,0 +1,25 @@
+@ECHO OFF
+SET VERSION=2.4.0
+SET BINDIR=..\..\..\build\win32\normal\mongo
+SET LICENSEDIR=..\..\..\distsrc
+
+:loop
+IF NOT "%1"=="" (
+ IF "%1"=="-version" (
+ SET VERSION=%2
+ SHIFT
+ )
+ IF "%1"=="-bindir" (
+ SET BINDIR=%2
+ SHIFT
+ )
+ IF "%1"=="-licensedir" (
+ SET LICENSEDIR=%2
+ SHIFT
+ )
+ SHIFT
+ GOTO :loop
+)
+
+ECHO Building msi for version %VERSION% with binaries from %BINDIR% and license files from %LICENSEDIR%
+msbuild /p:Configuration=Release;Version=%VERSION%;License=%LICENSEDIR%;Source=%BINDIR% MongoDB.wixproj
@@ -0,0 +1,25 @@
+@ECHO OFF
+SET VERSION=2.4.0
+SET BINDIR=..\..\..\build\win32\64\mongo
+SET LICENSEDIR=..\..\..\distsrc
+
+:loop
+IF NOT "%1"=="" (
+ IF "%1"=="-version" (
+ SET VERSION=%2
+ SHIFT
+ )
+ IF "%1"=="-bindir" (
+ SET BINDIR=%2
+ SHIFT
+ )
+ IF "%1"=="-licensedir" (
+ SET LICENSEDIR=%2
+ SHIFT
+ )
+ SHIFT
+ GOTO :loop
+)
+
+ECHO Building msi for version %VERSION% with binaries from %BINDIR% and license files from %LICENSEDIR%
+msbuild /p:Configuration=Release;Version=%VERSION%;License=%LICENSEDIR%;Source=%BINDIR% MongoDB_64.wixproj
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+ <Fragment>
+ <DirectoryRef Id="BIN">
+ <Component Id="c_bsondump" Guid="DEEA45CA-5175-453B-9D0B-6168B4C0C891">
+ <File Id="f_bsondump" Name="bsondump.exe" Source="$(var.BinarySource)\bsondump.exe"
+ DiskId ="1" KeyPath="yes"/>
+ </Component>
+ <Component Id="c_mongo" Guid="395C3DA5-A905-409C-AD96-29BFFF5E12D6">
+ <File Id="f_mongo" Name="mongo.exe" Source="$(var.BinarySource)\mongo.exe"
+ DiskId ="1" KeyPath="yes"/>
+ </Component>
+ <Component Id="c_mongod" Guid="7EDFB4A2-5A45-4C41-8F6D-976558B3A9D6">
+ <File Id="f_mongod" Name="mongod.exe" Source="$(var.BinarySource)\mongod.exe"
+ DiskId ="1" KeyPath="yes"/>
+ </Component>
+ <Component Id="c_mongodPdb" Guid="8B41A2E2-911C-4399-8E9F-D3C1AD3B9EDD">
+ <File Id="f_mongodPdb" Name="mongod.pdb" Source="$(var.BinarySource)\mongod.pdb"
+ DiskId ="1" KeyPath="yes"/>
+ </Component>
+ <Component Id="c_mongodump" Guid="FFE32884-ACAD-4EC6-AF84-6BC94F55819E">
+ <File Id="f_mongodump" Name="mongodump.exe" Source="$(var.BinarySource)\mongodump.exe"
+ DiskId ="1" KeyPath="yes"/>
+ </Component>
+ <Component Id="c_mongoexport" Guid="FD5FFDE2-53A1-45F3-9CCA-3AC311DF647C">
+ <File Id="f_mongoexport" Name="mongoexport.exe" Source="$(var.BinarySource)\mongoexport.exe"
+ DiskId ="1" KeyPath="yes"/>
+ </Component>
+ <Component Id="c_mongofiles" Guid="CF8696D3-92B4-4CB9-B4D0-16155D726FE6">
+ <File Id="f_mongofiles" Name="mongofiles.exe" Source="$(var.BinarySource)\mongofiles.exe"
+ DiskId ="1" KeyPath="yes"/>
+ </Component>
+ <Component Id="c_mongoimport" Guid="A4C06F69-2BB3-4068-A7E7-25347CCF01DE">
+ <File Id="f_mongoimport" Name="mongoimport.exe" Source="$(var.BinarySource)\mongoimport.exe"
+ DiskId ="1" KeyPath="yes"/>
+ </Component>
+ <Component Id="c_mongooplog" Guid="FAD84CBB-4666-4C22-A0DF-E1D2AEEC1601">
+ <File Id="f_mongooplog" Name="mongooplog.exe" Source="$(var.BinarySource)\mongooplog.exe"
+ DiskId ="1" KeyPath="yes"/>
+ </Component>
+ <Component Id="c_mongoperf" Guid="B046CCD2-39DC-4CB4-8A58-A7790148C41E">
+ <File Id="f_mongoperf" Name="mongoperf.exe" Source="$(var.BinarySource)\mongoperf.exe"
+ DiskId ="1" KeyPath="yes"/>
+ </Component>
+ <Component Id="c_mongorestore" Guid="72A16D11-242E-4368-93C9-5F6162C548FC">
+ <File Id="f_mongorestore" Name="mongorestore.exe" Source="$(var.BinarySource)\mongorestore.exe"
+ DiskId ="1" KeyPath="yes"/>
+ </Component>
+ <Component Id="c_mongos" Guid="3CA63864-9FA0-4DAE-A664-2BE9A157FB60">
+ <File Id="f_mongos" Name="mongos.exe" Source="$(var.BinarySource)\mongos.exe"
+ DiskId ="1" KeyPath="yes"/>
+ </Component>
+ <Component Id="c_mongosPdb" Guid="F1694AB8-4B0D-4096-AD67-948063FF2A6C">
+ <File Id="f_mongosPdb" Name="mongos.pdb" Source="$(var.BinarySource)\mongos.pdb"
+ DiskId ="1" KeyPath="yes"/>
+ </Component>
+ <Component Id="c_mongostat" Guid="0A881C85-AB39-4247-BADD-C8191F2FFF0C">
+ <File Id="f_mongostat" Name="mongostat.exe" Source="$(var.BinarySource)\mongostat.exe"
+ DiskId ="1" KeyPath="yes"/>
+ </Component>
+ <Component Id="c_mongotop" Guid="616C562D-0504-4F2D-A6E7-CC21A58F9F81">
+ <File Id="f_mongotop" Name="mongotop.exe" Source="$(var.BinarySource)\mongotop.exe"
+ DiskId ="1" KeyPath="yes"/>
+ </Component>
+ </DirectoryRef>
+ </Fragment>
+</Wix>
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+ <Fragment>
+ <FeatureGroup Id="fg_MongoDBAll">
+ <Feature Id="ProductFeature"
+ Title="!(wix.ProductName)"
+ Description="!(wix.ProductName)"
+ Level="1">
+ <ComponentRef Id="c_License" />
+ <Feature Id="Server"
+ Title ="Server"
+ Description="The MongoDB server (mongod)"
+ Level ="1">
+ <ComponentRef Id="c_mongod"/>
+ <ComponentRef Id="c_mongodPdb"/>
+ </Feature>
+ <Feature Id="Client"
+ Title ="Client"
+ Description="The MongoDB client/shell (mongo)"
+ Level ="1">
+ <ComponentRef Id="c_mongo"/>
+ </Feature>
+ <Feature Id="MonitoringTools"
+ Title ="Monitoring Tools"
+ Description="MongoDB monitoring tools (mongostat, mongotop)"
+ Level ="1">
+ <ComponentRef Id="c_mongostat"/>
+ <ComponentRef Id="c_mongotop"/>
+ </Feature>
+ <Feature Id="ImportExportTools"
+ Title ="Import/Export Tools"
+ Description="MongoDB import/export tools (mongodump/mongorestore and mongoexport/mongoimport)"
+ Level ="1">
+ <ComponentRef Id="c_mongodump"/>
+ <ComponentRef Id="c_mongorestore"/>
+ <ComponentRef Id="c_mongoexport"/>
+ <ComponentRef Id="c_mongoimport"/>
+ </Feature>
+ <Feature Id="Router"
+ Title ="Router"
+ Description="The MongoDB Router (mongos)"
+ Level ="1000">
+ <ComponentRef Id="c_mongos"/>
+ <ComponentRef Id="c_mongosPdb"/>
+ </Feature>
+ <Feature Id="MiscellaneousTools"
+ Title ="Miscellaneous Tools"
+ Description="Miscellaneous MongoDB tools (bsondump, mongofiles, mongooplog, mongoperf)"
+ Level ="1000">
+ <ComponentRef Id="c_bsondump"/>
+ <ComponentRef Id="c_mongofiles"/>
+ <ComponentRef Id="c_mongooplog"/>
+ <ComponentRef Id="c_mongoperf"/>
+ </Feature>
+ </Feature>
+ </FeatureGroup>
+ </Fragment>
+</Wix>
+
Oops, something went wrong.

0 comments on commit 0982b40

Please sign in to comment.