diff options
Diffstat (limited to 'solenv/bin/modules/installer/windows/file.pm')
-rw-r--r-- | solenv/bin/modules/installer/windows/file.pm | 54 |
1 files changed, 18 insertions, 36 deletions
diff --git a/solenv/bin/modules/installer/windows/file.pm b/solenv/bin/modules/installer/windows/file.pm index 301eee2840f0..15c0af993317 100644 --- a/solenv/bin/modules/installer/windows/file.pm +++ b/solenv/bin/modules/installer/windows/file.pm @@ -1,29 +1,20 @@ -#************************************************************************* # -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# This file is part of the LibreOffice project. # -# Copyright 2000, 2010 Oracle and/or its affiliates. +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. # -# OpenOffice.org - a multi-platform office productivity suite +# This file incorporates work covered by the following license notice: # -# This file is part of OpenOffice.org. +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed +# with this work for additional information regarding copyright +# ownership. The ASF licenses this file to you under the Apache +# License, Version 2.0 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.apache.org/licenses/LICENSE-2.0 . # -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* package installer::windows::file; @@ -36,6 +27,7 @@ use installer::pathanalyzer; use installer::worker; use installer::windows::font; use installer::windows::idtglobal; +use installer::windows::msiglobal; use installer::windows::language; use installer::windows::component; @@ -179,25 +171,18 @@ sub assign_sequencenumbers_to_files # -> no resetting of # %installer::globals::allshortcomponents # after a package was created. +# Using no counter because of reproducibility. ######################################################### sub generate_new_short_componentname { my ($componentname) = @_; - my $shortcomponentname = ""; - my $counter = 1; - my $startversion = substr($componentname, 0, 60); # taking only the first 60 characters - $startversion = $startversion . "_"; + my $subid = installer::windows::msiglobal::calculate_id($componentname, 9); # taking only the first 9 digits + my $shortcomponentname = $startversion . "_" . $subid; - $shortcomponentname = $startversion . $counter; - - while ( exists($installer::globals::allshortcomponents{$shortcomponentname}) ) - { - $counter++; - $shortcomponentname = $startversion . $counter; - } + if ( exists($installer::globals::allshortcomponents{$shortcomponentname}) ) { installer::exiter::exit_program("Failed to create unique component name: \"$shortcomponentname\"", "generate_new_short_componentname"); } $installer::globals::allshortcomponents{$shortcomponentname} = 1; @@ -282,11 +267,8 @@ sub get_file_component_name } else { - if ( length($componentname) > 60 ) + if ( length($componentname) > 70 ) { - # Using md5sum needs much time - # chomp(my $shorter = `echo $componentname | md5sum | sed -e "s/ .*//g"`); - # $componentname = "comp_$shorter"; $componentname = generate_new_short_componentname($componentname); # This has to be unique for the complete product, not only one package } |