All of lore.kernel.org
 help / color / mirror / Atom feed
* [meta-java][PATCH v3] WORKDIR and ARCHIVER_WORKDIR support
@ 2020-05-09  9:50 Robert Berger
  2020-06-10  9:10 ` Richard Leitner
  0 siblings, 1 reply; 2+ messages in thread
From: Robert Berger @ 2020-05-09  9:50 UTC (permalink / raw)
  To: openembedded-devel; +Cc: richard.leitner, Robert Berger

From: Robert Berger <robert.berger@ReliableEmbeddedSystems.com>

do_unpack_extract_submodules was called via postfuncs[do_unpack].
This breaks the build when the archiver.bbclass is used in a way
where do_unpack_and_patch is called by it. In this mode the archiver
class modifies WORKDIR, S, B,... and those modifications are lost 
via postfuncs.

In order to pick up WORKDIR, S, B,... (potentially modified by 
archiver.bbclass) do_patch_prepend is used instead of pre/postfuncs 
and calls do_unpack_extract_submodules now.

Without this patch the build will break when you add this to local.conf:

INHERIT += "archiver"
ARCHIVER_MODE[src] = "original"
ARCHIVER_MODE[diff] = "1"
ARCHIVER_MODE[dumpdata] = "1"
ARCHIVER_MODE[recipe] = "1"
COPYLEFT_LICENSE_INCLUDE = "GPL* LGPL*"

Signed-off-by: Robert Berger <robert.berger@ReliableEmbeddedSystems.com>
---
 recipes-core/openjdk/openjdk-8-common.inc | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/recipes-core/openjdk/openjdk-8-common.inc b/recipes-core/openjdk/openjdk-8-common.inc
index c78bb2a..04acc59 100644
--- a/recipes-core/openjdk/openjdk-8-common.inc
+++ b/recipes-core/openjdk/openjdk-8-common.inc
@@ -42,6 +42,21 @@ do_unpack_extract_submodules () {
     tar xjf ${WORKDIR}/${NASHORN_FILE_LOCAL} --transform "s,-${NASHORN_CHANGESET},,g"
 }
 
+do_patch_prepend() {
+    # use do_patch_prepend syntax and not pre/postfuncs to
+    # call do_unpack_extract_submodules
+    # *) the archiver.bbclass modifies WORKDIR, S, B,...
+    #    and those modifications are lost otherwise,
+    #    which leads to build failures in do_unpack_and_patch -> do_patch
+    func = 'do_unpack_extract_submodules'
+    bb.build.exec_func(func, d)
+
+    # delete X11 wrappers if x11 is not part of PACKAGECONFIG
+    if bb.utils.contains('PACKAGECONFIG', 'x11', False, True, d):
+       func_delete = 'do_unpack_delete_X11_wrappers'
+       bb.build.exec_func(func_delete, d)
+}
+
 do_unpack_delete_X11_wrappers() {
     find ${S}/jdk/src/solaris/classes/sun/awt/X11 -maxdepth 1 -name '*.java' -delete
 }
@@ -155,8 +170,8 @@ def jdk_configure_options(d):
     options = package_config_option_cleanup(d)
     return options[3]
 
-do_unpack[postfuncs] += "do_unpack_extract_submodules"
-do_unpack[postfuncs] += "${@bb.utils.contains('PACKAGECONFIG', 'x11', '', 'do_unpack_delete_X11_wrappers', d)}"
+#do_unpack[postfuncs] += "do_unpack_extract_submodules"
+#do_unpack[postfuncs] += "${@bb.utils.contains('PACKAGECONFIG', 'x11', '', 'do_unpack_delete_X11_wrappers', d)}"
 
 export DEBUG_BINARIES = "true"
 
-- 
2.17.1


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

* Re: [meta-java][PATCH v3] WORKDIR and ARCHIVER_WORKDIR support
  2020-05-09  9:50 [meta-java][PATCH v3] WORKDIR and ARCHIVER_WORKDIR support Robert Berger
@ 2020-06-10  9:10 ` Richard Leitner
  0 siblings, 0 replies; 2+ messages in thread
From: Richard Leitner @ 2020-06-10  9:10 UTC (permalink / raw)
  To: oecore.mailinglist; +Cc: openembedded-devel, Robert Berger

Hi,
thank you for your patch!

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;rl

On Sat, May 09, 2020 at 12:50:10PM +0300, oecore.mailinglist@gmail.com wrote:
> From: Robert Berger <robert.berger@ReliableEmbeddedSystems.com>
> 
> do_unpack_extract_submodules was called via postfuncs[do_unpack].
> This breaks the build when the archiver.bbclass is used in a way
> where do_unpack_and_patch is called by it. In this mode the archiver
> class modifies WORKDIR, S, B,... and those modifications are lost 
> via postfuncs.
> 
> In order to pick up WORKDIR, S, B,... (potentially modified by 
> archiver.bbclass) do_patch_prepend is used instead of pre/postfuncs 
> and calls do_unpack_extract_submodules now.
> 
> Without this patch the build will break when you add this to local.conf:
> 
> INHERIT += "archiver"
> ARCHIVER_MODE[src] = "original"
> ARCHIVER_MODE[diff] = "1"
> ARCHIVER_MODE[dumpdata] = "1"
> ARCHIVER_MODE[recipe] = "1"
> COPYLEFT_LICENSE_INCLUDE = "GPL* LGPL*"
> 
> Signed-off-by: Robert Berger <robert.berger@ReliableEmbeddedSystems.com>
> ---
>  recipes-core/openjdk/openjdk-8-common.inc | 19 +++++++++++++++++--
>  1 file changed, 17 insertions(+), 2 deletions(-)
> 
> diff --git a/recipes-core/openjdk/openjdk-8-common.inc b/recipes-core/openjdk/openjdk-8-common.inc
> index c78bb2a..04acc59 100644
> --- a/recipes-core/openjdk/openjdk-8-common.inc
> +++ b/recipes-core/openjdk/openjdk-8-common.inc
> @@ -42,6 +42,21 @@ do_unpack_extract_submodules () {
>      tar xjf ${WORKDIR}/${NASHORN_FILE_LOCAL} --transform "s,-${NASHORN_CHANGESET},,g"
>  }
>  
> +do_patch_prepend() {
> +    # use do_patch_prepend syntax and not pre/postfuncs to
> +    # call do_unpack_extract_submodules
> +    # *) the archiver.bbclass modifies WORKDIR, S, B,...
> +    #    and those modifications are lost otherwise,
> +    #    which leads to build failures in do_unpack_and_patch -> do_patch
> +    func = 'do_unpack_extract_submodules'
> +    bb.build.exec_func(func, d)
> +
> +    # delete X11 wrappers if x11 is not part of PACKAGECONFIG
> +    if bb.utils.contains('PACKAGECONFIG', 'x11', False, True, d):
> +       func_delete = 'do_unpack_delete_X11_wrappers'
> +       bb.build.exec_func(func_delete, d)
> +}
> +
>  do_unpack_delete_X11_wrappers() {
>      find ${S}/jdk/src/solaris/classes/sun/awt/X11 -maxdepth 1 -name '*.java' -delete
>  }
> @@ -155,8 +170,8 @@ def jdk_configure_options(d):
>      options = package_config_option_cleanup(d)
>      return options[3]
>  
> -do_unpack[postfuncs] += "do_unpack_extract_submodules"
> -do_unpack[postfuncs] += "${@bb.utils.contains('PACKAGECONFIG', 'x11', '', 'do_unpack_delete_X11_wrappers', d)}"
> +#do_unpack[postfuncs] += "do_unpack_extract_submodules"
> +#do_unpack[postfuncs] += "${@bb.utils.contains('PACKAGECONFIG', 'x11', '', 'do_unpack_delete_X11_wrappers', d)}"
>  
>  export DEBUG_BINARIES = "true"
>  
> -- 
> 2.17.1
> 

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

end of thread, other threads:[~2020-06-10  9:10 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-09  9:50 [meta-java][PATCH v3] WORKDIR and ARCHIVER_WORKDIR support Robert Berger
2020-06-10  9:10 ` Richard Leitner

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.