openjdk-8-native: fix do_install and PROVIDES
cover openjdk-8-native: fix do_install and PROVIDES
From: Jackie Huang <[email protected]>
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
Signature · 1 line
1.9.1
PATCH 1/2 Revert "meta-java: rely on well known bootstrap-path"
From: Jackie Huang <[email protected]>
This reverts commit 04d5d0bf414c05ca59618d77f17ff9898aa1c566.
Detail reason is in the following commit.
--- 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
classes/java-bootstrap-components.bbclass deleted +0 -7
@@ -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 "
classes/java-library.bbclass +1 -2
@@ -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}"
recipes-core/ant/ant-native_1.8.1.bb +1 -1
@@ -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 \
recipes-core/antlr/antlr_2.7.7.bb +1 -1
@@ -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
recipes-core/cacao/cacao_1.6.1.bb +1 -3
@@ -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 \
recipes-core/classpath/classpath.inc +2 -2
@@ -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} = ""
recipes-core/classpathx/gnujaf_1.1.1.bb +1 -1
@@ -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}"
recipes-core/classpathx/gnumail_1.1.2.bb +1 -1
@@ -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}"
recipes-core/classpathx/inetlib_1.1.1.bb +1 -1
@@ -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"
recipes-core/cup/cup_0.10k.bb +1 -1
@@ -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 \
recipes-core/ecj/ecj-bootstrap-native.bb +1 -1
@@ -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"
recipes-core/ecj/libecj-bootstrap.inc +1 -1
@@ -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"
recipes-core/icedtea/icedtea7-native.inc +1 -1
@@ -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 \
recipes-core/jacl/jacl_1.4.1.bb +1 -1
@@ -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}"
recipes-core/jakarta-commons/commons-logging_1.1.1.bb +0 -2
@@ -1,7 +1,5 @@ require jakarta-commons.inc -inherit java-bootstrap-components - PR = "${INC_PR}.1" DESCRIPTION = "Java Internet protocol suite library"
recipes-core/jakarta-commons/commons-net_1.4.1.bb +0 -2
@@ -1,7 +1,5 @@ require jakarta-commons.inc -inherit java-bootstrap-components - PR = "${INC_PR}.1" DESCRIPTION = "Java Internet protocol suite library"
recipes-core/jakarta-libs/avalon-framework-api_4.3.bb +1 -1
@@ -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
recipes-core/jakarta-libs/bsf_2.4.0.bb +1 -1
@@ -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"
recipes-core/jakarta-libs/log4j1.2_1.2.17.bb +1 -1
@@ -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"
recipes-core/jakarta-libs/logkit_1.2.2.bb +1 -1
@@ -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"
recipes-core/jakarta-libs/oro_2.0.8.bb +1 -1
@@ -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}"
recipes-core/jakarta-libs/poi_3.0.bb +1 -1
@@ -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
recipes-core/jakarta-libs/regexp_1.5.bb +1 -1
@@ -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}"
recipes-core/jamvm/jamvm.inc +2 -2
@@ -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"
recipes-core/jcraft/jsch_0.1.40.bb +1 -1
@@ -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"
recipes-core/jcraft/jzlib_1.0.7.bb +1 -1
@@ -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
recipes-core/jdepend/jdepend_2.9.1.bb +1 -1
@@ -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
recipes-core/jlex/jlex_1.2.6.bb +1 -1
@@ -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 \
recipes-core/junit/junit4_4.3.1.bb +3 -1
@@ -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
recipes-core/junit/junit_3.8.2.bb +1 -1
@@ -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
recipes-core/rhino/rhino_1.7r4.bb +1 -1
@@ -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 \
recipes-core/servlet-api/servlet2.3_4.1.37.bb +3 -1
@@ -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"
recipes-core/servlet-api/servlet2.4_5.5.26.bb +2 -0
@@ -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"
recipes-core/xalan-j/xalan-j_2.7.1.bb +1 -1
@@ -21,7 +21,7 @@ SRC_URI = "\ S = "${WORKDIR}/${BPN}_2_7_1" -inherit java-library java-bootstrap-components +inherit java-library JPN = "libxalan2-java"
recipes-core/xerces-j/xerces-j_2.11.0.bb +3 -3
@@ -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 = ""
recipes-core/xml-commons/jaxp1.3_1.4.01.bb +3 -1
@@ -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"
recipes-core/xml-commons/xml-commons-resolver1.1_1.2.bb +3 -3
@@ -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 \
recipes-core/xml-commons/xpp2_2.1.10.bb +2 -0
@@ -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
recipes-core/xml-commons/xpp3_1.1.3.4.O.bb +2 -0
@@ -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() {
Signature · 1 line
1.9.1
PATCH 2/2 openjdk-8-native: fix improper do_install and PROVIDES
In reply to [email protected]From: Jackie Huang <[email protected]>
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.
--- 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(-)
README +10 -2
@@ -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.
recipes-core/cacao/cacao_1.6.1.bb +1 -1
@@ -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"
recipes-core/ecj/ecj-bootstrap-native.bb +2 -0
@@ -14,6 +14,8 @@ PR = "r1" DEPENDS = "libecj-bootstrap-native virtual/java-native" +PROVIDES = "virtual/javac-native" + SRC_URI = "file://ecj.in" S = "${WORKDIR}"
recipes-core/openjdk/openjdk-8-native.inc +5 -8
@@ -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 }
recipes-core/openjdk/openjdk-8-native_72b05.bb +0 -26
@@ -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"
Signature · 1 line
1.9.1
It's insane re-introducing a virtual/javac-native without understanding the issues coming with that.
Quoted 6 lines
Am 23.12.2015 um 11:03 schrieb [email protected]:
From: Jackie Huang <[email protected]>
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.
Quoted 62 lines
My tests includes building openjdk7 and openjdk8 on qemux86-64 with/without sstate cache.
--
The following changes since commit35739fca028996c594b1efa2225a77c8d6038193: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.gitjhuang0/d_jdk8-fix_151223_0
http://git.pokylinux.org/cgit.cgi//log/?h=jhuang0/d_jdk8-fix_151223_0Jackie Huang (2):
Revert "meta-java: rely on well known bootstrap-path"
openjdk-8-native: fix improperdo_installand PROVIDESREADME | 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
Quoted 8 lines
--
1.9.1--
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel
--
Jens Rehsack - [email protected]
Quoted 11 lines
-----Original Message-----
From: [email protected] [mailto:openembedded-devel- [email protected]] On Behalf Of Jens Rehsack
Sent: Tuesday, January 05, 2016 3:21 AM
To: [email protected]
Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fixdo_installand PROVIDESIt'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
Quoted 83 lines
Quoted 7 lines
Am 23.12.2015 um 11:03 schrieb [email protected]:
From: Jackie Huang <[email protected]>
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.
Quoted 62 lines
My tests includes building openjdk7 and openjdk8 on qemux86-64 with/without sstate cache.
--
The following changes since commit35739fca028996c594b1efa2225a77c8d6038193: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.gitjhuang0/d_jdk8-fix_151223_0
http://git.pokylinux.org/cgit.cgi//log/?h=jhuang0/d_jdk8-fix_151223_0Jackie Huang (2):
Revert "meta-java: rely on well known bootstrap-path"
openjdk-8-native: fix improperdo_installand PROVIDESREADME | 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
Quoted 8 lines
--
1.9.1--
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel--
Jens Rehsack - [email protected]
Quoted 12 lines
Am 06.01.2016 um 08:03 schrieb Huang, Jie (Jackie) <[email protected]>:
Quoted 7 lines
-----Original Message-----
From: [email protected] [mailto:openembedded-devel- [email protected]] On Behalf Of Jens Rehsack
Sent: Tuesday, January 05, 2016 3:21 AM
To: [email protected]
Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fixdo_installand PROVIDES
Quoted 5 lines
Quoted 2 lines
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.
Quoted 2 lines
Thanks,
Jackie
You're welcome,
Jens
Quoted 81 lines
Quoted 81 lines
Quoted 7 lines
Am 23.12.2015 um 11:03 schrieb [email protected]:
From: Jackie Huang <[email protected]>
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.
Quoted 70 lines
My tests includes building openjdk7 and openjdk8 on qemux86-64 with/without sstate cache.
--
The following changes since commit35739fca028996c594b1efa2225a77c8d6038193: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.gitjhuang0/d_jdk8-fix_151223_0
http://git.pokylinux.org/cgit.cgi//log/?h=jhuang0/d_jdk8-fix_151223_0Jackie Huang (2):
Revert "meta-java: rely on well known bootstrap-path"
openjdk-8-native: fix improperdo_installand PROVIDESREADME | 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
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel
Quoted 8 lines
Quoted 2 lines
--
Jens Rehsack - [email protected]--
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel
--
Jens Rehsack - [email protected]
Quoted 27 lines
-----Original Message-----
From: [email protected] [mailto:openembedded-devel- [email protected]] On Behalf Of Jens Rehsack
Sent: Wednesday, January 06, 2016 9:57 PM
To: [email protected]
Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fixdo_installand PROVIDESQuoted 11 lines
Am 06.01.2016 um 08:03 schrieb Huang, Jie (Jackie) <[email protected]>:
Quoted 7 lines
-----Original Message-----
From: [email protected] [mailto:openembedded-devel- [email protected]] On Behalf Of Jens Rehsack
Sent: Tuesday, January 05, 2016 3:21 AM
To: [email protected]
Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fixdo_installand PROVIDESQuoted 5 lines
Quoted 2 lines
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.
Quoted 6 lines
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
Quoted 2 lines
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
Quoted 100 lines
of them are required to finish a particular build.
Quoted 2 lines
Thanks,
JackieYou're welcome,
JensQuoted 81 lines
Quoted 81 lines
Quoted 7 lines
Am 23.12.2015 um 11:03 schrieb [email protected]:
From: Jackie Huang <[email protected]>
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.
Quoted 70 lines
My tests includes building openjdk7 and openjdk8 on qemux86-64 with/without sstate cache.
--
The following changes since commit35739fca028996c594b1efa2225a77c8d6038193: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.gitjhuang0/d_jdk8-fix_151223_0
http://git.pokylinux.org/cgit.cgi//log/?h=jhuang0/d_jdk8-fix_151223_0Jackie Huang (2):
Revert "meta-java: rely on well known bootstrap-path"
openjdk-8-native: fix improperdo_installand PROVIDESREADME | 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
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-develQuoted 8 lines
Quoted 2 lines
--
Jens Rehsack - [email protected]--
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel--
Jens Rehsack - [email protected]
Quoted 37 lines
Am 07.01.2016 um 04:00 schrieb Huang, Jie (Jackie) <[email protected]>:
Quoted 25 lines
-----Original Message-----
From: [email protected] [mailto:openembedded-devel- [email protected]] On Behalf Of Jens Rehsack
Sent: Wednesday, January 06, 2016 9:57 PM
To: [email protected]
Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fixdo_installand PROVIDESQuoted 11 lines
Am 06.01.2016 um 08:03 schrieb Huang, Jie (Jackie) <[email protected]>:
Quoted 7 lines
-----Original Message-----
From: [email protected] [mailto:openembedded-devel- [email protected]] On Behalf Of Jens Rehsack
Sent: Tuesday, January 05, 2016 3:21 AM
To: [email protected]
Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fixdo_installand PROVIDESQuoted 5 lines
Quoted 2 lines
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.
Quoted 6 lines
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?
Quoted 6 lines
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_PROVIDERto 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.
Quoted 10 lines
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_PROVIDERQuoted 2 lines
It is insane to have multiple providers for the same virtual/foo when at least a bunch
Virtual/foo and
PREFERRED_PROVIDERis 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.
Quoted 3 lines
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 - [email protected]
Quoted 47 lines
-----Original Message-----
From: [email protected] [mailto:openembedded-devel- [email protected]] On Behalf Of Jens Rehsack
Sent: Friday, January 08, 2016 5:46 PM
To: [email protected]
Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fixdo_installand PROVIDESQuoted 18 lines
Am 07.01.2016 um 04:00 schrieb Huang, Jie (Jackie) <[email protected]>:
Quoted 14 lines
-----Original Message-----
From: [email protected] [mailto:openembedded-devel- [email protected]] On Behalf Of Jens Rehsack
Sent: Wednesday, January 06, 2016 9:57 PM
To: [email protected]
Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fixdo_installand PROVIDESQuoted 6 lines
Am 06.01.2016 um 08:03 schrieb Huang, Jie (Jackie) <[email protected]>:
Quoted 2 lines
-----Original Message-----
From: [email protected] [mailto:openembedded-devel-
Quoted 18 lines
Quoted 17 lines
Quoted 10 lines
Quoted 7 lines
[email protected]] On Behalf Of Jens Rehsack
Sent: Tuesday, January 05, 2016 3:21 AM
To: [email protected]
Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fixdo_installand PROVIDESIt'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?
Quoted 8 lines
Quoted 6 lines
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_PROVIDERto 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.
Quoted 2 lines
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?
Quoted 5 lines
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?
Quoted 7 lines
Quoted 3 lines
FYI:
http://www.yoctoproject.org/docs/2.0/bitbake-user-manual/bitbake-user-manual.html#bb-bitbake-preferences
Quoted 3 lines
http://www.yoctoproject.org/docs/2.0/ref-manual/ref-manual.html#var-PREFERRED_PROVIDER
Quoted 1 line
Quoted 8 lines
Quoted 5 lines
Quoted 1 line
It is insane to have multiple providers for the same virtual/foo when at least a bunch
Virtual/foo and
PREFERRED_PROVIDERis 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?)?
Quoted 8 lines
Quoted 2 lines
I tested my patches to build openjdk7, openjdk8 and most recipes in meta-java with and without
sstate
Quoted 2 lines
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
Quoted 5 lines
not providers.
Cheers
--
Jens Rehsack - [email protected]
Quoted 52 lines
Am 09.01.2016 um 15:22 schrieb Huang, Jie (Jackie) <[email protected]>:
Quoted 47 lines
-----Original Message-----
From: [email protected] [mailto:openembedded-devel- [email protected]] On Behalf Of Jens Rehsack
Sent: Friday, January 08, 2016 5:46 PM
To: [email protected]
Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fixdo_installand PROVIDESQuoted 18 lines
Am 07.01.2016 um 04:00 schrieb Huang, Jie (Jackie) <[email protected]>:
Quoted 14 lines
-----Original Message-----
From: [email protected] [mailto:openembedded-devel- [email protected]] On Behalf Of Jens Rehsack
Sent: Wednesday, January 06, 2016 9:57 PM
To: [email protected]
Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fixdo_installand PROVIDESQuoted 6 lines
Am 06.01.2016 um 08:03 schrieb Huang, Jie (Jackie) <[email protected]>:
Quoted 2 lines
-----Original Message-----
From: [email protected] [mailto:openembedded-devel-
Quoted 20 lines
Quoted 11 lines
Quoted 10 lines
Quoted 7 lines
[email protected]] On Behalf Of Jens Rehsack
Sent: Tuesday, January 05, 2016 3:21 AM
To: [email protected]
Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fixdo_installand PROVIDESIt'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.
Quoted 6 lines
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.
Quoted 8 lines
Quoted 6 lines
Quoted 4 lines
Yes, only one we can have when there are multiple providers, that's why we should use
PREFERRED_PROVIDERto 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 ;)
Quoted 4 lines
Quoted 1 line
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.
Quoted 6 lines
Quoted 5 lines
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.
Quoted 7 lines
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-nativewhich ones are for bootstrapping only?
Depends what you want to bootstrap ;)
That's why the virtual/java*-native is such annoying.
Quoted 24 lines
Quoted 7 lines
Quoted 3 lines
FYI:
http://www.yoctoproject.org/docs/2.0/bitbake-user-manual/bitbake-user-manual.html#bb-bitbake-preferences
Quoted 3 lines
http://www.yoctoproject.org/docs/2.0/ref-manual/ref-manual.html#var-PREFERRED_PROVIDER
Quoted 1 line
Quoted 8 lines
Quoted 5 lines
Quoted 1 line
It is insane to have multiple providers for the same virtual/foo when at least a bunch
Virtual/foo and
PREFERRED_PROVIDERis 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?)?
Quoted 6 lines
Quoted 2 lines
I tested my patches to build openjdk7, openjdk8 and most recipes in meta-java with and without
sstate
Quoted 2 lines
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)
Quoted 6 lines
Quoted 2 lines
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.
Quoted 2 lines
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.
Quoted 2 lines
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 - [email protected]
Quoted 71 lines
-----Original Message-----
From: [email protected] [mailto:openembedded-devel- [email protected]] On Behalf Of Jens Rehsack
Sent: Monday, January 11, 2016 6:02 PM
To: [email protected]
Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fixdo_installand PROVIDESQuoted 18 lines
Am 09.01.2016 um 15:22 schrieb Huang, Jie (Jackie) <[email protected]>:
Quoted 14 lines
-----Original Message-----
From: [email protected] [mailto:openembedded-devel- [email protected]] On Behalf Of Jens Rehsack
Sent: Friday, January 08, 2016 5:46 PM
To: [email protected]
Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fixdo_installand PROVIDESQuoted 6 lines
Am 07.01.2016 um 04:00 schrieb Huang, Jie (Jackie) <[email protected]>:
Quoted 2 lines
-----Original Message-----
From: [email protected] [mailto:openembedded-devel-
Quoted 33 lines
Quoted 33 lines
Quoted 6 lines
Quoted 6 lines
[email protected]] On Behalf Of Jens Rehsack
Sent: Wednesday, January 06, 2016 9:57 PM
To: [email protected]
Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fixdo_installand PROVIDESQuoted 6 lines
Quoted 6 lines
Quoted 6 lines
Am 06.01.2016 um 08:03 schrieb Huang, Jie (Jackie) <[email protected]>:
Quoted 2 lines
-----Original Message-----
From: [email protected] [mailto:openembedded-devel-
Quoted 20 lines
Quoted 11 lines
Quoted 10 lines
Quoted 7 lines
[email protected]] On Behalf Of Jens Rehsack
Sent: Tuesday, January 05, 2016 3:21 AM
To: [email protected]
Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fixdo_installand PROVIDESIt'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.
Quoted 6 lines
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.
Quoted 8 lines
Quoted 6 lines
Quoted 4 lines
Yes, only one we can have when there are multiple providers, that's why we should use
PREFERRED_PROVIDERto 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.
Quoted 8 lines
Take a number ;)
Quoted 4 lines
Quoted 1 line
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.
Quoted 9 lines
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.
Quoted 16 lines
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.
Quoted 12 lines
Quoted 5 lines
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
Quoted 4 lines
Quoted 1 line
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.
Quoted 26 lines
Quoted 10 lines
Quoted 10 lines
Quoted 4 lines
FYI:
http://www.yoctoproject.org/docs/2.0/bitbake-user-manual/bitbake-user-manual.html#bb-bitbake-preferences
Quoted 5 lines
http://www.yoctoproject.org/docs/2.0/ref-manual/ref-manual.html#var-PREFERRED_PROVIDER
Quoted 2 lines
It is insane to have multiple providers for the same virtual/foo when at least a bunch
Quoted 13 lines
Quoted 6 lines
Quoted 3 lines
Virtual/foo and
PREFERRED_PROVIDERis 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?)?
Quoted 4 lines
Quoted 2 lines
I tested my patches to build openjdk7, openjdk8 and most recipes in meta-java with and without
sstate
Quoted 1 line
on qemux86-64, qemuarm, qemuppc and some of our BSPs and they all built fine (previous
method
Quoted 2 lines
Quoted 2 lines
Quoted 1 line
fails to build openjdk7 sometime and always fail when build with sstate)
Quoted 8 lines
Quoted 6 lines
Quoted 2 lines
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.
Quoted 2 lines
That's why
04d5d0bf4eliminates 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
Quoted 18 lines
Quoted 3 lines
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.
Quoted 2 lines
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 - [email protected]
Quoted 90 lines
Am 12.01.2016 um 03:50 schrieb Huang, Jie (Jackie) <[email protected]>:
Quoted 69 lines
-----Original Message-----
From: [email protected] [mailto:openembedded-devel- [email protected]] On Behalf Of Jens Rehsack
Sent: Monday, January 11, 2016 6:02 PM
To: [email protected]
Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fixdo_installand PROVIDESQuoted 18 lines
Am 09.01.2016 um 15:22 schrieb Huang, Jie (Jackie) <[email protected]>:
Quoted 14 lines
-----Original Message-----
From: [email protected] [mailto:openembedded-devel- [email protected]] On Behalf Of Jens Rehsack
Sent: Friday, January 08, 2016 5:46 PM
To: [email protected]
Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fixdo_installand PROVIDESQuoted 6 lines
Am 07.01.2016 um 04:00 schrieb Huang, Jie (Jackie) <[email protected]>:
Quoted 2 lines
-----Original Message-----
From: [email protected] [mailto:openembedded-devel-
Quoted 33 lines
Quoted 33 lines
Quoted 6 lines
Quoted 6 lines
[email protected]] On Behalf Of Jens Rehsack
Sent: Wednesday, January 06, 2016 9:57 PM
To: [email protected]
Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fixdo_installand PROVIDESQuoted 6 lines
Quoted 6 lines
Quoted 6 lines
Am 06.01.2016 um 08:03 schrieb Huang, Jie (Jackie) <[email protected]>:
Quoted 2 lines
-----Original Message-----
From: [email protected] [mailto:openembedded-devel-
Quoted 20 lines
Quoted 11 lines
Quoted 10 lines
Quoted 7 lines
[email protected]] On Behalf Of Jens Rehsack
Sent: Tuesday, January 05, 2016 3:21 AM
To: [email protected]
Subject: Re: [oe] [meta-java][PATCH 0/2] openjdk-8-native: fixdo_installand PROVIDESIt'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.
Quoted 6 lines
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.
Quoted 8 lines
Quoted 6 lines
Quoted 4 lines
Yes, only one we can have when there are multiple providers, that's why we should use
PREFERRED_PROVIDERto 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.
Quoted 8 lines
Take a number ;)
Quoted 4 lines
Quoted 1 line
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:
Quoted 4 lines
For example:
Cacao-native and jamvm-native both install java in/usr/binand 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.
Quoted 9 lines
Quoted 8 lines
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.
Quoted 4 lines
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
Quoted 15 lines
Quoted 15 lines
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.
Quoted 12 lines
Quoted 5 lines
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
Quoted 7 lines
Quoted 4 lines
Quoted 1 line
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?
Quoted 33 lines
Quoted 24 lines
Quoted 8 lines
Quoted 8 lines
Quoted 2 lines
FYI:
http://www.yoctoproject.org/docs/2.0/bitbake-user-manual/bitbake-user-manual.html#bb-bitbake-preferences
Quoted 5 lines
http://www.yoctoproject.org/docs/2.0/ref-manual/ref-manual.html#var-PREFERRED_PROVIDER
Quoted 2 lines
It is insane to have multiple providers for the same virtual/foo when at least a bunch
Quoted 13 lines
Quoted 6 lines
Quoted 3 lines
Virtual/foo and
PREFERRED_PROVIDERis 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?)?
Quoted 4 lines
Quoted 2 lines
I tested my patches to build openjdk7, openjdk8 and most recipes in meta-java with and without
sstate
Quoted 1 line
on qemux86-64, qemuarm, qemuppc and some of our BSPs and they all built fine (previous
method
Quoted 2 lines
Quoted 2 lines
Quoted 1 line
fails to build openjdk7 sometime and always fail when build with sstate)
Quoted 8 lines
Quoted 6 lines
Quoted 2 lines
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.
Quoted 7 lines
I don't think it's wrong, you just need a clearer definition.
Quoted 2 lines
That's why
04d5d0bf4eliminates 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?
Quoted 22 lines
Thanks,
JackieQuoted 12 lines
Quoted 3 lines
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.
Quoted 2 lines
but please remember to do
enough tests to ensure it doesn't break others. Thanks!Quoted 6 lines
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 - [email protected]
Quoted 5 lines
--
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel
Cheers
--
Jens Rehsack - [email protected]