remove unused product variables from Windows installer
OLDPRODUCT2 - it was a workaround for OOo 1.9, obsolete SAMEPRODUCTS - same product have the same ProductCode, so installer detect it anyway under normal circumstances. It is possible that a tester/developer tries to install the same version with different ProductCode over an existing installation (e.g. dailyes or RCs). Then we are in trouble. However, SAMEPRODUCTS was not in use. Moreover, Windows Installer uses only the first three fields of the product version. So we cannot make difference between e.g. 4.0.3.1 and 4.0.3.2, and this is the new versioning scheme. BETAPRODUCTS - LibreOffice have never used different upgrade code (BETAUPGRADECODE) for betas. OLDPRODUCTSPATCH, SAMEPRODUCTSPATCH, NEWPRODUCTSPATCH - related to old Star Division patching mechanism, they were commented out anyway. STUBPRODUCTS, STUBUPGRADECODE - these look useless Change-Id: I77d67b72e18fa6b3ba4182b99e198c42f247cea4
This commit is contained in:
@@ -40,7 +40,7 @@ ProgressType2 installed
|
||||
ProgressType3 installs
|
||||
RebootYesNo Yes
|
||||
ReinstallModeText omus
|
||||
SecureCustomProperties NEWPRODUCTS;SAMEPRODUCTS;OLDPRODUCTS;OLDPRODUCTSSAMEMAJOR
|
||||
SecureCustomProperties NEWPRODUCTS;OLDPRODUCTS
|
||||
SetupType Typical
|
||||
STR_NEW_DISPLAY_NAME OOO_STR_NEW_DISPLAY_NAME
|
||||
STR_EDIT OOO_STR_EDIT
|
||||
|
@@ -42,7 +42,7 @@ ProgressType3 installs
|
||||
Quickstarterlinkname QUICKSTARTERLINKNAMETEMPLATE
|
||||
RebootYesNo Yes
|
||||
ReinstallModeText omus
|
||||
SecureCustomProperties NEWPRODUCTS;SAMEPRODUCTS;OLDPRODUCTS;OLDPRODUCTSSAMEMAJOR;OLDPRODUCTS2;BETAPRODUCTS;STUBPRODUCTS
|
||||
SecureCustomProperties NEWPRODUCTS;OLDPRODUCTS
|
||||
SetupType Typical
|
||||
SELECT_WORD 0
|
||||
SELECT_EXCEL 0
|
||||
|
@@ -41,7 +41,7 @@ ProgressType2 installed
|
||||
ProgressType3 installs
|
||||
RebootYesNo Yes
|
||||
ReinstallModeText omus
|
||||
SecureCustomProperties NEWPRODUCTS;SAMEPRODUCTS;OLDPRODUCTS;OLDPRODUCTSSAMEMAJOR
|
||||
SecureCustomProperties NEWPRODUCTS;OLDPRODUCTS
|
||||
SetupType Typical
|
||||
STR_NEW_DISPLAY_NAME OOO_STR_NEW_DISPLAY_NAME
|
||||
STR_EDIT OOO_STR_EDIT
|
||||
|
@@ -68,8 +68,6 @@ LibreOffice
|
||||
GLOBALPATCHFILEGID gid_File_Txt_Patchfiles
|
||||
SPELLCHECKERFILE spellchecker_selection.txt
|
||||
OOODOWNLOADNAME 1
|
||||
BETAUPGRADECODE
|
||||
STUBUPGRADECODE {0E7B27B8-D658-4BF9-98D6-EC361582EB4A}
|
||||
CHANGETARGETDIR 1
|
||||
PATCHCODEFILE ooo_patchcodes.txt
|
||||
STARTCENTER_ADDFEATURE_URL http://extensions.libreoffice.org/
|
||||
@@ -124,8 +122,6 @@ LibreOffice_Dev
|
||||
GLOBALPATCHFILEGID gid_File_Txt_Patchfiles
|
||||
SPELLCHECKERFILE spellchecker_selection.txt
|
||||
OOODOWNLOADNAME 1
|
||||
BETAUPGRADECODE
|
||||
STUBUPGRADECODE {0E7B27B8-D658-4BF9-98D6-EC361582EB4A}
|
||||
CHANGETARGETDIR 1
|
||||
PATCHCODEFILE ooodev_patchcodes.txt
|
||||
CODEFILENAME codes_ooodev.txt
|
||||
|
@@ -33,7 +33,7 @@ WindowsCustomAction gid_Customaction_RenamePrgFolder
|
||||
Source = "shlxtmsi.dll";
|
||||
Target = "RenamePrgFolder";
|
||||
Inbinarytable = 1;
|
||||
Assignment1 = ("InstallExecuteSequence", "VersionNT >= 600 And OLDPRODUCTSSAMEMAJOR And Not REMOVE=\"ALL\" And Not PATCH", "ValidateProductID");
|
||||
Assignment1 = ("InstallExecuteSequence", "VersionNT >= 600 And OLDPRODUCTS And Not REMOVE=\"ALL\" And Not PATCH", "ValidateProductID");
|
||||
End
|
||||
|
||||
WindowsCustomAction gid_Customaction_RemovePrgFolder
|
||||
@@ -42,7 +42,7 @@ WindowsCustomAction gid_Customaction_RemovePrgFolder
|
||||
Source = "shlxtmsi.dll";
|
||||
Target = "RemovePrgFolder";
|
||||
Inbinarytable = 1;
|
||||
Assignment1 = ("InstallExecuteSequence", "VersionNT >= 600 And OLDPRODUCTSSAMEMAJOR And Not REMOVE=\"ALL\" And Not PATCH", "end");
|
||||
Assignment1 = ("InstallExecuteSequence", "VersionNT >= 600 And OLDPRODUCTS And Not REMOVE=\"ALL\" And Not PATCH", "end");
|
||||
End
|
||||
|
||||
WindowsCustomAction gid_Customaction_Regallmsdocdll
|
||||
|
@@ -86,14 +86,6 @@ extern "C" UINT __stdcall CheckVersions( MSIHANDLE hMSI )
|
||||
free( pVal );
|
||||
}
|
||||
pVal = NULL;
|
||||
if ( GetMsiProp( hMSI, L"SAMEPRODUCTS", &pVal ) && pVal )
|
||||
{
|
||||
OutputDebugStringFormat( TEXT("DEBUG: SAMEPRODUCTS found [%s]"), pVal );
|
||||
if ( *pVal != 0 )
|
||||
SetMsiErrorCode( MSI_ERROR_SAME_VERSION_FOUND );
|
||||
free( pVal );
|
||||
}
|
||||
pVal = NULL;
|
||||
if ( GetMsiProp( hMSI, L"OLDPRODUCTS", &pVal ) && pVal )
|
||||
{
|
||||
OutputDebugStringFormat( TEXT("DEBUG: OLDPRODUCTS found [%s]"), pVal );
|
||||
@@ -102,38 +94,6 @@ extern "C" UINT __stdcall CheckVersions( MSIHANDLE hMSI )
|
||||
free( pVal );
|
||||
}
|
||||
pVal = NULL;
|
||||
if ( GetMsiProp( hMSI, L"BETAPRODUCTS", &pVal ) && pVal )
|
||||
{
|
||||
OutputDebugStringFormat( TEXT("DEBUG: BETAPRODUCTS found [%s]"), pVal );
|
||||
if ( *pVal != 0 )
|
||||
SetMsiErrorCode( MSI_ERROR_OLD_VERSION_FOUND );
|
||||
free( pVal );
|
||||
}
|
||||
|
||||
pVal = NULL;
|
||||
if ( GetMsiProp( hMSI, L"NEWPRODUCTSPATCH", &pVal ) && pVal )
|
||||
{
|
||||
OutputDebugStringFormat( TEXT("DEBUG: NEWPRODUCTSPATCH found [%s]"), pVal );
|
||||
if ( *pVal != 0 )
|
||||
SetMsiErrorCode( MSI_ERROR_NEW_PATCH_FOUND );
|
||||
free( pVal );
|
||||
}
|
||||
pVal = NULL;
|
||||
if ( GetMsiProp( hMSI, L"SAMEPRODUCTSPATCH", &pVal ) && pVal )
|
||||
{
|
||||
OutputDebugStringFormat( TEXT("DEBUG: SAMEPRODUCTSPATCH found [%s]"), pVal );
|
||||
if ( *pVal != 0 )
|
||||
SetMsiErrorCode( MSI_ERROR_SAME_PATCH_FOUND );
|
||||
free( pVal );
|
||||
}
|
||||
pVal = NULL;
|
||||
if ( GetMsiProp( hMSI, L"OLDPRODUCTSPATCH", &pVal ) && pVal )
|
||||
{
|
||||
OutputDebugStringFormat( TEXT("DEBUG: OLDPRODUCTSPATCH found [%s]"), pVal );
|
||||
if ( *pVal != 0 )
|
||||
SetMsiErrorCode( MSI_ERROR_OLD_PATCH_FOUND );
|
||||
free( pVal );
|
||||
}
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
@@ -23,18 +23,8 @@
|
||||
//----------------------------------------------------------
|
||||
// list of own error codes
|
||||
|
||||
#define MSI_ERROR_INVALIDDIRECTORY 9001
|
||||
#define MSI_ERROR_ISWRONGPRODUCT 9002
|
||||
#define MSI_ERROR_PATCHISOLDER 9003
|
||||
|
||||
#define MSI_ERROR_NEW_VERSION_FOUND 9010
|
||||
#define MSI_ERROR_SAME_VERSION_FOUND 9011
|
||||
#define MSI_ERROR_OLD_VERSION_FOUND 9012
|
||||
#define MSI_ERROR_NEW_PATCH_FOUND 9013
|
||||
#define MSI_ERROR_SAME_PATCH_FOUND 9014
|
||||
#define MSI_ERROR_OLD_PATCH_FOUND 9015
|
||||
|
||||
#define MSI_ERROR_OFFICE_IS_RUNNING 9020
|
||||
|
||||
#define MSI_ERROR_DIRECTORY_NOT_EMPTY 9030
|
||||
|
||||
|
@@ -44,92 +44,16 @@ sub create_upgrade_table
|
||||
|
||||
my @upgradetable = ();
|
||||
|
||||
# fix for problematic OOo 1.9 versions
|
||||
my $include_ooo_fix = 0;
|
||||
my $ooomaxnew = "";
|
||||
if (($installer::globals::product =~ /^\s*OpenOffice/i ) && ( ! ( $installer::globals::product =~ /SDK/i )) && ( ! $installer::globals::languagepack ) && ( ! $installer::globals::helppack ))
|
||||
{
|
||||
$include_ooo_fix = 1;
|
||||
$ooomaxnew = "34.0.0";
|
||||
}
|
||||
|
||||
installer::windows::idtglobal::write_idt_header(\@upgradetable, "upgrade");
|
||||
|
||||
# Setting also $installer::globals::msimajorproductversion, that is for example "3.0.0", to differ between old products for OOo 2.x and
|
||||
# older products from OOo 3.x. The latter must be removed always, the removal of the first is controlled with a checkbox.
|
||||
my $newline = $installer::globals::upgradecode . "\t" . "\t" . $installer::globals::msimajorproductversion . "\t" . "\t" . "0" . "\t" . "\t" . "OLDPRODUCTS" . "\n";
|
||||
push(@upgradetable, $newline);
|
||||
|
||||
# Setting all products, that must be removed.
|
||||
# $newline = $installer::globals::upgradecode . "\t" . $installer::globals::msimajorproductversion . "\t" . $installer::globals::msiproductversion . "\t" . "\t" . "257" . "\t" . "\t" . "OLDPRODUCTSSAMEMAJOR" . "\n";
|
||||
$newline = $installer::globals::upgradecode . "\t" . $installer::globals::msimajorproductversion . "\t" . $installer::globals::msiproductversion . "\t" . "\t" . "769" . "\t" . "\t" . "OLDPRODUCTSSAMEMAJOR" . "\n";
|
||||
my $newline = $installer::globals::upgradecode . "\t" . "\t" . $installer::globals::msiproductversion . "\t" . "\t" . "513" . "\t" . "\t" . "OLDPRODUCTS" . "\n";
|
||||
push(@upgradetable, $newline);
|
||||
|
||||
# preventing downgrading
|
||||
$newline = $installer::globals::upgradecode . "\t" . $installer::globals::msiproductversion . "\t" . $ooomaxnew . "\t" . "\t" . "2" . "\t" . "\t" . "NEWPRODUCTS" . "\n";
|
||||
$newline = $installer::globals::upgradecode . "\t" . $installer::globals::msiproductversion . "\t" . "\t" . "\t" . "2" . "\t" . "\t" . "NEWPRODUCTS" . "\n";
|
||||
push(@upgradetable, $newline);
|
||||
|
||||
# $newline = $installer::globals::upgradecode . "\t" . $installer::globals::msiproductversion . "\t" . $ooomaxnew . "\t" . "\t" . "258" . "\t" . "\t" . "SAMEPRODUCTS" . "\n";
|
||||
# push(@upgradetable, $newline);
|
||||
|
||||
if ( $include_ooo_fix )
|
||||
{
|
||||
$newline = $installer::globals::upgradecode . "\t" . "35.0.0" . "\t" . "36.0.0" . "\t" . "\t" . "1" . "\t" . "\t" . "OLDPRODUCTS2" . "\n";
|
||||
push(@upgradetable, $newline);
|
||||
}
|
||||
|
||||
# if (( $allvariableshashref->{'PATCHUPGRADECODE'} ) && ( ! $installer::globals::languagepack ))
|
||||
# {
|
||||
# $newline = $allvariableshashref->{'PATCHUPGRADECODE'} . "\t" . "\t" . $installer::globals::msiproductversion . "\t" . "\t" . "1" . "\t" . "\t" . "OLDPRODUCTSPATCH" . "\n";
|
||||
# push(@upgradetable, $newline);
|
||||
#
|
||||
# $newline = $allvariableshashref->{'PATCHUPGRADECODE'} . "\t" . $installer::globals::msiproductversion . "\t" . "\t" . "\t" . "2" . "\t" . "\t" . "NEWPRODUCTSPATCH" . "\n";
|
||||
# push(@upgradetable, $newline);
|
||||
#
|
||||
# $newline = $allvariableshashref->{'PATCHUPGRADECODE'} . "\t" . $installer::globals::msiproductversion . "\t" . "\t" . "\t" . "258" . "\t" . "\t" . "SAMEPRODUCTSPATCH" . "\n";
|
||||
# push(@upgradetable, $newline);
|
||||
# }
|
||||
|
||||
# also searching for the beta
|
||||
|
||||
if (( $allvariableshashref->{'BETAUPGRADECODE'} ) && ( ! $installer::globals::languagepack ) && ( ! $installer::globals::helppack ))
|
||||
{
|
||||
$newline = $allvariableshashref->{'BETAUPGRADECODE'} . "\t" . "1.0" . "\t" . "\t" . "\t" . "1" . "\t" . "\t" . "BETAPRODUCTS" . "\n";
|
||||
push(@upgradetable, $newline);
|
||||
}
|
||||
|
||||
# also searching for the stub
|
||||
|
||||
if (( $allvariableshashref->{'STUBUPGRADECODE'} ) && ( ! $installer::globals::languagepack ) && ( ! $installer::globals::helppack ))
|
||||
{
|
||||
$newline = $allvariableshashref->{'STUBUPGRADECODE'} . "\t" . "1.0" . "\t" . "\t" . "\t" . "1" . "\t" . "\t" . "STUBPRODUCTS" . "\n";
|
||||
push(@upgradetable, $newline);
|
||||
}
|
||||
|
||||
# searching for all older patches and languagepacks (defined in a extra file)
|
||||
|
||||
if (( $allvariableshashref->{'REMOVE_UPGRADE_CODE_FILE'} ) && ( ! $installer::globals::languagepack ) && ( ! $installer::globals::helppack ))
|
||||
{
|
||||
my $filename = $allvariableshashref->{'REMOVE_UPGRADE_CODE_FILE'};
|
||||
my $langpackcodefilename = $installer::globals::idttemplatepath . $installer::globals::separator . $filename;
|
||||
if ( ! -f $langpackcodefilename ) { installer::exiter::exit_program("ERROR: Could not find file \"$langpackcodefilename\".", "create_upgrade_table"); }
|
||||
|
||||
my $filecontent = installer::files::read_file($langpackcodefilename);
|
||||
my $newlines = analyze_file_for_upgrade_table($filecontent);
|
||||
|
||||
for ( my $i = 0; $i <= $#{$newlines}; $i++ ) { push(@upgradetable, ${$newlines}[$i]); }
|
||||
}
|
||||
|
||||
# No upgrade for Beta versions!
|
||||
|
||||
if (( $allvariableshashref->{'PRODUCTEXTENSION'} eq "Beta" ) && ( ! $installer::globals::languagepack ) && ( ! $installer::globals::helppack ))
|
||||
{
|
||||
@upgradetable = ();
|
||||
installer::windows::idtglobal::write_idt_header(\@upgradetable, "upgrade");
|
||||
my $infoline = "Beta product -> empty Upgrade table\n";
|
||||
push(@installer::globals::logfileinfo, $infoline);
|
||||
}
|
||||
|
||||
# Saving the file
|
||||
|
||||
my $upgradetablename = $basedir . $installer::globals::separator . "Upgrade.idt";
|
||||
|
Reference in New Issue
Block a user