Merge pull request #11 from asankah/master

Updates from Asanka to complete the Heimdal on Windows install package.  Plugins in Software/Heimdal; customizable 32-bit tools directory in multi-platform installer; Feature Tree view; and updated version number.
This commit is contained in:
Jeffrey Altman
2011-06-20 13:26:52 -07:00
5 changed files with 90 additions and 49 deletions

View File

@@ -35,7 +35,8 @@
#error config_reg.c is only for Windows #error config_reg.c is only for Windows
#endif #endif
#define REGPATH "SOFTWARE\\Kerberos" #define REGPATH_KERBEROS "SOFTWARE\\Kerberos"
#define REGPATH_HEIMDAL "SOFTWARE\\Heimdal"
/** /**
* Parse a registry value as a string * Parse a registry value as a string
@@ -420,6 +421,26 @@ parse_reg_root(krb5_context context,
return parse_reg_subkeys(context, key, parent); return parse_reg_subkeys(context, key, parent);
} }
static krb5_error_code
load_config_from_regpath(krb5_context context,
HKEY hk_root,
const char* key_path,
krb5_config_section ** res)
{
HKEY key = NULL;
LONG rcode;
krb5_error_code code = 0;
rcode = RegOpenKeyEx(hk_root, key_path, 0, KEY_READ, &key);
if (rcode == ERROR_SUCCESS) {
code = parse_reg_root(context, key, res);
RegCloseKey(key);
key = NULL;
}
return code;
}
/** /**
* Load configuration from registry * Load configuration from registry
* *
@@ -436,29 +457,26 @@ krb5_error_code
_krb5_load_config_from_registry(krb5_context context, _krb5_load_config_from_registry(krb5_context context,
krb5_config_section ** res) krb5_config_section ** res)
{ {
HKEY key = NULL; krb5_error_code code;
LONG rcode;
krb5_error_code code = 0;
rcode = RegOpenKeyEx(HKEY_LOCAL_MACHINE, REGPATH, 0, KEY_READ, &key); code = load_config_from_regpath(context, HKEY_LOCAL_MACHINE,
if (rcode == ERROR_SUCCESS) { REGPATH_KERBEROS, res);
code = parse_reg_root(context, key, res); if (code)
RegCloseKey(key); return code;
key = NULL;
if (code) code = load_config_from_regpath(context, HKEY_LOCAL_MACHINE,
return code; REGPATH_HEIMDAL, res);
} if (code)
return code;
rcode = RegOpenKeyEx(HKEY_CURRENT_USER, REGPATH, 0, KEY_READ, &key); code = load_config_from_regpath(context, HKEY_CURRENT_USER,
if (rcode == ERROR_SUCCESS) { REGPATH_KERBEROS, res);
code = parse_reg_root(context, key, res); if (code)
RegCloseKey(key); return code;
key = NULL;
if (code)
return code;
}
code = load_config_from_regpath(context, HKEY_CURRENT_USER,
REGPATH_HEIMDAL, res);
if (code)
return code;
return 0; return 0;
} }

View File

@@ -153,8 +153,10 @@ CANDLEOPTS=$(CANDLEOPTS) -dTarget64 \
!ifdef MULTIPLATFORM_INSTALLER !ifdef MULTIPLATFORM_INSTALLER
CANDLEOPTS=$(CANDLEOPTS) -dTarget32 CANDLEOPTS=$(CANDLEOPTS) -dTarget32
TYPEOPT=-full
!else !else
! message Excluding 32-bit components from installer ! message Excluding 32-bit components from installer
TYPEOPT=
!endif !endif
INSTDEPS=$(INSTDIR32)\Heimdal.msm \ INSTDEPS=$(INSTDIR32)\Heimdal.msm \
@@ -187,16 +189,17 @@ THIRDPARTYOBJS=$(THIRDPARTYOBJS) $(INSTDIR32)\MKShim.wixlib
!endif !endif
!endif !endif
INSTALLER=$(INSTDIR)\Heimdal-$(CPU)$(DEBUGOPT)-$(VERSIOND).msi INSTALLER=$(INSTDIR)\Heimdal-$(CPU)$(DEBUGOPT)$(TYPEOPT)-$(VERSIOND).msi
WIXOBJ=$(OBJ)\heimdal-installer$(TYPEOPT).wixobj
$(INSTALLER): $(OBJ)\heimdal-installer.wixobj $(THIRDPARTYOBJS) $(INSTDEPS) lang\en-us.wxl $(INSTALLER): $(WIXOBJ) $(THIRDPARTYOBJS) $(INSTDEPS) lang\en-us.wxl
$(LIGHT) -out $@ $(OBJ)\heimdal-installer.wixobj $(THIRDPARTYOBJS) \ $(LIGHT) -out $@ $(WIXOBJ) $(THIRDPARTYOBJS) \
-sval -cultures:en-us -loc lang\en-us.wxl \ -sval -cultures:en-us -loc lang\en-us.wxl \
-dWixUILicenseRtf=lang\license-en-us.rtf \ -dWixUILicenseRtf=lang\license-en-us.rtf \
-ext WixUIExtension -ext WixUIExtension
$(_CODESIGN) $(_CODESIGN)
$(OBJ)\heimdal-installer.wixobj: heimdal-installer.wxs $(WIXOBJ): heimdal-installer.wxs
$(CANDLE) -arch $(PLATFORM) -o $@ heimdal-installer.wxs \ $(CANDLE) -arch $(PLATFORM) -o $@ heimdal-installer.wxs \
$(CANDLEOPTS) $(THIRDPARTYOPTS) $(CANDLEOPTS) $(THIRDPARTYOPTS)

View File

@@ -217,7 +217,7 @@
<Component Id='comp.Plugin.Reg.32' Feature='feature.Main' <Component Id='comp.Plugin.Reg.32' Feature='feature.Main'
Guid='4BC44234-70A4-4CC1-A5AF-4CA76E9F9487' Win64='no'> Guid='4BC44234-70A4-4CC1-A5AF-4CA76E9F9487' Win64='no'>
<RegistryKey Action='createAndRemoveOnUninstall' Root='HKLM' <RegistryKey Action='createAndRemoveOnUninstall' Root='HKLM'
Key='Software\Kerberos'> Key='Software\Heimdal'>
<RegistryValue Name='plugin_dir' Type='multiString' Action='append' <RegistryValue Name='plugin_dir' Type='multiString' Action='append'
Value='"[PLUGINDIR32]"' KeyPath='yes' /> Value='"[PLUGINDIR32]"' KeyPath='yes' />
</RegistryKey> </RegistryKey>
@@ -230,7 +230,7 @@
<Component Id='comp.Plugin.Reg.64' Feature='feature.Main' <Component Id='comp.Plugin.Reg.64' Feature='feature.Main'
Guid='5A99A52E-A4CD-40F8-AFFD-AD61939FC547' Win64='yes'> Guid='5A99A52E-A4CD-40F8-AFFD-AD61939FC547' Win64='yes'>
<RegistryKey Action='createAndRemoveOnUninstall' Root='HKLM' <RegistryKey Action='createAndRemoveOnUninstall' Root='HKLM'
Key='Software\Kerberos'> Key='Software\Heimdal'>
<RegistryValue Name='plugin_dir' Type='multiString' Action='append' <RegistryValue Name='plugin_dir' Type='multiString' Action='append'
Value='"[PLUGINDIR64]"' KeyPath='yes' /> Value='"[PLUGINDIR64]"' KeyPath='yes' />
</RegistryKey> </RegistryKey>
@@ -354,7 +354,7 @@
<Feature Id='feature.Main' ConfigurableDirectory='$(var.ConfigDir)' <Feature Id='feature.Main' ConfigurableDirectory='$(var.ConfigDir)'
Title='!(loc.FeaMainTitle)' Title='!(loc.FeaMainTitle)'
Description='!(loc.FeaMainDesc)' Description='!(loc.FeaMainDesc)' Display='expand'
Level='1' TypicalDefault='install' InstallDefault='local'> Level='1' TypicalDefault='install' InstallDefault='local'>
<ComponentRef Id='comp.HX509.chm' /> <ComponentRef Id='comp.HX509.chm' />
@@ -373,42 +373,62 @@
<ComponentRef Id='comp.kcc' /> <ComponentRef Id='comp.kcc' />
<?ifdef LsaCache ?> <?ifdef LsaCache ?>
<?ifdef Target32?>
<ComponentGroupRef Id='comps.LSACache.32' />
<?endif?>
<?ifdef Target64?> <?ifdef Target64?>
<ComponentGroupRef Id='comps.LSACache.64' /> <ComponentGroupRef Id='comps.LSACache.64' />
<?else?>
<ComponentGroupRef Id='comps.LSACache.32' />
<?endif?> <?endif?>
<?endif?> <?endif?>
<?ifdef ApiCache ?> <?ifdef ApiCache ?>
<?ifdef Target32?>
<ComponentGroupRef Id='comps.APICache.32' />
<?endif?>
<?ifdef Target64?> <?ifdef Target64?>
<ComponentGroupRef Id='comps.APICache.64' /> <ComponentGroupRef Id='comps.APICache.64' />
<?else?>
<ComponentGroupRef Id='comps.APICache.32' />
<?endif?> <?endif?>
<?endif?> <?endif?>
<?ifdef MKShim ?> <?ifdef MKShim ?>
<?ifdef Target32?>
<ComponentGroupRef Id='comp.Heimdal.MKShim.32' />
<?endif?>
<?ifdef Target64?> <?ifdef Target64?>
<ComponentGroupRef Id='comp.Heimdal.MKShim.64' /> <ComponentGroupRef Id='comp.Heimdal.MKShim.64' />
<?else?>
<ComponentGroupRef Id='comp.Heimdal.MKShim.32' />
<?endif?> <?endif?>
<?endif?> <?endif?>
<?ifdef Target32?>
<MergeRef Id='Heimdal.Assemblies.32' />
<MergeRef Id='Heimdal.Policy.32' />
<MergeRef Id='Runtime.32' />
<?endif?>
<?ifdef Target64?> <?ifdef Target64?>
<MergeRef Id='Heimdal.Assemblies.64' /> <MergeRef Id='Heimdal.Assemblies.64' />
<MergeRef Id='Heimdal.Policy.64' /> <MergeRef Id='Heimdal.Policy.64' />
<MergeRef Id='Runtime.64' /> <MergeRef Id='Runtime.64' />
<?else?>
<MergeRef Id='Heimdal.Assemblies.32' />
<MergeRef Id='Heimdal.Policy.32' />
<MergeRef Id='Runtime.32' />
<?endif?>
<?ifdef Target32?>
<?ifdef Target64?>
<!-- If we are building the combined installer, the 32-bit
libraries go into a separate feature. -->
<Feature Id='feature.32BitLibraries'
ConfigurableDirectory='INSTALLDIR32'
Title='!(loc.Fea32BitTitle)'
Description='!(loc.Fea32BitDesc)'
Level='1' TypicalDefault='install' InstallDefault='local'>
<?ifdef LsaCache ?>
<ComponentGroupRef Id='comps.LSACache.32' />
<?endif?>
<?ifdef ApiCache ?>
<ComponentGroupRef Id='comps.APICache.32' />
<?endif?>
<?ifdef MKShim ?>
<ComponentGroupRef Id='comp.Heimdal.MKShim.32' />
<?endif?>
<MergeRef Id='Heimdal.Assemblies.32' />
<MergeRef Id='Heimdal.Policy.32' />
<MergeRef Id='Runtime.32' />
</Feature>
<?endif?>
<?endif?> <?endif?>
</Feature> </Feature>
@@ -425,9 +445,7 @@
<Property Id='ALLUSERS' Value='1' Secure='yes' /> <Property Id='ALLUSERS' Value='1' Secure='yes' />
<Property Id='WIXUI_INSTALLDIR' Value='$(var.ConfigDir)' /> <UIRef Id='WixUI_FeatureTree' />
<UIRef Id='WixUI_InstallDir' />
</Product> </Product>
</Wix> </Wix>

View File

@@ -8,6 +8,8 @@
<String Id='Comments'></String> <String Id='Comments'></String>
<String Id='FeaMainTitle'>Heimdal</String> <String Id='FeaMainTitle'>Heimdal</String>
<String Id='FeaMainDesc'>Command line tools and libraries for Heimdal Kerberos</String> <String Id='FeaMainDesc'>Command line tools and libraries for Heimdal Kerberos</String>
<String Id='AdminRequired'>Installation of this package requires elevation.</String> <String Id='Fea32BitTitle'>32-bit tools and libraries</String>
<String Id='Fea32BitDesc'>Compatibility libraries for 32-bit applications</String>
<String Id='AdminRequired'>Installation of this package requires elevation</String>
<String Id='AlreadyInstalled'>A current or newer version of Heimdal is already installed on this machine. Please use the Add/Remove Programs control panel to manage the existing installation.</String> <String Id='AlreadyInstalled'>A current or newer version of Heimdal is already installed on this machine. Please use the Add/Remove Programs control panel to manage the existing installation.</String>
</WixLocalization> </WixLocalization>

View File

@@ -8,8 +8,8 @@ VER_PACKAGE_COMPANY=www.h5l.org
VER_PRODUCT_MAJOR=1 VER_PRODUCT_MAJOR=1
VER_PRODUCT_MINOR=4 VER_PRODUCT_MINOR=4
VER_PRODUCT_AUX=9921 VER_PRODUCT_AUX=9930
VER_PRODUCT_PATCH=1201 VER_PRODUCT_PATCH=615
VER_PACKAGE_VERSION=$(VER_PRODUCT_MAJOR).$(VER_PRODUCT_MINOR).$(VER_PRODUCT_AUX) VER_PACKAGE_VERSION=$(VER_PRODUCT_MAJOR).$(VER_PRODUCT_MINOR).$(VER_PRODUCT_AUX)