java-library: make packages overriding PACKAGE_ARCH work again
PATCH 1/1 java-library: make packages overriding PACKAGE_ARCH work again
From: André Draszik <[email protected]>
Recent changes is OE have caused the traditional approach of inheriting allarch and setting PACKAGE_ARCH not work anymore. Once allarch is inherited, PACKAGE_ARCH can not be overridden afterwards. See commit a23c482cab4f ("allarch: only enable allarch when multilib is not used") d9ba0219b2f6 in poky.
http://git.openembedded.org/openembedded-core/commit/?id=a23c482cab4f874f4a6a6889716123569eb5ece9
The error manifests itself with configure trying to
--host=allarch-poky-linux --target=allarch-poky-linux
which fails.
To work around this we can make java-library's allarch inherit conditional, as is done e.g. in OE-core for packagegroup.bbclass
http://git.openembedded.org/openembedded-core/commit/?id=9c826962ec8fa45c2b035427442b90a41517144e http://git.openembedded.org/openembedded-core/commit/?id=2c9b1d304daade7b0907320aeb9c522e7ab9dcab
So this commit does exactly that, and fixes the two users of this to follow the new approach.
--- classes/java-library.bbclass | 8 ++++++-- recipes-core/libmatthew/libmatthew.inc | 2 +- recipes-extended/rxtx/rxtx_2.2.0.bb | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-)
classes/java-library.bbclass +6 -2
@@ -10,9 +10,13 @@ # # package archs are set to all, if the recipe builds also packages which # can not be used for all archs, then set the PACKAGE_ARCH of that package -# manually, see rxtx_xx.bb for an example. +# manually *before* inheriting the class, see rxtx_xx.bb for an example. -inherit java allarch +inherit java +PACKAGE_ARCH ?= "all" +# Fully expanded - so it applies the overrides as well +PACKAGE_ARCH_EXPANDED := "${PACKAGE_ARCH}" +inherit ${@oe.utils.ifelse(d.getVar('PACKAGE_ARCH_EXPANDED') == 'all', 'allarch', '')} # use java_stage for native packages JAVA_NATIVE_STAGE_INSTALL = "1"
recipes-core/libmatthew/libmatthew.inc +1 -1
@@ -7,8 +7,8 @@ DEPENDS = "virtual/java-native classpath-native classpath" S = "${WORKDIR}/libmatthew-java-${PV}" -inherit java-library PACKAGE_ARCH = "${TUNE_PKGARCH}" +inherit java-library # Some internal version numbers which change from time to time. # Allowing to override them makes this include file more
recipes-extended/rxtx/rxtx_2.2.0.bb +1 -1
@@ -28,8 +28,8 @@ S = "${WORKDIR}/rxtx-2.2pre2" INSANE_SKIP_${JPN} += "dev-so" -inherit autotools-brokensep java-library remove-libtool PACKAGE_ARCH = "${TUNE_PKGARCH}" +inherit autotools-brokensep java-library remove-libtool JARFILENAME = "RXTXcomm.jar" EXTRA_OEMAKE += "RXTX_PATH=${D}${libdir_jni} \
Signature · 1 line
2.19.1
Hi,
this is a note to let you know that I've just added this patch to the master-next branch of the meta-java repository at
git://git.yoctoproject.org/meta-java
As soon as it has gone through some more testing it will likely be merged to the master branch.
If you have any questions, please let me know.
regards;Richard.L
Quoted 77 lines · André Draszik
From: André Draszik <[email protected]>
Recent changes is OE have caused the traditional approach of inheriting allarch and setting
PACKAGE_ARCHnot work anymore. Once allarch is inherited,PACKAGE_ARCHcan not be overridden afterwards. See commita23c482cab4f("allarch: only enable allarch when multilib is not used")d9ba0219b2f6in poky.http://git.openembedded.org/openembedded-core/commit/?id=a23c482cab4f874f4a6a6889716123569eb5ece9The error manifests itself with configure trying to
--host=allarch-poky-linux --target=allarch-poky-linux
which fails.To work around this we can make java-library's allarch inherit conditional, as is done e.g. in OE-core for packagegroup.bbclass
http://git.openembedded.org/openembedded-core/commit/?id=9c826962ec8fa45c2b035427442b90a41517144e http://git.openembedded.org/openembedded-core/commit/?id=2c9b1d304daade7b0907320aeb9c522e7ab9dcabSo this commit does exactly that, and fixes the two users of this to follow the new approach.
Signed-off-by André Draszik <[email protected]>--- classes/java-library.bbclass | 8 ++++++-- recipes-core/libmatthew/libmatthew.inc | 2 +- recipes-extended/rxtx/rxtx_2.2.0.bb | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-)classes/java-library.bbclass +6
-2@@ -10,9 +10,13 @@ # # package archs are set to all, if the recipe builds also packages which # can not be used for all archs, then set the PACKAGE_ARCH of that package -# manually, see rxtx_xx.bb for an example. +# manually *before* inheriting the class, see rxtx_xx.bb for an example. -inherit java allarch +inherit java +PACKAGE_ARCH ?= "all" +# Fully expanded - so it applies the overrides as well +PACKAGE_ARCH_EXPANDED := "${PACKAGE_ARCH}" +inherit ${@oe.utils.ifelse(d.getVar('PACKAGE_ARCH_EXPANDED') == 'all', 'allarch', '')} # use java_stage for native packages JAVA_NATIVE_STAGE_INSTALL = "1"recipes-core/libmatthew/libmatthew.inc +1
-1@@ -7,8 +7,8 @@ DEPENDS = "virtual/java-native classpath-native classpath" S = "${WORKDIR}/libmatthew-java-${PV}" -inherit java-library PACKAGE_ARCH = "${TUNE_PKGARCH}" +inherit java-library # Some internal version numbers which change from time to time. # Allowing to override them makes this include file morerecipes-extended/rxtx/rxtx_2.2.0.bb +1
-1@@ -28,8 +28,8 @@ S = "${WORKDIR}/rxtx-2.2pre2" INSANE_SKIP_${JPN} += "dev-so" -inherit autotools-brokensep java-library remove-libtool PACKAGE_ARCH = "${TUNE_PKGARCH}" +inherit autotools-brokensep java-library remove-libtool JARFILENAME = "RXTXcomm.jar" EXTRA_OEMAKE += "RXTX_PATH=${D}${libdir_jni} \