Re: Building gnuplot 6.0.0 on Linux Mint

Hernán De Angelis <[email protected]> Fri, 17 May 2024 22:17:11 +0200
Newsgroups gmane.comp.graphics.gnuplot.user
Message-ID <[email protected]>
Thank you, Ethan. Also I hope Peter R. sees this.

I now managed to configure and build correctly (well I believe gnuplot 
is now using Qt6). I had to tweak a bit your suggested variable 
QT_CFLAGS, telling explicitly where QtWidgets are to be found:

export QT_CFLAGS="-I/usr/lib64/qt6/mkspecs/linux-g++ -I/usr/include/qt6 
-I/usr/include/qt6/QtNetwork -DQT_NETWORK_LIB -I/usr/include/qt6/QtSvg 
-DQT_SVG_LIB -I/usr/include/qt6/QtGui -DQT_GUI_LIB 
-I/usr/include/qt6/QtPrintSupport -DQT_PRINTSUPPORT_LIB 
-I/usr/include/qt6/QtCore5Compat -DQT_CORE5COMPAT_LIB 
-I/usr/include/qt6/QtCore -DQT_CORE_LIB -I/usr/include/qt6/QtWidgets 
-DQT_WIDGET_LIB"

export QT_LIBS="-lQt6Network -lQt6Svg -lQt6PrintSupport -lQt6Widgets 
-lQt6Gui -lQt6Core5Compat -lQt6Core"


Athough happy to have this working, I am no wiser about what is going on 
here. Is there a generalized problem with how Linux distributions manage 
competing Qt installations? Or there is trouble with gnuplot's configure?

Have a nice weekend everyone

Hernán


Den 2024-05-17 kl. 19:48, skrev Ethan Merritt:
> 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