cvs diff: cannot open CVS/Entries for reading: No such file or directory
cvs [diff aborted]: no repository
cvs diff: cannot open CVS/Entries for reading: No such file or directory
cvs [diff aborted]: no repository
cvs diff: cannot open CVS/Entries for reading: No such file or directory
cvs [diff aborted]: no repository
cvs diff: Diffing solenv
cvs diff: Diffing solenv/bin
cvs diff: Diffing solenv/bin/modules
cvs diff: Diffing solenv/bin/modules/PCVSLib
cvs diff: Diffing solenv/bin/modules/PCVSLib/lib
cvs diff: Diffing solenv/bin/modules/PCVSLib/lib/PCVSLib
cvs diff: Diffing solenv/bin/modules/PCVSLib/samples
cvs diff: Diffing solenv/bin/modules/PCVSLib/t
cvs diff: Diffing solenv/bin/modules/installer
cvs diff: Diffing solenv/bin/modules/installer/windows
Index: solenv/bin/modules/installer/windows/admin.pm
===================================================================
RCS file: /cvs/tools/solenv/bin/modules/installer/windows/Attic/admin.pm,v
retrieving revision 1.1.4.2
retrieving revision 1.1.4.2.6.2
diff -p -u -u -p -b -w -B -r1.1.4.2 -r1.1.4.2.6.2
--- solenv/bin/modules/installer/windows/admin.pm	16 Oct 2008 09:44:28 -0000	1.1.4.2
+++ solenv/bin/modules/installer/windows/admin.pm	31 Oct 2008 14:26:01 -0000	1.1.4.2.6.2
@@ -85,6 +85,61 @@ sub unpack_cabinet_file
 }
 
 #################################################################################
+# Include tables into a msi database
+#################################################################################
+
+sub include_tables_into_pcpfile
+{
+	my ($fullmsidatabasepath, $workdir, $tables) = @_;
+
+	my $msidb = "msidb.exe";	# Has to be in the path
+	my $infoline = "";
+	my $systemcall = "";
+	my $returnvalue = "";
+
+	# Make all table 8+3 conform
+	my $alltables = installer::converter::convert_stringlist_into_array(\$tables, " ");
+	
+	for ( my $i = 0; $i <= $#{$alltables}; $i++ )
+	{
+		my $tablename = ${$alltables}[$i];
+		$tablename =~ s/\s*$//;
+		my $namelength = length($tablename);
+		if ( $namelength > 8 )
+		{
+			my $newtablename = substr($tablename, 0, 8);	# name, offset, length
+			my $oldfile = $workdir . $installer::globals::separator . $tablename . ".idt";
+			my $newfile = $workdir . $installer::globals::separator . $newtablename . ".idt";
+			if ( -f $newfile ) { unlink $newfile; }
+			installer::systemactions::copy_one_file($oldfile, $newfile);
+			my $savfile = $oldfile . ".orig";
+			installer::systemactions::copy_one_file($oldfile, $savfile);
+		}
+	}
+
+	# Import of tables
+
+	$systemcall = $msidb . " -d " . $fullmsidatabasepath . " -f " . $workdir . " -i " . $tables;
+							
+	$returnvalue = system($systemcall);
+
+	$infoline = "Systemcall: $systemcall\n";
+	push( @installer::globals::logfileinfo, $infoline);
+
+	if ($returnvalue)
+	{
+		$infoline = "ERROR: Could not execute $systemcall !\n";
+		push( @installer::globals::logfileinfo, $infoline);
+		installer::exiter::exit_program("ERROR: Could not include tables into msi database: $fullmsidatabasepath !", "include_tables_into_pcpfile");
+	}
+	else
+	{
+		$infoline = "Success: Executed $systemcall successfully!\n";
+		push( @installer::globals::logfileinfo, $infoline);
+	}
+}
+
+#################################################################################
 # Extracting tables from msi database
 #################################################################################
 
@@ -109,7 +164,7 @@ sub extract_tables_from_pcpfile
 	{
 		$infoline = "ERROR: Could not execute $systemcall !\n";
 		push( @installer::globals::logfileinfo, $infoline);
-		installer::exiter::exit_program("ERROR: Could not exclude tables from pcp file: $fullpcpfilepath !", "extract_all_tables_from_msidatabase");
+		installer::exiter::exit_program("ERROR: Could not exclude tables from pcp file: $fullmsidatabasepath !", "extract_tables_from_pcpfile");
 	}
 	else
 	{
@@ -178,6 +233,71 @@ sub analyze_component_file
 }
 
 #################################################################################
+# Analyzing the full content of Component.idt
+#################################################################################
+
+sub analyze_keypath_component_file
+{
+	my ($filecontent) = @_;
+
+	my %keypathtable = ();
+	
+	for ( my $i = 0; $i <= $#{$filecontent}; $i++ )
+	{
+		if (( $i == 0 ) || ( $i == 1 ) || ( $i == 2 )) { next; }
+
+		if ( ${$filecontent}[$i] =~ /^\s*(.*?)\t(.*?)\t(.*?)\t(.*?)\t(.*?)\t(.*?)\s*$/ )
+		{
+			my $component = $1;
+			my $keypath = $6;
+
+			$keypathtable{$keypath} = $component;
+		}
+	}
+
+	return (\%keypathtable);
+
+}
+
+#################################################################################
+# Analyzing the content of Registry.idt
+#################################################################################
+
+sub analyze_registry_file
+{
+	my ($filecontent) = @_;
+	
+	my %table = ();
+	
+	for ( my $i = 0; $i <= $#{$filecontent}; $i++ )
+	{
+		if (( $i == 0 ) || ( $i == 1 ) || ( $i == 2 )) { next; }
+
+		if ( ${$filecontent}[$i] =~ /^\s*(.*?)\t(.*?)\t(.*?)\t(.*?)\t(.*?)\t(.*?)\s*$/ )
+		{
+			my $registry = $1;
+			my $root = $2;
+			my $key = $3;
+			my $name = $4;
+			my $value = $5;
+			my $component = $6;
+			
+			my %helphash = ();
+			# $helphash{'Registry'} = $registry;
+			$helphash{'Root'} = $root;
+			$helphash{'Key'} = $key;
+			$helphash{'Name'} = $name;
+			$helphash{'Value'} = $value;
+			$helphash{'Component'} = $component;
+
+			$table{$registry} = \%helphash;
+		}
+	}
+
+	return \%table;		
+}
+
+#################################################################################
 # Analyzing the content of File.idt
 #################################################################################
 
@@ -343,6 +463,8 @@ sub get_sis_time_string
 	my $month = (localtime())[4];
 	my $year = 1900 + (localtime())[5];
 
+	$month++;
+
 	if ( $second < 10 ) { $second = "0" . $second; }
 	if ( $minute < 10 ) { $minute = "0" . $minute; }
 	if ( $hour < 10 ) { $hour = "0" . $hour; }
@@ -355,6 +477,175 @@ sub get_sis_time_string
 }
 
 ###############################################################
+# Windows registry entries containing properties are not set
+# correctly during msp patch process. The properties are 
+# empty or do get their default values. This destroys the 
+# values of many entries in Windows registry.
+# This can be fixed by removing all entries in Registry table,
+# containing a property before starting msimsp.exe.
+###############################################################
+
+sub remove_properties_from_registry_table
+{
+	my ($registryhash, $componentkeypathhash, $registryfilecontent) = @_;
+
+	installer::logger::include_timestamp_into_logfile("\nPerformance Info: Start remove_properties_from_registry_table");
+	
+	my @registrytable = ();
+	
+	# Registry hash
+	# Collecting all RegistryItems with values containing a property: [...]
+	# To which component do they belong
+	# Is this after removal an empty component? Create a replacement, so that
+	# no Component has to be removed.
+	# Is this RegistryItem a KeyPath of a component. Then it cannot be removed.
+	
+	my %problemitems = ();
+	my %problemcomponents = ();
+	my %securecomponents = ();
+	my $changevalue = "";
+	my $changeroot = "";
+	my $infoline = "";
+
+	my $newitemcounter = 0;
+	my $olditemcounter = 0;
+	
+	foreach my $regitem ( keys %{$registryhash} )
+	{
+		my $value = "";
+		if ( exists($registryhash->{$regitem}->{'Value'}) ) { $value = $registryhash->{$regitem}->{'Value'}; }
+
+		if ( $value =~ /^.*(\[.*?\]).*$/ )
+		{
+			my $property = $1;
+			
+			# Collecting registry item
+			$problemitems{$regitem} = 1;	# "1" -> can be removed
+			if ( exists($componentkeypathhash->{$regitem}) ) { $problemitems{$regitem} = 2; } 	# "2" -> cannot be removed, KeyPath
+			
+			# Collecting component (and number of problematic registry items
+			# my $component = $registryhash->{$regitem}->{'Component'};
+			# if ( exists($problemcomponents{$regitem}) ) { $problemcomponents{$regitem} = $problemcomponents{$regitem} + 1; }
+			# else { $problemcomponents{$regitem} = 1; }
+		}
+		else
+		{
+			# Collecting all components with secure regisry items
+			my $component = "";
+			if ( exists($registryhash->{$regitem}->{'Component'}) ) { $component = $registryhash->{$regitem}->{'Component'}; }
+			if ( $component eq "" ) { installer::exiter::exit_program("ERROR: Did not find component for registry item \"$regitem\".", "remove_properties_from_registry_table"); }
+			$securecomponents{$component} = 1;
+		}
+		
+		# Searching for change value
+		my $localkey = "";
+		if ( exists($registryhash->{$regitem}->{'Key'}) ) { $localkey = $registryhash->{$regitem}->{'Key'}; }
+		if (( $localkey =~ /^\s*(Software\\.*\\)StartMenu\s*$/ ) && ( $changevalue eq "" ))
+		{
+			$changevalue = $1;
+			$changeroot = $registryhash->{$regitem}->{'Root'};
+		}	
+		
+		$olditemcounter++;	
+	}
+	
+	my $removecounter = 0;
+	my $renamecounter = 0;
+	
+	foreach my $regitem ( keys %{$registryhash} )
+	{
+		my $value = "";
+		if ( exists($registryhash->{$regitem}->{'Value'}) ) { $value = $registryhash->{$regitem}->{'Value'}; }
+
+		if ( $value =~ /^.*(\[.*?\]).*$/ )
+		{
+			# Removing registry items, that are no KeyPath and that belong to components,
+			# that have other secure registry items.
+
+			my $component = "";
+			if ( exists($registryhash->{$regitem}->{'Component'}) ) { $component = $registryhash->{$regitem}->{'Component'}; }
+			if ( $component eq "" ) { installer::exiter::exit_program("ERROR: Did not find component for registry item (2) \"$regitem\".", "remove_properties_from_registry_table"); }
+
+			if (( $problemitems{$regitem} == 1 ) && ( exists($securecomponents{$component}) ))
+			{
+				# remove complete registry item
+				delete($registryhash->{$regitem});
+				$removecounter++;
+				$infoline = "Removing registry item: $regitem : $value\n";
+				push( @installer::globals::logfileinfo, $infoline);
+			}
+			else
+			{
+				# Changing values of registry items, that are KeyPath or that contain to
+				# components with only unsecure registry items.
+	
+				if (( $problemitems{$regitem} == 2 ) || ( ! exists($securecomponents{$component}) ))
+				{
+					# change value of registry item
+					if ( $changevalue eq "" ) { installer::exiter::exit_program("ERROR: Did not find good change value for registry items", "remove_properties_from_registry_table"); }
+
+					my $oldkey = "";
+					if ( exists($registryhash->{$regitem}->{'Key'}) ) { $oldkey = $registryhash->{$regitem}->{'Key'}; };
+					my $oldname = ""; 
+					if ( exists($registryhash->{$regitem}->{'Name'}) ) { $oldname = $registryhash->{$regitem}->{'Name'}; }
+					my $oldvalue = "";
+					if ( exists($registryhash->{$regitem}->{'Value'}) ) { $oldvalue = $registryhash->{$regitem}->{'Value'}; }
+					
+					$registryhash->{$regitem}->{'Key'} = $changevalue . "RegistryItem";
+					$registryhash->{$regitem}->{'Root'} = $changeroot;
+					$registryhash->{$regitem}->{'Name'} = $regitem;
+					$registryhash->{$regitem}->{'Value'} = 1;
+					$renamecounter++;
+
+					$infoline = "Changing registry item: $regitem\n";
+					$infoline = "Old: $oldkey : $oldname : $oldvalue\n";
+					$infoline = "New: $registryhash->{$regitem}->{'Key'} : $registryhash->{$regitem}->{'Name'} : $registryhash->{$regitem}->{'Value'}\n";
+					push( @installer::globals::logfileinfo, $infoline);
+				}
+			}
+		}
+	}
+
+	$infoline = "Number of removed registry items: $removecounter\n";
+	push( @installer::globals::logfileinfo, $infoline);
+	$infoline = "Number of changed registry items: $renamecounter\n";
+	push( @installer::globals::logfileinfo, $infoline);
+	
+	# Creating the new content of Registry table
+	# First three lines from $registryfilecontent
+	# All further files from changed $registryhash
+	
+	for ( my $i = 0; $i <= 2; $i++ ) { push(@registrytable, ${$registryfilecontent}[$i]); }
+
+	foreach my $regitem ( keys %{$registryhash} )
+	{
+		my $root = "";
+		if ( exists($registryhash->{$regitem}->{'Root'}) ) { $root = $registryhash->{$regitem}->{'Root'}; }
+		else { installer::exiter::exit_program("ERROR: Did not find root in registry table for item: \"$regitem\".", "remove_properties_from_registry_table"); }
+		my $localkey = "";
+		if ( exists($registryhash->{$regitem}->{'Key'}) ) { $localkey = $registryhash->{$regitem}->{'Key'}; }
+		my $name = "";
+		if ( exists($registryhash->{$regitem}->{'Name'}) ) { $name = $registryhash->{$regitem}->{'Name'}; }
+		my $value = "";
+		if ( exists($registryhash->{$regitem}->{'Value'}) ) { $value = $registryhash->{$regitem}->{'Value'}; }
+		my $comp = "";
+		if ( exists($registryhash->{$regitem}->{'Component'}) ) { $comp = $registryhash->{$regitem}->{'Component'}; }
+		
+		my $oneline = $regitem . "\t" . $root . "\t" . $localkey . "\t" . $name . "\t" . $value . "\t" . $comp . "\n";
+		push(@registrytable, $oneline);
+
+		$newitemcounter++;
+	}
+
+	$infoline = "Number of registry items: $newitemcounter. Old value: $olditemcounter.\n";
+	push( @installer::globals::logfileinfo, $infoline);
+
+	installer::logger::include_timestamp_into_logfile("\nPerformance Info: End remove_properties_from_registry_table");
+	
+	return (\@registrytable);
+}
+
+###############################################################
 # Writing content of administrative installations into 
 # Summary Information Stream of msi database. 
 # This is required for example for following
@@ -410,7 +701,7 @@ sub make_admin_install
 	
 	# Get File.idt, Component.idt and Directory.idt from database
 	
-	my $tablelist = "File Directory Component";
+	my $tablelist = "File Directory Component Registry";
 	extract_tables_from_pcpfile($databasepath, $helperdir, $tablelist);
 	
 	# Unpack all cab files into $helperdir, cab files must be located next to msi database
@@ -439,8 +730,8 @@ sub make_admin_install
 	my $dirhash = analyze_directory_file($filecontent);
 	
 	$filename = $helperdir . $installer::globals::separator . "Component.idt";
-	$filecontent = installer::files::read_file($filename);
-	my $componenthash = analyze_component_file($filecontent);
+	my $componentfilecontent = installer::files::read_file($filename);
+	my $componenthash = analyze_component_file($componentfilecontent);
 	
 	$filename = $helperdir . $installer::globals::separator . "File.idt";
 	$filecontent = installer::files::read_file($filename);
@@ -455,6 +746,20 @@ sub make_admin_install
 	my $msidatabase = $targetdir . $installer::globals::separator . $databasefilename;
 	installer::systemactions::copy_one_file($databasepath, $msidatabase);
 	
+	# Editing registry table because of wrong Property value
+	#	my $registryfilename = $helperdir . $installer::globals::separator . "Registry.idt";
+	#	my $componentfilename = $helperdir . $installer::globals::separator . "Component.idt";
+	#	my $componentkeypathhash = analyze_keypath_component_file($componentfilecontent);
+
+	#	my $registryfilecontent = installer::files::read_file($registryfilename);
+	#	my $registryhash = analyze_registry_file($registryfilecontent);
+
+	#	$registryfilecontent = remove_properties_from_registry_table($registryhash, $componentkeypathhash, $registryfilecontent);
+
+	#	installer::files::save_file($registryfilename, $registryfilecontent);
+	#	$tablelist = "Registry";
+	#	include_tables_into_pcpfile($msidatabase, $helperdir, $tablelist);
+	
 	# Saving info in Summary Information Stream of msi database (required for following patches)
 	write_sis_info($msidatabase);
 
Index: solenv/bin/modules/installer/windows/msp.pm
===================================================================
RCS file: /cvs/tools/solenv/bin/modules/installer/windows/Attic/msp.pm,v
retrieving revision 1.1.4.2
retrieving revision 1.1.4.2.6.1
diff -p -u -u -p -b -w -B -r1.1.4.2 -r1.1.4.2.6.1
--- solenv/bin/modules/installer/windows/msp.pm	16 Oct 2008 09:45:10 -0000	1.1.4.2
+++ solenv/bin/modules/installer/windows/msp.pm	29 Oct 2008 17:04:39 -0000	1.1.4.2.6.1
@@ -533,6 +533,9 @@ sub change_patchmetadata_table
 	my $windowspatchlevel = 0;
 	if ( $allvariables->{'WINDOWSPATCHLEVEL'} ) { $windowspatchlevel = $allvariables->{'WINDOWSPATCHLEVEL'}; }
 
+	my $displayaddon = "";
+	if ( $allvariables->{'PATCHDISPLAYADDON'} ) { $displayaddon = $allvariables->{'PATCHDISPLAYADDON'}; }
+
 	if (( $allvariables->{'SERVICEPACK'} ) && ( $allvariables->{'SERVICEPACK'} == 1 ))
 	{
 		$displaynamevalue = $base . " Product Update " . $windowspatchlevel;
@@ -540,8 +543,8 @@ sub change_patchmetadata_table
 	}
 	else
 	{
-		$displaynamevalue = $base . " Hotfix " . " Build: " . $installer::globals::buildid;
-		$descriptionvalue = $base . " Hotfix " . " Build: " . $installer::globals::buildid;		
+		$displaynamevalue = $base . " Hotfix " . $displayaddon . " Build: " . $installer::globals::buildid;
+		$descriptionvalue = $base . " Hotfix " . $displayaddon . " Build: " . $installer::globals::buildid;		
 	}
 
 	for ( my $i = 0; $i <= $#{$filecontent}; $i++ )
@@ -718,6 +721,8 @@ sub get_patchsequence
 	if ( $allvariables->{'VENDORPATCHVERSION'} ) { $vendornumber = $allvariables->{'VENDORPATCHVERSION'}; }
 	$patchsequence = $packageversion . "\." . $installer::globals::buildid . "\." . $vendornumber;
 	
+	if ( $allvariables->{'PATCHSEQUENCE'} ) { $patchsequence = $allvariables->{'PATCHSEQUENCE'}; }
+	
 	return $patchsequence;
 }
 
cvs diff: Diffing solenv/bin/modules/packager
cvs diff: Diffing solenv/bin/modules/par2script
cvs diff: Diffing solenv/bin/modules/pre2par
cvs diff: Diffing solenv/config
cvs diff: Diffing solenv/inc
cvs diff: Diffing solenv/inc/startup
cvs diff: Diffing solenv/inc/startup/AIX
cvs diff: Diffing solenv/inc/startup/FREEBSD
cvs diff: Diffing solenv/inc/startup/HPUX
cvs diff: Diffing solenv/inc/startup/IRIX
cvs diff: Diffing solenv/inc/startup/LINUX
cvs diff: Diffing solenv/inc/startup/MACOSX
cvs diff: Diffing solenv/inc/startup/NETBSD
cvs diff: Diffing solenv/inc/startup/OS2
cvs diff: Diffing solenv/inc/startup/SOLARIS
cvs diff: Diffing solenv/inc/startup/UNIX
cvs diff: Diffing solenv/inc/startup/wnt
cvs diff: Diffing solenv/inc/templates
cvs diff: Diffing solenv/prj
cvs diff: Diffing solenv/src
cvs diff: Diffing solenv/unxmacxp
cvs diff: Diffing solenv/unxmacxp/inc
cvs diff: Diffing instsetoo_native
cvs diff: Diffing instsetoo_native/inc_ooolangpack
cvs diff: Diffing instsetoo_native/inc_ooolangpack/windows
cvs diff: Diffing instsetoo_native/inc_ooolangpack/windows/msi_templates
Index: instsetoo_native/inc_ooolangpack/windows/msi_templates/InstallE.idt
===================================================================
RCS file: /cvs/installation/instsetoo_native/inc_ooolangpack/windows/msi_templates/InstallE.idt,v
retrieving revision 1.4.258.3
retrieving revision 1.4.258.3.2.1
diff -p -u -u -p -b -w -B -r1.4.258.3 -r1.4.258.3.2.1
--- instsetoo_native/inc_ooolangpack/windows/msi_templates/InstallE.idt	21 Oct 2008 13:16:06 -0000	1.4.258.3
+++ instsetoo_native/inc_ooolangpack/windows/msi_templates/InstallE.idt	4 Nov 2008 10:26:57 -0000	1.4.258.3.2.1
@@ -54,7 +54,7 @@ SameProductFound	SAMEPRODUCTS	120
 ScheduleReboot	ISSCHEDULEREBOOT	3125
 SelfRegModules		2850
 SelfUnregModules		1100
-SetARPInstallLocation	Not Installed	990
+SetARPInstallLocation		990
 SetOfficeInstallLocation	Not Installed	575
 SetBasisInstallLocation	Not Installed	576
 SetUreInstallLocation	Not Installed	577
cvs diff: Diffing instsetoo_native/inc_ooolangpack/windows/msi_templates/Binary
cvs diff: Diffing instsetoo_native/inc_openoffice
cvs diff: Diffing instsetoo_native/inc_openoffice/unix
cvs diff: Diffing instsetoo_native/inc_openoffice/windows
cvs diff: Diffing instsetoo_native/inc_openoffice/windows/msi_languages
cvs diff: Diffing instsetoo_native/inc_openoffice/windows/msi_templates
Index: instsetoo_native/inc_openoffice/windows/msi_templates/AppSearc.idt
===================================================================
RCS file: /cvs/installation/instsetoo_native/inc_openoffice/windows/msi_templates/AppSearc.idt,v
retrieving revision 1.3.46.1
retrieving revision 1.3.46.1.6.1
diff -p -u -u -p -b -w -B -r1.3.46.1 -r1.3.46.1.6.1
--- instsetoo_native/inc_openoffice/windows/msi_templates/AppSearc.idt	11 Sep 2008 14:13:01 -0000	1.3.46.1
+++ instsetoo_native/inc_openoffice/windows/msi_templates/AppSearc.idt	29 Oct 2008 17:07:15 -0000	1.3.46.1.6.1
@@ -7,3 +7,11 @@ BASISUNINSTALLLOCATION	basisuninstalluse
 BASISUNINSTALLLOCATION	basisuninstallmachine
 OFFICEUNINSTALLLOCATION	officeuninstalluser
 OFFICEUNINSTALLLOCATION	officeuninstallmachine
+UREINSTALLLOCATION	ureuninstalluser
+UREINSTALLLOCATION	ureuninstallmachine
+BASISINSTALLLOCATION	basisuninstalluser
+BASISINSTALLLOCATION	basisuninstallmachine
+OFFICEINSTALLLOCATION	officeuninstalluser
+OFFICEINSTALLLOCATION	officeuninstallmachine
+INSTALLLOCATION	installuser
+INSTALLLOCATION	installmachine
Index: instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt
===================================================================
RCS file: /cvs/installation/instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt,v
retrieving revision 1.7.8.2
retrieving revision 1.7.8.2.6.1
diff -p -u -u -p -b -w -B -r1.7.8.2 -r1.7.8.2.6.1
--- instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt	11 Sep 2008 14:13:45 -0000	1.7.8.2
+++ instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt	4 Nov 2008 10:26:57 -0000	1.7.8.2.6.1
@@ -86,7 +86,7 @@ SameProductFound	SAMEPRODUCTS	120
 ScheduleReboot	ISSCHEDULEREBOOT	3125
 SelfRegModules		2850
 SelfUnregModules		1100
-SetARPInstallLocation	Not Installed	990
+SetARPInstallLocation		990
 SetOfficeInstallLocation	Not Installed	575
 SetBasisInstallLocation	Not Installed	576
 SetUreInstallLocation	Not Installed	577
Index: instsetoo_native/inc_openoffice/windows/msi_templates/RegLocat.idt
===================================================================
RCS file: /cvs/installation/instsetoo_native/inc_openoffice/windows/msi_templates/RegLocat.idt,v
retrieving revision 1.3.46.2
retrieving revision 1.3.46.2.6.1
diff -p -u -u -p -b -w -B -r1.3.46.2 -r1.3.46.2.6.1
--- instsetoo_native/inc_openoffice/windows/msi_templates/RegLocat.idt	11 Sep 2008 14:13:59 -0000	1.3.46.2
+++ instsetoo_native/inc_openoffice/windows/msi_templates/RegLocat.idt	29 Oct 2008 17:07:16 -0000	1.3.46.2.6.1
@@ -7,3 +7,5 @@ basisuninstalluser	1	Software\OpenOffice
 basisuninstallmachine	2	Software\OpenOffice.org\LAYERNAMETEMPLATE\[DEFINEDPRODUCT]\[BRANDPACKAGEVERSION]	BASISINSTALLLOCATION	2
 officeuninstalluser	1	Software\OpenOffice.org\LAYERNAMETEMPLATE\[DEFINEDPRODUCT]\[BRANDPACKAGEVERSION]	OFFICEINSTALLLOCATION	2
 officeuninstallmachine	2	Software\OpenOffice.org\LAYERNAMETEMPLATE\[DEFINEDPRODUCT]\[BRANDPACKAGEVERSION]	OFFICEINSTALLLOCATION	2
+installuser	1	Software\OpenOffice.org\LAYERNAMETEMPLATE\[DEFINEDPRODUCT]\[BRANDPACKAGEVERSION]	INSTALLLOCATION	2
+installmachine	2	Software\OpenOffice.org\LAYERNAMETEMPLATE\[DEFINEDPRODUCT]\[BRANDPACKAGEVERSION]	INSTALLLOCATION	2
cvs diff: Diffing instsetoo_native/inc_openoffice/windows/msi_templates/Binary
cvs diff: Diffing instsetoo_native/inc_sdkoo
cvs diff: Diffing instsetoo_native/inc_sdkoo/windows
cvs diff: Diffing instsetoo_native/inc_sdkoo/windows/msi_templates
Index: instsetoo_native/inc_sdkoo/windows/msi_templates/InstallE.idt
===================================================================
RCS file: /cvs/installation/instsetoo_native/inc_sdkoo/windows/msi_templates/InstallE.idt,v
retrieving revision 1.3
retrieving revision 1.3.296.1
diff -p -u -u -p -b -w -B -r1.3 -r1.3.296.1
--- instsetoo_native/inc_sdkoo/windows/msi_templates/InstallE.idt	22 Jan 2007 14:42:33 -0000	1.3
+++ instsetoo_native/inc_sdkoo/windows/msi_templates/InstallE.idt	4 Nov 2008 10:26:57 -0000	1.3.296.1
@@ -53,7 +53,7 @@ RMCCPSearch	Not CCP_SUCCESS And CCP_TEST
 ScheduleReboot	ISSCHEDULEREBOOT	3125
 SelfRegModules		2850
 SelfUnregModules		1100
-SetARPInstallLocation	Not Installed	990
+SetARPInstallLocation		990
 SetODBCFolders		550
 StartServices	VersionNT	2800
 StopServices	VersionNT	950
cvs diff: Diffing instsetoo_native/inc_sdkoo/windows/msi_templates/Binary
cvs diff: Diffing instsetoo_native/inc_ure
cvs diff: Diffing instsetoo_native/inc_ure/windows
cvs diff: Diffing instsetoo_native/inc_ure/windows/msi_templates
cvs diff: Diffing instsetoo_native/inc_ure/windows/msi_templates/Binary
cvs diff: Diffing instsetoo_native/macosx
cvs diff: Diffing instsetoo_native/macosx/application
cvs diff: Diffing instsetoo_native/prj
cvs diff: Diffing instsetoo_native/res
cvs diff: Diffing instsetoo_native/util
cvs diff: Diffing setup_native
cvs diff: Diffing setup_native/inc
cvs diff: Diffing setup_native/inc/setup_native
cvs diff: Diffing setup_native/prj
cvs diff: Diffing setup_native/registry
cvs diff: Diffing setup_native/registry/data
cvs diff: Diffing setup_native/registry/data/org
cvs diff: Diffing setup_native/registry/data/org/openoffice
cvs diff: Diffing setup_native/registry/data/org/openoffice/Office
cvs diff: Diffing setup_native/scripts
cvs diff: Diffing setup_native/scripts/source
cvs diff: Diffing setup_native/source
cvs diff: Diffing setup_native/source/java
cvs diff: Diffing setup_native/source/linux
cvs diff: Diffing setup_native/source/packinfo
Index: setup_native/source/packinfo/openoffice.pcp
===================================================================
RCS file: /cvs/installation/setup_native/source/packinfo/Attic/openoffice.pcp,v
retrieving revision 1.1.4.3
retrieving revision 1.1.4.3.4.2
diff -p -u -u -p -b -w -B -r1.1.4.3 -r1.1.4.3.4.2
Binary files /tmp/cvsmZa4JW and /tmp/cvsnZa4JW differ
Index: setup_native/source/packinfo/openofficelanguagepack.pcp
===================================================================
RCS file: /cvs/installation/setup_native/source/packinfo/Attic/openofficelanguagepack.pcp,v
retrieving revision 1.1.4.3
retrieving revision 1.1.4.3.4.2
diff -p -u -u -p -b -w -B -r1.1.4.3 -r1.1.4.3.4.2
Binary files /tmp/cvsoZa4JW and /tmp/cvspZa4JW differ
Index: setup_native/source/packinfo/ure.pcp
===================================================================
RCS file: /cvs/installation/setup_native/source/packinfo/Attic/ure.pcp,v
retrieving revision 1.1.4.3
retrieving revision 1.1.4.3.4.2
diff -p -u -u -p -b -w -B -r1.1.4.3 -r1.1.4.3.4.2
Binary files /tmp/cvsqZa4JW and /tmp/cvsrZa4JW differ
cvs diff: Diffing setup_native/source/registration
cvs diff: Diffing setup_native/source/registration/com
cvs diff: Diffing setup_native/source/registration/com/sun
cvs diff: Diffing setup_native/source/registration/com/sun/star
cvs diff: Diffing setup_native/source/registration/com/sun/star/registration
cvs diff: Diffing setup_native/source/registration/com/sun/star/servicetag
cvs diff: Diffing setup_native/source/registration/com/sun/star/servicetag/resources
cvs diff: Diffing setup_native/source/ulfconv
cvs diff: Diffing setup_native/source/win32
cvs diff: Diffing setup_native/source/win32/customactions
cvs diff: Diffing setup_native/source/win32/customactions/indexingfilter
cvs diff: Diffing setup_native/source/win32/customactions/javafilter
cvs diff: Diffing setup_native/source/win32/customactions/languagepacks
cvs diff: Diffing setup_native/source/win32/customactions/patch
cvs diff: Diffing setup_native/source/win32/customactions/quickstarter
cvs diff: Diffing setup_native/source/win32/customactions/reg4allmsdoc
cvs diff: Diffing setup_native/source/win32/customactions/reg4msdoc
cvs diff: Diffing setup_native/source/win32/customactions/regactivex
cvs diff: Diffing setup_native/source/win32/customactions/regpatchactivex
cvs diff: Diffing setup_native/source/win32/customactions/relnotes
cvs diff: Diffing setup_native/source/win32/customactions/shellextensions
Index: setup_native/source/win32/customactions/shellextensions/dotnetcheck.cxx
===================================================================
RCS file: /cvs/installation/setup_native/source/win32/customactions/shellextensions/dotnetcheck.cxx,v
retrieving revision 1.2
retrieving revision 1.2.42.1
diff -p -u -u -p -b -w -B -r1.2 -r1.2.42.1
--- setup_native/source/win32/customactions/shellextensions/dotnetcheck.cxx	22 Jul 2008 12:10:08 -0000	1.2
+++ setup_native/source/win32/customactions/shellextensions/dotnetcheck.cxx	29 Oct 2008 17:15:10 -0000	1.2.42.1
@@ -157,3 +157,40 @@ extern "C" UINT __stdcall DotNetCheck(MS
 
     return ERROR_SUCCESS;    
 }
+
+extern "C" UINT __stdcall ShowProperties(MSIHANDLE handle)
+{
+    string property = GetMsiProperty(handle, TEXT("INSTALLLOCATION"));                
+    string myText = TEXT("INSTALLLOCATION: ") + property;
+	MessageBox(NULL, myText.c_str(), "INSTALLLOCATION", MB_OK);
+
+    property = GetMsiProperty(handle, TEXT("UREINSTALLLOCATION"));                
+    myText = TEXT("UREINSTALLLOCATION: ") + property;
+	MessageBox(NULL, myText.c_str(), "UREINSTALLLOCATION", MB_OK);
+
+    property = GetMsiProperty(handle, TEXT("BASISINSTALLLOCATION"));                
+    myText = TEXT("BASISINSTALLLOCATION: ") + property;
+	MessageBox(NULL, myText.c_str(), "BASISINSTALLLOCATION", MB_OK);
+
+    property = GetMsiProperty(handle, TEXT("OFFICEINSTALLLOCATION"));                
+    myText = TEXT("OFFICEINSTALLLOCATION: ") + property;
+	MessageBox(NULL, myText.c_str(), "OFFICEINSTALLLOCATION", MB_OK);
+
+    property = GetMsiProperty(handle, TEXT("Installed"));                
+    myText = TEXT("Installed: ") + property;
+	MessageBox(NULL, myText.c_str(), "Installed", MB_OK);
+
+    property = GetMsiProperty(handle, TEXT("PATCH"));                
+    myText = TEXT("PATCH: ") + property;
+	MessageBox(NULL, myText.c_str(), "PATCH", MB_OK);
+
+    property = GetMsiProperty(handle, TEXT("REMOVE"));                
+    myText = TEXT("REMOVE: ") + property;
+	MessageBox(NULL, myText.c_str(), "REMOVE", MB_OK);
+
+    property = GetMsiProperty(handle, TEXT("ALLUSERS"));                
+    myText = TEXT("ALLUSERS: ") + property;
+	MessageBox(NULL, myText.c_str(), "ALLUSERS", MB_OK);
+    
+    return ERROR_SUCCESS;     
+}
Index: setup_native/source/win32/customactions/shellextensions/exports.dxp
===================================================================
RCS file: /cvs/installation/setup_native/source/win32/customactions/shellextensions/exports.dxp,v
retrieving revision 1.12
retrieving revision 1.12.42.1
diff -p -u -u -p -b -w -B -r1.12 -r1.12.42.1
--- setup_native/source/win32/customactions/shellextensions/exports.dxp	22 Jul 2008 12:10:25 -0000	1.12
+++ setup_native/source/win32/customactions/shellextensions/exports.dxp	29 Oct 2008 17:12:09 -0000	1.12.42.1
@@ -14,4 +14,5 @@ SetAdminInstallProperty
 CreateLayerLinks
 RemoveLayerLinks
 DotNetCheck
+ShowProperties
 copyEditionData
Index: setup_native/source/win32/customactions/shellextensions/migrateinstallpath.cxx
===================================================================
RCS file: /cvs/installation/setup_native/source/win32/customactions/shellextensions/migrateinstallpath.cxx,v
retrieving revision 1.8
retrieving revision 1.8.108.1
diff -p -u -u -p -b -w -B -r1.8 -r1.8.108.1
--- setup_native/source/win32/customactions/shellextensions/migrateinstallpath.cxx	10 Apr 2008 10:19:53 -0000	1.8
+++ setup_native/source/win32/customactions/shellextensions/migrateinstallpath.cxx	29 Oct 2008 17:18:21 -0000	1.8.108.1
@@ -100,6 +100,28 @@ extern "C" UINT __stdcall MigrateInstall
 			MsiSetProperty(handle, TEXT("OFFICEINSTALLLOCATION"), sInstDir.c_str());                        
 			// MessageBox( NULL, sInstDir.c_str(), "Found in HKEY_CURRENT_USER", MB_OK );
 		}
+		
+		if ( ERROR_SUCCESS == RegQueryValueEx( hKey, TEXT("BASISINSTALLLOCATION"), NULL, NULL, (LPBYTE)szValue, &nValueSize ) )
+		{
+			sInstDir = szValue;
+			MsiSetProperty(handle, TEXT("BASISINSTALLLOCATION"), sInstDir.c_str());                        
+			// MessageBox( NULL, sInstDir.c_str(), "Found in HKEY_CURRENT_USER", MB_OK );
+		}
+
+		if ( ERROR_SUCCESS == RegQueryValueEx( hKey, TEXT("UREINSTALLLOCATION"), NULL, NULL, (LPBYTE)szValue, &nValueSize ) )
+		{
+			sInstDir = szValue;
+			MsiSetProperty(handle, TEXT("UREINSTALLLOCATION"), sInstDir.c_str());                        
+			// MessageBox( NULL, sInstDir.c_str(), "Found in HKEY_CURRENT_USER", MB_OK );
+		}
+
+		if ( ERROR_SUCCESS == RegQueryValueEx( hKey, TEXT("INSTALLLOCATION"), NULL, NULL, (LPBYTE)szValue, &nValueSize ) )
+		{
+			sInstDir = szValue;
+			MsiSetProperty(handle, TEXT("INSTALLLOCATION"), sInstDir.c_str());                        
+			// MessageBox( NULL, sInstDir.c_str(), "Found in HKEY_CURRENT_USER", MB_OK );
+		}
+		
 		RegCloseKey( hKey );
 	}
 	else if ( ERROR_SUCCESS == RegOpenKey( HKEY_LOCAL_MACHINE,  sProductKey.c_str(), &hKey ) )
@@ -110,6 +132,28 @@ extern "C" UINT __stdcall MigrateInstall
 			MsiSetProperty(handle, TEXT("OFFICEINSTALLLOCATION"), sInstDir.c_str());                        
 			// MessageBox( NULL, sInstDir.c_str(), "Found in HKEY_LOCAL_MACHINE", MB_OK );
 		}
+
+		if ( ERROR_SUCCESS == RegQueryValueEx( hKey, TEXT("BASISINSTALLLOCATION"), NULL, NULL, (LPBYTE)szValue, &nValueSize ) )
+		{
+			sInstDir = szValue;
+			MsiSetProperty(handle, TEXT("BASISINSTALLLOCATION"), sInstDir.c_str());                        
+			// MessageBox( NULL, sInstDir.c_str(), "Found in HKEY_LOCAL_MACHINE", MB_OK );
+		}
+		
+		if ( ERROR_SUCCESS == RegQueryValueEx( hKey, TEXT("UREINSTALLLOCATION"), NULL, NULL, (LPBYTE)szValue, &nValueSize ) )
+		{
+			sInstDir = szValue;
+			MsiSetProperty(handle, TEXT("UREINSTALLLOCATION"), sInstDir.c_str());                        
+			// MessageBox( NULL, sInstDir.c_str(), "Found in HKEY_LOCAL_MACHINE", MB_OK );
+		}
+
+		if ( ERROR_SUCCESS == RegQueryValueEx( hKey, TEXT("INSTALLLOCATION"), NULL, NULL, (LPBYTE)szValue, &nValueSize ) )
+		{
+			sInstDir = szValue;
+			MsiSetProperty(handle, TEXT("INSTALLLOCATION"), sInstDir.c_str());                        
+			// MessageBox( NULL, sInstDir.c_str(), "Found in HKEY_LOCAL_MACHINE", MB_OK );
+		}
+
 		RegCloseKey( hKey );
 	}
 
cvs diff: Diffing setup_native/source/win32/customactions/tools
cvs diff: Diffing setup_native/source/win32/nsis
cvs diff: Diffing setup_native/source/win32/stwrapper

