You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by af...@apache.org on 2014/04/15 13:28:55 UTC

svn commit: r1587528 - /openoffice/trunk/main/solenv/bin/modules/installer/windows/msiglobal.pm

Author: af
Date: Tue Apr 15 11:28:55 2014
New Revision: 1587528

URL: http://svn.apache.org/r1587528
Log:
i124682: Use the right upgrade code for lanaguage sets.

Modified:
    openoffice/trunk/main/solenv/bin/modules/installer/windows/msiglobal.pm

Modified: openoffice/trunk/main/solenv/bin/modules/installer/windows/msiglobal.pm
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/bin/modules/installer/windows/msiglobal.pm?rev=1587528&r1=1587527&r2=1587528&view=diff
==============================================================================
--- openoffice/trunk/main/solenv/bin/modules/installer/windows/msiglobal.pm (original)
+++ openoffice/trunk/main/solenv/bin/modules/installer/windows/msiglobal.pm Tue Apr 15 11:28:55 2014
@@ -1567,10 +1567,12 @@ sub get_source_codes ($)
 
     Determine values for the product code and upgrade code of the target version.
 
-    As perparation for building a Windows patch, certain conditions have to be fullfilled.
-     - The upgrade code changes from old to new version
+    As preparation for building a Windows patch, certain conditions have to be fulfilled.
+     - The upgrade code remains the same
      - The product code remains the same
-     In order to inforce that we have to access information about the source version.
+       [this is still to be determined.  For patches to work we need the same product codes but
+        the install sets install only when the product codes differ.]
+    In order to enforce that we have to access information about the source version.
 
     The resulting values are stored as global variables
         $installer::globals::productcode
@@ -1630,7 +1632,29 @@ sub set_global_code_variables ($$)
         $target_upgrade_code = "{" . create_guid() . "}";
         $installer::logger::Lang->printf("there is no source version => created new guids\n");
     }
-    
+
+    # Keep the upgrade code constant between versions.  Read it from the codes.txt file.
+    # Note that this handles regular installation sets and language packs.
+    my $onelanguage = ${$languagesref}[0];
+    $installer::logger::Lang->printf("reading upgrade code for language %s from %s\n",
+        $onelanguage,
+        $installer::globals::codefilename);
+    if (defined $installer::globals::codefilename)
+    {
+        my $code_filename = $installer::globals::codefilename;
+        installer::files::check_file($code_filename);
+        my $codefile = installer::files::read_file($code_filename);
+        my $searchstring = "UPGRADECODE";
+        my $codeblock = installer::windows::idtglobal::get_language_block_from_language_file(
+            $searchstring,
+            $codefile);
+        $target_upgrade_code = installer::windows::idtglobal::get_language_string_from_language_block(
+            $codeblock,
+            $onelanguage,
+            "");
+    }
+    # else use the previously generated upgrade code.
+
     $installer::globals::productcode = $target_product_code;
     $installer::globals::upgradecode = $target_upgrade_code;
     $allvariableshashref->{'PRODUCTCODE'} = $target_product_code;