Here is just a short qtide installation summary for fellow source
builders. Installation was a bit bumpy, perhaps someone else can
benefit from the following notes.
All this on our amd64 company server, running current "old-stable"
Debian squeeze (6.0.9).
Before, I built and ran jqt-801 fine with just three minor tweaks which
have all been taken care of in j802 -- I really appreciate this!
(A) In case you attempt to do what I did first, trying to upgrade "in place",
like it usually is possible when tracking and building qtide sources.
jqt will immediately segfault when jqt & shared lib are put into
the old j801 bin dir.
My gut feeling was perhaps only installing into a fresh j802 would be
supported, so I proceeded at (B). It later turned out, however, that
turning your j801 into a j802 via 801-jconsole:
require 'pacman'
'update' jpkg ''
'upgrade' jpkg ''
will do the job -- no more segfault and you are done.
The more complicated way:
(B) When you do a fresh clean install of j802 and drop the self-built
jqt & shared lib into its bin directory, you'll get an ijx window
but this fault during profile execution:
|value error: wd
| r=.r,LF,'Qt IDE: ', wd'version'
This actually appears to relate closely to the segfault in (A), see the
backtrace from (A) below.
Trying to update packages via the "Tools->Packages" menu entry fails
with:
not found: /usr/local/j64-802/addons/ide/qt/pacman.ijs
|file name error: script
| 0!:0 y[4!:55<'y'
|value error: runpacman_jpacman_
| runpacman_jpacman_ 0
Apparently there's some serious glue missing here which is currently
only provided by doing a binary installation of qtide. This kind of
defeats the entire point of building & installing something from source,
but let's go this route for now and do the
install 'qtide'
from the jconsole. Voila, bin/{jqt,libjqt.so} But that won't fly,
either:
bin 216 > `pwd`/jqt
"/usr/local/j64-802/bin/libjqt.so"
"could not resolve: state_run:
Cannot load library /usr/local/j64-802/bin/libjqt.so:
(libQtDeclarative.so.4: cannot open shared object file: No such file or
directory)"
This is an incompatibility of the distributed qtide with the debian-squeeze
Qt version.
Copying over the self-built jqt binary and libjqt.so again fixes that
and you'll end up with a running jqt.
Lastly, because it hasn't been made explicit elsewhere before:
The J core engine is still exactly the same:
% md5sum j64*/bin/libj.so
122ee5617043e47453eab5276f61301c j64-602/bin/libj.so
3874a536b6fdc16364ca1ce16357f238 j64-701/bin/libj.so
3874a536b6fdc16364ca1ce16357f238 j64-801/bin/libj.so
3874a536b6fdc16364ca1ce16357f238 j64-802/bin/libj.so
Martin
Appendix: the backtrace. I manually inserted the "-g" flags into the
(generated) Makefiles for getting the debug info. How is this properly
done at the "qmake" level?
#0 0x00007ffff5fc4ed1 in memcpy () from /lib/libc.so.6
#1 0x00007ffff67e7580 in ?? () from /usr/lib/libstdc++.so.6
#2 0x00007ffff67e77ab in std::basic_string<char, std::char_traits<char>,
std::allocator<char> >::basic_string(char const*, unsigned long,
std::allocator<char> const&) () from /usr/lib/libstdc++.so.6
#3 0x00007ffff15b70e6 in Cmd::init (this=0x7ffff188fdc0,
s=0xa74000 <Address 0xa74000 out of bounds>, slen=7358496) at wd/cmd.cpp:23
#4 0x00007ffff1611348 in wd (s=0x8f9b00 "version", slen=7899168,
res=@0x8f9200, len=@0x5) at wd/wd.cpp:147
#5 0x00007fffeb9c5aa2 in docall () from /usr/local/j64-801/bin/libj.so
#6 0x00007fffeb9c7899 in jtcdexec1 () from /usr/local/j64-801/bin/libj.so
#7 0x00007fffeb9c81f4 in jtcd () from /usr/local/j64-801/bin/libj.so
#8 0x00007fffeb9beb00 in secf2 () from /usr/local/j64-801/bin/libj.so
#9 0x00007fffeb842323 in withl () from /usr/local/j64-801/bin/libj.so
#10 0x00007fffeb83fded in jtdfs1 () from /usr/local/j64-801/bin/libj.so
#11 0x00007fffeb890bca in jtunquote () from /usr/local/j64-801/bin/libj.so
#12 0x00007fffeb83fded in jtdfs1 () from /usr/local/j64-801/bin/libj.so
#13 0x00007fffeb883b64 in jtmonad () from /usr/local/j64-801/bin/libj.so
#14 0x00007fffeb883669 in jtparsea () from /usr/local/j64-801/bin/libj.so
#15 0x00007fffeb870e3e in jtparsex () from /usr/local/j64-801/bin/libj.so
#16 0x00007fffeb86c750 in jtxdefn () from /usr/local/j64-801/bin/libj.so
#17 0x00007fffeb862186 in rank1 () from /usr/local/j64-801/bin/libj.so
#18 0x00007fffeb83fded in jtdfs1 () from /usr/local/j64-801/bin/libj.so
#19 0x00007fffeb890bca in jtunquote () from /usr/local/j64-801/bin/libj.so
#20 0x00007fffeb83fded in jtdfs1 () from /usr/local/j64-801/bin/libj.so
#21 0x00007fffeb883b64 in jtmonad () from /usr/local/j64-801/bin/libj.so
#22 0x00007fffeb883669 in jtparsea () from /usr/local/j64-801/bin/libj.so
#23 0x00007fffeb870e3e in jtparsex () from /usr/local/j64-801/bin/libj.so
#24 0x00007fffeb86c750 in jtxdefn () from /usr/local/j64-801/bin/libj.so
#25 0x00007fffeb83fded in jtdfs1 () from /usr/local/j64-801/bin/libj.so
#26 0x00007fffeb883b64 in jtmonad () from /usr/local/j64-801/bin/libj.so
#27 0x00007fffeb883669 in jtparsea () from /usr/local/j64-801/bin/libj.so
#28 0x00007fffeb883829 in jtparse () from /usr/local/j64-801/bin/libj.so
#29 0x00007fffeb886697 in jtimmex () from /usr/local/j64-801/bin/libj.so
#30 0x00007fffeb9d4842 in jtline () from /usr/local/j64-801/bin/libj.so
#31 0x00007fffeb9d4b1e in jtlinf () from /usr/local/j64-801/bin/libj.so
#32 0x00007fffeb83fded in jtdfs1 () from /usr/local/j64-801/bin/libj.so
#33 0x00007fffeb883b64 in jtmonad () from /usr/local/j64-801/bin/libj.so
#34 0x00007fffeb883669 in jtparsea () from /usr/local/j64-801/bin/libj.so
#35 0x00007fffeb883829 in jtparse () from /usr/local/j64-801/bin/libj.so
#36 0x00007fffeb886697 in jtimmex () from /usr/local/j64-801/bin/libj.so
#37 0x00007fffeb9d4842 in jtline () from /usr/local/j64-801/bin/libj.so
#38 0x00007fffeb9d4b1e in jtlinf () from /usr/local/j64-801/bin/libj.so
#39 0x00007fffeb83fded in jtdfs1 () from /usr/local/j64-801/bin/libj.so
#40 0x00007fffeb883b64 in jtmonad () from /usr/local/j64-801/bin/libj.so
#41 0x00007fffeb883669 in jtparsea () from /usr/local/j64-801/bin/libj.so
#42 0x00007fffeb870e3e in jtparsex () from /usr/local/j64-801/bin/libj.so
#43 0x00007fffeb86c750 in jtxdefn () from /usr/local/j64-801/bin/libj.so
#44 0x00007fffeb83fded in jtdfs1 () from /usr/local/j64-801/bin/libj.so
#45 0x00007fffeb883b64 in jtmonad () from /usr/local/j64-801/bin/libj.so
#46 0x00007fffeb883669 in jtparsea () from /usr/local/j64-801/bin/libj.so
#47 0x00007fffeb883829 in jtparse () from /usr/local/j64-801/bin/libj.so
#48 0x00007fffeb886697 in jtimmex () from /usr/local/j64-801/bin/libj.so
#49 0x00007fffeb87babb in jdo () from /usr/local/j64-801/bin/libj.so
#50 0x00007fffeb87bb6c in JDo () from /usr/local/j64-801/bin/libj.so
#51 0x00007ffff155ad68 in jefirst (type=<value optimized out>,
arg=<value optimized out>) at base/jsvr.cpp:471
#52 0x00007ffff159cfa1 in Jcon::init (this=<value optimized out>, argc=1,
argv=0x7fffffffe5f8) at base/svr.cpp:120
#53 0x00007ffff159d9e1 in svr_init (argc=1, argv=0x7fffffffe5f8)
at base/svr.cpp:225
#54 0x00007ffff1593812 in state_init (argc=1, argv=0x7fffffffe5f8)
at base/state.cpp:388
#55 0x00007ffff15938d3 in state_run (argc=1, argv=0x7fffffffe5f8,
lib=<value optimized out>, fhs=<value optimized out>) at base/state.cpp:456
#56 0x0000000000401428 in main (argc=1, argv=0x7fffffffe5f8) at main.cpp:60
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm