summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2011-01-07 20:43:27 +0000
committerMichael Meeks <michael.meeks@novell.com>2011-01-10 09:49:18 +0000
commit87d8fb2dccd47d3a3be072b4ccd36c9c2acf96e7 (patch)
treebade3ae641ef9e8c1e15c365b84a3e11785a0bbf
parentdbf79e8b23d8db677bb81d5dbe6f316485915d0f (diff)
Resolves: fdo#32897 strip out template language tags
-rwxr-xr-xsolenv/bin/striplanguagetags.sh39
-rw-r--r--solenv/inc/_tg_zip.mk100
-rw-r--r--solenv/inc/tg_zip.mk10
3 files changed, 149 insertions, 0 deletions
diff --git a/solenv/bin/striplanguagetags.sh b/solenv/bin/striplanguagetags.sh
new file mode 100755
index 000000000..95aa3a7bc
--- /dev/null
+++ b/solenv/bin/striplanguagetags.sh
@@ -0,0 +1,39 @@
+#!/usr/bin/env bash
+#take a .zip containing a flat hierarchy of odf files and strip out the
+#language and country tags in each of them and repack it all up
+#should convert templates so that documents based on them use
+#the default-document-language rather than the hardcoded lang-tag
+
+#All a bit hacky, but it should work
+
+XSL=`mktemp`
+
+cat > $XSL << EOF
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
+
+<xsl:template match="node()|@*">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="@fo:language"/>
+<xsl:template match="@fo:country"/>
+
+</xsl:stylesheet>
+EOF
+
+WRKDIR=`mktemp -d`
+unzip -q $1 -d $WRKDIR
+pushd $WRKDIR
+for a in *; do
+ unzip -qc $a styles.xml > styles.tmp
+ eval "$CALLXSLTPROC -o styles.xml $XSL styles.tmp"
+ zip -qr $a styles.xml
+ rm styles.xml styles.tmp
+done
+popd
+zip -qrj $1 $WRKDIR
+rm -rf $WRKDIR
+rm -f $XSL
diff --git a/solenv/inc/_tg_zip.mk b/solenv/inc/_tg_zip.mk
index 608819da6..8d7489644 100644
--- a/solenv/inc/_tg_zip.mk
+++ b/solenv/inc/_tg_zip.mk
@@ -14,6 +14,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*"
.IF "$(ZIP1TARGET)"!=""
+.IF "$(ZIP1STRIPLANGUAGETAGS)" != ""
+CALLXSLTPROC:=$(XSLTPROC)
+.EXPORT: CALLXSLTPROC
+.ENDIF
+
ZIP1EXT*=.zip
.IF "$(common_build_zip)"!=""
.IF "$(ZIP1LIST:s/LANGDIR//)" == "$(ZIP1LIST)"
@@ -117,6 +122,11 @@ $(ZIP1TARGETN) : delzip $(ZIP1DEPS)
$(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
$(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \
$(FI)
+.IF "$(ZIP1STRIPLANGUAGETAGS)" != ""
+ $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
+ $(SOLARENV)/bin/striplanguagetags.sh $@ \
+ $(FI)
+.ENDIF
.ENDIF # "$(ZIP1DIR)" != ""
.ENDIF # "$(common_build_zip)"!=""
.ENDIF
@@ -137,6 +147,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*"
.IF "$(ZIP2TARGET)"!=""
+.IF "$(ZIP2STRIPLANGUAGETAGS)" != ""
+CALLXSLTPROC:=$(XSLTPROC)
+.EXPORT: CALLXSLTPROC
+.ENDIF
+
ZIP2EXT*=.zip
.IF "$(common_build_zip)"!=""
.IF "$(ZIP2LIST:s/LANGDIR//)" == "$(ZIP2LIST)"
@@ -240,6 +255,11 @@ $(ZIP2TARGETN) : delzip $(ZIP2DEPS)
$(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
$(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \
$(FI)
+.IF "$(ZIP2STRIPLANGUAGETAGS)" != ""
+ $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
+ $(SOLARENV)/bin/striplanguagetags.sh $@ \
+ $(FI)
+.ENDIF
.ENDIF # "$(ZIP2DIR)" != ""
.ENDIF # "$(common_build_zip)"!=""
.ENDIF
@@ -260,6 +280,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*"
.IF "$(ZIP3TARGET)"!=""
+.IF "$(ZIP3STRIPLANGUAGETAGS)" != ""
+CALLXSLTPROC:=$(XSLTPROC)
+.EXPORT: CALLXSLTPROC
+.ENDIF
+
ZIP3EXT*=.zip
.IF "$(common_build_zip)"!=""
.IF "$(ZIP3LIST:s/LANGDIR//)" == "$(ZIP3LIST)"
@@ -363,6 +388,11 @@ $(ZIP3TARGETN) : delzip $(ZIP3DEPS)
$(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
$(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \
$(FI)
+.IF "$(ZIP3STRIPLANGUAGETAGS)" != ""
+ $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
+ $(SOLARENV)/bin/striplanguagetags.sh $@ \
+ $(FI)
+.ENDIF
.ENDIF # "$(ZIP3DIR)" != ""
.ENDIF # "$(common_build_zip)"!=""
.ENDIF
@@ -383,6 +413,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*"
.IF "$(ZIP4TARGET)"!=""
+.IF "$(ZIP4STRIPLANGUAGETAGS)" != ""
+CALLXSLTPROC:=$(XSLTPROC)
+.EXPORT: CALLXSLTPROC
+.ENDIF
+
ZIP4EXT*=.zip
.IF "$(common_build_zip)"!=""
.IF "$(ZIP4LIST:s/LANGDIR//)" == "$(ZIP4LIST)"
@@ -486,6 +521,11 @@ $(ZIP4TARGETN) : delzip $(ZIP4DEPS)
$(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
$(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \
$(FI)
+.IF "$(ZIP4STRIPLANGUAGETAGS)" != ""
+ $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
+ $(SOLARENV)/bin/striplanguagetags.sh $@ \
+ $(FI)
+.ENDIF
.ENDIF # "$(ZIP4DIR)" != ""
.ENDIF # "$(common_build_zip)"!=""
.ENDIF
@@ -506,6 +546,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*"
.IF "$(ZIP5TARGET)"!=""
+.IF "$(ZIP5STRIPLANGUAGETAGS)" != ""
+CALLXSLTPROC:=$(XSLTPROC)
+.EXPORT: CALLXSLTPROC
+.ENDIF
+
ZIP5EXT*=.zip
.IF "$(common_build_zip)"!=""
.IF "$(ZIP5LIST:s/LANGDIR//)" == "$(ZIP5LIST)"
@@ -609,6 +654,11 @@ $(ZIP5TARGETN) : delzip $(ZIP5DEPS)
$(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
$(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \
$(FI)
+.IF "$(ZIP5STRIPLANGUAGETAGS)" != ""
+ $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
+ $(SOLARENV)/bin/striplanguagetags.sh $@ \
+ $(FI)
+.ENDIF
.ENDIF # "$(ZIP5DIR)" != ""
.ENDIF # "$(common_build_zip)"!=""
.ENDIF
@@ -629,6 +679,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*"
.IF "$(ZIP6TARGET)"!=""
+.IF "$(ZIP6STRIPLANGUAGETAGS)" != ""
+CALLXSLTPROC:=$(XSLTPROC)
+.EXPORT: CALLXSLTPROC
+.ENDIF
+
ZIP6EXT*=.zip
.IF "$(common_build_zip)"!=""
.IF "$(ZIP6LIST:s/LANGDIR//)" == "$(ZIP6LIST)"
@@ -732,6 +787,11 @@ $(ZIP6TARGETN) : delzip $(ZIP6DEPS)
$(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
$(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \
$(FI)
+.IF "$(ZIP6STRIPLANGUAGETAGS)" != ""
+ $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
+ $(SOLARENV)/bin/striplanguagetags.sh $@ \
+ $(FI)
+.ENDIF
.ENDIF # "$(ZIP6DIR)" != ""
.ENDIF # "$(common_build_zip)"!=""
.ENDIF
@@ -752,6 +812,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*"
.IF "$(ZIP7TARGET)"!=""
+.IF "$(ZIP7STRIPLANGUAGETAGS)" != ""
+CALLXSLTPROC:=$(XSLTPROC)
+.EXPORT: CALLXSLTPROC
+.ENDIF
+
ZIP7EXT*=.zip
.IF "$(common_build_zip)"!=""
.IF "$(ZIP7LIST:s/LANGDIR//)" == "$(ZIP7LIST)"
@@ -855,6 +920,11 @@ $(ZIP7TARGETN) : delzip $(ZIP7DEPS)
$(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
$(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \
$(FI)
+.IF "$(ZIP7STRIPLANGUAGETAGS)" != ""
+ $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
+ $(SOLARENV)/bin/striplanguagetags.sh $@ \
+ $(FI)
+.ENDIF
.ENDIF # "$(ZIP7DIR)" != ""
.ENDIF # "$(common_build_zip)"!=""
.ENDIF
@@ -875,6 +945,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*"
.IF "$(ZIP8TARGET)"!=""
+.IF "$(ZIP8STRIPLANGUAGETAGS)" != ""
+CALLXSLTPROC:=$(XSLTPROC)
+.EXPORT: CALLXSLTPROC
+.ENDIF
+
ZIP8EXT*=.zip
.IF "$(common_build_zip)"!=""
.IF "$(ZIP8LIST:s/LANGDIR//)" == "$(ZIP8LIST)"
@@ -978,6 +1053,11 @@ $(ZIP8TARGETN) : delzip $(ZIP8DEPS)
$(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
$(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \
$(FI)
+.IF "$(ZIP8STRIPLANGUAGETAGS)" != ""
+ $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
+ $(SOLARENV)/bin/striplanguagetags.sh $@ \
+ $(FI)
+.ENDIF
.ENDIF # "$(ZIP8DIR)" != ""
.ENDIF # "$(common_build_zip)"!=""
.ENDIF
@@ -998,6 +1078,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*"
.IF "$(ZIP9TARGET)"!=""
+.IF "$(ZIP9STRIPLANGUAGETAGS)" != ""
+CALLXSLTPROC:=$(XSLTPROC)
+.EXPORT: CALLXSLTPROC
+.ENDIF
+
ZIP9EXT*=.zip
.IF "$(common_build_zip)"!=""
.IF "$(ZIP9LIST:s/LANGDIR//)" == "$(ZIP9LIST)"
@@ -1101,6 +1186,11 @@ $(ZIP9TARGETN) : delzip $(ZIP9DEPS)
$(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
$(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \
$(FI)
+.IF "$(ZIP9STRIPLANGUAGETAGS)" != ""
+ $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
+ $(SOLARENV)/bin/striplanguagetags.sh $@ \
+ $(FI)
+.ENDIF
.ENDIF # "$(ZIP9DIR)" != ""
.ENDIF # "$(common_build_zip)"!=""
.ENDIF
@@ -1121,6 +1211,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*"
.IF "$(ZIP10TARGET)"!=""
+.IF "$(ZIP10STRIPLANGUAGETAGS)" != ""
+CALLXSLTPROC:=$(XSLTPROC)
+.EXPORT: CALLXSLTPROC
+.ENDIF
+
ZIP10EXT*=.zip
.IF "$(common_build_zip)"!=""
.IF "$(ZIP10LIST:s/LANGDIR//)" == "$(ZIP10LIST)"
@@ -1224,6 +1319,11 @@ $(ZIP10TARGETN) : delzip $(ZIP10DEPS)
$(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
$(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \
$(FI)
+.IF "$(ZIP10STRIPLANGUAGETAGS)" != ""
+ $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
+ $(SOLARENV)/bin/striplanguagetags.sh $@ \
+ $(FI)
+.ENDIF
.ENDIF # "$(ZIP10DIR)" != ""
.ENDIF # "$(common_build_zip)"!=""
.ENDIF
diff --git a/solenv/inc/tg_zip.mk b/solenv/inc/tg_zip.mk
index 0a0364e02..d3236fd84 100644
--- a/solenv/inc/tg_zip.mk
+++ b/solenv/inc/tg_zip.mk
@@ -42,6 +42,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*"
.IF "$(ZIP$(TNR)TARGET)"!=""
+.IF "$(ZIP$(TNR)STRIPLANGUAGETAGS)" != ""
+CALLXSLTPROC:=$(XSLTPROC)
+.EXPORT: CALLXSLTPROC
+.ENDIF
+
ZIP$(TNR)EXT*=.zip
.IF "$(common_build_zip)"!=""
.IF "$(ZIP$(TNR)LIST:s/LANGDIR//)" == "$(ZIP$(TNR)LIST)"
@@ -145,6 +150,11 @@ $(ZIP$(TNR)TARGETN) : delzip $(ZIP$(TNR)DEPS)
$(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
$(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \
$(FI)
+.IF "$(ZIP$(TNR)STRIPLANGUAGETAGS)" != ""
+ $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \
+ $(SOLARENV)/bin/striplanguagetags.sh $@ \
+ $(FI)
+.ENDIF
.ENDIF # "$(ZIP$(TNR)DIR)" != ""
.ENDIF # "$(common_build_zip)"!=""
.ENDIF