[ooo-build-commit] .: bin/unpack patches/dev300

Tor Lillqvist tml at kemper.freedesktop.org
Thu Feb 18 01:31:17 PST 2010


 bin/unpack                          |   22 ++++++++
 patches/dev300/build-fix-win32.diff |   91 +++++++++++++++++++++++++++++++-----
 2 files changed, 101 insertions(+), 12 deletions(-)

New commits:
commit a165e58e1c458d26f66cd003fa69555bb9d7dd66
Author: Tor Lillqvist <tml at iki.fi>
Date:   Thu Feb 18 02:14:33 2010 +0200

    Do include msvcr71.dll, and some MSI build tweaks
    
    Restore code into bin/unpack to look for msvcr71.dll and copyt it into
    external/msvcp71. Always included it on Windows in
    common_brand.scp. Java needs it.
    
    When building the installer and reloading .idt files after editing
    them, for instance MsiAssem.idt (see mergemodule.pm), run msidb on
    just one table at a time. Also, save old files by prefixing with
    "old." in addition to suffixing with ".1", ".2" etc. Either one or
    both of these changes made including the merge assemblies for the VC9
    runtime actually work for me. Why it didn't work for me but works fine
    on the "bill" build machine I don't know. Might be because I have
    turned off 8.3 name generation on the volume where I build OOo.
    
    M	bin/unpack
    M	patches/dev300/build-fix-win32.diff

diff --git a/bin/unpack b/bin/unpack
index 8d561c7..f32effc 100755
--- a/bin/unpack
+++ b/bin/unpack
@@ -154,6 +154,22 @@ if test "z$BUILD_WIN32" != "z"; then
 	fi
     done
 
+     # msvcr71.dll that JRE needs
+     for F in msvcr71.dll; do
+ 	$echo_n "Looking for $SRCDIR/$F ...  $echo_c"
+ 	if test -f $SRCDIR/$F; then
+ 	    echo "ok"
+ 	elif test -f "$WINDIR/system32/$F"; then
+ 	    echo "missing, but copied from $WINDIR/system32"
+ 	    cp "$WINDIR/system32/$F" $SRCDIR
+ 	else
+ 	    echo "missing"
+ 	    echo "You can find it in MSVS .NET 2003."
+ 	    echo "It is needed by JRE"
+ 	    exit 1
+ 	fi
+     done
+ 
     # instmsi?.exe are the installers for Windows Installer 2.0 for
     # Win9x, Windows NT 4 and Windows 2000, that nobody really needs
     # (I hope). But the installer-builder insists on including them
@@ -527,6 +543,12 @@ if test "z$BUILD_WIN32" != "z"; then
 	CommonProgsX86="$COMMONPROGRAMFILES"
     fi
 
+     if test -f $OOBUILDDIR/external/msvcp71/msvcr71.dll; then
+ 	echo "Already have msvcr71.dll"
+     else
+ 	$GNUCP -p $SRCDIR/msvcr71.dll $OOBUILDDIR/external/msvcp71
+     fi
+ 
     if test -f $OOBUILDDIR/external/msm90/Microsoft_VC90_CRT_x86.msm -a \
             -f $OOBUILDDIR/external/msm90/policy_9_0_Microsoft_VC90_CRT_x86.msm; then
 	echo "Already have Microsoft_VC90_CRT_x86.msm and policy_9_0_Microsoft_VC90_CRT_x86.msm"
diff --git a/patches/dev300/build-fix-win32.diff b/patches/dev300/build-fix-win32.diff
index 3ad67cd..e189713 100644
--- a/patches/dev300/build-fix-win32.diff
+++ b/patches/dev300/build-fix-win32.diff
@@ -15,7 +15,7 @@
  #ifndef SYSTEM_REDLAND
 --- scp2/source/ooo/common_brand.scp
 +++ scp2/source/ooo/common_brand.scp
-@@ -504,18 +504,6 @@
+@@ -504,10 +504,7 @@
      Name = "unopkg.bin";
  End
  
@@ -23,17 +23,10 @@
 -    (defined M1310 || \
 -     ((defined M1400 || defined M1500) && \
 -      !(defined SYSTEM_MOZILLA || defined WITHOUT_MOZILLA)))
--File gid_Brand_File_Bin_Msvcr71
--    TXT_FILE_BODY;
--    Dir = gid_Brand_Dir_Program;
--    Name = SCP2_URE_DL_NORMAL("msvcr71" SCP2_STDLP_DEBUG);
--    Styles = (PACKED);
--End
--#endif
--
- // Due to Windows DLL search order, OOo executables might pick up a libxml2 DLL
- // from a Windows system directory instead of the one from the URE; to avoid
- // problems, as a HACK, for now a copy of the URE libxml2 DLL is placed next to
++#ifdef WNT
+ File gid_Brand_File_Bin_Msvcr71
+     TXT_FILE_BODY;
+     Dir = gid_Brand_Dir_Program;
 --- external/prj/d.lst
 +++ external/prj/d.lst
 @@ -34,8 +34,8 @@
@@ -55,3 +48,77 @@
 +Put the msvcp80.dll, msvcr80.dll and Microsoft.VC80.CRT.manifest in this
 +directory for Windows builds using VS 2005, or using prebuilt Mozilla DLLs
 +that were built using VS 2005.
+--- solenv/bin/modules/installer/windows/mergemodule.pm
++++ solenv/bin/modules/installer/windows/mergemodule.pm
+@@ -402,14 +402,14 @@
+             installer::logger::include_timestamp_into_logfile("\nPerformance Info: After merging database");
+             
+             # Saving original idt files
+-            if ( -f "File.idt" ) { installer::systemactions::rename_one_file("File.idt", "File.idt.$counter"); }
+-            if ( -f "Media.idt" ) { installer::systemactions::rename_one_file("Media.idt", "Media.idt.$counter"); }
+-            if ( -f "Directory.idt" ) { installer::systemactions::rename_one_file("Directory.idt", "Directory.idt.$counter"); }
+-            if ( -f "Director.idt" ) { installer::systemactions::rename_one_file("Director.idt", "Director.idt.$counter"); }
+-            if ( -f "FeatureComponents.idt" ) { installer::systemactions::rename_one_file("FeatureComponents.idt", "FeatureComponents.idt.$counter"); }
+-            if ( -f "FeatureC.idt" ) { installer::systemactions::rename_one_file("FeatureC.idt", "FeatureC.idt.$counter"); }
+-            if ( -f "MsiAssembly.idt" ) { installer::systemactions::rename_one_file("MsiAssembly.idt", "MsiAssembly.idt.$counter"); }
+-            if ( -f "MsiAssem.idt" ) { installer::systemactions::rename_one_file("MsiAssem.idt", "MsiAssem.idt.$counter"); }
++            if ( -f "File.idt" ) { installer::systemactions::rename_one_file("File.idt", "old.File.idt.$counter"); }
++            if ( -f "Media.idt" ) { installer::systemactions::rename_one_file("Media.idt", "old.Media.idt.$counter"); }
++            if ( -f "Directory.idt" ) { installer::systemactions::rename_one_file("Directory.idt", "old.Directory.idt.$counter"); }
++            if ( -f "Director.idt" ) { installer::systemactions::rename_one_file("Director.idt", "old.Director.idt.$counter"); }
++            if ( -f "FeatureComponents.idt" ) { installer::systemactions::rename_one_file("FeatureComponents.idt", "old.FeatureComponents.idt.$counter"); }
++            if ( -f "FeatureC.idt" ) { installer::systemactions::rename_one_file("FeatureC.idt", "old.FeatureC.idt.$counter"); }
++            if ( -f "MsiAssembly.idt" ) { installer::systemactions::rename_one_file("MsiAssembly.idt", "old.MsiAssembly.idt.$counter"); }
++            if ( -f "MsiAssem.idt" ) { installer::systemactions::rename_one_file("MsiAssem.idt", "old.MsiAssem.idt.$counter"); }
+             
+             # Extracting tables
+ 
+@@ -478,13 +478,13 @@
+             # merged into the three ExecuteSequences with the following process (also into InstallUISequence.idt). 
+             
+             # Saving original idt files
+-            if ( -f "InstallE.idt" ) { installer::systemactions::rename_one_file("InstallE.idt", "InstallE.idt.$counter"); }
+-            if ( -f "InstallU.idt" ) { installer::systemactions::rename_one_file("InstallU.idt", "InstallU.idt.$counter"); }
+-            if ( -f "AdminExe.idt" ) { installer::systemactions::rename_one_file("AdminExe.idt", "AdminExe.idt.$counter"); }
+-            if ( -f "AdvtExec.idt" ) { installer::systemactions::rename_one_file("AdvtExec.idt", "AdvtExec.idt.$counter"); }
+-            if ( -f "ModuleInstallExecuteSequence.idt" ) { installer::systemactions::rename_one_file("ModuleInstallExecuteSequence.idt", "ModuleInstallExecuteSequence.idt.$counter"); }
+-            if ( -f "ModuleAdminExecuteSequence.idt" ) { installer::systemactions::rename_one_file("ModuleAdminExecuteSequence.idt", "ModuleAdminExecuteSequence.idt.$counter"); }
+-            if ( -f "ModuleAdvtExecuteSequence.idt" ) { installer::systemactions::rename_one_file("ModuleAdvtExecuteSequence.idt", "ModuleAdvtExecuteSequence.idt.$counter"); }
++            if ( -f "InstallE.idt" ) { installer::systemactions::rename_one_file("InstallE.idt", "old.InstallE.idt.$counter"); }
++            if ( -f "InstallU.idt" ) { installer::systemactions::rename_one_file("InstallU.idt", "old.InstallU.idt.$counter"); }
++            if ( -f "AdminExe.idt" ) { installer::systemactions::rename_one_file("AdminExe.idt", "old.AdminExe.idt.$counter"); }
++            if ( -f "AdvtExec.idt" ) { installer::systemactions::rename_one_file("AdvtExec.idt", "old.AdvtExec.idt.$counter"); }
++            if ( -f "ModuleInstallExecuteSequence.idt" ) { installer::systemactions::rename_one_file("ModuleInstallExecuteSequence.idt", "old.ModuleInstallExecuteSequence.idt.$counter"); }
++            if ( -f "ModuleAdminExecuteSequence.idt" ) { installer::systemactions::rename_one_file("ModuleAdminExecuteSequence.idt", "old.ModuleAdminExecuteSequence.idt.$counter"); }
++            if ( -f "ModuleAdvtExecuteSequence.idt" ) { installer::systemactions::rename_one_file("ModuleAdvtExecuteSequence.idt", "old.ModuleAdvtExecuteSequence.idt.$counter"); }
+             
+             # Extracting tables			
+             my $moduleexecutetables = "ModuleInstallExecuteSequence ModuleAdminExecuteSequence ModuleAdvtExecuteSequence"; # new tables
+@@ -561,16 +561,22 @@
+                 my $localworkdir = $workdir;
+                 $localmsifilename =~ s/\//\\\\/g;
+                 $localworkdir =~ s/\//\\\\/g;
+-                $systemcall = $msidb . " -d " . $localmsifilename . " -f " . $localworkdir . " -i " . $workingtables. " " . $executetables;
++		foreach $table (split / /, $workingtables . ' ' . $executetables) {
++		  $systemcall = $msidb . " -d " . $localmsifilename . " -f " . $localworkdir . " -i " . $table;
++		  my $retval = system($systemcall);
++		  $infoline = "Systemcall returned $retval: $systemcall\n";
++		  push( @installer::globals::logfileinfo, $infoline);
++		  $returnvalue |= $retval;
++		}
+             }
+             else
+             {
+                 $systemcall = $msidb . " -d " . $msifilename . " -f " . $workdir . " -i " . $workingtables. " " . $executetables;
+-            }
+-            $returnvalue = system($systemcall);
++		$returnvalue = system($systemcall);
++		$infoline = "Systemcall: $systemcall\n";
++		push( @installer::globals::logfileinfo, $infoline);
+ 
+-            $infoline = "Systemcall: $systemcall\n";
+-            push( @installer::globals::logfileinfo, $infoline);
++            }
+ 
+             if ($returnvalue)
+             {


More information about the ooo-build-commit mailing list