bugGNU Octave - Bugs: bug #61339, configure : uic: Unknown option...

 
 

bug #61339: configure : uic: Unknown option 'qt'.

Submitter:  None
Submitted:  Thu 14 Oct 2021 04:16:59 PM UTC
   
 
Category:  Configuration and Build System Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Build Failure
Status:  Invalid / Not an Octave Bug Assigned to:  None
Originator Name:  Cessenat Originator Email:  -email is unavailable-
Open/Closed:  * Closed Release:  * 6.3.0
Operating System:  * GNU/Linux Fixed Release:  None
Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Tue 19 Oct 2021 03:30:59 PM UTC, comment #11: 

Ok I understand.
I opened a suggestion to modify spack's octave package.
Thanks very much for your care.
Olivier Cessenat

Anonymous
Tue 19 Oct 2021 12:50:59 PM UTC, comment #10: 

Imho, this is more an issue of how the dependencies are installed on your system than an issue with Octave's build rules. I'm not sure if Octave's build rules have to be sufficiently intelligent to work with default settings in this case.

I'm tentatively closing as invalid. But we can re-open if someone thinks that the build rules should be working with default settings also in these circumstances.

Markus Mützel <mmuetzel>
Group administrator
Mon 18 Oct 2021 06:58:10 AM UTC, comment #9: 

I'm not a Qt expert. So you should take this with a grain of salt:
If you know that the version of Qt with which you are building Octave will never integrate with qtchooser, you can probably safely configure with "ac_cv_prog_ac_ct_QTCHOOSER=".
I don't know what the fallout could be when not using qtchooser while it would be working.

Maybe related to bug #53571?

Markus Mützel <mmuetzel>
Group administrator
Sun 17 Oct 2021 04:40:14 PM UTC, comment #8: 

Yes you are completely right ; I had a qtchooser from the distro while using a more recent qt with no qtchooser.
Configuring as you suggest is fine.

Now I was thinking about always configuring with
"ac_cv_prog_ac_ct_QTCHOOSER="
in spack.
What do you think ? Could there be bad side effects ?

Anonymous
Sun 17 Oct 2021 11:54:30 AM UTC, comment #7: 

The configure function that check for the Qt tools:

AC_DEFUN([OCTAVE_CHECK_QT_TOOL], [
  AC_CHECK_TOOLS(m4_toupper([$1])_QTVER, [$1-qt$qt_version])
  if test -z "$m4_toupper([$1])_QTVER"; then
    AC_CHECK_TOOLS(m4_toupper([$1]), [$1])
    if test -n "$m4_toupper([$1])"; then
      if test -n "$QTCHOOSER"; then
        m4_toupper([$1])FLAGS="-qt=$qt_version"
      fi
      QT_TOOLS_AVAILABLE="$QT_TOOLS_AVAILABLE $1"
    else
      QT_TOOLS_MISSING="$QT_TOOLS_MISSING $1"
    fi
  else
    m4_toupper([$1])="$m4_toupper([$1])_QTVER"
    QT_TOOLS_AVAILABLE="$QT_TOOLS_AVAILABLE $1"
  fi
])


IIUC, this test assumes that if `qtchooser` exists, it belongs to the other Qt tools used by the build system.
That might not be the case if two versions of Qt are installed at the same time and qtchooser is from one of these versions but the other Qt tools are from the other version.

Could that be what is happening for you?

Does it work if you configure with `../configure ac_cv_prog_ac_ct_QTCHOOSER=`?

Markus Mützel <mmuetzel>
Group administrator
Sat 16 Oct 2021 07:39:26 AM UTC, comment #6: 

Thanks for the answer. I would be pleased by 1. I do not know when did qt's uic change it's behaviour, I only know it's between 5.9.5 and 5.12.2. In a way that's qt's fault, but if you can remedy that I would be happy (could be in a future release of Octave).

Thanks for the advises. In fact spack helps me to get the latest softwares even on my home computer where I'm admin. I did isolate the technical issue outside of spack (with the hints you provided). Solving this issue makes sure I will be able to compile octave on a company computer straightforwardly (I could manually copy uic to uic-qt5 and so on for I do not known home many commands). When I use my distro's qt I can compile latest Octave with gui.

Anonymous
Sat 16 Oct 2021 01:30:57 AM UTC, comment #5: 

Hmm... I'm not entirely sure how to proceed, since it looks like spack does its own thing in deciding how to select library names.

Ways forward:

1. Can one of the Octave devs with Makefile expertise look into suppressing the -qt=5 option if the uic version is >= 5.15.2 as described in this report? That would solve OP's problem.

2. To the OP: from the context of spack it sounds like you are on a large machine or cluster without root access. If one of the system admins there knows spack administration, could they help rename the Qt5 package to something more usable by Octave?

3. To the OP: Alternatives for you are installing Octave without a GUI for now, or with a non-Qt GUI if possible, while the rest of the steps above are figured out. That will at least get you running some computations on your cluster.

Anonymous
Fri 15 Oct 2021 03:45:18 PM UTC, comment #4: 

I installed qt 5.15.2 using spack. Neither with spack nor with the distro with qt 5.9.5 is there a uic-qt5. The difference is that with 5.9.5 uic -qt5 is accepted, not with 5.15.2. This is why the Octave configure works with the distro qt 5.9.5 but not 2.15.2.
If I name uic uic-qt5 as you suggest it works (but then it fails for moc -qt5, probably the same stuff).

Is there a way to tell configure not to look for a -qt$qt_version ? I see variable QTCHOOSER is used, but I do not understand how to modify it "cleanly".
Thanks for your atttention and time.

Anonymous
Fri 15 Oct 2021 12:43:34 PM UTC, comment #3: 

The problem seems to be that while Qt5 by default names its programs as foo-qt5, with plain foo being used for older versions, your Qt5 installation does not use that naming convention. Your Qt libraries seem to be installed in your user space. Did you build them yourself from source? If you install Qt5 from the distro repository, which would install in system default locations with current filenames, does it perform better? If you need to use self-built Qt5, can you do it in such a way that you get programs named uic-qt5 instead of only uic? It looks like when foo-qt5 is present, Octave configure does not need to pass -qt=5 as an argument.

Anonymous
Fri 15 Oct 2021 06:10:24 AM UTC, comment #2: 

Thanks for answer but the '-qt5' option is set by configure.
I do not know how to avoid that.

Here is what happens on Ubuntu 18.04 when I first load qt 5.15.2 (using spack) and then run configure manually:

$ ./configure
... some lines cut here ...
checking Qt version 5... checking for Qt5Core Qt5Gui Qt5Network Qt5PrintSupport Qt5Help Qt5Xml... yes
checking for qtchooser... qtchooser
checking for moc-qt5... no
checking for moc... moc
checking for uic-qt5... no
checking for uic... uic
checking for rcc-qt5... no
checking for rcc... rcc
checking for lrelease-qt5... no
checking for lrelease... lrelease
checking for qcollectiongenerator-qt5... no
checking for qcollectiongenerator... qcollectiongenerator
checking for qhelpgenerator-qt5... no
checking for qhelpgenerator... qhelpgenerator

... some lines cut here ...

  Qt LDFLAGS:                    -L/home/cessenat/Softs/spack/opt/spack/linux-ubuntu18.04-zen/gcc-7.5.0/qt-5.15.2-zkgt6frx6pr6clk73awn5jrj2wngej25/lib
  Qt GUI libraries:              -lQt5Network -lQt5PrintSupport -lQt5Help -lQt5Widgets -lQt5Gui -lQt5Sql -lQt5Xml -lQt5Core
  Qt OpenGL libraries:           -lQt5OpenGL -lQt5Widgets -lQt5Gui -lQt5Core
  Qt moc:                        moc -qt=5
  Qt uic:                        uic -qt=5
  Qt rcc:                        rcc -qt=5
  Qt lrelease:                   lrelease -qt=5
  Qt qcollectiongenerator:       qcollectiongenerator -qt=5
  Qt qhelpgenerator:             qhelpgenerator -qt=5
  READLINE libraries:            -lreadline

... some lines cut here ...

  Build Octave Qt GUI:                  yes (version: 5)

Thanks for your help, Olivier Cessenat

Anonymous
Thu 14 Oct 2021 09:42:13 PM UTC, comment #1: 

The program uic is the Qt User Interface Compiler. It shouldn't be necessary to use that to configure Octave. Remove that --qt option when configuring. The --with-qt is to tell Octave's configure where the Qt libraries are, if not in a standard location.

As it happens, Octave configures just fine with uic 5.15.2:


$ uic --version
uic 5.15.2
$ mkdir tmp && cd tmp && ../configure


You'll get lots of output from configure, with this towards the end:


  Qt CPPFLAGS:                   -I/usr/include/qt/QtCore -I/usr/include/qt -I/usr/include/qt/QtGui -I/usr/include/qt/QtHelp -I/usr/include/qt/QtWidgets -I/usr/include/qt/QtSql -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtPrintSupport -I/usr/include/qt/QtXml
  Qt LDFLAGS:
  Qt GUI libraries:              -lQt5Help -lQt5Sql -lQt5Network -lQt5PrintSupport -lQt5Widgets -lQt5Gui -lQt5Xml -lQt5Core  -lqscintilla2_qt5
  Qt OpenGL libraries:           -lQt5OpenGL -lQt5Widgets -lQt5Gui -lQt5Core
  Qt moc:                        moc-qt5
  Qt uic:                        uic-qt5
  Qt rcc:                        rcc-qt5
  Qt lrelease:                   lrelease-qt5
  Qt qcollectiongenerator:       qcollectiongenerator-qt5
  Qt qhelpgenerator:             qhelpgenerator-qt5

(some lines cut here)

  Build Octave Qt GUI:                  yes (version: 5)


Anonymous
Thu 14 Oct 2021 04:16:59 PM UTC, original submission:  

configure fails :

This is a problem with uic API from Qt set of tools :
uic 5.9.5 is fine with -qt=5 option, but not uic 5.15.2 :

uic -qt=5 -o libgui/src/ui-settings-dialog.h libgui/src/settings-dialog.ui
=> uic: Unknown option 'qt'.

This occurs both with
./configure and ./configure --with-qt=5


Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #52098:  spack-build-out.txt added by None (425KiB - text/plain)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by mmuetzel (Posted a comment)
  • -email is unavailable- added by None (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 4 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2021-10-19 mmuetzel StatusNeed Info Invalid / Not an Octave Bug
        Open/ClosedOpen Closed
    2021-10-17 mmuetzel StatusNone Need Info
    2021-10-14 None Attached File- Added spack-build-out.txt, #52098

    Back to the top

    Powered by Savane 3.13-bb6a.
    Corresponding source code