Skip to contentSkip to conversation

qt5webkit: fix building in Python 3 environment

PATCH New yegorslists at googlemail.com 3 participants 6 messages Oct 14, 2016 – Oct 17, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 qt5webkit: fix building in Python 3 environment

From: Yegor Yefremov <[email protected]>

qt5webkit requires Python for building stage and can be built with both Python 2 and 3. So remove the workaround with linking python binary and use Python dependency according to the selected Buildroot's Python version.

---
 package/qt5/qt5webkit/qt5webkit.mk | 13 +++----------
 1 file changed, 3 insertions(+), 10 deletions(-)
package/qt5/qt5webkit/qt5webkit.mk +3 -10
index a47a235..5c7a007 100644
@@ -9,8 +9,9 @@ QT5WEBKIT_VERSION = b889f460280ad98c89ede179bd3b9ce9cb02002b
 # The http://code.qt.io/cgit/qt/qtwebkit.git/ repo doesn't allow to do so.
 QT5WEBKIT_SITE = $(call github,qtproject,qtwebkit,$(QT5WEBKIT_VERSION))
 QT5WEBKIT_DEPENDENCIES = \
-	host-bison host-flex host-gperf host-python host-ruby \
-	qt5base sqlite
+	host-bison host-flex host-gperf host-ruby \
+	qt5base sqlite \
+	$(if $(BR2_PACKAGE_PYTHON3),host-python3,host-python)
 QT5WEBKIT_INSTALL_STAGING = YES
 
 QT5WEBKIT_LICENSE_FILES = Source/WebCore/LICENSE-LGPL-2 Source/WebCore/LICENSE-LGPL-2.1
@@ -33,15 +34,7 @@ ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y)
 QT5WEBKIT_DEPENDENCIES += qt5declarative
 endif
 
-# QtWebkit's build system uses python, but only supports python2. We work
-# around this by forcing python2 early in the PATH, via a python->python2
-# symlink.
 QT5WEBKIT_ENV = PATH=$(@D)/bin:$(BR_PATH)
-define QT5WEBKIT_PYTHON2_SYMLINK
-	mkdir -p $(@D)/bin
-	ln -sf $(HOST_DIR)/usr/bin/python2 $(@D)/bin/python
-endef
-QT5WEBKIT_PRE_CONFIGURE_HOOKS += QT5WEBKIT_PYTHON2_SYMLINK
 
 # Since we get the source from git, generated header files are not included.
 # qmake detects that header file generation (using the syncqt tool) must be
Signature · 1 line
2.1.4
#1 lore raw

PATCH 1/1 qt5webkit: fix building in Python 3 environment

Hello,

Quoted 8 lines · yegorslists at googlemail.com

From: Yegor Yefremov <[email protected]>

qt5webkit requires Python for building stage and can be built with both Python 2 and 3. So remove the workaround with linking python binary and use Python dependency according to the selected Buildroot's Python version.

This is pretty much reverting commit ac16793eaaabfced0312420759e3a66cdaa1ea8e, which says that Python 3 on the host doesn't work to build qt5webkit.

So if we apply your patch, I believe we will fall again into the autobuilder issues that commit ac16793eaaabfced0312420759e3a66cdaa1ea8e was fixing.

Can you explain why your patch is needed, and what now makes qt5webkit build fine with Python 3 on the host ?

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#2 lore raw

PATCH 1/1 qt5webkit: fix building in Python 3 environment

Quoted 16 lines · Thomas Petazzoni

Hello,

Quoted 8 lines · yegorslists at googlemail.com

From: Yegor Yefremov <[email protected]>

qt5webkit requires Python for building stage and can be built with both Python 2 and 3. So remove the workaround with linking python binary and use Python dependency according to the selected Buildroot's Python version.

This is pretty much reverting commit ac16793eaaabfced0312420759e3a66cdaa1ea8e, which says that Python 3 on the host doesn't work to build qt5webkit.

Quoted 6 lines

So if we apply your patch, I believe we will fall again into the autobuilder issues that commit ac16793eaaabfced0312420759e3a66cdaa1ea8e was fixing.

Can you explain why your patch is needed, and what now makes qt5webkit build fine with Python 3 on the host ?

First of commit "package/qt5webkit: needs host-python" just adds host-python dependency, that wasn't there before. As I've described here [1], this approach breaks user space python, as the symlink points to host binary. Then I greped in qt5webkit source folder and found some hints about Python 3 fixes. Upstream qt5webkit
(http://code.qt.io/cgit/qt/qtwebkit.git) has following commits:

18cb1a3ae907d76da9eb8c54528cf3bcb074d0e5 (Fix build failure with python3) 95ae190ff329824019621b860cdfd048eeebe48d (Failure building with python3)

Then I've removed output/build/host-python directory and output/build/qt5webkit and rebuilt this package having only host-python3. I could succeesfully make this.

[1] http://lists.busybox.net/pipermail/buildroot/2016-October/174215.html

Yegor

#3 lore raw

PATCH 1/1 qt5webkit: fix building in Python 3 environment

Quoted 4 lines · Yegor Yefremov
Quoted 2 lines · Thomas Petazzoni

Hello,

[snip]

Quoted 14 lines
Quoted 6 lines

So if we apply your patch, I believe we will fall again into the autobuilder issues that commit ac16793eaaabfced0312420759e3a66cdaa1ea8e was fixing.

Can you explain why your patch is needed, and what now makes qt5webkit build fine with Python 3 on the host ?

First of commit "package/qt5webkit: needs host-python" just adds host-python dependency, that wasn't there before. As I've described here [1], this approach breaks user space python, as the symlink points to host binary. Then I greped in qt5webkit source folder and found some hints about Python 3 fixes. Upstream qt5webkit
(http://code.qt.io/cgit/qt/qtwebkit.git) has following commits:

Quoted 6 lines

18cb1a3ae907d76da9eb8c54528cf3bcb074d0e5 (Fix build failure with python3) 95ae190ff329824019621b860cdfd048eeebe48d (Failure building with python3)

Then I've removed output/build/host-python directory and output/build/qt5webkit and rebuilt this package having only host-python3. I could succeesfully make this.

So, can you re-analyse the original autobuild failures and find out why they
happened?

http://autobuild.buildroot.org/results/ea4/ea4dd00ee585f9f9ea1927b8b5fd9035e6733420/
http://autobuild.buildroot.org/results/323/323ba220fae70d94c81bab9a348be844e90ace91/
http://autobuild.buildroot.org/results/6c2/6c20c9e222f94e6b70b97b87e1393dd16da2718c/

Nothing has changed in qt5webkit since those autobuild failures, so simply
reverting ac16793eaaabfc is going to re-introduce those failures.

Regards,
Arnout

Quoted 8 lines

[1] http://lists.busybox.net/pipermail/buildroot/2016-October/174215.html

Yegor
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#4 lore raw

PATCH 1/1 qt5webkit: fix building in Python 3 environment

Quoted 32 lines · Arnout Vandecappelle
Quoted 4 lines · Yegor Yefremov
Quoted 2 lines · Thomas Petazzoni

Hello,

[snip]

Quoted 14 lines
Quoted 6 lines

So if we apply your patch, I believe we will fall again into the autobuilder issues that commit ac16793eaaabfced0312420759e3a66cdaa1ea8e was fixing.

Can you explain why your patch is needed, and what now makes qt5webkit build fine with Python 3 on the host ?

First of commit "package/qt5webkit: needs host-python" just adds host-python dependency, that wasn't there before. As I've described here [1], this approach breaks user space python, as the symlink points to host binary. Then I greped in qt5webkit source folder and found some hints about Python 3 fixes. Upstream qt5webkit
(http://code.qt.io/cgit/qt/qtwebkit.git) has following commits:

Quoted 6 lines

18cb1a3ae907d76da9eb8c54528cf3bcb074d0e5 (Fix build failure with python3) 95ae190ff329824019621b860cdfd048eeebe48d (Failure building with python3)

Then I've removed output/build/host-python directory and output/build/qt5webkit and rebuilt this package having only host-python3. I could succeesfully make this.

So, can you re-analyse the original autobuild failures and find out why they
happened?

Quoted 6 lines

http://autobuild.buildroot.org/results/ea4/ea4dd00ee585f9f9ea1927b8b5fd9035e6733420/
http://autobuild.buildroot.org/results/323/323ba220fae70d94c81bab9a348be844e90ace91/
http://autobuild.buildroot.org/results/6c2/6c20c9e222f94e6b70b97b87e1393dd16da2718c/

Nothing has changed in qt5webkit since those autobuild failures, so simply
reverting ac16793eaaabfc is going to re-introduce those failures.

I've reverted the patch with python 2 workaround, changed all occurrences of python in qt5webkit build files to python3 and compiled the stuff again, but it
doesn't fail. My build system has following Python versions:

Python 2.7.9
Python 3.4.2

It would be interesting to know, what python versions were on this particular build machine, that caused build failures. Where can I get such information?

Yegor

#5 lore raw

PATCH 1/1 qt5webkit: fix building in Python 3 environment

Hello,

Quoted 11 lines · Yegor Yefremov

I've reverted the patch with python 2 workaround, changed all occurrences of python in qt5webkit build files to python3 and compiled the stuff again, but it
doesn't fail. My build system has following Python versions:

Python 2.7.9
Python 3.4.2

It would be interesting to know, what python versions were on this particular build machine, that caused build failures. Where can I get such information?

Look at the "submitter" file available in each build result. It tells you on which autobuilder the build took place. Then you can get in touch with the relevant people so that they can reproduce the problem, or give additional details about the autobuilder setup.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com