Do you experience similar issue when running program that has TOpenGLControl? It only happens if I run it from the Lazarus IDE.
Back to the topic. I checked my system and I found I do not have libgdk-x11 installed too. But I still can do debugging in Lazarus. Is libgdk-x11 really needed?
In particular, a basic Lazarus app fails at startup complaining of missing libgdk-x11. Interestingly, I cannot find such a library in the appropriate repo. Assume its bundled in with something else.
Ubuntu XFCE upgraded 19.04 -> 19.10.
No problems, either with menu or without it.
Well, just tried vanilla live USB stick Xubuntu 19.10 and can confirm an issue exists:OK, important point here sash, which version of Lazarus are you using ?
Application runs but no TrayIcon is visible. In some panel configurations (no packages installed) tray icon appears, but no hints or clicks are working.
OK, important point here sash, which version of Lazarus are you using ?
error while loading shared libraries: libgdk-x11-2.0.so.0: cannot open shared object file: No such file or directory
apt-file search libgdk-x11-2.0.so.0
libgtk2.0-0: /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
libgtk2.0-0: /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0.2400.32
sudo apt-get install libgtk2.0-0
The following additional packages will be installed:
libgail-common libgail18 libgtk2.0-bin libgtk2.0-common
The following NEW packages will be installed:
libgail-common libgail18 libgtk2.0-0 libgtk2.0-bin libgtk2.0-common
find / -name "libgdk-x11*" 2> /dev/null <enter>
tk, it appears that U19.10 (and a growing number of other distros) are dropping GTK2 from the default install list. Not really surprising I guess.No news here:
Installing gtk2 and its dependancies 'should' solve the problem, so, yes, mark your deb or rpms as being dependant on GTK2 (or tell end users they must manually install GTK2).I agree.
You could try -Code: [Select]find / -name "libgdk-x11*" 2> /dev/null <enter>
to ensure it there but its almost certainly installed as part of GTK2 and if the apps run, that also says its there.
Time we all started looking at GTK3 ....
Davo
Time we all started looking at GTK3 ....
You mean adopt lazarus so default ws is qt/qt5Yes, this.
Or adopt QT.
QT5 ?
Hmm, maybe. I had it working on my U18.04 install earlier this year, so I made a small test app. Just to see if its a practical solution. It built OK on my Ubuntu18.04 with Lazarus Fixes. Running it however on a number of systems -
* U18.04 - Failed "undefined symbol: QTextEdit_setPlaceholderText". Maybe some recent updates broke it.
* U19.10 - OK if I first install libQt5Pas - that was easy. And a much smaller install than GTK2. Promising.
* Fedora 30 Plasma - Ok if I install qt5pas. Same with gnome but no TrayIcon.
* Mageia - Install a lib64qt5pas1 but test app failed "undefined symbol: QTextEdit_setPlaceholderText"
* Debian 10.1 - Install libqt5pas1 - works OK.
So, works with no more than installing libqt5pas on 60% of what I consider the "big five". But you need to know the name of the pas library, it varies. Sigh. But does not work with 40% and thats a big lump to have to chase down if you are supporting a number of end users. GTK2 delivers 100% but on some of those, now required a largish dependencies download. GTK3 delivers on 100% but is still quite buggy.
Sorry sash, my vote is still "lets get GTK3 up to scratch" !
EDIT: No, I made a mistake, the Qt5 libraries are not pre installed on the mainstream Ubuntu, Fedora and probably Mageia. I use Virtual Boxes to test but I have each distro setup with multiple Desktops, and that includes KDE/Plasma so the Qt5 libraries have come from there. A manual install uses about 49Meg on Ubuntu 19.10, compare that with 321Meg to put GTK2.0 on the same box. Hmm...
Davo
undefined symbol: QTextEdit_setPlaceholderText comes from old version of Qt5Pas library. Distros should update their packages (current stable version is qt5pas-1.2.7),Agreed its easy, I can do it. But I feel very uncomfortable distributing a binary package that overwrites the end users version of even libqt5pas. And updating a distro's QT5 itself is no easy task if its not packaged for that OS. If, as you say, the distro people would keep up with releases it would work but they don't. My Ubuntu1804 has another 18 months of life ....
or you can build it manually on your linux machine, download trunk lazarus, cd lcl/interfaces/qt5/cbindings , read manual howto compile libqt5pas...it's pretty easy.
KDE distros alread have all Qt5 libraries installed except maybe libQt5Pas.
undefined symbol: QTextEdit_setPlaceholderText comes from old version of Qt5Pas library. Distros should update their packages (current stable version is qt5pas-1.2.7),Agreed its easy, I can do it. But I feel very uncomfortable distributing a binary package that overwrites the end users version of even libqt5pas. And updating a distro's QT5 itself is no easy task if its not packaged for that OS. If, as you say, the distro people would keep up with releases it would work but they don't. My Ubuntu1804 has another 18 months of life ....
or you can build it manually on your linux machine, download trunk lazarus, cd lcl/interfaces/qt5/cbindings , read manual howto compile libqt5pas...it's pretty easy.
KDE distros alread have all Qt5 libraries installed except maybe libQt5Pas.
But, maybe good news, I found that if you avoid the widgets that have changed, a current app can still use the old QT5 libs including qt5pas. So far I have found that means not using TMemo (sure there are more). My app, tomboy-ng works using the older library OK. Maybe thats a transition strategy.
Zelijko, as the proud maintainer of both GTK3 and QT5, which do you think has a more promising future for Lazarus developers ?
EDIT: Ubuntu quote, on both U18.04 and U19.10 http://users.telenet.be/Jan.Van.hijfte/qtforfpc/fpcqt4.html and that mentions a version 2.6 dating back to 2013. Thats clearly different number system (and maybe code base) to yours ?
Davo
I'm not interested in gtk2/3/4 since it looks poor against Qt4/Qt5 libs and does not fit my needs for bussiness apps.
2. http://users.telenet.be/Jan.Van.hijfte/qtforfpc/fpcqt4.html is talking about Qt4 version of bidings. They aren't changed for years and won't be changed.
3. Qt5 bindings are not at the third party site they're located in lcl/interfaces/qt5/cbindings so you can build it at any time.
Hmm, in Linux the binary should end up in, eg /usr/local/bin I really don't like the idea of creating a new directory off there containing an extra library, that would be pretty much in breech of the Linux standards. I think ~/.local/lib would be a better place to put it on a singer user system. But if this 2.6beta works on U19.10 it should work on U18.04, I'll look a bit closer....
4.......for linux (if OS does not have libQt5Pas or it's outdated), put eg lib/ directory inside your app directory and copy there your libQt5Pas, then under linker options in your project add additional rpath to linker and everything will work w/o problems.
#!/bin/bash
RELEASE="fixes_2_0"
cd /home/dbannon/bin/Lazarus/"$RELEASE"
./lazarus --PCP=/home/dbannon/.Laz_"$RELEASE"
....................
I can build to QT5, but since 18.04 is still the current LTS, but the libQT5pas has issues with that (I have pinged one of the Debian maintainers). Unfortunately, the default 18.04 that you download can not be installed on the new Ryzen CPUs without patches, so I think 19.10 has a niche even though it is not LTS.
This seems to be a Lazarus issue, not a specific issue with Ubuntu 19.10's GTK2 implementation. I compiled the hello world example in C and it launches immediately.<insert rude word> thats very disappointing. I cannot reproduce this issue on my VM but I can see the Freezes (discussed elsewhere) that happen when starting GTK2 Lazarus on 19.10. Given that you alone have seen this issue, I am afraid it falls to you to track it down Chris. Maybe that means setting a breakpoint back in the lpr file and stepping through the early stages of an application starting up ? Tedious and annoying but possible.
.......building the libqt5pas, and this is a great solution for Lazarus developers. However, I think this is a reach for most of our users, as it requires a tremendous number of development tools and libraries installed (e.g. Lazarus sources for the c bindings, C, QT5-dev, etc). Is it possible to make a simple deb file for the libqt5pas that will work on 16.04, 18.04 and not interact with other tools?