--- platform/lib/nbexec.orig	1970-01-01 01:00:00.000000000 +0100
+++ platform/lib/nbexec	2013-02-26 10:40:18.000000000 +0100
@@ -0,0 +1,600 @@
+#!/bin/sh
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+#
+# Copyright 1997-2012 Oracle and/or its affiliates. All rights reserved.
+#
+# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+# Other names may be trademarks of their respective owners.
+#
+# The contents of this file are subject to the terms of either the GNU
+# General Public License Version 2 only ("GPL") or the Common
+# Development and Distribution License("CDDL") (collectively, the
+# "License"). You may not use this file except in compliance with the
+# License. You can obtain a copy of the License at
+# http://www.netbeans.org/cddl-gplv2.html
+# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+# specific language governing permissions and limitations under the
+# License.  When distributing the software, include this License Header
+# Notice in each file and include the License file at
+# nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the GPL Version 2 section of the License file that
+# accompanied this code. If applicable, add the following below the
+# License Header, with the fields enclosed by brackets [] replaced by
+# your own identifying information:
+# "Portions Copyrighted [year] [name of copyright owner]"
+#
+# Contributor(s):
+#
+# The Original Software is NetBeans. The Initial Developer of the Original
+# Software is Sun Microsystems, Inc. Portions Copyright 1997-2011 Sun
+# Microsystems, Inc. All Rights Reserved.
+#
+# If you wish your version of this file to be governed by only the CDDL
+# or only the GPL Version 2, indicate your decision by adding
+# "[Contributor] elects to include this software in this distribution
+# under the [CDDL or GPL Version 2] license." If you do not indicate a
+# single choice of license, a recipient has the option to distribute
+# your version of this file under either the CDDL, the GPL Version 2 or
+# to extend the choice of license to its licensees as provided above.
+# However, if you add GPL Version 2 code and therefore, elected the GPL
+# Version 2 license, then the option applies only if the new code is
+# made subject to such option by the copyright holder.
+
+
+PRG=$0
+
+
+resolve_symlink () {
+    file="$1"
+    while [ -h "$file" ]; do
+        ls=`ls -ld "$file"`
+        link=`expr "$ls" : '^.*-> \(.*\)$' 2>/dev/null`
+        if expr "$link" : '^/' 2> /dev/null >/dev/null; then
+            file="$link"
+        else
+            file=`dirname "$1"`"/$link"
+        fi
+    done
+    echo "$file"
+}
+
+absolutize_path () {
+    oldpwd=`pwd`
+    cd "$1"
+    abspath=`pwd`
+    cd "${oldpwd}"
+    echo "$abspath"
+}
+
+PRG=`resolve_symlink "$PRG"`
+progdir=`dirname "$PRG"`
+plathome=`absolutize_path "$progdir/.."`
+
+jargs=${jreflags}
+jargs="$jargs -Dnetbeans.home=\"$plathome\""
+
+args=""
+
+prefixcp=""
+postfixcp=""
+
+updater_class=org.netbeans.updater.UpdaterFrame
+
+#
+# parse arguments
+#
+
+parse_args() {
+while [ $# -gt 0 ] ; do
+    case "$1" in
+        -h|-\?|-help|--help) cat >&2 <<EOF
+Usage: $0 {options} arguments
+
+General options:
+  --help                show this help 
+  --jdkhome <path>      path to Java(TM) 2 SDK, Standard Edition
+  -J<jvm_option>        pass <jvm_option> to JVM
+
+  --cp:p <classpath>    prepend <classpath> to classpath
+  --cp:a <classpath>    append <classpath> to classpath
+EOF
+            # go on and print IDE options as well
+        args="$args --help"
+            ;;
+        --jdkhome) shift; if [ $# -gt 0 ] ; then jdkhome=$1; fi
+            ;;
+        # this has to be here for purposes of updater.jar, but it should be
+        # better to handle this argument inside the java launcher part 
+        --userdir) shift; if [ $# -gt 0 ] ; then userdir="$1"; fi
+            ;;
+        -cp|-cp:a|--cp|--cp:a)
+            shift;
+            if [ $# -gt 0 ] ; then
+                if [ ! -z "$postfixcp" ] ; then postfixcp="$postfixcp:" ; fi
+                postfixcp=$postfixcp$1;
+            fi
+            ;;
+        
+        -cp:p|--cp:p)
+            shift;
+            if [ $# -gt 0 ] ; then
+                if [ ! -z "$prefixcp" ] ; then prefixcp="$prefixcp:" ; fi
+                prefixcp=$prefixcp$1;
+            fi
+            ;;
+        --clusters)
+            shift;
+            if [ $# -gt 0 ] ; then
+                clusters="$1"
+            fi
+            ;;
+        -psn*)
+            shift;
+            ;;
+        -J*) jopt=`expr "X-$1" : 'X--J\(.*\)'`; jargs="$jargs '$jopt'";;
+        *) args="$args \"$1\"" ;;
+    esac
+    shift
+done
+} # parse_args()
+
+# Process arguments given on the command line.
+parse_args "$@"
+
+#
+# check JDK
+#
+
+if [ -z "$jdkhome" ] ; then
+    # try to find JDK
+
+    case "`uname`" in
+        Darwin*)
+        # read Java Preferences
+        if [ -x "/usr/libexec/java_home" ]; then
+            jdkhome=`/usr/libexec/java_home --version 1.7.0_10+ --failfast`
+            if [ -z $jdkhome ]; then 
+                jdkhome=`/usr/libexec/java_home --version 1.6 --failfast`
+            fi
+
+        # JDK1.7 Update 10 as a fallback
+        elif [ -f "/Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/bin/java" ] ; then
+            jdkhome="/Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home"
+
+        # JDK1.6
+        elif [ -f "/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java" ] ; then
+            jdkhome="/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home"
+        elif [ -f "/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/bin/java" ] ; then
+            jdkhome="/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home"
+        elif [ -f "/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin/java" ] ; then
+            jdkhome="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"
+        fi
+        echo Found jdkhome=$jdkhome
+        ;;
+        *) javac=`which javac`
+        if [ -z "$javac" ] ; then
+            java=`which java`
+            if [ ! -z "$java" ] ; then
+                java=`resolve_symlink "$java"`
+                jdkhome=`dirname $java`"/.."
+            fi
+        else
+            javac=`resolve_symlink "$javac"`
+            jdkhome=`dirname $javac`"/.."
+        fi
+        ;;
+    esac
+fi
+
+if [ ! -x "${jdkhome}/bin/java" ] ; then
+    echo "Cannot find java. Please use the --jdkhome switch." >&2
+    exit 2
+fi
+
+# Make sure native code libraries of jdk7 are found
+LD_LIBRARY_PATH=${jdkhome}/jre/lib/amd64:${jdkhome}/jre/lib/i386:${LD_LIBRARY_PATH}
+export LD_LIBRARY_PATH
+
+# if the Java option for heap dump on OOME is supported enable it
+if "${jdkhome}/bin/java" -XX:+HeapDumpOnOutOfMemoryError -cp "${progdir}/boot.jar" org.netbeans.NbExecJavaStartTry > /dev/null 2>&1 ; then
+   jargs="$jargs -XX:+HeapDumpOnOutOfMemoryError"
+   if echo $jargs | /usr/bin/grep -v -- "-XX:HeapDumpPath=" > /dev/null ; then
+      jargs="$jargs -XX:HeapDumpPath=\"${userdir}/var/log/heapdump.hprof\""
+   fi
+   # rename old heap dump to .old
+   mv "${userdir}/var/log/heapdump.hprof" "${userdir}/var/log/heapdump.hprof.old" > /dev/null 2>&1
+fi
+
+jargs_without_clusters="$jargs"
+jargs="-Dnetbeans.dirs=\"${clusters}\" $jargs_without_clusters"
+
+jdkhome=`absolutize_path "$jdkhome"`
+
+args="--userdir \"${userdir}\" $args"
+
+append_jars_to_cp() {
+    dir="$1"
+    subpath="$2"
+    for ex in jar zip ; do
+        if [ "`echo "${dir}"/*.$ex`" != "${dir}/*.$ex" ] ; then
+            for x in "${dir}"/*.$ex ; do
+                subx=`basename "$x"`
+                if echo "$paths" | /usr/bin/grep -v "$subpath$subx" > /dev/null ; then
+                    if [ ! -z "$cp" ] ; then cp="$cp:" ; fi
+                    cp="$cp$x"
+                    if [ ! -z "$paths" ] ; then paths="$paths:" ; fi
+                    paths="$paths$subpath$subx"
+                fi
+            done
+        fi
+    done
+}
+
+construct_cp() {
+    cp=""
+    updatercp=""
+    paths=""
+    
+    build_cp "${userdir}"
+    build_cp "${plathome}"
+    
+    if [ -f "${userdir}/modules/ext/updater.jar" ] ; then
+        updatercp="${userdir}/modules/ext/updater.jar"
+    else 
+        if [ -f "${plathome}/modules/ext/updater.jar" ] ; then
+            updatercp="${plathome}/modules/ext/updater.jar"
+        fi
+    fi
+
+    # JDK tools
+    for x in "${jdkhome}/lib/dt.jar" "${jdkhome}/lib/tools.jar"; do
+        if [ -f "$x" ]; then
+            if [ ! -z "$cp" ] ; then cp="$cp:" ; fi
+            cp="${cp}$x"
+        fi
+    done
+
+    # user-specified prefix and postfix CLASSPATH
+    
+    if [ ! -z "${prefixcp}" ] ; then
+        cp="${prefixcp}:$cp"
+    fi
+    
+    if [ ! -z "${postfixcp}" ] ; then
+        cp="$cp:${postfixcp}"
+    fi
+
+
+    # prepend IDE's classpath to updater's classpath
+    # (just xml-apis.jar and one XML parser would suffice)
+    if [ ! -z "$updatercp" ] ; then
+        updatercp=${cp}:${updatercp}
+    else
+        updatercp=${cp}
+    fi
+}
+
+build_cp() {
+    base="$1"
+    append_jars_to_cp "${base}/lib/patches" "patches"
+    append_jars_to_cp "${base}/lib" "lib"
+    append_jars_to_cp "${base}/lib/locale" "locale"
+}
+
+do_run_updater() {
+    eval "\"$jdkhome/bin/java\"" -classpath "\"${updatercp}\"" "$jargs" "-Dnetbeans.user=\"$userdir\"" $updater_class "$args"
+    construct_cp
+}
+
+look_for_pre_runs() {
+    base="$1"
+    install_new_updater "$1"
+    dir="${base}/update/download"
+    if [ "`echo "${dir}"/*.nbm`" != "${dir}/*.nbm" -o "`echo "${dir}"/*.jar`" != "${dir}/*.jar" ] ; then
+        run_updater=yes
+    else
+        dir="${base}/update/deactivate"
+        if [ -f "${dir}/to_disable.txt" -o -f "${dir}/to_uninstall.txt" ] ; then
+            run_updater=yes
+        fi
+    fi
+}
+
+look_for_post_runs() {
+    base="$1"
+    install_new_updater "$1"
+    dir="${base}/update/download"
+    if [ \! -f "${dir}/install_later.xml" ] && [ "`echo "${dir}"/*.nbm`" != "${dir}/*.nbm" -o "`echo "${dir}"/*.jar`" != "${dir}/*.jar" ] ; then
+        run_updater=yes
+    else
+        dir="${base}/update/deactivate"
+        if [ \! -f "${dir}/deactivate_later.txt" ] ; then
+            if [ -f "${dir}/to_disable.txt" -o -f "${dir}/to_uninstall.txt" ] ; then
+                run_updater=yes
+            fi
+        fi
+    fi
+}
+
+look_for_new_clusters() {
+    base="$userdir"
+    dir="${base}/update/download"
+    newclusters="${dir}/netbeans.dirs"
+    if [ -f "${newclusters}" ] ; then
+        clusters=`cat "${newclusters}"`
+        jargs="-Dnetbeans.dirs=\"${clusters}\" $jargs_without_clusters"
+        rm -f "${newclusters}"
+    fi
+}
+
+delete_new_clusters_file() {
+    base="$userdir"
+    dir="${base}/update/download"
+    newclusters="${dir}/netbeans.dirs"
+    if [ \! -f "${newclusters}" ] ; then
+        rm -f "${newclusters}"
+    fi
+}
+
+install_new_updater() {
+    base="$1"
+    newUpdaterDir="${base}/update/new_updater"
+    if [ -d "${newUpdaterDir}" ]; then
+        mkdir -p "${base}/modules/ext/"
+        if [ -f "${newUpdaterDir}/updater.jar" ]; then
+            mv -f "${newUpdaterDir}/updater.jar" "${base}/modules/ext/"
+        fi
+        ls -l "${newUpdaterDir}/"updater_*.jar
+        for i in "${newUpdaterDir}/"updater_*.jar; do
+            mkdir -p "${base}/modules/ext/locale/"
+            mv -f "$i" "${base}/modules/ext/locale/"
+        done
+        rmdir "${newUpdaterDir}"
+    fi
+}
+
+# detect system http proxy setting
+
+detect_system_proxy () {
+    if [ ! -z "$http_proxy" ]; then
+        http_proxy_tmp=$http_proxy
+    fi
+    return 0
+}
+
+detect_gnome_proxy () {
+    gconftool=%%GCONFTOOL2%%
+    if [ -x  $gconftool ] ; then
+        proxy_mode=`$gconftool --get /system/proxy/mode 2>/dev/null`
+        if [ "$proxy_mode" = "manual" ] ; then
+            http_proxy_host=`$gconftool --get /system/http_proxy/host 2>/dev/null`
+            http_proxy_port=`$gconftool --get /system/http_proxy/port 2>/dev/null`
+            http_proxy_tmp=$http_proxy_host:$http_proxy_port
+            http_non_proxy_hosts=`$gconftool --get /system/http_proxy/ignore_hosts 2>/dev/null`
+            if [ $? ] ; then
+                http_non_proxy_hosts=`echo $http_non_proxy_hosts | /usr/bin/sed 's/\]//'`
+            fi
+            socks_proxy_host=`$gconftool --get /system/proxy/socks_host 2>/dev/null`
+            socks_proxy_port=`$gconftool --get /system/proxy/socks_port 2>/dev/null`
+            socks_proxy_tmp=$socks_proxy_host:$socks_proxy_port
+
+            return 0
+        else
+            if [ "$proxy_mode" = "none" ] ; then
+                detect_system_proxy
+                if [ -z "$http_proxy_tmp" ]; then
+                    http_proxy_tmp="DIRECT"
+                fi
+                return 0
+            else
+                if [ "$proxy_mode" = "auto" ] ; then
+                    detect_system_proxy
+                    pac_file=`$gconftool --get /system/proxy/autoconfig_url 2>/dev/null`
+                    if [ ! -z "$pac_file" ]; then
+                        http_proxy_tmp="PAC "$pac_file
+                    fi
+                    return 0
+                fi
+            fi
+        fi
+    fi
+    return 1
+}
+
+detect_kde_proxy () {
+    kioslaverc="${HOME}/.kde/share/config/kioslaverc"
+    if [ -f $kioslaverc ] ; then
+        if /usr/bin/grep 'ProxyType=1' "$kioslaverc" >/dev/null 2>&1; then
+            http_proxy_tmp=`/usr/bin/grep 'httpProxy=http://' "$kioslaverc"`
+            if [ $? ] ; then
+                http_proxy_tmp=`echo $http_proxy_tmp | /usr/bin/sed 's/httpProxy=http:\/\///'`
+                return 0
+            fi
+            http_non_proxy_hosts=`/usr/bin/grep 'NoProxyFor=' "$kioslaverc"`
+            if [ $? ] ; then
+                http_non_proxy_hosts=`echo $http_non_proxy_hosts | /usr/bin/sed 's/NoProxyFor=//'`
+            fi
+        else
+            if /usr/bin/grep 'ProxyType=0' "$kioslaverc" >/dev/null 2>&1; then
+                detect_system_proxy
+                if [ -z "$http_proxy_tmp" ]; then
+                    http_proxy_tmp="DIRECT"
+                fi
+                return 0
+            else
+                if /usr/bin/grep 'ProxyType=2' "$kioslaverc" >/dev/null 2>&1; then
+                    pac_file=`/usr/bin/grep "Proxy Config Script=" $kioslaverc  | cut -f 2 -d =`
+                    http_proxy_tmp="PAC "$pac_file
+                    return 0
+                fi
+            fi
+        fi
+    fi
+    return 1
+}
+
+detect_macosx_proxy () {
+    if [ ! -x /usr/sbin/scutil ] ; then
+	return 1
+    fi
+
+    scutil_out=/tmp/nb-proxy-detection.$$
+    cat <<EOF | /usr/sbin/scutil > ${scutil_out}
+open
+show State:/Network/Global/Proxies
+close
+EOF
+
+    if /usr/bin/grep "ProxyAuto.*: *1" ${scutil_out} >/dev/null 2>&1; then
+        if  /usr/bin/grep "ProxyAutoConfigEnable.*: *1" ${scutil_out} >/dev/null 2>&1; then
+            http_proxy_tmp="PAC `/usr/bin/grep ProxyAutoConfigURLString ${scutil_out} | /usr/bin/awk 'END{print $3}'`"
+            rm ${scutil_out}
+            return 0
+        fi
+
+        rm ${scutil_out}
+        return 1
+    fi
+
+    if /usr/bin/grep "HTTPEnable *: *1" ${scutil_out} >/dev/null 2>&1; then
+	http_proxy_host=`/usr/bin/grep HTTPProxy ${scutil_out} | /usr/bin/awk 'END{print $3}'`
+	http_proxy_port=`/usr/bin/grep HTTPPort ${scutil_out} | /usr/bin/awk 'END{print $3} '`
+        http_proxy_tmp=$http_proxy_host:$http_proxy_port
+        rm ${scutil_out}
+        return 0
+    fi
+    
+    http_proxy_tmp="DIRECT"
+    rm ${scutil_out}
+    return 0
+}
+
+unset http_proxy_tmp
+
+if [ `uname` = Darwin ] ; then
+    detect_macosx_proxy
+else
+    if [ "$KDE_FULL_SESSION" = "true" ] ; then
+        detect_kde_proxy
+    else
+        if [ ! -z "$GNOME_DESKTOP_SESSION_ID" ] ; then
+            detect_gnome_proxy
+        fi
+    fi
+fi
+
+# fall back to the environment-defined http_proxy if nothing found so far
+if [ -z "$http_proxy_tmp" ]; then
+    http_proxy_tmp=$http_proxy
+fi
+
+if [ ! -z "$http_proxy_tmp" ] ; then
+	jargs="-Dnetbeans.system_http_proxy=\"$http_proxy_tmp\" -Dnetbeans.system_http_non_proxy_hosts=\"$http_non_proxy_hosts\" $jargs"
+fi
+
+if [ ! -z "$socks_proxy_tmp" ] ; then
+	jargs="-Dnetbeans.system_socks_proxy=\"$socks_proxy_tmp\" $jargs"
+fi
+
+if [ ! -z "${DEFAULT_USERDIR_ROOT}" ] ; then
+	jargs="-Dnetbeans.default_userdir_root=\"${DEFAULT_USERDIR_ROOT}\" $jargs"
+        unset DEFAULT_USERDIR_ROOT
+fi
+
+# http://java.sun.com/j2se/1.5.0/docs/guide/2d/flags.html#pixmaps
+J2D_PIXMAPS=shared
+export J2D_PIXMAPS
+
+# Check DISPLAY variable on non-Mac
+if [ "no$DISPLAY" = "no" -a `uname` != Darwin ]; then
+    echo "$0: WARNING: environment variable DISPLAY is not set"
+fi
+
+
+# The Startup Notification Protocol Specification [1]
+# recommends to unset the DESKTOP_STARTUP_ID environment variable 
+# to avoid possible reuse by some process started later by this
+# process, e.g. when a browser will be launched by the NetBeans [2].
+#
+# See:
+# [1] http://standards.freedesktop.org/startup-notification-spec
+# [2] http://netbeans.org/bugzilla/show_bug.cgi?id=76970
+if [ ! -z "$DESKTOP_STARTUP_ID" ] ; then
+    # Save a value for later using
+    NB_DESKTOP_STARTUP_ID="$DESKTOP_STARTUP_ID"; export NB_DESKTOP_STARTUP_ID
+
+    unset DESKTOP_STARTUP_ID
+fi
+
+
+#
+# main loop
+#
+
+# clear to prevent loop from ending
+restart="yes"
+first_time_starting="yes"
+restart_file="${userdir}/var/restart"
+
+while [ "$restart" ] ; do
+
+    #
+    # build CLASSPATH
+    #
+    construct_cp
+    
+    # First check for pre-run updates.
+    if [ "$first_time_starting" ] ; then
+        run_updater=""
+        look_for_pre_runs "$plathome"
+        save="$IFS"
+        IFS=':' ; for oneCls in $clusters ; do
+            IFS="$save"
+            look_for_pre_runs "$oneCls"
+        done
+        IFS="$save"
+        look_for_pre_runs "$userdir"
+        if [ "$run_updater" ] ; then do_run_updater ; fi
+        # Do not check this after a restart, it makes no sense.
+        first_time_starting=""
+    fi
+    
+    #
+    # let's go
+    #
+    delete_new_clusters_file
+    rm -f "${restart_file}"
+    eval ${_NB_PROFILE_CMD} "\"${jdkhome}/bin/java\"" -Djdk.home="\"${jdkhome}\"" -classpath "\"$cp\"" \
+        "$jargs" org.netbeans.Main "$args" '<&0' '&'
+    PID=$!
+    trap "kill $PID" EXIT
+    wait $PID
+    exitcode=$?
+    trap '' EXIT
+    look_for_new_clusters
+    # If we should update anything, do it and restart IDE.
+    run_updater=""
+    look_for_post_runs "$plathome"
+
+    save="$IFS"
+    IFS=':' ; for oneCls in $clusters ; do
+        IFS="$save"
+        look_for_post_runs "$oneCls"
+    done
+    IFS="$save"
+    look_for_post_runs "$userdir"
+    if [ "$run_updater" ] ; then
+        do_run_updater
+        restart="yes"
+    else
+        if [ ! -f "${restart_file}" ] ; then
+            # will fall thru loop and exit
+            restart=""
+        fi
+    fi
+
+done
+
+# and we exit.
+exit $exitcode