Skip to contentSkip to conversation

python-pyqt: new package

PATCH New Sergey Kostanbaev 2 participants 5 messages Oct 19, 2013 – Oct 14, 2014

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 python-pyqt: new package

Although new generation configure-ng was developed taking in mind cross- compilation, it seems it doesn't fully supported yet. We need to override path to python configuration for target. Moreover we can't run qtdetail to determine available fatures of current Qt configuration, instean I generate qtdetail.out file by buildroot qt configuration taking into account specific QWS features. Only QWS (Qt Embedded) is supported now.
For unknown reason using $(generic-package) instead of $(autotools-package) breaks compilation.

---
 Config.in                                                                |    1 
 python-pyqt/Config.in                                                    |    7 
 python-pyqt/python-pyqt-0001-configure-skip-qtdetail.patch               |   16 ++
 python-pyqt/python-pyqt-0002-configure-set-qws.patch                     |   14 +
 python-pyqt/python-pyqt-0003-configure-fixbug.patch                      |   14 +
 python-pyqt/python-pyqt-0004-configure-set-python-pathes.patch           |   19 ++
 python-pyqt/python-pyqt-0005-sip-QtCore-add-qws.patch                    |   41 +++++
 python-pyqt/python-pyqt-0006-sip-QtGuit-add-wid.patch                    |   13 +
 python-pyqt/python-pyqt-0007-sip-QtGuit-hide-qfont-cachestatistics.patch |   16 ++
 python-pyqt/python-pyqt.mk                                               |   74 ++++++++++
 10 files changed, 217 insertions(+)
package/Config.in +1 -0
index e1ecca0..2ce7e9b 100644
@@ -159,6 +159,7 @@ source "package/qtuio/Config.in"
 source "package/qwt/Config.in"
 
 source "package/python-sip/Config.in"
+source "package/python-pyqt/Config.in"
 
 endif
 
package/python-pyqt/Config.in new file +7 -0
new file mode 100644
index 0000000..9821f35
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_PYTHON_PYQT
+	bool "python-pyqt"
+	depends on BR2_PACKAGE_PYTHON_SIP
+	help
+	  PyQT4 for Qt Embedded 4 bindings
+
+	  http://www.riverbankcomputing.com/software/pyqt/intro
package/python-pyqt/python-pyqt-0001-configure-skip-qtdetail.patch new file +16 -0
new file mode 100644
index 0000000..159e76a
@@ -0,0 +1,16 @@
+Do not run ./qtdetail as it's cross-compiled and can't be run to generate config
+
+Signed-off-by: Sergey Kostanbaev <[email protected]>
+--- a/configure-ng.py	2013-08-21 09:50:47.000000000 +0400
++++ b/configure-ng.py	2013-10-18 18:02:18.000000000 +0400
+@@ -517,8 +517,8 @@ int main(int argc, char **argv)
+             error("Failed to determine the detail of your Qt installation. Try again using the --verbose flag to see more detail about the problem.")
+ 
+         # Create the output file, first making sure it doesn't exist.
+-        remove_file(out_file)
+-        run_command(cmd, verbose)
++        # remove_file(out_file)
++        # run_command(cmd, verbose)
+ 
+         if not os.access(out_file, os.F_OK):
+             error("%s failed to create %s. Make sure your Qt installation is correct." % (cmd, out_file))
package/python-pyqt/python-pyqt-0002-configure-set-qws.patch new file +14 -0
new file mode 100644
index 0000000..8f784fc
@@ -0,0 +1,14 @@
+Change configuration to WS_QWS to work without X11
+
+Signed-off-by: Sergey Kostanbaev <[email protected]>
+--- a/configure-ng.py	2013-08-21 09:50:47.000000000 +0400
++++ b/configure-ng.py	2013-10-18 18:02:18.000000000 +0400
+@@ -1952,7 +1952,7 @@ def get_sip_flags(target_config):
+     elif target_config.py_platform == 'darwin':
+         plattag = 'WS_MACX'
+     else:
+-        plattag = 'WS_X11'
++        plattag = 'WS_QWS'
+ 
+     sip_flags.append('-t')
+     sip_flags.append(plattag)
package/python-pyqt/python-pyqt-0003-configure-fixbug.patch new file +14 -0
new file mode 100644
index 0000000..c11c5f3
@@ -0,0 +1,14 @@
+There's a bug in pyqt-4.10.3. Incorrect place of ')' produces incorrect filename
+
+Signed-off-by: Sergey Kostanbaev <[email protected]>
+--- a/configure-ng.py	2013-08-21 09:50:47.000000000 +0400
++++ b/configure-ng.py	2013-10-18 18:02:18.000000000 +0400
+@@ -2210,7 +2210,7 @@ win32 {
+         else:
+             entry_point = 'init%s' % mname
+ 
+-        exp = open(os.path.join(mname, target_name + '.exp', 'w'))
++        exp = open(os.path.join(mname, target_name + '.exp'), 'w')
+         exp.write('{ global: %s; local: *; };' % entry_point)
+         exp.close()
+ 
package/python-pyqt/python-pyqt-0004-configure-set-python-pathes.patch new file +19 -0
new file mode 100644
index 0000000..eb7d989
@@ -0,0 +1,19 @@
+We need to set py_inc_dir and py_lib_dir to staged python. Threre's no such
+configuration option, so use vend_inc_dir and vend_lib_dir for this purpose
+as it's not used here
+
+Signed-off-by: Sergey Kostanbaev <[email protected]>
+--- a/configure-ng.py	2013-10-18 19:36:57.969234500 +0400
++++ b/configure-ng.py	2013-10-18 19:10:58.000000000 +0400
+@@ -682,9 +682,11 @@ int main(int argc, char **argv)
+ 
+         if opts.vendincdir is not None:
+             self.vend_inc_dir = opts.vendincdir
++            self.py_inc_dir = opts.vendincdir
+ 
+         if opts.vendlibdir is not None:
+             self.vend_lib_dir = opts.vendlibdir
++            self.py_lib_dir = opts.vendlibdir
+ 
+         # Handle any conflicts.
+         if self.qt_shared:
package/python-pyqt/python-pyqt-0005-sip-QtCore-add-qws.patch new file +41 -0

41 lines not on this page · raw message

package/python-pyqt/python-pyqt-0006-sip-QtGuit-add-wid.patch new file +13 -0
new file mode 100644
index 0000000..92388c9
@@ -0,0 +1,13 @@
+Add definition for WId in QWS configuration
+
+Signed-off-by: Sergey Kostanbaev <[email protected]>
+diff -ur PyQt-x11-gpl-4.9.6/sip/QtGui/qwindowdefs.sip pyqt-4.9.6/sip/QtGui/qwindowdefs.sip
+--- PyQt-x11-gpl-4.9.6/sip/QtGui/qwindowdefs.sip	2012-12-08 13:51:38.000000000 +0400
++++ pyqt-4.9.6/sip/QtGui/qwindowdefs.sip	2013-04-24 14:14:54.251000018 +0400
+@@ -41,3 +41,6 @@
+ // MacOS/X specific definitions.
+ typedef long WId;
+ %End
++%If (WS_QWS)
++typedef unsigned long  WId;
++%End
package/python-pyqt/python-pyqt-0007-sip-QtGuit-hide-qfont-cachestatistics.patch new file +16 -0
new file mode 100644
index 0000000..677f56d
@@ -0,0 +1,16 @@
+Hide QFont::cacheStatistics which itn't available in QWS
+
+Signed-off-by: Sergey Kostanbaev <[email protected]>
+diff -ur PyQt-x11-gpl-4.9.6/sip/QtGui/qfont.sip pyqt-4.9.6/sip/QtGui/qfont.sip
+--- PyQt-x11-gpl-4.9.6/sip/QtGui/qfont.sip	2012-12-08 13:51:38.000000000 +0400
++++ pyqt-4.9.6/sip/QtGui/qfont.sip	2013-05-22 14:06:38.335000022 +0400
+@@ -185,7 +185,9 @@
+ %End
+     static void initialize();
+     static void cleanup();
++%If (!WS_QWS)
+     static void cacheStatistics();
++%End
+     QString defaultFamily() const;
+     QString lastResortFamily() const;
+     QString lastResortFont() const;
package/python-pyqt/python-pyqt.mk new file +72 -0

72 lines not on this page · raw message

#1 lore raw

PATCH 1/1 python-pyqt: new package

Hi everybody,

Any comments about my patches (python-sip and python-pyqt)? Is something wrong with them?

Best Regards,
Sergey

Quoted 360 lines · Sergey Kostanbaev

Although new generation configure-ng was developed taking in mind cross- compilation, it seems it doesn't fully supported yet. We need to override path
to python configuration for target. Moreover we can't run qtdetail to determine available fatures of current Qt configuration, instean I generate qtdetail.out file by buildroot qt configuration taking into account specific
QWS features. Only QWS (Qt Embedded) is supported now.
For unknown reason using $(generic-package) instead of $(autotools-package) breaks compilation.

---
Config.in
| 1
python-pyqt/Config.in
| 7
python-pyqt/python-pyqt-0001-configure-skip-qtdetail.patch
| 16 ++
python-pyqt/python-pyqt-0002-configure-set-qws.patch
| 14 +
python-pyqt/python-pyqt-0003-configure-fixbug.patch
| 14 +
python-pyqt/python-pyqt-0004-configure-set-python-pathes.patch
| 19 ++
python-pyqt/python-pyqt-0005-sip-QtCore-add-qws.patch
| 41 +++++
python-pyqt/python-pyqt-0006-sip-QtGuit-add-wid.patch
| 13 +
python-pyqt/python-pyqt-0007-sip-QtGuit-hide-qfont-cachestatistics.patch
| 16 ++
python-pyqt/python-pyqt.mk
| 74 ++++++++++

 10 files changed, 217 insertions(+)
package/Config.in +1 -0
index e1ecca0..2ce7e9b 100644
@@ -159,6 +159,7 @@ source "package/qtuio/Config.in"
 source "package/qwt/Config.in"
 
 source "package/python-sip/Config.in"
+source "package/python-pyqt/Config.in"
 
 endif
 
package/python-pyqt/Config.in new file +7 -0
new file mode 100644
index 0000000..9821f35
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_PYTHON_PYQT
+       bool "python-pyqt"
+       depends on BR2_PACKAGE_PYTHON_SIP
+       help
+         PyQT4 for Qt Embedded 4 bindings
+
+         http://www.riverbankcomputing.com/software/pyqt/intro

diff --git a/package/python-pyqt/python-pyqt-0001-configure-skip-qtdetail.patch b/package/python-pyqt/python-pyqt-0001-configure-skip-qtdetail.patch new file mode 100644
index 0000000..159e76a

package/python-pyqt/python-pyqt-0001-configure-skip-qtdetail.patch new file +1 -0
@@ -0,0 +1,16 @@
+Do not run ./qtdetail as it's cross-compiled and can't be run to generate

config

package/python-pyqt/python-pyqt-0001-configure-skip-qtdetail.patch new file +6 -0
+
+Signed-off-by: Sergey Kostanbaev <[email protected]>
+--- a/configure-ng.py  2013-08-21 09:50:47.000000000 +0400
++++ b/configure-ng.py  2013-10-18 18:02:18.000000000 +0400
+@@ -517,8 +517,8 @@ int main(int argc, char **argv)
+             error("Failed to determine the detail of your Qt

installation. Try again using the --verbose flag to see more detail about the problem.")

package/python-pyqt/python-pyqt-0001-configure-skip-qtdetail.patch new file +9 -0
+
+         # Create the output file, first making sure it doesn't exist.
+-        remove_file(out_file)
+-        run_command(cmd, verbose)
++        # remove_file(out_file)
++        # run_command(cmd, verbose)
+
+         if not os.access(out_file, os.F_OK):
+             error("%s failed to create %s. Make sure your Qt

installation is correct." % (cmd, out_file))

package/python-pyqt/python-pyqt-0002-configure-set-qws.patch new file +14 -0
new file mode 100644
index 0000000..8f784fc
@@ -0,0 +1,14 @@
+Change configuration to WS_QWS to work without X11
+
+Signed-off-by: Sergey Kostanbaev <[email protected]>
+--- a/configure-ng.py  2013-08-21 09:50:47.000000000 +0400
++++ b/configure-ng.py  2013-10-18 18:02:18.000000000 +0400
+@@ -1952,7 +1952,7 @@ def get_sip_flags(target_config):
+     elif target_config.py_platform == 'darwin':
+         plattag = 'WS_MACX'
+     else:
+-        plattag = 'WS_X11'
++        plattag = 'WS_QWS'
+
+     sip_flags.append('-t')
+     sip_flags.append(plattag)
package/python-pyqt/python-pyqt-0003-configure-fixbug.patch new file +1 -0
new file mode 100644
index 0000000..c11c5f3
@@ -0,0 +1,14 @@
+There's a bug in pyqt-4.10.3. Incorrect place of ')' produces incorrect

filename

package/python-pyqt/python-pyqt-0003-configure-fixbug.patch new file +13 -0
+
+Signed-off-by: Sergey Kostanbaev <[email protected]>
+--- a/configure-ng.py  2013-08-21 09:50:47.000000000 +0400
++++ b/configure-ng.py  2013-10-18 18:02:18.000000000 +0400
+@@ -2210,7 +2210,7 @@ win32 {
+         else:
+             entry_point = 'init%s' % mname
+
+-        exp = open(os.path.join(mname, target_name + '.exp', 'w'))
++        exp = open(os.path.join(mname, target_name + '.exp'), 'w')
+         exp.write('{ global: %s; local: *; };' % entry_point)
+         exp.close()
+

diff --git a/package/python-pyqt/python-pyqt-0004-configure-set-python-pathes.patch b/package/python-pyqt/python-pyqt-0004-configure-set-python-pathes.patch new file mode 100644
index 0000000..eb7d989
--- /dev/null
+++
b/package/python-pyqt/python-pyqt-0004-configure-set-python-pathes.patch

package/python-pyqt/python-pyqt-0003-configure-fixbug.patch new file +1 -0
@@ -0,0 +1,19 @@
+We need to set py_inc_dir and py_lib_dir to staged python. Threre's no

such
+configuration option, so use vend_inc_dir and vend_lib_dir for this purpose

package/python-pyqt/python-pyqt-0003-configure-fixbug.patch new file +17 -0
+as it's not used here
+
+Signed-off-by: Sergey Kostanbaev <[email protected]>
+--- a/configure-ng.py  2013-10-18 19:36:57.969234500 +0400
++++ b/configure-ng.py  2013-10-18 19:10:58.000000000 +0400
+@@ -682,9 +682,11 @@ int main(int argc, char **argv)
+
+         if opts.vendincdir is not None:
+             self.vend_inc_dir = opts.vendincdir
++            self.py_inc_dir = opts.vendincdir
+
+         if opts.vendlibdir is not None:
+             self.vend_lib_dir = opts.vendlibdir
++            self.py_lib_dir = opts.vendlibdir
+
+         # Handle any conflicts.
+         if self.qt_shared:
package/python-pyqt/python-pyqt-0005-sip-QtCore-add-qws.patch new file +1 -0
new file mode 100644
index 0000000..579aaeb
@@ -0,0 +1,41 @@
+Add WS_QWS platform configuration in QtCore. Change HANDLE to void* to

get rid

package/python-pyqt/python-pyqt-0005-sip-QtCore-add-qws.patch new file +4 -0
+of error during compilation
+
+Signed-off-by: Sergey Kostanbaev <[email protected]>
+diff -ur PyQt-x11-gpl-4.9.6/sip/QtCore/qnamespace.sip

pyqt-4.9.6/sip/QtCore/qnamespace.sip
+--- PyQt-x11-gpl-4.9.6/sip/QtCore/qnamespace.sip 2012-12-08
13:51:38.000000000 +0400
++++ pyqt-4.9.6/sip/QtCore/qnamespace.sip 2013-04-24
17:50:22.845000018 +0400
+@@ -1670,7 +1670,7 @@
+ %End
+ %End
+ %If (- Qt_5_0_0)

+-%If (WS_X11)
+-    typedef unsigned long HANDLE;
++%If (WS_X11 || WS_QWS)
++    typedef void* HANDLE;

+ %End
+ %End
+diff -ur PyQt-x11-gpl-4.9.6/sip/QtCore/qprocess.sip pyqt-4.9.6/sip/QtCore/qprocess.sip
+--- PyQt-x11-gpl-4.9.6/sip/QtCore/qprocess.sip 2012-12-08 13:51:38.000000000 +0400
++++ pyqt-4.9.6/sip/QtCore/qprocess.sip 2013-04-24 17:47:46.808000017 +0400 +@@ -28,7 +28,7 @@
+ %If (WS_WIN)
+ typedef void *Q_PID;
+ %End

+-%If (WS_X11 || WS_MACX)
++%If (WS_X11 || WS_MACX || WS_QWS)

+ typedef qint64 Q_PID;
+ %End

package/python-pyqt/python-pyqt-0005-sip-QtCore-add-qws.patch new file +2 -0
+
+diff -ur PyQt-x11-gpl-4.9.6/sip/QtCore/QtCoremod.sip

pyqt-4.9.6/sip/QtCore/QtCoremod.sip
+--- PyQt-x11-gpl-4.9.6/sip/QtCore/QtCoremod.sip 2012-12-08
13:51:39.000000000 +0400
++++ pyqt-4.9.6/sip/QtCore/QtCoremod.sip 2013-04-24
17:48:37.599000018 +0400
+@@ -29,7 +29,7 @@
+
+ %Timeline {Qt_4_1_1 Qt_4_1_2 Qt_4_1_3 Qt_4_2_0 Qt_4_2_2 Qt_4_2_3 Qt_4_3_0 Qt_4_3_1 Qt_4_3_2 Qt_4_3_3 Qt_4_3_4 Qt_4_4_0 Qt_4_4_1 Qt_4_4_2 Qt_4_5_0 Qt_4_5_1 Qt_4_5_2 Qt_4_5_3 Qt_4_6_0 Qt_4_6_1 Qt_4_6_2 Qt_4_6_3 Qt_4_7_0 Qt_4_7_1 Qt_4_7_2 Qt_4_7_3 Qt_4_7_4 Qt_4_8_0 Qt_4_8_1 Qt_4_8_2 Qt_4_8_3 Qt_4_8_4 Qt_5_0_0}

package/python-pyqt/python-pyqt-0005-sip-QtCore-add-qws.patch new file +6 -0
+
+-%Platforms {WS_X11 WS_WIN WS_MACX}
++%Platforms {WS_X11 WS_WIN WS_MACX WS_QWS}
+
+ %Feature PyQt_Accessibility
+ %Feature PyQt_SessionManager
package/python-pyqt/python-pyqt-0006-sip-QtGuit-add-wid.patch new file +4 -0
new file mode 100644
index 0000000..92388c9
@@ -0,0 +1,13 @@
+Add definition for WId in QWS configuration
+
+Signed-off-by: Sergey Kostanbaev <[email protected]>
+diff -ur PyQt-x11-gpl-4.9.6/sip/QtGui/qwindowdefs.sip

pyqt-4.9.6/sip/QtGui/qwindowdefs.sip
+--- PyQt-x11-gpl-4.9.6/sip/QtGui/qwindowdefs.sip 2012-12-08
13:51:38.000000000 +0400
++++ pyqt-4.9.6/sip/QtGui/qwindowdefs.sip 2013-04-24
14:14:54.251000018 +0400
+@@ -41,3 +41,6 @@
+ // MacOS/X specific definitions.
+ typedef long WId;
+ %End
++%If (WS_QWS)
++typedef unsigned long WId;
++%End
diff --git a/package/python-pyqt/python-pyqt-0007-sip-QtGuit-hide-qfont-cachestatistics.patch b/package/python-pyqt/python-pyqt-0007-sip-QtGuit-hide-qfont-cachestatistics.patch new file mode 100644
index 0000000..677f56d
--- /dev/null
+++
b/package/python-pyqt/python-pyqt-0007-sip-QtGuit-hide-qfont-cachestatistics.patch

package/python-pyqt/python-pyqt-0006-sip-QtGuit-add-wid.patch new file +4 -0
@@ -0,0 +1,16 @@
+Hide QFont::cacheStatistics which itn't available in QWS
+
+Signed-off-by: Sergey Kostanbaev <[email protected]>
+diff -ur PyQt-x11-gpl-4.9.6/sip/QtGui/qfont.sip

pyqt-4.9.6/sip/QtGui/qfont.sip
+--- PyQt-x11-gpl-4.9.6/sip/QtGui/qfont.sip 2012-12-08
13:51:38.000000000 +0400
++++ pyqt-4.9.6/sip/QtGui/qfont.sip 2013-05-22 14:06:38.335000022 +0400
+@@ -185,7 +185,9 @@
+ %End

package/python-pyqt/python-pyqt-0006-sip-QtGuit-add-wid.patch new file +8 -0
+     static void initialize();
+     static void cleanup();
++%If (!WS_QWS)
+     static void cacheStatistics();
++%End
+     QString defaultFamily() const;
+     QString lastResortFamily() const;
+     QString lastResortFont() const;
package/python-pyqt/ renamed from package/python-pyqt/python-pyqt.mk +0 -0

python-pyqt.mk
new file mode 100644
index 0000000..a22222b

package/python-pyqt/python-pyqt.mk new file +8 -0
@@ -0,0 +1,72 @@
 
+################################################################################
+#
+# python-pyqt
+#
 
+################################################################################
+PYTHON_PYQT_VERSION = 4.10.3
+PYTHON_PYQT_SOURCE = PyQt-x11-gpl-$(PYTHON_PYQT_VERSION).tar.gz
+PYTHON_PYQT_SITE =

http://downloads.sourceforge.net/project/pyqt/PyQt4/PyQt-$(PYTHON_PYQT_VERSION)

package/python-pyqt/python-pyqt.mk new file +19 -0
+PYTHON_PYQT_DEPENDENCIES = python-sip qt
+
+define PYTHON_PYQT_QTDETAIL
+    echo $(1) >> $(2)/qtdetail.out
+endef
+
+ifeq ($(BR2_PACKAGE_QT_LICENSE_APPROVED),y)
+    PYTHON_PYQT_QTDETAIL_LIC = "Open Source"
+else
+    PYTHON_PYQT_QTDETAIL_LIC = ""
+endif
+
+ifeq ($(BR2_PACKAGE_QT_SHARED),y)
+    PYTHON_PYQT_QTDETAIL_TYPE = "shared"
+else
+    PYTHON_PYQT_QTDETAIL_TYPE = ""
+endif
+
+# Turn off features that isn't availabe in QWS and current qt

configuration. +PYTHON_PYQT_QTDETAIL_DISABLE_FEATURES = PyQt_Accessibility PyQt_SessionManager \

package/python-pyqt/python-pyqt.mk new file +7 -0
+    PyQt_qreal_double PyQt_Shortcut PyQt_RawFont WS_MACX WS_WIN
+
+ifneq ($(BR2_PACKAGE_QT_OPENSSL),y)
+    PYTHON_PYQT_QTDETAIL_DISABLE_FEATURES += PyQt_OpenSSL
+endif
+
+# Since we can't run generate qtdetail.out by running qtdetail on target

device

package/python-pyqt/python-pyqt.mk new file +20 -0
+# we must generate the configuration.
+define PYTHON_PYQT_GENERATE_QTDETAIL
+    rm -f $(1)/qtdetail.out
+
+    $(call PYTHON_PYQT_QTDETAIL, $(PYTHON_PYQT_QTDETAIL_LIC), $(1))
+    $(call PYTHON_PYQT_QTDETAIL, $(PYTHON_PYQT_QTDETAIL_TYPE), $(1))
+
+    for i in $(PYTHON_PYQT_QTDETAIL_DISABLE_FEATURES); do \
+        $(call PYTHON_PYQT_QTDETAIL, $$i, $(1)); \
+    done
+endef
+
+define PYTHON_PYQT_CONFIGURE_CMDS
+    $(call PYTHON_PYQT_GENERATE_QTDETAIL, $(@D))
+
+    ( cd $(@D); \
+       $(TARGET_CONFIGURE_OPTS) \
+       $(HOST_DIR)/usr/bin/python configure-ng.py \
+               --bindir $(TARGET_DIR)/usr/bin \
+               --destdir

$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \
+ --vendorid-incdir
$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR) \
+ --vendorid-libdir
$(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/config \

package/python-pyqt/python-pyqt.mk new file +2 -0
+               --qmake $(HOST_DIR)/usr/bin/qmake \
+               --spec

$(BUILD_DIR)/qt-$(QT_VERSION)/mkspecs/qws/linux-$(QT_EMB_PLATFORM)-g++ \

package/python-pyqt/python-pyqt.mk new file +10 -0
+               -w --confirm-license \
+               --no-designer-plugin \
+               --no-docstrings \
+               --no-sip-files \
+    )
+endef
+
+define PYTHON_PYQT_INSTALL_TARGET_CMDS
+    $(TARGET_CONFIGURE_OPTS)  $(MAKE) install -C $(@D)
+    touch

$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages/PyQt4/__init__.py

package/python-pyqt/python-pyqt.mk line 72

Quoted 3 lines
package/python-pyqt/python-pyqt.mk new file +3 -0
+endef
+
+$(eval $(autotools-package))

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20140212/eee8a5fc/attachment.html>

#2 lore raw

PATCH 1/1 python-pyqt: new package

Quoted 2 lines · sergey kostanbaev

Any comments about my patches (python-sip and python-pyqt)? Is something wrong with them?

Hi Sergey,

Sorry for so much delay in looking at this. I tried out your patches today and have the following comments:

1. Your python-sip.mk builds both the sip executable and the sip library using the target compiler and installs both into $(TARGET_DIR). Since the sip executable is used to generate C++ code which must be compiled, it doesn't make sense to install the sip executable on the target. The library needs to go in $(TARGET_DIR) (and be built with the target compiler), and the sip executable needs to go in $(HOST_DIR) (and be built with the host compiler).

2. When building pyqt, if the sip executable is not installed on the host system, the build will fail, since it can't use the target-compiled sip executable built by the python-sip package (because of #1 above).

3. As you said in your email comments, you are generating the qtdetail.out file based on the buildroot configuration. This makes sense, but there is a case it isn't considering. If you don't select BR2_PACKAGE_QT_LICENSE_APPROVED from menuconfig, buildroot will prompt you to select a QT license from the console during the build. If you do it that way, BR2_PACKAGE_QT_LICENSE_APPROVED will _not_ get set, and then python-pyqt.mk will not generate a qtdetail.out that pyqt's configure-ng.py can properly parse, causing pyqt's configure-ng.py to fail with "Error: Qt has been built as static libraries so either the --consolidate or --static argument should be used." This error message, while seemingly unrelated, comes as a result of the way the configure-ng.py parses the qtdetail.out (by splitting the lines into an array and reading lines by hard-coded index, which fails when there is an empty line at the beginning).

4. After consulting with Thomas Petazzoni and Arnout Vandecappelle, we think the config item for python-sip (packages/Config.in) should go under "python external modules" instead of under Qt in the menu.

So I guess it comes down to:
1. Make sure it builds without sip being installed on the host system
2. Make sure it builds when "Approve Free License" (BR2_PACKAGE_QT_LICENSE_APPROVED) is not set in the configuration.

Thanks for the patch. This looks like it was a lot of work.

Alan.

#3 lore raw

PATCH 1/1 python-pyqt: new package

Quoted 10 lines · Alan Ott
Quoted 2 lines · sergey kostanbaev

Any comments about my patches (python-sip and python-pyqt)? Is something wrong with them?

So I guess it comes down to:
1. Make sure it builds without sip being installed on the host system
2. Make sure it builds when "Approve Free License" (BR2_PACKAGE_QT_LICENSE_APPROVED) is not set in the configuration.

Thanks for the patch. This looks like it was a lot of work.

Hi Sergey,

Just to be clear, the state of the patch has been changed to Changes Requested. Please consider the above changes and re-submit.

Alan.

#4 lore raw

PATCH 1/1 python-pyqt: new package

Hi Alan,

Thank you for the review. I need some time to recall everything and to update it :)

Best Regards,
Sergey

Quoted 16 lines · Alan Ott
Quoted 6 lines · Alan Ott
Quoted 3 lines · sergey kostanbaev

Any comments about my patches (python-sip and python-pyqt)? Is something wrong with them?

Quoted 7 lines

So I guess it comes down to:
1. Make sure it builds without sip being installed on the host system
2. Make sure it builds when "Approve Free License" (BR2_PACKAGE_QT_LICENSE_APPROVED) is not set in the configuration.

Thanks for the patch. This looks like it was a lot of work.

Quoted 8 lines

Hi Sergey,

Just to be clear, the state of the patch has been changed to Changes Requested. Please consider the above changes and re-submit.

Alan.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20141014/cfd6e356/attachment.html>