[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