bug 466570, create an l10n packaging system for fennec, with filter.py. Using factored makefile l10n.mk. r=mfinkle, rs=ted for make 3.80 fixes
authorAxel Hecht <l10n@mozilla.com>
Mon, 26 Jan 2009 17:43:38 +0100
changeset 65032 82ce7cb88b7daeb8eb7b01241cf831d7c34777df
parent 65031 70c905cbc8293170de45520652040a7bfba4def0
child 65033 4430e703924cdc8048e51e5d0ccac30aad97d590
push idunknown
push userunknown
push dateunknown
reviewersmfinkle, ted
bugs466570
bug 466570, create an l10n packaging system for fennec, with filter.py. Using factored makefile l10n.mk. r=mfinkle, rs=ted for make 3.80 fixes
mobile/locales/Makefile.in
mobile/locales/en-US/defines.inc
mobile/locales/en-US/mobile-l10n.js
mobile/locales/filter.py
mobile/locales/generic/install.rdf
--- a/mobile/locales/Makefile.in
+++ b/mobile/locales/Makefile.in
@@ -37,19 +37,47 @@
 
 DEPTH     = ../..
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH     = @srcdir@
 relativesrcdir = mobile/locales
 
 include $(DEPTH)/config/autoconf.mk
+include $(topsrcdir)/config/config.mk
 
-vpath %.xml $(srcdir)/$(MOZ_UI_LOCALE)/searchplugins
+vpath %.xml @srcdir@/en-US/searchplugins
+vpath %.xml $(LOCALE_SRCDIR)/searchplugins
 
-DEFINES += -DAB_CD=$(MOZ_UI_LOCALE) -DPACKAGE=browser
+MOZ_LANGPACK_EID=langpack-$(AB_CD)@firefox-mobile.mozilla.org
+PREF_JS_EXPORTS = $(firstword $(wildcard $(LOCALE_SRCDIR)/mobile-l10n.js) \
+                       @srcdir@/en-US/mobile-l10n.js )
 
-SEARCH_PLUGINS = $(shell cat $(srcdir)/$(MOZ_UI_LOCALE)/searchplugins/list.txt)
+SEARCH_PLUGINS = $(shell cat \
+  $(firstword $(wildcard $(LOCALE_SRCDIR)/searchplugins/list.txt) \
+       @srcdir@/en-US/searchplugins/list.txt ) )
 
-libs:: $(addsuffix .xml,$(SEARCH_PLUGINS))
+libs:: $(addsuffix .xml, $(SEARCH_PLUGINS))
 	$(SYSINSTALL) $(IFLAGS1) $^ $(FINAL_TARGET)/searchplugins
 
 include $(topsrcdir)/config/rules.mk
+
+include $(topsrcdir)/toolkit/locales/l10n.mk
+
+clobber-zip:
+	$(RM) $(STAGEDIST)/chrome/$(AB_CD).jar \
+	  $(STAGEDIST)/chrome/$(AB_CD).manifest \
+	  $(STAGEDIST)/defaults/preferences/mobile-l10n.js
+	$(RM) -r $(STAGEDIST)/searchplugins \
+	  $(STAGEDIST)/dictionaries \
+	  $(STAGEDIST)/defaults/profile \
+	  $(STAGEDIST)/chrome/$(AB_CD)
+
+libs-%:
+	$(NSINSTALL) -D $(DIST)/install
+	@$(MAKE) -C ../../toolkit/locales libs-$* BOTH_MANIFESTS=1
+	@$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=defaults/preferences BOTH_MANIFESTS=1
+
+# This is a generic target that will make a langpack and repack tarball
+# builds. It is called from the tinderbox scripts. Alter it with caution.
+
+installers-%: clobber-% langpack-% repackage-zip-%
+	@echo "repackaging done"
new file mode 100644
--- /dev/null
+++ b/mobile/locales/en-US/defines.inc
@@ -0,0 +1,9 @@
+#filter emptyLines
+
+#define MOZ_LANGPACK_CREATOR mozilla.org
+
+# If non-English locales wish to credit multiple contributors, uncomment this
+# variable definition and use the format specified.
+# #define MOZ_LANGPACK_CONTRIBUTORS <em:contributor>Joe Solon</em:contributor> <em:contributor>Suzy Solon</em:contributor>
+
+#unfilter emptyLines
new file mode 100644
--- /dev/null
+++ b/mobile/locales/en-US/mobile-l10n.js
@@ -0,0 +1,39 @@
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is the Firefox browser.
+#
+# The Initial Developer of the Original Code is
+# Benjamin Smedberg <bsmedberg@covad.net>
+# Portions created by the Initial Developer are Copyright (C) 2004
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+#filter substitution
+
+pref("general.useragent.locale", "@AB_CD@");
new file mode 100644
--- /dev/null
+++ b/mobile/locales/filter.py
@@ -0,0 +1,62 @@
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is Mozilla.
+#
+# The Initial Developer of the Original Code is
+# Mozilla Foundation.
+# Portions created by the Initial Developer are Copyright (C) 2009
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+#   Axel Hecht <l10n@mozilla.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+
+def test(mod, path, entity = None):
+  import re
+  # ignore anything but mobile, which is our local repo checkout name
+  if mod not in ("netwerk", "dom", "toolkit", "security/manager",
+                 "mobile"):
+    return False
+  if mod != "mobile":
+    # we only have exceptions for mobile
+    return True
+  if not entity:
+    return not (re.match(r"searchplugins\/.+\.xml", path) or
+                re.match(r"mobile-l10n.js", path) or
+                re.match(r"defines.inc", path))
+  if path == "defines.inc":
+    return entity != "MOZ_LANGPACK_CONTRIBUTORS"
+
+  if path != "chrome/region.properties":
+    # only region.properties exceptions remain, compare all others
+    return True
+  
+  return not (re.match(r"browser\.search\.order\.[1-9]", entity) or
+              re.match(r"browser\.contentHandlers\.types\.[0-5]", entity) or
+              re.match(r"gecko\.handlerService\.schemes\.", entity) or
+              re.match(r"gecko\.handlerService\.defaultHandlersVersion", entity))
new file mode 100644
--- /dev/null
+++ b/mobile/locales/generic/install.rdf
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+<!--
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is Mozilla Firefox localization support scripts.
+#
+# The Initial Developer of the Original Code is
+#   Benjamin Smedberg <bsmedberg@covad.net>
+# Portions created by the Initial Developer are Copyright (C) 2004
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+#filter substitution
+-->
+
+<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+     xmlns:em="http://www.mozilla.org/2004/em-rdf#">
+  <Description about="urn:mozilla:install-manifest"
+               em:id="@MOZ_LANGPACK_EID@"
+               em:name="@MOZ_LANG_TITLE@ Language Pack"
+               em:version="@MOZ_APP_VERSION@"
+               em:type="8"
+               em:creator="@MOZ_LANGPACK_CREATOR@">
+#ifdef MOZ_LANGPACK_CONTRIBUTORS
+    @MOZ_LANGPACK_CONTRIBUTORS@
+#endif
+
+    <em:targetApplication>
+      <Description>
+        <em:id>{a23983c0-fd0e-11dc-95ff-0800200c9a66}</em:id>
+        <em:minVersion>@MOZ_APP_VERSION@</em:minVersion>
+        <em:maxVersion>@MOZ_APP_VERSION@</em:maxVersion>
+      </Description>
+    </em:targetApplication>
+  </Description>
+</RDF>