I have been running various versions of cqrlog_qt5 on openSUSE Tumbleweed for
the past year, and last weekend decided to build the latest version from
Saku's loc_testing repo. Since TW is a rolling distribution, I got to use the
latest tools - Lazarus 3.0, glibc 2.39, Qt5 5.15.2+kde patches, etc.
After a 'git pull' from loc_testing, the first try was a simple 'make
clean;make cqrlog_qt5;make DESTDIR=~/.local install', as I've used before.
Fire it up, and I get the splash picture, and then the Segfault error
window. I try 'gdb cqrlog' and I remember the binary gets stripped - no
debug info. Try 'make cqrlog_qt5_debug' but still no symbols.
OK, lets try just 'make debug'.
gwb@stitch:~/OSS/src/cqrlog.saku> file src/cqrlog
src/cqrlog: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=9b7080ecbd59621b8c6556118b87ca86e74fd673, for GNU/Linux 2.4.0, stripped
still no symbols. However, that version (Gtk2) works just fine - no
segfault. Ugly, but usable.
So it looks like a problem with my setup, or maybe the latest Qt5, or maybe
Lazarus, or maybe...
Now my questions for the forum:
A) Anybody built cqrlog_qt5 with bleeding edge libraries?
B) How do I generate a debuggable binary with Lazarus?
C) Should I just go back to an older system.
PS: After writing this I tried building from the git master - same segfault
with qt5 version, so it really is a problem with my system that I'd like to
fix.
PPS: Noted that Lazarus 3.0 allows --ws=gtk3; tried that but got access
violation.
Hi!
I have not used Laz 3.0. Tested once and it did not work.
Decided to wait that they release upgraded version where first bugs are fixed.
Gtk 3 does compile, fixed it once, but it does not run. Too many runtime errors with graphics.
Open lazarus-ide and open project using cqrlog.lpi file in src directory.
From project options you can select debugging and also widgets used.
When compiled via lazarus-ide the binary appears in src folder and can be run directly from lazarus-ide if symlink share ( points to /usr/share) is appended to source root folder ( ../src , where makefile is)
Also make install works normal way even when binary is build via lazarus-ide.
I would appreciate if you find out laz 3.0 usage problems with QT5.
Othewise just install older laz version (or you can have both)
--
Saku
OH1KH
Updated today to latest lazarus and libQt5Pas but still not working
--ws=gtk2 OK
--ws=qt5 Access violation after splash screen
--ws=gtk3 Access violation after showing empty NewQSO window
--ws=qt6 Compilation errors
Hi!
I Installed Lazarus 3.2 and latest libqt5pas from https://github.com/davidbannon/libqt5pas to Fedora 39 virtual machine.
Same results as you got. Dies in start splash.
How ever Lazarus debugger finds the point in line 5845 of qtwidgets.pas that is a part of libqt5pas. I have made an issue from this.
Let's see do we get any fix.
--
Saku
OH1KH
Yesterday's openSUSE Tumbleweed included a new Lazarus, with a one line changelog:
* Tue May 14 2024 PragmaticLinux
- Add lazarus-libqt6_fix.patch to fix libqt6pas per upstream issue #40901
So I thought I'd try a new build.
Same problem with QT5 & QT6.
So then I started looking into the compile errors on QT6 - found a couple of missing conditionals in the code. A little copy&paste work, change 5=>6 and it compiles. Not only that, but it runs! So yesterday's QSOs were logged with a QT6 version of cqrlog.
The only glitch I noticed was that if click on help, then go to the changelog, when I close that window the whole program exits. Does not do that with the gtk2 version.
Anyway, here's a `git format-patch` version of the changes I made - remove the .txt suffix and it should be good for `git am`
File:
Thanks!
I'll test that some day in future to see if it helps also here.
--
Saku
OH1KH
HI!
Installed Fedora 40 and all "lazarus*" packets they have. (for some reason they have split it in many parts)
After adding your diff it nearly compiled.
Hw did you manage to pass range error on synaser.pas ?
FIndFirst('/dev/ttyS*,$FFFFFFFF,sr)=0
There are 3 lines for ttyS*, ttyUSB* and ttyAM*
My compiler stops for all of them. It has been in warning state for so long I have played with Cqrlog. Now it seems to be moved to error state.
I replaced $FFFFFFFF with faAnyFile and now it seems to compile.
I still have to prepare other dependencies in my F40 virtual machine to see if it relly runs ok. (but seems good as it starts until database connection fails)
--
Saku
OH1KH
I didn't see any compiler errors/stops in the build - but I've also been ignoring the torrent of compiler output. (How do you find anything in there that might be a valid warning?? Way too much output.)
Do you have a newer fpc? I did get a new patch added to mine but it still says Version 3.2.2. Changelog for fpc:
* Tue May 21 2024 Max Lin
- Use fpc-3.2.0-glibc-2.34.patch on Leap 15.6 for fix build fail
with glibc 2.38
Probably doesn't affect my system as I already have glibc 2.39
Anyway, the version I built last week is still running fine.
73
n3gb
Hi
I compile in Lazarus gui. There is a window "messages" that shows warnings and errors and click there leads to error causing line of code.
synapse has been at warning state, but with this laz 3.2 and corresponding fpc it turned to error state that stops compile.
saku@fedora:~$ ldd --version
ldd (GNU libc) 2.39
saku@fedora:~$ rpm -qa | grep lazar
lazarus-lcl-3.2-2.fc40.x86_64
lazarus-lcl-nogui-3.2-2.fc40.x86_64
lazarus-doc-3.2-2.fc40.x86_64
lazarus-tools-3.2-2.fc40.x86_64
lazarus-lcl-gtk2-3.2-2.fc40.x86_64
lazarus-ide-3.2-2.fc40.x86_64
lazarus-3.2-2.fc40.x86_64
lazarus-lcl-gtk3-3.2-2.fc40.x86_64
lazarus-lcl-qt-3.2-2.fc40.x86_64
lazarus-lcl-qt6-3.2-2.fc40.x86_64
lazarus-lcl-qt5-3.2-2.fc40.x86_64
saku@fedora:~$ rpm -qa | grep qt5pa
qt5pas-2.15-30202.fc40.x86_64
qt5pas-devel-2.15-30202.fc40.x86_64
saku@fedora:~$ rpm -qa | grep qt6pa
qt6pas-6.2.8-30202.fc40.x86_64
qt6pas-devel-6.2.8-30202.fc40.x86_64
--
Saku
OH1KH
Building with QT5 can be challenging due to its intricate configuration requirements and dependency issues. Developers often face hurdles integrating libraries, verizon customer support billing managing versions, and ensuring compatibility across platforms. However, QT5's robust features and cross-platform capabilities make it a powerful choice despite these complexities, requiring meticulous attention to detail and a solid understanding of its architecture for successful implementation.