By default, Bugzilla does not search the list of RESOLVED bugs.
You can force it to do so by putting the upper-case word ALL in front of your search query, e.g.: ALL tdelibs
We recommend searching for bugs this way, as you may discover that your bug has already been resolved and fixed in a later release.
Bug 946 - Build issue: kstreamripper FTBFS
Summary: Build issue: kstreamripper FTBFS
Status: RESOLVED FIXED
Alias: None
Product: TDE
Classification: Unclassified
Component: other (any) (show other bugs)
Version: R14.0.0 [Trinity]
Hardware: Other Other
: P1 normal
Assignee: Timothy Pearson
URL:
Depends on:
Blocks:
 
Reported: 2012-03-27 19:52 CDT by Darrell
Modified: 2012-10-19 15:57 CDT (History)
3 users (show)

See Also:
Compiler Version:
TDE Version String:
Application Version:
Application Name:


Attachments
Starter patch to build kstreamripper (2.97 KB, patch)
2012-03-30 20:28 CDT, Darrell
Details | Diff
Updated patch to build kstreamripper (4.43 KB, patch)
2012-04-06 16:05 CDT, Darrell
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Darrell 2012-03-27 19:52:39 CDT
The kde.py script is broken. The script can't parse the TDE version or find the TQt header files.
Comment 1 Darrell 2012-03-30 20:28:23 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.
Comment 2 Darrell 2012-03-30 20:29:19 CDT
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. :)
Comment 3 Darrell 2012-04-06 16:05:16 CDT
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'
Comment 4 Timothy Pearson 2012-06-09 14:43:16 CDT
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.
Comment 5 Darrell 2012-06-11 15:51:18 CDT
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
Comment 6 Timothy Pearson 2012-06-11 16:02:56 CDT
(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.
Comment 7 Darrell 2012-06-11 16:09:18 CDT
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!
Comment 8 Timothy Pearson 2012-06-11 17:09:46 CDT
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.
Comment 9 Darrell 2012-06-11 19:00:02 CDT
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!
Comment 10 Darrell 2012-06-17 15:45:04 CDT
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
Comment 11 Darrell 2012-06-23 17:41:12 CDT
The previously reported failure is not a 64-bit problem. I receive the same failure with Slackware 13.37 32-bit.
Comment 12 Slávek Banko 2012-08-29 16:26:49 CDT
For R14 fixed in GIT hash 118d0454
Comment 13 Slávek Banko 2012-08-29 19:27:33 CDT
Patches 8f11ba72, a9b1841c and 118d0454 adapted also for v3.5.13-sru and FTBFS is also fixed.