Lazarus 1.9 trunk Qt4 and Qt5 interface (screenshots)

The most advanced option by the moment is s40in solution, i tried to install its packages some time ago but it give me fpc.cfg errors and i was unable to write such file to protected system folder (in Linux i can write to /bin).

Once FreePascal will work in Haiku 32/64 is a matter of time Lazarus will be supported officially, but they must be motivated for active downloads and use.
In the past there was bepascal, a lot of effort but little or none use so the project was abbandoned.

Lazarus is looking for its settings in the wrong folder. You can do the following to ā€˜fixā€™ that:
cp /system/data/fpc/fpc.cfg /etc

2 Likes

Hi,

As I just stated (offtopic) here:

I want to ping this thread about my changes to termios inside FPC because of changes in Haiku done in the past. I created a bugreport over at FPC and forgot to enable email notifications and never checked back Iā€™m afraid.
The people at FPC are listening apparantly as there are some questions that need to be answered, and maybe the route to the solution (serial port trouble) changed in Haiku and/or in FPC.

I need help with that or maybe even better: can someone take over for me!?

Bugreport is here:
Found the bugreport over at FPC:
https://bugs.freepascal.org/view.php?id=36958

And the questions open are:

Just a few points Iā€™d like to have cleared up:

  • in termios.inc itā€™s essentially only the name of a few constants that were changed (and some added)?
  • the only effective changes for termiosproc.inc are the changes in CFSetISpeed and CFSetOSpeed?
  • is there a reason why you changed from using imports for tcflow(), tcflush() and tcdrain() to using fpIoCtl? From what I can see the code for them in libroot looks the same, but now weā€™d have the problem should these implementations be changed weā€™d have to update termiosproc.inc again as well

Thanks a lot!

5 Likes

FPC and the sources for version 3.2.2 are already available at haikuports, I managed to build Lazarus so far (no package) but launching it still fails to find libQt5Pas.so.1 ā€¦ need to see how the package from @s40in was made :slight_smile:

Donā€™t remember by heart Iā€™m afraid. Anyhow, you did see that the sources for this are inside lazarus at fpcupdeluxe/lazarus/lcl/interfaces/qt5/cbindings I take itā€¦

Yes, tryā€™d with building them inside the source also, no luck there ā€¦ Iā€™m doing some checkouts for the package for libQt5Pas atm

I think I used those sources instead of the old sources in the qt5 beos/haiku package you can find online. That works perfectly, though on some occasions I had to modify (upgrade) some parts in the past IIRC.

So youā€™re on the right track (combine them :wink: )

OK, repackaged libQt5Pas and it builds ok (Lazarus), on launch it still doesnā€™t seem to find libQt5pas.so.1 (copyā€™d it over to ~/config/non-packaged/lib and then it seems to find it)
But then it fails to find libstdc++.r4.so? (not sure which one is responsible for it now ā€¦ libQt5Pas/FPC/Lazarus?)

~/destdir/bin> startlazarus 
runtime_loader: Cannot open file libstdc++.r4.so: No such file or director

For applications on windows I always just dump the bindings in the application folder itself, so where the exe is, along with the needed Qt core libs and their dependancies. I donā€™t recall at this moment where it needs to be for laz on haiku. could you as a test not just look in the pkg files which I posted, or in the originals? Another thing: what if you start lazarus directly? I am guessing ā€˜startlazarusā€™ is not lazarus IDE itself?

Please note Iā€™m sort of a beginner myself with this stuff :wink:

EDIT: Oh yeah, itā€™s important to use the same libs /dependancies for compiling the bindings as is done for the app, I seem to remember otherwise youā€™ll get missing symbols. Ah, and same goes for the used compiler.

Checked, the build I did for FPC is gcc8, libQt5Pas also, switched to x86 in Terminal, so compiler wise it should be the same.
lazarus (lazarus-ide links to it) and startlazarus wonā€™t start due previous error: will post a screenshot in a while, Iā€™ve checked several options to place the lybraries (non-packaged/alongside/intree in ./lib) all the same ā€¦

Lazarus

2 Likes

Something fishy, because that missing libstdc++.r4.so lib is gcc2 lib. Something went wrong in the executable linking stage, gcc4+ programs should not depend on that lib AFAIK.

Also you guys should strip that 120+mb lib.

That one isnā€™t included at haikuports, that is the internal build in the sourcetree from lazarus :slight_smile:
Doesnā€™t matter if I use that one or the one provided in the depot (1.2.9), same results, so itā€™s either FPC or Lazarus pulling libstdc++.r4.so in :frowning:

On 64bit :ok_hand:

Lazaus-2-0-12-x86-64

12 Likes

wow, some months ago i was able to compile a beta version but it was not stable.
Now that you have a running version then you can create a package :slight_smile:

New Lazarus Release Candidate need a specific qt compilation from code bindings.

Iā€™m just the messenger, even if I got it to build atm on 64bit I wouldnā€™t have a clue how to use it :wink:
Iā€™ll leave that to the experts ā€¦ and when it comes to it ā€¦ patches welcome :slight_smile:

EDIT for the Qt bindings there is already the package in haikuports libQt5Pas :slight_smile:

Steps I did here to build Lazarus on 64bit (started with a recipe but getting weird errors atm (32bit), so that has to wait and needs investigation) :slight_smile:

Download lazarus source: https://sourceforge.net/projects/lazarus/files/Lazarus%20Zip%20_%20GZip/Lazarus%202.0.12/lazarus-2.0.12.tar.gz

Install: fpc,fpc_source and libqt5pas from haikuports (gdb for the debugger but that's not needed for the build)

Extract the source cd to the source and run the next commands from Terminal:

export FPCDIR=/boot/system/lib/fpc/3.2.2/src/
fpcmake -r
cd components/
fpcmake -r
cd ../lcl/
fpcmake -r
cd interfaces/
fpcmake -r
cd nogui/
fpcmake -r
cd ../../../tools/
fpcmake -r
cd ../lcl/interfaces/qt5/
fpcmake -r
cd ../../../
make LCL_PLATFORM=qt5 (to use with 'bigide' it needs more finetuning)
2 Likes

Genius! :clap: :clap: :clap:

I need time now to get back on track!!!

Thanks @Begasus !!
Regards,
RR

2 Likes

Nice!
So I tried this, but I get following output:

~/lazarus> make LCL_PLATFORM=qt5
make -C packager/registration
make[1]: Entering directory ā€˜/boot/home/lazarus/packager/registrationā€™
/bin/rm -f ā€¦/units/x86_64-haiku/fcllaz.ppu
/boot/system/bin/ppcx64 -MObjFPC -Scghi -O1 -g -gl -l -vewnhibq -Fu. -Fu/boot/system/lib/fpc/3.2.2/src//rtl -FE. -FUā€¦/units/x86_64-haiku -dx86_64 fcllaz.pas
Free Pascal Compiler version 3.2.2 [2021/07/02] for x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
Warning: (11053) The selected debug format is not supported on the current target, not changing the current setting
(1002) Target OS: Haiku for x86_64
(3104) Compiling fcllaz.pas
Fatal: (10022) Canā€™t find unit system used by fcllaz
Fatal: (1018) Compilation aborted
Makefile:3234: recipe for target ā€˜fcllaz.ppuā€™ failed
make[1]: *** [fcllaz.ppu] Error 1
make[1]: Leaving directory ā€˜/boot/home/lazarus/packager/registrationā€™
Makefile:1989: recipe for target ā€˜registrationā€™ failed
make: *** [registration] Error 2

Any idea whatā€™s wrong here?

Thanks!

2 Likes

Needs some investigations I guess, on my current 64bit install it works fine, but Iā€™ve seen this also on my 32bit install ā€¦

libQt5Pas can be obtained compiled from latest fpcupdeluxe (32&64bits).
Then you can copy to Lazarus directory before Lazarus compilation.

1 Like