[Buildroot] [PATCH] python-pyqt: new package

Alan Ott alan at signal11.us
Sun Oct 12 15:22:53 UTC 2014


On 02/12/2014 02:04 PM, sergey kostanbaev wrote:
> 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.



More information about the buildroot mailing list