Date: prev next · Thread: first prev next last
2016 Archives by date, by thread · List index


Just tried to build lo on my system and it blew up with "can't find java
home" - the worst kind of failure in that it didn't succeed, didn't
fail, but thought it had succeeded.

So I've debugged it successfully in ./configure, but that appears to be
a generated file, so when I went to test it, it seems to have blown my
changes away! How do I fix ./configure so the changes stick?

Basically, what happens - and I believe this is not unique to gentoo -
is that the distro replaces the javac, javadoc, and a bunch of other
commands with a script that chooses which version of java to run. With
the result that configure thinks it's found java_home, but it's actually
pointing to a distro script.

What I've found out is that by looking for this at the appropriate
point, and setting java_home to null, the following test seems to detect
java_home correctly. I attach the modified code so someone else can fix
it if they choose, or point me at what to do.

       else
            # else warn
            { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: JAVA_HOME
is set to /usr - this is very likely to be incorrect" >&5
$as_echo "$as_me: WARNING: JAVA_HOME is set to /usr - this is very
likely to be incorrect" >&2;}
            { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: if this is
the case, please inform the correct JAVA_HOME with --with-jdk-home" >&5
$as_echo "$as_me: WARNING: if this is the case, please inform the
correct JAVA_HOME with --with-jdk-home" >&2;}
            add_warning "JAVA_HOME is set to /usr - this is very likely
to be incorrect"
            add_warning "if this is the case, please inform the correct
JAVA_HOME with --with-jdk-home"
        fi
                if test "$JAVA_HOME" != "/usr"; then
            if test "$_os" = "Darwin" -o "$OS_FOR_BUILD" = MACOSX; then
                                JAVA_HOME=$(echo $JAVA_HOME | $SED -e
s,/Current/Commands/javac$,/CurrentJDK/Home,)
                                JAVA_HOME=$(echo $JAVA_HOME | $SED -e
s,/CurrentJDK/Commands/javac$,/CurrentJDK/Home,)
            else
                JAVA_HOME=$(echo $JAVA_HOME | $SED -e s,/bin/javac$,,)
echo 6 JAVA_HOME $JAVA_HOME
                if test -f "$JAVA_HOME"; then
                    JAVA_HOME=""; # certain distros eg gentoo, javac
points to a script that selects java version
echo 6a JAVA_HOME $JAVA_HOME
                fi
            fi
        fi
    fi


Basically, the fix is the test (after my "echo 6" debug statement :-) to
see if JAVA_HOME is pointing at a file. The preceding sed command fails
on gentoo (and would produce the wrong result anyway) so you need to
throw away the contents of java_home and let the next test succeed.

Cheers,
Wol

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.