#211 oprofile v0.9.7 still can't support qt4

closed-fixed
None
5
2012-08-27
2012-02-03
joyeru
No

I run configure as follow:
$ ./configure --enable-gui=qt4 --with-kernel-support --prefix=/opt/oprofile

and then when I run make, it claimed that there was no such executable file /usr/bin/uic-qt43:
/usr/bin/uic-qt43 -o oprof_start.base.h oprof_start.base.ui
/bin/bash: /usr/bin/uic-qt43:

I found there is not qt43, but qt4 instead:
$ whereis qt4
qt4: /usr/lib/qt4 /usr/lib64/qt4 /usr/include/qt4 /usr/share/qt4

I searched and couldn't find any info about qt43, so I considered it be a mistake and and modified configure as follow:
- 18120 UIC=$(pkg-config --variable=uic_location QtCore)3
+ 18120 UIC=$(pkg-config --variable=uic_location QtCore)

However, problem still there:
/usr/bin/uic-qt4 -o oprof_start.base.h oprof_start.base.ui
uic: Error in line 6, column 14 : Unexpected element name

It seemed the .ui file in folder "oprofile-0.9.7/gui/ui" couldn't be compiled to .h file by uic-qt4
What on earth is qt43? How to solve my problem?

Some info of my computer:
$ uname -rv
2.6.35-29-generic #51-Ubuntu SMP Fri Apr 15 17:12:35 UTC 2011
$ pkg-config --modversion QtCore
4.7.0

Discussion

  • joyeru
    joyeru
    2012-02-03

    • assigned_to: nobody --> maynardj
     
  • Sorry it took so long to address this bug report. On my RHEL 6.2 system, the configure's "pkg-config --variable=uic_location QtCore" returns /usr/lib64/qt4/bin/uic, which is a symbolic link to /usr/lib64/qt4/bin/uic-qt4. By using the name of the symbolic link (/usr/lib64/qt4/bin/uic) and appending the "3", I get /usr/lib64/qt4/bin/uic3, which (as I understand it) provides the qt3 support we need, since the oprofile GUI has not been updated to the qt4 model.

    So, in short, I can't reproduce your problem. Can you inspect your qt4-devel package and let me know what flavors of uic* it has? Apparently on your system, ""pkg-config --variable=uic_location QtCore" returns ' /usr/lib64/qt4/bin/uic-qt4' and on my system returns /usr/lib64/qt4/bin/uic. So why the difference?

     
  • xypron
    xypron
    2012-07-29

    In Debian Wheezy there is no file /usr/bin/uic-qt43. The file needed is called /usr/bin/uic3. The following helped me to run the install script:

    sudo ln -s /usr/bin/uic3 /usr/bin/uic-qt43

    In configure.ac the following line has to be corrected:
    UIC=$(pkg-config --variable=uic_location QtCore)3

     
  • xypron
    xypron
    2012-07-29

    On Debian Wheezy
    $ pkg-config --variable=uic_location QtCore
    /usr/bin/uic-qt4

     
  • xypron
    xypron
    2012-07-29

    In configure.in the following should work on RHEL and Debian/Ubuntu:

    UIC=$(dirname $(pkg-config --variable=uic_location QtCore))/uic3

     
    • status: open --> open-fixed
     
  • Thanks, xypron. Your fix works perfectly, so I commited it and pushed it upstream.

     
    • status: open-fixed --> closed-fixed