[ooo-build-commit] 6 commits - bin/fast_merge.pl bin/Makefile.am bin/piece bin/unpack download.in patches/dev300 src/helpcontent2

Petr Mladek pmladek at kemper.freedesktop.org
Fri Oct 23 11:36:07 PDT 2009


 bin/Makefile.am                                    |    1 
 bin/fast_merge.pl                                  |  348 +++++++++++++++++++++
 bin/piece/build-bootstrap                          |    5 
 bin/piece/desktop-support-app                      |    3 
 bin/piece/post-inst-postprocess                    |    3 
 bin/piece/sys-setup.in                             |    2 
 bin/unpack                                         |   20 -
 download.in                                        |    2 
 patches/dev300/apply                               |    7 
 patches/dev300/buildfix-svx-uiconfig-layout.diff   |   11 
 patches/dev300/l10n-build-only-selected-langs.diff |   51 +++
 patches/dev300/piece-binary-path.diff              |  197 +++++++++++
 patches/dev300/piece-connectivity.diff             |   29 +
 patches/dev300/piece-l10n.diff                     |   40 ++
 patches/dev300/piece-offapi.diff                   |   13 
 patches/dev300/piece-rsc.diff                      |   30 +
 patches/dev300/piece-services.diff                 |   12 
 patches/dev300/piece-svx.diff                      |   11 
 patches/dev300/piece-writerfilter.diff             |   11 
 src/helpcontent2/main_transform.xsl                |   11 
 20 files changed, 793 insertions(+), 14 deletions(-)

New commits:
commit 6a048d511e173eb323900cad5d0c9876274ccf21
Author: Petr Mladek <pmladek at suse.cz>
Date:   Fri Oct 23 20:28:42 2009 +0200

    Install startcenter.desktop in the split build (bnc#548534)
    
    * bin/piece/desktop-support-app: install startcenter.desktop also in the split
      build (bnc#548534)

diff --git a/bin/piece/desktop-support-app b/bin/piece/desktop-support-app
index 79f2386..0f0293c 100755
--- a/bin/piece/desktop-support-app
+++ b/bin/piece/desktop-support-app
@@ -92,7 +92,6 @@ case "$app" in
     "fromtemplate")
 	create_wrapper "oofromtemplate" "soffice" "" || exit 1;
 	install_desktop_file template || exit 1;
-	install_icon apps ooo-gulls || exit 1;
 	;;
     "unopkg")
 	create_wrapper unopkg unopkg "" || exit 1;
@@ -103,6 +102,8 @@ case "$app" in
     "ooffice")
 	create_wrapper ooffice soffice "" || exit 1;
 	create_man_link ooffice openoffice || exit 1;
+	install_desktop_file startcenter || exit 1;
+	install_icon apps ooo-gulls || exit 1;
 	install_man openoffice || exit 1;
 	;;
     *)
commit f669e2bdce962aa7bdc516231471fe0541d09ba1
Author: Petr Mladek <pmladek at suse.cz>
Date:   Fri Oct 23 20:19:39 2009 +0200

    Fix tralay call
    
    * patches/dev300/buildfix-svx-uiconfig-layout.diff: tralay must be called
      with AUGMENT_LIBRARY_PATH and absolute path defined
    * patches/dev300/piece-svx.diff: remove the absolute path for the split build
    * patches/dev300/apply: apply the two above diffs

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 948dbe6..eb9b7b1 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -2423,6 +2423,7 @@ layout-default-enable-config_office.diff, janneke
 layout-disable-experimental.diff
 layout-accessibility-dispose-only-once.diff, n#500267, janneke
 buildfix-toolkit-workben-layout.diff
+buildfix-svx-uiconfig-layout.diff
 build-fix-layout-numfmt.diff
 # Fix heavy parallel build of the zips containing the xmls
 layout-parallel-build.diff
diff --git a/patches/dev300/buildfix-svx-uiconfig-layout.diff b/patches/dev300/buildfix-svx-uiconfig-layout.diff
new file mode 100644
index 0000000..b384648
--- /dev/null
+++ b/patches/dev300/buildfix-svx-uiconfig-layout.diff
@@ -0,0 +1,11 @@
+--- svx/uiconfig/layout/layout.mk.old	2009-10-15 14:52:41.000000000 +0200
++++ svx/uiconfig/layout/layout.mk	2009-10-23 20:14:22.000000000 +0200
+@@ -1,7 +1,7 @@
+ # TODO: move to solenv/inc
+ # copies: sw/uiconfig/layout svx/uiconfig/layout
+ 
+-TRALAY=tralay
++TRALAY=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/tralay
+ XML_DEST=$(DLLDEST)
+ XML_LANGS=$(alllangiso)
+ 
diff --git a/patches/dev300/piece-svx.diff b/patches/dev300/piece-svx.diff
index 11b8fb0..3073230 100644
--- a/patches/dev300/piece-svx.diff
+++ b/patches/dev300/piece-svx.diff
@@ -34,3 +34,14 @@
  
  RESLIB1NAME=$(TARGET)
  RESLIB1IMAGES=$(PRJ)$/res $(PRJ)$/source/src
+--- svx/uiconfig/layout/layout.mk	2009-10-23 20:14:22.000000000 +0200
++++ svx/uiconfig/layout/layout.mk.old	2009-10-15 14:52:41.000000000 +0200
+@@ -1,7 +1,7 @@
+ # TODO: move to solenv/inc
+ # copies: sw/uiconfig/layout svx/uiconfig/layout
+ 
+-TRALAY=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/tralay
++TRALAY=$(AUGMENT_LIBRARY_PATH) tralay
+ XML_DEST=$(DLLDEST)
+ XML_LANGS=$(alllangiso)
+ 
commit 133940e639515ee2ed875ac17a53230d4dee983e
Author: Petr Mladek <pmladek at suse.cz>
Date:   Fri Oct 23 19:57:54 2009 +0200

    Download setup_native_packinfo-ooo320-m1.tar.bz2 for split build
    
    * download.in: update to setup_native_packinfo-ooo320-m1.tar.bz2
    * bin/Makefile.am: pack fast_merge.pl

diff --git a/bin/Makefile.am b/bin/Makefile.am
index 251732b..fd4a1ac 100644
--- a/bin/Makefile.am
+++ b/bin/Makefile.am
@@ -12,6 +12,7 @@ script_files = \
 	defuzzpatch \
 	extract-gsi \
 	extract-new-strings \
+	fast_merge.pl \
 	font-munge \
 	fix-deps \
 	generate-bash-completion \
diff --git a/download.in b/download.in
index 2e44e87..7316839 100755
--- a/download.in
+++ b/download.in
@@ -422,7 +422,7 @@ if ( $download_all || ( '@OOO_LANGS@' ne '' && '@OOO_LANGS@' ne 'en-US' ) || '@B
 }
 
 if ('@PIECE@' eq 'bootstrap') {
-   source_file( 'setup_native_packinfo-ooo310-m2.tar.bz2' );
+   source_file( 'setup_native_packinfo-ooo320-m1.tar.bz2' );
 }
 
 if ('@GRAPHITE_SRC@' ne '') {
commit 24a59e7f6d56c27682c292c461921e476b1b748b
Author: Petr Mladek <pmladek at suse.cz>
Date:   Fri Oct 23 19:03:33 2009 +0200

    More fixes to finish the split build with ooo320-m1
    
    * bin/piece/post-inst-postprocess: define PYTHONPATH to registrer the python
      components
    * bin/piece/sys-setup.in: define SOLARSRC that is used for the l10n stuff now
    * bin/unpack: use the updated setup_native_packinfo-ooo320-m1.tar.bz2
    * patches/dev300/piece-binary-path.diff: remove ugly absolute paths
    * patches/dev300/piece-rsc.diff: search rscpp and rsc2 tools via $PATH
    * patches/dev300/piece-connectivity.diff: define right DTD dirs, ...
    * patches/dev300/piece-offapi.diff: path to regview
    * patches/dev300/piece-services.diff: keep .rdb files in source dir
    * patches/dev300/piece-writerfilter.diff: path to namespaces.txt
    * src/helpcontent2/main_transform.xsl: update from ooo320-m1 sources
    * patches/dev300/apply: add piece-binary-path.diff and piece-rsc.diff

diff --git a/bin/piece/post-inst-postprocess b/bin/piece/post-inst-postprocess
index 2fb86f3..18b38cb 100755
--- a/bin/piece/post-inst-postprocess
+++ b/bin/piece/post-inst-postprocess
@@ -24,6 +24,9 @@ UNO_JAVA_JFW_VENDOR_SETTINGS=file://$OO_INSTDIR/ure/share/misc/javavendors.xml
 EOT
 export JVMFWK_CONFIGFILE=file://`pwd`/jvmfwk3rc
 
+# needed to register python components
+export PYTHONPATH=$OO_INSTDIR/basis$VERSION/program
+
 $OO_TOOLSDIR/piece/install-generic $piece $ooo_build_tag
 # urgh - unbelievably nasty:
 cp -a OpenOffice/gid_Starregistry_Services_Rdb_rdb/*/services.rdb \
diff --git a/bin/piece/sys-setup.in b/bin/piece/sys-setup.in
index 6ea823e..b2090ad 100755
--- a/bin/piece/sys-setup.in
+++ b/bin/piece/sys-setup.in
@@ -50,6 +50,8 @@ SRC_ROOT=`pwd`
 #  new local solver
 export SOLARPIECEVERSION="$SRC_ROOT/solver"
 export SOLARPIECE="$SOLARPIECEVERSION"
+# FIXME: we should this variable in the OOo sources
+export SOLARSRC="$SRC_ROOT"
 
 # system solver bits ...
 export SOLARVER="$DEV_DIR"
diff --git a/bin/unpack b/bin/unpack
index 665a638..011c68b 100755
--- a/bin/unpack
+++ b/bin/unpack
@@ -272,7 +272,7 @@ if test "z$OOO_GIT" = "z" ; then
             fi
             # ugly hack around odd positioning of this info
             echo "Unpacking setup_native .txt pieces"
-            ($OOO_DECOMPRESS_CMD $SRCDIR/setup_native_packinfo-ooo310-m2.tar.bz2 | $GNUTAR xpf - ) || exit
+            ($OOO_DECOMPRESS_CMD $SRCDIR/setup_native_packinfo-ooo320-m1.tar.bz2 | $GNUTAR xpf - ) || exit
 	fi
     fi
 else
diff --git a/patches/dev300/apply b/patches/dev300/apply
index 919df99..948dbe6 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -2855,6 +2855,7 @@ SectionOwner => michael
 piece-build.diff
 piece-deliver.diff
 piece-checkdll.diff
+piece-binary-path.diff
 [ PieceBits >= dev300-m61 >= ooo320-m1 ]
 piece-target.diff
 [ PieceBits < dev300-m61 < ooo320-m1 ]
@@ -2885,6 +2886,7 @@ piece-javaunohelper.diff
 piece-io.diff
 piece-l10n.diff
 piece-remotebridges.diff
+piece-rsc.diff
 piece-scp2.diff
 piece-solenv.diff
 piece-services.diff
diff --git a/patches/dev300/piece-binary-path.diff b/patches/dev300/piece-binary-path.diff
new file mode 100644
index 0000000..c2acc45
--- /dev/null
+++ b/patches/dev300/piece-binary-path.diff
@@ -0,0 +1,197 @@
+--- solenv/inc/settings.mk
++++ solenv/inc/settings.mk
+@@ -716,7 +693,7 @@ CLASSDIR=$(OUT)/class
+ CLASSPATH!:=.$(PATH_SEPERATOR)$(CLASSDIR)$(PATH_SEPERATOR)$(CLASSPATH)
+ STARJAR=java -classpath $(CLASSPATH)$(PATH_SEPERATOR)$(SOLARENV)/bin/jtools.jar com.sun.star.tool.starjar.StarJar
+ 
+-STARDEP=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/javadep
++STARDEP=$(AUGMENT_LIBRARY_PATH) javadep
+ .IF "$(PRJNAME)"=="sj2"
+ CLASSPATH!:=$(CLASSPATH:s/sj2/no/)
+ .ENDIF
+@@ -958,7 +960,7 @@ MKDEPFLAGS+=$(MKDEPLOCAL)
+ BISON=bison
+ YACCFLAGS*=-d 
+ 
+-SVIDL=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/svidl
++SVIDL=$(AUGMENT_LIBRARY_PATH) svidl
+ 
+ LDUMP2*=$(SOLARBINDIR)/ldump4
+ 
+@@ -974,9 +976,9 @@ SCPLINKFLAGS+=-v $(SCPLINKVERSION)
+ .ENDIF			# "$(SCPLINKVERSION)"!=""
+ 
+ .IF "$(make_srs_deps)"!=""
+-RSC=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/rscdep
++RSC=$(AUGMENT_LIBRARY_PATH) rscdep
+ .ELSE # "$(make_srs_deps)"!=""
+-RSC=$(AUGMENT_LIBRARY_PATH) $(FLIPCMD) $(SOLARBINDIR)/rsc
++RSC=$(AUGMENT_LIBRARY_PATH) $(FLIPCMD) rsc
+ .ENDIF # "$(make_srs_deps)"!=""
+ 
+ .IF "$(VERBOSE)" == "TRUE"
+@@ -1054,19 +1054,19 @@ MAXPROCESS!:=1
+ # allow seperate handling
+ EXTMAXPROCESS*=$(MAXPROCESS)
+ 
+-IDLC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/idlc
+-REGMERGE*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/regmerge
+-REGCOMPARE*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/regcompare
+-REGCOMP*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/regcomp
+-CPPUMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cppumaker
+-JAVAMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/javamaker
+-RDBMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/rdbmaker
+-CLIMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/climaker
+-
+-TESTSHL2=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/testshl2
+-HELPEX=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/helpex
+-LNGCONVEX=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/lngconvex
+-HELPLINKER=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/HelpLinker
++IDLC*=$(AUGMENT_LIBRARY_PATH) idlc
++REGMERGE*=$(AUGMENT_LIBRARY_PATH) regmerge
++REGCOMPARE*=$(AUGMENT_LIBRARY_PATH) regcompare
++REGCOMP*=$(AUGMENT_LIBRARY_PATH) regcomp
++CPPUMAKER*=$(AUGMENT_LIBRARY_PATH) cppumaker
++JAVAMAKER*=$(AUGMENT_LIBRARY_PATH) javamaker
++RDBMAKER*=$(AUGMENT_LIBRARY_PATH) rdbmaker
++CLIMAKER*=$(AUGMENT_LIBRARY_PATH) climaker
++
++TESTSHL2=$(AUGMENT_LIBRARY_PATH) testshl2
++HELPEX=$(AUGMENT_LIBRARY_PATH) helpex
++LNGCONVEX=$(AUGMENT_LIBRARY_PATH) lngconvex
++HELPLINKER=$(AUGMENT_LIBRARY_PATH) HelpLinker
+ 
+ .IF "$(JAVAINTERPRETER)" == ""
+ JAVA*:=java
+@@ -1080,7 +1082,7 @@ JAVA*:=$(JAVAINTERPRETER)
+ SCPCOMP=$(PERL) $(SOLARENV)/bin/pre2par.pl
+ SCPLINK=$(PERL) $(SOLARENV)/bin/par2script.pl
+ LZIP*=lzip
+-CPPLCC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cpplcc
++CPPLCC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cpplcc
+ 
+ .IF "$(DISABLE_ENHANCED_COMID)"==""
+ .INCLUDE : tg_compv.mk
+@@ -1335,47 +1335,47 @@ TRUSTED_MANIFEST_LOCATION*=$(SOLARENV)/i
+ 
+ .IF "$(COMP1TYPELIST)"!=""
+ .INCLUDE .IGNORE : $(MISC)/$(COMP1TYPELIST).mk
+-$(COMP1TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP1TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
++$(COMP1TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) xml2cmp -types stdout $(MISC)/$(COMP1TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
+ .ENDIF
+ 
+ .IF "$(COMP2TYPELIST)"!=""
+ .INCLUDE .IGNORE : $(MISC)/$(COMP2TYPELIST).mk
+-$(COMP2TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP2TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
++$(COMP2TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) xml2cmp -types stdout $(MISC)/$(COMP2TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
+ .ENDIF
+ 
+ .IF "$(COMP3TYPELIST)"!=""
+ .INCLUDE .IGNORE : $(MISC)/$(COMP3TYPELIST).mk
+-$(COMP3TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP3TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
++$(COMP3TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) xml2cmp -types stdout $(MISC)/$(COMP3TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
+ .ENDIF
+ 
+ .IF "$(COMP4TYPELIST)"!=""
+ .INCLUDE .IGNORE : $(MISC)/$(COMP4TYPELIST).mk
+-$(COMP4TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP4TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
++$(COMP4TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) xml2cmp -types stdout $(MISC)/$(COMP4TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
+ .ENDIF
+ 
+ .IF "$(COMP5TYPELIST)"!=""
+ .INCLUDE .IGNORE : $(MISC)/$(COMP5TYPELIST).mk
+-$(COMP5TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP5TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
++$(COMP5TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) xml2cmp -types stdout $(MISC)/$(COMP5TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
+ .ENDIF
+ 
+ .IF "$(COMP6TYPELIST)"!=""
+ .INCLUDE .IGNORE : $(MISC)/$(COMP6TYPELIST).mk
+-$(COMP6TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP6TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
++$(COMP6TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) xml2cmp -types stdout $(MISC)/$(COMP6TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
+ .ENDIF
+ 
+ .IF "$(COMP7TYPELIST)"!=""
+ .INCLUDE .IGNORE : $(MISC)/$(COMP7TYPELIST).mk
+-$(COMP7TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP7TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
++$(COMP7TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) xml2cmp -types stdout $(MISC)/$(COMP7TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
+ .ENDIF
+ 
+ .IF "$(COMP8TYPELIST)"!=""
+ .INCLUDE .IGNORE : $(MISC)/$(COMP8TYPELIST).mk
+-$(COMP8TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP8TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
++$(COMP8TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) xml2cmp -types stdout $(MISC)/$(COMP8TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
+ .ENDIF
+ 
+ .IF "$(COMP9TYPELIST)"!=""
+ .INCLUDE .IGNORE : $(MISC)/$(COMP9TYPELIST).mk
+-$(COMP9TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP9TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
++$(COMP9TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) xml2cmp -types stdout $(MISC)/$(COMP9TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
+ .ENDIF
+ 
+ # some place to define these jars for SO environment
+--- solenv/inc/pstrules.mk.old	2009-10-19 17:42:41.000000000 +0200
++++ solenv/inc/pstrules.mk	2009-10-19 19:40:01.000000000 +0200
+@@ -151,7 +151,7 @@ $(PAR)/%.par :
+     $(CPPLCC) -+ -P -I..\..\inc -I..\..\os2gcci.pro\inc $(CDEFS) $(SCPDEFS) -DDLLPOSTFIX=$(DLLPOSTFIX) $(*:b).scp > $(MISC)$/{$(subst,$(@:d:d:d), $(@:d:d))}$/$(*:b).pre
+ .ENDIF
+ .IF "$(GUI)"=="UNX"
+-    $(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cpp.lcc -+ -P $(CDEFS) $(SCPDEFS) -DDLLPOSTFIX=$(DLLPOSTFIX) -I. -I$(INC) -I$(INCLOCAL) -I$(INCGUI) -I$(INCCOM) $(SOLARINC) $(*:b).scp > $(MISC)/{$(subst,$(@:d:d:d), $(@:d:d))}/$(*:b).pre
++    $(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cpp.lcc -+ -P $(CDEFS) $(SCPDEFS) -DDLLPOSTFIX=$(DLLPOSTFIX) -I. -I$(INC) -I$(INCLOCAL) -I$(INCGUI) -I$(INCCOM) $(SOLARINC) $(*:b).scp > $(MISC)/{$(subst,$(@:d:d:d), $(@:d:d))}/$(*:b).pre
+ .ENDIF
+ .IF "$(common_build_srs)"!=""
+     $(SCPCOMP) -l {$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/$(TARGET)/$(@:b).$(LANGFILEEXT)} -s $(MISC)/{$(subst,$(@:d:d:d), $(@:d:d))}/$(*:b).pre -o $@
+--- solenv/inc/unitools.mk.old	2009-10-19 17:42:41.000000000 +0200
++++ solenv/inc/unitools.mk	2009-10-19 19:35:46.000000000 +0200
+@@ -30,24 +30,24 @@
+ #*************************************************************************
+ 
+ # Common tools - move this to the end / consolidate
+-TRANSEX*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/transex3
+-ULFEX*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/ulfex
+-XMLEX*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xmlex
+-XRMEX*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xrmex
+-CFGEX*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cfgex
+-AUTODOC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/autodoc
+-LOCALIZE_SL*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/localize_sl
+-GSICHECK*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/gsicheck
++TRANSEX*=$(AUGMENT_LIBRARY_PATH) transex3
++ULFEX*=$(AUGMENT_LIBRARY_PATH) ulfex
++XMLEX*=$(AUGMENT_LIBRARY_PATH) xmlex
++XRMEX*=$(AUGMENT_LIBRARY_PATH) xrmex
++CFGEX*=$(AUGMENT_LIBRARY_PATH) cfgex
++AUTODOC*=$(AUGMENT_LIBRARY_PATH) autodoc
++LOCALIZE_SL*=$(AUGMENT_LIBRARY_PATH) localize_sl
++GSICHECK*=$(AUGMENT_LIBRARY_PATH) gsicheck
+ 
+ .IF "$(SYSTEM_LIBXSLT)"!="YES"
+-XSLTPROC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xsltproc
++XSLTPROC*=$(AUGMENT_LIBRARY_PATH) xsltproc
+ .ELSE			# "$(SYSTEM_LIBXSLT)"!="YES"
+ XSLTPROC*=$(AUGMENT_LIBRARY_PATH) xsltproc
+ .ENDIF			# "$(SYSTEM_LIBXSLT)"!="YES"
+ 
+-ULFCONV*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/ulfconv
++ULFCONV*=$(AUGMENT_LIBRARY_PATH) ulfconv
+ 
+-MAKEDEPEND*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/makedepend
++MAKEDEPEND*=$(AUGMENT_LIBRARY_PATH) makedepend
+ 
+ SCP_CHECK_TOOL:=checkscp$E
+ 
+@@ -191,7 +191,7 @@ GNUTAR*:=tar
+ TAR*:=tar
+ 
+ RM+=$(RMFLAGS)
+-ADJUSTVISIBILITY*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/adjustvisibility
++ADJUSTVISIBILITY*=$(AUGMENT_LIBRARY_PATH) adjustvisibility
+ CONVERT*:=$(PERL) $(SOLARENV)/bin/leconvert.pl
+ EXECTEST := $(PERL) -w $(SOLARENV)/bin/exectest.pl
+ GCCINSTLIB:=$(PERL) -w $(SOLARENV)/bin/gccinstlib.pl
+--- solenv/inc/layout.mk.old	2009-10-19 17:42:41.000000000 +0200
++++ solenv/inc/layout.mk	2009-10-19 19:39:23.000000000 +0200
+@@ -1,4 +1,4 @@
+-TRALAY=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)$/tralay
++TRALAY=$(AUGMENT_LIBRARY_PATH) tralay
+ XML_DEST=$(DLLDEST)
+ XML_LANGS=$(alllangiso)
+ 
diff --git a/patches/dev300/piece-connectivity.diff b/patches/dev300/piece-connectivity.diff
index 9e76659..ddb129c 100644
--- a/patches/dev300/piece-connectivity.diff
+++ b/patches/dev300/piece-connectivity.diff
@@ -9,3 +9,32 @@
  RESLIB1SRSFILES=$(RES1FILELIST)
  
  # Note that the resource file built here is currently *not* included
+--- connectivity/makefile.pmk.old	2009-10-21 14:39:24.000000000 +0200
++++ connectivity/makefile.pmk	2009-10-21 14:42:46.000000000 +0200
+@@ -29,13 +29,13 @@
+ #
+ #*************************************************************************
+ 
+-XSLDIR=$(SOLARXMLDIR)$/processing
++XSLDIR=$(SOLARPIECE)$/$(INPATH)$/xml$(EXT_UPDMINOR)$/processing
+ ABSXCSROOT=$(PWD)$/$(MISC)
+ # ABSXCSROOT=$(MISC)
+ XCSROOT=..
+ # XCSROOT=$(SOLARXMLDIR)
+ # ABSXCSROOT=$(SOLARXMLDIR)
+-DTDDIR=$(SOLARXMLDIR)
++DTDDIR=$(SOLARPIECE)$/$(INPATH)$/xml$(EXT_UPDMINOR)
+ PROCESSOUT=$(MISC)
+ PROCESSORDIR=$(SOLARBINDIR)
+ 
+--- connectivity/target.pmk.old	2009-10-08 08:11:52.000000000 +0200
++++ connectivity/target.pmk	2009-10-21 14:41:41.000000000 +0200
+@@ -34,7 +34,7 @@
+ COMPONENT_CONFIG_SCHEMA*=$(TARGET).xcs
+ 
+ ALLTAR: "$(PWD)$/$(MISC)$/registry$/schema$/$(PACKAGEDIR)$/$(COMPONENT_CONFIG_SCHEMA)"
+-"$(PWD)$/$(MISC)$/registry$/schema$/$(PACKAGEDIR)$/$(COMPONENT_CONFIG_SCHEMA)" : $(SOLARXMLDIR)$/registry$/schema$/$(PACKAGEDIR)$/Drivers.xcs
++"$(PWD)$/$(MISC)$/registry$/schema$/$(PACKAGEDIR)$/$(COMPONENT_CONFIG_SCHEMA)" : $(SOLARPIECE)$/$(INPATH)$/xml$(EXT_UPDMINOR)$/registry$/schema$/$(PACKAGEDIR)$/Drivers.xcs
+     @@-$(MKDIRHIER) $(@:d)
+     $(COPY) $< $@
+ 
diff --git a/patches/dev300/piece-offapi.diff b/patches/dev300/piece-offapi.diff
index 42975be..5213a07 100644
--- a/patches/dev300/piece-offapi.diff
+++ b/patches/dev300/piece-offapi.diff
@@ -1,5 +1,14 @@
---- offapi/util/makefile.mk.old	2009-10-14 15:37:57.000000000 +0200
-+++ offapi/util/makefile.mk	2009-10-14 16:42:17.000000000 +0200
+--- offapi/util/makefile.mk.orig	2009-10-16 20:01:41.000000000 +0200
++++ offapi/util/makefile.mk	2009-10-19 14:59:28.000000000 +0200
+@@ -154,7 +154,7 @@ REGISTRYCHECKFLAG=$(MISC)$/registrycheck
+ 
+ UNOTYPE_STATISTICS=$(MISC)$/unotype_statistics.txt
+ 
+-REGVIEWTOOL=$(SOLARBINDIR)$/regview$(EXECPOST)
++REGVIEWTOOL=$(SOLARPIECE)/$(INPATH)/bin/regview$(EXECPOST)
+ 
+ # --- Targets ------------------------------------------------------
+ 
 @@ -163,15 +163,16 @@ ALLTAR : $(UCR)$/types.db \
         $(REGISTRYCHECKFLAG) \
         $(UNOTYPE_STATISTICS)
diff --git a/patches/dev300/piece-rsc.diff b/patches/dev300/piece-rsc.diff
new file mode 100644
index 0000000..9fcbc06
--- /dev/null
+++ b/patches/dev300/piece-rsc.diff
@@ -0,0 +1,30 @@
+--- rsc/source/prj/start.cxx.old	2009-10-19 19:11:30.000000000 +0200
++++ rsc/source/prj/start.cxx	2009-10-19 20:15:55.000000000 +0200
+@@ -338,10 +338,9 @@ int cdecl main ( int argc, char ** argv)
+     BOOL			bHelp	 = FALSE;
+     BOOL			bError	 = FALSE;
+     BOOL			bResponse = FALSE;
+-    ByteString		aSolarbin(getenv("SOLARBINDIR"));
+     ByteString		aDelim("/");
+-    ByteString		aPrePro; //( aSolarbin + aDelim + ByteString("rscpp"));
+-    ByteString		aRsc2Name; //(  aSolarbin + aDelim + ByteString("rsc2"));
++    ByteString		aPrePro = ByteString("rscpp");
++    ByteString		aRsc2Name = ByteString("rsc2");
+     ByteString		aSrsName;
+     ByteString		aResName;
+     RscStrList		aInputList;
+@@ -352,14 +351,6 @@ int cdecl main ( int argc, char ** argv)
+     sal_uInt32		i;
+     ByteString* 	pString;
+ 
+-    aPrePro = aSolarbin;
+-    aPrePro += aDelim;
+-    aPrePro += ByteString("rscpp");
+-
+-    aRsc2Name = aSolarbin;
+-    aRsc2Name += aDelim;
+-    aRsc2Name += ByteString("rsc2");
+-
+     pStr = ::ResponseFile( &aCmdLine, argv, argc );
+     if( pStr )
+     {
diff --git a/patches/dev300/piece-services.diff b/patches/dev300/piece-services.diff
index 489d742..243a284 100644
--- a/patches/dev300/piece-services.diff
+++ b/patches/dev300/piece-services.diff
@@ -167,3 +167,15 @@ diff -u -r solenv.pristine/bin/modules/installer/servicesfile.pm solenv/bin/modu
  		
  		for ( my $i = 0; $i <= $#{$registryfiles}; $i++ )
 Only in solenv/bin/modules/installer: servicesfile.pm~
+--- solenv/bin/modules/installer/systemactions.pm.old	2009-10-22 15:00:22.000000000 +0200
++++ solenv/bin/modules/installer/systemactions.pm	2009-10-23 16:07:40.000000000 +0200
+@@ -302,7 +302,8 @@ sub create_directories
+ 
+     my $path = "";
+ 
+-    if (( $newdirectory eq "uno" ) || ( $newdirectory eq "zip" ) || ( $newdirectory eq "cab" ) || ( $newdirectory =~ /rdb\s*$/i )) # special handling for zip files, cab files and services file because of performance reasons
++    # IMPORTANT: do not hadle .rdb files the special way; we need to find them in the normal tree in the split build (they are created in the 2nd stage and installed another way)
++    if (( $newdirectory eq "uno" ) || ( $newdirectory eq "zip" ) || ( $newdirectory eq "cab" )) # special handling for zip files, cab files and services file because of performance reasons
+     {
+         if ( $installer::globals::temppathdefined ) { $path = $installer::globals::temppath; }
+         else { $path = $installer::globals::unpackpath; }
diff --git a/patches/dev300/piece-writerfilter.diff b/patches/dev300/piece-writerfilter.diff
index b9e1212..8f3a73c 100644
--- a/patches/dev300/piece-writerfilter.diff
+++ b/patches/dev300/piece-writerfilter.diff
@@ -11,3 +11,14 @@
  
  $(TOKENXML): tokenxmlheader $(TOKENXMLTMP) tokenxmlfooter
  	@$(TYPE) tokenxmlheader $(TOKENXMLTMP) tokenxmlfooter > $@
+@@ -192,8 +192,8 @@ $(TOKENXML): tokenxmlheader $(TOKENXMLTM
+ $(MISC)$/$(OOXMLPREPROCESSXSL): $(OOXMLPREPROCESSXSL)
+ 	$(COPY) $(PWD)$/$(OOXMLPREPROCESSXSL) $(MISC)
+  
+-$(NSXSL) : $(OOXMLMODEL) $(SOLARVER)$/$(INPATH)$/inc$(UPDMINOREXT)$/oox$/namespaces.txt $(NSPROCESS)
+-	$(PERL) $(NSPROCESS) $(SOLARVER)$/$(INPATH)$/inc$(UPDMINOREXT)$/oox$/namespaces.txt > $@
++$(NSXSL) : $(OOXMLMODEL) $(SOLARPIECE)$/$(INPATH)$/inc$(UPDMINOREXT)$/oox$/namespaces.txt $(NSPROCESS)
++	$(PERL) $(NSPROCESS) $(SOLARPIECE)$/$(INPATH)$/inc$(UPDMINOREXT)$/oox$/namespaces.txt > $@
+  
+ $(MODELPROCESSED): $(NSXSL) $(MISC)$/$(OOXMLPREPROCESSXSL) $(OOXMLMODEL)
+ 	@echo "Making:   " $(@:f)
diff --git a/src/helpcontent2/main_transform.xsl b/src/helpcontent2/main_transform.xsl
index 4ff4dfa..5686b2e 100644
--- a/src/helpcontent2/main_transform.xsl
+++ b/src/helpcontent2/main_transform.xsl
@@ -24,7 +24,8 @@
     Aug 16 2005 workaround for #i53365#
     Aug 19 2005 fixed missing list processing in embedded sections
     Aug 19 2005 #i53535#, fixed wrong handling of Database parameter
-		Oct 17 2006 #i70462#, disabled sorting to avoid output of error messages to console
+    Oct 17 2006 #i70462#, disabled sorting to avoid output of error messages to console
+    Jun 15 2009 #i101799#, fixed wrong handling of http URLs with anchors
 ***********************************************************************//-->
 
 <!--
@@ -138,7 +139,7 @@
 
   <!-- parts of help and image urls -->
 <xsl:variable name="help_url_prefix" select="'vnd.sun.star.help://'"/>
-<xsl:variable name="img_url_prefix" select="concat('vnd.sun.star.pkg://',$imgrepos,'/')"/>
+<xsl:variable name="img_url_prefix" select="concat('vnd.sun.star.zip://',$imgrepos,'/')"/>
 <xsl:variable name="urlpost" select="concat('?Language=',$lang,$am,'System=',$System,$am,'UseDB=no')"/>
 <xsl:variable name="urlpre" select="$help_url_prefix" /> 
 <xsl:variable name="linkprefix" select="$urlpre"/>
@@ -628,14 +629,14 @@
 <xsl:variable name="archive"><xsl:value-of select="concat(substring-before(substring-after(@href,'text/'),'/'),'/')"/></xsl:variable>
 <xsl:variable name="dbpostfix"><xsl:call-template name="createDBpostfix"><xsl:with-param name="archive" select="$archive"/></xsl:call-template></xsl:variable>
 	<xsl:choose>
+		<xsl:when test="starts-with(@href,'http://')">  <!-- web links -->
+			<a href="{@href}"><xsl:apply-templates /></a>
+		</xsl:when>
 		<xsl:when test="contains(@href,'#')">
 			<xsl:variable name="anchor"><xsl:value-of select="concat('#',substring-after(@href,'#'))"/></xsl:variable>
 			<xsl:variable name="href"><xsl:value-of select="concat($linkprefix,$archive,substring-before(@href,'#'),$linkpostfix,$dbpostfix,$anchor)"/></xsl:variable>
 			<a href="{$href}"><xsl:apply-templates /></a>
 		</xsl:when>
-		<xsl:when test="starts-with(@href,'http://')">  <!-- web links -->
-			<a href="{@href}"><xsl:apply-templates /></a>
-		</xsl:when>
 		<xsl:otherwise>
 			<xsl:variable name="href"><xsl:value-of select="concat($linkprefix,$archive, at href,$linkpostfix,$dbpostfix)"/></xsl:variable>
 			<a href="{$href}"><xsl:apply-templates /></a>
commit 6e7ecb3594b6e30dcd5ae16adb31bdcc78331f38
Author: Petr Mladek <pmladek at suse.cz>
Date:   Fri Oct 23 18:54:53 2009 +0200

    pack only selected languages in the l10n module (i#106185)
    
    * patches/dev300/l10n-build-only-selected-langs.diff:
    * patches/dev300/apply: pack only selected languages in the l10n module;
      it speeds up test builds a bit (i#106185)

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 1c466ec..919df99 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -1292,6 +1292,9 @@ installer-strip-optional.diff, i#48814, pmladek
 # Workaround for compile failure with glibc 2.4's langinfo.h
 i18nutil-glibc-braindamage-workaround.diff, brosenk
 
+# pack only selected languages in the l10n module
+l10n-build-only-selected-langs.diff, i#106185, pmladek
+
 # changes the SDK gid module name to gid_Module_Root_SDK, so the generated list
 # of files does not conflict with the main package, i#64802
 sdk-gid-module-name.diff, pmladek, i#64802
diff --git a/patches/dev300/l10n-build-only-selected-langs.diff b/patches/dev300/l10n-build-only-selected-langs.diff
new file mode 100644
index 0000000..591da29
--- /dev/null
+++ b/patches/dev300/l10n-build-only-selected-langs.diff
@@ -0,0 +1,51 @@
+--- l10n/source/makefile.mk.old1	2009-10-19 17:01:03.000000000 +0200
++++ l10n/source/makefile.mk	2009-10-20 16:16:15.000000000 +0200
+@@ -67,14 +67,22 @@ TARGET=l10n_merge
+ # --- Targets ------------------------------------------------------
+ .INCLUDE : settings.mk
+ 
+-.IF "$(WITH_LANG)" == ""
++.IF "$(WITH_LANG)" == "ALL"
++with_lang_list=$(alllangiso)
++.ELSE
++with_lang_list=$(WITH_LANG)
++.ENDIF
++
++
++.IF "$(with_lang_list)" == ""
+ 
+ @all:
+     @echo "Nothing to do - en-US only build."
++
+ .ELSE
+ 
+ .IF "$(USE_SHELL)"!="4nt"
+-all_sdfs:=$(shell cd $(PRJ)$/source && ls -1 *$/localize.sdf)
++all_sdfs:=$(shell ls $(foreach,lang,$(with_lang_list) $(lang)/localize.sdf) 2>/dev/null || true)
+ .ELSE          # "$(USE_SHELL)"!="4nt"
+ all_sdfs:=$(shell $(CDD) $(PRJ)$/source && find * -name localize.sdf)
+ all_sdfs!:=$(subst,/,\ $(all_sdfs))
+@@ -84,7 +92,14 @@ all_sdfs!:=$(subst,/,\ $(all_sdfs))
+ 
+ .INCLUDE : target.mk
+ 
+-ALLTAR : $(COMMONMISC)$/merge.done
++
++ALLTAR : check_merged $(COMMONMISC)$/merge.done
++
++check_merged .PHONY :
++    @+echo Checking merged sdf files...
++    @+echo "$(all_sdfs)" >$(COMMONMISC)$/merge.done.check
++    @test -f $(COMMONMISC)$/merge.done && diff -q $(COMMONMISC)$/merge.done $(COMMONMISC)$/merge.done.check || rm -f $(COMMONMISC)$/merge.done
++    @+rm $(COMMONMISC)$/merge.done.check
+ 
+ $(COMMONMISC)$/merge.done : $(all_sdfs)
+ .IF "$(L10N_LOCK)" != "YES"
+@@ -93,6 +93,6 @@ $(COMMONMISC)$/merge.done : $(all_sdfs)
+     -rm -rf $(COMMONMISC)$/sdf$(INPATH)_begone
+     -$(MKDIRHIER) $(COMMONMISC)$/sdf
+ .ENDIF			# "$(L10n_LOCK)" != "YES"
+-    $(PERL) $(SOLARVER)$/$(INPATH)$/bin$(UPDMINOREXT)$/fast_merge.pl -sdf_files $(mktmp $<) -merge_dir $(COMMONMISC)$/sdf && $(TOUCH) $@
++    $(PERL) $(SOLARVER)$/$(INPATH)$/bin$(UPDMINOREXT)$/fast_merge.pl -sdf_files $(mktmp $<) -merge_dir $(COMMONMISC)$/sdf && echo $< >$@
+ 
+ .ENDIF
commit 50c1c606627cb7dd876df4bdadc81fdfb9cd9f8e
Author: Petr Mladek <pmladek at suse.cz>
Date:   Fri Oct 23 18:47:11 2009 +0200

    Build l10n module in the booststrap piece
    
    * bin/fast_merge.pl: just copy from the OOo sources (transex3 module); might
      be removed if later decided to build l10n stuff in libs-gui
    * bin/piece/build-bootstrap: build the l10n module when available
    * bin/unpack: unpack l10n sources in the bootstrap piece
    * patches/dev300/piece-l10n.diff: updates l10n module and solenv for the split
      build
    * patches/dev300/apply: add patches/dev300/piece-l10n.diff

diff --git a/bin/fast_merge.pl b/bin/fast_merge.pl
new file mode 100755
index 0000000..8c99f81
--- /dev/null
+++ b/bin/fast_merge.pl
@@ -0,0 +1,348 @@
+:
+eval 'exec perl -wS $0 ${1+"$@"}'
+    if 0;
+#*************************************************************************
+#
+#   OpenOffice.org - a multi-platform office productivity suite
+#
+#   $RCSfile: fast_merge.pl,v $
+#
+#   $Revision: 1.1.2.2 $
+#
+#   last change: $Author: ihi $ $Date: 2007/07/20 10:37:53 $
+#
+#   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
+#
+#*************************************************************************
+
+use strict;
+use Class::Struct;
+use Getopt::Long;
+use File::Temp;
+use File::Path;
+
+my @files;
+my @file_names;
+my $module_name = '';
+my @current;
+my @buffer;
+my $last_file;
+my $last_path;
+my $last_localize_file;
+my $first_run = "1";
+my $sdf_filename;
+my $merge_dir;
+my $WIN;
+my $state = "none";
+
+if ( defined $ENV{USE_SHELL} && $ENV{USE_SHELL} eq '4nt' ) { $WIN = 'TRUE'; }
+else { $WIN = ''; }
+
+$SIG{INT}  = 'inthandler';
+$SIG{QUIT} = 'quithandler';
+
+struct ( sdf_obj =>
+{
+    module      => '$',
+    file        => '$',
+    dir         => '$',
+    FILEHANDLE  => '$',
+    line        => '$',
+    endoffile   => '$'
+}
+);
+
+parse_options();
+my $lock_file   = $merge_dir."/lock.mk";
+$lock_file =~ s/\//\\/g , if ( $WIN ) ;
+acquire_lock();
+read_sdf_file_names();
+init();
+my $reference;
+my $path ;
+my $localize_file; 
+while( hasLines() )
+{
+    @current = ();
+    foreach ( @files )
+    {
+        push @current , $_;
+    }
+    
+    $reference = getNextIdentifier( );
+
+    @current = ();
+    foreach ( @files )
+    {
+        if( $_->module eq $reference->module && $_->dir eq $reference->dir )
+        {
+            push @current , $_ ;
+        }
+    }
+    write_lines();
+}
+if( $#current+1 ne 0 )
+{
+    ( $path , $localize_file ) = make_paths();
+    add_to_buffer();
+    write_buffer( $path , $localize_file );
+}
+release_lock();
+exit( 0 );
+
+##########################################################################################
+sub acquire_lock
+{
+    if( -e $lock_file ){
+        $state = "blocked";
+        print "WARNING: Lock file '$lock_file' 'found, waiting ....\n";
+        my $cnt = 0;
+        sleep 10 , while( -e $lock_file && $cnt++ < 180 );
+        exit( 0 );
+    }else
+    {
+        $state = "locked";
+        print "Writing lock file '$lock_file'\n";
+        open FILE, ">$lock_file" or die "Can't create lock file '$lock_file'";
+        print FILE "L10N_LOCK=YES" ;
+        close ( FILE );
+    }
+}
+sub release_lock
+{
+    print "Deleting lock file '$lock_file'\n";
+    unlink $lock_file, if( -e $lock_file );
+    $state = "none";
+}
+sub inthandler
+{
+    release_lock() , if( $state eq "locked" );
+    exit( -1 );
+}
+sub quithandler
+{
+    release_lock() , if( $state eq "locked" );
+    exit( 0 );
+}
+
+sub init
+{
+    foreach my $file ( @file_names )
+    {
+        my $obj = new sdf_obj;
+        open my $FILEHANDLE , "<$file" or die "Can't open file '$file'";
+        $obj->FILEHANDLE ( $FILEHANDLE ) ;
+        getNextSdfObj( $obj );
+        push @files, $obj ;
+        print "Open file '$file'\n";
+    }
+}
+    
+# get the next module/file 
+sub getNextIdentifier
+{
+    my @sorted = sort {
+        return $a->module.$a->dir cmp $b->module.$b->dir;
+    } @current ; 
+    return shift @sorted;
+}
+
+# update the obj with the next line
+sub getNextSdfObj
+{
+    my $obj             = shift;
+    my $line = readline ( $obj->FILEHANDLE );
+    if ( $line eq undef )
+    {
+        $obj->endoffile( "true" );
+    }
+    else
+    {
+        $line =~ /^(([^\t]*)\t([^\t]*).*)/o ;
+        if( defined $1 && defined $2 && defined $3 )
+        {
+            $obj->line  ( $1 );
+            $obj->module( $2 );
+            $obj->file  ( $3 );
+            $obj->dir   ( getDir( $3 ) );
+        }
+        else
+        {
+            $obj->line  ( "" );
+            $obj->module( "" );
+            $obj->file  ( "" );
+            $obj->dir   ( "" );
+        }
+    }
+    return $obj;
+}
+sub getNextSdfObjModule
+{
+    my $obj             = shift;
+    while( !$obj->endoffile )
+    {
+        my $line = readline ( $obj->FILEHANDLE );
+        if ( $line eq undef )
+        {
+            $obj->endoffile( "true" );
+        }
+        else
+        {
+            $line =~ /^(([^\t]*)\t([^\t]*).*)/o ;
+            if( defined $1 && defined $2 && defined $3 )
+            {
+                $obj->line  ( $1 );
+                $obj->module( $2 );
+                $obj->file  ( $3 );
+                $obj->dir   ( getDir( $3 ) );
+            }
+            else
+            {
+                $obj->line  ( "" );
+                $obj->module( "" );
+                $obj->file  ( "" );
+                $obj->dir   ( "" );
+            }
+            return $obj , if( $obj->module eq $module_name )
+        }
+    }
+    #return $obj;
+}
+sub getDir
+{
+    my $path     = shift ;
+    $path        =~ s/\//\\/g;
+    my @tmp_path = split /\\/ , $path;
+    pop @tmp_path;
+    $path        = join  '\\' , @tmp_path;
+    return $path;
+}
+
+sub hasLines
+{
+    my $hasLines  = "";
+    my @tmpfiles;
+    foreach ( @files )
+    {
+        push @tmpfiles , $_, if( !$_->endoffile );
+    }
+    @files = @tmpfiles;
+    return $#files+1;
+}
+
+sub make_paths
+{
+    my $localizeFile = $merge_dir."\\".$current[ 0 ]->module."\\".$current[ 0 ]->file;
+    my $path = getDir( $localizeFile );
+    if ( !$WIN ) { $path =~ s/\\/\//g; }
+
+    $localizeFile = $path."\\localize.sdf";
+    if ( !$WIN ) { $localizeFile =~ s/\\/\//g; }
+
+    return ( $path , $localizeFile );
+}
+sub write_lines
+{
+    if( $first_run ){
+        add_to_buffer();
+        my( $path , $localize_file ) = make_paths();
+        $last_path = $path;
+        $last_localize_file = $localize_file;
+        mkpath $path;
+        write_buffer( $path , $localize_file );
+        $first_run = '';
+    }
+    else
+    {
+        return , if ( $#current+1 eq 0 );
+        my( $path , $localize_file ) = make_paths();
+        if( $path eq $last_path )
+        {
+            add_to_buffer();
+        }
+        else
+        {
+            mkpath $path;
+            write_buffer( $last_path , $last_localize_file );
+            add_to_buffer();
+            $last_path = $path;
+            $last_localize_file = $localize_file;
+        }
+    }
+}    
+sub add_to_buffer
+{
+    my $plainline;
+    my $afile;
+    my $amodule;
+    foreach my $elem ( @current )
+    {
+        do {
+        $amodule=$elem->module;
+        $afile=$elem->file;
+        $plainline=$elem->line;
+        push @buffer, $plainline;
+        getNextSdfObj( $elem );
+        } while ( !$elem->endoffile && $amodule eq $elem->module && $afile eq $elem->file );
+    }
+}
+sub write_buffer
+{
+    my $path            = shift;
+    my $localize_file   = shift;
+    my $cnt             = $#buffer+1;
+    print "Write to $path $cnt lines\n";
+    open FILE , ">>$localize_file" or die "Can't open file '$localize_file'\n";
+    foreach ( @buffer )
+    {
+        print FILE $_."\n";
+    }
+    @buffer = ();
+}
+sub parse_options
+{
+    my $success = GetOptions( 'sdf_files=s' => \$sdf_filename , 'merge_dir=s' => \$merge_dir ); #, 'module=s' => \$module_name );
+    if( ! ( $sdf_filename && $merge_dir && $success ) )
+    {
+        usage();
+        exit( -1 );
+    }
+}
+
+sub usage
+{
+    print "Usage: fast_merge -sdf_files <file containing sdf file names> -merge_dir <directory>\n" ;
+}
+
+sub read_sdf_file_names
+{
+    open FILE , "<$sdf_filename" or die "Can't open file '$sdf_filename'\n";
+    while (  <FILE> )
+    {
+        push @file_names , split " " , $_ ;
+    }
+    close ( FILE );
+}
+
+
diff --git a/bin/piece/build-bootstrap b/bin/piece/build-bootstrap
index b222ed5..66549a2 100755
--- a/bin/piece/build-bootstrap
+++ b/bin/piece/build-bootstrap
@@ -4,4 +4,7 @@
 export ULFEX=$TOOLSDIR/bin/piece/noulf
 export ULFCONV=$TOOLSDIR/bin/piece/noulfconv
 
-perl $SOLARENV/bin/build.pl --subdirs:soltools:scp2 $EXTRA_BUILD_FLAGS $EXTRA_DMAKE_FLAGS || exit 1;
+# check for optional l10n module
+test -d l10n && l10n=":l10n" || l10n=
+
+perl $SOLARENV/bin/build.pl --subdirs:soltools:scp2$l10n $EXTRA_BUILD_FLAGS $EXTRA_DMAKE_FLAGS || exit 1;
diff --git a/bin/unpack b/bin/unpack
index 441784e..665a638 100755
--- a/bin/unpack
+++ b/bin/unpack
@@ -81,7 +81,9 @@ if test "z$OOO_GIT" = "z" ; then
 	    CORE_PKGS=$ALL_CORE_PKGS
 	fi
 	if test "z$OOO_LANGS" != "z" -a "z$OOO_LANGS" != "zen-US"; then
-	    CORE_PKGS="$CORE_PKGS l10n"
+	    if test "z$PIECE" = "z" -o "z$PIECE" = "zbootstrap" ; then
+		CORE_PKGS="$CORE_PKGS l10n"
+	    fi
 	fi
 	for pkg in $CORE_PKGS; do
 	    check_tarball "$OOO_SPLIT_PREFIX$pkg.tar.bz2"
@@ -98,7 +100,9 @@ else
         CORE_PKGS=$ALL_CORE_PKGS
     fi
     if test \( "z$OOO_LANGS" != "z" -a "z$OOO_LANGS" != "zen-US" \) -o "z$BUILD_WIN32" != "z"; then
-        CORE_PKGS="$CORE_PKGS l10n"
+	if test "z$PIECE" = "z" -o "z$PIECE" = "zbootstrap" ; then
+	    CORE_PKGS="$CORE_PKGS l10n"
+	fi
     fi
     for pkg in $CORE_PKGS ; do
         check_git_repo $pkg
@@ -242,7 +246,15 @@ if test "z$OOO_GIT" = "z" ; then
 
             if test "$SOURCE_TYPE" = "CGIT" ; then
 		if test $pkg = l10n ; then
-		    (cd $GITTAG && $GNUTAR cf - .) | (cd $OOBUILDDIR && $GNUTAR xpf -)
+		    if test "z$PIECE" != "z" ; then
+			# we are interested only into the l10n directory;
+			# the rest seems to be useless anyway (i#105973)
+			mv $GITTAG/l10n $OOBUILDDIR
+			# FIXME: this is taken from the transex3 module
+			cp $TOOLSDIR/bin/fast_merge.pl $OOBUILDDIR/l10n/source/
+		    else
+			(cd $GITTAG && $GNUTAR cf - .) | (cd $OOBUILDDIR && $GNUTAR xpf -)
+		    fi
 		else
 		    mv $GITTAG/* $OOBUILDDIR
 		fi
diff --git a/patches/dev300/apply b/patches/dev300/apply
index dbe4a24..1c466ec 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -2880,6 +2880,7 @@ piece-stoc.diff
 piece-unoil.diff
 piece-javaunohelper.diff
 piece-io.diff
+piece-l10n.diff
 piece-remotebridges.diff
 piece-scp2.diff
 piece-solenv.diff
diff --git a/patches/dev300/piece-l10n.diff b/patches/dev300/piece-l10n.diff
new file mode 100644
index 0000000..dd57318
--- /dev/null
+++ b/patches/dev300/piece-l10n.diff
@@ -0,0 +1,40 @@
+--- l10n/prj/build.lst.old	2009-10-08 08:11:52.000000000 +0200
++++ l10n/prj/build.lst	2009-10-16 19:29:55.000000000 +0200
+@@ -1,3 +1,3 @@
+-l10n l10n  : transex3 NULL
++l10n l10n  : solenv NULL
+ l10n l10n\source     nmake - all l10n_source NULL
+ l10n l10n\util          nmake - all l10n_util l10n_source NULL
+--- l10n/source/makefile.mk.old	2009-10-08 08:11:52.000000000 +0200
++++ l10n/source/makefile.mk	2009-10-19 16:57:24.000000000 +0200
+@@ -93,6 +93,6 @@ $(COMMONMISC)$/merge.done : $(all_sdfs)
+     -rm -rf $(COMMONMISC)$/sdf$(INPATH)_begone
+     -$(MKDIRHIER) $(COMMONMISC)$/sdf
+ .ENDIF			# "$(L10n_LOCK)" != "YES"
+-    $(PERL) $(SOLARVER)$/$(INPATH)$/bin$(UPDMINOREXT)$/fast_merge.pl -sdf_files $(mktmp $<) -merge_dir $(COMMONMISC)$/sdf && echo $< >$@
++    $(PERL) fast_merge.pl -sdf_files $(mktmp $<) -merge_dir $(COMMONMISC)$/sdf && echo $< >$@
+ 
+ .ENDIF
+--- solenv/inc/target.mk.old	2009-10-20 16:25:25.000000000 +0200
++++ solenv/inc/target.mk	2009-10-22 11:55:59.000000000 +0200
+@@ -1394,12 +1394,20 @@ $(UNIXTEXT) : $(UNIXTEXT:f)
+ .IF "$(WITH_LANG)"!=""
+ .IF "$(LOCALIZATION_FOUND)"==""
+ .IF "$(LOCALIZESDF)"!=""
++
++# check whether zip file with sdf files exists for this project
++TRYSDFZIP=$(SOLARCOMMONSDFDIR)/$(PRJNAME).zip
++HAVE_LOCALIZESDFZIP:=$(strip $(shell @+$(IFEXIST) $(TRYSDFZIP) $(THEN) echo 'TRUE' $(FI)))
++
++.IF "$(HAVE_LOCALIZESDFZIP)"=="TRUE"
+ "$(LOCALIZESDF)" : $(SOLARCOMMONSDFDIR)/$(PRJNAME).zip
+     @@-$(MKDIRHIER) $(@:d)
+     @@-$(MKDIRHIER) $(COMMONMISC)/$(PRJNAME)_$(TARGET)
+     @@$(IFNOTEXIST) $(LOCALIZESDF) $(THEN) unzip -o -d $(COMMONMISC)/$(PRJNAME)_$(TARGET) $(SOLARCOMMONSDFDIR)/$(PRJNAME).zip $(FI)
+     @@-cp -r $(COMMONMISC)/$(PRJNAME)_$(TARGET)/* $(COMMONMISC)/$(PRJNAME)
+     @@-$(RM) -rf $(COMMONMISC)/$(PRJNAME)_$(TARGET)
++.ENDIF			# "$(HAVE_LOCALIZESDFZIP)"=="YES"
++
+ .ENDIF			# "$(LOCALIZESDF)"!=""
+ .ENDIF			# "$(LOCALIZATION_FOUND)"==""
+ .ENDIF			# "$(WITH_LANG)"!=""


More information about the ooo-build-commit mailing list