Permalink
Browse files

Unified installer appears to be working well.

  • Loading branch information...
1 parent ad6b2bb commit 34e4e575c2724121512b4c12e72cd3be1b5f0122 Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com) committed Jul 15, 2012
View
BIN BEurtle/Resources/bugseverywheresplash.bmp
Binary file not shown.
View
76 Installer.old/ExtractPath/ExtractPath.vcxproj
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{ACA22F22-DBB7-4270-BD20-111ECB857D17}</ProjectGuid>
- <RootNamespace>ExtractPath</RootNamespace>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetExt>.dll</TargetExt>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetExt>.dll</TargetExt>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
- <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);msi.lib</AdditionalDependencies>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="main.c" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
View
34 Installer.old/ExtractPath/main.c
@@ -1,34 +0,0 @@
-#include <Windows.h>
-#include <Msi.h>
-#include <MsiQuery.h>
-#include <tchar.h>
-
-#pragma comment(linker, "/EXPORT:ExtractPath=_ExtractPath@4")
-
-static TCHAR buffer[4096]=_T("C:\\");
-
-// "F:\Python27\python.exe" "%1" %*
-
-__declspec(dllexport) UINT __stdcall ExtractPath (MSIHANDLE hInstall) {
- DWORD size=sizeof(buffer);
- HKEY key;
-
- // Turns out RegGetValue() is Vista only
- //if(ERROR_SUCCESS==RegGetValue(HKEY_CLASSES_ROOT, _T("Python.File\\shell\\open\\command"), NULL, RRF_RT_REG_SZ, NULL, buffer, &size))
- if(ERROR_SUCCESS==RegOpenKey(HKEY_CLASSES_ROOT, _T("Python.File\\shell\\open\\command"), &key))
- {
- if(ERROR_SUCCESS==RegQueryValueEx(key, _T(""), NULL, NULL, (LPBYTE) buffer, &size))
- {
- TCHAR *o=buffer, *i=buffer+1;
- while(*i!='"')
- *o++=*i++;
- while(*o!='\\')
- o--;
- *o=0;
- }
- }
-
- //MessageBox(NULL, buffer, _T("Message"), MB_OK);
- MsiSetProperty(hInstall, _T("PYTHONLOCATION"), buffer);
- return ERROR_SUCCESS;
-}
View
4 Installer.old/HowToBuildMe.txt
@@ -1,4 +0,0 @@
-To build this, you need WiX from http://wix.sourceforge.net/.
-You'll also need to fix up the hardcoded paths for the custom
-build steps in the installer project file.
-
View
76 Installer.old/InstallBE/InstallBE.vcxproj
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{ACA22F22-DBB7-4270-BD20-111ECB857D17}</ProjectGuid>
- <RootNamespace>ExtractPath</RootNamespace>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetExt>.dll</TargetExt>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetExt>.dll</TargetExt>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
- <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);msi.lib</AdditionalDependencies>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="main.c" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
View
39 Installer.old/InstallBE/main.c
@@ -1,39 +0,0 @@
-#include <Windows.h>
-#include <Msi.h>
-#include <MsiQuery.h>
-#include <tchar.h>
-
-#pragma comment(linker, "/EXPORT:InstallBE=_InstallBE@4")
-
-static TCHAR pythonlocation[4096]=_T(""), installdir[4096]=_T(""), workingdir[4096]=_T("");
-
-__declspec(dllexport) UINT __stdcall InstallBE (MSIHANDLE hInstall) {
- DWORD len=sizeof(pythonlocation)/sizeof(TCHAR);
- int ret;
- HANDLE fh;
- TCHAR *semicolon;
- MsiGetProperty(hInstall, _T("CustomActionData"), pythonlocation, &len);
- semicolon=_tcschr(pythonlocation, ';');
- if(!semicolon) return ERROR_INVALID_PARAMETER;
- _tcscpy_s(installdir, sizeof(installdir)/sizeof(TCHAR), semicolon+1);
- *semicolon=0;
-
- if(0) {
- fh=CreateFile(_T("f:\\installbe.txt"), GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
- WriteFile(fh, pythonlocation, sizeof(TCHAR)*_tcslen(pythonlocation), &len, NULL);
- WriteFile(fh, _T("\r\n"), sizeof(TCHAR)*2, &len, NULL);
- WriteFile(fh, installdir, sizeof(TCHAR)*_tcslen(installdir), &len, NULL);
- WriteFile(fh, _T("\r\n"), sizeof(TCHAR)*2, &len, NULL);
- CloseHandle(fh);
- }
-
- _tcscat_s(pythonlocation, sizeof(pythonlocation)/sizeof(TCHAR)-_tcslen(pythonlocation), _T("\\python.exe"));
- _tcscpy_s(workingdir, sizeof(workingdir)/sizeof(TCHAR), installdir);
- _tcscat_s(workingdir, sizeof(workingdir)/sizeof(TCHAR)-_tcslen(workingdir), _T("\\BEforinstaller"));
-
- ret=(int) ShellExecute(NULL, NULL, pythonlocation, _T("setup.py install"), workingdir, SW_SHOWMINNOACTIVE);
-
- MsiSetProperty(hInstall, _T("InstallBESuccess"), (ret>32) ? _T("Success") : _T("Failure"));
-
- return (ret>32) ? ERROR_SUCCESS : (UINT) ret;
-}
View
76 Installer.old/Installer.wixproj
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <ProductVersion>3.5</ProductVersion>
- <ProjectGuid>{4657d134-f9b9-4a1c-a182-4a91a260b1d0}</ProjectGuid>
- <SchemaVersion>2.0</SchemaVersion>
- <OutputType>Package</OutputType>
- <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
- <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
- <OutputName>BEurtle Plugin for TortoiseXXX v1.02 %28x86%29</OutputName>
- <OutputPath>bin\$(Platform)_$(Configuration)\</OutputPath>
- <IntermediateOutputPath>obj\$(Platform)_$(Configuration)\</IntermediateOutputPath>
- <DefineConstants>Debug;BE_srcdir=..\..\..\BEforinstaller;BEurtle_bindir=..\..\..\BEurtle\bin\Release</DefineConstants>
- <WixVariables>
- </WixVariables>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
- <OutputName>BEurtle Plugin for TortoiseXXX v1.02 %28x86%29</OutputName>
- <OutputPath>bin\$(Platform)_$(Configuration)\</OutputPath>
- <IntermediateOutputPath>obj\$(Platform)_$(Configuration)\</IntermediateOutputPath>
- <DefineConstants>BE_srcdir=..\..\..\BEforinstaller;BEurtle_bindir=..\..\..\BEurtle\bin\Release</DefineConstants>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
- <OutputName>BEurtle Plugin for TortoiseXXX v1.02 %28x64%29</OutputName>
- <DefineConstants>Debug;BE_srcdir=..\..\..\BEforinstaller;BEurtle_bindir=..\..\..\BEurtle\bin\Release</DefineConstants>
- <WixVariables />
- <OutputPath>bin\$(Platform)_$(Configuration)\</OutputPath>
- <IntermediateOutputPath>obj\$(Platform)_$(Configuration)\</IntermediateOutputPath>
- <DefineConstants>Debug;BE_srcdir=..\..\..\BEforinstaller;BEurtle_bindir=..\..\..\BEurtle\bin\Release</DefineConstants>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
- <OutputName>BEurtle Plugin for TortoiseXXX v1.02 %28x64%29</OutputName>
- <OutputPath>bin\$(Platform)_$(Configuration)\</OutputPath>
- <IntermediateOutputPath>obj\$(Platform)_$(Configuration)\</IntermediateOutputPath>
- <DefineConstants>BE_srcdir=..\..\..\BEforinstaller;BEurtle_bindir=..\..\..\BEurtle\bin\Release</DefineConstants>
- </PropertyGroup>
- <ItemGroup>
- <Compile Include="BE.wxs" />
- <Compile Include="BEurtle.dll.wxs" />
- <Compile Include="Product.wxs" />
- <Compile Include="PythonLocation.wxs" />
- </ItemGroup>
- <ItemGroup>
- <WixExtension Include="WixUtilExtension">
- <HintPath>$(WixExtDir)\WixUtilExtension.dll</HintPath>
- <Name>WixUtilExtension</Name>
- </WixExtension>
- <WixExtension Include="WixUIExtension">
- <HintPath>$(WixExtDir)\WixUIExtension.dll</HintPath>
- <Name>WixUIExtension</Name>
- </WixExtension>
- <WixExtension Include="WixNetFxExtension">
- <HintPath>$(WixExtDir)\WixNetFxExtension.dll</HintPath>
- <Name>WixNetFxExtension</Name>
- </WixExtension>
- </ItemGroup>
- <ItemGroup>
- <Content Include="ProductImpl.wxi" />
- </ItemGroup>
- <Import Project="$(WixTargetsPath)" />
- <PropertyGroup>
- <PreBuildEvent>xcopy /E /Q /Y /D /I ..\..\..\BE ..\..\..\BEforinstaller /EXCLUDE:..\..\exclude.txt
-"C:\Program Files (x86)\WiX Toolset v3.6\bin\heat" dir ..\..\..\BEforinstaller\dist -ag -cg BE -dr INSTALLDIR\dist -var var.BE_srcdir -out ..\..\BE.wxs
-"C:\Program Files (x86)\WiX Toolset v3.6\bin\heat" file ..\..\..\BEurtle\bin\Release\BEurtle.dll -ag -srd -cg BEurtle.dll -dr INSTALLDIR -var var.BEurtle_bindir -out ..\..\BEurtle.dll.wxs</PreBuildEvent>
- </PropertyGroup>
- <!--
- 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>
View
126 Installer.old/Product.wxs
@@ -1,126 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?if $(var.Platform) = x64 ?>
-<?define Win64="yes" ?>
-<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
-<?else ?>
-<?define Win64="no" ?>
-<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
-<?endif ?>
-
-<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
- <Product Id="a62692c3-8596-4556-b6b7-6393f3420daa" Name="BEurtle Plugin for TortoiseXXX" Language="1033" Version="1.0.2.0" Manufacturer="ned Productions Limited" UpgradeCode="9a4a032d-90c1-46a2-8f36-38fb1655cca9">
- <Package InstallerVersion="200" Compressed="yes" Platform="$(var.Platform)" Description="BEurtle Plugin for TortoiseXXX" />
-
- <PropertyRef Id="NETFRAMEWORK20"/>
- <Condition Message="This application requires .NET Framework 2.0. Please install the .NET Framework then run this installer again.">
- <![CDATA[Installed OR NETFRAMEWORK20]]>
- </Condition>
- <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />
-
- <!-- Set up the loading in of where python lives -->
- <Property Id="PYTHONLOCATION" Secure="yes" Value="C:\"/>
- <Property Id="INSTALLDIR" Secure="yes"/>
- <Binary Id="ExtractPythonPathDLL" SourceFile="..\..\ExtractPath\Release\ExtractPath.dll"/>
- <CustomAction Id="ExtractPythonPath" BinaryKey="ExtractPythonPathDLL" DllEntry="ExtractPath" Execute="immediate"/>
- <InstallUISequence>
- <Custom Action="ExtractPythonPath" After="CostFinalize"/>
- </InstallUISequence>
- <!-- Fire the install of BE. Neither stupid Windows Installer nor Wix can start a program in a working directory, so yet another custom action ... :( -->
- <Binary Id="InstallBEDLL" SourceFile="..\..\InstallBE\Release\InstallBE.dll"/>
- <CustomAction Id="SetInstallBEData" Return="check" Property="InstallBE" Value="[PYTHONLOCATION];[INSTALLDIR]"/>
- <CustomAction Id="InstallBE" BinaryKey="InstallBEDLL" DllEntry="InstallBE" Execute="deferred" Impersonate="no"/>
- <InstallExecuteSequence>
- <Custom Action="SetInstallBEData" Before="InstallBE"/>
- <Custom Action="InstallBE" After="PublishProduct">&amp;FeaturePluginBE=3</Custom>
- </InstallExecuteSequence>
-
- <Directory Id="TARGETDIR" Name="SourceDir">
- <Directory Id="$(var.PlatformProgramFilesFolder)">
- <Directory Id="CompanyFolder" Name="ned Productions Limited">
- <Directory Id="INSTALLDIR" Name="BEurtle">
- <Component Id="Plugin" Guid="d57ebcd3-e50f-4c2d-86b9-4256eec8f925">
- <!--<File Id="BEurtle.dll" Source="..\BEurtle\bin\Release\BEurtle.dll" KeyPath="yes" Checksum="yes" />-->
- <File Id="BEurtle.pdb" Source="..\BEurtle\bin\Release\BEurtle.pdb" Checksum="yes" />
- <RegistryValue Root="HKCR" Key="CLSID\{233C8C6B-00AC-4E21-89FD-A66A9C10CEDB}\Implemented Categories\{3494FA92-B139-4730-9591-01135D5E7831}" Value="" Type="string" Action="write" />
- </Component>
- <Component Id="Readme" Guid="63a13d89-29f9-4aad-af8d-f4f80d63c0aa">
- <File Id="Readme.txt" Source="..\Readme.txt" KeyPath="yes" Checksum="yes" />
- </Component>
- </Directory>
- </Directory>
- </Directory>
- </Directory>
-
- <Feature Id="FeaturePlugin" Title="BEurtle Plugin for TortoiseXXX" Description="A TortoiseXXX plugin for the Bugs Everywhere distributed issue tracker"
- Display="expand" Level="1" ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'>
- <Feature Id="FeaturePluginPlugin" Title="BEurtle Plugin" Description="The DLL used to interface with TortoiseXXX. Mandatory." Level="1" AllowAdvertise="no" Absent="disallow">
- <ComponentGroupRef Id="BEurtle.dll"/>
- <ComponentRef Id="Plugin" />
- <ComponentRef Id="Readme" />
- <ComponentGroupRef Id="Product.Generated" />
- </Feature>
- <Feature Id="FeaturePluginBE" Title="Bugs Everywhere" Description="A customised edition of the Bugs Everywhere distributed issue tracker. You probably want this." Level="1" AllowAdvertise="no">
- <ComponentGroupRef Id="BE" />
- <ComponentGroupRef Id="Product.Generated" />
- </Feature>
- </Feature>
-
- <UIRef Id="WixUI_ErrorProgressText" />
- <Property Id="ApplicationFolderName" Value="BEurtle" />
- <Property Id="WixAppFolder" Value="WixPerMachineFolder" />
- <UI>
- <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
- <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
- <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
-
- <Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
- <Property Id="WixUI_Mode" Value="Mondo" />
-
- <DialogRef Id="ErrorDlg" />
- <DialogRef Id="FatalError" />
- <DialogRef Id="FilesInUse" />
- <DialogRef Id="MsiRMFilesInUse" />
- <DialogRef Id="PrepareDlg" />
- <DialogRef Id="ProgressDlg" />
- <DialogRef Id="ResumeDlg" />
- <DialogRef Id="UserExit" />
-
- <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
-
- <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="SetupTypeDlg">NOT Installed AND NOT PATCH</Publish>
- <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">Installed AND PATCH</Publish>
-
- <!--<Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
- <Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="SetupTypeDlg" Order="2">LicenseAccepted = "1"</Publish>-->
-
- <Publish Dialog="SetupTypeDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
- <Publish Dialog="SetupTypeDlg" Control="TypicalButton" Event="NewDialog" Value="PythonLocationDlg">1</Publish>
- <Publish Dialog="SetupTypeDlg" Control="CustomButton" Event="NewDialog" Value="CustomizeDlg">1</Publish>
- <Publish Dialog="SetupTypeDlg" Control="CompleteButton" Event="NewDialog" Value="PythonLocationDlg">1</Publish>
-
- <Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="1">WixUI_InstallMode = "Change"</Publish>
- <Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="SetupTypeDlg" Order="2">WixUI_InstallMode = "InstallCustom"</Publish>
- <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="PythonLocationDlg">&amp;FeaturePluginBE=3</Publish>
- <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">NOT &amp;FeaturePluginBE=3</Publish>
-
- <Publish Dialog="PythonLocationDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="1">WixUI_InstallMode = "InstallCustom"</Publish>
- <Publish Dialog="PythonLocationDlg" Control="Back" Event="NewDialog" Value="SetupTypeDlg" Order="2">WixUI_InstallMode = "InstallTypical" OR WixUI_InstallMode = "InstallComplete"</Publish>
- <Publish Dialog="PythonLocationDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="3">WixUI_InstallMode = "Change"</Publish>
- <Publish Dialog="PythonLocationDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="4">WixUI_InstallMode = "Repair" OR WixUI_InstallMode = "Remove"</Publish>
- <Publish Dialog="PythonLocationDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2">WixUI_InstallMode = "Update"</Publish>
- <Publish Dialog="PythonLocationDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
-
- <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="PythonLocationDlg">&amp;FeaturePluginBE=3</Publish>
- <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg">NOT &amp;FeaturePluginBE=3</Publish>
-
- <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
-
- <Publish Dialog="MaintenanceTypeDlg" Control="ChangeButton" Event="NewDialog" Value="CustomizeDlg">1</Publish>
- <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
- <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
- <Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
- </UI>
-
- <UIRef Id="WixUI_Common" />
- </Product>
-</Wix>
View
61 Installer.old/PythonLocation.wxs
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
- <Fragment>
- <UI>
- <Dialog Id="BrowsePythonDlg" Width="370" Height="270" Title="!(loc.BrowseDlg_Title)">
- <Control Id="PathEdit" Type="PathEdit" X="25" Y="202" Width="320" Height="18" Property="PYTHONLOCATION" />
- <Control Id="OK" Type="PushButton" X="240" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUIOK)">
- <!--<Publish Event="SetTargetPath" Value="PYTHONLOCATION"><![CDATA[1]]></Publish>-->
- <Publish Event="EndDialog" Value="Return">1</Publish>
- </Control>
- <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
- <Publish Event="Reset" Value="0">1</Publish>
- <Publish Event="EndDialog" Value="Return">1</Publish>
- </Control>
- <Control Id="ComboLabel" Type="Text" X="25" Y="58" Width="44" Height="10" TabSkip="no" Text="!(loc.BrowseDlgComboLabel)" />
- <Control Id="DirectoryCombo" Type="DirectoryCombo" X="70" Y="55" Width="220" Height="80" Property="PYTHONLOCATION" Fixed="yes" Remote="yes">
- <Subscribe Event="IgnoreChange" Attribute="IgnoreChange" />
- </Control>
- <Control Id="WixUI_Bmp_Up" Type="PushButton" X="298" Y="55" Width="19" Height="19" ToolTip="!(loc.BrowseDlgWixUI_Bmp_UpTooltip)" Icon="yes" FixedSize="yes" IconSize="16" Text="!(loc.BrowseDlgWixUI_Bmp_Up)">
- <Publish Event="DirectoryListUp" Value="0">1</Publish>
- </Control>
- <Control Id="NewFolder" Type="PushButton" X="325" Y="55" Width="19" Height="19" ToolTip="!(loc.BrowseDlgNewFolderTooltip)" Icon="yes" FixedSize="yes" IconSize="16" Text="!(loc.BrowseDlgNewFolder)">
- <Publish Event="DirectoryListNew" Value="0">1</Publish>
- </Control>
- <Control Id="DirectoryList" Type="DirectoryList" X="25" Y="83" Width="320" Height="98" Property="PYTHONLOCATION" Sunken="yes" TabSkip="no" />
- <Control Id="PathLabel" Type="Text" X="25" Y="190" Width="320" Height="10" TabSkip="no" Text="!(loc.BrowseDlgPathLabel)" />
- <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.BrowseDlgBannerBitmap)" />
- <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
- <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
- <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.BrowseDlgDescription)" />
- <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.BrowseDlgTitle)" />
- </Dialog>
-
- <Dialog Id="PythonLocationDlg" Width="370" Height="270" Title="[ProductName] Setup" TrackDiskSpace="yes">
- <Control Id="Next" Type="PushButton" X="248" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)">
- </Control>
- <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
- <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
- </Control>
- <Control Id="Back" Type="PushButton" X="192" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" />
- <Control Id="Browse" Type="PushButton" X="294" Y="210" Width="66" Height="17" Text="!(loc.CustomizeDlgBrowse)">
- <Publish Event="SpawnDialog" Value="BrowsePythonDlg">1</Publish>
- <Condition Action="hide">Installed</Condition>
- <Condition Action="disable">Installed</Condition>
- </Control>
- <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.CustomizeDlgBannerBitmap)" />
- <Control Id="Text" Type="Text" X="25" Y="55" Width="320" Height="142" Text="Choose the Python into which you wish to install Bugs Everywhere. Note that if you choose a Python not on your PATH then you will need to configure BEurtle to use a specific Python and BE command in its options." />
- <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
- <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
- <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="Please choose Python into which to install" />
- <Control Id="Title" Type="Text" X="15" Y="6" Width="210" Height="15" Transparent="yes" NoPrefix="yes" Text="Bugs Everywhere Installation" />
- <Control Id="Location" Type="Text" X="90" Y="210" Width="200" Height="20" Text="[PYTHONLOCATION]" Property="PYTHONLOCATION">
- <Condition Action="hide">Installed</Condition>
- </Control>
- <Control Id="LocationLabel" Type="Text" X="25" Y="210" Width="65" Height="10" Text="!(loc.CustomizeDlgLocationLabel)">
- <Condition Action="hide">Installed</Condition>
- </Control>
- </Dialog>
- </UI>
- </Fragment>
-</Wix>
View
2 Installer.old/exclude.txt
@@ -1,2 +0,0 @@
-.git
-.be
View
39 Installer/Bundle.wxs
@@ -8,7 +8,7 @@
HelpUrl="http://www.nedprod.com/programs/Win32/BEurtle/"
Copyright="Copyright © 2011-2012 Niall Douglas"
AboutUrl="http://www.nedprod.com/programs/Win32/BEurtle/"
- SplashScreenSourceFile="..\BEurtle\Resources\bugseverywhere.jpg"
+ SplashScreenSourceFile="..\BEurtle\Resources\bugseverywheresplash.bmp"
Condition="((VersionNT >= v5.1) AND (ServicePackLevel >= 3)) OR ((VersionNT >= v5.2) AND (ServicePackLevel >= 2)) OR (VersionNT >= v6.0)"
>
<!--IconSourceFile="..\BEurtle\Resources\MainIcon.ico">-->
@@ -44,18 +44,51 @@
<util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v2.0.50727" Value="Version" Variable="Netfx20Version" />
<PackageGroup Id="Netfx20">
- <ExePackage Id="Netfx20"
+ <!-- This embeds the .NET 3.0 web installer for virgin WinXP installs. Costs ~3Mb extra to installer size + 50Mb to download. -->
+ <!--<ExePackage Id="Netfx20"
Cache="no"
Compressed="yes"
PerMachine="yes"
Permanent="yes"
Vital="yes"
Name="Redist\dotnetfx20.exe"
SourceFile="Redist\dotnetfx3setup.exe"
+ InstallCommand="/norestart /lang:ENU"
+ RepairCommand="/norestart /lang:ENU"
+ UninstallCommand="/norestart /lang:ENU"
+ InstallCondition="NOT Netfx20Version OR (Netfx20Version &lt; v2.0.50727.5420)"
+ DetectCondition="Netfx20Version AND (Netfx20Version &gt;= v2.0.50727.5420)">
+ <ExitCode Value ="3010" Behavior="forceReboot" />
+ </ExePackage>-->
+ <!-- This causes the download of the .NET 2.0 SP2 x86 installer from Microsoft. -->
+ <ExePackage Id="Netfx20_32"
+ Cache="no"
+ Compressed="no"
+ PerMachine="yes"
+ Permanent="yes"
+ Vital="yes"
+ SourceFile="Redist\NetFx20SP2_x86.exe"
+ DownloadUrl="http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x86.exe"
InstallCommand="/q /norestart /lang:ENU"
RepairCommand="/q /norestart /lang:ENU"
UninstallCommand="/q /norestart /lang:ENU"
- InstallCondition="NOT Netfx20Version OR (Netfx20Version &lt; v2.0.50727.5420)"
+ InstallCondition="NOT VersionNT64 AND (NOT Netfx20Version OR (Netfx20Version &lt; v2.0.50727.5420))"
+ DetectCondition="Netfx20Version AND (Netfx20Version &gt;= v2.0.50727.5420)">
+ <ExitCode Value ="3010" Behavior="forceReboot" />
+ </ExePackage>
+ <!-- This causes the download of the .NET 2.0 SP2 x64 installer from Microsoft. -->
+ <ExePackage Id="Netfx20_64"
+ Cache="no"
+ Compressed="no"
+ PerMachine="yes"
+ Permanent="yes"
+ Vital="yes"
+ SourceFile="Redist\NetFx20SP2_x64.exe"
+ DownloadUrl="http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x64.exe"
+ InstallCommand="/q /norestart /lang:ENU"
+ RepairCommand="/q /norestart /lang:ENU"
+ UninstallCommand="/q /norestart /lang:ENU"
+ InstallCondition="VersionNT64 AND (NOT Netfx20Version OR (Netfx20Version &lt; v2.0.50727.5420))"
DetectCondition="Netfx20Version AND (Netfx20Version &gt;= v2.0.50727.5420)">
<ExitCode Value ="3010" Behavior="forceReboot" />
</ExePackage>
View
5 Installer/Redist/Readme.txt
@@ -0,0 +1,5 @@
+This directory needs to be filled as follows for the installer to build:
+
+http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x86.exe
+http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x64.exe
+
View
3 Installer/test/__main__.py
@@ -120,6 +120,9 @@ def test_push_winxp(self):
progress=guest.copyToGuest(os.path.abspath(INSTALLER), "C:\\wb_test\\installer.exe", TEST_ACCOUNT, TEST_ACCOUNT_PASSWORD, 0)
progressBar(progress)
if progress.getResultCode()!=0: raise Exception, "Timed out copying in me"
+ progress=guest.copyToGuest(os.path.abspath("Redist/NetFx20SP2_x86.exe"), "C:\\wb_test\\NetFx20SP2_x86.exe", TEST_ACCOUNT, TEST_ACCOUNT_PASSWORD, 0)
+ progressBar(progress)
+ if progress.getResultCode()!=0: raise Exception, "Timed out copying in me"
# Execute configurator
progress, pid=guest.executeProcess("C:\\wb_test\\installer.exe", 0, ["-dC:\\wb_test"], [], TEST_ACCOUNT_ADMIN, TEST_ACCOUNT_ADMIN_PASSWORD, 0)

0 comments on commit 34e4e57

Please sign in to comment.