I have looked at your SlackBuild and I am building with:
Make sure you download the latest. The latest includes the changes discussed.
CFLAGS="${CFLAGS} -I/usr/include/tqt -I${TDEDIR}/include - I${QTDIR}/include -fpermissive" \ CXXFLAGS="${CXXFLAGS} -I/usr/include/tqt -I${TDEDIR}/include -I${QTDIR}/include -fpermissive" \ echo yes | python2 configure.py \ -d "${PY2LIB}/sip4_tqt" \ -y tqt-mt \ -v /usr/share/sip/tqt
I install sip4-tqt and python-tqt (and everything else except tqtinterface) to $PREFIX=/opt/trinity.
Rebuild sip4-tqt before rebuilding python-tqt.
My current python-tqt configuration:
if [ "$PREFIX" = "/usr" ]; then FLAGS="$CPUOPT -L${PREFIX}/lib${LIBDIRSUFFIX} -I/usr/include/tqt - I/${QTDIR}/include -I${PREFIX}/include" else FLAGS="$CPUOPT -L${PREFIX}/lib${LIBDIRSUFFIX} -I/usr/include/tqt - I/${QTDIR}/include -I${PREFIX}/include -I/usr/include" fi
echo "yes" | python configure.py \ -b "${PREFIX}/bin" \ -d "$PYTHONLIB/python_tqt" \ -q "$PREFIX" \ -y tqt-mt \ -o /usr/lib${LIBDIRSUFFIX} \ -v /usr/share/sip/tqt \ -u \ CFLAGS="$FLAGS" \ CXXFLAGS="$FLAGS"
As I build to /opt/trinity, visually substitute /opt/trinity with $PREFIX and you'll see you are building to /usr (the old build script before the recent patches). The two package configurations have to be updated similarly otherwise python-tqt can't find sip4- tqt files.
What has changed? This used to build flawlessly?
The two packages are now built as modules and a presumption with that is the two packages no longer conflict with upstream distro packages. Thus, /opt/trinity/bin/sip no longer overwrites the distro /usr/bin/sip. Likewise with python-tqt. The module portions of the packages do not overwrite anything because they are installed to their own subdirectories.
A side comment: why are you using -fpermissive? I don't use that in any build scripts.
Darrell
On 02/08/2014 04:27 PM, Darrell Anderson wrote:
I have looked at your SlackBuild and I am building with:
Make sure you download the latest. The latest includes the changes discussed.
CFLAGS="${CFLAGS} -I/usr/include/tqt -I${TDEDIR}/include - I${QTDIR}/include -fpermissive" \ CXXFLAGS="${CXXFLAGS} -I/usr/include/tqt -I${TDEDIR}/include -I${QTDIR}/include -fpermissive" \ echo yes | python2 configure.py \ -d "${PY2LIB}/sip4_tqt" \ -y tqt-mt \ -v /usr/share/sip/tqt
I install sip4-tqt and python-tqt (and everything else except tqtinterface) to $PREFIX=/opt/trinity.
Rebuild sip4-tqt before rebuilding python-tqt.
My current python-tqt configuration:
if [ "$PREFIX" = "/usr" ]; then FLAGS="$CPUOPT -L${PREFIX}/lib${LIBDIRSUFFIX} -I/usr/include/tqt - I/${QTDIR}/include -I${PREFIX}/include" else FLAGS="$CPUOPT -L${PREFIX}/lib${LIBDIRSUFFIX} -I/usr/include/tqt - I/${QTDIR}/include -I${PREFIX}/include -I/usr/include" fi
echo "yes" | python configure.py \ -b "${PREFIX}/bin" \ -d "$PYTHONLIB/python_tqt" \ -q "$PREFIX" \ -y tqt-mt \ -o /usr/lib${LIBDIRSUFFIX} \ -v /usr/share/sip/tqt \ -u \ CFLAGS="$FLAGS" \ CXXFLAGS="$FLAGS"
As I build to /opt/trinity, visually substitute /opt/trinity with $PREFIX and you'll see you are building to /usr (the old build script before the recent patches). The two package configurations have to be updated similarly otherwise python-tqt can't find sip4- tqt files.
What has changed? This used to build flawlessly?
The two packages are now built as modules and a presumption with that is the two packages no longer conflict with upstream distro packages. Thus, /opt/trinity/bin/sip no longer overwrites the distro /usr/bin/sip. Likewise with python-tqt. The module portions of the packages do not overwrite anything because they are installed to their own subdirectories.
A side comment: why are you using -fpermissive? I don't use that in any build scripts.
Darrell
To unsubscribe, e-mail: trinity-devel-unsubscribe@lists.pearsoncomputing.net For additional commands, e-mail: trinity-devel-help@lists.pearsoncomputing.net Read list messages on the web archive: http://trinity-devel.pearsoncomputing.net/ Please remember not to top-post: http://trinity.pearsoncomputing.net/mailing_lists/#top-posting
Which sip do we want, the python sip or the python2 sip? I have been installing the python sip in /usr/bin and it has worked fine. tde-sip was a direct replacement for upstream sip in that regard. I have simply been removing python2 sip as it was unneeded. I have includes for both python and python2, so leaving the includes in the default locations make sense - that shouldn't crater the build.
But, which sip should go in /opt/trinity/bin? I can put the python2 sip in /opt/trinity/bin and python sip in /usr/bin if that will work?
On 02/08/2014 04:43 PM, David C. Rankin wrote:
On 02/08/2014 04:27 PM, Darrell Anderson wrote:
I have looked at your SlackBuild and I am building with:
Make sure you download the latest. The latest includes the changes discussed.
CFLAGS="${CFLAGS} -I/usr/include/tqt -I${TDEDIR}/include - I${QTDIR}/include -fpermissive" \ CXXFLAGS="${CXXFLAGS} -I/usr/include/tqt -I${TDEDIR}/include -I${QTDIR}/include -fpermissive" \ echo yes | python2 configure.py \ -d "${PY2LIB}/sip4_tqt" \ -y tqt-mt \ -v /usr/share/sip/tqt
I install sip4-tqt and python-tqt (and everything else except tqtinterface) to $PREFIX=/opt/trinity.
Rebuild sip4-tqt before rebuilding python-tqt.
My current python-tqt configuration:
if [ "$PREFIX" = "/usr" ]; then FLAGS="$CPUOPT -L${PREFIX}/lib${LIBDIRSUFFIX} -I/usr/include/tqt - I/${QTDIR}/include -I${PREFIX}/include" else FLAGS="$CPUOPT -L${PREFIX}/lib${LIBDIRSUFFIX} -I/usr/include/tqt - I/${QTDIR}/include -I${PREFIX}/include -I/usr/include" fi
echo "yes" | python configure.py \ -b "${PREFIX}/bin" \ -d "$PYTHONLIB/python_tqt" \ -q "$PREFIX" \ -y tqt-mt \ -o /usr/lib${LIBDIRSUFFIX} \ -v /usr/share/sip/tqt \ -u \ CFLAGS="$FLAGS" \ CXXFLAGS="$FLAGS"
As I build to /opt/trinity, visually substitute /opt/trinity with $PREFIX and you'll see you are building to /usr (the old build script before the recent patches). The two package configurations have to be updated similarly otherwise python-tqt can't find sip4- tqt files.
What has changed? This used to build flawlessly?
The two packages are now built as modules and a presumption with that is the two packages no longer conflict with upstream distro packages. Thus, /opt/trinity/bin/sip no longer overwrites the distro /usr/bin/sip. Likewise with python-tqt. The module portions of the packages do not overwrite anything because they are installed to their own subdirectories.
A side comment: why are you using -fpermissive? I don't use that in any build scripts.
Darrell
Which sip do we want, the python sip or the python2 sip? I have been installing the python sip in /usr/bin and it has worked fine. tde-sip was a direct replacement for upstream sip in that regard. I have simply been removing python2 sip as it was unneeded. I have includes for both python and python2, so leaving the includes in the default locations make sense - that shouldn't crater the build.
But, which sip should go in /opt/trinity/bin? I can put the python2 sip in /opt/trinity/bin and python sip in /usr/bin if that will work?
It doesn't matter what I try, it fails at the same place:
Error: Unable to build mkfeatures utility. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This is the GPL version of PyTQt 3.18.1 (licensed under the GNU General Public License) for Python 2.7.6 on linux2.
Type 'L' to view the license. Type 'yes' to accept the terms of the license. Type 'no' to decline the terms of the license.
Do you accept the terms of the license? TQScintilla 1.7.1 is being used. Checking to see if the qtcanvas module should be built... Checking to see if the qtnetwork module should be built... Checking to see if the qttable module should be built... Checking to see if the qtxml module should be built... Checking to see if the qtgl module should be built... Checking to see if the qtui module should be built... Checking to see if the qtsql module should be built... Checking to see if the qtext module should be built... Checking to see if the TQAssistantClient class is available... Creating features file...
What is the 'mkfeatures' utility and why does it crater now after Bug 1790 changes?
I am building with:
CFLAGS="${CFLAGS} -L${TDEDIR}/lib -I/usr/include/tqt -I${TDEDIR}/include -I${QTDIR}/include" \ CXXFLAGS="${CXXFLAGS} -L${TDEDIR}/lib -I/usr/include/tqt -I${TDEDIR}/include -I${QTDIR}/include" \ echo yes | python2 configure.py \ -b "${TDEDIR}/bin" \ -d "${PY2LIB}/python_tqt" \ -q "${QTDIR}" \ -y tqt-mt \ -v /usr/share/sip/tqt
Although I can build with:
echo yes | python2 configure.py
and I get the same failure:
I am building with todays source and I have rebuild tde-sip4-tqt. It now installs as follows:
python-sip:
/usr/bin/sip /usr/include/python3.3m/sip.h /usr/lib/python3.3/site-packages/sip4_tqt/__init__.py /usr/lib/python3.3/site-packages/sip4_tqt/sip.so /usr/lib/python3.3/site-packages/sip4_tqt/sipconfig.py /usr/lib/python3.3/site-packages/sip4_tqt/sipdistutils.py /usr/share/licenses/tde-sip/LICENSE
sip4_tqt (python2-sip):
/opt/trinity/bin/sip /usr/include/python2.7/sip.h /usr/lib/python2.7/site-packages/sip4_tqt/__init__.py /usr/lib/python2.7/site-packages/sip4_tqt/sip.so /usr/lib/python2.7/site-packages/sip4_tqt/sipconfig.py /usr/lib/python2.7/site-packages/sip4_tqt/sipdistutils.py /usr/share/licenses/tde-sip4-tqt/LICENSE
I do not speak python well - to me it is a snake. How do I find out what is causing:
Error: Unable to build mkfeatures utility. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
and how to fix?
On Sat, 08 Feb 2014 17:21:39 -0600 "David C. Rankin" drankinatty@suddenlinkmail.com wrote:
I do not speak python well - to me it is a snake.
Clearly we need a mongoose. ;)
How do I find out what is causing:
Error: Unable to build mkfeatures utility. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
and how to fix?
Start here, maybe? http://bytes.com/topic/python/answers/555366-pyqt-x11-gpl-3-16-compile-error
Not likely to be the same problem, but it does indicate that "-w" is the verbose switch for configure.py.
The fragment that actually leads up to the test is this (or similar--not sure it's the most current version, since I grabbed it randomly off Google):
--------------------------------------------
# Generate the program which will generate the features file. f = open("mkfeatures.cpp", "w")
f.write( """#include <Python.h> #include <stdio.h> #include <qglobal.h> #include <qapplication.h>
int main(int argc,char **argv) { FILE *fp; QApplication app(argc,argv,0);
if ((fp = fopen("%s","w")) == NULL) { printf("Unable to create '%s'\n"); return 1; }
#if !defined(WITH_THREAD) || !defined(QT_THREAD_SUPPORT) fprintf(fp,"-x Qt_THREAD_SUPPORT\n"); #endif
#if !defined(Q_WS_WIN) || QT_VERSION < 0x030000 || defined(QT_NO_STYLE_WINDOWSXP) fprintf(fp,"-x Qt_STYLE_WINDOWSXP\n"); #endif
#if defined(Q_OS_WIN64) fprintf(fp,"-x Qt_Q_LONG_IS_long\n"); #endif """ % (name, name))
for feat in flist: f.write( """ #if defined(QT_NO_%s) fprintf(fp,"-x Qt_%s\n"); #endif """ % (feat, feat))
# Disable QAssistantClient for the Professional Edition. if "QAssistantClient" in disabled_classes: f.write( """ fprintf(fp,"-x Qt_ASSISTANTCLIENT\n"); """)
f.write( """ fclose(fp);
return 0; } """)
f.close()
# Build the program. exe = compile_qt_program("mkfeatures.cpp", include_dir=sipcfg.py_inc_dir, python=1) if not exe: sipconfig.error("Unable to build mkfeatures utility.")
---------------------------------------------------
So either the mkfeatures.cpp it's writing is malformed, or the includes are screwed up. That -w switch should tell us which.
E. Liddell
On 02/08/2014 05:42 PM, E. Liddell wrote:
f.close() # Build the program. exe = compile_qt_program("mkfeatures.cpp", include_dir=sipcfg.py_inc_dir, python=1) if not exe: sipconfig.error("Unable to build mkfeatures utility.")
So either the mkfeatures.cpp it's writing is malformed, or the includes are screwed up. That -w switch should tell us which.
E,
I tracked that code to line 752 in configure.py:
# Build the program. exe = compile_qt_program("mkfeatures.cpp", include_dir=sipcfg.py_inc_dir, python=1) if not exe: sipconfig.error("Unable to build mkfeatures utility.")
mkfeatures.cpp looks good as well, I've attached it.
With the magic '-w' flag, I believe we have now found evidence of the reason behind the failure:
cfgtest.cpp:1:21: fatal error: qcanvas.h: No such file or directory #include <qcanvas.h> ^ compilation terminated. cfgtest.cpp:1:21: fatal error: qsocket.h: No such file or directory #include <qsocket.h> ^ compilation terminated. cfgtest.cpp:1:20: fatal error: qtable.h: No such file or directory #include <qtable.h> ^ compilation terminated. cfgtest.cpp:1:18: fatal error: qdom.h: No such file or directory #include <qdom.h> ^ compilation terminated. cfgtest.cpp:1:17: fatal error: qgl.h: No such file or directory #include <qgl.h> ^ compilation terminated. cfgtest.cpp:1:28: fatal error: qwidgetfactory.h: No such file or directory #include <qwidgetfactory.h> ^ compilation terminated. cfgtest.cpp:1:18: fatal error: qsql.h: No such file or directory #include <qsql.h> ^ compilation terminated. In file included from cfgtest.cpp:1:0: /opt/tqt3/include/qextscintillabase.h:27:22: fatal error: tqobject.h: No such file or directory #include <tqobject.h> ^ compilation terminated. cfgtest.cpp:1:33: fatal error: ntqextscintillabase.h: No such file or directory #include <ntqextscintillabase.h> ^ compilation terminated. cfgtest.cpp:1:30: fatal error: qassistantclient.h: No such file or directory #include <qassistantclient.h> ^ compilation terminated. /usr/bin/ld: cannot find -lqassistantclient collect2: error: ld returned 1 exit status mkfeatures.cpp:3:22: fatal error: tqglobal.h: No such file or directory #include <tqglobal.h> ^ compilation terminated. Error: Unable to build mkfeatures utility.
Pretty obvious, it is looking for qcanvas.h, etc.. instead of tqcanvas.h which is in usr/include/tqt/tqcanvas.h.
It can't find usr/include/tqt/tqobject.h. WTF?
Why is the 't' not in present in build configuration files for python-tqt and why isn't is seeing the installed headers? The following includes should take care of it:
CFLAGS="${CFLAGS} -L${TDEDIR}/lib -I/usr/include/tqt -I${TDEDIR}/include -I${QTDIR}/include" \ CXXFLAGS="${CXXFLAGS} -L${TDEDIR}/lib -I/usr/include/tqt -I${TDEDIR}/include -I${QTDIR}/include" \
Other than providing CFLAGS/CXXFLAGS, I have no way of controlling that part of the python-tqt setup - do I? How to fix?
On Sat, 08 Feb 2014 18:12:43 -0600 "David C. Rankin" drankinatty@suddenlinkmail.com wrote:
E,
I tracked that code to line 752 in configure.py:
# Build the program. exe = compile_qt_program("mkfeatures.cpp", include_dir=sipcfg.py_inc_dir,
python=1) if not exe: sipconfig.error("Unable to build mkfeatures utility.")
mkfeatures.cpp looks good as well, I've attached it.
With the magic '-w' flag, I believe we have now found evidence of the reason behind the failure:
cfgtest.cpp:1:21: fatal error: qcanvas.h: No such file or directory #include <qcanvas.h> ^
[...]
Pretty obvious, it is looking for qcanvas.h, etc.. instead of tqcanvas.h which is in usr/include/tqt/tqcanvas.h.
It can't find usr/include/tqt/tqobject.h. WTF?
Why is the 't' not in present in build configuration files for python-tqt and why isn't is seeing the installed headers? The following includes should take care of it:
CFLAGS="${CFLAGS} -L${TDEDIR}/lib -I/usr/include/tqt -I${TDEDIR}/include -I${QTDIR}/include" \ CXXFLAGS="${CXXFLAGS} -L${TDEDIR}/lib -I/usr/include/tqt -I${TDEDIR}/include -I${QTDIR}/include" \
Other than providing CFLAGS/CXXFLAGS, I have no way of controlling that part of the python-tqt setup - do I? How to fix?
I'm not an expert on serpentine build systems either, alas--just providing what guesses I can since everyone else seems to be equally Python-challenged. The errors now bubbling up seem to be coming from cfgtest.cpp. It's written by another section of that script, by the check_class function (" def check_class . . .") It's called in turn by check_module and check_plugin. Some of the arguments passed to those functions are class names and include directories. Are all the calls to those looking for tq* and not q*? The Python script seems to have its own include directory tracking, and I'm not sure how well it's integrated with CMake.
However, if this was building before, the problem may well be at the CMake end. Something isn't getting passed through. The significant options for configure.py seem to be: -g dir where the Qt qconfig.h file can be found [default Qt include directory] -l dir the directory containing the VendorID header file -m dir the directory containing the VendorID library -n dir the directory containing the QScintilla header files [default Qt include directory] -o dir the directory containing the QScintilla library [default Qt lib directory] -q dir the root directory of the Qt installation
Running "python configure.py -h" should give a more up-to-date version of that with the defaults for -l, -m, -q properly indicated. You're setting some of those, but not all, IIRC.
E. Liddell