All of lore.kernel.org
 help / color / mirror / Atom feed
* [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
@ 2015-12-23 10:03 jackie.huang
  2015-12-23 10:03 ` [meta-java][PATCH 1/2] Revert "meta-java: rely on well known bootstrap-path" jackie.huang
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: jackie.huang @ 2015-12-23 10:03 UTC (permalink / raw)
  To: openembedded-devel

From: Jackie Huang <jackie.huang@windriver.com>

I asked about this issue two days ago but no response, please carefully
review and correct me if anyone have better understanding.

My tests includes building openjdk7 and openjdk8 on qemux86-64
with/without sstate cache.

--
The following changes since commit 35739fca028996c594b1efa2225a77c8d6038193:

  openjdk-8: Use zero mode on arm (2015-12-17 10:39:21 -0200)

are available in the git repository at:

  git://git.pokylinux.org/poky-contrib.git jhuang0/d_jdk8-fix_151223_0
  http://git.pokylinux.org/cgit.cgi//log/?h=jhuang0/d_jdk8-fix_151223_0

Jackie Huang (2):
  Revert "meta-java: rely on well known bootstrap-path"
  openjdk-8-native: fix improper do_install and PROVIDES

 README                                             | 12 ++++++++--
 classes/java-bootstrap-components.bbclass          |  7 ------
 classes/java-library.bbclass                       |  3 +--
 recipes-core/ant/ant-native_1.8.1.bb               |  2 +-
 recipes-core/antlr/antlr_2.7.7.bb                  |  2 +-
 recipes-core/cacao/cacao_1.6.1.bb                  |  6 ++---
 recipes-core/classpath/classpath.inc               |  4 ++--
 recipes-core/classpathx/gnujaf_1.1.1.bb            |  2 +-
 recipes-core/classpathx/gnumail_1.1.2.bb           |  2 +-
 recipes-core/classpathx/inetlib_1.1.1.bb           |  2 +-
 recipes-core/cup/cup_0.10k.bb                      |  2 +-
 recipes-core/ecj/ecj-bootstrap-native.bb           |  4 +++-
 recipes-core/ecj/libecj-bootstrap.inc              |  2 +-
 recipes-core/icedtea/icedtea7-native.inc           |  2 +-
 recipes-core/jacl/jacl_1.4.1.bb                    |  2 +-
 .../jakarta-commons/commons-logging_1.1.1.bb       |  2 --
 recipes-core/jakarta-commons/commons-net_1.4.1.bb  |  2 --
 .../jakarta-libs/avalon-framework-api_4.3.bb       |  2 +-
 recipes-core/jakarta-libs/bsf_2.4.0.bb             |  2 +-
 recipes-core/jakarta-libs/log4j1.2_1.2.17.bb       |  2 +-
 recipes-core/jakarta-libs/logkit_1.2.2.bb          |  2 +-
 recipes-core/jakarta-libs/oro_2.0.8.bb             |  2 +-
 recipes-core/jakarta-libs/poi_3.0.bb               |  2 +-
 recipes-core/jakarta-libs/regexp_1.5.bb            |  2 +-
 recipes-core/jamvm/jamvm.inc                       |  4 ++--
 recipes-core/jcraft/jsch_0.1.40.bb                 |  2 +-
 recipes-core/jcraft/jzlib_1.0.7.bb                 |  2 +-
 recipes-core/jdepend/jdepend_2.9.1.bb              |  2 +-
 recipes-core/jlex/jlex_1.2.6.bb                    |  2 +-
 recipes-core/junit/junit4_4.3.1.bb                 |  4 +++-
 recipes-core/junit/junit_3.8.2.bb                  |  2 +-
 recipes-core/openjdk/openjdk-8-native.inc          | 13 +++++------
 recipes-core/openjdk/openjdk-8-native_72b05.bb     | 26 ----------------------
 recipes-core/rhino/rhino_1.7r4.bb                  |  2 +-
 recipes-core/servlet-api/servlet2.3_4.1.37.bb      |  4 +++-
 recipes-core/servlet-api/servlet2.4_5.5.26.bb      |  2 ++
 recipes-core/xalan-j/xalan-j_2.7.1.bb              |  2 +-
 recipes-core/xerces-j/xerces-j_2.11.0.bb           |  6 ++---
 recipes-core/xml-commons/jaxp1.3_1.4.01.bb         |  4 +++-
 .../xml-commons/xml-commons-resolver1.1_1.2.bb     |  6 ++---
 recipes-core/xml-commons/xpp2_2.1.10.bb            |  2 ++
 recipes-core/xml-commons/xpp3_1.1.3.4.O.bb         |  2 ++
 42 files changed, 69 insertions(+), 90 deletions(-)
 delete mode 100644 classes/java-bootstrap-components.bbclass

-- 
1.9.1



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

* [meta-java][PATCH 1/2] Revert "meta-java: rely on well known bootstrap-path"
  2015-12-23 10:03 [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES jackie.huang
@ 2015-12-23 10:03 ` jackie.huang
  2015-12-23 10:03 ` [meta-java][PATCH 2/2] openjdk-8-native: fix improper do_install and PROVIDES jackie.huang
  2016-01-04 19:20 ` [meta-java][PATCH 0/2] openjdk-8-native: fix " Jens Rehsack
  2 siblings, 0 replies; 12+ messages in thread
From: jackie.huang @ 2015-12-23 10:03 UTC (permalink / raw)
  To: openembedded-devel

From: Jackie Huang <jackie.huang@windriver.com>

This reverts commit 04d5d0bf414c05ca59618d77f17ff9898aa1c566.

Detail reason is in the following commit.

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
---
 classes/java-bootstrap-components.bbclass               | 7 -------
 classes/java-library.bbclass                            | 3 +--
 recipes-core/ant/ant-native_1.8.1.bb                    | 2 +-
 recipes-core/antlr/antlr_2.7.7.bb                       | 2 +-
 recipes-core/cacao/cacao_1.6.1.bb                       | 4 +---
 recipes-core/classpath/classpath.inc                    | 4 ++--
 recipes-core/classpathx/gnujaf_1.1.1.bb                 | 2 +-
 recipes-core/classpathx/gnumail_1.1.2.bb                | 2 +-
 recipes-core/classpathx/inetlib_1.1.1.bb                | 2 +-
 recipes-core/cup/cup_0.10k.bb                           | 2 +-
 recipes-core/ecj/ecj-bootstrap-native.bb                | 2 +-
 recipes-core/ecj/libecj-bootstrap.inc                   | 2 +-
 recipes-core/icedtea/icedtea7-native.inc                | 2 +-
 recipes-core/jacl/jacl_1.4.1.bb                         | 2 +-
 recipes-core/jakarta-commons/commons-logging_1.1.1.bb   | 2 --
 recipes-core/jakarta-commons/commons-net_1.4.1.bb       | 2 --
 recipes-core/jakarta-libs/avalon-framework-api_4.3.bb   | 2 +-
 recipes-core/jakarta-libs/bsf_2.4.0.bb                  | 2 +-
 recipes-core/jakarta-libs/log4j1.2_1.2.17.bb            | 2 +-
 recipes-core/jakarta-libs/logkit_1.2.2.bb               | 2 +-
 recipes-core/jakarta-libs/oro_2.0.8.bb                  | 2 +-
 recipes-core/jakarta-libs/poi_3.0.bb                    | 2 +-
 recipes-core/jakarta-libs/regexp_1.5.bb                 | 2 +-
 recipes-core/jamvm/jamvm.inc                            | 4 ++--
 recipes-core/jcraft/jsch_0.1.40.bb                      | 2 +-
 recipes-core/jcraft/jzlib_1.0.7.bb                      | 2 +-
 recipes-core/jdepend/jdepend_2.9.1.bb                   | 2 +-
 recipes-core/jlex/jlex_1.2.6.bb                         | 2 +-
 recipes-core/junit/junit4_4.3.1.bb                      | 4 +++-
 recipes-core/junit/junit_3.8.2.bb                       | 2 +-
 recipes-core/rhino/rhino_1.7r4.bb                       | 2 +-
 recipes-core/servlet-api/servlet2.3_4.1.37.bb           | 4 +++-
 recipes-core/servlet-api/servlet2.4_5.5.26.bb           | 2 ++
 recipes-core/xalan-j/xalan-j_2.7.1.bb                   | 2 +-
 recipes-core/xerces-j/xerces-j_2.11.0.bb                | 6 +++---
 recipes-core/xml-commons/jaxp1.3_1.4.01.bb              | 4 +++-
 recipes-core/xml-commons/xml-commons-resolver1.1_1.2.bb | 6 +++---
 recipes-core/xml-commons/xpp2_2.1.10.bb                 | 2 ++
 recipes-core/xml-commons/xpp3_1.1.3.4.O.bb              | 2 ++
 39 files changed, 51 insertions(+), 53 deletions(-)
 delete mode 100644 classes/java-bootstrap-components.bbclass

diff --git a/classes/java-bootstrap-components.bbclass b/classes/java-bootstrap-components.bbclass
deleted file mode 100644
index 0c62b5b..0000000
--- a/classes/java-bootstrap-components.bbclass
+++ /dev/null
@@ -1,7 +0,0 @@
-# This is to be used by recipes which rely on java-library.bbclass
-# infrastructure and their a *-native recipe are parts of the bootstrap
-# process
-#
-
-DEPENDS_prepend_class-native = " ecj-bootstrap-native "
-DEPENDS_prepend_class-target = " virtual/javac-native "
diff --git a/classes/java-library.bbclass b/classes/java-library.bbclass
index a192f14..144cd2f 100644
--- a/classes/java-library.bbclass
+++ b/classes/java-library.bbclass
@@ -35,8 +35,7 @@ def java_package_name(d):
 
 JPN ?= "${@java_package_name(d)}"
 
-DEPENDS_prepend = " fastjar-native "
-DEPENDS_prepend_class-target = " virtual/javac-native "
+DEPENDS_prepend = "virtual/javac-native fastjar-native "
 
 PACKAGES += "${JPN}"
 
diff --git a/recipes-core/ant/ant-native_1.8.1.bb b/recipes-core/ant/ant-native_1.8.1.bb
index 6cdbc80..35b45d6 100644
--- a/recipes-core/ant/ant-native_1.8.1.bb
+++ b/recipes-core/ant/ant-native_1.8.1.bb
@@ -11,7 +11,7 @@ SRC_URI = "http://archive.apache.org/dist/ant/source/apache-ant-${PV}-src.tar.gz
 
 S = "${WORKDIR}/apache-ant-${PV}"
 
-inherit java-library java-native java-bootstrap-components
+inherit java-library java-native
 
 DEPENDS = " \
 	jsch-native bsf-native xalan-j-native xerces-j-native \
diff --git a/recipes-core/antlr/antlr_2.7.7.bb b/recipes-core/antlr/antlr_2.7.7.bb
index cff9535..9d9d2d4 100644
--- a/recipes-core/antlr/antlr_2.7.7.bb
+++ b/recipes-core/antlr/antlr_2.7.7.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=361934e706423915b4d9f413ad37fb65"
 SRC_URI = "http://www.antlr2.org/download/${BP}.tar.gz"
 SRC_URI_append_class-native = " file://runantlr"
 
-inherit java-library java-bootstrap-components
+inherit java-library
 
 do_configure_class-native() {
     sed -i -e"s|@JAR_FILE@|${STAGING_DATADIR_JAVA_NATIVE}/antlr.jar|" ${WORKDIR}/runantlr
diff --git a/recipes-core/cacao/cacao_1.6.1.bb b/recipes-core/cacao/cacao_1.6.1.bb
index 03ce0cc..ce1ffc2 100644
--- a/recipes-core/cacao/cacao_1.6.1.bb
+++ b/recipes-core/cacao/cacao_1.6.1.bb
@@ -7,9 +7,7 @@ SECTION  = "interpreters"
 DEPENDS_class-native = "zlib-native libtool-native ecj-initial-native fastjar-native classpath-native bdwgc-native"
 #PROVIDES_class-native = "virtual/java-native"
 
-DEPENDS_append_class-target = " virtual/javac-native "
-
-DEPENDS = "zlib libtool classpath bdwgc"
+DEPENDS = "zlib libtool classpath virtual/javac-native bdwgc"
 RPROVIDES_${PN} = "java2-runtime"
 
 SRC_URI = "http://www.complang.tuwien.ac.at/cacaojvm/download/cacao-${PV}/cacao-${PV}.tar.xz \
diff --git a/recipes-core/classpath/classpath.inc b/recipes-core/classpath/classpath.inc
index c56c0c3..1bdfd78 100644
--- a/recipes-core/classpath/classpath.inc
+++ b/recipes-core/classpath/classpath.inc
@@ -7,9 +7,9 @@ LICENSE = "Classpath"
 
 PBN = "classpath"
 
-inherit autotools java gettext java-bootstrap-components
+inherit autotools java gettext
 
-DEPENDS = " fastjar-native zip-native gmp antlr-native gtk+ gconf libxtst file"
+DEPENDS = "virtual/javac-native fastjar-native zip-native gmp antlr-native gtk+ gconf libxtst file"
 
 RPROVIDES_${PN} = ""
 
diff --git a/recipes-core/classpathx/gnujaf_1.1.1.bb b/recipes-core/classpathx/gnujaf_1.1.1.bb
index 5520ef7..0bd8b57 100644
--- a/recipes-core/classpathx/gnujaf_1.1.1.bb
+++ b/recipes-core/classpathx/gnujaf_1.1.1.bb
@@ -10,7 +10,7 @@ SRC_URI = "http://ftp.gnu.org/gnu/classpathx/activation-${PV}.tar.gz \
            file://MimeType-symbols-fix.patch \
           "
 
-inherit java-library java-bootstrap-components
+inherit java-library
 
 S = "${WORKDIR}/activation-${PV}"
 
diff --git a/recipes-core/classpathx/gnumail_1.1.2.bb b/recipes-core/classpathx/gnumail_1.1.2.bb
index b498c2b..f5033c5 100644
--- a/recipes-core/classpathx/gnumail_1.1.2.bb
+++ b/recipes-core/classpathx/gnumail_1.1.2.bb
@@ -9,7 +9,7 @@ SRC_URI = "http://ftp.gnu.org/gnu/classpathx/mail-${PV}.tar.gz \
            file://fix_makefile_race_condition.patch \
           "
 
-inherit java-library java-bootstrap-components autotools
+inherit java-library autotools
 
 S = "${WORKDIR}/mail-${PV}"
 
diff --git a/recipes-core/classpathx/inetlib_1.1.1.bb b/recipes-core/classpathx/inetlib_1.1.1.bb
index 3b3f299..f078e33 100644
--- a/recipes-core/classpathx/inetlib_1.1.1.bb
+++ b/recipes-core/classpathx/inetlib_1.1.1.bb
@@ -9,7 +9,7 @@ SRC_URI = "http://ftp.gnu.org/gnu/classpath/${BP}.tar.gz \
            file://datadir_java.patch \
           "
 
-inherit java-library java-bootstrap-components autotools
+inherit java-library autotools
 
 JPN = "libgnuinet-java"
 
diff --git a/recipes-core/cup/cup_0.10k.bb b/recipes-core/cup/cup_0.10k.bb
index f2f254e..2a957f9 100644
--- a/recipes-core/cup/cup_0.10k.bb
+++ b/recipes-core/cup/cup_0.10k.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=2c9db91c00f38e52cfc8e67bafaa7c
 RDEPENDS_${PN} = "java2-runtime"
 RDEPENDS_${PN}_virtclass-native = ""
 
-inherit java-library java-bootstrap-components
+inherit java-library
 
 SRC_URI = "http://www.cs.princeton.edu/~appel/modern/java/CUP/java_${BPN}_v10k.tar.gz \
 	   file://cup \
diff --git a/recipes-core/ecj/ecj-bootstrap-native.bb b/recipes-core/ecj/ecj-bootstrap-native.bb
index 28414c2..94ce6aa 100644
--- a/recipes-core/ecj/ecj-bootstrap-native.bb
+++ b/recipes-core/ecj/ecj-bootstrap-native.bb
@@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d
                    "
 PR = "r1"
 
-DEPENDS = "libecj-bootstrap-native cacao-native"
+DEPENDS = "libecj-bootstrap-native virtual/java-native"
 
 SRC_URI = "file://ecj.in"
 
diff --git a/recipes-core/ecj/libecj-bootstrap.inc b/recipes-core/ecj/libecj-bootstrap.inc
index a634a31..020b8d3 100644
--- a/recipes-core/ecj/libecj-bootstrap.inc
+++ b/recipes-core/ecj/libecj-bootstrap.inc
@@ -5,7 +5,7 @@ HOMEPAGE = "http://www.eclipse.org/"
 LICENSE = "EPL-1.0"
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/EPL-1.0;md5=57f8d5e2b3e98ac6e088986c12bf94e6"
 
-DEPENDS = "fastjar-native jikes-initial-native cacao-initial-native"
+DEPENDS = "fastjar-native jikes-initial-native virtual/java-initial-native"
 
 INC_PR = "r5"
 
diff --git a/recipes-core/icedtea/icedtea7-native.inc b/recipes-core/icedtea/icedtea7-native.inc
index 279700b..43385e9 100644
--- a/recipes-core/icedtea/icedtea7-native.inc
+++ b/recipes-core/icedtea/icedtea7-native.inc
@@ -3,7 +3,7 @@ HOMEPAGE = "http://icedtea.classpath.org"
 LICENSE  = "GPL-2.0-with-classpath-exception"
 INC_PR = "r1"
 
-DEPENDS = "fastjar-native cacao-native classpath-native \
+DEPENDS = "virtual/javac-native virtual/java-native classpath-native \
            rhino-native ant-native libxslt-native attr-native \
            giflib-native jpeg-native libpng-native \
            glib-2.0-native freetype-native zlib-native \
diff --git a/recipes-core/jacl/jacl_1.4.1.bb b/recipes-core/jacl/jacl_1.4.1.bb
index f9808ca..b413719 100644
--- a/recipes-core/jacl/jacl_1.4.1.bb
+++ b/recipes-core/jacl/jacl_1.4.1.bb
@@ -10,7 +10,7 @@ HOMEPAGE = "http://sourceforge.net/projects/tcljava"
 
 SRC_URI = "http://downloads.sourceforge.net/tcljava/jacl${PV}.tar.gz"
 
-inherit java-library java-bootstrap-components
+inherit java-library
 
 S = "${WORKDIR}/jacl${PV}"
 
diff --git a/recipes-core/jakarta-commons/commons-logging_1.1.1.bb b/recipes-core/jakarta-commons/commons-logging_1.1.1.bb
index 8b1efe0..b3b508a 100644
--- a/recipes-core/jakarta-commons/commons-logging_1.1.1.bb
+++ b/recipes-core/jakarta-commons/commons-logging_1.1.1.bb
@@ -1,7 +1,5 @@
 require jakarta-commons.inc
 
-inherit java-bootstrap-components
-
 PR = "${INC_PR}.1"
 
 DESCRIPTION = "Java Internet protocol suite library"
diff --git a/recipes-core/jakarta-commons/commons-net_1.4.1.bb b/recipes-core/jakarta-commons/commons-net_1.4.1.bb
index 7c03b82..275ebb9 100644
--- a/recipes-core/jakarta-commons/commons-net_1.4.1.bb
+++ b/recipes-core/jakarta-commons/commons-net_1.4.1.bb
@@ -1,7 +1,5 @@
 require jakarta-commons.inc
 
-inherit java-bootstrap-components
-
 PR = "${INC_PR}.1"
 
 DESCRIPTION = "Java Internet protocol suite library"
diff --git a/recipes-core/jakarta-libs/avalon-framework-api_4.3.bb b/recipes-core/jakarta-libs/avalon-framework-api_4.3.bb
index 2e2bb59..081cfe7 100644
--- a/recipes-core/jakarta-libs/avalon-framework-api_4.3.bb
+++ b/recipes-core/jakarta-libs/avalon-framework-api_4.3.bb
@@ -9,7 +9,7 @@ SRC_URI = " \
 	   http://archive.apache.org/dist/avalon/logkit/source/logkit-1.2.2-src.tar.gz;name=logkit \
 	  "
 
-inherit java-library java-bootstrap-components
+inherit java-library
 
 do_compile() {
   mkdir -p build
diff --git a/recipes-core/jakarta-libs/bsf_2.4.0.bb b/recipes-core/jakarta-libs/bsf_2.4.0.bb
index e23503c..0213004 100644
--- a/recipes-core/jakarta-libs/bsf_2.4.0.bb
+++ b/recipes-core/jakarta-libs/bsf_2.4.0.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b1e01b26bacfc2232046c90a330332b3"
 
 SRC_URI = "http://archive.apache.org/dist/jakarta/bsf/source/bsf-src-${PV}.tar.gz"
 
-inherit java-library java-bootstrap-components
+inherit java-library
 
 DEPENDS = "jacl commons-logging rhino xalan-j bcel"
 DEPENDS_virtclass-native = "jacl-native commons-logging-native rhino-native xalan-j-native bcel-native"
diff --git a/recipes-core/jakarta-libs/log4j1.2_1.2.17.bb b/recipes-core/jakarta-libs/log4j1.2_1.2.17.bb
index 50ef4a2..b4ccd2c 100644
--- a/recipes-core/jakarta-libs/log4j1.2_1.2.17.bb
+++ b/recipes-core/jakarta-libs/log4j1.2_1.2.17.bb
@@ -7,7 +7,7 @@ PR = "r2"
 
 SRC_URI = "http://archive.apache.org/dist/logging/log4j/${PV}/log4j-${PV}.tar.gz"
 
-inherit java-library java-bootstrap-components
+inherit java-library
 
 DEPENDS = "gnumail gnujaf"
 DEPENDS_virtclass-native = "gnumail-native gnujaf-native"
diff --git a/recipes-core/jakarta-libs/logkit_1.2.2.bb b/recipes-core/jakarta-libs/logkit_1.2.2.bb
index 24fdfac..c3b612b 100644
--- a/recipes-core/jakarta-libs/logkit_1.2.2.bb
+++ b/recipes-core/jakarta-libs/logkit_1.2.2.bb
@@ -6,7 +6,7 @@ PR = "r1"
 
 SRC_URI = "http://archive.apache.org/dist/avalon/logkit/source/${BP}-src.tar.gz"
 
-inherit java-library java-bootstrap-components
+inherit java-library
 
 S = "${WORKDIR}/${BP}-dev"
 
diff --git a/recipes-core/jakarta-libs/oro_2.0.8.bb b/recipes-core/jakarta-libs/oro_2.0.8.bb
index 308eb55..0a7fba3 100644
--- a/recipes-core/jakarta-libs/oro_2.0.8.bb
+++ b/recipes-core/jakarta-libs/oro_2.0.8.bb
@@ -6,7 +6,7 @@ PR = "r1"
 
 SRC_URI = "http://archive.apache.org/dist/jakarta/oro/source/jakarta-${BP}.tar.gz"
 
-inherit java-library java-bootstrap-components
+inherit java-library
 
 S = "${WORKDIR}/jakarta-${BP}"
 
diff --git a/recipes-core/jakarta-libs/poi_3.0.bb b/recipes-core/jakarta-libs/poi_3.0.bb
index 55279c1..f9178f2 100644
--- a/recipes-core/jakarta-libs/poi_3.0.bb
+++ b/recipes-core/jakarta-libs/poi_3.0.bb
@@ -9,7 +9,7 @@ S = "${WORKDIR}/${BPN}-3.0-rc4"
 
 inherit java-library
 
-DEPENDS = "commons-collections3 commons-logging commons-lang commons-beanutils log4j1.2 xalan-j"
+DEPENDS = "fastjar-native commons-collections3 commons-logging commons-lang commons-beanutils log4j1.2 xalan-j"
 
 do_compile() {
   mkdir -p build
diff --git a/recipes-core/jakarta-libs/regexp_1.5.bb b/recipes-core/jakarta-libs/regexp_1.5.bb
index d482e4a..ce6150c 100644
--- a/recipes-core/jakarta-libs/regexp_1.5.bb
+++ b/recipes-core/jakarta-libs/regexp_1.5.bb
@@ -6,7 +6,7 @@ PR = "r1"
 
 SRC_URI = "http://archive.apache.org/dist/jakarta/regexp/source/jakarta-${BP}.tar.gz"
 
-inherit java-library java-bootstrap-components
+inherit java-library
 
 S = "${WORKDIR}/jakarta-${BP}"
 
diff --git a/recipes-core/jamvm/jamvm.inc b/recipes-core/jamvm/jamvm.inc
index 6480225..5893cbc 100644
--- a/recipes-core/jamvm/jamvm.inc
+++ b/recipes-core/jamvm/jamvm.inc
@@ -3,7 +3,7 @@ HOMEPAGE = "http://jamvm.sourceforge.net/"
 LICENSE = "GPL-2.0"
 LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
 
-DEPENDS = "zlib classpath libffi"
+DEPENDS = "zlib classpath virtual/javac-native libffi"
 DEPENDS_virtclass-native = "zlib-native classpath-native ecj-initial-native libffi-native"
 
 RDEPENDS_${PN} = "classpath"
@@ -21,7 +21,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/jamvm/jamvm-${PV}.tar.gz \
           "
 
 
-inherit java autotools update-alternatives pkgconfig java-bootstrap-components
+inherit java autotools update-alternatives pkgconfig
 
 # This uses 32 bit arm, so force the instruction set to arm, not thumb
 ARM_INSTRUCTION_SET = "arm"
diff --git a/recipes-core/jcraft/jsch_0.1.40.bb b/recipes-core/jcraft/jsch_0.1.40.bb
index d22eb0a..337a8eb 100644
--- a/recipes-core/jcraft/jsch_0.1.40.bb
+++ b/recipes-core/jcraft/jsch_0.1.40.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=55e3b6a0987ccd0c34530f3df2d206ae"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/jsch/jsch-${PV}.zip"
 
-inherit java-library java-bootstrap-components
+inherit java-library
 
 DEPENDS = "jzlib"
 DEPENDS_virtclass-native = "jzlib-native"
diff --git a/recipes-core/jcraft/jzlib_1.0.7.bb b/recipes-core/jcraft/jzlib_1.0.7.bb
index 79fc4d4..b6f3f64 100644
--- a/recipes-core/jcraft/jzlib_1.0.7.bb
+++ b/recipes-core/jcraft/jzlib_1.0.7.bb
@@ -6,7 +6,7 @@ HOMEPAGE = "http://www.jcraft.com/jzlib"
 
 SRC_URI = "http://www.jcraft.com/jzlib/jzlib-${PV}.tar.gz"
 
-inherit java-library java-bootstrap-components
+inherit java-library
 
 do_compile() {
   mkdir -p build
diff --git a/recipes-core/jdepend/jdepend_2.9.1.bb b/recipes-core/jdepend/jdepend_2.9.1.bb
index 8f41c00..9f74f44 100644
--- a/recipes-core/jdepend/jdepend_2.9.1.bb
+++ b/recipes-core/jdepend/jdepend_2.9.1.bb
@@ -8,7 +8,7 @@ HOMEPAGE = "http://clarkware.com/software/JDepend.html"
 
 SRC_URI = "http://www.clarkware.com/software/jdepend-${PV}.zip"
 
-inherit java-library java-bootstrap-components
+inherit java-library
 
 do_compile() {
   mkdir -p build
diff --git a/recipes-core/jlex/jlex_1.2.6.bb b/recipes-core/jlex/jlex_1.2.6.bb
index 9290fa5..4dbe63e 100644
--- a/recipes-core/jlex/jlex_1.2.6.bb
+++ b/recipes-core/jlex/jlex_1.2.6.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d
 RDEPENDS_${PN} = "java2-runtime"
 RDEPENDS_${PN}_virtclass-native = ""
 
-inherit java-library java-bootstrap-components
+inherit java-library
 
 SRC_URI = "http://www.cs.princeton.edu/~appel/modern/java/JLex/Archive/${PV}/Main.java \
            file://jlex \
diff --git a/recipes-core/junit/junit4_4.3.1.bb b/recipes-core/junit/junit4_4.3.1.bb
index 8d9dd31..1cb8674 100644
--- a/recipes-core/junit/junit4_4.3.1.bb
+++ b/recipes-core/junit/junit4_4.3.1.bb
@@ -8,7 +8,9 @@ SRC_URI = "http://downloads.sourceforge.net/junit/junit-${PV}-src.jar"
 
 S = "${WORKDIR}"
 
-inherit java-library java-bootstrap-components
+inherit java-library
+
+DEPENDS = "fastjar-native"
 
 do_compile() {
   mkdir -p build
diff --git a/recipes-core/junit/junit_3.8.2.bb b/recipes-core/junit/junit_3.8.2.bb
index 54ce9fe..bae022d 100644
--- a/recipes-core/junit/junit_3.8.2.bb
+++ b/recipes-core/junit/junit_3.8.2.bb
@@ -11,7 +11,7 @@ S = "${WORKDIR}/junit${PV}"
 
 DEPENDS += "unzip-native"
 
-inherit java-library java-bootstrap-components
+inherit java-library
 
 do_unpackpost() {
 	mkdir -p src
diff --git a/recipes-core/rhino/rhino_1.7r4.bb b/recipes-core/rhino/rhino_1.7r4.bb
index 76c3057..7898d23 100644
--- a/recipes-core/rhino/rhino_1.7r4.bb
+++ b/recipes-core/rhino/rhino_1.7r4.bb
@@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8e2372bdbf22c99279ae4599a13cc458"
 
 BBCLASSEXTEND = "native"
 
-inherit java-library java-bootstrap-components
+inherit java-library
 
 SRC_URI = "\
 	https://github.com/downloads/mozilla/rhino/rhino1_7R4.zip \
diff --git a/recipes-core/servlet-api/servlet2.3_4.1.37.bb b/recipes-core/servlet-api/servlet2.3_4.1.37.bb
index f5f6d4a..fbda5c8 100644
--- a/recipes-core/servlet-api/servlet2.3_4.1.37.bb
+++ b/recipes-core/servlet-api/servlet2.3_4.1.37.bb
@@ -6,10 +6,12 @@ PR = "r1"
 
 SRC_URI = "http://archive.apache.org/dist/tomcat/tomcat-4/v${PV}/src/apache-tomcat-${PV}-src.tar.gz"
 
-inherit java-library java-bootstrap-components
+inherit java-library
 
 S = "${WORKDIR}/apache-tomcat-${PV}-src/servletapi"
 
+DEPENDS = "fastjar-native"
+
 # Value of implementation.revision in build.xml
 IMPL_REVISION = "1"
 
diff --git a/recipes-core/servlet-api/servlet2.4_5.5.26.bb b/recipes-core/servlet-api/servlet2.4_5.5.26.bb
index 7d0feb3..b34b23d 100644
--- a/recipes-core/servlet-api/servlet2.4_5.5.26.bb
+++ b/recipes-core/servlet-api/servlet2.4_5.5.26.bb
@@ -9,6 +9,8 @@ S = "${WORKDIR}/apache-tomcat-${PV}-src/servletapi/jsr154"
 
 inherit java-library
 
+DEPENDS = "fastjar-native"
+
 # Value of implementation.revision in build.xml
 IMPL_REVISION = "1"
 
diff --git a/recipes-core/xalan-j/xalan-j_2.7.1.bb b/recipes-core/xalan-j/xalan-j_2.7.1.bb
index 16f5396..317b3c9 100644
--- a/recipes-core/xalan-j/xalan-j_2.7.1.bb
+++ b/recipes-core/xalan-j/xalan-j_2.7.1.bb
@@ -21,7 +21,7 @@ SRC_URI = "\
 
 S = "${WORKDIR}/${BPN}_2_7_1"
 
-inherit java-library java-bootstrap-components
+inherit java-library
 
 JPN = "libxalan2-java"
 
diff --git a/recipes-core/xerces-j/xerces-j_2.11.0.bb b/recipes-core/xerces-j/xerces-j_2.11.0.bb
index 4130457..f9e497e 100644
--- a/recipes-core/xerces-j/xerces-j_2.11.0.bb
+++ b/recipes-core/xerces-j/xerces-j_2.11.0.bb
@@ -16,12 +16,12 @@ SRC_URI = "http://archive.apache.org/dist/xerces/j/Xerces-J-src.${PV}.tar.gz"
 
 S = "${WORKDIR}/xerces-2_11_0"
 
-inherit java-library java-bootstrap-components
+inherit java-library
 
 JPN = "libxerces2-java"
 
-DEPENDS = "jaxp1.3 xml-commons-resolver1.1"
-DEPENDS_virtclass-native = "jaxp1.3-native xml-commons-resolver1.1-native"
+DEPENDS = "fastjar-native jaxp1.3 xml-commons-resolver1.1"
+DEPENDS_virtclass-native = "fastjar-native jaxp1.3-native xml-commons-resolver1.1-native"
 
 RDEPENDS_${PN} = "libjaxp1.3-java libxml-commons-resolver1.1-java"
 RDEPENDS_${PN}_virtclass-native = ""
diff --git a/recipes-core/xml-commons/jaxp1.3_1.4.01.bb b/recipes-core/xml-commons/jaxp1.3_1.4.01.bb
index 765b766..a6eeb57 100644
--- a/recipes-core/xml-commons/jaxp1.3_1.4.01.bb
+++ b/recipes-core/xml-commons/jaxp1.3_1.4.01.bb
@@ -11,7 +11,9 @@ LIC_FILES_CHKSUM = " \
 
 SRC_URI = "http://archive.apache.org/dist/xml/commons/source/xml-commons-external-${PV}-src.tar.gz;subdir=${BPN}-${PV}"
 
-inherit java-library java-bootstrap-components
+inherit java-library
+
+DEPENDS = "fastjar-native"
 
 JARFILENAME = "jaxp-1.3.jar"
 ALTJARFILENAMES = "xml-apis.jar"
diff --git a/recipes-core/xml-commons/xml-commons-resolver1.1_1.2.bb b/recipes-core/xml-commons/xml-commons-resolver1.1_1.2.bb
index ca1f2f2..5853895 100644
--- a/recipes-core/xml-commons/xml-commons-resolver1.1_1.2.bb
+++ b/recipes-core/xml-commons/xml-commons-resolver1.1_1.2.bb
@@ -6,12 +6,12 @@ LIC_FILES_CHKSUM = "file://LICENSE.resolver.txt;md5=d229da563da18fe5d58cd95a6467
 
 SRC_URI = "http://archive.apache.org/dist/xml/commons/xml-commons-resolver-${PV}.tar.gz"
 
-inherit java-library java-bootstrap-components
+inherit java-library
 
 S = "${WORKDIR}/xml-commons-resolver-${PV}"
 
-DEPENDS = "jaxp1.3"
-DEPENDS_virtclass-native = "jaxp1.3-native"
+DEPENDS = "fastjar-native jaxp1.3"
+DEPENDS_virtclass-native = "fastjar-native jaxp1.3-native"
 
 do_unpackpost() {
   find src -exec \
diff --git a/recipes-core/xml-commons/xpp2_2.1.10.bb b/recipes-core/xml-commons/xpp2_2.1.10.bb
index 402d38d..d3baca4 100644
--- a/recipes-core/xml-commons/xpp2_2.1.10.bb
+++ b/recipes-core/xml-commons/xpp2_2.1.10.bb
@@ -9,6 +9,8 @@ S = "${WORKDIR}/PullParser${PV}"
 
 inherit java-library
 
+DEPENDS = "fastjar-native virtual/javac-native"
+
 do_compile() {
     if [ -d build-oe ]; then
         rm -rf build-oe
diff --git a/recipes-core/xml-commons/xpp3_1.1.3.4.O.bb b/recipes-core/xml-commons/xpp3_1.1.3.4.O.bb
index a472a0d..bedb8a9 100644
--- a/recipes-core/xml-commons/xpp3_1.1.3.4.O.bb
+++ b/recipes-core/xml-commons/xpp3_1.1.3.4.O.bb
@@ -8,6 +8,8 @@ SRC_URI = "http://www.extreme.indiana.edu/dist/java-repository/xpp3/distribution
 
 inherit java-library
 
+DEPENDS = "fastjar-native virtual/javac-native"
+
 PACKAGES = "libxpp3-xpath-java ${JPN}"
 
 do_compile() {
-- 
1.9.1



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

* [meta-java][PATCH 2/2] openjdk-8-native: fix improper do_install and PROVIDES
  2015-12-23 10:03 [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES jackie.huang
  2015-12-23 10:03 ` [meta-java][PATCH 1/2] Revert "meta-java: rely on well known bootstrap-path" jackie.huang
@ 2015-12-23 10:03 ` jackie.huang
  2016-01-04 19:20 ` [meta-java][PATCH 0/2] openjdk-8-native: fix " Jens Rehsack
  2 siblings, 0 replies; 12+ messages in thread
From: jackie.huang @ 2015-12-23 10:03 UTC (permalink / raw)
  To: openembedded-devel

From: Jackie Huang <jackie.huang@windriver.com>

We had:
virtual/jar-native provided by fastjar-native
virtual/java-native provided by cacao-native and jamvm-native
virtual/javac-native provided by ecj-bootstrap-native

Then openjdk-8-native added and also provides:
virtual/java-native and virtual/javac-native
(it also installs ${STAGING_BINDIR_NATIVE}/jar but
doesn't add virtual/jar-native in the PROVIDES)

which introduces circular dependencies,
java-bootstrap-components.bbclass is to avoid the
circular dependencies but it's not a correct way
since it make two conflicted packages build into
the same sysroot:

DEPENDS_prepend_class-native = " ecj-bootstrap-native "
DEPENDS_prepend_class-target = " virtual/javac-native "

virtual/javac-native is provided by openjdk-8-native,
and it assumed that ecj-bootstrap-native, fastjar-native and
cacao-native/jamvm-native are always built before openjdk-8-native,
then in the do_install of penjdk-8-native, it removes them from
staging dirs first, then install (create symlinks for) these files
in staging dirs directly, which results with empty sstate and
builds from sstate cache or builds not in this assumption
will fail.

The fixes here includes:
- Revert "meta-java: rely on well known bootstrap-path" in
  previous commit to remove the improper
  java-bootstrap-components.bbclass

- Do not let openjdk-8-native provides jar, java and javac,
  just like what we do in icedtea7-native, which can provides
  but not to avoid circular dependencies and conflicts.

- make cacao-native back to provide virtual/java-native,
  and ecj-bootstrap-native back to provide virtual/javac-native

- Add back provider settings in README.

- Remove the update-alternatives in openjdk-8-native,
  it doesn't work for native package.

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
---
 README                                         | 12 ++++++++++--
 recipes-core/cacao/cacao_1.6.1.bb              |  2 +-
 recipes-core/ecj/ecj-bootstrap-native.bb       |  2 ++
 recipes-core/openjdk/openjdk-8-native.inc      | 13 +++++--------
 recipes-core/openjdk/openjdk-8-native_72b05.bb | 26 --------------------------
 5 files changed, 18 insertions(+), 37 deletions(-)

diff --git a/README b/README
index 7658c23..259fa75 100644
--- a/README
+++ b/README
@@ -52,8 +52,16 @@ Main layer maintainers:
 Usage instructions
 ------------------
 
-Since there is a clear bootstrap of the individual java-recipes, there is
-nothing to configure in conf/local.conf nor your individual distro/$name.conf.
+You should define at least the following variables in a distro include file or local.conf
+
+# Possible provider: cacao-initial-native and jamvm-initial-native
+PREFERRED_PROVIDER_virtual/java-initial-native = "cacao-initial-native"
+
+# Possible provider: cacao-native and jamvm-native
+PREFERRED_PROVIDER_virtual/java-native = "jamvm-native"
+
+# Optional since there is only one provider for now
+PREFERRED_PROVIDER_virtual/javac-native = "ecj-bootstrap-native"
 
 Simply rely on openjdk-7-jre, openjdk-7, openjdk-8 or openjre-8.
 
diff --git a/recipes-core/cacao/cacao_1.6.1.bb b/recipes-core/cacao/cacao_1.6.1.bb
index ce1ffc2..8e212af 100644
--- a/recipes-core/cacao/cacao_1.6.1.bb
+++ b/recipes-core/cacao/cacao_1.6.1.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
 SECTION  = "interpreters"
 
 DEPENDS_class-native = "zlib-native libtool-native ecj-initial-native fastjar-native classpath-native bdwgc-native"
-#PROVIDES_class-native = "virtual/java-native"
+PROVIDES_class-native = "virtual/java-native"
 
 DEPENDS = "zlib libtool classpath virtual/javac-native bdwgc"
 RPROVIDES_${PN} = "java2-runtime"
diff --git a/recipes-core/ecj/ecj-bootstrap-native.bb b/recipes-core/ecj/ecj-bootstrap-native.bb
index 94ce6aa..e159c9d 100644
--- a/recipes-core/ecj/ecj-bootstrap-native.bb
+++ b/recipes-core/ecj/ecj-bootstrap-native.bb
@@ -14,6 +14,8 @@ PR = "r1"
 
 DEPENDS = "libecj-bootstrap-native virtual/java-native"
 
+PROVIDES = "virtual/javac-native"
+
 SRC_URI = "file://ecj.in"
 
 S = "${WORKDIR}"
diff --git a/recipes-core/openjdk/openjdk-8-native.inc b/recipes-core/openjdk/openjdk-8-native.inc
index 7813ec2..7a37d1a 100644
--- a/recipes-core/openjdk/openjdk-8-native.inc
+++ b/recipes-core/openjdk/openjdk-8-native.inc
@@ -68,15 +68,12 @@ do_compile_append() {
 }
 
 do_install() {
-    rm -rf ${STAGING_LIBDIR_NATIVE}/jvm/${JDK_DIR}
-    mkdir -p ${STAGING_LIBDIR_NATIVE}/jvm/${JDK_DIR}
-    cp -rp ${B}/images/j2sdk-image/* ${STAGING_LIBDIR_NATIVE}/jvm/${JDK_DIR}
+    mkdir -p ${D}${libdir_jvm}/${JDK_DIR}
+    cp -rp ${B}/images/j2sdk-image/* ${D}${libdir_jvm}/${JDK_DIR}
 
-# clean up the mess from bootstrap
-    for tool in jar java javac keytool pack200 unpack200
+    mkdir -p ${D}${bindir}
+    for tool in keytool pack200 unpack200
     do
-        rm -f ${STAGING_BINDIR_NATIVE}/$tool
-
-        ln -sf "../lib/jvm/${JDK_DIR}/bin/$tool" ${STAGING_BINDIR_NATIVE}/$tool
+        ln -sf "../lib/jvm/${JDK_DIR}/bin/$tool" ${D}${bindir}/$tool
     done
 }
diff --git a/recipes-core/openjdk/openjdk-8-native_72b05.bb b/recipes-core/openjdk/openjdk-8-native_72b05.bb
index 6eb40eb..7b20248 100644
--- a/recipes-core/openjdk/openjdk-8-native_72b05.bb
+++ b/recipes-core/openjdk/openjdk-8-native_72b05.bb
@@ -1,28 +1,2 @@
 require openjdk-8-release-72b05.inc
 require openjdk-8-native.inc
-
-PROVIDES = "virtual/java-native virtual/javac-native"
-
-inherit update-alternatives
-
-ALTERNATIVE_${PN} = "java javac jar pack200 unpack200 keytool"
-ALTERNATIVE_LINK[java] = "${bindir}/java"
-ALTERNATIVE_TARGET[java] = "${JDK_HOME}/bin/java"
-ALTERNATIVE_PRIORITY[java] = "100"
-ALTERNATIVE_LINK[javac] = "${bindir}/javac"
-ALTERNATIVE_TARGET[javac] = "${JDK_HOME}/bin/javac"
-ALTERNATIVE_PRIORITY[javac] = "100"
-ALTERNATIVE_LINK[jar] = "${bindir}/jar"
-ALTERNATIVE_TARGET[jar] = "${JDK_HOME}/bin/jar"
-ALTERNATIVE_PRIORITY[jar] = "100"
-ALTERNATIVE_LINK[pack200] = "${bindir}/pack200"
-ALTERNATIVE_TARGET[pack200] = "${JDK_HOME}/bin/pack200"
-ALTERNATIVE_PRIORITY[pack200] = "100"
-ALTERNATIVE_LINK[unpack200] = "${bindir}/unpack200"
-ALTERNATIVE_TARGET[unpack200] = "${JDK_HOME}/bin/unpack200"
-ALTERNATIVE_PRIORITY[unpack200] = "100"
-ALTERNATIVE_LINK[keytool] = "${bindir}/keytool"
-ALTERNATIVE_TARGET[keytool] = "${JDK_HOME}/bin/keytool"
-ALTERNATIVE_PRIORITY[keytool] = "100"
-
-# PR = "${INC_PR}.1"
-- 
1.9.1



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

* Re: [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
  2015-12-23 10:03 [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES jackie.huang
  2015-12-23 10:03 ` [meta-java][PATCH 1/2] Revert "meta-java: rely on well known bootstrap-path" jackie.huang
  2015-12-23 10:03 ` [meta-java][PATCH 2/2] openjdk-8-native: fix improper do_install and PROVIDES jackie.huang
@ 2016-01-04 19:20 ` Jens Rehsack
  2016-01-06  7:03   ` Huang, Jie (Jackie)
  2 siblings, 1 reply; 12+ messages in thread
From: Jens Rehsack @ 2016-01-04 19:20 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 4088 bytes --]

It's insane re-introducing a virtual/javac-native without understanding
the issues coming with that.

> Am 23.12.2015 um 11:03 schrieb jackie.huang@windriver.com:
> 
> From: Jackie Huang <jackie.huang@windriver.com>
> 
> I asked about this issue two days ago but no response, please carefully
> review and correct me if anyone have better understanding.

Please excuse when people enjoy their holidays around Christmas.

> My tests includes building openjdk7 and openjdk8 on qemux86-64
> with/without sstate cache.
> 
> --
> The following changes since commit 35739fca028996c594b1efa2225a77c8d6038193:
> 
>  openjdk-8: Use zero mode on arm (2015-12-17 10:39:21 -0200)
> 
> are available in the git repository at:
> 
>  git://git.pokylinux.org/poky-contrib.git jhuang0/d_jdk8-fix_151223_0
>  http://git.pokylinux.org/cgit.cgi//log/?h=jhuang0/d_jdk8-fix_151223_0
> 
> Jackie Huang (2):
>  Revert "meta-java: rely on well known bootstrap-path"
>  openjdk-8-native: fix improper do_install and PROVIDES
> 
> README                                             | 12 ++++++++--
> classes/java-bootstrap-components.bbclass          |  7 ------
> classes/java-library.bbclass                       |  3 +--
> recipes-core/ant/ant-native_1.8.1.bb               |  2 +-
> recipes-core/antlr/antlr_2.7.7.bb                  |  2 +-
> recipes-core/cacao/cacao_1.6.1.bb                  |  6 ++---
> recipes-core/classpath/classpath.inc               |  4 ++--
> recipes-core/classpathx/gnujaf_1.1.1.bb            |  2 +-
> recipes-core/classpathx/gnumail_1.1.2.bb           |  2 +-
> recipes-core/classpathx/inetlib_1.1.1.bb           |  2 +-
> recipes-core/cup/cup_0.10k.bb                      |  2 +-
> recipes-core/ecj/ecj-bootstrap-native.bb           |  4 +++-
> recipes-core/ecj/libecj-bootstrap.inc              |  2 +-
> recipes-core/icedtea/icedtea7-native.inc           |  2 +-
> recipes-core/jacl/jacl_1.4.1.bb                    |  2 +-
> .../jakarta-commons/commons-logging_1.1.1.bb       |  2 --
> recipes-core/jakarta-commons/commons-net_1.4.1.bb  |  2 --
> .../jakarta-libs/avalon-framework-api_4.3.bb       |  2 +-
> recipes-core/jakarta-libs/bsf_2.4.0.bb             |  2 +-
> recipes-core/jakarta-libs/log4j1.2_1.2.17.bb       |  2 +-
> recipes-core/jakarta-libs/logkit_1.2.2.bb          |  2 +-
> recipes-core/jakarta-libs/oro_2.0.8.bb             |  2 +-
> recipes-core/jakarta-libs/poi_3.0.bb               |  2 +-
> recipes-core/jakarta-libs/regexp_1.5.bb            |  2 +-
> recipes-core/jamvm/jamvm.inc                       |  4 ++--
> recipes-core/jcraft/jsch_0.1.40.bb                 |  2 +-
> recipes-core/jcraft/jzlib_1.0.7.bb                 |  2 +-
> recipes-core/jdepend/jdepend_2.9.1.bb              |  2 +-
> recipes-core/jlex/jlex_1.2.6.bb                    |  2 +-
> recipes-core/junit/junit4_4.3.1.bb                 |  4 +++-
> recipes-core/junit/junit_3.8.2.bb                  |  2 +-
> recipes-core/openjdk/openjdk-8-native.inc          | 13 +++++------
> recipes-core/openjdk/openjdk-8-native_72b05.bb     | 26 ----------------------
> recipes-core/rhino/rhino_1.7r4.bb                  |  2 +-
> recipes-core/servlet-api/servlet2.3_4.1.37.bb      |  4 +++-
> recipes-core/servlet-api/servlet2.4_5.5.26.bb      |  2 ++
> recipes-core/xalan-j/xalan-j_2.7.1.bb              |  2 +-
> recipes-core/xerces-j/xerces-j_2.11.0.bb           |  6 ++---
> recipes-core/xml-commons/jaxp1.3_1.4.01.bb         |  4 +++-
> .../xml-commons/xml-commons-resolver1.1_1.2.bb     |  6 ++---
> recipes-core/xml-commons/xpp2_2.1.10.bb            |  2 ++
> recipes-core/xml-commons/xpp3_1.1.3.4.O.bb         |  2 ++
> 42 files changed, 69 insertions(+), 90 deletions(-)
> delete mode 100644 classes/java-bootstrap-components.bbclass
> 
> --
> 1.9.1
> 
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel

--
Jens Rehsack - rehsack@gmail.com


[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 859 bytes --]

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

* Re: [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
  2016-01-04 19:20 ` [meta-java][PATCH 0/2] openjdk-8-native: fix " Jens Rehsack
@ 2016-01-06  7:03   ` Huang, Jie (Jackie)
  2016-01-06 13:56     ` Jens Rehsack
  0 siblings, 1 reply; 12+ messages in thread
From: Huang, Jie (Jackie) @ 2016-01-06  7:03 UTC (permalink / raw)
  To: openembedded-devel



> -----Original Message-----
> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-devel-
> bounces@lists.openembedded.org] On Behalf Of Jens Rehsack
> Sent: Tuesday, January 05, 2016 3:21 AM
> To: openembedded-devel@lists.openembedded.org
> Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
> 
> It's insane re-introducing a virtual/javac-native without understanding
> the issues coming with that.

Please carefully review the patches before saying insane, I don't think it was
correct to remove virtual/javac-native since there are several providers.

Thanks,
Jackie

> 
> > Am 23.12.2015 um 11:03 schrieb jackie.huang@windriver.com:
> >
> > From: Jackie Huang <jackie.huang@windriver.com>
> >
> > I asked about this issue two days ago but no response, please carefully
> > review and correct me if anyone have better understanding.
> 
> Please excuse when people enjoy their holidays around Christmas.
> 
> > My tests includes building openjdk7 and openjdk8 on qemux86-64
> > with/without sstate cache.
> >
> > --
> > The following changes since commit 35739fca028996c594b1efa2225a77c8d6038193:
> >
> >  openjdk-8: Use zero mode on arm (2015-12-17 10:39:21 -0200)
> >
> > are available in the git repository at:
> >
> >  git://git.pokylinux.org/poky-contrib.git jhuang0/d_jdk8-fix_151223_0
> >  http://git.pokylinux.org/cgit.cgi//log/?h=jhuang0/d_jdk8-fix_151223_0
> >
> > Jackie Huang (2):
> >  Revert "meta-java: rely on well known bootstrap-path"
> >  openjdk-8-native: fix improper do_install and PROVIDES
> >
> > README                                             | 12 ++++++++--
> > classes/java-bootstrap-components.bbclass          |  7 ------
> > classes/java-library.bbclass                       |  3 +--
> > recipes-core/ant/ant-native_1.8.1.bb               |  2 +-
> > recipes-core/antlr/antlr_2.7.7.bb                  |  2 +-
> > recipes-core/cacao/cacao_1.6.1.bb                  |  6 ++---
> > recipes-core/classpath/classpath.inc               |  4 ++--
> > recipes-core/classpathx/gnujaf_1.1.1.bb            |  2 +-
> > recipes-core/classpathx/gnumail_1.1.2.bb           |  2 +-
> > recipes-core/classpathx/inetlib_1.1.1.bb           |  2 +-
> > recipes-core/cup/cup_0.10k.bb                      |  2 +-
> > recipes-core/ecj/ecj-bootstrap-native.bb           |  4 +++-
> > recipes-core/ecj/libecj-bootstrap.inc              |  2 +-
> > recipes-core/icedtea/icedtea7-native.inc           |  2 +-
> > recipes-core/jacl/jacl_1.4.1.bb                    |  2 +-
> > .../jakarta-commons/commons-logging_1.1.1.bb       |  2 --
> > recipes-core/jakarta-commons/commons-net_1.4.1.bb  |  2 --
> > .../jakarta-libs/avalon-framework-api_4.3.bb       |  2 +-
> > recipes-core/jakarta-libs/bsf_2.4.0.bb             |  2 +-
> > recipes-core/jakarta-libs/log4j1.2_1.2.17.bb       |  2 +-
> > recipes-core/jakarta-libs/logkit_1.2.2.bb          |  2 +-
> > recipes-core/jakarta-libs/oro_2.0.8.bb             |  2 +-
> > recipes-core/jakarta-libs/poi_3.0.bb               |  2 +-
> > recipes-core/jakarta-libs/regexp_1.5.bb            |  2 +-
> > recipes-core/jamvm/jamvm.inc                       |  4 ++--
> > recipes-core/jcraft/jsch_0.1.40.bb                 |  2 +-
> > recipes-core/jcraft/jzlib_1.0.7.bb                 |  2 +-
> > recipes-core/jdepend/jdepend_2.9.1.bb              |  2 +-
> > recipes-core/jlex/jlex_1.2.6.bb                    |  2 +-
> > recipes-core/junit/junit4_4.3.1.bb                 |  4 +++-
> > recipes-core/junit/junit_3.8.2.bb                  |  2 +-
> > recipes-core/openjdk/openjdk-8-native.inc          | 13 +++++------
> > recipes-core/openjdk/openjdk-8-native_72b05.bb     | 26 ----------------------
> > recipes-core/rhino/rhino_1.7r4.bb                  |  2 +-
> > recipes-core/servlet-api/servlet2.3_4.1.37.bb      |  4 +++-
> > recipes-core/servlet-api/servlet2.4_5.5.26.bb      |  2 ++
> > recipes-core/xalan-j/xalan-j_2.7.1.bb              |  2 +-
> > recipes-core/xerces-j/xerces-j_2.11.0.bb           |  6 ++---
> > recipes-core/xml-commons/jaxp1.3_1.4.01.bb         |  4 +++-
> > .../xml-commons/xml-commons-resolver1.1_1.2.bb     |  6 ++---
> > recipes-core/xml-commons/xpp2_2.1.10.bb            |  2 ++
> > recipes-core/xml-commons/xpp3_1.1.3.4.O.bb         |  2 ++
> > 42 files changed, 69 insertions(+), 90 deletions(-)
> > delete mode 100644 classes/java-bootstrap-components.bbclass
> >
> > --
> > 1.9.1
> >
> > --
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> 
> --
> Jens Rehsack - rehsack@gmail.com



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

* Re: [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
  2016-01-06  7:03   ` Huang, Jie (Jackie)
@ 2016-01-06 13:56     ` Jens Rehsack
  2016-01-07  3:00       ` Huang, Jie (Jackie)
  0 siblings, 1 reply; 12+ messages in thread
From: Jens Rehsack @ 2016-01-06 13:56 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 5586 bytes --]


> Am 06.01.2016 um 08:03 schrieb Huang, Jie (Jackie) <Jackie.Huang@windriver.com>:
> 
> 
> 
>> -----Original Message-----
>> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-devel-
>> bounces@lists.openembedded.org] On Behalf Of Jens Rehsack
>> Sent: Tuesday, January 05, 2016 3:21 AM
>> To: openembedded-devel@lists.openembedded.org
>> Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
>> 
>> It's insane re-introducing a virtual/javac-native without understanding
>> the issues coming with that.
> 
> Please carefully review the patches before saying insane, I don't think it was
> correct to remove virtual/javac-native since there are several providers.

What does virtual/javac-native mean? Correctly, there can be several providers.

How many of them can you have in one sysroot/build? One.

So - when in an openjdk-7 or openjdk-8 bootstrap 4 recipes PROVIDE virtual/javac-native,
what happens?

It is insane to have multiple providers for the same virtual/foo when at least a bunch
of them are required to finish a particular build.

> Thanks,
> Jackie

You're welcome,
Jens

>> 
>>> Am 23.12.2015 um 11:03 schrieb jackie.huang@windriver.com:
>>> 
>>> From: Jackie Huang <jackie.huang@windriver.com>
>>> 
>>> I asked about this issue two days ago but no response, please carefully
>>> review and correct me if anyone have better understanding.
>> 
>> Please excuse when people enjoy their holidays around Christmas.
>> 
>>> My tests includes building openjdk7 and openjdk8 on qemux86-64
>>> with/without sstate cache.
>>> 
>>> --
>>> The following changes since commit 35739fca028996c594b1efa2225a77c8d6038193:
>>> 
>>> openjdk-8: Use zero mode on arm (2015-12-17 10:39:21 -0200)
>>> 
>>> are available in the git repository at:
>>> 
>>> git://git.pokylinux.org/poky-contrib.git jhuang0/d_jdk8-fix_151223_0
>>> http://git.pokylinux.org/cgit.cgi//log/?h=jhuang0/d_jdk8-fix_151223_0
>>> 
>>> Jackie Huang (2):
>>> Revert "meta-java: rely on well known bootstrap-path"
>>> openjdk-8-native: fix improper do_install and PROVIDES
>>> 
>>> README                                             | 12 ++++++++--
>>> classes/java-bootstrap-components.bbclass          |  7 ------
>>> classes/java-library.bbclass                       |  3 +--
>>> recipes-core/ant/ant-native_1.8.1.bb               |  2 +-
>>> recipes-core/antlr/antlr_2.7.7.bb                  |  2 +-
>>> recipes-core/cacao/cacao_1.6.1.bb                  |  6 ++---
>>> recipes-core/classpath/classpath.inc               |  4 ++--
>>> recipes-core/classpathx/gnujaf_1.1.1.bb            |  2 +-
>>> recipes-core/classpathx/gnumail_1.1.2.bb           |  2 +-
>>> recipes-core/classpathx/inetlib_1.1.1.bb           |  2 +-
>>> recipes-core/cup/cup_0.10k.bb                      |  2 +-
>>> recipes-core/ecj/ecj-bootstrap-native.bb           |  4 +++-
>>> recipes-core/ecj/libecj-bootstrap.inc              |  2 +-
>>> recipes-core/icedtea/icedtea7-native.inc           |  2 +-
>>> recipes-core/jacl/jacl_1.4.1.bb                    |  2 +-
>>> .../jakarta-commons/commons-logging_1.1.1.bb       |  2 --
>>> recipes-core/jakarta-commons/commons-net_1.4.1.bb  |  2 --
>>> .../jakarta-libs/avalon-framework-api_4.3.bb       |  2 +-
>>> recipes-core/jakarta-libs/bsf_2.4.0.bb             |  2 +-
>>> recipes-core/jakarta-libs/log4j1.2_1.2.17.bb       |  2 +-
>>> recipes-core/jakarta-libs/logkit_1.2.2.bb          |  2 +-
>>> recipes-core/jakarta-libs/oro_2.0.8.bb             |  2 +-
>>> recipes-core/jakarta-libs/poi_3.0.bb               |  2 +-
>>> recipes-core/jakarta-libs/regexp_1.5.bb            |  2 +-
>>> recipes-core/jamvm/jamvm.inc                       |  4 ++--
>>> recipes-core/jcraft/jsch_0.1.40.bb                 |  2 +-
>>> recipes-core/jcraft/jzlib_1.0.7.bb                 |  2 +-
>>> recipes-core/jdepend/jdepend_2.9.1.bb              |  2 +-
>>> recipes-core/jlex/jlex_1.2.6.bb                    |  2 +-
>>> recipes-core/junit/junit4_4.3.1.bb                 |  4 +++-
>>> recipes-core/junit/junit_3.8.2.bb                  |  2 +-
>>> recipes-core/openjdk/openjdk-8-native.inc          | 13 +++++------
>>> recipes-core/openjdk/openjdk-8-native_72b05.bb     | 26 ----------------------
>>> recipes-core/rhino/rhino_1.7r4.bb                  |  2 +-
>>> recipes-core/servlet-api/servlet2.3_4.1.37.bb      |  4 +++-
>>> recipes-core/servlet-api/servlet2.4_5.5.26.bb      |  2 ++
>>> recipes-core/xalan-j/xalan-j_2.7.1.bb              |  2 +-
>>> recipes-core/xerces-j/xerces-j_2.11.0.bb           |  6 ++---
>>> recipes-core/xml-commons/jaxp1.3_1.4.01.bb         |  4 +++-
>>> .../xml-commons/xml-commons-resolver1.1_1.2.bb     |  6 ++---
>>> recipes-core/xml-commons/xpp2_2.1.10.bb            |  2 ++
>>> recipes-core/xml-commons/xpp3_1.1.3.4.O.bb         |  2 ++
>>> 42 files changed, 69 insertions(+), 90 deletions(-)
>>> delete mode 100644 classes/java-bootstrap-components.bbclass
>>> 
>>> --
>>> 1.9.1
>>> 
>>> --
>>> _______________________________________________
>>> Openembedded-devel mailing list
>>> Openembedded-devel@lists.openembedded.org
>>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>> 
>> --
>> Jens Rehsack - rehsack@gmail.com
> 
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel

--
Jens Rehsack - rehsack@gmail.com


[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 859 bytes --]

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

* Re: [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
  2016-01-06 13:56     ` Jens Rehsack
@ 2016-01-07  3:00       ` Huang, Jie (Jackie)
  2016-01-08  9:45         ` Jens Rehsack
  0 siblings, 1 reply; 12+ messages in thread
From: Huang, Jie (Jackie) @ 2016-01-07  3:00 UTC (permalink / raw)
  To: openembedded-devel



> -----Original Message-----
> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-devel-
> bounces@lists.openembedded.org] On Behalf Of Jens Rehsack
> Sent: Wednesday, January 06, 2016 9:57 PM
> To: openembedded-devel@lists.openembedded.org
> Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
> 
> 
> > Am 06.01.2016 um 08:03 schrieb Huang, Jie (Jackie) <Jackie.Huang@windriver.com>:
> >
> >
> >
> >> -----Original Message-----
> >> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-devel-
> >> bounces@lists.openembedded.org] On Behalf Of Jens Rehsack
> >> Sent: Tuesday, January 05, 2016 3:21 AM
> >> To: openembedded-devel@lists.openembedded.org
> >> Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
> >>
> >> It's insane re-introducing a virtual/javac-native without understanding
> >> the issues coming with that.
> >
> > Please carefully review the patches before saying insane, I don't think it was
> > correct to remove virtual/javac-native since there are several providers.
> 
> What does virtual/javac-native mean? Correctly, there can be several providers.
> 
> How many of them can you have in one sysroot/build? One.
> 
> So - when in an openjdk-7 or openjdk-8 bootstrap 4 recipes PROVIDE virtual/javac-native,
> what happens?

So seem like you don't really understand how it should be used.

Yes, only one we can have when there are multiple providers, that's why we should
use PREFERRED_PROVIDER to determines which one it is, and use the virtual/foo
instead of specific provider's name in DEPENDS/RDEPENDS of the recipe that requires it, 
so we can ensure only one will be built and avoid conflicts.

FYI:
http://www.yoctoproject.org/docs/2.0/bitbake-user-manual/bitbake-user-manual.html#bb-bitbake-preferences
http://www.yoctoproject.org/docs/2.0/ref-manual/ref-manual.html#var-PREFERRED_PROVIDER

> 
> It is insane to have multiple providers for the same virtual/foo when at least a bunch

Virtual/foo and PREFERRED_PROVIDER is one of the mechanisms to handle multiple providers,
(another one is update-alternatives which is not supported by -native recipe), and work fine
in many projects, why is it insane here?

I tested my patches to build openjdk7, openjdk8 and most recipes in meta-java with and without sstate
on qemux86-64, qemuarm, qemuppc and some of our BSPs and they all built fine (previous method
 fails to build openjdk7 sometime and always fail when build with sstate)

Thanks,
Jackie

> of them are required to finish a particular build.
> 
> > Thanks,
> > Jackie
> 
> You're welcome,
> Jens
> 
> >>
> >>> Am 23.12.2015 um 11:03 schrieb jackie.huang@windriver.com:
> >>>
> >>> From: Jackie Huang <jackie.huang@windriver.com>
> >>>
> >>> I asked about this issue two days ago but no response, please carefully
> >>> review and correct me if anyone have better understanding.
> >>
> >> Please excuse when people enjoy their holidays around Christmas.
> >>
> >>> My tests includes building openjdk7 and openjdk8 on qemux86-64
> >>> with/without sstate cache.
> >>>
> >>> --
> >>> The following changes since commit 35739fca028996c594b1efa2225a77c8d6038193:
> >>>
> >>> openjdk-8: Use zero mode on arm (2015-12-17 10:39:21 -0200)
> >>>
> >>> are available in the git repository at:
> >>>
> >>> git://git.pokylinux.org/poky-contrib.git jhuang0/d_jdk8-fix_151223_0
> >>> http://git.pokylinux.org/cgit.cgi//log/?h=jhuang0/d_jdk8-fix_151223_0
> >>>
> >>> Jackie Huang (2):
> >>> Revert "meta-java: rely on well known bootstrap-path"
> >>> openjdk-8-native: fix improper do_install and PROVIDES
> >>>
> >>> README                                             | 12 ++++++++--
> >>> classes/java-bootstrap-components.bbclass          |  7 ------
> >>> classes/java-library.bbclass                       |  3 +--
> >>> recipes-core/ant/ant-native_1.8.1.bb               |  2 +-
> >>> recipes-core/antlr/antlr_2.7.7.bb                  |  2 +-
> >>> recipes-core/cacao/cacao_1.6.1.bb                  |  6 ++---
> >>> recipes-core/classpath/classpath.inc               |  4 ++--
> >>> recipes-core/classpathx/gnujaf_1.1.1.bb            |  2 +-
> >>> recipes-core/classpathx/gnumail_1.1.2.bb           |  2 +-
> >>> recipes-core/classpathx/inetlib_1.1.1.bb           |  2 +-
> >>> recipes-core/cup/cup_0.10k.bb                      |  2 +-
> >>> recipes-core/ecj/ecj-bootstrap-native.bb           |  4 +++-
> >>> recipes-core/ecj/libecj-bootstrap.inc              |  2 +-
> >>> recipes-core/icedtea/icedtea7-native.inc           |  2 +-
> >>> recipes-core/jacl/jacl_1.4.1.bb                    |  2 +-
> >>> .../jakarta-commons/commons-logging_1.1.1.bb       |  2 --
> >>> recipes-core/jakarta-commons/commons-net_1.4.1.bb  |  2 --
> >>> .../jakarta-libs/avalon-framework-api_4.3.bb       |  2 +-
> >>> recipes-core/jakarta-libs/bsf_2.4.0.bb             |  2 +-
> >>> recipes-core/jakarta-libs/log4j1.2_1.2.17.bb       |  2 +-
> >>> recipes-core/jakarta-libs/logkit_1.2.2.bb          |  2 +-
> >>> recipes-core/jakarta-libs/oro_2.0.8.bb             |  2 +-
> >>> recipes-core/jakarta-libs/poi_3.0.bb               |  2 +-
> >>> recipes-core/jakarta-libs/regexp_1.5.bb            |  2 +-
> >>> recipes-core/jamvm/jamvm.inc                       |  4 ++--
> >>> recipes-core/jcraft/jsch_0.1.40.bb                 |  2 +-
> >>> recipes-core/jcraft/jzlib_1.0.7.bb                 |  2 +-
> >>> recipes-core/jdepend/jdepend_2.9.1.bb              |  2 +-
> >>> recipes-core/jlex/jlex_1.2.6.bb                    |  2 +-
> >>> recipes-core/junit/junit4_4.3.1.bb                 |  4 +++-
> >>> recipes-core/junit/junit_3.8.2.bb                  |  2 +-
> >>> recipes-core/openjdk/openjdk-8-native.inc          | 13 +++++------
> >>> recipes-core/openjdk/openjdk-8-native_72b05.bb     | 26 ----------------------
> >>> recipes-core/rhino/rhino_1.7r4.bb                  |  2 +-
> >>> recipes-core/servlet-api/servlet2.3_4.1.37.bb      |  4 +++-
> >>> recipes-core/servlet-api/servlet2.4_5.5.26.bb      |  2 ++
> >>> recipes-core/xalan-j/xalan-j_2.7.1.bb              |  2 +-
> >>> recipes-core/xerces-j/xerces-j_2.11.0.bb           |  6 ++---
> >>> recipes-core/xml-commons/jaxp1.3_1.4.01.bb         |  4 +++-
> >>> .../xml-commons/xml-commons-resolver1.1_1.2.bb     |  6 ++---
> >>> recipes-core/xml-commons/xpp2_2.1.10.bb            |  2 ++
> >>> recipes-core/xml-commons/xpp3_1.1.3.4.O.bb         |  2 ++
> >>> 42 files changed, 69 insertions(+), 90 deletions(-)
> >>> delete mode 100644 classes/java-bootstrap-components.bbclass
> >>>
> >>> --
> >>> 1.9.1
> >>>
> >>> --
> >>> _______________________________________________
> >>> Openembedded-devel mailing list
> >>> Openembedded-devel@lists.openembedded.org
> >>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> >>
> >> --
> >> Jens Rehsack - rehsack@gmail.com
> >
> > --
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> 
> --
> Jens Rehsack - rehsack@gmail.com



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

* Re: [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
  2016-01-07  3:00       ` Huang, Jie (Jackie)
@ 2016-01-08  9:45         ` Jens Rehsack
  2016-01-09 14:22           ` Huang, Jie (Jackie)
  0 siblings, 1 reply; 12+ messages in thread
From: Jens Rehsack @ 2016-01-08  9:45 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 3520 bytes --]


> Am 07.01.2016 um 04:00 schrieb Huang, Jie (Jackie) <Jackie.Huang@windriver.com>:
> 
> 
> 
>> -----Original Message-----
>> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-devel-
>> bounces@lists.openembedded.org] On Behalf Of Jens Rehsack
>> Sent: Wednesday, January 06, 2016 9:57 PM
>> To: openembedded-devel@lists.openembedded.org
>> Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
>> 
>> 
>>> Am 06.01.2016 um 08:03 schrieb Huang, Jie (Jackie) <Jackie.Huang@windriver.com>:
>>> 
>>> 
>>> 
>>>> -----Original Message-----
>>>> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-devel-
>>>> bounces@lists.openembedded.org] On Behalf Of Jens Rehsack
>>>> Sent: Tuesday, January 05, 2016 3:21 AM
>>>> To: openembedded-devel@lists.openembedded.org
>>>> Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
>>>> 
>>>> It's insane re-introducing a virtual/javac-native without understanding
>>>> the issues coming with that.
>>> 
>>> Please carefully review the patches before saying insane, I don't think it was
>>> correct to remove virtual/javac-native since there are several providers.
>> 
>> What does virtual/javac-native mean? Correctly, there can be several providers.
>> 
>> How many of them can you have in one sysroot/build? One.
>> 
>> So - when in an openjdk-7 or openjdk-8 bootstrap 4 recipes PROVIDE virtual/javac-native,
>> what happens?
> 
> So seem like you don't really understand how it should be used.
> 
> Yes, only one we can have when there are multiple providers, that's why we should
> use PREFERRED_PROVIDER to determines which one it is, and use the virtual/foo
> instead of specific provider's name in DEPENDS/RDEPENDS of the recipe that requires it,
> so we can ensure only one will be built and avoid conflicts.

And there starts your misunderstanding:

You can't even install multiple providers, even when picking one.
But doesn't icedtea7-native provide virtual/java-native and virtual/javac-native?
Doesn't openjdk-8-native provide virtual/java-native and virtual/javac-native?

When virtual/java-native is only for bootstrapping, that it's misused and
must be removed. Providers are for abstraction, not for confusing.

> FYI:
> http://www.yoctoproject.org/docs/2.0/bitbake-user-manual/bitbake-user-manual.html#bb-bitbake-preferences
> http://www.yoctoproject.org/docs/2.0/ref-manual/ref-manual.html#var-PREFERRED_PROVIDER
> 
>> 
>> It is insane to have multiple providers for the same virtual/foo when at least a bunch
> 
> Virtual/foo and PREFERRED_PROVIDER is one of the mechanisms to handle multiple providers,
> (another one is update-alternatives which is not supported by -native recipe), and work fine
> in many projects, why is it insane here?

Insane is, that you cannot choose - you have to install all until you reach the required
Java language level.

> I tested my patches to build openjdk7, openjdk8 and most recipes in meta-java with and without sstate
> on qemux86-64, qemuarm, qemuppc and some of our BSPs and they all built fine (previous method
> fails to build openjdk7 sometime and always fail when build with sstate)

That has nothing to do with the providers, it has to do with the wrong install of same
binary to a place where another one has been installed. This has to do with alternatives,
not providers.

Cheers
--
Jens Rehsack - rehsack@gmail.com


[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 859 bytes --]

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

* Re: [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
  2016-01-08  9:45         ` Jens Rehsack
@ 2016-01-09 14:22           ` Huang, Jie (Jackie)
  2016-01-11 10:01             ` Jens Rehsack
  0 siblings, 1 reply; 12+ messages in thread
From: Huang, Jie (Jackie) @ 2016-01-09 14:22 UTC (permalink / raw)
  To: openembedded-devel



> -----Original Message-----
> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-devel-
> bounces@lists.openembedded.org] On Behalf Of Jens Rehsack
> Sent: Friday, January 08, 2016 5:46 PM
> To: openembedded-devel@lists.openembedded.org
> Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
> 
> 
> > Am 07.01.2016 um 04:00 schrieb Huang, Jie (Jackie) <Jackie.Huang@windriver.com>:
> >
> >
> >
> >> -----Original Message-----
> >> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-devel-
> >> bounces@lists.openembedded.org] On Behalf Of Jens Rehsack
> >> Sent: Wednesday, January 06, 2016 9:57 PM
> >> To: openembedded-devel@lists.openembedded.org
> >> Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
> >>
> >>
> >>> Am 06.01.2016 um 08:03 schrieb Huang, Jie (Jackie) <Jackie.Huang@windriver.com>:
> >>>
> >>>
> >>>
> >>>> -----Original Message-----
> >>>> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-
> devel-
> >>>> bounces@lists.openembedded.org] On Behalf Of Jens Rehsack
> >>>> Sent: Tuesday, January 05, 2016 3:21 AM
> >>>> To: openembedded-devel@lists.openembedded.org
> >>>> Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
> >>>>
> >>>> It's insane re-introducing a virtual/javac-native without understanding
> >>>> the issues coming with that.
> >>>
> >>> Please carefully review the patches before saying insane, I don't think it was
> >>> correct to remove virtual/javac-native since there are several providers.
> >>
> >> What does virtual/javac-native mean? Correctly, there can be several providers.
> >>
> >> How many of them can you have in one sysroot/build? One.
> >>
> >> So - when in an openjdk-7 or openjdk-8 bootstrap 4 recipes PROVIDE virtual/javac-native,
> >> what happens?
> >
> > So seem like you don't really understand how it should be used.
> >
> > Yes, only one we can have when there are multiple providers, that's why we should
> > use PREFERRED_PROVIDER to determines which one it is, and use the virtual/foo
> > instead of specific provider's name in DEPENDS/RDEPENDS of the recipe that requires it,
> > so we can ensure only one will be built and avoid conflicts.
> 
> And there starts your misunderstanding:

Ok, if so, sorry that my English is not good enough to understand your words correctly.

> 
> You can't even install multiple providers, even when picking one.

Picking one is to avoid installing multiple providers, why do we need to install
multiple providers? Seems likely I'm starting to misunderstand again?

> But doesn't icedtea7-native provide virtual/java-native and virtual/javac-native?
> Doesn't openjdk-8-native provide virtual/java-native and virtual/javac-native?
> 
> When virtual/java-native is only for bootstrapping, that it's misused and
> must be removed. Providers are for abstraction, not for confusing.

I think you mean that there are two java: one for bootstrapping and another is normal java,
So maybe you need something like virtual/java-bootstrap-native and virtual/java-native to
avoid confusing.
For now, the followings can provide java:
cacao-native, jamvm-native, icedtea7-native, openjdk8-native

which ones are for bootstrapping only?

> 
> > FYI:
> > http://www.yoctoproject.org/docs/2.0/bitbake-user-manual/bitbake-user-manual.html#bb-
> bitbake-preferences
> > http://www.yoctoproject.org/docs/2.0/ref-manual/ref-manual.html#var-PREFERRED_PROVIDER
> >
> >>
> >> It is insane to have multiple providers for the same virtual/foo when at least a bunch
> >
> > Virtual/foo and PREFERRED_PROVIDER is one of the mechanisms to handle multiple providers,
> > (another one is update-alternatives which is not supported by -native recipe), and work fine
> > in many projects, why is it insane here?
> 
> Insane is, that you cannot choose - you have to install all until you reach the required
> Java language level.

Again, I may misunderstand, I don't know why I have to install all (providers?)?

> 
> > I tested my patches to build openjdk7, openjdk8 and most recipes in meta-java with and without
> sstate
> > on qemux86-64, qemuarm, qemuppc and some of our BSPs and they all built fine (previous method
> > fails to build openjdk7 sometime and always fail when build with sstate)
> 
> That has nothing to do with the providers, it has to do with the wrong install of same
> binary to a place where another one has been installed. This has to do with alternatives,

I agree that the alternatives may be a better solution than providers, but the problem is the
update-alternative.bbclass doesn't support -native packages, please send patch to fix it if you
think it's needed.

Anyway, these patches have been merged and it works fine for now in our project, no insane error
happens. Feel free to send your patch to fix the insane part you think, but please remember to do
enough tests to ensure it doesn't break others. Thanks!

Thanks,
Jackie

> not providers.
> 
> Cheers
> --
> Jens Rehsack - rehsack@gmail.com



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

* Re: [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
  2016-01-09 14:22           ` Huang, Jie (Jackie)
@ 2016-01-11 10:01             ` Jens Rehsack
  2016-01-12  2:50               ` Huang, Jie (Jackie)
  0 siblings, 1 reply; 12+ messages in thread
From: Jens Rehsack @ 2016-01-11 10:01 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 6856 bytes --]


> Am 09.01.2016 um 15:22 schrieb Huang, Jie (Jackie) <Jackie.Huang@windriver.com>:
> 
> 
> 
>> -----Original Message-----
>> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-devel-
>> bounces@lists.openembedded.org] On Behalf Of Jens Rehsack
>> Sent: Friday, January 08, 2016 5:46 PM
>> To: openembedded-devel@lists.openembedded.org
>> Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
>> 
>> 
>>> Am 07.01.2016 um 04:00 schrieb Huang, Jie (Jackie) <Jackie.Huang@windriver.com>:
>>> 
>>> 
>>> 
>>>> -----Original Message-----
>>>> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-devel-
>>>> bounces@lists.openembedded.org] On Behalf Of Jens Rehsack
>>>> Sent: Wednesday, January 06, 2016 9:57 PM
>>>> To: openembedded-devel@lists.openembedded.org
>>>> Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
>>>> 
>>>> 
>>>>> Am 06.01.2016 um 08:03 schrieb Huang, Jie (Jackie) <Jackie.Huang@windriver.com>:
>>>>> 
>>>>> 
>>>>> 
>>>>>> -----Original Message-----
>>>>>> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-
>> devel-
>>>>>> bounces@lists.openembedded.org] On Behalf Of Jens Rehsack
>>>>>> Sent: Tuesday, January 05, 2016 3:21 AM
>>>>>> To: openembedded-devel@lists.openembedded.org
>>>>>> Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
>>>>>> 
>>>>>> It's insane re-introducing a virtual/javac-native without understanding
>>>>>> the issues coming with that.
>>>>> 
>>>>> Please carefully review the patches before saying insane, I don't think it was
>>>>> correct to remove virtual/javac-native since there are several providers.
>>>> 
>>>> What does virtual/javac-native mean? Correctly, there can be several providers.
>>>> 
>>>> How many of them can you have in one sysroot/build? One.
>>>> 
>>>> So - when in an openjdk-7 or openjdk-8 bootstrap 4 recipes PROVIDE virtual/javac-native,
>>>> what happens?
>>> 
>>> So seem like you don't really understand how it should be used.
>>> 
>>> Yes, only one we can have when there are multiple providers, that's why we should
>>> use PREFERRED_PROVIDER to determines which one it is, and use the virtual/foo
>>> instead of specific provider's name in DEPENDS/RDEPENDS of the recipe that requires it,
>>> so we can ensure only one will be built and avoid conflicts.
>> 
>> And there starts your misunderstanding:
> 
> Ok, if so, sorry that my English is not good enough to understand your words correctly.

Take a number ;)

>> You can't even install multiple providers, even when picking one.
> 
> Picking one is to avoid installing multiple providers, why do we need to install
> multiple providers? Seems likely I'm starting to misunderstand again?

This isn't optional!

openjdk-7-native (provided by icedtea7) requires Java5 to build (provided by ecj-initial, iirc).
openjdk-7 requires openjdk-7-native - so at least here you have 2 providers for java-native in your sysroot/x86_64 ...

openjdk-8-native requires Java7 or Java8 to build, which is provided by icedtea7 or a previous build of openjdk-8-native (for reliability I let openjdk-8-native depend on icedtea7).
openjdk-8 requires Java7 or Java8 to build (icedtea7-native or openjdk-8-native), for reliability I let openjdk-8 depend on openjdk-8-native.

Bootstrapping Java7 means, you have 3 javac and 3 javavm's in you native sysroot (jikes, ecj-initial, icedtea7), bootstrapping openjdk-8 adds openjdk-8-native.

>> But doesn't icedtea7-native provide virtual/java-native and virtual/javac-native?
>> Doesn't openjdk-8-native provide virtual/java-native and virtual/javac-native?
>> 
>> When virtual/java-native is only for bootstrapping, that it's misused and
>> must be removed. Providers are for abstraction, not for confusing.
> 
> I think you mean that there are two java: one for bootstrapping and another is normal java,
> So maybe you need something like virtual/java-bootstrap-native and virtual/java-native to
> avoid confusing.
> For now, the followings can provide java:
> cacao-native, jamvm-native, icedtea7-native, openjdk8-native
> 
> which ones are for bootstrapping only?

Depends what you want to bootstrap ;)
That's why the virtual/java*-native is such annoying.

>> 
>>> FYI:
>>> http://www.yoctoproject.org/docs/2.0/bitbake-user-manual/bitbake-user-manual.html#bb-
>> bitbake-preferences
>>> http://www.yoctoproject.org/docs/2.0/ref-manual/ref-manual.html#var-PREFERRED_PROVIDER
>>> 
>>>> 
>>>> It is insane to have multiple providers for the same virtual/foo when at least a bunch
>>> 
>>> Virtual/foo and PREFERRED_PROVIDER is one of the mechanisms to handle multiple providers,
>>> (another one is update-alternatives which is not supported by -native recipe), and work fine
>>> in many projects, why is it insane here?
>> 
>> Insane is, that you cannot choose - you have to install all until you reach the required
>> Java language level.
> 
> Again, I may misunderstand, I don't know why I have to install all (providers?)?
> 
>> 
>>> I tested my patches to build openjdk7, openjdk8 and most recipes in meta-java with and without
>> sstate
>>> on qemux86-64, qemuarm, qemuppc and some of our BSPs and they all built fine (previous method
>>> fails to build openjdk7 sometime and always fail when build with sstate)
>> 
>> That has nothing to do with the providers, it has to do with the wrong install of same
>> binary to a place where another one has been installed. This has to do with alternatives,
> 
> I agree that the alternatives may be a better solution than providers, but the problem is the
> update-alternative.bbclass doesn't support -native packages, please send patch to fix it if you
> think it's needed.

And provides is the wrong logic. That's why 04d5d0bf4 eliminates that to reach a reliable
bootstrap path.

> Anyway, these patches have been merged and it works fine for now in our project, no insane error
> happens. Feel free to send your patch to fix the insane part you think,

But you patch and the way you pushed it makes it impossible for me to share work based on that,
since I don't go and revert your reverts to wait for the next moment you don't get it and override
it again. As long as you stick on your idea, feel free to cherry-pick recipes I build on meta-java
or cross-compiled java from my github repositories.

> but please remember to do
> enough tests to ensure it doesn't break others. Thanks!

I tested as good as I could in my environment and asked for more than 4 weeks people on ML to test.
When you work on master, expect some breaking. No hurry insane revert needed.

Best regards
--
Jens Rehsack - rehsack@gmail.com


[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 859 bytes --]

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

* Re: [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
  2016-01-11 10:01             ` Jens Rehsack
@ 2016-01-12  2:50               ` Huang, Jie (Jackie)
  2016-01-15  9:53                 ` Jens Rehsack
  0 siblings, 1 reply; 12+ messages in thread
From: Huang, Jie (Jackie) @ 2016-01-12  2:50 UTC (permalink / raw)
  To: openembedded-devel



> -----Original Message-----
> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-devel-
> bounces@lists.openembedded.org] On Behalf Of Jens Rehsack
> Sent: Monday, January 11, 2016 6:02 PM
> To: openembedded-devel@lists.openembedded.org
> Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
> 
> 
> > Am 09.01.2016 um 15:22 schrieb Huang, Jie (Jackie) <Jackie.Huang@windriver.com>:
> >
> >
> >
> >> -----Original Message-----
> >> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-devel-
> >> bounces@lists.openembedded.org] On Behalf Of Jens Rehsack
> >> Sent: Friday, January 08, 2016 5:46 PM
> >> To: openembedded-devel@lists.openembedded.org
> >> Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
> >>
> >>
> >>> Am 07.01.2016 um 04:00 schrieb Huang, Jie (Jackie) <Jackie.Huang@windriver.com>:
> >>>
> >>>
> >>>
> >>>> -----Original Message-----
> >>>> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-
> devel-
> >>>> bounces@lists.openembedded.org] On Behalf Of Jens Rehsack
> >>>> Sent: Wednesday, January 06, 2016 9:57 PM
> >>>> To: openembedded-devel@lists.openembedded.org
> >>>> Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
> >>>>
> >>>>
> >>>>> Am 06.01.2016 um 08:03 schrieb Huang, Jie (Jackie) <Jackie.Huang@windriver.com>:
> >>>>>
> >>>>>
> >>>>>
> >>>>>> -----Original Message-----
> >>>>>> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-
> >> devel-
> >>>>>> bounces@lists.openembedded.org] On Behalf Of Jens Rehsack
> >>>>>> Sent: Tuesday, January 05, 2016 3:21 AM
> >>>>>> To: openembedded-devel@lists.openembedded.org
> >>>>>> Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
> >>>>>>
> >>>>>> It's insane re-introducing a virtual/javac-native without understanding
> >>>>>> the issues coming with that.
> >>>>>
> >>>>> Please carefully review the patches before saying insane, I don't think it was
> >>>>> correct to remove virtual/javac-native since there are several providers.
> >>>>
> >>>> What does virtual/javac-native mean? Correctly, there can be several providers.
> >>>>
> >>>> How many of them can you have in one sysroot/build? One.
> >>>>
> >>>> So - when in an openjdk-7 or openjdk-8 bootstrap 4 recipes PROVIDE virtual/javac-native,
> >>>> what happens?
> >>>
> >>> So seem like you don't really understand how it should be used.
> >>>
> >>> Yes, only one we can have when there are multiple providers, that's why we should
> >>> use PREFERRED_PROVIDER to determines which one it is, and use the virtual/foo
> >>> instead of specific provider's name in DEPENDS/RDEPENDS of the recipe that requires it,
> >>> so we can ensure only one will be built and avoid conflicts.
> >>
> >> And there starts your misunderstanding:
> >
> > Ok, if so, sorry that my English is not good enough to understand your words correctly.
> 
> Take a number ;)
> 
> >> You can't even install multiple providers, even when picking one.
> >
> > Picking one is to avoid installing multiple providers, why do we need to install
> > multiple providers? Seems likely I'm starting to misunderstand again?
> 
> This isn't optional!

Ok, I see why  we don't have the same understanding.

We have different definition of providers:
You mean every packages that have java/javac binary installed as providers regardless of the different installed locations.
Mine is based on the definition of PROVIDES, only those intall java/javac in the same location and explicitly define
in PROVIDES variable:

For example:
Cacao-native and jamvm-native both install java in /usr/bin and define virtual/java-native in PROVIDES,
So they are providers of virtual/java-native;
icedtea7-native installs java in /usr/lib/jvm/icedtea7-native/bin/, it's not provider of virtual/java-native here.


> 
> openjdk-7-native (provided by icedtea7) requires Java5 to build (provided by ecj-initial, iirc).
> openjdk-7 requires openjdk-7-native - so at least here you have 2 providers for java-native in your
> sysroot/x86_64 ...
> 
> openjdk-8-native requires Java7 or Java8 to build, which is provided by icedtea7 or a previous build of
> openjdk-8-native (for reliability I let openjdk-8-native depend on icedtea7).
> openjdk-8 requires Java7 or Java8 to build (icedtea7-native or openjdk-8-native), for reliability I let
> openjdk-8 depend on openjdk-8-native.

I surely knew this, that's why I removed the symlink and PROVIDES, here is the comments in my fix:
    - Do not let openjdk-8-native provides jar, java and javac,
      just like what we do in icedtea7-native, which can provides
      but not to avoid circular dependencies and conflicts.

> 
> Bootstrapping Java7 means, you have 3 javac and 3 javavm's in you native sysroot (jikes, ecj-initial,
> icedtea7), bootstrapping openjdk-8 adds openjdk-8-native.
> 
> >> But doesn't icedtea7-native provide virtual/java-native and virtual/javac-native?
> >> Doesn't openjdk-8-native provide virtual/java-native and virtual/javac-native?
> >>
> >> When virtual/java-native is only for bootstrapping, that it's misused and
> >> must be removed. Providers are for abstraction, not for confusing.
> >
> > I think you mean that there are two java: one for bootstrapping and another is normal java,
> > So maybe you need something like virtual/java-bootstrap-native and virtual/java-native to
> > avoid confusing.
> > For now, the followings can provide java:
> > cacao-native, jamvm-native, icedtea7-native, openjdk8-native
> >
> > which ones are for bootstrapping only?
> 
> Depends what you want to bootstrap ;)
> That's why the virtual/java*-native is such annoying.

I don't think it's annoying. It depends how you define it, just like I said, you can clearly define
something like virtual/java-bootstrap-native and others to avoid confusing.

> 
> >>
> >>> FYI:
> >>> http://www.yoctoproject.org/docs/2.0/bitbake-user-manual/bitbake-user-manual.html#bb-
> >> bitbake-preferences
> >>> http://www.yoctoproject.org/docs/2.0/ref-manual/ref-manual.html#var-PREFERRED_PROVIDER
> >>>
> >>>>
> >>>> It is insane to have multiple providers for the same virtual/foo when at least a bunch
> >>>
> >>> Virtual/foo and PREFERRED_PROVIDER is one of the mechanisms to handle multiple providers,
> >>> (another one is update-alternatives which is not supported by -native recipe), and work fine
> >>> in many projects, why is it insane here?
> >>
> >> Insane is, that you cannot choose - you have to install all until you reach the required
> >> Java language level.
> >
> > Again, I may misunderstand, I don't know why I have to install all (providers?)?
> >
> >>
> >>> I tested my patches to build openjdk7, openjdk8 and most recipes in meta-java with and without
> >> sstate
> >>> on qemux86-64, qemuarm, qemuppc and some of our BSPs and they all built fine (previous
> method
> >>> fails to build openjdk7 sometime and always fail when build with sstate)
> >>
> >> That has nothing to do with the providers, it has to do with the wrong install of same
> >> binary to a place where another one has been installed. This has to do with alternatives,
> >
> > I agree that the alternatives may be a better solution than providers, but the problem is the
> > update-alternative.bbclass doesn't support -native packages, please send patch to fix it if you
> > think it's needed.
> 
> And provides is the wrong logic.

I don't think it's wrong, you just need a clearer definition.

> That's why 04d5d0bf4 eliminates that to reach a reliable
> bootstrap path.

But this introduced conflicts(along with the incorrect do_install of openjdk8-native) and it always
fail when build with sstate.

Thanks,
Jackie

> 
> > Anyway, these patches have been merged and it works fine for now in our project, no insane error
> > happens. Feel free to send your patch to fix the insane part you think,
> 
> But you patch and the way you pushed it makes it impossible for me to share work based on that,
> since I don't go and revert your reverts to wait for the next moment you don't get it and override
> it again. As long as you stick on your idea, feel free to cherry-pick recipes I build on meta-java
> or cross-compiled java from my github repositories.
> 
> > but please remember to do
> > enough tests to ensure it doesn't break others. Thanks!
> 
> I tested as good as I could in my environment and asked for more than 4 weeks people on ML to test.
> When you work on master, expect some breaking. No hurry insane revert needed.
> 
> Best regards
> --
> Jens Rehsack - rehsack@gmail.com



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

* Re: [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
  2016-01-12  2:50               ` Huang, Jie (Jackie)
@ 2016-01-15  9:53                 ` Jens Rehsack
  0 siblings, 0 replies; 12+ messages in thread
From: Jens Rehsack @ 2016-01-15  9:53 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 10484 bytes --]


> Am 12.01.2016 um 03:50 schrieb Huang, Jie (Jackie) <Jackie.Huang@windriver.com>:
> 
> 
> 
>> -----Original Message-----
>> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-devel-
>> bounces@lists.openembedded.org] On Behalf Of Jens Rehsack
>> Sent: Monday, January 11, 2016 6:02 PM
>> To: openembedded-devel@lists.openembedded.org
>> Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
>> 
>> 
>>> Am 09.01.2016 um 15:22 schrieb Huang, Jie (Jackie) <Jackie.Huang@windriver.com>:
>>> 
>>> 
>>> 
>>>> -----Original Message-----
>>>> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-devel-
>>>> bounces@lists.openembedded.org] On Behalf Of Jens Rehsack
>>>> Sent: Friday, January 08, 2016 5:46 PM
>>>> To: openembedded-devel@lists.openembedded.org
>>>> Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
>>>> 
>>>> 
>>>>> Am 07.01.2016 um 04:00 schrieb Huang, Jie (Jackie) <Jackie.Huang@windriver.com>:
>>>>> 
>>>>> 
>>>>> 
>>>>>> -----Original Message-----
>>>>>> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-
>> devel-
>>>>>> bounces@lists.openembedded.org] On Behalf Of Jens Rehsack
>>>>>> Sent: Wednesday, January 06, 2016 9:57 PM
>>>>>> To: openembedded-devel@lists.openembedded.org
>>>>>> Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
>>>>>> 
>>>>>> 
>>>>>>> Am 06.01.2016 um 08:03 schrieb Huang, Jie (Jackie) <Jackie.Huang@windriver.com>:
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>>> -----Original Message-----
>>>>>>>> From: openembedded-devel-bounces@lists.openembedded.org [mailto:openembedded-
>>>> devel-
>>>>>>>> bounces@lists.openembedded.org] On Behalf Of Jens Rehsack
>>>>>>>> Sent: Tuesday, January 05, 2016 3:21 AM
>>>>>>>> To: openembedded-devel@lists.openembedded.org
>>>>>>>> Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES
>>>>>>>> 
>>>>>>>> It's insane re-introducing a virtual/javac-native without understanding
>>>>>>>> the issues coming with that.
>>>>>>> 
>>>>>>> Please carefully review the patches before saying insane, I don't think it was
>>>>>>> correct to remove virtual/javac-native since there are several providers.
>>>>>> 
>>>>>> What does virtual/javac-native mean? Correctly, there can be several providers.
>>>>>> 
>>>>>> How many of them can you have in one sysroot/build? One.
>>>>>> 
>>>>>> So - when in an openjdk-7 or openjdk-8 bootstrap 4 recipes PROVIDE virtual/javac-native,
>>>>>> what happens?
>>>>> 
>>>>> So seem like you don't really understand how it should be used.
>>>>> 
>>>>> Yes, only one we can have when there are multiple providers, that's why we should
>>>>> use PREFERRED_PROVIDER to determines which one it is, and use the virtual/foo
>>>>> instead of specific provider's name in DEPENDS/RDEPENDS of the recipe that requires it,
>>>>> so we can ensure only one will be built and avoid conflicts.
>>>> 
>>>> And there starts your misunderstanding:
>>> 
>>> Ok, if so, sorry that my English is not good enough to understand your words correctly.
>> 
>> Take a number ;)
>> 
>>>> You can't even install multiple providers, even when picking one.
>>> 
>>> Picking one is to avoid installing multiple providers, why do we need to install
>>> multiple providers? Seems likely I'm starting to misunderstand again?
>> 
>> This isn't optional!
> 
> Ok, I see why  we don't have the same understanding.
> 
> We have different definition of providers:
> You mean every packages that have java/javac binary installed as providers regardless of the different installed locations.
> Mine is based on the definition of PROVIDES, only those intall java/javac in the same location and explicitly define
> in PROVIDES variable:
> 
> For example:
> Cacao-native and jamvm-native both install java in /usr/bin and define virtual/java-native in PROVIDES,
> So they are providers of virtual/java-native;
> icedtea7-native installs java in /usr/lib/jvm/icedtea7-native/bin/, it's not provider of virtual/java-native here.

But what are cacao-native and jamvm-native good for? Bootstrapping, nothing else.
And for bootstrapping it's restricted to cacao-native, isn't it?

However - maybe just the naming of the provide is unlucky chosen, if it will be possible to bootstrap using jamvm-native.
Someone (not me) has to verify that! But then, the provide must be named virtual/bootstrap-java-native.

Beside of the naming, when ALTERNATIVES doesn't work for native, I don't think any native java-vm/javac should install into usr/bin,
always in a sub-directory of /usr/lib/jvm/$(JAVA_HOME) of the specific java-vm/javac.

>> openjdk-7-native (provided by icedtea7) requires Java5 to build (provided by ecj-initial, iirc).
>> openjdk-7 requires openjdk-7-native - so at least here you have 2 providers for java-native in your
>> sysroot/x86_64 ...
>> 
>> openjdk-8-native requires Java7 or Java8 to build, which is provided by icedtea7 or a previous build of
>> openjdk-8-native (for reliability I let openjdk-8-native depend on icedtea7).
>> openjdk-8 requires Java7 or Java8 to build (icedtea7-native or openjdk-8-native), for reliability I let
>> openjdk-8 depend on openjdk-8-native.
> 
> I surely knew this, that's why I removed the symlink and PROVIDES, here is the comments in my fix:
>    - Do not let openjdk-8-native provides jar, java and javac,
>      just like what we do in icedtea7-native, which can provides
>      but not to avoid circular dependencies and conflicts.

I didn't call that commit insane ;)
Only this one we're talking about :D

>> Bootstrapping Java7 means, you have 3 javac and 3 javavm's in you native sysroot (jikes, ecj-initial,
>> icedtea7), bootstrapping openjdk-8 adds openjdk-8-native.
>> 
>>>> But doesn't icedtea7-native provide virtual/java-native and virtual/javac-native?
>>>> Doesn't openjdk-8-native provide virtual/java-native and virtual/javac-native?
>>>> 
>>>> When virtual/java-native is only for bootstrapping, that it's misused and
>>>> must be removed. Providers are for abstraction, not for confusing.
>>> 
>>> I think you mean that there are two java: one for bootstrapping and another is normal java,
>>> So maybe you need something like virtual/java-bootstrap-native and virtual/java-native to
>>> avoid confusing.
>>> For now, the followings can provide java:
>>> cacao-native, jamvm-native, icedtea7-native, openjdk8-native
>>> 
>>> which ones are for bootstrapping only?
>> 
>> Depends what you want to bootstrap ;)
>> That's why the virtual/java*-native is such annoying.
> 
> I don't think it's annoying. It depends how you define it, just like I said, you can clearly define
> something like virtual/java-bootstrap-native and others to avoid confusing.

If there're surely several working providers for virtual/java-bootstrap-native, what is
recipes-core/ecj/ecj-bootstrap-native.bb in that world?

>>>>> FYI:
>>>>> http://www.yoctoproject.org/docs/2.0/bitbake-user-manual/bitbake-user-manual.html#bb-
>>>> bitbake-preferences
>>>>> http://www.yoctoproject.org/docs/2.0/ref-manual/ref-manual.html#var-PREFERRED_PROVIDER
>>>>> 
>>>>>> 
>>>>>> It is insane to have multiple providers for the same virtual/foo when at least a bunch
>>>>> 
>>>>> Virtual/foo and PREFERRED_PROVIDER is one of the mechanisms to handle multiple providers,
>>>>> (another one is update-alternatives which is not supported by -native recipe), and work fine
>>>>> in many projects, why is it insane here?
>>>> 
>>>> Insane is, that you cannot choose - you have to install all until you reach the required
>>>> Java language level.
>>> 
>>> Again, I may misunderstand, I don't know why I have to install all (providers?)?
>>> 
>>>> 
>>>>> I tested my patches to build openjdk7, openjdk8 and most recipes in meta-java with and without
>>>> sstate
>>>>> on qemux86-64, qemuarm, qemuppc and some of our BSPs and they all built fine (previous
>> method
>>>>> fails to build openjdk7 sometime and always fail when build with sstate)
>>>> 
>>>> That has nothing to do with the providers, it has to do with the wrong install of same
>>>> binary to a place where another one has been installed. This has to do with alternatives,
>>> 
>>> I agree that the alternatives may be a better solution than providers, but the problem is the
>>> update-alternative.bbclass doesn't support -native packages, please send patch to fix it if you
>>> think it's needed.
>> 
>> And provides is the wrong logic.
> 
> I don't think it's wrong, you just need a clearer definition.
> 
>> That's why 04d5d0bf4 eliminates that to reach a reliable
>> bootstrap path.
> 
> But this introduced conflicts(along with the incorrect do_install of openjdk8-native) and it always
> fail when build with sstate.

It only fails because of the wrong install of openjdk8-native - I still don't see the conflict.
I grepped over all mails you sent in Dec and didn't find any hint what conflicts by hard-coding the
bootstrap phase.

Can you please be more details here, what beside of the incorrect do_install of openjdk8-native
conflicts?

> Thanks,
> Jackie
> 
>> 
>>> Anyway, these patches have been merged and it works fine for now in our project, no insane error
>>> happens. Feel free to send your patch to fix the insane part you think,
>> 
>> But you patch and the way you pushed it makes it impossible for me to share work based on that,
>> since I don't go and revert your reverts to wait for the next moment you don't get it and override
>> it again. As long as you stick on your idea, feel free to cherry-pick recipes I build on meta-java
>> or cross-compiled java from my github repositories.
>> 
>>> but please remember to do
>>> enough tests to ensure it doesn't break others. Thanks!
>> 
>> I tested as good as I could in my environment and asked for more than 4 weeks people on ML to test.
>> When you work on master, expect some breaking. No hurry insane revert needed.
>> 
>> Best regards
>> --
>> Jens Rehsack - rehsack@gmail.com
> 
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel

Cheers
--
Jens Rehsack - rehsack@gmail.com


[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 859 bytes --]

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

end of thread, other threads:[~2016-01-15  9:53 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-23 10:03 [meta-java][PATCH 0/2] openjdk-8-native: fix do_install and PROVIDES jackie.huang
2015-12-23 10:03 ` [meta-java][PATCH 1/2] Revert "meta-java: rely on well known bootstrap-path" jackie.huang
2015-12-23 10:03 ` [meta-java][PATCH 2/2] openjdk-8-native: fix improper do_install and PROVIDES jackie.huang
2016-01-04 19:20 ` [meta-java][PATCH 0/2] openjdk-8-native: fix " Jens Rehsack
2016-01-06  7:03   ` Huang, Jie (Jackie)
2016-01-06 13:56     ` Jens Rehsack
2016-01-07  3:00       ` Huang, Jie (Jackie)
2016-01-08  9:45         ` Jens Rehsack
2016-01-09 14:22           ` Huang, Jie (Jackie)
2016-01-11 10:01             ` Jens Rehsack
2016-01-12  2:50               ` Huang, Jie (Jackie)
2016-01-15  9:53                 ` Jens Rehsack

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.