Hi, I'm long time Gentoo user and would like to be able to use CQRLOG on Gentoo Linux. With the Ebuild system, Gentoo builds all packages from source. There is a "package" of version 2.4.0, and someone in the forums posted an update to version 2.5.2. However it seems there is no package maintainer anymore, and on my system neither 2.4.0, nor 2.5.2 can be built. I assume it may be an issue with dependencies. The relevant error seems to be this:
cqrlog-2.5.2/src/cqrlog.lpr(6,3) Fatal: (10022) Can't find unit Interfaces used by cqrlog
I have fpc 3.2.2 and lazarus 2.2.4 installed.
Where should I start looking for that "Interfaces" unit?
This is the full build log:
>>> Compiling source in /var/tmp/portage/media-radio/cqrlog-2.5.2/work/cqrlog-2.5.2 ...
make -j3
lazbuild -d --ws=gtk2 --max-process-count=1 --lazarusdir=/usr/share/lazarus --pcp=/var/tmp/portage/media-radio/cqrlog-2.5.2/temp/tmp.eIyJ8ewKfA/.lazarus src/cqrlog.lpi
SetPrimaryConfigPath NewValue="/var/tmp/portage/media-radio/cqrlog-2.5.2/temp/tmp.eIyJ8ewKfA/.lazarus" -> "/var/tmp/portage/media-radio/cqrlog-2.5.2/temp/tmp.eIyJ8ewKfA/.lazarus"
SetupCompilerFilename: Searching compiler ...
SearchCompilerCandidates Value=fpc File=/usr/bin/fpc
Hint: (lazarus) [RunTool] "/usr/bin/fpc" "-iWTOTP"
Hint: (lazarus) [RunTool] "/usr/bin/fpc" "-va" "compilertest.pas"
SetupCompilerFilename: using /usr/bin/fpc
Hint: (lazarus) storing Lazarus directory "/usr/share/lazarus/" Compiler path "/usr/bin/fpc" in "/var/tmp/portage/media-radio/cqrlog-2.5.2/temp/tmp.eIyJ8ewKfA/.lazarus/environmentoptions.xml"
TProject.DoLoadStateFile Statefile not found: /var/tmp/portage/media-radio/cqrlog-2.5.2/work/cqrlog-2.5.2/src/cqrlog.compiled
Error: File "../images/world_borders.png" not found.
Free Pascal Compiler version 3.2.2 [2023/02/01] for x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
(1002) Target OS: Linux for x86-64
(3104) Compiling cqrlog.lpr
2 291/736 Kb Used
(3104) Compiling uScrollBars.pas
/var/tmp/portage/media-radio/cqrlog-2.5.2/work/cqrlog-2.5.2/src/cqrlog.lpr(6,3) Fatal: (10022) Can't find unit Interfaces used by cqrlog
Fatal: (1018) Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode
Error: (lazarus) Compile Project, Target: cqrlog: stopped with exit code 1
Error: (lazbuild) failed compiling of project /var/tmp/portage/media-radio/cqrlog-2.5.2/work/cqrlog-2.5.2/src/cqrlog.lpi
make: *** [Makefile:9: cqrlog] Error 2
HI!
Makefile may not be suitable for your system.
Have you started "lazarus-ide" from command console, or from startup icon (if any)?
At first start it will show some Tabs including paths to various things.
Did they all say "OK"?
If not, find the reason for that. Fix it and try again.
Once Lazarus-id opens without complains select "Project open" (Ctrl+F11) and navigate to cqrlog directory that appears when you extract zip from github or do "git clone" that gives whole cqrlog branch.
From cqrlog folder you find "src" folder, move to that.
There is "cqrlog.lpi" select and open that.
Once open select "view/messages" then try "run/build" (shift+F9). Lazarus-ide should do the compile work and you see results in messages window.
If all is ok you find new cqrlog from folder "src" as "cqrlog". That should be copied to /usr/bin
That's it.
Remember also copy new "help" folder to /usr/share/cqrlog replacing the existing one there.
At the moment official version is 2.6.0(001) but there has not been any updates since Aug2022.
If you like to try to compile my alpha testing version that is far ahead of official you find the source code from https://github.com/OH1KH/cqrlog/tree/loc_testing/
--
Saku
OH1KH
Thank you for you kind, detailed response. I did try building in Lazarus IDE following your guide, and it worked on first try. So I delved into the Makefile, to try to figure out why the ebuild fails. First I tried compiling without Lazarus, first extracting the source tarball manually, and later by cloning from GitHub. I got the same error as with the ebuild. Then I saw at the bottom of the Makefile that there is dedicated target for Qt5, and that the default target has gtk2 in it. Ok, let's try target cqrlog_qt5! It worked!
Since then I edited the ebuild, and now I can install cqrlog as a regular Gentoo package on my system. Maybe I'll try to sign up as a maintainer for the package, so that others can benefit, by adding USE flags to select the correct GUI toolkit.
Thanks again, and best regards,
-Lori
YO5LNX
Hi Lori!
Nice to hear that things started to work!
Yes, there is option "cqrlog_qt5" in make file. But that requires you have package libqt5pas and libqt5pas-devel installed first.
You can do QT5 version also with Lazarus-ide:
Select "Project/Project options/Additions and Overrides" From top right view open "Set LCL widget type" and from that selector select "QT5",
In case there are checked gtk2 in Target list uncheck that and see that only QT5 is checked.
Then "run/build" again.
--
Saku
OH1KH
Hi Lori! Could you please share your changes to the ebuild which enabled the installation of cqrlog-2.5.2 as a regular gentoo package? I see 2.5.2 has been added to the Portage repository, but it fails build here with the error you mention above.
Thanks!