You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2015/07/01 11:35:32 UTC

[1/2] jena git commit: Update template.bin to improve JENA_HOME resolution (JENA-977)

Repository: jena
Updated Branches:
  refs/heads/JENA-977 9b0703919 -> ea55883d3


Update template.bin to improve JENA_HOME resolution (JENA-977)

Applies the JENA_HOME resolution fixes from the tdbloader2 script
changes to the template.bin template that is used to generate the
various Jena command scripts


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/40fe2cd9
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/40fe2cd9
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/40fe2cd9

Branch: refs/heads/JENA-977
Commit: 40fe2cd93861e99e53184f76383323565407e372
Parents: 9b07039
Author: Rob Vesse <rv...@apache.org>
Authored: Wed Jul 1 10:32:45 2015 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Wed Jul 1 10:32:45 2015 +0100

----------------------------------------------------------------------
 apache-jena/README       |  9 +++--
 apache-jena/cmd-maker    | 12 ++-----
 apache-jena/template.bin | 77 ++++++++++++++++++++++++++++++++++---------
 3 files changed, 69 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/40fe2cd9/apache-jena/README
----------------------------------------------------------------------
diff --git a/apache-jena/README b/apache-jena/README
index 5f80997..e283a8c 100644
--- a/apache-jena/README
+++ b/apache-jena/README
@@ -27,20 +27,23 @@
   line tools.  The scripts can be copied to a convenient place on the
   command path.
 
-  To use the Jena tools from the command line you need to set the JENAROOT
+  To use the Jena tools from the command line you need to set the JENA_HOME
   environment variable to point to the location where you have 
   unzipped the Jena distribution:
 
   Windows:
-    set JENA_HOME=\path\to\apache-jena-2.7.5
+    set JENA_HOME=\path\to\apache-jena-x.y.z
     bat\sparql.bat --version    
 
   Linux:
     The command scripts automatically set JENA_HOME but if you want
     to switch to a different version fro the same scripts:
 
-    export JENA_HOME=/path/to/apache-jena-2.7.5
+    export JENA_HOME=/path/to/apache-jena-x.y.z
     bin/sparql --version    
+
+  Where x.y.z is the version of the Jena command line tools you have 
+  downloaded
     
   If you receive a class not found exception when trying to run one of the 
   scripts then you may have set JENA_HOME incorrectly. A quick and easy way

http://git-wip-us.apache.org/repos/asf/jena/blob/40fe2cd9/apache-jena/cmd-maker
----------------------------------------------------------------------
diff --git a/apache-jena/cmd-maker b/apache-jena/cmd-maker
index eb2a4e4..71e297c 100755
--- a/apache-jena/cmd-maker
+++ b/apache-jena/cmd-maker
@@ -19,14 +19,8 @@
 # Not tdbloader2.
 ## tdbloader2 is slightly different.
 ##   The main program is not a java program
-##   It is split into tdbloader2 and tdbloader2worker
-##   tdbloader2worker (the mainporgram) is the same in 
-##   developement and here. tdbloader2 is like the script 
-##   wrappers except it execs tdbloader2worker, not
-##   java.  It needs manually updating.
-##   Replace the java exec with:
-##     export JENA_CP
-##     exec tdbloader2worker "$@"
+##   It is split into several scripts that leverage a mixture of 
+##   POSIX and java tools and should be maintained separately
 
 CMDS=$(cat <<EOF
 jena.rdfcat
@@ -86,5 +80,3 @@ do
     make_bat $cmd
 done
 
-## Specials
-cp ../jena-tdb/bin/tdbloader2worker bin/tdbloader2worker

http://git-wip-us.apache.org/repos/asf/jena/blob/40fe2cd9/apache-jena/template.bin
----------------------------------------------------------------------
diff --git a/apache-jena/template.bin b/apache-jena/template.bin
index aad767a..bbc91fb 100644
--- a/apache-jena/template.bin
+++ b/apache-jena/template.bin
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup


[2/2] jena git commit: Regenerate commands with JENA_HOME fix (JENA-977)

Posted by rv...@apache.org.
Regenerate commands with JENA_HOME fix (JENA-977)

This commit regenerates the commands with the fix for JENA_HOME
resolution in the template


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/ea55883d
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/ea55883d
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/ea55883d

Branch: refs/heads/JENA-977
Commit: ea55883d3e3607e27a24e553caca8f8678020214
Parents: 40fe2cd
Author: Rob Vesse <rv...@apache.org>
Authored: Wed Jul 1 10:34:50 2015 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Wed Jul 1 10:34:50 2015 +0100

----------------------------------------------------------------------
 apache-jena/bin/arq        | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/infer      | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/iri        | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/juuid      | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/nquads     | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/ntriples   | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/qparse     | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/rdfcat     | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/rdfcompare | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/rdfcopy    | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/rdfparse   | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/rdfxml     | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/riot       | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/rset       | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/rsparql    | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/rupdate    | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/schemagen  | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/sparql     | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/tdbbackup  | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/tdbdump    | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/tdbloader  | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/tdbquery   | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/tdbstats   | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/tdbupdate  | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/trig       | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/turtle     | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/uparse     | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/update     | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/utf8       | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/wwwdec     | 77 ++++++++++++++++++++++++++++++++---------
 apache-jena/bin/wwwenc     | 77 ++++++++++++++++++++++++++++++++---------
 31 files changed, 1891 insertions(+), 496 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/arq
----------------------------------------------------------------------
diff --git a/apache-jena/bin/arq b/apache-jena/bin/arq
index 00ad2b4..8d2f371 100755
--- a/apache-jena/bin/arq
+++ b/apache-jena/bin/arq
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/infer
----------------------------------------------------------------------
diff --git a/apache-jena/bin/infer b/apache-jena/bin/infer
index 4f25d25..d0ba197 100755
--- a/apache-jena/bin/infer
+++ b/apache-jena/bin/infer
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/iri
----------------------------------------------------------------------
diff --git a/apache-jena/bin/iri b/apache-jena/bin/iri
index d67bda1..f5e9e0b 100755
--- a/apache-jena/bin/iri
+++ b/apache-jena/bin/iri
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/juuid
----------------------------------------------------------------------
diff --git a/apache-jena/bin/juuid b/apache-jena/bin/juuid
index f6d9c0b..dcf6b7f 100755
--- a/apache-jena/bin/juuid
+++ b/apache-jena/bin/juuid
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/nquads
----------------------------------------------------------------------
diff --git a/apache-jena/bin/nquads b/apache-jena/bin/nquads
index 005bf03..592f6a9 100755
--- a/apache-jena/bin/nquads
+++ b/apache-jena/bin/nquads
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/ntriples
----------------------------------------------------------------------
diff --git a/apache-jena/bin/ntriples b/apache-jena/bin/ntriples
index ca46add..34db759 100755
--- a/apache-jena/bin/ntriples
+++ b/apache-jena/bin/ntriples
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/qparse
----------------------------------------------------------------------
diff --git a/apache-jena/bin/qparse b/apache-jena/bin/qparse
index 4888271..02560fc 100755
--- a/apache-jena/bin/qparse
+++ b/apache-jena/bin/qparse
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/rdfcat
----------------------------------------------------------------------
diff --git a/apache-jena/bin/rdfcat b/apache-jena/bin/rdfcat
index d84cf6c..8553e94 100755
--- a/apache-jena/bin/rdfcat
+++ b/apache-jena/bin/rdfcat
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/rdfcompare
----------------------------------------------------------------------
diff --git a/apache-jena/bin/rdfcompare b/apache-jena/bin/rdfcompare
index d231e38..e9ff1c1 100755
--- a/apache-jena/bin/rdfcompare
+++ b/apache-jena/bin/rdfcompare
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/rdfcopy
----------------------------------------------------------------------
diff --git a/apache-jena/bin/rdfcopy b/apache-jena/bin/rdfcopy
index 44673ef..bd95e53 100755
--- a/apache-jena/bin/rdfcopy
+++ b/apache-jena/bin/rdfcopy
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/rdfparse
----------------------------------------------------------------------
diff --git a/apache-jena/bin/rdfparse b/apache-jena/bin/rdfparse
index 57570ef..1d22621 100755
--- a/apache-jena/bin/rdfparse
+++ b/apache-jena/bin/rdfparse
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/rdfxml
----------------------------------------------------------------------
diff --git a/apache-jena/bin/rdfxml b/apache-jena/bin/rdfxml
index 35a5840..bebb6e1 100755
--- a/apache-jena/bin/rdfxml
+++ b/apache-jena/bin/rdfxml
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/riot
----------------------------------------------------------------------
diff --git a/apache-jena/bin/riot b/apache-jena/bin/riot
index 681c0ed..d3b21b5 100755
--- a/apache-jena/bin/riot
+++ b/apache-jena/bin/riot
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/rset
----------------------------------------------------------------------
diff --git a/apache-jena/bin/rset b/apache-jena/bin/rset
index c14f584..7d494a8 100755
--- a/apache-jena/bin/rset
+++ b/apache-jena/bin/rset
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/rsparql
----------------------------------------------------------------------
diff --git a/apache-jena/bin/rsparql b/apache-jena/bin/rsparql
index a9a0bc8..ddea695 100755
--- a/apache-jena/bin/rsparql
+++ b/apache-jena/bin/rsparql
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/rupdate
----------------------------------------------------------------------
diff --git a/apache-jena/bin/rupdate b/apache-jena/bin/rupdate
index a569d04..7612084 100755
--- a/apache-jena/bin/rupdate
+++ b/apache-jena/bin/rupdate
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/schemagen
----------------------------------------------------------------------
diff --git a/apache-jena/bin/schemagen b/apache-jena/bin/schemagen
index 0a87241..a2fbc3f 100755
--- a/apache-jena/bin/schemagen
+++ b/apache-jena/bin/schemagen
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/sparql
----------------------------------------------------------------------
diff --git a/apache-jena/bin/sparql b/apache-jena/bin/sparql
index 85f0fa2..dc6b334 100755
--- a/apache-jena/bin/sparql
+++ b/apache-jena/bin/sparql
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/tdbbackup
----------------------------------------------------------------------
diff --git a/apache-jena/bin/tdbbackup b/apache-jena/bin/tdbbackup
index d6786a3..b5f3d9b 100755
--- a/apache-jena/bin/tdbbackup
+++ b/apache-jena/bin/tdbbackup
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/tdbdump
----------------------------------------------------------------------
diff --git a/apache-jena/bin/tdbdump b/apache-jena/bin/tdbdump
index 89b4c2f..2ead54e 100755
--- a/apache-jena/bin/tdbdump
+++ b/apache-jena/bin/tdbdump
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/tdbloader
----------------------------------------------------------------------
diff --git a/apache-jena/bin/tdbloader b/apache-jena/bin/tdbloader
index 187888a..06b4356 100755
--- a/apache-jena/bin/tdbloader
+++ b/apache-jena/bin/tdbloader
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/tdbquery
----------------------------------------------------------------------
diff --git a/apache-jena/bin/tdbquery b/apache-jena/bin/tdbquery
index 18c6fb6..b4bd8fa 100755
--- a/apache-jena/bin/tdbquery
+++ b/apache-jena/bin/tdbquery
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/tdbstats
----------------------------------------------------------------------
diff --git a/apache-jena/bin/tdbstats b/apache-jena/bin/tdbstats
index a9a9cd9..aa40445 100755
--- a/apache-jena/bin/tdbstats
+++ b/apache-jena/bin/tdbstats
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/tdbupdate
----------------------------------------------------------------------
diff --git a/apache-jena/bin/tdbupdate b/apache-jena/bin/tdbupdate
index fe5aa52..3c94419 100755
--- a/apache-jena/bin/tdbupdate
+++ b/apache-jena/bin/tdbupdate
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/trig
----------------------------------------------------------------------
diff --git a/apache-jena/bin/trig b/apache-jena/bin/trig
index b3a9121..e984da0 100755
--- a/apache-jena/bin/trig
+++ b/apache-jena/bin/trig
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/turtle
----------------------------------------------------------------------
diff --git a/apache-jena/bin/turtle b/apache-jena/bin/turtle
index 716eb7c..9adb88f 100755
--- a/apache-jena/bin/turtle
+++ b/apache-jena/bin/turtle
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/uparse
----------------------------------------------------------------------
diff --git a/apache-jena/bin/uparse b/apache-jena/bin/uparse
index d8b7226..d2eef61 100755
--- a/apache-jena/bin/uparse
+++ b/apache-jena/bin/uparse
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/update
----------------------------------------------------------------------
diff --git a/apache-jena/bin/update b/apache-jena/bin/update
index 7d3c164..a7eac43 100755
--- a/apache-jena/bin/update
+++ b/apache-jena/bin/update
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/utf8
----------------------------------------------------------------------
diff --git a/apache-jena/bin/utf8 b/apache-jena/bin/utf8
index 090bcb0..67ea2e3 100755
--- a/apache-jena/bin/utf8
+++ b/apache-jena/bin/utf8
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/wwwdec
----------------------------------------------------------------------
diff --git a/apache-jena/bin/wwwdec b/apache-jena/bin/wwwdec
index 12e2c8d..f979d5c 100755
--- a/apache-jena/bin/wwwdec
+++ b/apache-jena/bin/wwwdec
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup

http://git-wip-us.apache.org/repos/asf/jena/blob/ea55883d/apache-jena/bin/wwwenc
----------------------------------------------------------------------
diff --git a/apache-jena/bin/wwwenc b/apache-jena/bin/wwwenc
index c34ba5e..9e4a9d4 100755
--- a/apache-jena/bin/wwwenc
+++ b/apache-jena/bin/wwwenc
@@ -1,23 +1,68 @@
 #!/bin/sh
 ## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
 
+function resolveLink() {
+  local NAME=$1
+
+  if [ -L "$NAME" ]; then
+    case "$OSTYPE" in
+      darwin*|bsd*)
+        # BSD style readlink behaves differently to GNU readlink
+        # Have to manually follow links
+        while [ -L "$NAME" ]; do
+          NAME=$(readlink "$NAME")
+        done
+        ;;
+      *)
+        # Assuming standard GNU readlink with -f for
+        # canonicalize and follow
+        NAME=$(readlink -f "$NAME")
+        ;;
+    esac
+  fi
+
+  echo "$NAME"
+}
+
 # If JENA_HOME is empty
-if [ -z "$JENA_HOME" ]
-	then
-    SCRIPT="$0"
-    # Catch common issue: script has been symlinked
-	if [ -L "$SCRIPT" ]
-		then
-		SCRIPT="$(readlink "$0")"
-		# If link is relative
-		case "$SCRIPT" in
-   			/*) ;; # fine
-			*) SCRIPT=$( dirname "$0" )/$SCRIPT;; # fix
-		esac
-	fi
-
-    # Work out root from script location
-    JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+if [ -z "$JENA_HOME" ]; then
+  echo "JENA_HOME not set, attempting to locate JENA_HOME automatically"
+  SCRIPT="$0"
+  # Catch common issue: script has been symlinked
+  if [ -L "$SCRIPT" ]; then
+    SCRIPT=$(resolveLink "$0")
+    # If link is relative
+    case "$SCRIPT" in
+      /*)
+        # Already absolute
+        ;;
+      *)
+        # Relative, make absolute
+        SCRIPT=$( dirname "$0" )/$SCRIPT
+        ;;
+    esac
+  fi
+
+  # Work out root from script location
+  JENA_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )"
+  export JENA_HOME
+  echo "Located JENA_HOME at ${JENA_HOME}"
+fi
+# If JENA_HOME is a symbolic link need to resolve
+if [ -L "${JENA_HOME}" ]; then
+  JENA_HOME=$(resolveLink "$JENA_HOME")
+  # If link is relative
+  case "$JENA_HOME" in
+    /*)
+      # Already absolute
+      ;;
+    *)
+      # Relative, make absolute
+      JENA_HOME=$(dirname "$JENA_HOME")
+      ;;
+  esac
+  export JENA_HOME
+  echo "Resolved symbolic links for JENA_HOME to $JENA_HOME"
 fi
 
 # ---- Setup