[ooo-build-commit] 2 commits - patches/dev300 patches/lwp

Tor Lillqvist tml at kemper.freedesktop.org
Tue Aug 11 05:10:30 PDT 2009


 patches/dev300/win32-multi-lang-installer.diff | 1054 ++++++++++++-------------
 patches/lwp/lwp-filter-component.diff          |    8 
 2 files changed, 524 insertions(+), 538 deletions(-)

New commits:
commit ada9b2b3d5ffd8ac4a89e70af496c4eed6ae4289
Author: Tor Lillqvist <tlillqvist at novell.com>
Date:   Tue Aug 11 15:09:04 2009 +0300

    Adapt win32-multi-lang-installer.diff for dev300-m54
    
    * patches/dev300/win32-multi-lang-installer.diff: Adapt for dev300-m54.

diff --git a/patches/dev300/win32-multi-lang-installer.diff b/patches/dev300/win32-multi-lang-installer.diff
index 50185e1..87b2a7f 100644
--- a/patches/dev300/win32-multi-lang-installer.diff
+++ b/patches/dev300/win32-multi-lang-installer.diff
@@ -1,534 +1,520 @@
---- ../../../2.0.2-pristine/build/OOO_2_0_2/scp2/source/ooo/file_library_ooo.scp	2006-06-02 13:06:38.003914500 +0000
-+++ scp2/source/ooo/file_library_ooo.scp	2006-05-31 16:15:01.893875000 +0000
-@@ -2168,3 +2168,12 @@
- STD_UNO_LIB_FILE_PATCH( gid_File_Lib_For, for)
- STD_LIB_FILE_PATCH( gid_File_Lib_Forui, forui)
- 
-+
-+#ifdef WNT
-+File gid_File_Lib_sellangmsi
-+    TXT_FILE_BODY;
-+    Styles = (PACKED, BINARYTABLE, BINARYTABLE_ONLY);
-+    Dir = gid_Dir_Program;
-+    Name = "sellangmsi.dll";
-+End
-+#endif
-dummy line to avoid confusing diff-mode
---- scp2/source/ooo/windowscustomaction_ooo.scp
-+++ scp2/source/ooo/windowscustomaction_ooo.scp
-@@ -443,3 +443,11 @@
- 	Assignment1 = ("InstallExecuteSequence", "(Not Installed or ISPATCH) and Not REMOVE=\"ALL\"", "end");
- End
- 
-+WindowsCustomAction gid_Customaction_SelectLanguage
-+	Name = "SelectLanguage";
-+	Typ = "321";
-+	Source = "sellangmsi.dll";
-+	Target = "SelectLanguage";
-+	Inbinarytable = 1;
-+	Assignment1 = ("ControlEvent", "SetupType", "Next", "DoAction", "SelectLanguage", "1", "1");
-+End
---- setup_native/prj/build.lst
-+++ setup_native/prj/build.lst
-@@ -5,6 +5,7 @@
- pk  setup_native\source\win32\customactions\regactivex    nmake   -  w   sn_regactivex NULL
- pk  setup_native\source\win32\customactions\regpatchactivex nmake -  w   sn_regpatchactivex NULL
- pk  setup_native\source\win32\customactions\reg4allmsdoc  nmake   -  w   sn_reg4allmsdoc NULL
-+pk  setup_native\source\win32\customactions\sellang       nmake   -  w   sn_sellang NULL
- pk  setup_native\source\win32\customactions\javafilter    nmake   -  w   sn_javafilter NULL
- pk  setup_native\source\win32\customactions\quickstarter  nmake   -  w   sn_quickstarter NULL
- pk  setup_native\source\win32\customactions\shellextensions nmake   -  w   sn_shellextensions sn_tools.w NULL
---- /dev/null
-+++ setup_native/source/win32/customactions/sellang/exports.dxp	2006-05-31 12:15:54.268875000 +0000
-@@ -0,0 +1 @@
-+SelectLanguage
---- /dev/null
-+++ setup_native/source/win32/customactions/sellang/makefile.mk	2006-05-31 12:13:28.331375000 +0000
-@@ -0,0 +1,80 @@
-+#*************************************************************************
-+#
-+#   OpenOffice.org - a multi-platform office productivity suite
-+#
-+#   The Contents of this file are made available subject to
-+#   the terms of GNU Lesser General Public License Version 2.1.
-+#
-+#
-+#     GNU Lesser General Public License Version 2.1
-+#     =============================================
-+#     Copyright 2005 by Sun Microsystems, Inc.
-+#     901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+#     This library is free software; you can redistribute it and/or
-+#     modify it under the terms of the GNU Lesser General Public
-+#     License version 2.1, as published by the Free Software Foundation.
-+#
-+#     This library 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 for more details.
-+#
-+#     You should have received a copy of the GNU Lesser General Public
-+#     License along with this library; if not, write to the Free Software
-+#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+#     MA  02111-1307  USA
-+#
-+#*************************************************************************
-+
-+PRJ=..$/..$/..$/..
-+PRJNAME=setup_native
-+TARGET=sellangmsi
-+
-+.IF "$(GUI)"=="WNT"
-+
-+# --- Settings -----------------------------------------------------
-+
-+ENABLE_EXCEPTIONS=TRUE
-+NO_DEFAULT_STL=TRUE
-+DYNAMIC_CRT=
-+USE_DEFFILE=TRUE
-+
-+.INCLUDE : settings.mk
-+
-+CFLAGS+=-D_STLP_USE_STATIC_LIB
-+
-+# --- Files --------------------------------------------------------
-+
-+UWINAPILIB=
-+
-+SLOFILES = \
-+	$(SLO)$/sellang.obj
-+
-+SHL1STDLIBS=	kernel32.lib\
-+				user32.lib\
-+				advapi32.lib\
-+				shell32.lib\
-+				msi.lib\
-+				$(LIBSTLPORTST)								
-+
-+SHL1LIBS = $(SLB)$/$(TARGET).lib 
-+
-+SHL1TARGET = $(TARGET)
-+SHL1IMPLIB = i$(TARGET)
-+
-+SHL1DEF = $(MISC)$/$(SHL1TARGET).def
-+SHL1DEPN = $(SLB)$/$(TARGET).lib
-+SHL1BASE = 0x1c000000
-+DEF1NAME=$(SHL1TARGET)
-+DEF1EXPORTFILE=exports.dxp
-+
-+# --- Targets --------------------------------------------------------------
-+
-+.INCLUDE : target.mk
-+
-+# -------------------------------------------------------------------------
-+
-+
-+.ENDIF
-+
---- /dev/null
-+++ setup_native/source/win32/customactions/sellang/sellang.cxx	2006-06-02 09:13:53.893875000 +0000
-@@ -0,0 +1,347 @@
-+/*************************************************************************
-+ *
-+ *  OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ *  The Contents of this file are made available subject to
-+ *  the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ *    GNU Lesser General Public License Version 2.1
-+ *    =============================================
-+ *    Copyright 2005 by Sun Microsystems, Inc.
-+ *    901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ *    This library is free software; you can redistribute it and/or
-+ *    modify it under the terms of the GNU Lesser General Public
-+ *    License version 2.1, as published by the Free Software Foundation.
-+ *
-+ *    This library 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 for more details.
-+ *
-+ *    You should have received a copy of the GNU Lesser General Public
-+ *    License along with this library; if not, write to the Free Software
-+ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ *    MA  02111-1307  USA
-+ *
-+ ************************************************************************/
-+
-+#define WIN32_LEAN_AND_MEAN
-+#define _WIN32_WINNT 0x0500
-+#undef WINVER
-+#define WINVER 0x0500
-+
-+#pragma warning(push, 1) /* disable warnings within system headers as
-+                          * warnings are now treated as errors...
-+                          */
-+#include <windows.h>
-+#include <msiquery.h>
-+#include <malloc.h>
-+
-+#ifdef UNICODE
-+#define _UNICODE
-+#define _tstring	wstring
-+#else
-+#define _tstring	string
-+#endif
-+#include <tchar.h>
-+#include <string>
-+#include <stdio.h>
-+#pragma warning(pop)
-+
-+#include <systools/win32/uwinapi.h>
-+
-+/* #define VERBOSE_DEBUG_OUTPUT 1 */
-+
-+static const char *
-+langid_to_string( LANGID langid, int *have_default_lang )
-+{
-+	/* Map from LANGID to string. The languages below are in the same
-+	 * seemingly random order as in
-+	 * setup_native/source/win32/msi-encodinglist.txt.
-+	 * Only the language part is returned in the string.
-+	 */
-+	switch (PRIMARYLANGID (langid)) {
-+	case LANG_ENGLISH:
-+		if (have_default_lang != NULL &&
-+		    langid == MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT))
-+			*have_default_lang = 1;
-+		return "en";
-+#define CASE(primary, name) \
-+		case LANG_##primary: return #name
-+	CASE(PORTUGUESE, pt);
-+	CASE(RUSSIAN, ru);
-+	CASE(GREEK, el);
-+	CASE(DUTCH, nl);
-+	CASE(FRENCH, fr);
-+	CASE(SPANISH, es);
-+	CASE(FINNISH, fi);
-+	CASE(HUNGARIAN, hu);
-+	CASE(CATALAN, ca);
-+	CASE(ITALIAN, it);
-+	CASE(CZECH, cs);
-+	CASE(SLOVAK, sk);
-+	CASE(DANISH, da);
-+	CASE(SWEDISH, sv);
-+	CASE(POLISH, pl);
-+	CASE(GERMAN, de);
-+	CASE(THAI, th);
-+	CASE(ESTONIAN, et);
-+	CASE(JAPANESE, ja);
-+	CASE(KOREAN, ko);
-+	// CASE(KHMER, km);
-+	// CASE(WELSH, cy);
-+	CASE(CHINESE, zh);
-+	CASE(TURKISH, tr);
-+	CASE(HINDI, hi);
-+	CASE(PUNJABI, pa);
-+	CASE(TAMIL, ta);
-+	CASE(ARABIC, ar);
-+	CASE(HEBREW, he);
-+	CASE(AFRIKAANS, af);
-+	CASE(ALBANIAN, sq);
-+	CASE(ARMENIAN, hy);
-+	CASE(BASQUE, eu);
-+	CASE(BELARUSIAN, be);
-+	CASE(BENGALI, bn);
-+	CASE(BULGARIAN, bg);
-+	CASE(ICELANDIC, is);
-+	CASE(INDONESIAN, id);
-+	// CASE(LAO, lo);
-+	CASE(LATVIAN, lv);
-+	CASE(LITHUANIAN, lt);
-+	// CASE(MALTESE, mt);
-+	// CASE(ROMANSH, rm);
-+	CASE(ROMANIAN, ro);
-+	// CASE(KINYARWANDA, rw);
-+	CASE(SANSKRIT, sa);
-+	// CASE(SETSWANA, tn);
-+	CASE(FARSI, fa);
-+	CASE(FAEROESE, fo);
-+	CASE(SLOVENIAN, sl);
-+	// CASE(SORBIAN, sb);
-+	// CASE(SUTU, st);
-+	CASE(SWAHILI, sw);
-+	CASE(TATAR, tt);
-+	// CASE(TSONGA, ts);
-+	CASE(UKRAINIAN, uk);
-+	CASE(URDU, ur);
-+	CASE(VIETNAMESE, vi);
-+	// CASE(XHOSA, xh);
-+	// CASE(YIDDISH, yi);
-+	// CASE(ZULU, zu);
-+	CASE(GUJARATI, gu);
-+	// CASE(BRETON, br);
-+	CASE(NEPALI, ne);
-+	// CASE(NDEBELE, nr);
-+	// CASE(SWAZI, ss);
-+	// CASE(VENDA, ve);
-+	// CASE(IRISH, ga);
-+	CASE(MACEDONIAN, mk);
-+	CASE(TELUGU, te);
-+	CASE(MALAYALAM, ml);
-+	CASE(MARATHI, mr);
-+	CASE(ORIYA, or);
-+	// CASE(KURDISH, ku);
-+	// CASE(TAGALOG, tg);
-+	// CASE(TIGRINYA, ti);
-+	CASE(GALICIAN, gl);
-+	CASE(KANNADA, kn);
-+	CASE(MALAY, ms);
-+	// CASE(TAJIK, tg);
-+	CASE(GEORGIAN, ka);
-+	// CASE(ESPERANTO, eo);
-+#undef CASE
-+	/* Special cases */
-+	default:
-+		switch (langid) {
-+		case MAKELANGID(LANG_SERBIAN, 0x05): return "bs";
-+#define CASE(primary, sub, name) \
-+		case MAKELANGID(LANG_##primary, SUBLANG_##sub): return #name
-+		
-+		CASE(NORWEGIAN, NORWEGIAN_BOKMAL, nb);
-+		CASE(NORWEGIAN, NORWEGIAN_NYNORSK, nn);
-+		CASE(SERBIAN, DEFAULT, hr);
-+		CASE(SERBIAN, SERBIAN_LATIN, sh);
-+		CASE(SERBIAN, SERBIAN_CYRILLIC, sr);
-+		// CASE(SOTHO, DEFAULT, ns);
-+		// CASE(SOTHO, SOTHO_SOUTHERN, st);
-+#undef CASE
-+		default: return "";
-+		}
-+	}
-+}
-+
-+static const char *ui_langs[100];
-+static int num_ui_langs = 0;
-+
-+BOOL CALLBACK
-+enum_ui_lang_proc (LPTSTR language, LONG_PTR /* unused_lParam */)
-+{
-+	long langid = strtol(language, NULL, 16);
-+	if (langid > 0xFFFF)
-+		return TRUE;
-+	ui_langs[num_ui_langs] = langid_to_string((LANGID) langid, NULL);
-+	num_ui_langs++;
-+	if (num_ui_langs == sizeof(ui_langs) / sizeof(ui_langs[0]))
-+		return FALSE;
-+	return TRUE;
-+}
-+
-+static BOOL
-+present_in_ui_langs(const char *lang)
-+{
-+	for (int i = 0; i < num_ui_langs; i++)
-+		if (memcmp (ui_langs[i], lang, 2) == 0)
-+			return TRUE;
-+	return FALSE;
-+}
-+
-+extern "C" UINT __stdcall SelectLanguage( MSIHANDLE handle )
-+{
-+#ifdef VERBOSE_DEBUG_OUTPUT
-+	char tem[2000];
-+#endif
-+	char feature[100];
-+	MSIHANDLE database, view, record;
-+	DWORD length;
-+	int nlangs = 0;
-+	/* Keeping this code simple and stupid... won't bother with any
-+	 * dynamic arrays or whatnot. 100 is more than enough for this purpose.
-+	 */
-+	char langs[100][6];
-+
-+	database = MsiGetActiveDatabase(handle);
-+
-+	if (MsiDatabaseOpenViewA(database, "SELECT Feature from Feature WHERE Feature_Parent = 'gm_Langpack_Languageroot'", &view) != ERROR_SUCCESS) {
-+		MsiCloseHandle(database);
-+		return ERROR_SUCCESS;
-+	}
-+
-+#ifdef VERBOSE_DEBUG_OUTPUT
-+	MessageBoxA(NULL, "MsiDatabaseOpenViewA success!", "SelectLanguage", MB_OK);
-+#endif
-+
-+	if (MsiViewExecute(view, NULL) != ERROR_SUCCESS) {
-+		MsiCloseHandle(view);
-+		MsiCloseHandle(database);
-+		return ERROR_SUCCESS;
-+	}
-+
-+#ifdef VERBOSE_DEBUG_OUTPUT
-+	MessageBoxA(NULL, "MsiViewExecute success!", "SelectLanguage", MB_OK);
-+#endif
-+
-+	while (MsiViewFetch(view, &record) == ERROR_SUCCESS) {
-+		length = sizeof(feature);
-+		if (MsiRecordGetStringA(record, 1, feature, &length) != ERROR_SUCCESS) {
-+			MsiCloseHandle(record);
-+			MsiCloseHandle(view);
-+			MsiCloseHandle(database);
-+			return ERROR_SUCCESS;
-+		}
-+
-+		/* Keep track of what languages are included in this installer, if
-+		 * it is a multilanguage one.
-+		 */
-+		if (strcmp(feature, "gm_Langpack_r_en_US") != 0)
-+			strcpy(langs[nlangs++], feature + strlen("gm_Langpack_r_"));
-+
-+		MsiCloseHandle(record);
-+	}
-+
-+	MsiCloseHandle(view);
-+
-+	if (nlangs > 0) {
-+		/* Deselect those languages that don't match any of the UI languages
-+		 * available on the system.
-+		 */
-+
-+		int i;
-+		int have_system_default_lang = 0;
-+		const char *system_default_lang = langid_to_string(GetSystemDefaultUILanguage(), &have_system_default_lang);
-+		const char *user_locale_lang = langid_to_string(LANGIDFROMLCID(GetThreadLocale()), NULL);
-+
-+#ifdef VERBOSE_DEBUG_OUTPUT
-+		sprintf(tem, "GetSystemDefaultUILanguage(): %#x = %s", GetSystemDefaultUILanguage(), system_default_lang);
-+		MessageBoxA(NULL, tem, "SelectLanguage", MB_OK);
-+#endif
-+
-+		EnumUILanguagesA(enum_ui_lang_proc, 0, 0);
-+
-+#ifdef VERBOSE_DEBUG_OUTPUT
-+		sprintf(tem, "Have %d UI languages: ", num_ui_langs);
-+		for (i = 0; i < num_ui_langs; i++) {
-+			char *p = tem + strlen(tem);
-+			sprintf(p, "%s%s", 
-+			        ui_langs[i],
-+			        (i + 1 < num_ui_langs) ? ", " : "");
-+		}
-+		MessageBoxA(NULL, tem, "SelectLanguage", MB_OK);
-+#endif
-+
-+		/* If one of the alternative languages in a multi-language installer
-+		 * is the system default UI language, deselect those languages that
-+		 * aren't among the UI languages available on the system.
-+		 * (On most Windows installations, just one UI language is present,
-+		 * which obviously is the same as the default UI language. But
-+		 * we want to be generic.)
-+		 * If none of the languages in a multi-language installer is the
-+		 * system default UI language (this happens now in 2.4.0 where we
-+		 * cannot put as many UI languages into the installer as we would
-+		 * like, but only half a dozen: en-US,de,es,fr,it,pt-BR), pretend 
-+		 * that English is the system default UI language,
-+		 * so that we will by default deselect everything except
-+		 * English. We don't want to by default install all half dozen
-+		 * languages for an unsuspecting user of a Finnish Windows, for
-+		 * instance. Sigh.
-+		 */
-+		if (system_default_lang[0]) {
-+			for (i = 0; i < nlangs; i++) {
-+				if (memcmp (system_default_lang, langs[i], 2) == 0) {
-+#ifdef VERBOSE_DEBUG_OUTPUT
-+					sprintf(tem, "We have the system default language %s in the installer", system_default_lang);
-+					MessageBoxA(NULL, tem, "SelectLanguage", MB_OK);
-+#endif
-+					have_system_default_lang = 1;
-+				}
-+			}
-+		}
-+
-+		if (!have_system_default_lang) {
-+#ifdef VERBOSE_DEBUG_OUTPUT
-+			sprintf(tem, "We don't have the system default language %s in the installer, so pretend that English is the system default, sigh.", system_default_lang);
-+			MessageBoxA(NULL, tem, "SelectLanguage", MB_OK);
-+#endif
-+			system_default_lang = "en";
-+			have_system_default_lang = 1;
-+		}
-+		if (have_system_default_lang) {
-+			for (i = 0; i < nlangs; i++) {
-+				if (memcmp(system_default_lang, langs[i], 2) != 0 &&
-+					memcmp(user_locale_lang, langs[i], 2) != 0 &&
-+					!present_in_ui_langs(langs[i])) {
-+					UINT rc;
-+					sprintf(feature, "gm_Langpack_r_%s", langs[i]);
-+					rc = MsiSetFeatureStateA(handle, feature, INSTALLSTATE_ABSENT); 
-+					if (rc != ERROR_SUCCESS) {
-+#ifdef VERBOSE_DEBUG_OUTPUT
-+						sprintf(tem, "MsiSetFeatureStateA %s failed: %d", feature, rc);
-+						MessageBoxA(NULL, tem, "SelectLanguage", MB_OK);
-+#endif
-+					} else {
-+#ifdef VERBOSE_DEBUG_OUTPUT
-+						sprintf(tem, "MsiSetFeatureStateA %s OK!", feature);
-+						MessageBoxA(NULL, tem, "SelectLanguage", MB_OK);
-+#endif
-+					}
-+				}
-+			}
-+		}
-+	}
-+
-+	MsiCloseHandle(database);
-+
-+	return ERROR_SUCCESS;
-+}
---- solenv/bin/modules/installer/download.pm.orig	2008-06-05 12:22:33.000000000 +0800
-+++ solenv/bin/modules/installer/download.pm	2008-06-05 12:23:44.000000000 +0800
-@@ -827,12 +827,9 @@ sub put_windows_productpath_into_templat
- 	
- 	my $productpath = $variableshashref->{'PROPERTYTABLEPRODUCTNAME'};
- 	
--	my $locallangs = $$languagestringref;
--	$locallangs =~ s/_/ /g;
- 	if (length($locallangs) > $installer::globals::max_lang_length) { $locallangs = "multi lingual"; }
- 
--	if ( ! $installer::globals::languagepack ) { $productpath = $productpath . " (" . $locallangs . ")"; } 		
--	
-+	if ( ! $installer::globals::languagepack ) { $productpath = $productpath . " (" . sprintf('%x', time()) . ")"; }
- 	# if (( $installer::globals::languagepack ) && ( $installer::globals::unicodensis )) { $productpath = convert_textstring_to_utf16($productpath, $localnsisdir, "stringhelper.txt"); }
- 	
- 	replace_one_variable($templatefile, "PRODUCTPATHPLACEHOLDER", $productpath);
-@@ -1041,7 +1041,6 @@
- 	elsif ( $language eq "ja" ) { $nsislanguage = "Japanese"; }
- 	elsif ( $language eq "ko" ) { $nsislanguage = "Korean"; }
- 	elsif ( $language eq "th" ) { $nsislanguage = "Thai"; }
--	elsif ( $language eq "vi" ) { $nsislanguage = "Vietnamese"; }
- 	elsif ( $language eq "zh-CN" ) { $nsislanguage = "SimpChinese"; }
- 	elsif ( $language eq "zh-TW" ) { $nsislanguage = "TradChinese"; }
- 	else { 
---- solenv/bin/modules/installer/windows/update.pm
-+++ solenv/bin/modules/installer/windows/update.pm
-@@ -51,7 +51,9 @@
- 
- 	# Export of all tables by using "*"
- 							
--	$systemcall = $msidb . " -d " . $fulldatabasepath . " -f " . $workdir . " -e \*";
-+	$workdir = qx(cygpath -w $workdir);
-+	chomp ($workdir);
-+	$systemcall = $msidb . " -d " . $fulldatabasepath . " -f '" . $workdir . "' -e \\*";
- 	$returnvalue = system($systemcall);
- 
- 	$infoline = "Systemcall: $systemcall\n";
---- instsetoo_native/util/makefile.mk
-+++ instsetoo_native/util/makefile.mk
-@@ -222,7 +222,7 @@
- openoffice_% :
- .ENDIF			# "$(PKGFORMAT)"!=""
- 	$(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles $(subst,xxx,$(@:e:s/.//) $(PKGFORMATSWITCH) $(VERBOSESWITCH))
--	$(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product OpenOffice --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml > $(MISC)/$(@:b)_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml
-+	$(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product OpenOffice --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml > $(MISC)/`date +%Y%m%d_%H%M`_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml
- 
- .IF "$(PKGFORMAT)"!=""
- $(foreach,i,$(alllangiso) openofficewithjre_$i) : $$@{$(PKGFORMAT:^".")}
-@@ -250,7 +250,7 @@
- openofficedev_% :
- .ENDIF			# "$(PKGFORMAT)"!=""
- 	$(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice_Dev -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles $(subst,xxx,$(@:e:s/.//) $(PKGFORMATSWITCH) $(VERBOSESWITCH))
--	$(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product OpenOffice_Dev --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml > $(MISC)/$(@:b)_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml
-+	$(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product OpenOffice_Dev --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml > $(MISC)/`date +%Y%m%d_%H%M`_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml
- 
- .IF "$(PKGFORMAT)"!=""
- $(foreach,i,$(alllangiso) ooolanguagepack_$i) : $$@{$(PKGFORMAT:^".")}
+--- scp2/source/ooo/file_library_ooo.scp
++++ scp2/source/ooo/file_library_ooo.scp
+@@ -2168,3 +2168,12 @@
+ STD_UNO_LIB_FILE( gid_File_Lib_For, for)
+ STD_LIB_FILE( gid_File_Lib_Forui, forui)
+ 
++
++#ifdef WNT
++File gid_File_Lib_sellangmsi
++    TXT_FILE_BODY;
++    Styles = (PACKED, BINARYTABLE, BINARYTABLE_ONLY);
++    Dir = gid_Dir_Program;
++    Name = "sellangmsi.dll";
++End
++#endif
+--- scp2/source/ooo/windowscustomaction_ooo.scp
++++ scp2/source/ooo/windowscustomaction_ooo.scp
+@@ -443,2 +443,11 @@
+ 	Assignment1 = ("InstallExecuteSequence", "REMOVE=\"ALL\" and Not UPGRADINGPRODUCTCODE", "end");
+ End
++
++WindowsCustomAction gid_Customaction_SelectLanguage
++	Name = "SelectLanguage";
++	Typ = "321";
++	Source = "sellangmsi.dll";
++	Target = "SelectLanguage";
++	Inbinarytable = 1;
++	Assignment1 = ("ControlEvent", "SetupType", "Next", "DoAction", "SelectLanguage", "1", "1");
++End
+--- setup_native/prj/build.lst
++++ setup_native/prj/build.lst
+@@ -5,6 +5,7 @@
+ pk  setup_native\source\win32\customactions\regactivex    nmake   -  w   sn_regactivex NULL
+ pk  setup_native\source\win32\customactions\regpatchactivex nmake -  w   sn_regpatchactivex NULL
+ pk  setup_native\source\win32\customactions\reg4allmsdoc  nmake   -  w   sn_reg4allmsdoc NULL
++pk  setup_native\source\win32\customactions\sellang       nmake   -  w   sn_sellang NULL
+ pk  setup_native\source\win32\customactions\javafilter    nmake   -  w   sn_javafilter NULL
+ pk  setup_native\source\win32\customactions\quickstarter  nmake   -  w   sn_quickstarter NULL
+ pk  setup_native\source\win32\customactions\shellextensions nmake   -  w   sn_shellextensions sn_tools.w NULL
+--- /dev/null
++++ setup_native/source/win32/customactions/sellang/exports.dxp	2006-05-31 12:15:54.268875000 +0000
+@@ -0,0 +1 @@
++SelectLanguage
+--- /dev/null
++++ setup_native/source/win32/customactions/sellang/makefile.mk	2006-05-31 12:13:28.331375000 +0000
+@@ -0,0 +1,80 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library 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 for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++#
++#*************************************************************************
++
++PRJ=..$/..$/..$/..
++PRJNAME=setup_native
++TARGET=sellangmsi
++
++.IF "$(GUI)"=="WNT"
++
++# --- Settings -----------------------------------------------------
++
++ENABLE_EXCEPTIONS=TRUE
++NO_DEFAULT_STL=TRUE
++DYNAMIC_CRT=
++USE_DEFFILE=TRUE
++
++.INCLUDE : settings.mk
++
++CFLAGS+=-D_STLP_USE_STATIC_LIB
++
++# --- Files --------------------------------------------------------
++
++UWINAPILIB=
++
++SLOFILES = \
++	$(SLO)$/sellang.obj
++
++SHL1STDLIBS=	kernel32.lib\
++				user32.lib\
++				advapi32.lib\
++				shell32.lib\
++				msi.lib\
++				$(LIBSTLPORTST)								
++
++SHL1LIBS = $(SLB)$/$(TARGET).lib 
++
++SHL1TARGET = $(TARGET)
++SHL1IMPLIB = i$(TARGET)
++
++SHL1DEF = $(MISC)$/$(SHL1TARGET).def
++SHL1DEPN = $(SLB)$/$(TARGET).lib
++SHL1BASE = 0x1c000000
++DEF1NAME=$(SHL1TARGET)
++DEF1EXPORTFILE=exports.dxp
++
++# --- Targets --------------------------------------------------------------
++
++.INCLUDE : target.mk
++
++# -------------------------------------------------------------------------
++
++
++.ENDIF
++
+--- /dev/null
++++ setup_native/source/win32/customactions/sellang/sellang.cxx	2006-06-02 09:13:53.893875000 +0000
+@@ -0,0 +1,347 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library 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 for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#define WIN32_LEAN_AND_MEAN
++#define _WIN32_WINNT 0x0500
++#undef WINVER
++#define WINVER 0x0500
++
++#pragma warning(push, 1) /* disable warnings within system headers as
++                          * warnings are now treated as errors...
++                          */
++#include <windows.h>
++#include <msiquery.h>
++#include <malloc.h>
++
++#ifdef UNICODE
++#define _UNICODE
++#define _tstring	wstring
++#else
++#define _tstring	string
++#endif
++#include <tchar.h>
++#include <string>
++#include <stdio.h>
++#pragma warning(pop)
++
++#include <systools/win32/uwinapi.h>
++
++/* #define VERBOSE_DEBUG_OUTPUT 1 */
++
++static const char *
++langid_to_string( LANGID langid, int *have_default_lang )
++{
++	/* Map from LANGID to string. The languages below are in the same
++	 * seemingly random order as in
++	 * setup_native/source/win32/msi-encodinglist.txt.
++	 * Only the language part is returned in the string.
++	 */
++	switch (PRIMARYLANGID (langid)) {
++	case LANG_ENGLISH:
++		if (have_default_lang != NULL &&
++		    langid == MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT))
++			*have_default_lang = 1;
++		return "en";
++#define CASE(primary, name) \
++		case LANG_##primary: return #name
++	CASE(PORTUGUESE, pt);
++	CASE(RUSSIAN, ru);
++	CASE(GREEK, el);
++	CASE(DUTCH, nl);
++	CASE(FRENCH, fr);
++	CASE(SPANISH, es);
++	CASE(FINNISH, fi);
++	CASE(HUNGARIAN, hu);
++	CASE(CATALAN, ca);
++	CASE(ITALIAN, it);
++	CASE(CZECH, cs);
++	CASE(SLOVAK, sk);
++	CASE(DANISH, da);
++	CASE(SWEDISH, sv);
++	CASE(POLISH, pl);
++	CASE(GERMAN, de);
++	CASE(THAI, th);
++	CASE(ESTONIAN, et);
++	CASE(JAPANESE, ja);
++	CASE(KOREAN, ko);
++	// CASE(KHMER, km);
++	// CASE(WELSH, cy);
++	CASE(CHINESE, zh);
++	CASE(TURKISH, tr);
++	CASE(HINDI, hi);
++	CASE(PUNJABI, pa);
++	CASE(TAMIL, ta);
++	CASE(ARABIC, ar);
++	CASE(HEBREW, he);
++	CASE(AFRIKAANS, af);
++	CASE(ALBANIAN, sq);
++	CASE(ARMENIAN, hy);
++	CASE(BASQUE, eu);
++	CASE(BELARUSIAN, be);
++	CASE(BENGALI, bn);
++	CASE(BULGARIAN, bg);
++	CASE(ICELANDIC, is);
++	CASE(INDONESIAN, id);
++	// CASE(LAO, lo);
++	CASE(LATVIAN, lv);
++	CASE(LITHUANIAN, lt);
++	// CASE(MALTESE, mt);
++	// CASE(ROMANSH, rm);
++	CASE(ROMANIAN, ro);
++	// CASE(KINYARWANDA, rw);
++	CASE(SANSKRIT, sa);
++	// CASE(SETSWANA, tn);
++	CASE(FARSI, fa);
++	CASE(FAEROESE, fo);
++	CASE(SLOVENIAN, sl);
++	// CASE(SORBIAN, sb);
++	// CASE(SUTU, st);
++	CASE(SWAHILI, sw);
++	CASE(TATAR, tt);
++	// CASE(TSONGA, ts);
++	CASE(UKRAINIAN, uk);
++	CASE(URDU, ur);
++	CASE(VIETNAMESE, vi);
++	// CASE(XHOSA, xh);
++	// CASE(YIDDISH, yi);
++	// CASE(ZULU, zu);
++	CASE(GUJARATI, gu);
++	// CASE(BRETON, br);
++	CASE(NEPALI, ne);
++	// CASE(NDEBELE, nr);
++	// CASE(SWAZI, ss);
++	// CASE(VENDA, ve);
++	// CASE(IRISH, ga);
++	CASE(MACEDONIAN, mk);
++	CASE(TELUGU, te);
++	CASE(MALAYALAM, ml);
++	CASE(MARATHI, mr);
++	CASE(ORIYA, or);
++	// CASE(KURDISH, ku);
++	// CASE(TAGALOG, tg);
++	// CASE(TIGRINYA, ti);
++	CASE(GALICIAN, gl);
++	CASE(KANNADA, kn);
++	CASE(MALAY, ms);
++	// CASE(TAJIK, tg);
++	CASE(GEORGIAN, ka);
++	// CASE(ESPERANTO, eo);
++#undef CASE
++	/* Special cases */
++	default:
++		switch (langid) {
++		case MAKELANGID(LANG_SERBIAN, 0x05): return "bs";
++#define CASE(primary, sub, name) \
++		case MAKELANGID(LANG_##primary, SUBLANG_##sub): return #name
++		
++		CASE(NORWEGIAN, NORWEGIAN_BOKMAL, nb);
++		CASE(NORWEGIAN, NORWEGIAN_NYNORSK, nn);
++		CASE(SERBIAN, DEFAULT, hr);
++		CASE(SERBIAN, SERBIAN_LATIN, sh);
++		CASE(SERBIAN, SERBIAN_CYRILLIC, sr);
++		// CASE(SOTHO, DEFAULT, ns);
++		// CASE(SOTHO, SOTHO_SOUTHERN, st);
++#undef CASE
++		default: return "";
++		}
++	}
++}
++
++static const char *ui_langs[100];
++static int num_ui_langs = 0;
++
++BOOL CALLBACK
++enum_ui_lang_proc (LPTSTR language, LONG_PTR /* unused_lParam */)
++{
++	long langid = strtol(language, NULL, 16);
++	if (langid > 0xFFFF)
++		return TRUE;
++	ui_langs[num_ui_langs] = langid_to_string((LANGID) langid, NULL);
++	num_ui_langs++;
++	if (num_ui_langs == sizeof(ui_langs) / sizeof(ui_langs[0]))
++		return FALSE;
++	return TRUE;
++}
++
++static BOOL
++present_in_ui_langs(const char *lang)
++{
++	for (int i = 0; i < num_ui_langs; i++)
++		if (memcmp (ui_langs[i], lang, 2) == 0)
++			return TRUE;
++	return FALSE;
++}
++
++extern "C" UINT __stdcall SelectLanguage( MSIHANDLE handle )
++{
++#ifdef VERBOSE_DEBUG_OUTPUT
++	char tem[2000];
++#endif
++	char feature[100];
++	MSIHANDLE database, view, record;
++	DWORD length;
++	int nlangs = 0;
++	/* Keeping this code simple and stupid... won't bother with any
++	 * dynamic arrays or whatnot. 100 is more than enough for this purpose.
++	 */
++	char langs[100][6];
++
++	database = MsiGetActiveDatabase(handle);
++
++	if (MsiDatabaseOpenViewA(database, "SELECT Feature from Feature WHERE Feature_Parent = 'gm_Langpack_Languageroot'", &view) != ERROR_SUCCESS) {
++		MsiCloseHandle(database);
++		return ERROR_SUCCESS;
++	}
++
++#ifdef VERBOSE_DEBUG_OUTPUT
++	MessageBoxA(NULL, "MsiDatabaseOpenViewA success!", "SelectLanguage", MB_OK);
++#endif
++
++	if (MsiViewExecute(view, NULL) != ERROR_SUCCESS) {
++		MsiCloseHandle(view);
++		MsiCloseHandle(database);
++		return ERROR_SUCCESS;
++	}
++
++#ifdef VERBOSE_DEBUG_OUTPUT
++	MessageBoxA(NULL, "MsiViewExecute success!", "SelectLanguage", MB_OK);
++#endif
++
++	while (MsiViewFetch(view, &record) == ERROR_SUCCESS) {
++		length = sizeof(feature);
++		if (MsiRecordGetStringA(record, 1, feature, &length) != ERROR_SUCCESS) {
++			MsiCloseHandle(record);
++			MsiCloseHandle(view);
++			MsiCloseHandle(database);
++			return ERROR_SUCCESS;
++		}
++
++		/* Keep track of what languages are included in this installer, if
++		 * it is a multilanguage one.
++		 */
++		if (strcmp(feature, "gm_Langpack_r_en_US") != 0)
++			strcpy(langs[nlangs++], feature + strlen("gm_Langpack_r_"));
++
++		MsiCloseHandle(record);
++	}
++
++	MsiCloseHandle(view);
++
++	if (nlangs > 0) {
++		/* Deselect those languages that don't match any of the UI languages
++		 * available on the system.
++		 */
++
++		int i;
++		int have_system_default_lang = 0;
++		const char *system_default_lang = langid_to_string(GetSystemDefaultUILanguage(), &have_system_default_lang);
++		const char *user_locale_lang = langid_to_string(LANGIDFROMLCID(GetThreadLocale()), NULL);
++
++#ifdef VERBOSE_DEBUG_OUTPUT
++		sprintf(tem, "GetSystemDefaultUILanguage(): %#x = %s", GetSystemDefaultUILanguage(), system_default_lang);
++		MessageBoxA(NULL, tem, "SelectLanguage", MB_OK);
++#endif
++
++		EnumUILanguagesA(enum_ui_lang_proc, 0, 0);
++
++#ifdef VERBOSE_DEBUG_OUTPUT
++		sprintf(tem, "Have %d UI languages: ", num_ui_langs);
++		for (i = 0; i < num_ui_langs; i++) {
++			char *p = tem + strlen(tem);
++			sprintf(p, "%s%s", 
++			        ui_langs[i],
++			        (i + 1 < num_ui_langs) ? ", " : "");
++		}
++		MessageBoxA(NULL, tem, "SelectLanguage", MB_OK);
++#endif
++
++		/* If one of the alternative languages in a multi-language installer
++		 * is the system default UI language, deselect those languages that
++		 * aren't among the UI languages available on the system.
++		 * (On most Windows installations, just one UI language is present,
++		 * which obviously is the same as the default UI language. But
++		 * we want to be generic.)
++		 * If none of the languages in a multi-language installer is the
++		 * system default UI language (this happens now in 2.4.0 where we
++		 * cannot put as many UI languages into the installer as we would
++		 * like, but only half a dozen: en-US,de,es,fr,it,pt-BR), pretend 
++		 * that English is the system default UI language,
++		 * so that we will by default deselect everything except
++		 * English. We don't want to by default install all half dozen
++		 * languages for an unsuspecting user of a Finnish Windows, for
++		 * instance. Sigh.
++		 */
++		if (system_default_lang[0]) {
++			for (i = 0; i < nlangs; i++) {
++				if (memcmp (system_default_lang, langs[i], 2) == 0) {
++#ifdef VERBOSE_DEBUG_OUTPUT
++					sprintf(tem, "We have the system default language %s in the installer", system_default_lang);
++					MessageBoxA(NULL, tem, "SelectLanguage", MB_OK);
++#endif
++					have_system_default_lang = 1;
++				}
++			}
++		}
++
++		if (!have_system_default_lang) {
++#ifdef VERBOSE_DEBUG_OUTPUT
++			sprintf(tem, "We don't have the system default language %s in the installer, so pretend that English is the system default, sigh.", system_default_lang);
++			MessageBoxA(NULL, tem, "SelectLanguage", MB_OK);
++#endif
++			system_default_lang = "en";
++			have_system_default_lang = 1;
++		}
++		if (have_system_default_lang) {
++			for (i = 0; i < nlangs; i++) {
++				if (memcmp(system_default_lang, langs[i], 2) != 0 &&
++					memcmp(user_locale_lang, langs[i], 2) != 0 &&
++					!present_in_ui_langs(langs[i])) {
++					UINT rc;
++					sprintf(feature, "gm_Langpack_r_%s", langs[i]);
++					rc = MsiSetFeatureStateA(handle, feature, INSTALLSTATE_ABSENT); 
++					if (rc != ERROR_SUCCESS) {
++#ifdef VERBOSE_DEBUG_OUTPUT
++						sprintf(tem, "MsiSetFeatureStateA %s failed: %d", feature, rc);
++						MessageBoxA(NULL, tem, "SelectLanguage", MB_OK);
++#endif
++					} else {
++#ifdef VERBOSE_DEBUG_OUTPUT
++						sprintf(tem, "MsiSetFeatureStateA %s OK!", feature);
++						MessageBoxA(NULL, tem, "SelectLanguage", MB_OK);
++#endif
++					}
++				}
++			}
++		}
++	}
++
++	MsiCloseHandle(database);
++
++	return ERROR_SUCCESS;
++}
+--- solenv/bin/modules/installer/download.pm.orig	2008-06-05 12:22:33.000000000 +0800
++++ solenv/bin/modules/installer/download.pm	2008-06-05 12:23:44.000000000 +0800
+@@ -827,12 +827,9 @@ sub put_windows_productpath_into_templat
+ 	
+ 	my $productpath = $variableshashref->{'PROPERTYTABLEPRODUCTNAME'};
+ 	
+-	my $locallangs = $$languagestringref;
+-	$locallangs =~ s/_/ /g;
+ 	if (length($locallangs) > $installer::globals::max_lang_length) { $locallangs = "multi lingual"; }
+ 
+-	if ( ! $installer::globals::languagepack ) { $productpath = $productpath . " (" . $locallangs . ")"; } 		
+-	
++	if ( ! $installer::globals::languagepack ) { $productpath = $productpath . " (" . sprintf('%x', time()) . ")"; }
+ 	# if (( $installer::globals::languagepack ) && ( $installer::globals::unicodensis )) { $productpath = convert_textstring_to_utf16($productpath, $localnsisdir, "stringhelper.txt"); }
+ 	
+ 	replace_one_variable($templatefile, "PRODUCTPATHPLACEHOLDER", $productpath);
+@@ -1041,7 +1041,6 @@
+ 	elsif ( $language eq "ja" ) { $nsislanguage = "Japanese"; }
+ 	elsif ( $language eq "ko" ) { $nsislanguage = "Korean"; }
+ 	elsif ( $language eq "th" ) { $nsislanguage = "Thai"; }
+-	elsif ( $language eq "vi" ) { $nsislanguage = "Vietnamese"; }
+ 	elsif ( $language eq "zh-CN" ) { $nsislanguage = "SimpChinese"; }
+ 	elsif ( $language eq "zh-TW" ) { $nsislanguage = "TradChinese"; }
+ 	else { 
+--- instsetoo_native/util/makefile.mk
++++ instsetoo_native/util/makefile.mk
+@@ -222,7 +222,7 @@
+ openoffice_% :
+ .ENDIF			# "$(PKGFORMAT)"!=""
+ 	$(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles $(subst,xxx,$(@:e:s/.//) $(PKGFORMATSWITCH) $(VERBOSESWITCH))
+-	$(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product OpenOffice --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml > $(MISC)/$(@:b)_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml
++	$(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product OpenOffice --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml > $(MISC)/`date +%Y%m%d_%H%M`_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml
+ 
+ .IF "$(PKGFORMAT)"!=""
+ $(foreach,i,$(alllangiso) openofficewithjre_$i) : $$@{$(PKGFORMAT:^".")}
+@@ -250,7 +250,7 @@
+ openofficedev_% :
+ .ENDIF			# "$(PKGFORMAT)"!=""
+ 	$(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice_Dev -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles $(subst,xxx,$(@:e:s/.//) $(PKGFORMATSWITCH) $(VERBOSESWITCH))
+-	$(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product OpenOffice_Dev --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml > $(MISC)/$(@:b)_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml
++	$(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product OpenOffice_Dev --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml > $(MISC)/`date +%Y%m%d_%H%M`_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml
+ 
+ .IF "$(PKGFORMAT)"!=""
+ $(foreach,i,$(alllangiso) ooolanguagepack_$i) : $$@{$(PKGFORMAT:^".")}
commit 723d69aa11b0adfa38f6fd3442e1cf0d28ba7458
Author: Tor Lillqvist <tlillqvist at novell.com>
Date:   Tue Aug 11 14:59:20 2009 +0300

    Adapt lwp-filter-component.diff to dev300-m54
    
    * patches/lwp/lwp-filter-component.diff: Adapt to dev300-m54.

diff --git a/patches/lwp/lwp-filter-component.diff b/patches/lwp/lwp-filter-component.diff
index 4be06ab..96c02c1 100644
--- a/patches/lwp/lwp-filter-component.diff
+++ b/patches/lwp/lwp-filter-component.diff
@@ -722,11 +722,11 @@
      gid_File_Share_Config_Sofficecfg_Writer_Menubar_Xml,
      gid_File_Share_Config_Sofficecfg_Writerweb_Menubar_Xml,
      gid_File_Share_Config_Sofficecfg_Writerglobal_Menubar_Xml,
---- sw/prj/build.lst.old	2009-04-02 10:50:58.000000000 +0000
-+++ sw/prj/build.lst	2009-04-06 16:41:57.000000000 +0000
+--- sw/prj/build.lst
++++ sw/prj/build.lst
 @@ -1,4 +1,4 @@
--sw	sw	:	connectivity OOo:writerperfect svx stoc uui NULL
-+sw	sw	:	connectivity OOo:writerperfect OOo:lotuswordpro svx stoc uui NULL
+-sw	sw	:    l10n connectivity OOo:writerperfect svx stoc uui NULL
++sw	sw	:    l10n connectivity OOo:writerperfect OOo:lotuswordpro svx stoc uui NULL
  sw	sw										usr1	-	all	sw_mkout NULL
  sw	sw\inc									nmake		-	all	sw_inc NULL
  sw	sw\uiconfig\layout									nmake	-	all	sw_layout NULL


More information about the ooo-build-commit mailing list