Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Jemlich <pcgod@users.sourceforge.net>2010-08-09 03:34:36 +0400
committerBenjamin Jemlich <pcgod@users.sourceforge.net>2010-08-09 03:34:36 +0400
commit4bb0bf21e21228631a48cf10d8911a6ec1bcad05 (patch)
tree4f68a6e180f3eb6e3394862dc17f6d92c9d14181
parentdac82c99943a11cbe6e52da45da76f30c6d2ddbf (diff)
Add MSI-based installer
-rw-r--r--installer/English.wxl18
-rw-r--r--installer/Files.wxs328
-rw-r--r--installer/MumbleInstall.sln20
-rw-r--r--installer/MumbleInstall.wixproj48
-rw-r--r--installer/Plugins.wxs141
-rw-r--r--installer/Product.wxs196
-rw-r--r--installer/Settings.wxi31
-rw-r--r--installer/gpl.rtf344
8 files changed, 1126 insertions, 0 deletions
diff --git a/installer/English.wxl b/installer/English.wxl
new file mode 100644
index 000000000..cb090f407
--- /dev/null
+++ b/installer/English.wxl
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<WixLocalization Culture="en-us" xmlns="http://schemas.microsoft.com/wix/2006/localization">
+ <!-- For the start menu -->
+ <String Id="MUMBLE_README_LNK">Mumble Readme</String>
+ <String Id="MUMBLE_LICENSE_LNK">Mumble License</String>
+ <String Id="MUMBLE_QT_LNK">Qt License</String>
+ <String Id="MUMBLE_SPEEX_LNK">Speex License</String>
+ <String Id="MUMBLE_UNINSTALL_LNK">Uninstall Mumble</String>
+ <String Id="MUMBLE_COMPAT_LNK">Mumble (Backwards Compatible)</String>
+
+ <!-- Install sections -->
+ <String Id="MUMBLE_SEC_MUMBLE">Mumble (client)</String>
+ <String Id="MUMBLE_SEC_MUMBLE11X">Mumble (backwards compatible client)</String>
+ <String Id="MUMBLE_SEC_MURMUR">Murmur (server)</String>
+ <String Id="DESC_SectionMumble">The Mumble client, which you will need to connect to a server.</String>
+ <String Id="DESC_SectionMumble11X">The Mumble client for connecting to older servers.</String>
+ <String Id="DESC_SectionMurmur">The server for Mumble. Includes everything needed to run your own server.</String>
+</WixLocalization> \ No newline at end of file
diff --git a/installer/Files.wxs b/installer/Files.wxs
new file mode 100644
index 000000000..2582ee662
--- /dev/null
+++ b/installer/Files.wxs
@@ -0,0 +1,328 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+ <?include "Settings.wxi" ?>
+
+ <!-- Mumble -->
+ <Fragment>
+ <DirectoryRef Id="INSTALLDIR">
+ <Component Id="mumble.exe" Guid="A08F7909-1116-4AC8-9422-051FA1A1BE19">
+ <File Id="mumble.exe" Source="$(var.SourceDir)\release\mumble.exe" KeyPath="yes">
+ <Shortcut Id="MumbleShortcut" Directory="ApplicationProgramsFolder" Name="Mumble" WorkingDirectory="INSTALLDIR" Icon="mumble.ico" IconIndex="0" Advertise="yes">
+ <ShortcutProperty Id="startMenu.ApplicationId" Key="System.AppUserModel.ID" Value="net.sourceforge.mumble.Mumble" />
+ </Shortcut>
+ <Shortcut Id="MumbleDesktopShortcut" Directory="DesktopFolder" Name="Mumble" WorkingDirectory="INSTALLDIR" Icon="mumble.ico" IconIndex="0" Advertise="yes">
+ <ShortcutProperty Id="desktop.ApplicationId" Key="System.AppUserModel.ID" Value="net.sourceforge.mumble.Mumble" />
+ </Shortcut>
+ </File>
+
+ <RegistryValue Root="HKCR" Key="mumble" Value="URL:Mumble" Type="string" />
+ <RegistryValue Root="HKCR" Key="mumble" Name="URL Protocol" Value="" Type="string" />
+ <RegistryValue Root="HKCR" Key="mumble\DefaultIcon" Value="[#mumble.exe]" Type="string" />
+ <RegistryValue Root="HKCR" Key="mumble\shell\open\command" Value="[#mumble.exe] &quot;%1&quot;" Type="string" />
+ </Component>
+ <?if $(var.CompatClient) = true ?>
+ <Component Id="mumble11x.exe">
+ <File Id="mumble11x.exe" Source="$(var.SourceDir)\release\mumble11x.exe" KeyPath="yes">
+ <Shortcut Id="Mumble11xShortcut" Directory="ApplicationProgramsFolder" Name="!(loc.MUMBLE_COMPAT_LNK)" WorkingDirectory="INSTALLDIR" Icon="mumble.ico" IconIndex="0" Advertise="yes" />
+ </File>
+ </Component>
+ <?endif ?>
+ <Component Id="mumble_ol.dll">
+ <File Source="$(var.SourceDir)\release\mumble_ol.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="celt0.0.7.0.dll">
+ <File Source="$(var.SourceDir)\release\celt0.0.7.0.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="celt0.0.8.0.dll">
+ <File Source="$(var.SourceDir)\release\celt0.0.8.0.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="speex.dll">
+ <File Source="$(var.SourceDir)\release\speex.dll" KeyPath="yes" />
+ </Component>
+
+ <Component Id="murmur.exe">
+ <File Id="murmur.exe" Source="$(var.SourceDir)\release\murmur.exe" KeyPath="yes">
+ <Shortcut Id="MurmurShortcut" Directory="ApplicationProgramsFolder" Name="Murmur" WorkingDirectory="INSTALLDIR" Icon="murmur.ico" IconIndex="0" Advertise="yes" />
+ </File>
+ </Component>
+ <Component Id="murmur.ini" NeverOverwrite="yes">
+ <File Source="$(var.SourceDir)\scripts\murmur.ini.win32" Name="murmur.ini" KeyPath="yes" />
+ </Component>
+ <Component Id="Murmur.ice">
+ <File Source="$(var.SourceDir)\src\murmur\Murmur.ice" KeyPath="yes" />
+ </Component>
+
+ <Component Id="qt.conf">
+ <File Source="$(var.SourceDir)\scripts\qt.conf" KeyPath="yes" />
+ </Component>
+
+ <Component Id="licence.txt">
+ <File Source="$(var.SourceDir)\installer\gpl.txt" Name="licence.txt" KeyPath="yes">
+ <Shortcut Id="LicenceShortcut" Directory="ApplicationProgramsFolder" Name="!(loc.MUMBLE_LICENSE_LNK)" Icon="Readme.txt" Advertise="yes" />
+ </File>
+ </Component>
+ <Component Id="Readme.txt">
+ <File Source="$(var.SourceDir)\README" Name="Readme.txt" KeyPath="yes">
+ <Shortcut Id="ReadmeShortcut" Directory="ApplicationProgramsFolder" Name="!(loc.MUMBLE_README_LNK)" Icon="Readme.txt" Advertise="yes" />
+ </File>
+ </Component>
+ <Component Id="Changes.txt">
+ <File Source="$(var.SourceDir)\CHANGES" Name="Changes.txt" KeyPath="yes" />
+ </Component>
+ <Component Id="speex.txt">
+ <File Source="$(var.SourceDir)\installer\speex.txt" KeyPath="yes">
+ <Shortcut Id="SpeexLicenceShortcut" Directory="ApplicationProgramsFolder" Name="!(loc.MUMBLE_SPEEX_LNK)" Icon="Readme.txt" Advertise="yes" />
+ </File>
+ </Component>
+ <Component Id="qt.txt">
+ <File Source="$(var.SourceDir)\installer\qt.txt" KeyPath="yes">
+ <Shortcut Id="QtLicenceShortcut" Directory="ApplicationProgramsFolder" Name="!(loc.MUMBLE_QT_LNK)" Icon="Readme.txt" Advertise="yes" />
+ </File>
+ </Component>
+
+ <Component Id="dbghelp.dll">
+ <File Source="$(var.DebugToolsDir)\dbghelp.dll" KeyPath="yes" />
+ </Component>
+
+ <?ifdef IntelCppDir ?>
+ <Component Id="libmmd.dll">
+ <File Source="$(var.IntelCppDir)\libmmd.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="celt0.0.7.0.sse.dll">
+ <File Source="$(var.SourceDir)\release\celt0.0.7.0.sse.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="celt0.0.8.0.sse.dll">
+ <File Source="$(var.SourceDir)\release\celt0.0.8.0.sse.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="celt0.0.7.0.sse2.dll">
+ <File Source="$(var.SourceDir)\release\celt0.0.7.0.sse2.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="celt0.0.8.0.sse2.dll">
+ <File Source="$(var.SourceDir)\release\celt0.0.8.0.sse2.dll" KeyPath="yes" />
+ </Component>
+ <?endif ?>
+
+ <?ifdef ProtoBufDir ?>
+ <Component Id="libprotobuf.dll">
+ <File Source="$(var.ProtoBufDir)\vsprojects\Release\libprotobuf.dll" KeyPath="yes" />
+ </Component>
+ <?endif?>
+
+ <?ifdef RedistDirVC10 ?>
+ <Component Id="msvcp100.dll">
+ <File Source="$(var.RedistDirVC10)\msvcp100.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="msvcr100.dll">
+ <File Source="$(var.RedistDirVC10)\msvcr100.dll" KeyPath="yes" />
+ </Component>
+ <?endif ?>
+ </DirectoryRef>
+ </Fragment>
+
+ <!-- DBus -->
+ <?ifdef DBusDir ?>
+ <Fragment>
+ <DirectoryRef Id="INSTALLDIR">
+ <Component Id="dbus1.dll">
+ <File Source="$(var.DBusDir)\bin\dbus-1.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="libxml2.dll">
+ <File Source="$(var.DBusDir)\bin\libxml2.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="iconv.dll">
+ <File Source="$(var.DBusDir)\bin\iconv.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="dbusdaemon.exe">
+ <File Source="$(var.DBusDir)\bin\dbus-daemon.exe" KeyPath="yes" />
+ </Component>
+ <Component Id="session.conf">
+ <File Source="$(var.DBusDir)\etc\session.conf" KeyPath="yes" />
+ </Component>
+ </DirectoryRef>
+ <ComponentGroup Id="DBus">
+ <ComponentRef Id="dbus1.dll" />
+ <ComponentRef Id="libxml2.dll" />
+ <ComponentRef Id="iconv.dll" />
+ <ComponentRef Id="dbusdaemon.exe" />
+ <ComponentRef Id="session.conf" />
+ </ComponentGroup>
+ </Fragment>
+ <?endif ?>
+
+ <!-- libsndfile -->
+ <?ifdef SndFileDir ?>
+ <Fragment>
+ <DirectoryRef Id="INSTALLDIR">
+ <Component Id="libsndfile1.dll">
+ <File Source="$(var.SndFileDir)\libsndfile-1.dll" KeyPath="yes" />
+ </Component>
+ </DirectoryRef>
+ </Fragment>
+ <?endif ?>
+
+ <!-- MySQL -->
+ <?ifdef MySQLDir ?>
+ <Fragment>
+ <DirectoryRef Id="INSTALLDIR">
+ <Component Id="libmysql.dll">
+ <File Source="$(var.MySQLDir)\lib\opt\libmysql.dll" KeyPath="yes" />
+ </Component>
+ </DirectoryRef>
+ </Fragment>
+ <?endif ?>
+
+ <!-- Ice -->
+ <?ifdef IceDir ?>
+ <Fragment>
+ <DirectoryRef Id="INSTALLDIR">
+ <Component Id="bzip2.dll">
+ <File Source="$(var.IceDir)\bzip2.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="ice34.dll">
+ <File Source="$(var.IceDir)\ice34.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="iceutil34.dll">
+ <File Source="$(var.IceDir)\iceutil34.dll" KeyPath="yes" />
+ </Component>
+ </DirectoryRef>
+ </Fragment>
+ <?endif ?>
+
+ <!-- OpenSSL -->
+ <Fragment>
+ <DirectoryRef Id="INSTALLDIR">
+ <Component Id="libeay32.dll">
+ <File Source="$(var.OpenSslDir)\bin\libeay32.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="ssleay32.dll">
+ <File Source="$(var.OpenSslDir)\bin\ssleay32.dll" KeyPath="yes" />
+ </Component>
+ <?ifdef ZlibDir ?>
+ <Component Id="zlib1.dll">
+ <File Source="$(var.ZlibDir)\zlib1.dll" KeyPath="yes" />
+ </Component>
+ <?endif ?>
+ </DirectoryRef>
+ </Fragment>
+
+ <!-- Qt -->
+ <Fragment>
+ <DirectoryRef Id="INSTALLDIR">
+ <Component Id="QtCore4.dll">
+ <File Source="$(var.QtDir)\bin\QtCore4.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="QtGui4.dll">
+ <File Source="$(var.QtDir)\bin\QtGui4.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="QtNetwork4.dll">
+ <File Source="$(var.QtDir)\bin\QtNetwork4.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="QtOpenGL4.dll">
+ <File Source="$(var.QtDir)\bin\QtOpenGL4.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="QtSql4.dll">
+ <File Source="$(var.QtDir)\bin\QtSql4.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="QtSvg4.dll">
+ <File Source="$(var.QtDir)\bin\QtSvg4.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="QtXml4.dll">
+ <File Source="$(var.QtDir)\bin\QtXml4.dll" KeyPath="yes" />
+ </Component>
+ </DirectoryRef>
+ </Fragment>
+
+ <Fragment>
+ <DirectoryRef Id="QtPluginAccessibleFolder">
+ <Component Id="qtaccessiblewidgets4.dll">
+ <File Source="$(var.QtDir)\plugins\accessible\qtaccessiblewidgets4.dll" KeyPath="yes" />
+ </Component>
+ </DirectoryRef>
+ </Fragment>
+
+ <Fragment>
+ <DirectoryRef Id="QtPluginIconEnginesFolder">
+ <Component Id="qsvgicon4.dll">
+ <File Source="$(var.QtDir)\plugins\iconengines\qsvgicon4.dll" KeyPath="yes" />
+ </Component>
+ </DirectoryRef>
+ </Fragment>
+
+ <Fragment>
+ <DirectoryRef Id="QtPluginImageFormatsFolder">
+ <Component Id="qgif4.dll">
+ <File Source="$(var.QtDir)\plugins\imageformats\qgif4.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="qico4.dll">
+ <File Source="$(var.QtDir)\plugins\imageformats\qico4.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="qjpeg4.dll">
+ <File Source="$(var.QtDir)\plugins\imageformats\qjpeg4.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="qmng4.dll">
+ <File Source="$(var.QtDir)\plugins\imageformats\qmng4.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="qsvg4.dll">
+ <File Source="$(var.QtDir)\plugins\imageformats\qsvg4.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="qtiff4.dll">
+ <File Source="$(var.QtDir)\plugins\imageformats\qtiff4.dll" KeyPath="yes" />
+ </Component>
+ </DirectoryRef>
+ </Fragment>
+
+ <Fragment>
+ <DirectoryRef Id="QtPluginCodecsFolder">
+ <Component Id="qcncodecs4.dll">
+ <File Source="$(var.QtDir)\plugins\codecs\qcncodecs4.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="qjpcodecs4.dll">
+ <File Source="$(var.QtDir)\plugins\codecs\qjpcodecs4.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="qkrcodecs4.dll">
+ <File Source="$(var.QtDir)\plugins\codecs\qkrcodecs4.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="qtwcodecs4.dll">
+ <File Source="$(var.QtDir)\plugins\codecs\qtwcodecs4.dll" KeyPath="yes" />
+ </Component>
+ </DirectoryRef>
+ </Fragment>
+
+ <Fragment>
+ <ComponentGroup Id="Qt">
+ <ComponentRef Id="QtCore4.dll" />
+ <ComponentRef Id="QtGui4.dll" />
+ <ComponentRef Id="QtNetwork4.dll" />
+ <ComponentRef Id="QtOpenGL4.dll" />
+ <ComponentRef Id="QtSql4.dll" />
+ <ComponentRef Id="QtSvg4.dll" />
+ <ComponentRef Id="QtXml4.dll" />
+
+ <ComponentRef Id="qtaccessiblewidgets4.dll" />
+ <ComponentRef Id="qsvgicon4.dll" />
+ <ComponentRef Id="qgif4.dll" />
+ <ComponentRef Id="qico4.dll" />
+ <ComponentRef Id="qjpeg4.dll" />
+ <ComponentRef Id="qmng4.dll" />
+ <ComponentRef Id="qsvg4.dll" />
+ <ComponentRef Id="qtiff4.dll" />
+ <ComponentRef Id="qcncodecs4.dll" />
+ <ComponentRef Id="qjpcodecs4.dll" />
+ <ComponentRef Id="qkrcodecs4.dll" />
+ <ComponentRef Id="qtwcodecs4.dll" />
+ </ComponentGroup>
+ </Fragment>
+
+ <!-- Directory tree -->
+ <Fragment>
+ <DirectoryRef Id="INSTALLDIR">
+ <Directory Id="PluginFolder" Name="plugins" />
+ <Directory Id="QtPluginFolder" Name="QtPlugins">
+ <Directory Id="QtPluginIconEnginesFolder" Name="iconengines" />
+ <Directory Id="QtPluginImageFormatsFolder" Name="imageformats" />
+ <Directory Id="QtPluginAccessibleFolder" Name="accessible" />
+ <Directory Id="QtPluginCodecsFolder" Name="codecs" />
+ </Directory>
+ </DirectoryRef>
+ </Fragment>
+</Wix> \ No newline at end of file
diff --git a/installer/MumbleInstall.sln b/installer/MumbleInstall.sln
new file mode 100644
index 000000000..ce1f62b14
--- /dev/null
+++ b/installer/MumbleInstall.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "MumbleInstall", "MumbleInstall.wixproj", "{84AFEA8B-15E5-4CC7-B77D-27DD17030944}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x86 = Debug|x86
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {84AFEA8B-15E5-4CC7-B77D-27DD17030944}.Debug|x86.ActiveCfg = Debug|x86
+ {84AFEA8B-15E5-4CC7-B77D-27DD17030944}.Debug|x86.Build.0 = Debug|x86
+ {84AFEA8B-15E5-4CC7-B77D-27DD17030944}.Release|x86.ActiveCfg = Release|x86
+ {84AFEA8B-15E5-4CC7-B77D-27DD17030944}.Release|x86.Build.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/installer/MumbleInstall.wixproj b/installer/MumbleInstall.wixproj
new file mode 100644
index 000000000..46c11a5c6
--- /dev/null
+++ b/installer/MumbleInstall.wixproj
@@ -0,0 +1,48 @@
+<?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>
+ <ProductVersion>3.5</ProductVersion>
+ <ProjectGuid>{84afea8b-15e5-4cc7-b77d-27dd17030944}</ProjectGuid>
+ <SchemaVersion>2.0</SchemaVersion>
+ <OutputName>Mumble</OutputName>
+ <OutputType>Package</OutputType>
+ <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix2010.targets</WixTargetsPath>
+ <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix2010.targets</WixTargetsPath>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+ <OutputPath>bin\$(Configuration)\</OutputPath>
+ <IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
+ <DefineConstants>Debug</DefineConstants>
+ <LinkerAdditionalOptions>-ext WixUIExtension</LinkerAdditionalOptions>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+ <OutputPath>bin\$(Configuration)\</OutputPath>
+ <IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
+ <DefineConstants>
+ </DefineConstants>
+ <LinkerAdditionalOptions>-ext WixUIExtension</LinkerAdditionalOptions>
+ <VerboseOutput>False</VerboseOutput>
+ </PropertyGroup>
+ <ItemGroup>
+ <Compile Include="Files.wxs" />
+ <Compile Include="Plugins.wxs" />
+ <Compile Include="Product.wxs" />
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="English.wxl" />
+ </ItemGroup>
+ <ItemGroup>
+ <Content Include="Settings.wxi" />
+ </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> \ No newline at end of file
diff --git a/installer/Plugins.wxs b/installer/Plugins.wxs
new file mode 100644
index 000000000..babe2bb63
--- /dev/null
+++ b/installer/Plugins.wxs
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+ <?include "Settings.wxi" ?>
+
+ <!-- Plugins -->
+ <Fragment>
+ <DirectoryRef Id="PluginFolder">
+ <Component Id="aoc.dll">
+ <File Source="$(var.SourceDir)\release\plugins\aoc.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="arma2.dll">
+ <File Source="$(var.SourceDir)\release\plugins\arma2.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="bf1942.dll">
+ <File Source="$(var.SourceDir)\release\plugins\bf1942.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="bf2.dll">
+ <File Source="$(var.SourceDir)\release\plugins\bf2.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="bf2142.dll">
+ <File Source="$(var.SourceDir)\release\plugins\bf2142.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="bfbc2.dll">
+ <File Source="$(var.SourceDir)\release\plugins\bfbc2.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="bfheroes.dll">
+ <File Source="$(var.SourceDir)\release\plugins\bfheroes.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="borderlands.dll">
+ <File Source="$(var.SourceDir)\release\plugins\borderlands.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="cod2.dll">
+ <File Source="$(var.SourceDir)\release\plugins\cod2.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="cod4.dll">
+ <File Source="$(var.SourceDir)\release\plugins\cod4.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="cod5.dll">
+ <File Source="$(var.SourceDir)\release\plugins\cod5.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="codmw2.dll">
+ <File Source="$(var.SourceDir)\release\plugins\codmw2.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="codmw2so.dll">
+ <File Source="$(var.SourceDir)\release\plugins\codmw2so.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="cs.dll">
+ <File Source="$(var.SourceDir)\release\plugins\cs.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="css.dll">
+ <File Source="$(var.SourceDir)\release\plugins\css.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="dods.dll">
+ <File Source="$(var.SourceDir)\release\plugins\dods.dll" />
+ </Component>
+ <Component Id="dys.dll">
+ <File Source="$(var.SourceDir)\release\plugins\dys.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="etqw.dll">
+ <File Source="$(var.SourceDir)\release\plugins\etqw.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="gmod.dll">
+ <File Source="$(var.SourceDir)\release\plugins\gmod.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="hl2dm.dll">
+ <File Source="$(var.SourceDir)\release\plugins\hl2dm.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="insurgency.dll">
+ <File Source="$(var.SourceDir)\release\plugins\insurgency.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="l4d.dll">
+ <File Source="$(var.SourceDir)\release\plugins\l4d.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="l4d2.dll">
+ <File Source="$(var.SourceDir)\release\plugins\l4d2.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="link.dll">
+ <File Source="$(var.SourceDir)\release\plugins\link.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="lotro.dll">
+ <File Source="$(var.SourceDir)\release\plugins\lotro.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="manual.dll">
+ <File Source="$(var.SourceDir)\release\plugins\manual.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="sto.dll">
+ <File Source="$(var.SourceDir)\release\plugins\sto.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="tf2.dll">
+ <File Source="$(var.SourceDir)\release\plugins\tf2.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="ut2004.dll">
+ <File Source="$(var.SourceDir)\release\plugins\ut2004.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="ut3.dll">
+ <File Source="$(var.SourceDir)\release\plugins\ut3.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="wolfet.dll">
+ <File Source="$(var.SourceDir)\release\plugins\wolfet.dll" KeyPath="yes" />
+ </Component>
+ <Component Id="wow.dll">
+ <File Source="$(var.SourceDir)\release\plugins\wow.dll" KeyPath="yes" />
+ </Component>
+ </DirectoryRef>
+
+ <ComponentGroup Id="Plugins">
+ <ComponentRef Id="aoc.dll" />
+ <ComponentRef Id="arma2.dll" />
+ <ComponentRef Id="bf1942.dll" />
+ <ComponentRef Id="bf2.dll" />
+ <ComponentRef Id="bf2142.dll" />
+ <ComponentRef Id="bfbc2.dll" />
+ <ComponentRef Id="bfheroes.dll" />
+ <ComponentRef Id="borderlands.dll" />
+ <ComponentRef Id="cod2.dll" />
+ <ComponentRef Id="cod4.dll" />
+ <ComponentRef Id="cod5.dll" />
+ <ComponentRef Id="codmw2.dll" />
+ <ComponentRef Id="codmw2so.dll" />
+ <ComponentRef Id="cs.dll" />
+ <ComponentRef Id="css.dll" />
+ <ComponentRef Id="dods.dll" />
+ <ComponentRef Id="dys.dll" />
+ <ComponentRef Id="etqw.dll" />
+ <ComponentRef Id="gmod.dll" />
+ <ComponentRef Id="hl2dm.dll" />
+ <ComponentRef Id="insurgency.dll" />
+ <ComponentRef Id="l4d.dll" />
+ <ComponentRef Id="l4d2.dll" />
+ <ComponentRef Id="link.dll" />
+ <ComponentRef Id="lotro.dll" />
+ <ComponentRef Id="manual.dll" />
+ <ComponentRef Id="sto.dll" />
+ <ComponentRef Id="tf2.dll" />
+ <ComponentRef Id="ut2004.dll" />
+ <ComponentRef Id="ut3.dll" />
+ <ComponentRef Id="wolfet.dll" />
+ <ComponentRef Id="wow.dll" />
+ </ComponentGroup>
+ </Fragment>
+</Wix> \ No newline at end of file
diff --git a/installer/Product.wxs b/installer/Product.wxs
new file mode 100644
index 000000000..d259f26ef
--- /dev/null
+++ b/installer/Product.wxs
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+ <?include "Settings.wxi" ?>
+
+ <Product Id="*" Name="$(var.ProductName) $(var.ProductVersion)" Language="1033" Version="$(var.ProductVersion)" Manufacturer="$(var.ProductManufacturer)" UpgradeCode="B0EEFCC7-8A9c-4471-AB10-CBD35BE3161D">
+ <Package Id="*" InstallerVersion="200" Compressed="yes" />
+
+ <Property Id='NSISINSTALL'>
+ <RegistrySearch Id='NSISSearch' Win64='no' Root='HKLM' Key='SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Mumble' Type='directory' Name='InstallLocation' />
+ </Property>
+
+ <CustomAction Id="SetNSISPath" Property="NSISPath" Value="[NSISINSTALL]Uninstall.exe" />
+ <CustomAction Id="NSISUninstall" Property="NSISPath" ExeCommand="/S _?=[NSISINSTALL]" Execute="deferred" Impersonate="no" Return="check" />
+ <UI>
+ <ProgressText Action="NSISUninstall">Uninstalling old version</ProgressText>
+ </UI>
+
+ <Property Id='INSTALLDIR'>
+ <ComponentSearch Id='SearchMumbleComponent' Guid='A08F7909-1116-4AC8-9422-051FA1A1BE19' />
+ </Property>
+
+ <!--
+ <Condition Message="Uninstall [NSISINSTALL] before installing this package.">
+ Installed OR NOT NSISINSTALL
+ </Condition>
+-->
+ <Condition Message='$(var.ProductName) requires Windows XP or higher'>
+ VersionNT >= 501
+ </Condition>
+
+ <MajorUpgrade AllowDowngrades='no' AllowSameVersionUpgrades='yes' MigrateFeatures='yes' Schedule='afterInstallInitialize' DowngradeErrorMessage='A later version of [ProductName] is already installed.' />
+
+ <Media Id="1" Cabinet="$(var.ProductName).cab" EmbedCab="yes" CompressionLevel="high" />
+
+ <UIRef Id="WixUI_FeatureTree" />
+ <UIRef Id="WixUI_ErrorProgressText" />
+
+ <Property Id="ALLUSERS" Value="2" />
+ <Property Id="ARPURLINFOABOUT" Value="http://mumble.sourceforge.net/" />
+ <Property Id="ARPURLUPDATEINFO" Value="http://mumble.sourceforge.net/" />
+ <Property Id='ARPPRODUCTICON'>mumble.ico</Property>
+
+ <WixVariable Id="WixUILicenseRtf" Value="$(var.SourceDir)\installer\gpl.rtf" />
+
+ <Directory Id="TARGETDIR" Name="SourceDir">
+ <Directory Id="ProgramFilesFolder">
+ <Directory Id="INSTALLDIR" Name="$(var.ProductName)">
+ </Directory>
+
+ <?ifdef RedistDirVC9 ?>
+ <Merge Id="VCRedist" SourceFile="$(var.RedistDirVC9)\Microsoft_VC90_CRT_x86.msm" DiskId="1" Language="0" />
+ <Merge Id='VCRedistPolicy' SourceFile='$(var.RedistDirVC9)\policy.x.xx.microsoft.vcxx.crt.x86_msm.msm' DiskId='1' Language='0' />
+ <?endif ?>
+ </Directory>
+
+ <Directory Id="DesktopFolder" />
+
+ <Directory Id="ProgramMenuFolder">
+ <Directory Id="ApplicationProgramsFolder" Name="$(var.ProductName)" />
+ </Directory>
+
+ <Directory Id="AppDataFolder">
+ <Directory Id="AppDataProgramFolder" Name="$(var.ProductName)">
+ <Directory Id="AppDataPluginFolder" Name="Plugins" />
+ </Directory>
+ </Directory>
+ </Directory>
+
+ <Icon Id="mumble.ico" SourceFile="$(var.SourceDir)\icons\mumble.ico"/>
+ <Icon Id="murmur.ico" SourceFile="$(var.SourceDir)\icons\murmur.ico"/>
+ <Icon Id="Readme.txt" SourceFile="$(var.SourceDir)\installer\speex.txt"/>
+
+ <DirectoryRef Id="ApplicationProgramsFolder">
+ <Component Id="UninstallShortcut" Guid="AFCE8451-06BF-4BD0-A25A-3F9832B39A0F">
+ <Shortcut Id="UninstallMumble" Name="!(loc.MUMBLE_UNINSTALL_LNK)" Target="[System64Folder]msiexec.exe" Arguments="/x [ProductCode]" Directory="ApplicationProgramsFolder" />
+ <RegistryValue Key="Software\Mumble\Uninstall" Root="HKCU" Value="1" Type="integer" KeyPath="yes" />
+ <RemoveFolder Id="ApplicationProgramsFolder" On="uninstall" />
+ </Component>
+ </DirectoryRef>
+
+ <DirectoryRef Id="AppDataPluginFolder">
+ <Component Id="NSISUninstall" Guid="3116B7EF-CBA3-4E0B-A2C5-0F0608038905">
+ <Condition>NOT Installed AND NSISINSTALL</Condition>
+ <RegistryValue Key="Software\Mumble\Uninstall" Root="HKCU" Value="1" Type="integer" KeyPath="yes" />
+ <RemoveFile Id="NSISUninstaller" Property="NSISINSTALL" Name="Uninstall.exe" On="install"/>
+ <RemoveFile Id="DownloadedPlugins" Directory="AppDataPluginFolder" Name="*.dll" On="install" />
+ <RemoveFolder Id="AppDataPluginFolder" On="uninstall" />
+ <RemoveFolder Id="AppDataProgramFolder" Directory="AppDataProgramFolder" On="uninstall" />
+ </Component>
+ </DirectoryRef>
+
+ <ComponentGroup Id="LibrariesCommon">
+ <ComponentGroupRef Id="Qt"/>
+
+ <ComponentRef Id="libeay32.dll" />
+ <ComponentRef Id="ssleay32.dll" />
+ <?ifdef ZlibDir ?>
+ <ComponentRef Id="zlib1.dll" />
+ <?endif ?>
+
+ <ComponentRef Id="qt.conf"/>
+
+ <ComponentRef Id="licence.txt" />
+ <ComponentRef Id="Readme.txt" />
+ <ComponentRef Id="Changes.txt" />
+ <ComponentRef Id="qt.txt" />
+
+ <ComponentRef Id="dbghelp.dll" />
+
+ <?ifdef ProtoBufDir ?>
+ <ComponentRef Id="libprotobuf.dll" />
+ <?endif ?>
+
+ <?ifdef IntelCppDir ?>
+ <ComponentRef Id="libmmd.dll"/>
+ <?endif ?>
+
+ <?ifdef RedistDirVC10 ?>
+ <ComponentRef Id="msvcp100.dll" />
+ <ComponentRef Id="msvcr100.dll" />
+ <?endif ?>
+ </ComponentGroup>
+
+ <ComponentGroup Id="ClientCommon">
+ <?ifdef SndFileDir ?>
+ <ComponentRef Id="libsndfile1.dll" />
+ <?endif ?>
+ <ComponentRef Id="speex.dll" />
+ <ComponentRef Id="speex.txt" />
+ </ComponentGroup>
+
+ <Feature Id="Mumble" Title="$(var.ProductName)" Description="!(loc.DESC_SectionMumble)" Display="expand" Level="1" ConfigurableDirectory="INSTALLDIR">
+ <Feature Id="MumbleClient" Title="!(loc.MUMBLE_SEC_MUMBLE)" Description="!(loc.DESC_SectionMumble)" Level="1">
+ <ComponentGroupRef Id="ClientCommon" />
+
+ <ComponentGroupRef Id="Plugins"/>
+ <ComponentRef Id="celt0.0.7.0.dll" />
+ <ComponentRef Id="celt0.0.8.0.dll" />
+ <?ifdef IntelCppDir ?>
+ <ComponentRef Id="celt0.0.7.0.sse.dll" />
+ <ComponentRef Id="celt0.0.8.0.sse.dll" />
+ <ComponentRef Id="celt0.0.7.0.sse2.dll" />
+ <ComponentRef Id="celt0.0.8.0.sse2.dll" />
+ <?endif ?>
+ <ComponentRef Id="mumble.exe" />
+ <ComponentRef Id="mumble_ol.dll" />
+
+ </Feature>
+
+ <?if $(var.CompatClient) = true ?>
+ <Feature Id="Mumble11x" Title="!(loc.MUMBLE_SEC_MUMBLE11X)" Description="!(loc.DESC_SectionMumble11X)" Level="1000">
+ <ComponentGroupRef Id="ClientCommon" />
+
+ <ComponentRef Id="mumble11x.exe" />
+ </Feature>
+ <?endif ?>
+ </Feature>
+
+ <Feature Id="Murmur" Title="!(loc.MUMBLE_SEC_MURMUR)" Description="!(loc.DESC_SectionMurmur)" Level="1000">
+ <?ifdef IceDir ?>
+ <ComponentRef Id="bzip2.dll" />
+ <ComponentRef Id="ice34.dll" />
+ <ComponentRef Id="iceutil34.dll" />
+ <?endif ?>
+ <?ifdef MySQLDir ?>
+ <ComponentRef Id="libmysql.dll" />
+ <?endif ?>
+ <?ifdef DBusDir ?>
+ <ComponentGroupRef Id="DBus" />
+ <?endif ?>
+
+ <ComponentRef Id="murmur.exe" />
+ <ComponentRef Id="murmur.ini" />
+ <ComponentRef Id="Murmur.ice" />
+ </Feature>
+
+ <Feature Id="Libraries" Title="Required Libraries" Display="hidden" AllowAdvertise="no" Absent="disallow" Level="1">
+ <ComponentGroupRef Id="LibrariesCommon" />
+ <ComponentRef Id="UninstallShortcut" />
+ <ComponentRef Id="NSISUninstall" />
+ </Feature>
+
+ <?ifdef RedistDirVC9 ?>
+ <Feature Id="VCRedist" Title="Visual C++ 9.0 Runtime" AllowAdvertise="no" Display="hidden" Level="1">
+ <MergeRef Id="VCRedist"/>
+ <MergeRef Id='VCRedistPolicy' />
+ </Feature>
+ <?endif ?>
+
+ <InstallExecuteSequence>
+ <AppSearch Sequence='1' />
+ <Custom Action="SetNSISPath" After="AppSearch">NSISINSTALL</Custom>
+ <Custom Action='NSISUninstall' After='RemoveExistingProducts'>NSISINSTALL AND NOT Installed</Custom>
+ </InstallExecuteSequence>
+ </Product>
+</Wix>
diff --git a/installer/Settings.wxi b/installer/Settings.wxi
new file mode 100644
index 000000000..87056e8ae
--- /dev/null
+++ b/installer/Settings.wxi
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Include>
+ <?define ProductName = "Mumble" ?>
+ <?define ProductManufacturer = "Mumble" ?>
+ <?define ProductVersion = "1.2.3" ?>
+
+ <?define CompatClient = false ?>
+
+ <?define SourceDir = "\dev\mumble" ?>
+ <?define QtDir = "\dev\qt" ?>
+ <?define OpenSslDir = "\dev\openssl" ?>
+ <?define DebugToolsDir = "\Program Files (x86)\Debugging Tools for Windows (x86)" ?>
+ <?define DebugToolsDir = "C:\Windows\System32" ?>
+ <?define RedistDirVC10 = "$(var.DevEnvDir)\..\..\VC\redist\x86\Microsoft.VC100.CRT" ?>
+ <?define ZlibDir = "\dev\zlib" ?>
+
+ <!--
+ <?define RedistDirVC9 = "$(var.DevEnvDir)\..\..\VC\redist\x86" ?>
+ <?define IntelCppDir = "\Program Files (x86)\Intel\Compiler\11.1\054\Bin\ia32" ?>
+ <?define SndFileDir = "\dev\libsndfile" ?>
+ <?define DBusDir = "\dev\dbus" ?>
+ <?define MySQLDir = "\dev\MySQL" ?>
+ <?define ProtoBufDir = "\dev\protobuf-2.3.0" ?>
+ -->
+
+ <?ifdef RedistDirVC10 ?>
+ <?define IceDir = "\dev\Ice\bin\vc100" ?>
+ <?else ?>
+ <?define IceDir = "\dev\Ice\bin" ?>
+ <?endif ?>
+</Include>
diff --git a/installer/gpl.rtf b/installer/gpl.rtf
new file mode 100644
index 000000000..831876ba8
--- /dev/null
+++ b/installer/gpl.rtf
@@ -0,0 +1,344 @@
+{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}}
+{\*\generator Msftedit 5.41.21.2509;}\viewkind4\uc1\pard\lang1031\f0\fs16\tab\tab GNU GENERAL PUBLIC LICENSE\par
+\tab\tab Version 2, June 1991\par
+\par
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.\par
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\par
+ Everyone is permitted to copy and distribute verbatim copies\par
+ of this license document, but changing it is not allowed.\par
+\par
+\tab\tab\tab Preamble\par
+\par
+ The licenses for most software are designed to take away your\par
+freedom to share and change it. By contrast, the GNU General Public\par
+License is intended to guarantee your freedom to share and change free\par
+software--to make sure the software is free for all its users. This\par
+General Public License applies to most of the Free Software\par
+Foundation's software and to any other program whose authors commit to\par
+using it. (Some other Free Software Foundation software is covered by\par
+the GNU Library General Public License instead.) You can apply it to\par
+your programs, too.\par
+\par
+ When we speak of free software, we are referring to freedom, not\par
+price. Our General Public Licenses are designed to make sure that you\par
+have the freedom to distribute copies of free software (and charge for\par
+this service if you wish), that you receive source code or can get it\par
+if you want it, that you can change the software or use pieces of it\par
+in new free programs; and that you know you can do these things.\par
+\par
+ To protect your rights, we need to make restrictions that forbid\par
+anyone to deny you these rights or to ask you to surrender the rights.\par
+These restrictions translate to certain responsibilities for you if you\par
+distribute copies of the software, or if you modify it.\par
+\par
+ For example, if you distribute copies of such a program, whether\par
+gratis or for a fee, you must give the recipients all the rights that\par
+you have. You must make sure that they, too, receive or can get the\par
+source code. And you must show them these terms so they know their\par
+rights.\par
+\par
+ We protect your rights with two steps: (1) copyright the software, and\par
+(2) offer you this license which gives you legal permission to copy,\par
+distribute and/or modify the software.\par
+\par
+ Also, for each author's protection and ours, we want to make certain\par
+that everyone understands that there is no warranty for this free\par
+software. If the software is modified by someone else and passed on, we\par
+want its recipients to know that what they have is not the original, so\par
+that any problems introduced by others will not reflect on the original\par
+authors' reputations.\par
+\par
+ Finally, any free program is threatened constantly by software\par
+patents. We wish to avoid the danger that redistributors of a free\par
+program will individually obtain patent licenses, in effect making the\par
+program proprietary. To prevent this, we have made it clear that any\par
+patent must be licensed for everyone's free use or not licensed at all.\par
+\par
+ The precise terms and conditions for copying, distribution and\par
+modification follow.\par
+\page\par
+\tab\tab GNU GENERAL PUBLIC LICENSE\par
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\par
+\par
+ 0. This License applies to any program or other work which contains\par
+a notice placed by the copyright holder saying it may be distributed\par
+under the terms of this General Public License. The "Program", below,\par
+refers to any such program or work, and a "work based on the Program"\par
+means either the Program or any derivative work under copyright law:\par
+that is to say, a work containing the Program or a portion of it,\par
+either verbatim or with modifications and/or translated into another\par
+language. (Hereinafter, translation is included without limitation in\par
+the term "modification".) Each licensee is addressed as "you".\par
+\par
+Activities other than copying, distribution and modification are not\par
+covered by this License; they are outside its scope. The act of\par
+running the Program is not restricted, and the output from the Program\par
+is covered only if its contents constitute a work based on the\par
+Program (independent of having been made by running the Program).\par
+Whether that is true depends on what the Program does.\par
+\par
+ 1. You may copy and distribute verbatim copies of the Program's\par
+source code as you receive it, in any medium, provided that you\par
+conspicuously and appropriately publish on each copy an appropriate\par
+copyright notice and disclaimer of warranty; keep intact all the\par
+notices that refer to this License and to the absence of any warranty;\par
+and give any other recipients of the Program a copy of this License\par
+along with the Program.\par
+\par
+You may charge a fee for the physical act of transferring a copy, and\par
+you may at your option offer warranty protection in exchange for a fee.\par
+\par
+ 2. You may modify your copy or copies of the Program or any portion\par
+of it, thus forming a work based on the Program, and copy and\par
+distribute such modifications or work under the terms of Section 1\par
+above, provided that you also meet all of these conditions:\par
+\par
+ a) You must cause the modified files to carry prominent notices\par
+ stating that you changed the files and the date of any change.\par
+\par
+ b) You must cause any work that you distribute or publish, that in\par
+ whole or in part contains or is derived from the Program or any\par
+ part thereof, to be licensed as a whole at no charge to all third\par
+ parties under the terms of this License.\par
+\par
+ c) If the modified program normally reads commands interactively\par
+ when run, you must cause it, when started running for such\par
+ interactive use in the most ordinary way, to print or display an\par
+ announcement including an appropriate copyright notice and a\par
+ notice that there is no warranty (or else, saying that you provide\par
+ a warranty) and that users may redistribute the program under\par
+ these conditions, and telling the user how to view a copy of this\par
+ License. (Exception: if the Program itself is interactive but\par
+ does not normally print such an announcement, your work based on\par
+ the Program is not required to print an announcement.)\par
+\page\par
+These requirements apply to the modified work as a whole. If\par
+identifiable sections of that work are not derived from the Program,\par
+and can be reasonably considered independent and separate works in\par
+themselves, then this License, and its terms, do not apply to those\par
+sections when you distribute them as separate works. But when you\par
+distribute the same sections as part of a whole which is a work based\par
+on the Program, the distribution of the whole must be on the terms of\par
+this License, whose permissions for other licensees extend to the\par
+entire whole, and thus to each and every part regardless of who wrote it.\par
+\par
+Thus, it is not the intent of this section to claim rights or contest\par
+your rights to work written entirely by you; rather, the intent is to\par
+exercise the right to control the distribution of derivative or\par
+collective works based on the Program.\par
+\par
+In addition, mere aggregation of another work not based on the Program\par
+with the Program (or with a work based on the Program) on a volume of\par
+a storage or distribution medium does not bring the other work under\par
+the scope of this License.\par
+\par
+ 3. You may copy and distribute the Program (or a work based on it,\par
+under Section 2) in object code or executable form under the terms of\par
+Sections 1 and 2 above provided that you also do one of the following:\par
+\par
+ a) Accompany it with the complete corresponding machine-readable\par
+ source code, which must be distributed under the terms of Sections\par
+ 1 and 2 above on a medium customarily used for software interchange; or,\par
+\par
+ b) Accompany it with a written offer, valid for at least three\par
+ years, to give any third party, for a charge no more than your\par
+ cost of physically performing source distribution, a complete\par
+ machine-readable copy of the corresponding source code, to be\par
+ distributed under the terms of Sections 1 and 2 above on a medium\par
+ customarily used for software interchange; or,\par
+\par
+ c) Accompany it with the information you received as to the offer\par
+ to distribute corresponding source code. (This alternative is\par
+ allowed only for noncommercial distribution and only if you\par
+ received the program in object code or executable form with such\par
+ an offer, in accord with Subsection b above.)\par
+\par
+The source code for a work means the preferred form of the work for\par
+making modifications to it. For an executable work, complete source\par
+code means all the source code for all modules it contains, plus any\par
+associated interface definition files, plus the scripts used to\par
+control compilation and installation of the executable. However, as a\par
+special exception, the source code distributed need not include\par
+anything that is normally distributed (in either source or binary\par
+form) with the major components (compiler, kernel, and so on) of the\par
+operating system on which the executable runs, unless that component\par
+itself accompanies the executable.\par
+\par
+If distribution of executable or object code is made by offering\par
+access to copy from a designated place, then offering equivalent\par
+access to copy the source code from the same place counts as\par
+distribution of the source code, even though third parties are not\par
+compelled to copy the source along with the object code.\par
+\page\par
+ 4. You may not copy, modify, sublicense, or distribute the Program\par
+except as expressly provided under this License. Any attempt\par
+otherwise to copy, modify, sublicense or distribute the Program is\par
+void, and will automatically terminate your rights under this License.\par
+However, parties who have received copies, or rights, from you under\par
+this License will not have their licenses terminated so long as such\par
+parties remain in full compliance.\par
+\par
+ 5. You are not required to accept this License, since you have not\par
+signed it. However, nothing else grants you permission to modify or\par
+distribute the Program or its derivative works. These actions are\par
+prohibited by law if you do not accept this License. Therefore, by\par
+modifying or distributing the Program (or any work based on the\par
+Program), you indicate your acceptance of this License to do so, and\par
+all its terms and conditions for copying, distributing or modifying\par
+the Program or works based on it.\par
+\par
+ 6. Each time you redistribute the Program (or any work based on the\par
+Program), the recipient automatically receives a license from the\par
+original licensor to copy, distribute or modify the Program subject to\par
+these terms and conditions. You may not impose any further\par
+restrictions on the recipients' exercise of the rights granted herein.\par
+You are not responsible for enforcing compliance by third parties to\par
+this License.\par
+\par
+ 7. If, as a consequence of a court judgment or allegation of patent\par
+infringement or for any other reason (not limited to patent issues),\par
+conditions are imposed on you (whether by court order, agreement or\par
+otherwise) that contradict the conditions of this License, they do not\par
+excuse you from the conditions of this License. If you cannot\par
+distribute so as to satisfy simultaneously your obligations under this\par
+License and any other pertinent obligations, then as a consequence you\par
+may not distribute the Program at all. For example, if a patent\par
+license would not permit royalty-free redistribution of the Program by\par
+all those who receive copies directly or indirectly through you, then\par
+the only way you could satisfy both it and this License would be to\par
+refrain entirely from distribution of the Program.\par
+\par
+If any portion of this section is held invalid or unenforceable under\par
+any particular circumstance, the balance of the section is intended to\par
+apply and the section as a whole is intended to apply in other\par
+circumstances.\par
+\par
+It is not the purpose of this section to induce you to infringe any\par
+patents or other property right claims or to contest validity of any\par
+such claims; this section has the sole purpose of protecting the\par
+integrity of the free software distribution system, which is\par
+implemented by public license practices. Many people have made\par
+generous contributions to the wide range of software distributed\par
+through that system in reliance on consistent application of that\par
+system; it is up to the author/donor to decide if he or she is willing\par
+to distribute software through any other system and a licensee cannot\par
+impose that choice.\par
+\par
+This section is intended to make thoroughly clear what is believed to\par
+be a consequence of the rest of this License.\par
+\page\par
+ 8. If the distribution and/or use of the Program is restricted in\par
+certain countries either by patents or by copyrighted interfaces, the\par
+original copyright holder who places the Program under this License\par
+may add an explicit geographical distribution limitation excluding\par
+those countries, so that distribution is permitted only in or among\par
+countries not thus excluded. In such case, this License incorporates\par
+the limitation as if written in the body of this License.\par
+\par
+ 9. The Free Software Foundation may publish revised and/or new versions\par
+of the General Public License from time to time. Such new versions will\par
+be similar in spirit to the present version, but may differ in detail to\par
+address new problems or concerns.\par
+\par
+Each version is given a distinguishing version number. If the Program\par
+specifies a version number of this License which applies to it and "any\par
+later version", you have the option of following the terms and conditions\par
+either of that version or of any later version published by the Free\par
+Software Foundation. If the Program does not specify a version number of\par
+this License, you may choose any version ever published by the Free Software\par
+Foundation.\par
+\par
+ 10. If you wish to incorporate parts of the Program into other free\par
+programs whose distribution conditions are different, write to the author\par
+to ask for permission. For software which is copyrighted by the Free\par
+Software Foundation, write to the Free Software Foundation; we sometimes\par
+make exceptions for this. Our decision will be guided by the two goals\par
+of preserving the free status of all derivatives of our free software and\par
+of promoting the sharing and reuse of software generally.\par
+\par
+\tab\tab\tab NO WARRANTY\par
+\par
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\par
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN\par
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\par
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\par
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\par
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS\par
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE\par
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\par
+REPAIR OR CORRECTION.\par
+\par
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\par
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\par
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\par
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\par
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\par
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\par
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\par
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\par
+POSSIBILITY OF SUCH DAMAGES.\par
+\par
+\tab\tab END OF TERMS AND CONDITIONS\par
+\page\par
+\tab How to Apply These Terms to Your New Programs\par
+\par
+ If you develop a new program, and you want it to be of the greatest\par
+possible use to the public, the best way to achieve this is to make it\par
+free software which everyone can redistribute and change under these terms.\par
+\par
+ To do so, attach the following notices to the program. It is safest\par
+to attach them to the start of each source file to most effectively\par
+convey the exclusion of warranty; and each file should have at least\par
+the "copyright" line and a pointer to where the full notice is found.\par
+\par
+ <one line to give the program's name and a brief idea of what it does.>\par
+ Copyright (C) <year> <name of author>\par
+\par
+ This program is free software; you can redistribute it and/or modify\par
+ it under the terms of the GNU General Public License as published by\par
+ the Free Software Foundation; either version 2 of the License, or\par
+ (at your option) any later version.\par
+\par
+ This program is distributed in the hope that it will be useful,\par
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\par
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\par
+ GNU General Public License for more details.\par
+\par
+ You should have received a copy of the GNU General Public License\par
+ along with this program; if not, write to the Free Software\par
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\par
+\par
+\par
+Also add information on how to contact you by electronic and paper mail.\par
+\par
+If the program is interactive, make it output a short notice like this\par
+when it starts in an interactive mode:\par
+\par
+ Gnomovision version 69, Copyright (C) year name of author\par
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\par
+ This is free software, and you are welcome to redistribute it\par
+ under certain conditions; type `show c' for details.\par
+\par
+The hypothetical commands `show w' and `show c' should show the appropriate\par
+parts of the General Public License. Of course, the commands you use may\par
+be called something other than `show w' and `show c'; they could even be\par
+mouse-clicks or menu items--whatever suits your program.\par
+\par
+You should also get your employer (if you work as a programmer) or your\par
+school, if any, to sign a "copyright disclaimer" for the program, if\par
+necessary. Here is a sample; alter the names:\par
+\par
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program\par
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.\par
+\par
+ <signature of Ty Coon>, 1 April 1989\par
+ Ty Coon, President of Vice\par
+\par
+This General Public License does not permit incorporating your program into\par
+proprietary programs. If your program is a subroutine library, you may\par
+consider it more useful to permit linking proprietary applications with the\par
+library. If this is what you want to do, use the GNU Library General\par
+Public License instead of this License.\par
+\par
+}
+