| Summary: | Build issue: kstreamripper FTBFS | ||
|---|---|---|---|
| Product: | TDE | Reporter: | Darrell <darrella> |
| Component: | other (any) | Assignee: | Timothy Pearson <kb9vqf> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | bugwatch, darrella, slavek.banko |
| Priority: | P1 | ||
| Version: | R14.0.0 [Trinity] | ||
| Hardware: | Other | ||
| OS: | Other | ||
| Compiler Version: | TDE Version String: | ||
| Application Version: | Application Name: | ||
| Attachments: |
Starter patch to build kstreamripper
Updated patch to build kstreamripper |
||
|
Description
Darrell
2012-03-27 19:52:39 CDT
Created attachment 511 [details]
Starter patch to build kstreamripper
This is a starter patch to build kstreamripper. The patch gets past the initial configuration issues, but the build still fails at the following:
g++ -I/opt/trinity/include/ -I/usr/include/tqt -O2 -DNDEBUG -DNO_DEBUG -DQT_NO_TRANSLATION -Isrc -I. -c -o src/addnewstreamimpl.o src/addnewstreamimpl.cpp
/opt/trinity/bin/moc -o src/addnewstreamimpl_moc.cpp src/addnewstreamimpl.h
src/addnewstreamimpl.h:46: Error: The declaration of the class "AddNewStreamImpl" contains signals or slots
but no TQ_OBJECT macro.
scons: *** [src/addnewstreamimpl_moc.cpp] Error 1
scons: building terminated because of errors.
By the way, this is the same type of failure reported in bug report 920 for avahi-tqt. If we resolve one we probably resolve both. :) Created attachment 521 [details]
Updated patch to build kstreamripper
An updated patch to get past the TQ_OBJECT errors. The package still does not build, with the following errors:
addnewstreamimpl.cpp:(.text+0x3b): undefined reference to `vtable for AddNewStreamImpl'
addnewstreamimpl.cpp:(.text+0x42): undefined reference to `vtable for AddNewStreamImpl'
addnewstreamimpl.cpp:(.text+0x5b): undefined reference to `vtable for AddNewStreamImpl'
addnewstreamimpl.cpp:(.text+0x62): undefined reference to `vtable for AddNewStreamImpl'
addnewstreamimpl.cpp:(.text+0x8c): undefined reference to `vtable for AddNewStreamImpl'
addnewstreamimpl.cpp:(.text+0x2a6): undefined reference to `AddNewStreamImpl::finished(AddNewStreamImpl*)'
kstreamripper.cpp:(.text+0x1bc): undefined reference to `vtable for KStreamRipper'
kstreamripper.cpp:(.text+0x1c3): undefined reference to `vtable for KStreamRipper'
kstreamripper.cpp:(.text+0x22c): undefined reference to `vtable for KStreamRipper'
kstreamripper.cpp:(.text+0x233): undefined reference to `vtable for KStreamRipper'
kstreamripper.cpp:(.text+0x27c): undefined reference to `vtable for KStreamRipper'
processcontroller.cpp:(.text+0x14a): undefined reference to `vtable for ProcessController'
processcontroller.cpp:(.text+0x24a): undefined reference to `vtable for ProcessController'
processcontroller.cpp:(.text+0x33a): undefined reference to `vtable for ProcessController'
processcontroller.cpp:(.text+0x41a): undefined reference to `vtable for ProcessController'
processcontroller.cpp:(.text+0x4fa): undefined reference to `vtable for ProcessController'
processlistviewitem.cpp:(.text+0x2c): undefined reference to `vtable for ProcessListViewItem'
processlistviewitem.cpp:(.text+0x33): undefined reference to `vtable for ProcessListViewItem'
processlistviewitem.cpp:(.text+0x7c): undefined reference to `vtable for ProcessListViewItem'
processlistviewitem.cpp:(.text+0x83): undefined reference to `vtable for ProcessListViewItem'
processlistviewitem.cpp:(.text+0xdc): undefined reference to `vtable for ProcessListViewItem'
I think I now have it working as well as it did originally, which was not all that well as scons is a rather horrid system. ;-) Committed to GIT hash 8f11ba7. Still can't build. :-(
I tried to debug the build output but to no avail. I don't know where the "cp" and "sed" error messages are being derived. Here is the relevant portion of the build output:
scons: warning: The Options class is deprecated; use the Variables class instead.
File "/dev/shm/kstreamripper/admin/generic.py", line 61, in generate
[?1034hChecking for tde-config : [92mtde-config was found as /opt/trinity/bin/tde-config
Checking for tde version : [92mR14.0.0[0m
Checking for the qt library : [92mqt is in /opt/trinity[0m
Checking for uic-tqt : [1muic-tqt was found as /usr/bin/uic-tqt[0m
Checking for moc : [92mmoc was found as /opt/trinity/bin/moc[0m
Checking for the qt includes : [1mthe qt headers were found in /usr/include/tqt/ [0m
Checking for the tde includes : [92mok /opt/trinity/include/[0m
scons: warning: The env.Copy() method is deprecated; use the env.Clone() method instead.
File "/dev/shm/kstreamripper/src/SConscript", line 17, in <module>
meinproc --check --cache doc/en/index.cache.bz2 doc/en/index.docbook
/usr/bin/uic-tqt -L /opt/trinity/lib/trinity/plugins -nounload -o src/addnewstream.h src/addnewstream.ui
rm -f src/addnewstream.cpp
echo '#include <klocale.h>' >> src/addnewstream.cpp
echo '#include <kdialog.h>' >> src/addnewstream.cpp
/usr/bin/uic-tqt -L /opt/trinity/lib/trinity/plugins -nounload -tr tr2i18n -impl src/addnewstream.h -o src/addnewstream.cpp.tmp src/addnewstream.ui
cat src/addnewstream.cpp.tmp >> src/addnewstream.cpp
rm -f src/addnewstream.cpp.tmp
echo '#include "addnewstream.moc"' >> src/addnewstream.cpp
moc-tqt /opt/trinity/bin/moc -o src/addnewstream.moc src/addnewstream.h
cp: invalid option -- 'o'
Try `cp --help' for more information.
sed: invalid option -- 'o'
Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]...
[sed help spewage, repeated several times...]
moc: src/addnewstream.moc: No such file
cp: invalid option -- 'o'
Try `cp --help' for more information.
rm: invalid option -- 'o'
Try `rm --help' for more information.
scons: *** [src/addnewstream.h] Error 1
make: *** [all] Error 2
(In reply to comment #5) > Still can't build. :-( > > I tried to debug the build output but to no avail. I don't know where the "cp" > and "sed" error messages are being derived. From moc-tqt. It almost looks like the argument ordering may be wrong. I'm not a Python/Scons guru, so this may or may not actually be fixed for R14.0. I suspect this package will need to be ported to CMake before the problem is reliably fixed. This is not a critical application, so I'm bumping the priority down to normal with a suggestion that the package be ported to CMake. I'm fine with that. I run streamripper from konsole and don't need the kstreamripper front-end. I was trying to build kstreamripper merely to help with ensuring all project packages build. :-) This can be a post R14 project. Thanks for trying! It compiles for me as of GIT hash a9b1841, but requires TQt3. If it works for you as well, and this limitation is acceptable, go ahead and close this report. I can compile. Good job! But Woof! I needed an hour or so to figure out how to refine the build script to make a package because make install does not work. Basically a bunch of mkdir and cp commands. Then the default package installs to the Utilities menu. Ugh. I'll upload a patch to install to the Multimedia menu, add an icon for the menu, and a description (GenericName). This is one unorthodox package. Resolved! This is one stubborn package. Builds fine on 32-bit but fails to build on 64-bit. Build output:
[92mA minimum scons distribution has been unpacked right here
[92myou can now run : [0m
[1m./scons[0m
[1m./scons install[0m (as root probably)
/var/tmp/kstreamripper/scons-local-0.96.1/SCons/Sig/MD5.py:5: DeprecationWarning: the md5 module is deprecated; use hashlib instead
md5=imp.load_module('md5', file, name, desc)
scons: Reading SConscript files ...
/var/tmp/kstreamripper/scons-local-0.96.1/SCons/Platform/posix.py:3: DeprecationWarning: The popen2 module is deprecated. Use the subprocess module.
import popen2
Checking for tde-config : [92mtde-config was found as /opt/trinity/bin/tde-config[0m
Checking for tde version : [92mR14.0.0[0m
Checking for the qt library : [92mqt is in /opt/trinity[0m
Checking for uic-tqt : [1muic-tqt was found as /usr/bin/uic-tqt[0m
Checking for moc : [92mmoc was found as /opt/trinity/bin/moc[0m
Checking for the tqt includes : [1mthe qt headers were found in /usr/include/tqt/ [0m
Checking for the qt includes : [92mok /opt/trinity/include/ [0m
Checking for the tde includes : [92mok /opt/trinity/include/[0m
scons: done reading SConscript files.
scons: Building targets ...
meinproc --check --cache doc/en/index.cache.bz2 doc/en/index.docbook
/usr/bin/uic-tqt -L /opt/trinity/lib64/trinity/plugins -nounload -o src/addnewstream.h src/addnewstream.ui
rm -f src/addnewstream.cpp
echo '#include <klocale.h>' >> src/addnewstream.cpp
echo '#include <kdialog.h>' >> src/addnewstream.cpp
/usr/bin/uic-tqt -L /opt/trinity/lib64/trinity/plugins -nounload -tr tr2i18n -impl src/addnewstream.h -o src/addnewstream.cpp.tmp src/addnewstream.ui
cat src/addnewstream.cpp.tmp >> src/addnewstream.cpp
rm -f src/addnewstream.cpp.tmp
echo '#include "addnewstream.moc"' >> src/addnewstream.cpp
moc-tqt /opt/trinity/bin/moc src/addnewstream.h src/addnewstream.moc
g++ -I/opt/trinity/include/ -I/opt/trinity/include/ -I/usr/include/tqt -include tqt.h -O2 -DNDEBUG -DNO_DEBUG -DQT_NO_TRANSLATION -Isrc -I. -c -o src/addnewstream.o src/addnewstream.cpp
g++ -I/opt/trinity/include/ -I/opt/trinity/include/ -I/usr/include/tqt -include tqt.h -O2 -DNDEBUG -DNO_DEBUG -DQT_NO_TRANSLATION -Isrc -I. -c -o src/addnewstreamimpl.o src/addnewstreamimpl.cpp
moc-tqt /opt/trinity/bin/moc src/addnewstreamimpl.h src/addnewstreamimpl_moc.cpp
g++ -I/opt/trinity/include/ -I/opt/trinity/include/ -I/usr/include/tqt -include tqt.h -O2 -DNDEBUG -DNO_DEBUG -DQT_NO_TRANSLATION -Isrc -I. -c -o src/addnewstreamimpl_moc.o src/addnewstreamimpl_moc.cpp
/usr/bin/uic-tqt -L /opt/trinity/lib64/trinity/plugins -nounload -o src/kstreamripperbase.h src/kstreamripperbase.ui
rm -f src/kstreamripperbase.cpp
echo '#include <klocale.h>' >> src/kstreamripperbase.cpp
echo '#include <kdialog.h>' >> src/kstreamripperbase.cpp
/usr/bin/uic-tqt -L /opt/trinity/lib64/trinity/plugins -nounload -tr tr2i18n -impl src/kstreamripperbase.h -o src/kstreamripperbase.cpp.tmp src/kstreamripperbase.ui
cat src/kstreamripperbase.cpp.tmp >> src/kstreamripperbase.cpp
rm -f src/kstreamripperbase.cpp.tmp
echo '#include "kstreamripperbase.moc"' >> src/kstreamripperbase.cpp
moc-tqt /opt/trinity/bin/moc src/kstreamripperbase.h src/kstreamripperbase.moc
g++ -I/opt/trinity/include/ -I/opt/trinity/include/ -I/usr/include/tqt -include tqt.h -O2 -DNDEBUG -DNO_DEBUG -DQT_NO_TRANSLATION -Isrc -I. -c -o src/kstreamripperbase.o src/kstreamripperbase.cpp
g++ -I/opt/trinity/include/ -I/opt/trinity/include/ -I/usr/include/tqt -include tqt.h -O2 -DNDEBUG -DNO_DEBUG -DQT_NO_TRANSLATION -Isrc -I. -c -o src/kstreamripper.o src/kstreamripper.cpp
g++ -I/opt/trinity/include/ -I/opt/trinity/include/ -I/usr/include/tqt -include tqt.h -O2 -DNDEBUG -DNO_DEBUG -DQT_NO_TRANSLATION -Isrc -I. -c -o src/main.o src/main.cpp
g++ -I/opt/trinity/include/ -I/opt/trinity/include/ -I/usr/include/tqt -include tqt.h -O2 -DNDEBUG -DNO_DEBUG -DQT_NO_TRANSLATION -Isrc -I. -c -o src/processcontroller.o src/processcontroller.cpp
g++ -I/opt/trinity/include/ -I/opt/trinity/include/ -I/usr/include/tqt -include tqt.h -O2 -DNDEBUG -DNO_DEBUG -DQT_NO_TRANSLATION -Isrc -I. -c -o src/processlistviewitem.o src/processlistviewitem.cpp
moc-tqt /opt/trinity/bin/moc src/kstreamripper.h src/kstreamripper_moc.cpp
g++ -I/opt/trinity/include/ -I/opt/trinity/include/ -I/usr/include/tqt -include tqt.h -O2 -DNDEBUG -DNO_DEBUG -DQT_NO_TRANSLATION -Isrc -I. -c -o src/kstreamripper_moc.o src/kstreamripper_moc.cpp
moc-tqt /opt/trinity/bin/moc src/processcontroller.h src/processcontroller_moc.cpp
g++ -I/opt/trinity/include/ -I/opt/trinity/include/ -I/usr/include/tqt -include tqt.h -O2 -DNDEBUG -DNO_DEBUG -DQT_NO_TRANSLATION -Isrc -I. -c -o src/processcontroller_moc.o src/processcontroller_moc.cpp
moc-tqt /opt/trinity/bin/moc src/processlistviewitem.h src/processlistviewitem_moc.cpp
g++ -I/opt/trinity/include/ -I/opt/trinity/include/ -I/usr/include/tqt -include tqt.h -O2 -DNDEBUG -DNO_DEBUG -DQT_NO_TRANSLATION -Isrc -I. -c -o src/processlistviewitem_moc.o src/processlistviewitem_moc.cpp
g++ -o src/kstreamripper src/addnewstreamimpl.o src/addnewstream.o src/kstreamripperbase.o src/kstreamripper.o src/main.o src/processcontroller.o src/processlistviewitem.o src/addnewstreamimpl_moc.o src/kstreamripper_moc.o src/processcontroller_moc.o src/processlistviewitem_moc.o -L/opt/trinity/lib64 -L/opt/trinity/lib -ltqt-mt -ltqt -lkio -ltdeui -lkdnssd
scons: done building targets.
./scons -Q
/var/tmp/kstreamripper/scons-local-0.96.1/SCons/Sig/MD5.py:5: DeprecationWarning: the md5 module is deprecated; use hashlib instead
md5=imp.load_module('md5', file, name, desc)
/var/tmp/kstreamripper/scons-local-0.96.1/SCons/Platform/posix.py:3: DeprecationWarning: The popen2 module is deprecated. Use the subprocess module.
import popen2
<type 'exceptions.KeyError'>: 'TQTINCLUDEPATH':
File "SConstruct", line 70:
env = Environment(TARGS=COMMAND_LINE_TARGETS, ARGS=ARGUMENTS, tools=['default', 'generic', 'kde'], toolpath=['./', './admin'])
File "/var/tmp/kstreamripper/scons-local-0.96.1/SCons/Environment.py", line 136:
apply_tools(self, tools, toolpath)
File "/var/tmp/kstreamripper/scons-local-0.96.1/SCons/Environment.py", line 62:
env.Tool(tool, toolpath)
File "/var/tmp/kstreamripper/scons-local-0.96.1/SCons/Environment.py", line 534:
return SCons.Tool.Tool(tool, map(self.subst, toolpath))(self)
File "/var/tmp/kstreamripper/scons-local-0.96.1/SCons/Tool/__init__.py", line 10:
apply(self.generate, ( env, ) + args, kw)
File "./kde.py", line 458:
env.Append(CXXFLAGS = ['-I'+env['KDEINCLUDEPATH'], '-I'+env['QTINCLUDEPATH'], '-I'+env['TQTINCLUDEPATH'], '-include', 'tqt.h' ])
File "/var/tmp/kstreamripper/scons-local-0.96.1/SCons/Environment.py", line 147:
return self._dict[key]
make: *** [all] Error 2
The previously reported failure is not a 64-bit problem. I receive the same failure with Slackware 13.37 32-bit. For R14 fixed in GIT hash 118d0454 Patches 8f11ba72, a9b1841c and 118d0454 adapted also for v3.5.13-sru and FTBFS is also fixed. |