Author: arielch
Date: Wed Sep 14 05:16:34 2016
New Revision: 1760629

URL: http://svn.apache.org/viewvc?rev=1760629&view=rev
Log:
i127100 - Build Windows installer with NSIS >= 3.0

Modified:
    openoffice/branches/AOO413/main/configure.in
    
openoffice/branches/AOO413/main/setup_native/source/win32/nsis/downloadtemplate.nsi
    openoffice/branches/AOO413/main/solenv/bin/modules/installer/download.pm
    openoffice/branches/AOO413/main/solenv/bin/modules/installer/globals.pm
    
openoffice/branches/AOO413/main/solenv/bin/modules/installer/simplepackage.pm

Modified: openoffice/branches/AOO413/main/configure.in
URL: 
http://svn.apache.org/viewvc/openoffice/branches/AOO413/main/configure.in?rev=1760629&r1=1760628&r2=1760629&view=diff
==============================================================================
--- openoffice/branches/AOO413/main/configure.in (original)
+++ openoffice/branches/AOO413/main/configure.in Wed Sep 14 05:16:34 2016
@@ -5545,6 +5545,23 @@ if test "$_os" = "WINNT" ; then
         NSIS_PATH=`cygpath -d "$NSIS_PATH"`
         NSIS_PATH=`cygpath -u "$NSIS_PATH"`
         AC_MSG_RESULT([found ($NSIS_PATH)])
+               AC_MSG_CHECKING([whether NSIS version is >= 3.*])
+               nsis_version_string=`"$NSIS_PATH/makensis.exe" /VERSION | $SED 
-e s/^v//i`
+        nsis_version_major=`echo $nsis_version_string | cut -d. -f1`
+               nsis_version_minor=`echo $nsis_version_string | cut -d. -f2`
+               if test "$nsis_version_major" -ge "3"; then
+                       AC_MSG_RESULT([found NSIS 
$nsis_version_major.$nsis_version_minor >= 3.*])
+                       AC_MSG_CHECKING([whether NSIS was compiled with Unicode 
support])
+                       if echo `"$NSIS_PATH/makensis.exe" /HDRINFO` | $EGREP  
"\bNSIS_UNICODE_MAKENSIS\b" 2>&1 >/dev/null; then
+                               AC_MSG_RESULT([NSIS version compiled with 
Unicode support.])
+                       else
+                               NSIS_PATH=""
+                               AC_MSG_WARN([NSIS version compiled without 
Unicode support, no self contained installer will be build.])
+                       fi
+               else
+                       NSIS_PATH=""
+                       AC_MSG_WARN([NSIS version found is < 3.*, no self 
contained installer will be build.])
+               fi
     fi
 fi
 AC_SUBST(NSIS_PATH)

Modified: 
openoffice/branches/AOO413/main/setup_native/source/win32/nsis/downloadtemplate.nsi
URL: 
http://svn.apache.org/viewvc/openoffice/branches/AOO413/main/setup_native/source/win32/nsis/downloadtemplate.nsi?rev=1760629&r1=1760628&r2=1760629&view=diff
==============================================================================
--- 
openoffice/branches/AOO413/main/setup_native/source/win32/nsis/downloadtemplate.nsi
 (original)
+++ 
openoffice/branches/AOO413/main/setup_native/source/win32/nsis/downloadtemplate.nsi
 Wed Sep 14 05:16:34 2016
@@ -3,6 +3,9 @@
 !define PRODUCT_PUBLISHER "PUBLISHERPLACEHOLDER"
 !define PRODUCT_WEB_SITE "WEBSITEPLACEHOLDER"
 
+; Enable Unicode
+Unicode true
+
 ; SetCompressor lzma
 SetCompressor zlib
 
@@ -212,59 +215,44 @@ FunctionEnd
 !insertmacro MUI_PAGE_DIRECTORY
 !insertmacro MUI_PAGE_INSTFILES
 
-#231#!macro MUI_LANGUAGE_PACK LANGUAGE
-#231#  !verbose push
-#231#  !verbose ${MUI_VERBOSE}
-#231#  !insertmacro MUI_INSERT
-#231#  LoadLanguageFile "NSISPATHPLACEHOLDER\${LANGUAGE}_pack.nlf"
-#231#  ;Set default language file for MUI and backup user setting
-#231#  !ifdef LANGFILE_DEFAULT
-#231#    !define MUI_LANGFILE_DEFAULT_TEMP "${LANGFILE_DEFAULT}"
-#231#    !undef LANGFILE_DEFAULT
-#231#  !endif
-#231#  !define LANGFILE_DEFAULT "${NSISDIR}\Contrib\Language files\English.nsh"
-#231#  ;Include language file
-#231#  !insertmacro LANGFILE_INCLUDE "NSISPATHPLACEHOLDER\${LANGUAGE}_pack.nsh"
-#231#  ;Restore user setting for default language file
-#231#  !undef LANGFILE_DEFAULT
-#231#  !ifdef MUI_LANGFILE_DEFAULT_TEMP
-#231#    !define LANGFILE_DEFAULT "${MUI_LANGFILE_DEFAULT}"
-#231#  !endif
-#231#  ;Add language to list of languages for selection dialog  
-#231#  !ifndef MUI_LANGDLL_LANGUAGES
-#231#   !define MUI_LANGDLL_LANGUAGES "'${LANGFILE_${LANGUAGE}_NAME}' 
'${LANG_${LANGUAGE}}' "
-#231#    !define MUI_LANGDLL_LANGUAGES_CP "'${LANGFILE_${LANGUAGE}_NAME}' 
'${LANG_${LANGUAGE}}' '${LANG_${LANGUAGE}_CP}' "
-#231#  !else
-#231#    !ifdef MUI_LANGDLL_LANGUAGES_TEMP
-#231#      !undef MUI_LANGDLL_LANGUAGES_TEMP
-#231#    !endif
-#231#    !define MUI_LANGDLL_LANGUAGES_TEMP "${MUI_LANGDLL_LANGUAGES}"
-#231#    !undef MUI_LANGDLL_LANGUAGES
-#231#  !ifdef MUI_LANGDLL_LANGUAGES_CP_TEMP
-#231#      !undef MUI_LANGDLL_LANGUAGES_CP_TEMP
-#231#    !endif
-#231#    !define MUI_LANGDLL_LANGUAGES_CP_TEMP "${MUI_LANGDLL_LANGUAGES_CP}"
-#231#    !undef MUI_LANGDLL_LANGUAGES_CP
-#231#    !define MUI_LANGDLL_LANGUAGES "'${LANGFILE_${LANGUAGE}_NAME}' 
'${LANG_${LANGUAGE}}' ${MUI_LANGDLL_LANGUAGES_TEMP}"
-#231#    !define MUI_LANGDLL_LANGUAGES_CP "'${LANGFILE_${LANGUAGE}_NAME}' 
'${LANG_${LANGUAGE}}' '${LANG_${LANGUAGE}_CP}' ${MUI_LANGDLL_LANGUAGES_CP_TEMP}"
-#231#  !endif
-#231#  !verbose pop
-#231#!macroend
-
-#204#!macro MUI_LANGUAGE_PACK LANGUAGE
-#204#  !verbose push
-#204#  !verbose ${MUI_VERBOSE}
-#204#  !include "NSISPATHPLACEHOLDER\${LANGUAGE}_pack.nsh"
-#204#  !verbose pop
-#204#!macroend
-
-#204#!macro MUI_LANGUAGEFILE_PACK_BEGIN LANGUAGE
-#204#  !ifndef MUI_INSERT
-#204#    !define MUI_INSERT
-#204#    !insertmacro MUI_INSERT
-#204#  !endif
-#204#  LoadLanguageFile "NSISPATHPLACEHOLDER\${LANGUAGE}_pack.nlf"
-#204#!macroend
+!macro MUI_LANGUAGE_PACK LANGUAGE
+  !verbose push
+  !verbose ${MUI_VERBOSE}
+  !insertmacro MUI_INSERT
+  LoadLanguageFile "NSISPATHPLACEHOLDER\${LANGUAGE}_pack.nlf"
+  ;Set default language file for MUI and backup user setting
+  !ifdef LANGFILE_DEFAULT
+    !define MUI_LANGFILE_DEFAULT_TEMP "${LANGFILE_DEFAULT}"
+    !undef LANGFILE_DEFAULT
+  !endif
+  !define LANGFILE_DEFAULT "${NSISDIR}\Contrib\Language files\English.nsh"
+  ;Include language file
+  !insertmacro LANGFILE_INCLUDE "NSISPATHPLACEHOLDER\${LANGUAGE}_pack.nsh"
+  ;Restore user setting for default language file
+  !undef LANGFILE_DEFAULT
+  !ifdef MUI_LANGFILE_DEFAULT_TEMP
+    !define LANGFILE_DEFAULT "${MUI_LANGFILE_DEFAULT}"
+  !endif
+  ;Add language to list of languages for selection dialog  
+  !ifndef MUI_LANGDLL_LANGUAGES
+   !define MUI_LANGDLL_LANGUAGES "'${LANGFILE_${LANGUAGE}_NAME}' 
'${LANG_${LANGUAGE}}' "
+    !define MUI_LANGDLL_LANGUAGES_CP "'${LANGFILE_${LANGUAGE}_NAME}' 
'${LANG_${LANGUAGE}}' '${LANG_${LANGUAGE}_CP}' "
+  !else
+    !ifdef MUI_LANGDLL_LANGUAGES_TEMP
+      !undef MUI_LANGDLL_LANGUAGES_TEMP
+    !endif
+    !define MUI_LANGDLL_LANGUAGES_TEMP "${MUI_LANGDLL_LANGUAGES}"
+    !undef MUI_LANGDLL_LANGUAGES
+       !ifdef MUI_LANGDLL_LANGUAGES_CP_TEMP
+      !undef MUI_LANGDLL_LANGUAGES_CP_TEMP
+    !endif
+    !define MUI_LANGDLL_LANGUAGES_CP_TEMP "${MUI_LANGDLL_LANGUAGES_CP}"
+    !undef MUI_LANGDLL_LANGUAGES_CP
+    !define MUI_LANGDLL_LANGUAGES "'${LANGFILE_${LANGUAGE}_NAME}' 
'${LANG_${LANGUAGE}}' ${MUI_LANGDLL_LANGUAGES_TEMP}"
+    !define MUI_LANGDLL_LANGUAGES_CP "'${LANGFILE_${LANGUAGE}_NAME}' 
'${LANG_${LANGUAGE}}' '${LANG_${LANGUAGE}_CP}' ${MUI_LANGDLL_LANGUAGES_CP_TEMP}"
+  !endif
+  !verbose pop
+!macroend
 
 ; Language files
 ALLLANGUAGESPLACEHOLDER

Modified: 
openoffice/branches/AOO413/main/solenv/bin/modules/installer/download.pm
URL: 
http://svn.apache.org/viewvc/openoffice/branches/AOO413/main/solenv/bin/modules/installer/download.pm?rev=1760629&r1=1760628&r2=1760629&view=diff
==============================================================================
--- openoffice/branches/AOO413/main/solenv/bin/modules/installer/download.pm 
(original)
+++ openoffice/branches/AOO413/main/solenv/bin/modules/installer/download.pm 
Wed Sep 14 05:16:34 2016
@@ -902,45 +902,6 @@ sub convert_to_unicode
 }
 
 ##################################################################
-# Windows: Setting nsis version is necessary because of small
-# changes in nsis from version 2.0.4 to 2.3.1 
-##################################################################
-
-sub set_nsis_version
-{
-       my ($nshfile) = @_;
-
-       my $searchstring = "\$\{LangFileString\}"; # occurs only in nsis 2.3.1 
or similar
-       
-       for ( my $i = 0; $i <= $#{$nshfile}; $i++ )
-       {
-               if ( ${$nshfile}[$i] =~ /\Q$searchstring\E/ )
-               {
-                       # this is nsis 2.3.1 or similar
-                       $installer::globals::nsis231 = 1;
-                       $installer::globals::unicodensis = 0;
-                       last;   
-               }
-       }
-       
-       # checking unicode version
-       $searchstring = convert_to_unicode($searchstring);
-
-       for ( my $i = 0; $i <= $#{$nshfile}; $i++ )
-       {
-               if ( ${$nshfile}[$i] =~ /\Q$searchstring\E/ )
-               {
-                       # this is nsis 2.3.1 or similar
-                       $installer::globals::nsis231 = 1;
-                       $installer::globals::unicodensis = 1;
-                       last;   
-               }
-       }
-       
-       if ( ! $installer::globals::nsis231 ) { $installer::globals::nsis204 = 
1; }
-}
-
-##################################################################
 # Windows: Including the product name into nsi template 
 ##################################################################
 
@@ -1115,9 +1076,7 @@ sub put_windows_productpath_into_templat
        if (length($locallangs) > $installer::globals::max_lang_length) { 
$locallangs = "multi lingual"; }
 
        if ( ! $installer::globals::languagepack ) { $productpath = 
$productpath . " (" . $locallangs . ")"; }          
-       
-       # if (( $installer::globals::languagepack ) && ( 
$installer::globals::unicodensis )) { $productpath = 
convert_textstring_to_utf16($productpath, $localnsisdir, "stringhelper.txt"); }
-       
+
        replace_one_variable($templatefile, "PRODUCTPATHPLACEHOLDER", 
$productpath);
 }
 
@@ -1418,12 +1377,6 @@ sub get_language_string_from_language_bl
 sub replace_identifier_in_nshfile
 {
        my ( $nshfile, $identifier, $newstring, $nshfilename, $onelanguage ) = 
@_;
-       
-       if ( $installer::globals::nsis231 )
-       {
-               $newstring =~ s/\\r/\$\\r/g;    # \r -> $\r  in modern nsis 
versions
-               $newstring =~ s/\\n/\$\\n/g;    # \n -> $\n  in modern nsis 
versions
-       }
 
        for ( my $i = 0; $i <= $#{$nshfile}; $i++ )
        {
@@ -1616,17 +1569,9 @@ sub copy_and_translate_nsis_language_fil
                installer::systemactions::copy_one_file($sourcepath, 
$nshfilename);             
 
                # Changing the macro name in nsh file: MUI_LANGUAGEFILE_BEGIN 
-> MUI_LANGUAGEFILE_PACK_BEGIN
-               my $nshfile = installer::files::read_file($nshfilename);
-               set_nsis_version($nshfile);
-               
-               if ( $installer::globals::unicodensis )
-               {
-            $installer::logger::Lang->printf("This is Unicode NSIS!\n");
-                       convert_utf16_to_utf8($nshfilename);
-                       convert_utf16_to_utf8($nlffilename);
-                       $nshfile = installer::files::read_file($nshfilename);   
# read nsh file again
-               }
-
+        convert_utf16_to_utf8($nshfilename);
+        convert_utf16_to_utf8($nlffilename);
+        my $nshfile = installer::files::read_file($nshfilename);
                replace_one_variable($nshfile, "MUI_LANGUAGEFILE_BEGIN", 
"MUI_LANGUAGEFILE_PACK_BEGIN");
 
                # find the ulf file for translation
@@ -1639,11 +1584,8 @@ sub copy_and_translate_nsis_language_fil
                installer::files::save_file($nshfilename, $nshfile);
                installer::files::save_file($nlffilename, $nlffile);
 
-               if ( $installer::globals::unicodensis )
-               {
-                       convert_utf8_to_utf16($nshfilename);
-                       convert_utf8_to_utf16($nlffilename);
-               }
+        convert_utf8_to_utf16($nshfilename);
+        convert_utf8_to_utf16($nlffilename);
        }
 
 }
@@ -1673,83 +1615,20 @@ sub put_output_path_into_template
 }
 
 ##################################################################
-# Windows: Only allow specific code for nsis 2.0.4 or nsis 2.3.1 
-##################################################################
-
-sub put_version_specific_code_into_template
-{
-       my ($templatefile) = @_;
-       
-       my $subst204 = "";
-       my $subst231 = "";
-       
-       if ( $installer::globals::nsis204 )
-       {
-               $subst231 = ";";
-       }
-       else
-       {
-               $subst204 = ";";                
-       }
-
-       replace_one_variable($templatefile, "\#204\#", $subst204);
-       replace_one_variable($templatefile, "\#231\#", $subst231);      
-}
-
-##################################################################
 # Windows: Finding the path to the nsis SDK 
 ##################################################################
 
 sub get_path_to_nsis_sdk
 {
-       my $vol;
-       my $dir;
-       my $file;
        my $nsispath = "";
 
        if ( $ENV{'NSIS_PATH'} )
     {
                $nsispath = $ENV{'NSIS_PATH'};
        }
-    elsif ( $ENV{'SOLARROOT'} )
-    {
-               $nsispath = $ENV{'SOLARROOT'} . $installer::globals::separator 
. "NSIS";
-       }
-    else
-    {
-               # do we have nsis already in path ?
-               my @paths = split(/:/, $ENV{'PATH'});
-               foreach my $path (@paths)
-        {
-            $path =~ s/[\/\\]+$//; # remove trailing slashes;
-                       $nsispath = $path . "/nsis";
-
-                       if ( -x $nsispath )
-            {
-                               $nsispath = $path;
-                               last;
-                       }
-                       else
-            {
-                               $nsispath = "";
-                       }
-               }
-       }
-       if ( $ENV{'NSISSDK_SOURCE'} )
-    {
-           installer::logger::print_warning( "NSISSDK_SOURCE is deprecated. 
use NSIS_PATH instead.\n" );
-        $nsispath = $ENV{'NSISSDK_SOURCE'};    # overriding the NSIS SDK with 
NSISSDK_SOURCE
-    }
-
-#      if( ($^O =~ /cygwin/i) and $nsispath =~ /\\/ ) {
-#              # We need a POSIX path for W32-4nt-cygwin-perl
-#              $nsispath =~ s/\\/\\\\/g;
-#              chomp( $nsispath = qx{cygpath -u "$nsispath"} );
-#      }
-
        if ( $nsispath eq "" )
        {
-        $installer::logger::Info->print("... no Environment variable 
\"SOLARROOT\", \"NSIS_PATH\" or \"NSISSDK_SOURCE\" found and NSIS not found in 
path!\n");
+        $installer::logger::Info->print("... no Environment variable 
\"NSIS_PATH\"!\n");
        }
     elsif ( ! -d $nsispath )
        {
@@ -1840,9 +1719,7 @@ sub replace_variables
 sub get_translation_file
 {
        my ($allvariableshashref) = @_;
-       my $translationfilename = $installer::globals::idtlanguagepath . 
$installer::globals::separator . $installer::globals::nsisfilename;
-       if ( $installer::globals::unicodensis ) { $translationfilename = 
$translationfilename . ".uulf"; }
-       else { $translationfilename = $translationfilename . ".mlf"; }
+       my $translationfilename = $installer::globals::idtlanguagepath . 
$installer::globals::separator . $installer::globals::nsisfilename . ".uulf";
        if ( ! -f $translationfilename ) { 
installer::exiter::exit_program("ERROR: Could not find language file 
$translationfilename!", "get_translation_file"); }
        my $translationfile = installer::files::read_file($translationfilename);
        replace_variables($translationfile, $allvariableshashref);
@@ -2078,7 +1955,6 @@ sub create_download_sets
                put_language_list_into_template($templatefile, 
$languagesarrayref);
                put_nsis_path_into_template($templatefile, $localnsisdir);
                put_output_path_into_template($templatefile, $downloaddir);
-               put_version_specific_code_into_template($templatefile);
        
                my $nsifilename = save_script_file($localnsisdir, 
$templatefilename, $templatefile);
 

Modified: 
openoffice/branches/AOO413/main/solenv/bin/modules/installer/globals.pm
URL: 
http://svn.apache.org/viewvc/openoffice/branches/AOO413/main/solenv/bin/modules/installer/globals.pm?rev=1760629&r1=1760628&r2=1760629&view=diff
==============================================================================
--- openoffice/branches/AOO413/main/solenv/bin/modules/installer/globals.pm 
(original)
+++ openoffice/branches/AOO413/main/solenv/bin/modules/installer/globals.pm Wed 
Sep 14 05:16:34 2016
@@ -447,9 +447,6 @@ BEGIN
        $msiassemblyfiles = "";
        $nsisfilename = "Nsis";
        $macinstallfilename = "macinstall.ulf";
-       $nsis204 = 0;
-       $nsis231 = 0;
-       $unicodensis = 0;
        $linuxlinkrpms = "";
        $extensioninstalldir = "gid_Dir_Share_Extension_Install";
        @languagenames = ();

Modified: 
openoffice/branches/AOO413/main/solenv/bin/modules/installer/simplepackage.pm
URL: 
http://svn.apache.org/viewvc/openoffice/branches/AOO413/main/solenv/bin/modules/installer/simplepackage.pm?rev=1760629&r1=1760628&r2=1760629&view=diff
==============================================================================
--- 
openoffice/branches/AOO413/main/solenv/bin/modules/installer/simplepackage.pm 
(original)
+++ 
openoffice/branches/AOO413/main/solenv/bin/modules/installer/simplepackage.pm 
Wed Sep 14 05:16:34 2016
@@ -173,9 +173,6 @@ sub register_extensions
 sub get_mac_translation_file
 {
        my $translationfilename = $installer::globals::maclangpackfilename;
-       # my $translationfilename = $installer::globals::idtlanguagepath . 
$installer::globals::separator . $installer::globals::maclangpackfilename;
-       # if ( $installer::globals::unicodensis ) { $translationfilename = 
$translationfilename . ".uulf"; }
-       # else { $translationfilename = $translationfilename . ".mlf"; }
        if ( ! -f $translationfilename ) { 
installer::exiter::exit_program("ERROR: Could not find language file 
$translationfilename!", "get_mac_translation_file"); }
        my $translationfile = installer::files::read_file($translationfilename);
 


Reply via email to