[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