--- /dev/null
+To install:
+
+- create a postgis-enabled database named syj for postgres user syj
+- configure your webserver
+ see a lighttpd configuration example at scripts/lighttpd.conf
+- run
+ $ sh scripts/init.sh
+
+That should work
--- /dev/null
+From e6b764e2afc1fdcce8bd35515ea717ea2e2eba3a Mon Sep 17 00:00:00 2001
+From: arno <arno@renevier.net>
+Date: Mon, 21 Mar 2011 19:12:49 +0100
+Subject: [PATCH 1/5] update script location in single file
+
+---
+ openlayers/lib/OpenLayers.js | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/openlayers/lib/OpenLayers.js b/openlayers/lib/OpenLayers.js
+index af46000..0a42abd 100644
+--- a/openlayers/lib/OpenLayers.js
++++ b/openlayers/lib/OpenLayers.js
+@@ -28,7 +28,7 @@
+ /**
+ * Relative path of this script.
+ */
+- var scriptName = (!singleFile) ? "lib/OpenLayers.js" : "OpenLayers.js";
++ var scriptName = "OpenLayers.js";
+
+ /*
+ * If window.OpenLayers isn't set when this script (OpenLayers.js) is
+--
+1.7.4.1
+
--- /dev/null
+From f738bc5fed1dbc67177cdd7066713ee68bcf8df8 Mon Sep 17 00:00:00 2001
+From: arno <arno@renevier.net>
+Date: Mon, 21 Mar 2011 19:57:20 +0100
+Subject: [PATCH 2/5] xyz-wrapdateline: fixes #2246
+
+---
+ openlayers/lib/OpenLayers/Layer/XYZ.js | 6 ++++++
+ 1 files changed, 6 insertions(+), 0 deletions(-)
+
+diff --git a/openlayers/lib/OpenLayers/Layer/XYZ.js b/openlayers/lib/OpenLayers/Layer/XYZ.js
+index d8cbf53..95769bb 100644
+--- a/openlayers/lib/OpenLayers/Layer/XYZ.js
++++ b/openlayers/lib/OpenLayers/Layer/XYZ.js
+@@ -147,6 +147,12 @@ OpenLayers.Layer.XYZ = OpenLayers.Class(OpenLayers.Layer.Grid, {
+ var z = this.serverResolutions != null ?
+ OpenLayers.Util.indexOf(this.serverResolutions, res) :
+ this.map.getZoom() + this.zoomOffset;
++ var limit = Math.pow(2, z);
++
++ if (this.wrapDateLine)
++ {
++ x = ((x % limit) + limit) % limit;
++ }
+
+ return {'x': x, 'y': y, 'z': z};
+ },
+--
+1.7.4.1
+
--- /dev/null
+From 78617274b5acad1d89cb3bbe218b2930f9298ae4 Mon Sep 17 00:00:00 2001
+From: arno <arno@renevier.net>
+Date: Mon, 21 Mar 2011 20:11:21 +0100
+Subject: [PATCH 3/5] fixes #2649
+
+---
+ openlayers/lib/OpenLayers/Layer/Vector.js | 7 +++----
+ 1 files changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/openlayers/lib/OpenLayers/Layer/Vector.js b/openlayers/lib/OpenLayers/Layer/Vector.js
+index d395d0e..904186f 100644
+--- a/openlayers/lib/OpenLayers/Layer/Vector.js
++++ b/openlayers/lib/OpenLayers/Layer/Vector.js
+@@ -762,10 +762,9 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
+ * options - {Object}
+ */
+ destroyFeatures: function(features, options) {
+- var all = (features == undefined); // evaluates to true if
+- // features is null
+- if(all) {
+- features = this.features;
++ var all = (features == undefined);
++ if(all && this.features) {
++ features = this.features.slice();
+ }
+ if(features) {
+ this.removeFeatures(features, options);
+--
+1.7.4.1
+
--- /dev/null
+From b26706080a45b5768112204ab160e7a547027a66 Mon Sep 17 00:00:00 2001
+From: arno <arno@renevier.net>
+Date: Mon, 21 Mar 2011 20:12:09 +0100
+Subject: [PATCH 4/5] fixes #2687
+
+---
+ openlayers/lib/OpenLayers/Lang.js | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/openlayers/lib/OpenLayers/Lang.js b/openlayers/lib/OpenLayers/Lang.js
+index 82230e0..1850705 100644
+--- a/openlayers/lib/OpenLayers/Lang.js
++++ b/openlayers/lib/OpenLayers/Lang.js
+@@ -59,6 +59,9 @@ OpenLayers.Lang = {
+ setCode: function(code) {
+ var lang;
+ if(!code) {
++ code = document.documentElement.getAttribute("lang");
++ }
++ if(!code) {
+ code = (OpenLayers.BROWSER_NAME == "msie") ?
+ navigator.userLanguage : navigator.language;
+ }
+--
+1.7.4.1
+
--- /dev/null
+From 9c222d97bff8c4546b3a4947cc9bb79419307c5e Mon Sep 17 00:00:00 2001
+From: arno <arno@renevier.net>
+Date: Mon, 21 Mar 2011 21:12:42 +0100
+Subject: [PATCH 5/5] allow running build.py from any directory
+
+---
+ openlayers/build/build.py | 17 +++++++++++------
+ openlayers/build/buildUncompressed.py | 16 ++++++++++------
+ 2 files changed, 21 insertions(+), 12 deletions(-)
+
+diff --git a/openlayers/build/build.py b/openlayers/build/build.py
+index 9ca6a1c..4f08216 100755
+--- a/openlayers/build/build.py
++++ b/openlayers/build/build.py
+@@ -1,7 +1,12 @@
+ #!/usr/bin/env python
+
+-import sys
+-sys.path.append("../tools")
++import sys, os.path
++
++scriptdir = os.path.dirname(sys.argv[0])
++normpath = lambda p: os.path.normpath(os.path.join(scriptdir, p))
++
++sys.path.append(normpath("../tools"))
++
+ import mergejs
+ import optparse
+
+@@ -33,9 +38,9 @@ def build(config_file = None, output_file = None, options = None):
+ if options.compressor and options.compressor in have_compressor:
+ use_compressor = options.compressor
+
+- sourceDirectory = "../lib"
+- configFilename = "full.cfg"
+- outputFilename = "OpenLayers.js"
++ sourceDirectory = normpath("../lib")
++ configFilename = normpath("full.cfg")
++ outputFilename = normpath("OpenLayers.js")
+
+ if config_file:
+ configFilename = config_file
+@@ -61,7 +66,7 @@ def build(config_file = None, output_file = None, options = None):
+ else: # fallback
+ minimized = merged
+ print "Adding license file."
+- minimized = file("license.txt").read() + minimized
++ minimized = file(normpath("license.txt")).read() + minimized
+
+ print "Writing to %s." % outputFilename
+ file(outputFilename, "w").write(minimized)
+diff --git a/openlayers/build/buildUncompressed.py b/openlayers/build/buildUncompressed.py
+index fd38aa7..8d59e95 100755
+--- a/openlayers/build/buildUncompressed.py
++++ b/openlayers/build/buildUncompressed.py
+@@ -1,13 +1,17 @@
+ #!/usr/bin/env python
+
+-import sys
+-sys.path.append("../tools")
++import sys, os.path
++
++scriptdir = os.path.dirname(sys.argv[0])
++normpath = lambda p: os.path.normpath(os.path.join(scriptdir, p))
++
++sys.path.append(normpath("../tools"))
+
+ import jsmin, mergejs
+
+-sourceDirectory = "../lib"
+-configFilename = "full.cfg"
+-outputFilename = "OpenLayers.js"
++sourceDirectory = normpath("../lib")
++configFilename = normpath("full.cfg")
++outputFilename = normpath("OpenLayers.js")
+
+ if len(sys.argv) > 1:
+ configFilename = sys.argv[1] + ".cfg"
+@@ -17,7 +21,7 @@ if len(sys.argv) > 2:
+ print "Merging libraries."
+ merged = mergejs.run(sourceDirectory, None, configFilename)
+ print "Adding license file."
+-merged = file("license.txt").read() + merged
++merged = file(normpath("license.txt")).read() + merged
+
+ print "Writing to %s." % outputFilename
+ file(outputFilename, "w").write(merged)
+--
+1.7.4.1
+
-Subproject commit 9c222d97bff8c4546b3a4947cc9bb79419307c5e
+Subproject commit 27b4b4180bbaadf9c808a3ccf9f8d556b926e131
--- /dev/null
+#!/bin/sh
+
+git submodule update --init
+
+git submodule -q foreach "
+ if ls -A $PWD/patches/\${name##*/} >/dev/null 2>&1; then
+ git checkout master
+ git am $PWD/patches/\${name##*/}/*
+ fi
+"
+
+sh scripts/updatezend.sh
+sh scripts/reset.postgres.sh -g
--- /dev/null
+#!/bin/sh
+
+ZEND_VERSION=$(lynx -dump http://framework.zend.com/changelog | sed -n -e 's/^Changelog:\s*\([0-9\.]\+\)/\1/p')
+
+if [ -f library/Zend/Version.php ]; then
+ php -r "include('library/Zend/Version.php'); exit(Zend_Version::compareVersion(\"$ZEND_VERSION\"));"
+ if [ $? -ne 1 ];then
+ echo no new version
+ fi
+fi
+
+echo downloading zend $ZEND_VERSION
+
+wget http://framework.zend.com/releases/ZendFramework-$ZEND_VERSION/ZendFramework-$ZEND_VERSION-minimal.tar.gz
+tar zxf ZendFramework-$ZEND_VERSION-minimal.tar.gz
+rm -rf library/Zend
+mv ZendFramework-$ZEND_VERSION-minimal/library/Zend library/
+rm -rf ZendFramework-$ZEND_VERSION-minimal ZendFramework-$ZEND_VERSION-minimal.tar.gz