From owner-freebsd-java@FreeBSD.ORG Thu May 13 22:46:19 2010 Return-Path: Delivered-To: freebsd-java@freebsd.org Received: from [127.0.0.1] (unknown [IPv6:2001:4f8:fff6::28]) by hub.freebsd.org (Postfix) with ESMTP id 0C7E2106564A; Thu, 13 May 2010 22:46:16 +0000 (UTC) (envelope-from jkim@FreeBSD.org) From: Jung-uk Kim To: freebsd-java@freebsd.org Date: Thu, 13 May 2010 18:46:05 -0400 User-Agent: KMail/1.6.2 References: <4BEAC59B.9040105@intertainservices.com> <20100512190726.GD83316@deviant.kiev.zoral.com.ua> <4BEB0686.6050603@intertainservices.com> In-Reply-To: <4BEB0686.6050603@intertainservices.com> MIME-Version: 1.0 Content-Disposition: inline Content-Type: Multipart/Mixed; boundary="Boundary-00=_wEI7LLGeDsoJ5I5" Message-Id: <201005131846.08019.jkim@FreeBSD.org> Cc: Mike Jakubik , glewis@FreeBSD.org Subject: Re: realpath: : No such file or directory X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 May 2010 22:46:19 -0000 --Boundary-00=_wEI7LLGeDsoJ5I5 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline On Wednesday 12 May 2010 03:50 pm, Mike Jakubik wrote: > On 5/12/2010 3:07 PM, Kostik Belousov wrote: > > The realpath(1) was given an empty path. > > > > According to SUSv4, realpath(3) should return ENOENT if "A > > component of file_name does not name an existing file or > > file_name points to an empty string." This was recently brought > > into standard compliance. > > > > Why javavm passes empty path to realpath(1), I do not know. > > It appears the cause is because ${JAVA_HOME} is an empty variable. > > --- > # > # Set up an appropriate JAVA_HOME > # > setJavaHome() { > > echo Debug JAVA_HOME: ${JAVA_HOME} > echo Debug JAVAVM_PREFIX: ${_JAVAVM_PREFIX} > > # Use JAVA_HOME if it's set, unless its set to /usr/local > if [ -n "${JAVA_HOME}" -a \ > "`realpath "${JAVA_HOME}"`" != "`realpath > "${_JAVAVM_PREFIX}"`" ]; then > if [ -n "${JAVA_HOME}" -a -f > "${JAVA_HOME}/bin/${_JAVAVM_PROG}" ]; then > _JAVAVM_PROG_PATH="${JAVA_HOME}/bin" > return 0 > elif [ -n "${JAVA_HOME}" -a \ > -f "${JAVA_HOME}/jre/bin/${_JAVAVM_PROG}" ]; then > _JAVAVM_PROG_PATH="${JAVA_HOME}/jre/bin" > return 0 > fi > fi > > unset JAVA_HOME > --- > > When i run the above: > > + setJavaHome > + echo Debug JAVA_HOME: > Debug JAVA_HOME: > + echo Debug JAVAVM_PREFIX: /usr/local > Debug JAVAVM_PREFIX: /usr/local > + realpath '' > realpath: : No such file or directory The attached patch should fix the annoyance. Jung-uk Kim --Boundary-00=_wEI7LLGeDsoJ5I5 Content-Type: text/plain; charset="iso-8859-1"; name="javavmwrapper.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="javavmwrapper.diff" --- javavmwrapper/Makefile.orig 2010-05-13 15:40:45.000000000 -0400 +++ javavmwrapper/Makefile 2010-05-13 15:31:00.000000000 -0400 @@ -8,7 +8,7 @@ # PORTNAME= javavmwrapper -PORTVERSION= 2.3.4 +PORTVERSION= 2.3.5 CATEGORIES= java MASTER_SITES= # none DISTFILES= # none --- javavmwrapper/src/javavmwrapper.sh.orig 2010-01-18 17:42:58.000000000 -0500 +++ javavmwrapper/src/javavmwrapper.sh 2010-05-13 15:30:32.000000000 -0400 @@ -479,16 +479,16 @@ # setJavaHome() { # Use JAVA_HOME if it's set, unless its set to %%PREFIX%% - if [ -n "${JAVA_HOME}" -a \ - "`realpath "${JAVA_HOME}"`" != "`realpath "${_JAVAVM_PREFIX}"`" ]; then - if [ -n "${JAVA_HOME}" -a -f "${JAVA_HOME}/bin/${_JAVAVM_PROG}" ]; then - _JAVAVM_PROG_PATH="${JAVA_HOME}/bin" - return 0 - elif [ -n "${JAVA_HOME}" -a \ - -f "${JAVA_HOME}/jre/bin/${_JAVAVM_PROG}" ]; then - _JAVAVM_PROG_PATH="${JAVA_HOME}/jre/bin" - return 0 - fi + if [ -n "${JAVA_HOME}" ]; then + if [ "`realpath "${JAVA_HOME}"`" != "`realpath "${_JAVAVM_PREFIX}"`" ]; then + if [ -f "${JAVA_HOME}/bin/${_JAVAVM_PROG}" ]; then + _JAVAVM_PROG_PATH="${JAVA_HOME}/bin" + return 0 + elif [ -f "${JAVA_HOME}/jre/bin/${_JAVAVM_PROG}" ]; then + _JAVAVM_PROG_PATH="${JAVA_HOME}/jre/bin" + return 0 + fi + fi fi unset JAVA_HOME --Boundary-00=_wEI7LLGeDsoJ5I5--