All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] dependencies: Reject gcj in BR2_NEEDS_HOST_JAVA check
@ 2014-08-06 20:26 Bernd Kuhls
  2014-08-13 14:06 ` Yann E. MORIN
  2014-08-13 14:11 ` Yann E. MORIN
  0 siblings, 2 replies; 6+ messages in thread
From: Bernd Kuhls @ 2014-08-06 20:26 UTC (permalink / raw)
  To: buildroot

Xbmc uses the Groovy java package to generate API code, for details see
http://wiki.xbmc.org/index.php?title=Codegeneration#How_it_works

Groovy itself is broken when used with gcj:
http://jira.codehaus.org/browse/GROOVY-3701

Xbmc recommends to use another java package instead, like openjdk:
http://forum.xbmc.org/showthread.php?tid=199742

Until we come up with a host package to provide a java setup and in order to
make autobuilder happy let?s reject gcj when we check for a java installation
on the host.

Currently Xbmc is the only package using BR2_NEEDS_HOST_JAVA so changing the
behaviour of dependencies.sh has no side effects.

Fixes
http://autobuild.buildroot.net/results/213/213d7454a1dc68cfb8f4c8d9508f52ebf8e58e33/
http://autobuild.buildroot.net/results/639/639cda872cf36c122cbd6139dd76f6b51ac1864e/
http://autobuild.buildroot.net/results/c9e/c9eb12c95b2939c64590692a82af8d84bbd90956/

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 support/dependencies/dependencies.sh |   14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
index 88e5ad2..b09e376 100755
--- a/support/dependencies/dependencies.sh
+++ b/support/dependencies/dependencies.sh
@@ -188,7 +188,19 @@ if grep ^BR2_TOOLCHAIN_BUILDROOT=y $BR2_CONFIG > /dev/null && \
 fi
 
 if grep -q ^BR2_NEEDS_HOST_JAVA=y $BR2_CONFIG ; then
-	check_prog_host "java"
+	JAVA=$(which java 2> /dev/null)
+	if [ -z "$JAVA" ] ; then
+		echo
+		echo "You must install 'java' on your build machine";
+		exit 1;
+	fi;
+	JAVA_GCJ=$($JAVA -version 2>&1 | grep gcj)
+	if [ ! -z "$JAVA_GCJ" ] ; then
+		echo
+		echo "$JAVA_GCJ is not sufficient to compile your package selection."
+		echo "Please install OpenJDK/IcedTea/Oracle Java."
+		exit 1 ;
+	fi
 fi
 
 if grep -q ^BR2_NEEDS_HOST_JAVAC=y $BR2_CONFIG ; then
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH 1/1] dependencies: Reject gcj in BR2_NEEDS_HOST_JAVA check
  2014-08-06 20:26 [Buildroot] [PATCH 1/1] dependencies: Reject gcj in BR2_NEEDS_HOST_JAVA check Bernd Kuhls
@ 2014-08-13 14:06 ` Yann E. MORIN
  2014-08-13 14:11 ` Yann E. MORIN
  1 sibling, 0 replies; 6+ messages in thread
From: Yann E. MORIN @ 2014-08-13 14:06 UTC (permalink / raw)
  To: buildroot

Bernd, All,

On 2014-08-06 22:26 +0200, Bernd Kuhls spake thusly:
> Xbmc uses the Groovy java package to generate API code, for details see
> http://wiki.xbmc.org/index.php?title=Codegeneration#How_it_works
> 
> Groovy itself is broken when used with gcj:
> http://jira.codehaus.org/browse/GROOVY-3701
> 
> Xbmc recommends to use another java package instead, like openjdk:
> http://forum.xbmc.org/showthread.php?tid=199742
> 
> Until we come up with a host package to provide a java setup and in order to
> make autobuilder happy let?s reject gcj when we check for a java installation
> on the host.
> 
> Currently Xbmc is the only package using BR2_NEEDS_HOST_JAVA so changing the
> behaviour of dependencies.sh has no side effects.
> 
> Fixes
> http://autobuild.buildroot.net/results/213/213d7454a1dc68cfb8f4c8d9508f52ebf8e58e33/
> http://autobuild.buildroot.net/results/639/639cda872cf36c122cbd6139dd76f6b51ac1864e/
> http://autobuild.buildroot.net/results/c9e/c9eb12c95b2939c64590692a82af8d84bbd90956/
> 
> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> ---
>  support/dependencies/dependencies.sh |   14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
> index 88e5ad2..b09e376 100755
> --- a/support/dependencies/dependencies.sh
> +++ b/support/dependencies/dependencies.sh
> @@ -188,7 +188,19 @@ if grep ^BR2_TOOLCHAIN_BUILDROOT=y $BR2_CONFIG > /dev/null && \
>  fi
>  
>  if grep -q ^BR2_NEEDS_HOST_JAVA=y $BR2_CONFIG ; then
> -	check_prog_host "java"
> +	JAVA=$(which java 2> /dev/null)
> +	if [ -z "$JAVA" ] ; then
> +		echo
> +		echo "You must install 'java' on your build machine";
> +		exit 1;
> +	fi;

Well, I'd keep the 'check_prog_host "java"' line, and would just add the
lines below, replacing $JAVA witrh just 'java'.

Regards,
Yann E. MORIN.

> +	JAVA_GCJ=$($JAVA -version 2>&1 | grep gcj)
> +	if [ ! -z "$JAVA_GCJ" ] ; then
> +		echo
> +		echo "$JAVA_GCJ is not sufficient to compile your package selection."
> +		echo "Please install OpenJDK/IcedTea/Oracle Java."
> +		exit 1 ;
> +	fi
>  fi
>  
>  if grep -q ^BR2_NEEDS_HOST_JAVAC=y $BR2_CONFIG ; then
> -- 
> 1.7.10.4
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH 1/1] dependencies: Reject gcj in BR2_NEEDS_HOST_JAVA check
  2014-08-06 20:26 [Buildroot] [PATCH 1/1] dependencies: Reject gcj in BR2_NEEDS_HOST_JAVA check Bernd Kuhls
  2014-08-13 14:06 ` Yann E. MORIN
@ 2014-08-13 14:11 ` Yann E. MORIN
  2014-08-13 17:13   ` Bernd Kuhls
  1 sibling, 1 reply; 6+ messages in thread
From: Yann E. MORIN @ 2014-08-13 14:11 UTC (permalink / raw)
  To: buildroot

Bernd, All,

I forgot some part of my review in my previous reply...

On 2014-08-06 22:26 +0200, Bernd Kuhls spake thusly:
> Xbmc uses the Groovy java package to generate API code, for details see
> http://wiki.xbmc.org/index.php?title=Codegeneration#How_it_works
> 
> Groovy itself is broken when used with gcj:
> http://jira.codehaus.org/browse/GROOVY-3701
> 
> Xbmc recommends to use another java package instead, like openjdk:
> http://forum.xbmc.org/showthread.php?tid=199742
> 
> Until we come up with a host package to provide a java setup and in order to
> make autobuilder happy let?s reject gcj when we check for a java installation
> on the host.
> 
> Currently Xbmc is the only package using BR2_NEEDS_HOST_JAVA so changing the
> behaviour of dependencies.sh has no side effects.
> 
> Fixes
> http://autobuild.buildroot.net/results/213/213d7454a1dc68cfb8f4c8d9508f52ebf8e58e33/
> http://autobuild.buildroot.net/results/639/639cda872cf36c122cbd6139dd76f6b51ac1864e/
> http://autobuild.buildroot.net/results/c9e/c9eb12c95b2939c64590692a82af8d84bbd90956/
> 
> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> ---
>  support/dependencies/dependencies.sh |   14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
> index 88e5ad2..b09e376 100755
> --- a/support/dependencies/dependencies.sh
> +++ b/support/dependencies/dependencies.sh
> @@ -188,7 +188,19 @@ if grep ^BR2_TOOLCHAIN_BUILDROOT=y $BR2_CONFIG > /dev/null && \
>  fi
>  
>  if grep -q ^BR2_NEEDS_HOST_JAVA=y $BR2_CONFIG ; then
> -	check_prog_host "java"
> +	JAVA=$(which java 2> /dev/null)
> +	if [ -z "$JAVA" ] ; then
> +		echo
> +		echo "You must install 'java' on your build machine";
> +		exit 1;
> +	fi;
> +	JAVA_GCJ=$($JAVA -version 2>&1 | grep gcj)

$ gcj -version
gcj: error: unrecognized command line option ?-version?

So I guess we should have:
    JAVA_GCJ="$(java --version 2>/dev/null |grep gcj)"

Which would be empty for the JDK's java, but not for gcj. I prefer we
rely on that, rather than the error mesage from gcj.

Regards,
Yann E. MORIN.

> +	if [ ! -z "$JAVA_GCJ" ] ; then
> +		echo
> +		echo "$JAVA_GCJ is not sufficient to compile your package selection."
> +		echo "Please install OpenJDK/IcedTea/Oracle Java."
> +		exit 1 ;
> +	fi
>  fi
>  
>  if grep -q ^BR2_NEEDS_HOST_JAVAC=y $BR2_CONFIG ; then
> -- 
> 1.7.10.4
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH 1/1] dependencies: Reject gcj in BR2_NEEDS_HOST_JAVA check
  2014-08-13 14:11 ` Yann E. MORIN
@ 2014-08-13 17:13   ` Bernd Kuhls
  2014-08-13 21:23     ` Yann E. MORIN
  0 siblings, 1 reply; 6+ messages in thread
From: Bernd Kuhls @ 2014-08-13 17:13 UTC (permalink / raw)
  To: buildroot

"Yann E. MORIN" <yann.morin.1998@free.fr> wrote in 
news:20140813141110.GF3939 at free.fr:

>> +     JAVA=$(which java 2> /dev/null)
>> +     if [ -z "$JAVA" ] ; then
>> +          echo
>> +          echo "You must install 'java' on your build machine";
>> +          exit 1;
>> +     fi;
>> +     JAVA_GCJ=$($JAVA -version 2>&1 | grep gcj)
> $ gcj -version
> gcj: error: unrecognized command line option ???-version???
> So I guess we should have:
>     JAVA_GCJ="$(java --version 2>/dev/null |grep gcj)"
> Which would be empty for the JDK's java, but not for gcj. I prefer we
> rely on that, rather than the error mesage from gcj.

Hi,

$JAVA contains the result of "which java" which is /usr/bin/java here. This 
corresponds to xbmc/codegenerator.mk, which also calls

JAVA ?= $(shell which java)

Executing /usr/bin/gcj directly is not desired ;)

/usr/bin/java -version resolves to either

$ /usr/bin/java -version
java version "1.5.0"
gij (GNU libgcj) version 4.7.2

or

$ /usr/bin/java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (IcedTea 2.5.1) (7u65-2.5.1-2~deb7u1)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)

on my system (Debian 7.6).

Regards, Bernd

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH 1/1] dependencies: Reject gcj in BR2_NEEDS_HOST_JAVA check
  2014-08-13 17:13   ` Bernd Kuhls
@ 2014-08-13 21:23     ` Yann E. MORIN
  2014-08-16  9:42       ` Bernd Kuhls
  0 siblings, 1 reply; 6+ messages in thread
From: Yann E. MORIN @ 2014-08-13 21:23 UTC (permalink / raw)
  To: buildroot

Bernd, All,

On 2014-08-13 19:13 +0200, Bernd Kuhls spake thusly:
> "Yann E. MORIN" <yann.morin.1998@free.fr> wrote in 
> news:20140813141110.GF3939 at free.fr:
> 
> >> +     JAVA=$(which java 2> /dev/null)
> >> +     if [ -z "$JAVA" ] ; then
> >> +          echo
> >> +          echo "You must install 'java' on your build machine";
> >> +          exit 1;
> >> +     fi;
> >> +     JAVA_GCJ=$($JAVA -version 2>&1 | grep gcj)
> > $ gcj -version
> > gcj: error: unrecognized command line option ???-version???
> > So I guess we should have:
> >     JAVA_GCJ="$(java --version 2>/dev/null |grep gcj)"
> > Which would be empty for the JDK's java, but not for gcj. I prefer we
> > rely on that, rather than the error mesage from gcj.
> 
> Hi,
> 
> $JAVA contains the result of "which java" which is /usr/bin/java here. This 
> corresponds to xbmc/codegenerator.mk, which also calls
> 
> JAVA ?= $(shell which java)
> 
> Executing /usr/bin/gcj directly is not desired ;)
> 
> /usr/bin/java -version resolves to either
> 
> $ /usr/bin/java -version
> java version "1.5.0"
> gij (GNU libgcj) version 4.7.2
> 
> or
> 
> $ /usr/bin/java -version
> java version "1.7.0_65"
> OpenJDK Runtime Environment (IcedTea 2.5.1) (7u65-2.5.1-2~deb7u1)
> OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)

OK, so 'java' from gcj accepts the same args as 'java' from the JDK. OK.

So, I still say we should keep the original check, and then check that
java is not from gcj :

    check_prog_host "java"
    if java -version 2>&1 |grep gcj >/dev/null 2>&1; then
        echo "Failed"
        exit 1
    fi

check_prog_host already calls 'which $1' so we're sure we can call 'java'.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH 1/1] dependencies: Reject gcj in BR2_NEEDS_HOST_JAVA check
  2014-08-13 21:23     ` Yann E. MORIN
@ 2014-08-16  9:42       ` Bernd Kuhls
  0 siblings, 0 replies; 6+ messages in thread
From: Bernd Kuhls @ 2014-08-16  9:42 UTC (permalink / raw)
  To: buildroot

"Yann E. MORIN" <yann.morin.1998@free.fr> wrote in 
news:20140813212312.GI3939 at free.fr:

> check_prog_host already calls 'which $1' so we're sure we can call 'java'.

Hi,

ok, I am going to send v2 with your suggestion added, but I would like to 
keep the $JAVA_GCJ part to have a nicer looking error message, examples:

gij (GNU libgcj) version 4.7.2 is not sufficient to compile your package 
selection.
Please install an OpenJDK/IcedTea/Oracle Java.

gij (GNU libgcj) version 4.6.3 is not sufficient to compile your package 
selection.
Please install an OpenJDK/IcedTea/Oracle Java.

Regards, Bernd

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-08-16  9:42 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-06 20:26 [Buildroot] [PATCH 1/1] dependencies: Reject gcj in BR2_NEEDS_HOST_JAVA check Bernd Kuhls
2014-08-13 14:06 ` Yann E. MORIN
2014-08-13 14:11 ` Yann E. MORIN
2014-08-13 17:13   ` Bernd Kuhls
2014-08-13 21:23     ` Yann E. MORIN
2014-08-16  9:42       ` Bernd Kuhls

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.