Discussion:
[Oscar-devel] netbootmgr and Qt4
o***@free.fr
2014-07-06 21:28:23 UTC
Permalink
I've worked on perl-Qt fix all the WE and came to a big patch. (posted here: https://code.google.com/p/perlqt4/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary&groupby=&sort=&id=46 )

perl-Qt (puic4) will now generate valid perl code.
Unfortunately, I don't know it the generated code means somethiong coherent for Qt.
I've just fixed and completed the existing puic4 code.
I have just a small perl issue in setupUi in Ui_NetBootMgr.pl
=> The line:
$netBootMgr->setSizeGripEnabled( 1 );
--- Error: Method does not exist or not provided by this binding:
QWidget::setSizeGripEnabled(),
called at /usr/share/perl5/vendor_perl/Ui_NetBootMgr.pm line 129
'use QtCore4::debug qw(ambiguous)' for more information.

Is the generated code bad, or is it something that is incomplet or not yet implemented in QtCore4.so???

The beahviour is really different from perl-Qt3. Now you must add some perl files NetBootMgr.pm and SureDialog.pm that will respectively make use of their Ui_ dedicated file.
As I've never ever coded in Qt, I don't know what to put inside those files. (just copypasted the minimum from example files)

For the moment, if you look at pkgsrc/netbootmgr/trun svn (svn update) you'll see my Work In Progress (WIP)
if you make rpm in there and try to start netbootmgr, it segfault. Thus I imagine that because the perl code is incomplete and because Qt4Core.so is not fault tolerent, it crashes (null pointer, something is not declared in time).

the output:
Program received signal SIGSEGV, Segmentation fault.
Q3ListViewItem::Q3ListViewItem (this=0x132f540, parent=0x0) at itemviews/q3listview.cpp:425
425 parent->insertItem(this);
Missing separate debuginfos, use: debuginfo-install kdelibs-4.11.5-2.fc19.x86_64 pcre-8.32-8.fc19.x86_64
(gdb) bt
#0 Q3ListViewItem::Q3ListViewItem (this=0x132f540, parent=0x0) at itemviews/q3listview.cpp:425
#1 0x00007fffef325def in x_Q3ListViewItem (x1=<optimized out>, this=<optimized out>) at /usr/src/debug/smokeqt-4.11.5/x86_64-redhat-linux-gnu/qt3support/x_11.cpp:2598
#2 x_2 (x=<optimized out>) at /usr/src/debug/smokeqt-4.11.5/x86_64-redhat-linux-gnu/qt3support/x_11.cpp:2595
#3 __smokeqt3support::xcall_Q3ListViewItem (xi=1, obj=0x1224e40, args=0x12de930) at /usr/src/debug/smokeqt-4.11.5/x86_64-redhat-linux-gnu/qt3support/x_11.cpp:3544
#4 0x00007ffff145bc7a in PerlQt4::MethodCall::callMethod() () from /usr/lib64/perl5/vendor_perl/auto/QtCore4/QtCore4.so
#5 0x00007ffff1457a78 in PerlQt4::MethodCallBase::next() () from /usr/lib64/perl5/vendor_perl/auto/QtCore4/QtCore4.so
#6 0x00007ffff1469ed3 in XS_AUTOLOAD () from /usr/lib64/perl5/vendor_perl/auto/QtCore4/QtCore4.so
#7 0x00000032178baf5f in Perl_pp_entersub (my_perl=0x604010) at pp_hot.c:2778
#8 0x00000032178b3796 in Perl_runops_standard (my_perl=0x604010) at run.c:41
#9 0x00000032178510f0 in S_run_body (oldscope=<optimized out>, my_perl=<optimized out>) at perl.c:2402
#10 perl_run (my_perl=0x604010) at perl.c:2320
#11 0x0000000000400d99 in main (argc=2, argv=0x7fffffffdbd8, env=0x7fffffffdbf0) at perlmain.c:120
(gdb) q

I've worked on issues 44 and 46 ( https://code.google.com/p/perlqt4/issues/list ) and posted issues 57, 58, 59, 60 .

Regards ,

PS: The kdebindings repo is more uptodate that official perlqt. The Author will resync. the kdebinding repo has support for perl 5.18.0 while perlqt at google hasn't.
Regarding puic4, both have the same patch level with total icomplete Qt3Support4 module. My above patch fix all the implementation except 3 objects that are empty and thus I don't know what to generate.

Olivier.
Olivier LAHAYE
2014-07-08 11:32:01 UTC
Permalink
Still progressing.

No more segfault and the setSizeGribEnabled is fixed.

Olivier.
Post by o***@free.fr
https://code.google.com/p/perlqt4/issues/detail?can=2&start=0&num=100&q=&co
lspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary&groupby=&s
ort=&id=46 )
perl-Qt (puic4) will now generate valid perl code.
Unfortunately, I don't know it the generated code means somethiong coherent
for Qt. I've just fixed and completed the existing puic4 code.
I have just a small perl issue in setupUi in Ui_NetBootMgr.pl
$netBootMgr->setSizeGripEnabled( 1 );
QWidget::setSizeGripEnabled(),
called at /usr/share/perl5/vendor_perl/Ui_NetBootMgr.pm line 129
'use QtCore4::debug qw(ambiguous)' for more information.
Is the generated code bad, or is it something that is incomplet or not yet
implemented in QtCore4.so???
The beahviour is really different from perl-Qt3. Now you must add some perl
files NetBootMgr.pm and SureDialog.pm that will respectively make use of
their Ui_ dedicated file. As I've never ever coded in Qt, I don't know what
to put inside those files. (just copypasted the minimum from example files)
For the moment, if you look at pkgsrc/netbootmgr/trun svn (svn update)
you'll see my Work In Progress (WIP) if you make rpm in there and try to
start netbootmgr, it segfault. Thus I imagine that because the perl code is
incomplete and because Qt4Core.so is not fault tolerent, it crashes (null
pointer, something is not declared in time).
Program received signal SIGSEGV, Segmentation fault.
Q3ListViewItem::Q3ListViewItem (this=0x132f540, parent=0x0) at
itemviews/q3listview.cpp:425 425 parent->insertItem(this);
Missing separate debuginfos, use: debuginfo-install
kdelibs-4.11.5-2.fc19.x86_64 pcre-8.32-8.fc19.x86_64 (gdb) bt
#0 Q3ListViewItem::Q3ListViewItem (this=0x132f540, parent=0x0) at
itemviews/q3listview.cpp:425 #1 0x00007fffef325def in x_Q3ListViewItem
(x1=<optimized out>, this=<optimized out>) at
/usr/src/debug/smokeqt-4.11.5/x86_64-redhat-linux-gnu/qt3support/x_11.cpp:2
598 #2 x_2 (x=<optimized out>) at
/usr/src/debug/smokeqt-4.11.5/x86_64-redhat-linux-gnu/qt3support/x_11.cpp:2
595 #3 __smokeqt3support::xcall_Q3ListViewItem (xi=1, obj=0x1224e40,
args=0x12de930) at
/usr/src/debug/smokeqt-4.11.5/x86_64-redhat-linux-gnu/qt3support/x_11.cpp:3
544 #4 0x00007ffff145bc7a in PerlQt4::MethodCall::callMethod() () from
/usr/lib64/perl5/vendor_perl/auto/QtCore4/QtCore4.so #5 0x00007ffff1457a78
in PerlQt4::MethodCallBase::next() () from
/usr/lib64/perl5/vendor_perl/auto/QtCore4/QtCore4.so #6 0x00007ffff1469ed3
in XS_AUTOLOAD () from /usr/lib64/perl5/vendor_perl/auto/QtCore4/QtCore4.so
#7 0x00000032178baf5f in Perl_pp_entersub (my_perl=0x604010) at
pp_hot.c:2778 #8 0x00000032178b3796 in Perl_runops_standard
(my_perl=0x604010) at run.c:41 #9 0x00000032178510f0 in S_run_body
(oldscope=<optimized out>, my_perl=<optimized out>) at perl.c:2402 #10
perl_run (my_perl=0x604010) at perl.c:2320
#11 0x0000000000400d99 in main (argc=2, argv=0x7fffffffdbd8,
env=0x7fffffffdbf0) at perlmain.c:120 (gdb) q
I've worked on issues 44 and 46 (
https://code.google.com/p/perlqt4/issues/list ) and posted issues 57, 58,
59, 60 .
Regards ,
PS: The kdebindings repo is more uptodate that official perlqt. The Author
will resync. the kdebinding repo has support for perl 5.18.0 while perlqt
at google hasn't. Regarding puic4, both have the same patch level with
total icomplete Qt3Support4 module. My above patch fix all the
implementation except 3 objects that are empty and thus I don't know what
to generate.
Olivier.
Cordialement,

Olivier.
--
Olivier Lahaye
DRT/LIST/DIR
Loading...