Kaydet (Commit) aa2450cb authored tarafından Andras Timar's avatar Andras Timar

advertised shotrcuts

The main goal of this patch was to simplify things. The LibreOffice
version that goes to Intel AppUp use advertsied shourtcuts, because
it is what Intel AppUp Center requires. We can reduce complexity a
bit, if we use advertised shortcuts in normal builds, too.

Change-Id: Ia35a753c83cb592137232428ab897a640e7ccc1f
üst d52dbb97
......@@ -30,14 +30,13 @@
#ifndef ENABLE_SILENT_MSI
FolderItem gid_Folderitem_Sbase
Name = "%PRODUCTNAME Base";
ModuleID = gid_Module_Prg_Base_Bin;
ModuleID = gid_Module_Brand_Prg_Base;
FolderID = gid_Folder_Staroffice51;
FileID = gid_File_Exe_Sbase;
IconFile = gid_File_Exe_Sbase;
IconID = 0;
WkDir = gid_Brand_Dir_Program;
Parameter = "";
Styles = (NOWEB, NON_ADVERTISED);
ALL_LANG(Tooltip, STR_FI_TOOLTIP_BASE);
End
#endif
......@@ -30,14 +30,13 @@
#ifndef ENABLE_SILENT_MSI
FolderItem gid_Folderitem_Scalc
Name = "%PRODUCTNAME Calc";
ModuleID = gid_Module_Prg_Calc_Bin;
ModuleID = gid_Module_Brand_Prg_Calc;
FolderID = gid_Folder_Staroffice51;
FileID = gid_File_Exe_Scalc;
IconFile = gid_File_Exe_Scalc;
IconID = 0;
WkDir = gid_Brand_Dir_Program;
Parameter = "";
Styles = (NOWEB, NON_ADVERTISED);
ALL_LANG(Tooltip, STR_FI_TOOLTIP_CALC);
End
#endif
......@@ -30,14 +30,13 @@
#ifndef ENABLE_SILENT_MSI
FolderItem gid_Folderitem_Sdraw
Name = "%PRODUCTNAME Draw";
ModuleID = gid_Module_Prg_Draw_Bin;
ModuleID = gid_Module_Brand_Prg_Draw;
FolderID = gid_Folder_Staroffice51;
FileID = gid_File_Exe_Sdraw;
IconFile = gid_File_Exe_Sdraw;
IconID = 0;
WkDir = gid_Brand_Dir_Program;
Parameter = "";
Styles = (NOWEB, NON_ADVERTISED);
ALL_LANG(Tooltip, STR_FI_TOOLTIP_DRAW);
End
#endif
......@@ -30,14 +30,13 @@
#ifndef ENABLE_SILENT_MSI
FolderItem gid_Folderitem_Simpress
Name = "%PRODUCTNAME Impress";
ModuleID = gid_Module_Prg_Impress_Bin;
ModuleID = gid_Module_Brand_Prg_Impress;
FolderID = gid_Folder_Staroffice51;
FileID = gid_File_Exe_Simpress;
IconFile = gid_File_Exe_Simpress;
IconID = 0;
WkDir = gid_Brand_Dir_Program;
Parameter = "";
Styles = (NOWEB, NON_ADVERTISED);
ALL_LANG(Tooltip, STR_FI_TOOLTIP_IMPRESS);
End
#endif
......@@ -30,14 +30,13 @@
#ifndef ENABLE_SILENT_MSI
FolderItem gid_Folderitem_Smath
Name = "%PRODUCTNAME Math";
ModuleID = gid_Module_Prg_Math_Bin;
ModuleID = gid_Module_Brand_Prg_Math;
FolderID = gid_Folder_Staroffice51;
FileID = gid_File_Exe_Smath;
IconFile = gid_File_Exe_Smath;
IconID = 0;
WkDir = gid_Brand_Dir_Program;
Parameter = "";
Styles = (NOWEB, NON_ADVERTISED);
ALL_LANG(Tooltip, STR_FI_TOOLTIP_MATH);
End
#endif
......@@ -58,7 +58,6 @@ Module gid_Module_Root_Brand
gid_Brand_File_Bin_Unopkg,
gid_Brand_File_Bin_Libxml2,
gid_Brand_File_Bmp_IntroAboutShell,
gid_Brand_File_Desktophelper_Txt,
gid_Brand_File_Html_Thirdpartylicensereadme,
gid_Brand_File_Images_Brand_Zip,
gid_Brand_File_Lib_Dbghelp,
......@@ -533,16 +532,6 @@ File gid_Brand_File_Bin_Soffice_Bin_Manifest
End
#endif
#ifdef WNT
File gid_Brand_File_Desktophelper_Txt
TXT_FILE_BODY;
Styles = (PACKED);
Dir = gid_Brand_Dir_Program;
Name = "desktophelper.txt";
ComponentCondition = "CREATEDESKTOPLINK=1";
End
#endif
File gid_Brand_File_Bin_Unoinfo
BIN_FILE_BODY;
Dir = gid_Brand_Dir_Program;
......
......@@ -29,36 +29,35 @@
FolderItem gid_Folderitem_LibreOffice
Name = "%PRODUCTNAME";
ModuleID = gid_Module_Root;
ModuleID = gid_Module_Root_Brand;
#ifdef ENABLE_SILENT_MSI
FolderID = PREDEFINED_STARTMENU;
Tooltip = "LibreOffice";
#else
FolderID = gid_Folder_Staroffice51;
ALL_LANG(Tooltip, STR_FI_TOOLTIP_SOFFICE);
#endif
FileID = gid_Brand_File_Bin_Soffice;
IconFile = gid_Brand_File_Bin_Soffice;
IconID = 0;
WkDir = gid_Brand_Dir_Program;
Parameter = "";
Styles = (NOWEB, NON_ADVERTISED);
ALL_LANG(Tooltip, STR_FI_TOOLTIP_SOFFICE);
End
FolderItem gid_Folderitem_Soffice_Desktop
#ifdef ENABLE_SILENT_MSI
Name = "%PRODUCTNAME";
Tooltip = "LibreOffice";
#else
Name = "%PRODUCTNAME %PRODUCTVERSION";
ALL_LANG(Tooltip, STR_FI_TOOLTIP_SOFFICE);
#endif
ModuleID = gid_Module_Root;
ModuleID = gid_Module_Root_Brand;
FolderID = PREDEFINED_DESKTOP;
FileID = gid_Brand_File_Bin_Soffice;
IconFile = gid_Brand_File_Bin_Soffice;
IconID = 0;
ComponentIDFile = "gid_Brand_File_Desktophelper_Txt";
WkDir = gid_Brand_Dir_Program;
Parameter = "";
Styles = (NOWEB,NON_ADVERTISED,USE_HELPER_FILENAME);
ALL_LANG(Tooltip, STR_FI_TOOLTIP_SOFFICE);
ComponentCondition = "CREATEDESKTOPLINK=1";
End
......@@ -30,14 +30,13 @@
#ifndef ENABLE_SILENT_MSI
FolderItem gid_Folderitem_Swriter
Name = "%PRODUCTNAME Writer";
ModuleID = gid_Module_Prg_Wrt_Bin;
ModuleID = gid_Module_Brand_Prg_Wrt;
FolderID = gid_Folder_Staroffice51;
FileID = gid_File_Exe_Swriter;
IconFile = gid_File_Exe_Swriter;
IconID = 0;
WkDir = gid_Brand_Dir_Program;
Parameter = "";
Styles = (NOWEB, NON_ADVERTISED);
ALL_LANG(Tooltip, STR_FI_TOOLTIP_WRITER);
End
#endif
......@@ -18,8 +18,5 @@ $(eval $(call gb_Package_add_file,setup_native/misc,bin/osl/osxdndinstall.png,ma
$(eval $(call gb_Package_add_file,setup_native/misc,bin/root3.dat,linux/root3.dat))
$(eval $(call gb_Package_add_file,setup_native/misc,bin/root4.dat,linux/root4.dat))
$(eval $(call gb_Package_add_file,setup_native/misc,bin/root5.dat,linux/root5.dat))
$(eval $(call gb_Package_add_file,setup_native/misc,bin/patchlist.txt,win32/patchlist.txt))
$(eval $(call gb_Package_add_file,setup_native/misc,bin/desktophelper.txt,win32/desktophelper.txt))
$(eval $(call gb_Package_add_file,setup_native/misc,bin/get_retval.bat,win32/get_retval.bat))
# vim: set noet sw=4 ts=4:
echo off
call %*
echo %1 returned %ERRORLEVEL%
\ No newline at end of file
......@@ -369,8 +369,6 @@ sub run {
installer::setupscript::add_predefined_folder($folderitemsinproductarrayref, $folderinproductarrayref);
installer::setupscript::prepare_non_advertised_files($folderitemsinproductarrayref, $filesinproductarrayref);
installer::logger::print_message( "... analyzing registryitems ... \n" );
$registryitemsinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "RegistryItem");
......
......@@ -195,8 +195,6 @@ BEGIN
$refresh_includepaths = 0;
$include_paths_read = 0;
@patchfilecollector = ();
@userregistrycollector = ();
$addeduserregitrykeys = 0;
$desktoplinkexists = 0;
$analyze_spellcheckerlanguage = 0;
%spellcheckerlanguagehash = ();
......
......@@ -42,7 +42,6 @@ our @EXPORT_OK = qw(
add_predefined_folder
get_all_items_from_script
get_all_scriptvariables_from_installation_object
prepare_non_advertised_files
replace_all_setupscriptvariables_in_script
replace_preset_properties
resolve_lowercase_productname_setupscriptvariable
......@@ -404,36 +403,6 @@ sub add_predefined_folder
}
}
#####################################################################################
# If folderitems are non-advertised, the component needs to have a registry key
# below HKCU as key path. Therefore it is required, to mark the file belonging
# to a non-advertised shortcut, that a special userreg_xxx registry key can be
# created during packing process.
#####################################################################################
sub prepare_non_advertised_files
{
my ( $folderitemref, $filesref ) = @_;
for ( my $i = 0; $i <= $#{$folderitemref}; $i++ )
{
my $folderitem = ${$folderitemref}[$i];
my $styles = "";
if ( $folderitem->{'Styles'} ) { $styles = $folderitem->{'Styles'}; }
if ( $styles =~ /\bNON_ADVERTISED\b/ )
{
my $fileid = $folderitem->{'FileID'};
if ( $folderitem->{'ComponentIDFile'} ) { $fileid = $folderitem->{'ComponentIDFile'}; }
my $onefile = installer::worker::find_file_by_id($filesref, $fileid);
# Attention: If $onefile with "FileID" is not found, this is not always an error.
# FileID can also contain an executable file, for example msiexec.exe.
if ( $onefile ne "" ) { $onefile->{'needs_user_registry_key'} = 1; }
}
}
}
#####################################################################################
# Adding all variables defined in the installation object into the hash
# of all variables from the zip list file.
......
......@@ -227,11 +227,6 @@ sub get_file_component_attributes
$attributes = 0; # Assembly files cannot run from source
}
if ( $onefile->{'needs_user_registry_key'} )
{
$attributes = 4; # Files in non advertised startmenu entries must have user registry key as KeyPath
}
# Setting msidbComponentAttributes64bit, if this is a 64 bit installation set.
if (( $allvariables->{'64BITPRODUCT'} ) && ( $allvariables->{'64BITPRODUCT'} == 1 )) { $attributes |= 256; }
......@@ -365,8 +360,6 @@ sub get_component_keypath
}
}
if ( $oneitem->{'userregkeypath'} ) { $keypath = $oneitem->{'userregkeypath'}; }
# saving it in the file and registry collection
$oneitem->{'keypath'} = $keypath;
......
......@@ -680,22 +680,6 @@ sub get_language_for_file
return $language;
}
####################################################################
# Creating a new KeyPath for components in TemplatesFolder.
####################################################################
sub generate_registry_keypath
{
my ($onefile) = @_;
my $keypath = $onefile->{'Name'};
$keypath =~ s/\.//g;
$keypath = lc($keypath);
$keypath = "userreg_" . $keypath;
return $keypath;
}
####################################################################
# Check, if in an update process files are missing. No removal
# of files allowed for Windows Patch creation.
......@@ -1014,14 +998,6 @@ sub create_files_table
my $destdir = "";
if ( $onefile->{'Dir'} ) { $destdir = $onefile->{'Dir'}; }
if ( $onefile->{'needs_user_registry_key'} )
{
my $keypath = generate_registry_keypath($onefile);
$onefile->{'userregkeypath'} = $keypath;
push(@installer::globals::userregistrycollector, $onefile);
$installer::globals::addeduserregitrykeys = 1;
}
}
# putting content from %allfilecomponents to $allfilecomponentsref for later usage
......
......@@ -305,38 +305,6 @@ sub get_registry_component
return $componentname;
}
######################################################
# Adding the content of
# @installer::globals::userregistrycollector
# to the registry table. The content was collected
# in create_files_table() in file.pm.
######################################################
sub add_userregs_to_registry_table
{
my ( $registrytable, $allvariables ) = @_;
for ( my $i = 0; $i <= $#installer::globals::userregistrycollector; $i++ )
{
my $onefile = $installer::globals::userregistrycollector[$i];
my %registry = ();
$registry{'Registry'} = $onefile->{'userregkeypath'};
$registry{'Root'} = "1"; # always HKCU
$registry{'Key'} = "Software\\$allvariables->{'MANUFACTURER'}\\$allvariables->{'PRODUCTNAME'} $allvariables->{'PRODUCTVERSION'}\\";
if ( $onefile->{'needs_user_registry_key'} ) { $registry{'Key'} = $registry{'Key'} . "StartMenu"; }
$registry{'Name'} = $onefile->{'Name'};
$registry{'Value'} = "1";
$registry{'Component_'} = $onefile->{'componentname'};
my $oneline = $registry{'Registry'} . "\t" . $registry{'Root'} . "\t" . $registry{'Key'} . "\t"
. $registry{'Name'} . "\t" . $registry{'Value'} . "\t" . $registry{'Component_'} . "\n";
push(@{$registrytable}, $oneline);
}
}
######################################################
# Creating the file Registry.idt dynamically
# Content:
......@@ -409,12 +377,6 @@ sub create_registry_table
push(@registrytable, $oneline);
}
# If there are added user registry keys for files collected in
# @installer::globals::userregistrycollector (file.pm), then
# this registry keys have to be added now.
if ( $installer::globals::addeduserregitrykeys ) { add_userregs_to_registry_table(\@registrytable, $allvariableshashref); }
# Saving the file
my $registrytablename = $basedir . $installer::globals::separator . "Registry.idt" . "." . $onelanguage;
......
......@@ -121,14 +121,6 @@ sub get_shortcut_component
my $found = 0;
my $shortcut_fileid = $shortcut->{'FileID'};
my $absolute_filename = 0;
if ( $shortcut->{'Styles'} ) { $styles = $shortcut->{'Styles'}; }
if ( $styles =~ /\bABSOLUTE_FILENAME\b/ ) { $absolute_filename = 1; } # FileID contains an absolute filename
if ( $styles =~ /\bUSE_HELPER_FILENAME\b/ ) { $absolute_filename = 1; } # ComponentIDFile contains id of a helper file
# if the FileID contains an absolute filename, therefore the entry for "ComponentIDFile" has to be used.
if ( $absolute_filename ) { $shortcut_fileid = $shortcut->{'ComponentIDFile'}; }
for ( my $i = 0; $i <= $#{$filesref}; $i++ )
{
$onefile = ${$filesref}[$i];
......@@ -358,71 +350,18 @@ sub get_folderitem_directory
########################################################################
# Returning the target (feature) for a folderitem for shortcut table.
# For non-advertised shortcuts this is a formatted string.
########################################################################
sub get_folderitem_target
{
my ($shortcut, $filesref) = @_;
my $onefile;
my $target = "";
my $found = 0;
my $shortcut_fileid = $shortcut->{'FileID'};
my $styles = "";
my $nonadvertised = 0;
my $absolute_filename = 0;
if ( $shortcut->{'Styles'} ) { $styles = $shortcut->{'Styles'}; }
if ( $styles =~ /\bNON_ADVERTISED\b/ ) { $nonadvertised = 1; } # this is a non-advertised shortcut
if ( $styles =~ /\bABSOLUTE_FILENAME\b/ ) { $absolute_filename = 1; } # FileID contains an absolute filename
# if the FileID contains an absolute filename this can simply be returned as target for the shortcut table.
if ( $absolute_filename )
{
$shortcut->{'target'} = $shortcut_fileid;
return $shortcut_fileid;
}
for ( my $i = 0; $i <= $#{$filesref}; $i++ )
{
$onefile = ${$filesref}[$i];
my $filegid = $onefile->{'gid'};
if ( $filegid eq $shortcut_fileid )
{
$found = 1;
last;
}
}
if (!($found))
{
installer::exiter::exit_program("ERROR: Did not find FileID $shortcut_fileid in file collection for folderitem", "get_folderitem_target");
}
# Non advertised shortcuts do not return the feature, but the path to the file
if ( $nonadvertised )
{
$target = "\[" . $onefile->{'uniquedirname'} . "\]" . "\\" . $onefile->{'Name'};
$shortcut->{'target'} = $target;
return $target;
}
# the rest only for advertised shortcuts, which contain the feature in the shortcut table.
if ( $onefile->{'modules'} ) { $target = $onefile->{'modules'}; }
# If modules contains a list of modules, only taking the first one.
# But this should never be needed
if ( $target =~ /^\s*(.*?)\,/ ) { $target = $1; }
my $target = $shortcut->{'ModuleID'};
# Attention: Maximum feature length is 38!
installer::windows::idtglobal::shorten_feature_gid(\$target);
# and finally saving the target in the folderitems collector
$shortcut->{'target'} = $target;
return $target;
......@@ -454,7 +393,6 @@ sub get_folderitem_icon
my $styles = "";
if ( $shortcut->{'Styles'} ) { $styles = $shortcut->{'Styles'}; }
if ( $styles =~ /\bNON_ADVERTISED\b/ ) { return ""; } # no icon for non-advertised shortcuts
my $iconfilegid = "";
......@@ -502,11 +440,6 @@ sub get_folderitem_icon
sub get_folderitem_iconindex
{
my ($shortcut) = @_;
my $styles = "";
if ( $shortcut->{'Styles'} ) { $styles = $shortcut->{'Styles'}; }
if ( $styles =~ /\bNON_ADVERTISED\b/ ) { return ""; } # no iconindex for non-advertised shortcuts
my $iconid = 0;
if ( $shortcut->{'IconID'} ) { $iconid = $shortcut->{'IconID'}; }
......
......@@ -37,7 +37,6 @@ BEGIN {
add_predefined_folder
get_all_items_from_script
get_all_scriptvariables_from_installation_object
prepare_non_advertised_files
replace_all_setupscriptvariables_in_script
replace_preset_properties
resolve_lowercase_productname_setupscriptvariable
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment