Re: Building gnuplot 6.0.0 on Linux Mint
Ethan Merritt <[email protected]> Fri, 17 May 2024 10:48:52 -0700
| Newsgroups | gmane.comp.graphics.gnuplot.user |
|---|---|
| Message-ID | <2695400.q0ZmV6gNhb@stonelion> |
After a fresh install of Mint 21.3 Virginia I ended up with the same
problem you are seeing. I think the issue is that the pkg-config files
are missing from the Mint packages.
For example searching the Ubuntu/Debian package repository for
Qt6Core.pc reports
/usr/lib/x86_64-linux-gnu/pkgconfig/Qt6Core.pc qt6-base-dev [amd64]
but the Mint package qt6-base-dev is missing this file.
It looks like all the Qt6*-dev packages are missing these files.
You could pull or reconstruct the *.pc files from Ubuntu, or build
them directly from upstream Qt, but really I think you should report
this as a packaging bug to Mint and hope that they can release
amended packages.
Meanwhile you can recreate what these files should have done by
manually setting the corresponding environmental variables:
$ export QT_CFLAGS="-I/usr/include/x86_64-linux-gnu/qt6/QtCore -I/usr/include/x86_64-linux-gnu/qt6 -I/usr/lib64/qt6/mkspecs/linux-g++ -I/usr/include/x86_64-linux-gnu/qt6/QtGui -I/usr/include/x86_64-linux-gnu/qt6/QtNetwork -DQT_NETWORK_LIB -I/usr/include/x86_64-linux-gnu/qt6/QtSvg -DQT_SVG_LIB -I/usr/include/x86_64-linux-gnu/qt6/QtPrintSupport -DQT_PRINTSUPPORT_LIB -I/usr/include/x86_64-linux-gnu/qt6/QtWidgets -DQT_WIDGETS_LIB -DQT_GUI_LIB -I/usr/include/x86_64-linux-gnu/qt6/QtCore5Compat -DQT_CORE5COMPAT_LIB -DQT_CORE_LIB"
$ export QT_LIBS="-lQt6Network -lQt6Svg -lQt6PrintSupport -lQt6Widgets -lQt6Gui -lQt6Core5Compat -lQt6Core"
$ export RCC=/usr/bin/rcc
$ export UIC=/usr/bin/uic
$ ./configure
Configure succeeds, but the build failed because the system-provided uic is from Qt5 rather than Qt6.
I could not figure out which Mint package provides uic-qt6.
Maybe this is another package deficiency?
that's the best I can do for now
Ethan
On Friday, 17 May 2024 05:42:59 PDT Hernán De Angelis wrote:
> I have looked at this again and did not manage to solve anything.
>
> A few possibly relevant comments:
>
> - adding Qt6Widgets in line 1065 of configure,ac does not solve the issue:
>
> 1065 PKG_CHECK_MODULES_NOFAIL(QT, [Qt6Core Qt6Gui Qt6Network
> Qt6Svg Qt6PrintSupport Qt6Core5Compat Qt6Widgets])
>
> but -Qt6Widgets is not included in config.status
>
> 644 S["QT_LIBS"]="-lQt6Network -lQt6Svg -lQt6Gui -lQt6PrintSupport
> -lQt6Core5Compat -lQt6Core"
>
> Admittedly, I am not an expert on this things. But I find it baffling
> that everything seems to be in place yet Qt6Widgetsis not found. Also
> QtApplication is problematic but I did not look in detail.
>
>
> - And in case this is of interest: line 16323 of the configure script:
> "Enable parsing of deprecated syntax" should be commented. It is not in
> the original file and givs a warning that the Enable command is not found.
>
> Nothing of this is possibly a gnuplot problem. But would be nice to get
> it working.
>
>
> Have a nice day
>
> H.
>
>
>
> Den 2024-05-17 kl. 03:02, skrev Ethan Merritt:
> > Gnuplot still runs quite happily with Qt5.
> > Indeed, the configure script falls back to linking against Qt5 if it thinks
> > that Qt6 is not present. The issue seems to be that some linux distros
> > install enough pieces of Qt6 that the configure script thinks it is present
> > rather than thinking it is absent and so it doesn't fall back to Qt5 instead.
> > You could tell it to skip the check for Qt6 and move straight to trying Qt5:
> > ./configure --with-qt=qt5
> >
> > Summary instructions for building with Qt5 under Ubuntu / Debian
> > are in the INSTALL file that is part of the gnuplot distribution.
> >
> > If/when someone feeds back an equivalent recipe for Qt6 I will add that to
> > the INSTALL file. And certainly if there are tweaks to the configure script
> > itself to make it less sensitive to distro-specific quirks, those can be added
> > as well.
> >
> > For what it's worth, here is a complete list of the Qt6 devel packages
> > installed on my Mageia 9 machine with Qt 6.4.
> > I don't think every one of them is needed by gnuplot, but you can at
> > least get an idea of which modules have a separate devel package.
> >
> > qtbase6-common-devel-6.4.1
> > lib64qt6core-devel-6.4.1
> > lib64qt6opengl-devel-6.4.1
> > lib64qt6xcbqpa-devel-6.4.1
> > lib64qt6dbus-devel-6.4.1
> > lib64qt6gui-devel-6.4.1
> > lib64qt6eglfsdeviceintegration-devel-6.4.1
> > lib64qt6core5compat-devel-6.4.1
> > lib64qt6widgets-devel-6.4.1
> > lib64qt6printsupport-devel-6.4.1
> > lib64qt6network-devel-6.4.1
> > lib64qt6svg-devel-6.4.1
> >
> > The list for Qt6.6 is longer, but I have not had to modify anything
> > to configure and link gnuplot. I think Qt is now up to version 6.7
> > but I have not tried that yet.
> >
> > Ethan
> >
> >
> >
> > On Thursday, 16 May 2024 14:31:38 PDT Peter Rockett via gnuplot-info wrote:
> >> OK. But I am not sure that helps me with my Debian-based problem. And
> >> hacking configure.ac files is not something I could do without an awful
> >> lot of work.
> >>
> >> When I ignore the configure output and just run make anyway, my build
> >> chokes on:
> >>
> >> qtterminal/qt_term.cpp:51:10: fatal error: QtCore: No such file or directory
> >> 51 | #include <QtCore>
> >>
> >> Note: different from Hernán's issue that chokes on #include <QApplication>
> >>
> >> On Mint (derived from Debian), looking in
> >> /usr/include/x86_64-linux-gnu/qt6/QtCore, I can see no header called
> >> QtCore! (Note the architecture-dependent path!) So I am clearly missing
> >> some dependency.
> >>
> >> "I am surprised that the various linux distros have diverged so much in
> >> how they split up Qt components for packaging." Indeed. I was reading
> >> Hernán's post and the list of stunningly obvious package names in
> >> openSUSE, and thinking "This looks so sensible!" (compared to the
> >> hunt-the-dependency dog's breakfast that is the Debian packaging of Qt).
> >> Bear in mind that Ubuntu is one of the most popular Linux distros.
> >>
> >> This may pose a troublesome issue for gnuplot going forward. It seems
> >> that the gnuplot build has /de facto/ been broken already - maybe some
> >> adaptive maintenance is needed? P.
> >>
> >>
> >> On 16/05/2024 18:54, Ethan Merritt wrote:
> >>> On Thursday, 16 May 2024 00:25:24 PDT Hernán De Angelis wrote:
> >>>> Well it seems that I am now having some issues building as well ... QtApplication and QtWidget are apparently not found.
> >>>>
> >>>> In file included from qtterminal/qt_term.cpp:78:
> >>>>
> >>>> qtterminal/QtGnuplotApplication.h:49:10: fatal error: QApplication: No such file or directory
> >>>>
> >>>> 49 | #include <QApplication>
> >>>>
> >>>> | ^~~~~~~~~~~~~~
> >>>>
> >>>> compilation terminated.
> >>> This was recently reported for Fedora also. In the Fedora case the answer was to
> >>> add Qt6Widgets as a separate dependency in the autotools configure.ac script.
> >>> The package itself was already pulled in by other Qt dependencies, but apparently
> >>> without a separate test the compiler preprocessor flag -I/usr/include/qt6/QtWidgets
> >>> was not added to the Makefile. Adding that to environmental variable CXX_FLAGS
> >>> prior to running "./configure" may be sufficient to get you going for now.
> >>>
> >>> https://sourceforge.net/p/gnuplot/bugs/2705/
> >>>
> >>> I am surprised that the various linux distros have diverged so much in how they
> >>> split up Qt components for packaging.
> >>>
> >>> When you figure out what the missing piece is for building on Mint, please let me
> >>> know so I can add that fix to the gnuplot patchlevel 6.0.1 release.
> >>>
> >>> Ethan
> >>>
> >>>> make[4]: *** [Makefile:1044: qtterminal/qt_term.o] Error 1
> >>>>
> >>>> make[4]: *** Waiting for unfinished jobs....
> >>>>
> >>>> In file included from qtterminal/qt_embed_example.cpp:44:
> >>>>
> >>>> qtterminal/qt_embed_example.h:51:10: fatal error: QWidget: No such file or directory
> >>>>
> >>>> 51 | #include <QWidget>
> >>>>
> >>>> | ^~~~~~~~~
> >>>>
> >>>> compilation terminated.
> >>>>
> >>>> make[4]: *** [Makefile:1044: qtterminal/qt_embed_example.o] Error 1
> >>>>
> >>>> In file included from qtterminal/QtGnuplotInstance.cpp:45:
> >>>>
> >>>> qtterminal/QtGnuplotWidget.h:49:10: fatal error: QWidget: No such file or directory
> >>>>
> >>>> 49 | #include <QWidget>
> >>>>
> >>>> | ^~~~~~~~~
> >>>>
> >>>> compilation terminated.
> >>>>
> >>>> make[4]: *** [Makefile:1044: qtterminal/QtGnuplotInstance.o] Error 1
> >>>>
> >>>> In file included from qtterminal/gnuplot_qt.cpp:44:
> >>>>
> >>>> qtterminal/QtGnuplotApplication.h:49:10: fatal error: QApplication: No such file or directory
> >>>>
> >>>> 49 | #include <QApplication>
> >>>>
> >>>> | ^~~~~~~~~~~~~~
> >>>>
> >>>> compilation terminated.
> >>>>
> >>>>
> >>>> Den 2024-05-16 kl. 09:08, skrev Hernán De Angelis:
> >>>>> Peter,
> >>>>>
> >>>>> I always build gnuplot from source, although in openSUSE Tumbleweed.
> >>>>> With 6.0.0 I had some problems too. Those were solved by looking at
> >>>>> the error messages and installing the corresponding packages. I ended
> >>>>> up having a lot of Qt6 packages but Since I build other things based
> >>>>> in Qt I do not see this as problematic. Perhaps the list below helps,
> >>>>> with packages as they are referred to in openSUSE.
> >>>>>
> >>>>> Good luck
> >>>>>
> >>>>> H.
> >>>>>
> >>>>>
> >>>>> No package 'Qt6Core' found
> >>>>>
> >>>>> qt6-core-devel | Development files for the Qt 6 Core library
> >>>>>
> >>>>>
> >>>>> No package 'Qt6Gui' found
> >>>>>
> >>>>> qt6-gui-devel | Development files for the Qt 6 GUI libraries
> >>>>>
> >>>>>
> >>>>> No package 'Qt6Network' found
> >>>>>
> >>>>> qt6-network-devel | Development files for the Qt 6 Network
> >>>>> library
> >>>>>
> >>>>>
> >>>>> No package 'Qt6Svg' found
> >>>>>
> >>>>> qt6-svg-devel | Qt 6 SVG libraries - Development files
> >>>>>
> >>>>>
> >>>>> No package 'Qt6PrintSupport' found
> >>>>>
> >>>>> qt6-printsupport-devel | Development files for the Qt 6 PrintSupport
> >>>>> library
> >>>>>
> >>>>>
> >>>>> No package 'Qt6Core5Compat' found
> >>>>>
> >>>>> qt6-qt5compat-devel | Qt 6 Core 5 Compat library - Development files
> >>>>>
> >>>>>
> >>>>> Den 2024-05-15 kl. 21:58, skrev Peter Rockett via gnuplot-info:
> >>>>>> Hi
> >>>>>>
> >>>>>> I am trying to build gnuplot 6.0.0 on Linux Mint 21.3 from source but
> >>>>>> struggling with the Qt dependencies. I used to be able to build
> >>>>>> gnuplot 5 no problem using just qt5-base-dev and libqt5svg5-dev but
> >>>>>> running ./configure for gnuplot 6.0.0 with what seem to be the Qt6
> >>>>>> versions of these same packages installed (qt6-base-dev and
> >>>>>> libqt6svg6-dev) returns:
> >>>>>>
> >>>>>> No package 'Qt6Core' found
> >>>>>> No package 'Qt6Gui' found
> >>>>>> No package 'Qt6Network' found
> >>>>>> No package 'Qt6Svg' found
> >>>>>> No package 'Qt6PrintSupport' found
> >>>>>> No package 'Qt6Core5Compat' found
> >>>>>>
> >>>>>> Also, adding libqt6core5compat6-dev does not fix the last of these
> >>>>>> errors (about 'Qt6Core5Compat').
> >>>>>>
> >>>>>> Does anybody know the list of Qt6 packages I need to satisfy the
> >>>>>> above dependencies? From what I can see, qt6-base-dev should provide
> >>>>>> the core, gui, network and print support stuff but it plainly does
> >>>>>> not. Similarly, the svg package should provide the svg stuff.
> >>>>>>
> >>>>>> Peter
> >
> >
> >
> >
> > _______________________________________________
> > gnuplot-info mailing list
> > [email protected]
> > Membership management via: https://lists.sourceforge.net/lists/listinfo/gnuplot-info
>
>
> _______________________________________________
> gnuplot-info mailing list
> [email protected]
> Membership management via: https://lists.sourceforge.net/lists/listinfo/gnuplot-info
>
_______________________________________________
gnuplot-info mailing list
[email protected]
Membership management via: https://lists.sourceforge.net/lists/listinfo/gnuplot-info