diff mbox

[1/1] Fix: qt5webkit overwrites target python.

Message ID CAKHhJn2_0viKJtaPk52rues5GBCN7pC=6AcpxgvZ0njmUNt7Ew@mail.gmail.com
State Superseded
Headers show

Commit Message

Johan Derycke Oct. 18, 2016, 12:30 p.m. UTC
Fixes issue with
https://git.buildroot.net/buildroot/commit/?id=ac16793eaaabfced0312420759e3a66cdaa1ea8e

We make a link in $(@D)/bin/python:

define QT5WEBKIT_PYTHON2_SYMLINK
  echo  $(@D)
  mkdir -p $(@D)/bin
  ln -sf $(HOST_DIR)/usr/bin/python2 $(@D)/bin/python
endef

But QT5WEBKIT_INSTALL_TARGET_CMDS copies $(@D)/bin/python to the target dir:

define QT5WEBKIT_INSTALL_TARGET_CMDS
  cp -dpf $(STAGING_DIR)/usr/lib/libQt5WebKit*.so.* $(TARGET_DIR)/usr/lib
  cp -dpf $(@D)/bin/* $(TARGET_DIR)/usr/bin/
  $(QT5WEBKIT_INSTALL_TARGET_QMLS)
endef

This overwrites the target python link with a bogus one.
The bin folder only contains 'jsc' which is now optional.


Signed-off-by: Johan Derycke <johan.derycke@barco.com>
---
 package/qt5/qt5webkit/Config.in    | 13 +++++++++++++
 package/qt5/qt5webkit/qt5webkit.mk |  8 +++++++-
 2 files changed, 20 insertions(+), 1 deletion(-)

--
2.4.4

Comments

Yegor Yefremov Oct. 18, 2016, 12:55 p.m. UTC | #1
Hi Johan,

On Tue, Oct 18, 2016 at 2:30 PM, Johan Derycke <johanderycke@gmail.com>
wrote:

> Fixes issue with https://git.buildroot.net/buil
> droot/commit/?id=ac16793eaaabfced0312420759e3a66cdaa1ea8e
>
> We make a link in $(@D)/bin/python:
>
> define QT5WEBKIT_PYTHON2_SYMLINK
>   echo  $(@D)
>   mkdir -p $(@D)/bin
>   ln -sf $(HOST_DIR)/usr/bin/python2 $(@D)/bin/python
> endef
>
> But QT5WEBKIT_INSTALL_TARGET_CMDS copies $(@D)/bin/python to the target
> dir:
>
> define QT5WEBKIT_INSTALL_TARGET_CMDS
>   cp -dpf $(STAGING_DIR)/usr/lib/libQt5WebKit*.so.* $(TARGET_DIR)/usr/lib
>   cp -dpf $(@D)/bin/* $(TARGET_DIR)/usr/bin/
>   $(QT5WEBKIT_INSTALL_TARGET_QMLS)
> endef
>
> This overwrites the target python link with a bogus one.
> The bin folder only contains 'jsc' which is now optional.
>
>
> Signed-off-by: Johan Derycke <johan.derycke@barco.com>
> ---
>  package/qt5/qt5webkit/Config.in    | 13 +++++++++++++
>  package/qt5/qt5webkit/qt5webkit.mk |  8 +++++++-
>  2 files changed, 20 insertions(+), 1 deletion(-)
>
> diff --git a/package/qt5/qt5webkit/Config.in
> b/package/qt5/qt5webkit/Config.in
> index 48aaf94..240a75e 100644
> --- a/package/qt5/qt5webkit/Config.in
> +++ b/package/qt5/qt5webkit/Config.in
> @@ -22,6 +22,19 @@ config BR2_PACKAGE_QT5WEBKIT
>
>    http://qt.io
>
> +if BR2_PACKAGE_QT5WEBKIT
> +
> +config BR2_PACKAGE_QT5WEBKIT_JSC
> + bool "qt5webkit jsc"
> + depends on BR2_PACKAGE_QT5WEBKIT
> + help
> +  Install jsc. jsc is a command-line utility that allows you to run
> +  JavaScript programs outside of the context of a web browser.
> +
> +  https://trac.webkit.org/wiki/JSC
> +
> +endif
> +
>  comment "qt5webkit needs a toolchain w/ dynamic library"
>   depends on BR2_STATIC_LIBS
>   depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
> diff --git a/package/qt5/qt5webkit/qt5webkit.mk b/package/qt5/qt5webkit/
> qt5webkit.mk
> index a47a235..600a660 100644
> --- a/package/qt5/qt5webkit/qt5webkit.mk
> +++ b/package/qt5/qt5webkit/qt5webkit.mk
> @@ -69,9 +69,15 @@ define QT5WEBKIT_INSTALL_TARGET_QMLS
>  endef
>  endif
>
> +ifeq ($(BR2_PACKAGE_QT5WEBKIT_JSC),y)
> +define QT5WEBKIT_INSTALL_TARGET_JSC
> + cp -dpf $(@D)/bin/jsc $(TARGET_DIR)/usr/bin/
> +endef
> +endif
> +
>  define QT5WEBKIT_INSTALL_TARGET_CMDS
>   cp -dpf $(STAGING_DIR)/usr/lib/libQt5WebKit*.so.* $(TARGET_DIR)/usr/lib
> - cp -dpf $(@D)/bin/* $(TARGET_DIR)/usr/bin/
> + $(QT5WEBKIT_INSTALL_TARGET_JSC)
>   $(QT5WEBKIT_INSTALL_TARGET_QMLS)
>  endef
>
> --
> 2.4.4
>
>
Your patch doesn't apply to master. And it seems to be malformed, i.e. not
plain ASCII. Have you sent it via git send-email?

Yegor
Thomas Petazzoni Oct. 18, 2016, 12:57 p.m. UTC | #2
Hello,

On Tue, 18 Oct 2016 12:30:31 +0000, Johan Derycke wrote:
> Fixes issue with
> https://git.buildroot.net/buildroot/commit/?id=ac16793eaaabfced0312420759e3a66cdaa1ea8e
> 
> We make a link in $(@D)/bin/python:
> 
> define QT5WEBKIT_PYTHON2_SYMLINK
>   echo  $(@D)
>   mkdir -p $(@D)/bin
>   ln -sf $(HOST_DIR)/usr/bin/python2 $(@D)/bin/python
> endef
> 
> But QT5WEBKIT_INSTALL_TARGET_CMDS copies $(@D)/bin/python to the target dir:
> 
> define QT5WEBKIT_INSTALL_TARGET_CMDS
>   cp -dpf $(STAGING_DIR)/usr/lib/libQt5WebKit*.so.* $(TARGET_DIR)/usr/lib
>   cp -dpf $(@D)/bin/* $(TARGET_DIR)/usr/bin/
>   $(QT5WEBKIT_INSTALL_TARGET_QMLS)
> endef
> 
> This overwrites the target python link with a bogus one.
> The bin folder only contains 'jsc' which is now optional.
> 
> 
> Signed-off-by: Johan Derycke <johan.derycke@barco.com>

Thanks, but that's not the best fix I believe. A much simpler fix is to
replace the python2 symlink logic by:

	mkdir -p $(@D)/host-bin/
	ln -sf $(HOST_DIR)/usr/bin/python2 $(@D)/host-bin/python

and of course change:

QT5WEBKIT_ENV = PATH=$(@D)/bin:$(BR_PATH)

to

QT5WEBKIT_ENV = PATH=$(@D)/host-bin:$(BR_PATH)

*However*, Yegor keeps saying that qt5webkit builds fine with only
Python 3 installed on the host machine, which would make the original
commit irrelevant. However, I find this rather odd, since we really had
the issue pointed by previous autobuilder failures.

So, in the mean time, I would suggest to go with the fix that I suggest
above. It keeps the current solution of using host-python to build
qt5webkit, but fixes its implementation to behave properly.

Could you resubmit your patch after taking into account the above
suggestion?

Thanks a lot!

Thomas
Johan Derycke Oct. 18, 2016, 2:05 p.m. UTC | #3
Hi,

thanks for the suggestions. git send-mail does not seem to work from our
corporate network :-(
I will resend the suggested changes later.

Johan

On Tue, 18 Oct 2016 at 14:57 Thomas Petazzoni <
thomas.petazzoni@free-electrons.com> wrote:

> Hello,
>
> On Tue, 18 Oct 2016 12:30:31 +0000, Johan Derycke wrote:
> > Fixes issue with
> >
> https://git.buildroot.net/buildroot/commit/?id=ac16793eaaabfced0312420759e3a66cdaa1ea8e
> >
> > We make a link in $(@D)/bin/python:
> >
> > define QT5WEBKIT_PYTHON2_SYMLINK
> >   echo  $(@D)
> >   mkdir -p $(@D)/bin
> >   ln -sf $(HOST_DIR)/usr/bin/python2 $(@D)/bin/python
> > endef
> >
> > But QT5WEBKIT_INSTALL_TARGET_CMDS copies $(@D)/bin/python to the target
> dir:
> >
> > define QT5WEBKIT_INSTALL_TARGET_CMDS
> >   cp -dpf $(STAGING_DIR)/usr/lib/libQt5WebKit*.so.* $(TARGET_DIR)/usr/lib
> >   cp -dpf $(@D)/bin/* $(TARGET_DIR)/usr/bin/
> >   $(QT5WEBKIT_INSTALL_TARGET_QMLS)
> > endef
> >
> > This overwrites the target python link with a bogus one.
> > The bin folder only contains 'jsc' which is now optional.
> >
> >
> > Signed-off-by: Johan Derycke <johan.derycke@barco.com>
>
> Thanks, but that's not the best fix I believe. A much simpler fix is to
> replace the python2 symlink logic by:
>
>         mkdir -p $(@D)/host-bin/
>         ln -sf $(HOST_DIR)/usr/bin/python2 $(@D)/host-bin/python
>
> and of course change:
>
> QT5WEBKIT_ENV = PATH=$(@D)/bin:$(BR_PATH)
>
> to
>
> QT5WEBKIT_ENV = PATH=$(@D)/host-bin:$(BR_PATH)
>
> *However*, Yegor keeps saying that qt5webkit builds fine with only
> Python 3 installed on the host machine, which would make the original
> commit irrelevant. However, I find this rather odd, since we really had
> the issue pointed by previous autobuilder failures.
>
> So, in the mean time, I would suggest to go with the fix that I suggest
> above. It keeps the current solution of using host-python to build
> qt5webkit, but fixes its implementation to behave properly.
>
> Could you resubmit your patch after taking into account the above
> suggestion?
>
> Thanks a lot!
>
> Thomas
> --
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux and Kernel engineering
> http://free-electrons.com
>
Thomas Petazzoni Oct. 18, 2016, 2:11 p.m. UTC | #4
Hello,

On Tue, 18 Oct 2016 14:05:18 +0000, Johan Derycke wrote:

> thanks for the suggestions. git send-mail does not seem to work from our
> corporate network :-(

Some other folks working at Barco contribute to Buildroot. I'm Cc'ing
Peter Korsgaard, he can probably give you some hints on how to achieve
that.

Best regards,

Thomas
Peter Korsgaard Oct. 18, 2016, 2:20 p.m. UTC | #5
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 > Hello,
 > On Tue, 18 Oct 2016 14:05:18 +0000, Johan Derycke wrote:

 >> thanks for the suggestions. git send-mail does not seem to work from our
 >> corporate network :-(

 > Some other folks working at Barco contribute to Buildroot. I'm Cc'ing
 > Peter Korsgaard, he can probably give you some hints on how to achieve
 > that.

I just send through the gmail smtp server (smtp.gmail.com).
diff mbox

Patch

diff --git a/package/qt5/qt5webkit/Config.in
b/package/qt5/qt5webkit/Config.in
index 48aaf94..240a75e 100644
--- a/package/qt5/qt5webkit/Config.in
+++ b/package/qt5/qt5webkit/Config.in
@@ -22,6 +22,19 @@  config BR2_PACKAGE_QT5WEBKIT

   http://qt.io

+if BR2_PACKAGE_QT5WEBKIT
+
+config BR2_PACKAGE_QT5WEBKIT_JSC
+ bool "qt5webkit jsc"
+ depends on BR2_PACKAGE_QT5WEBKIT
+ help
+  Install jsc. jsc is a command-line utility that allows you to run
+  JavaScript programs outside of the context of a web browser.
+
+  https://trac.webkit.org/wiki/JSC
+
+endif
+
 comment "qt5webkit needs a toolchain w/ dynamic library"
  depends on BR2_STATIC_LIBS
  depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
diff --git a/package/qt5/qt5webkit/qt5webkit.mk b/package/qt5/qt5webkit/
qt5webkit.mk
index a47a235..600a660 100644
--- a/package/qt5/qt5webkit/qt5webkit.mk
+++ b/package/qt5/qt5webkit/qt5webkit.mk
@@ -69,9 +69,15 @@  define QT5WEBKIT_INSTALL_TARGET_QMLS
 endef
 endif

+ifeq ($(BR2_PACKAGE_QT5WEBKIT_JSC),y)
+define QT5WEBKIT_INSTALL_TARGET_JSC
+ cp -dpf $(@D)/bin/jsc $(TARGET_DIR)/usr/bin/
+endef
+endif
+
 define QT5WEBKIT_INSTALL_TARGET_CMDS
  cp -dpf $(STAGING_DIR)/usr/lib/libQt5WebKit*.so.* $(TARGET_DIR)/usr/lib
- cp -dpf $(@D)/bin/* $(TARGET_DIR)/usr/bin/
+ $(QT5WEBKIT_INSTALL_TARGET_JSC)
  $(QT5WEBKIT_INSTALL_TARGET_QMLS)
 endef