diff options
author | Márcio Alexandre Silva Delgado <coadde@lavabit.com> | 2013-01-16 15:54:22 -0200 |
---|---|---|
committer | Márcio Alexandre Silva Delgado <coadde@lavabit.com> | 2013-01-16 15:54:22 -0200 |
commit | 06a7400674aa407e41b5147be016f71c3acdda06 (patch) | |
tree | 50f3a7315288f1b8fbdca48c2a265708313d039a | |
parent | 01f906403504ea1a61cc42b6bf4d795571dda0f8 (diff) | |
parent | 55c09fec2efe49915ada22e000d6e6aa6dc503de (diff) |
Merge branch 'master' of ssh://parabolagnulinux.org:1863/srv/git/abslibre
-rw-r--r-- | libre/iceape-l10n/PKGBUILD | 1 | ||||
-rw-r--r-- | libre/icedove-l10n/PKGBUILD | 3 | ||||
-rw-r--r-- | libre/iceweasel-l10n/.gitignore (renamed from libre/iceweasel-i18n/.gitignore) | 0 | ||||
-rw-r--r-- | libre/iceweasel-l10n/Makefile (renamed from libre/iceweasel-i18n/Makefile) | 0 | ||||
-rw-r--r-- | libre/iceweasel-l10n/PKGBUILD (renamed from libre/iceweasel-i18n/PKGBUILD) | 28 | ||||
-rw-r--r-- | libre/iceweasel-l10n/PKGBUILD.in (renamed from libre/iceweasel-i18n/PKGBUILD.in) | 0 | ||||
-rw-r--r-- | libre/iceweasel-l10n/region.properties | 32 | ||||
-rw-r--r-- | libre/iceweasel-libre/PKGBUILD | 8 | ||||
-rw-r--r-- | libre/iceweasel-libre/bug677092.patch | 330 |
9 files changed, 394 insertions, 8 deletions
diff --git a/libre/iceape-l10n/PKGBUILD b/libre/iceape-l10n/PKGBUILD index 785b726a4..1170df1d5 100644 --- a/libre/iceape-l10n/PKGBUILD +++ b/libre/iceape-l10n/PKGBUILD @@ -56,6 +56,7 @@ do package_iceape-l10n-$(echo $lang | tr A-Z a-z)() { replaces=(iceape-i18n-$(echo $lang | tr A-Z a-z)) conflicts=(iceape-i18n-$(echo $lang | tr A-Z a-z)) + provides=(iceape-i18n-$(echo $lang | tr A-Z a-z)) install -Dm644 \"\$srcdir$_path/langpack-$lang@iceape.mozilla.org.xpi\" \"\$pkgdir$_path/langpack-$lang@iceape.mozilla.org.xpi\" } " diff --git a/libre/icedove-l10n/PKGBUILD b/libre/icedove-l10n/PKGBUILD index 7e983a88c..208e176ba 100644 --- a/libre/icedove-l10n/PKGBUILD +++ b/libre/icedove-l10n/PKGBUILD @@ -10,7 +10,7 @@ pkgname=($(for lang in ${_langpacks[@]} do echo $pkgbase-$lang | tr A-Z a-z done)) -pkgrel=1 +pkgrel=2 pkgdesc="Language packs for Debian Icedove." arch=('i686' 'x86_64' 'mips64el') url="http://packages.debian.org/source/experimental/icedove" @@ -35,6 +35,7 @@ do package_icedove-l10n-$(echo $lang | tr A-Z a-z)() { replaces=(icedove-i18n-$(echo $lang | tr A-Z a-z)) conflicts=(icedove-i18n-$(echo $lang | tr A-Z a-z)) + provides=(icedove-i18n-$(echo $lang | tr A-Z a-z)) install -Dm644 \"\$srcdir/langpack-$lang@icedove.mozilla.org.xpi\" \"\$pkgdir$_path/langpack-$lang@icedove.mozilla.org.xpi\" } " diff --git a/libre/iceweasel-i18n/.gitignore b/libre/iceweasel-l10n/.gitignore index 3e1eb57b5..3e1eb57b5 100644 --- a/libre/iceweasel-i18n/.gitignore +++ b/libre/iceweasel-l10n/.gitignore diff --git a/libre/iceweasel-i18n/Makefile b/libre/iceweasel-l10n/Makefile index d596111f3..d596111f3 100644 --- a/libre/iceweasel-i18n/Makefile +++ b/libre/iceweasel-l10n/Makefile diff --git a/libre/iceweasel-i18n/PKGBUILD b/libre/iceweasel-l10n/PKGBUILD index 437e959d3..ec959542e 100644 --- a/libre/iceweasel-i18n/PKGBUILD +++ b/libre/iceweasel-l10n/PKGBUILD @@ -16,7 +16,7 @@ debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; } _langpacks=(ach af ak ar as ast be bg bn-BD bn-IN br bs ca cs csb cy da de el en-GB en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gu-IN he hi-IN hr hu hy-AM id is it ja kk km kn ko ku lg lij lt lv mai mk ml mr nb-NO nl nn-NO nso or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv-SE ta ta-LK te th tr uk vi zh-CN zh-TW zu) -pkgbase=iceweasel-i18n +pkgbase=iceweasel-l10n pkgname=($(for lang in ${_langpacks[@]} do echo $pkgbase-$lang | tr A-Z a-z done)) @@ -29,12 +29,15 @@ arch=('any') url="http://www.geticeweasel.org/" license=('MPL') depends=("iceweasel-libre>=$pkgver") -source=() +makedepends=('unzip' 'zip') +source=('region.properties') for lang in ${_langpacks[@]} do source+=("${_debrepo}/`debfile ${_debname}`-l10n-$(echo $lang | tr A-Z a-z)_${_debver}-${_debrel}_all.deb") done +_path="/usr/lib/iceweasel/extensions" + build() { cd "${srcdir}" for f in *.deb @@ -42,21 +45,34 @@ build() { bsdtar xf $f bsdtar xf data.tar.xz done -} -_path="/usr/lib/iceweasel/extensions" +cd $srcdir$_path +for i in ${_langpacks[@]} +do + unzip -q langpack-$i@iceweasel.mozilla.org.xpi -d $i + rm langpack-$i@iceweasel.mozilla.org.xpi + install -Dm644 $srcdir/region.properties $i/chrome/$i/locale/browser-region + zip -q -r langpack-$i@iceweasel.mozilla.org.xpi $i +done + +cd $srcdir +} for lang in ${_langpacks[@]} do eval " -package_iceweasel-i18n-$(echo $lang | tr A-Z a-z)() { +package_iceweasel-l10n-$(echo $lang | tr A-Z a-z)() { + replaces=(icedove-i18n-$(echo $lang | tr A-Z a-z)) + conflicts=(icedove-i18n-$(echo $lang | tr A-Z a-z)) + provides=(icedove-i18n-$(echo $lang | tr A-Z a-z)) install -Dm644 \"\$srcdir$_path/langpack-$lang@iceweasel.mozilla.org.xpi\" \"\$pkgdir$_path/langpack-$lang@iceweasel.mozilla.org.xpi\" } " done -md5sums=('08556c8d27a4313b5e67e655d2e1e828' +md5sums=('428246ef3fb64103ff2cf5eaae2a92ca' + '08556c8d27a4313b5e67e655d2e1e828' '9fa01f43db09b12cd724f94c28883a9e' '0d1ef852709fcae1842105d675c22312' '56247c867b52a19808ca72f7fceb349a' diff --git a/libre/iceweasel-i18n/PKGBUILD.in b/libre/iceweasel-l10n/PKGBUILD.in index 05477caef..05477caef 100644 --- a/libre/iceweasel-i18n/PKGBUILD.in +++ b/libre/iceweasel-l10n/PKGBUILD.in diff --git a/libre/iceweasel-l10n/region.properties b/libre/iceweasel-l10n/region.properties new file mode 100644 index 000000000..4399d8db7 --- /dev/null +++ b/libre/iceweasel-l10n/region.properties @@ -0,0 +1,32 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# Default search engine +browser.search.defaultenginename=DuckDuckGo HTML + +# Search engine order (order displayed in the search bar dropdown)s +browser.search.order.1=DuckDuckGo HTML +browser.search.order.2=DuckDuckGo Lite +browser.search.order.3=Seeks Search + +# URL for site-specific search engines +# TRANSLATION NOTE: {moz:domain} and {searchTerms} are placeholders for the site +# to be searched and the user's search query. Place them in the appropriate location +# for your locale's URL but do not translate them. +browser.search.siteSearchURL=https://duckduckgo.com/html/?q=site%3A{moz:domain}+{searchTerms} + +# increment this number when anything gets changed in the list below. This will +# cause Firefox to re-read these prefs and inject any new handlers into the +# profile database. Note that "new" is defined as "has a different URL"; this +# means that it's not possible to update the name of existing handler, so +# don't make any spelling errors here. +gecko.handlerService.defaultHandlersVersion=3 + +# The default set of protocol handlers for irc: +gecko.handlerService.schemes.irc.0.name=Freenode +gecko.handlerService.schemes.irc.0.uriTemplate=https://webchat.freenode.net/?channels=%s + +# The default set of protocol handlers for ircs: +gecko.handlerService.schemes.ircs.0.name=Freenode +gecko.handlerService.schemes.ircs.0.uriTemplate=https://webchat.freenode.net/?channels=%s diff --git a/libre/iceweasel-libre/PKGBUILD b/libre/iceweasel-libre/PKGBUILD index 12cdb98d5..cbf402860 100644 --- a/libre/iceweasel-libre/PKGBUILD +++ b/libre/iceweasel-libre/PKGBUILD @@ -22,7 +22,7 @@ debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; } _pkgname=iceweasel pkgname=iceweasel-libre pkgver=$_debver.$_debrel -pkgrel=1 +pkgrel=4 if [ -z "$pkgname" ]; then pkgname=$_pkgname; fi if $_pgo; then @@ -52,6 +52,7 @@ source=("$_debrepo/`debfile $_debname`_$_debver.orig.tar.bz2" iceweasel-install-dir.patch vendor.js shared-libs.patch + bug677092.patch Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch) md5sums=('366e1e4847d7e00eba77ee5a4be0d3db' '6a571d3a3b355c331f67d57702f4fccf' @@ -62,6 +63,7 @@ md5sums=('366e1e4847d7e00eba77ee5a4be0d3db' 'abf5ecb74caa857abb42bcfbb3442d9c' '0d053487907de4376d67d8f499c5502b' '52e52f840a49eb1d14be1c0065b03a93' + 'e1204e0be964b6964ebfb6467e05141f' '65f68090d2a69b467bd2707d0c4ea3bd') if [ "$_pkgname" != "$pkgname" ]; then @@ -97,6 +99,10 @@ build() { patch -Np1 -i "$srcdir/iceweasel-install-dir.patch" # install to /usr/lib/$_pkgname patch -Np1 -i "$srcdir/libre.patch" patch -Np1 -i "$srcdir/shared-libs.patch" + + # Back out https://bugzilla.mozilla.org/show_bug.cgi?id=677092 + # in order to fix https://bugzilla.mozilla.org/show_bug.cgi?id=818468 + patch -Rp1 -i ../bug677092.patch cp "$srcdir/mozconfig" .mozconfig # Load our build config, disable SafeSearch diff --git a/libre/iceweasel-libre/bug677092.patch b/libre/iceweasel-libre/bug677092.patch new file mode 100644 index 000000000..aee09b451 --- /dev/null +++ b/libre/iceweasel-libre/bug677092.patch @@ -0,0 +1,330 @@ +exporting patch: +# HG changeset patch +# User Axel Hecht <axel@pike.org> +# Date 1348128099 -7200 +# Node ID 812d0ba8317507c4026958a740960384eac1507a +# Parent 97e49e7a33266a0680e5af59289264a07e4321f8 +bug 677092, make language packs restartless, r=Unfocused +Make language packs just trigger the chrome registration hooks, and +disable picking up bootstrap.js, and declare them restartless. + +diff -r 97e49e7a3326 -r 812d0ba83175 toolkit/mozapps/extensions/XPIProvider.jsm +--- a/toolkit/mozapps/extensions/XPIProvider.jsm Wed Sep 26 13:08:50 2012 +0200 ++++ b/toolkit/mozapps/extensions/XPIProvider.jsm Thu Sep 20 10:01:39 2012 +0200 +@@ -740,8 +740,8 @@ + } + } + else { +- // spell check dictionaries never require a restart +- if (addon.type == "dictionary") ++ // spell check dictionaries and language packs never require a restart ++ if (addon.type == "dictionary" || addon.type == "locale") + addon.bootstrap = true; + + // Only extensions are allowed to provide an optionsURL, optionsType or aboutURL. For +@@ -3695,6 +3695,11 @@ + Components.manager.addBootstrappedManifestLocation(aFile); + + try { ++ // Don't call bootstrap.js methods for language packs, ++ // they only contain chrome. ++ if (aType == "locale") ++ return; ++ + // Load the scope if it hasn't already been loaded + if (!(aId in this.bootstrapScopes)) + this.loadBootstrapScope(aId, aFile, aVersion, aType); +diff -r 97e49e7a3326 -r 812d0ba83175 toolkit/mozapps/extensions/test/addons/test_langpack/chrome.manifest +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/toolkit/mozapps/extensions/test/addons/test_langpack/chrome.manifest Thu Sep 20 10:01:39 2012 +0200 +@@ -0,0 +1,1 @@ ++locale test-langpack x-testing locale/x-testing +diff -r 97e49e7a3326 -r 812d0ba83175 toolkit/mozapps/extensions/test/addons/test_langpack/install.rdf +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/toolkit/mozapps/extensions/test/addons/test_langpack/install.rdf Thu Sep 20 10:01:39 2012 +0200 +@@ -0,0 +1,23 @@ ++<?xml version="1.0"?> ++ ++<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>langpack-x-testing@tests.mozilla.org</em:id> ++ <em:type>8</em:type> ++ <em:version>1.0</em:version> ++ ++ <!-- Front End MetaData --> ++ <em:name>Language Pack x-testing</em:name> ++ ++ <em:targetApplication> ++ <Description> ++ <em:id>xpcshell@tests.mozilla.org</em:id> ++ <em:minVersion>1</em:minVersion> ++ <em:maxVersion>2</em:maxVersion> ++ </Description> ++ </em:targetApplication> ++ ++ </Description> ++</RDF> +diff -r 97e49e7a3326 -r 812d0ba83175 toolkit/mozapps/extensions/test/xpcshell/test_langpack.js +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/toolkit/mozapps/extensions/test/xpcshell/test_langpack.js Thu Sep 20 10:01:39 2012 +0200 +@@ -0,0 +1,247 @@ ++/* Any copyright is dedicated to the Public Domain. ++ * http://creativecommons.org/publicdomain/zero/1.0/ ++ */ ++ ++// This verifies that language packs can be used without restarts. ++Components.utils.import("resource://gre/modules/Services.jsm"); ++ ++// Enable loading extensions from the user scopes ++Services.prefs.setIntPref("extensions.enabledScopes", ++ AddonManager.SCOPE_PROFILE + AddonManager.SCOPE_USER); ++ ++createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2"); ++ ++const profileDir = gProfD.clone(); ++profileDir.append("extensions"); ++const userExtDir = gProfD.clone(); ++userExtDir.append("extensions2"); ++userExtDir.append(gAppInfo.ID); ++registerDirectory("XREUSysExt", userExtDir.parent); ++ ++var chrome = Components.classes["@mozilla.org/chrome/chrome-registry;1"] ++ .getService(Components.interfaces.nsIXULChromeRegistry); ++ ++function do_check_locale_not_registered(provider) { ++ let didThrow = false; ++ try { ++ chrome.getSelectedLocale(provider); ++ } catch (e) { ++ didThrow = true; ++ } ++ do_check_true(didThrow); ++} ++ ++function run_test() { ++ do_test_pending(); ++ ++ startupManager(); ++ ++ run_test_1(); ++} ++ ++// Tests that installing doesn't require a restart ++function run_test_1() { ++ prepare_test({ }, [ ++ "onNewInstall" ++ ]); ++ ++ AddonManager.getInstallForFile(do_get_addon("test_langpack"), function(install) { ++ ensure_test_completed(); ++ ++ do_check_neq(install, null); ++ do_check_eq(install.type, "locale"); ++ do_check_eq(install.version, "1.0"); ++ do_check_eq(install.name, "Language Pack x-testing"); ++ do_check_eq(install.state, AddonManager.STATE_DOWNLOADED); ++ do_check_true(install.addon.hasResource("install.rdf")); ++ do_check_false(install.addon.hasResource("bootstrap.js")); ++ do_check_eq(install.addon.operationsRequiringRestart & ++ AddonManager.OP_NEEDS_RESTART_INSTALL, 0); ++ ++ let addon = install.addon; ++ prepare_test({ ++ "langpack-x-testing@tests.mozilla.org": [ ++ ["onInstalling", false], ++ "onInstalled" ++ ] ++ }, [ ++ "onInstallStarted", ++ "onInstallEnded", ++ ], function() { ++ do_check_true(addon.hasResource("install.rdf")); ++ check_test_1(); ++ }); ++ install.install(); ++ }); ++} ++ ++function check_test_1() { ++ AddonManager.getAllInstalls(function(installs) { ++ // There should be no active installs now since the install completed and ++ // doesn't require a restart. ++ do_check_eq(installs.length, 0); ++ ++ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) { ++ do_check_neq(b1, null); ++ do_check_eq(b1.version, "1.0"); ++ do_check_false(b1.appDisabled); ++ do_check_false(b1.userDisabled); ++ do_check_true(b1.isActive); ++ // check chrome reg that language pack is registered ++ do_check_eq(chrome.getSelectedLocale("test-langpack"), "x-testing"); ++ do_check_true(b1.hasResource("install.rdf")); ++ do_check_false(b1.hasResource("bootstrap.js")); ++ ++ let dir = do_get_addon_root_uri(profileDir, "langpack-x-testing@tests.mozilla.org"); ++ ++ AddonManager.getAddonsWithOperationsByTypes(null, function(list) { ++ do_check_eq(list.length, 0); ++ ++ run_test_2(); ++ }); ++ }); ++ }); ++} ++ ++// Tests that disabling doesn't require a restart ++function run_test_2() { ++ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) { ++ prepare_test({ ++ "langpack-x-testing@tests.mozilla.org": [ ++ ["onDisabling", false], ++ "onDisabled" ++ ] ++ }); ++ ++ do_check_eq(b1.operationsRequiringRestart & ++ AddonManager.OP_NEEDS_RESTART_DISABLE, 0); ++ b1.userDisabled = true; ++ ensure_test_completed(); ++ ++ do_check_neq(b1, null); ++ do_check_eq(b1.version, "1.0"); ++ do_check_false(b1.appDisabled); ++ do_check_true(b1.userDisabled); ++ do_check_false(b1.isActive); ++ // check chrome reg that language pack is not registered ++ do_check_locale_not_registered("test-langpack"); ++ ++ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(newb1) { ++ do_check_neq(newb1, null); ++ do_check_eq(newb1.version, "1.0"); ++ do_check_false(newb1.appDisabled); ++ do_check_true(newb1.userDisabled); ++ do_check_false(newb1.isActive); ++ ++ run_test_3(); ++ }); ++ }); ++} ++ ++// Test that restarting doesn't accidentally re-enable ++function run_test_3() { ++ shutdownManager(); ++ startupManager(false); ++ // check chrome reg that language pack is not registered ++ do_check_locale_not_registered("test-langpack"); ++ ++ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) { ++ do_check_neq(b1, null); ++ do_check_eq(b1.version, "1.0"); ++ do_check_false(b1.appDisabled); ++ do_check_true(b1.userDisabled); ++ do_check_false(b1.isActive); ++ ++ run_test_4(); ++ }); ++} ++ ++// Tests that enabling doesn't require a restart ++function run_test_4() { ++ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) { ++ prepare_test({ ++ "langpack-x-testing@tests.mozilla.org": [ ++ ["onEnabling", false], ++ "onEnabled" ++ ] ++ }); ++ ++ do_check_eq(b1.operationsRequiringRestart & ++ AddonManager.OP_NEEDS_RESTART_ENABLE, 0); ++ b1.userDisabled = false; ++ ensure_test_completed(); ++ ++ do_check_neq(b1, null); ++ do_check_eq(b1.version, "1.0"); ++ do_check_false(b1.appDisabled); ++ do_check_false(b1.userDisabled); ++ do_check_true(b1.isActive); ++ // check chrome reg that language pack is registered ++ do_check_eq(chrome.getSelectedLocale("test-langpack"), "x-testing"); ++ ++ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(newb1) { ++ do_check_neq(newb1, null); ++ do_check_eq(newb1.version, "1.0"); ++ do_check_false(newb1.appDisabled); ++ do_check_false(newb1.userDisabled); ++ do_check_true(newb1.isActive); ++ ++ run_test_5(); ++ }); ++ }); ++} ++ ++// Tests that a restart shuts down and restarts the add-on ++function run_test_5() { ++ shutdownManager(); ++ startupManager(false); ++ // check chrome reg that language pack is registered ++ do_check_eq(chrome.getSelectedLocale("test-langpack"), "x-testing"); ++ ++ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) { ++ do_check_neq(b1, null); ++ do_check_eq(b1.version, "1.0"); ++ do_check_false(b1.appDisabled); ++ do_check_false(b1.userDisabled); ++ do_check_true(b1.isActive); ++ do_check_false(isExtensionInAddonsList(profileDir, b1.id)); ++ ++ run_test_7(); ++ }); ++} ++ ++// Tests that uninstalling doesn't require a restart ++function run_test_7() { ++ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) { ++ prepare_test({ ++ "langpack-x-testing@tests.mozilla.org": [ ++ ["onUninstalling", false], ++ "onUninstalled" ++ ] ++ }); ++ ++ do_check_eq(b1.operationsRequiringRestart & ++ AddonManager.OP_NEEDS_RESTART_UNINSTALL, 0); ++ b1.uninstall(); ++ ++ check_test_7(); ++ }); ++} ++ ++function check_test_7() { ++ ensure_test_completed(); ++ // check chrome reg that language pack is not registered ++ do_check_locale_not_registered("test-langpack"); ++ ++ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) { ++ do_check_eq(b1, null); ++ ++ restartManager(); ++ ++ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(newb1) { ++ do_check_eq(newb1, null); ++ ++ do_test_finished(); ++ }); ++ }); ++} +diff -r 97e49e7a3326 -r 812d0ba83175 toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini +--- a/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini Wed Sep 26 13:08:50 2012 +0200 ++++ b/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini Thu Sep 20 10:01:39 2012 +0200 +@@ -139,6 +139,7 @@ + [test_corrupt_strictcompat.js] + [test_db_sanity.js] + [test_dictionary.js] ++[test_langpack.js] + [test_disable.js] + [test_distribution.js] + [test_dss.js] |