Recent

Author Topic: Lazarus Release 3.6  (Read 30525 times)

backprop

  • Full Member
  • ***
  • Posts: 119
Re: Lazarus Release 3.6
« Reply #30 on: October 12, 2024, 08:48:55 am »
> Debugger:
If you are Win/Linux with an Intel/AMD CPU then ensure to use FpDebug.

In any case, if you have issues open a thread with specific details.

It seems that 3.2 was broken release for me with KDE Neon and Ryzen. Now Neon also have new release, thus I will see...

However, I needed to install Lazarus from ground and reload packages. Otherwise it refuses to compile with existed updated config file.


vfclists

  • Hero Member
  • *****
  • Posts: 1147
    • HowTos Considered Harmful?
Re: Lazarus Release 3.6
« Reply #31 on: October 12, 2024, 09:22:09 am »
The Debian package of Lazarus is not installable on Debian 11: dpkg exits with this error message:
Code: [Select]
uses unknown compression for member 'control.tar.zst', giving upWorkaround: repack it with a script.
Code: Bash  [Select][+][-]
  1. #!/bin/sh
  2. mkdir -p pkgtemp/DEBIAN
  3. ar x "$1"
  4. rm "$1" debian-binary
  5. tar --zstd -xf control.tar.zst
  6. rm control.tar.zst
  7. mv conffiles control pkgtemp/DEBIAN/
  8. tar --zstd -xf data.tar.zst
  9. rm data.tar.zst
  10. mv etc usr pkgtemp/
  11. dpkg-deb -b pkgtemp "$1"
  12. rm -rf pkgtemp
  13.  
This way the dpkg in Debian 11 will be able to install the package too. As a side effect the package will be smaller by ~7% (~10 MB).
And after that, Lazarus does not work anymore.
Code: [Select]
startlazarus: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by startlazarus)
Code: [Select]
lazarus-ide: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by lazarus-ide)

The packages are probably being built on newer versions of Debian. The packagers need to build for Debian 11 and earlier if needed.

I got the same error when I tried to install the current version of libQtPas on a Debian 11 system and had to use the same workaround.

Debian 11 also depends on earlier glibc-2.31.
Lazarus 3.0/FPC 3.2.2

Ericktux

  • Sr. Member
  • ****
  • Posts: 353
Re: Lazarus Release 3.6
« Reply #32 on: October 19, 2024, 08:51:48 am »
muchas gracias chicos, genial trabajo, belleza de software

TRon

  • Hero Member
  • *****
  • Posts: 3844
Re: Lazarus Release 3.6
« Reply #33 on: October 23, 2024, 10:47:38 pm »
Is is me or is something broken ?

host: linux x86_64
source: https://sourceforge.net/projects/lazarus/files/Lazarus%20Zip%20_%20GZip/Lazarus%203.6/lazarus-3.6-0.tar.gz/download
build: make clean bigide

building lazarus with FPC 3.2.3 using my script results in:
Code: [Select]
(3104) Compiling objectlists.pas
(3104) Compiling textstrings.pas
(3104) Compiling uitypes.pas
/media/ramdisk/work/src/lazarus/components/lazutils/uitypes.pas(107,5) Fatal: (2003) Syntax error, ")" expected but "," found
Fatal: (1018) Compilation aborted
I do not have to remember anything anymore thanks to total-recall.

dbannon

  • Hero Member
  • *****
  • Posts: 3203
    • tomboy-ng, a rewrite of the classic Tomboy
Re: Lazarus Release 3.6
« Reply #34 on: October 24, 2024, 12:41:43 am »
works OK for me. Its here -

Code: [Select]
93   ModalResultStr: array[mrNone..mrLast] of shortstring = (
 94     'mrNone',
 95     'mrOk',
 96     'mrCancel',
 97     'mrAbort',
 98     'mrRetry',
 99     'mrIgnore',
100     'mrYes',
101     'mrNo',
102     'mrAll',
103     'mrNoToAll',
104     'mrYesToAll',
105     'mrClose'
106     {$IF FPC_FULLVERSION>=30203}
107     ,                                                   // This line, this comma !
108     'mrContinue',
109     'mrTryAgain'
110     {$ENDIF}
111     );

Code looks fine too !  Is your mrLast set to the 'wrong' value somehow ?  Maybe where ever it is defined needs recompile, its sensitive to the FPV322->FPC323 upgrade.

Davo

Davo
Lazarus 3, Linux (and reluctantly Win10/11, OSX Monterey)
My Project - https://github.com/tomboy-notes/tomboy-ng and my github - https://github.com/davidbannon

TRon

  • Hero Member
  • *****
  • Posts: 3844
Re: Lazarus Release 3.6
« Reply #35 on: October 24, 2024, 01:34:58 am »
Thank you very much for the feedback dbannon.

Seems to be an issue at my side but I am a bit confused (nothing that a re-build can't fix).

According to the date my FPC 3.2.3 is from august 7th 2024 though the contents of the corresponding system.uitypes shows:
Code: Pascal  [Select][+][-]
  1. mrNone = 0;
  2.   mrOK = mrNone + 1;
  3.   mrCancel = mrNone + 2;
  4.   mrAbort = mrNone + 3;
  5.   mrRetry = mrNone + 4;
  6.   mrIgnore = mrNone + 5;
  7.   mrYes = mrNone + 6;
  8.   mrNo = mrNone + 7;
  9.   mrAll = mrNone + 8;
  10.   mrNoToAll = mrNone + 9;
  11.   mrYesToAll = mrNone + 10;
  12.   mrClose = mrNone + 11;
  13.   mrLast = mrClose;
  14.  

and that does not match the code from gitlab (e.g. missing the two extra entries  mrContinue and mrTryAgain). Gitlab also shows that this particular file has not been touched (inside fixes) since February 12th 2024.

Ergo you are correct with your hunch there Davo. Having it mentioned put me on the right track so that it was easy to find. Thx for that.

So... something seems to be off with the (actual) date from my current FPC 3.2.3 install. The confusing part is that I don't know why/how.

For anyone reading this, consider the issue fixed and sorry for the noise.
I have to upheld my report. Neither fixes 3_2 nor 3.2.3 is able to compile Lazarus 3.6. next attempt is reverting back to 3.2.2
« Last Edit: October 24, 2024, 03:08:18 am by TRon »
I do not have to remember anything anymore thanks to total-recall.

dbannon

  • Hero Member
  • *****
  • Posts: 3203
    • tomboy-ng, a rewrite of the classic Tomboy
Re: Lazarus Release 3.6
« Reply #36 on: October 24, 2024, 03:17:00 am »
OK, I am using FPC release_3_2_4-branch. Now, I believe that that is almost the same as Fixes_3_2 and that is almost the same as FPC 3.2.3.  But, it seems, the key word here is "almost".

I suggest you try release_3_2_4-branch, aka release_3_2_4-branch-rc1

Davo
Lazarus 3, Linux (and reluctantly Win10/11, OSX Monterey)
My Project - https://github.com/tomboy-notes/tomboy-ng and my github - https://github.com/davidbannon

TRon

  • Hero Member
  • *****
  • Posts: 3844
Re: Lazarus Release 3.6
« Reply #37 on: October 24, 2024, 06:12:16 am »
Thank you very much for the suggestion dbannon. That version indeed seem to build Lazarus as intended.

In the meanwhile I figured out that the failure to build Lazarus 3.6 with FPC fixes (3.3.1) was due to a caching issue at my side.

in order to make Lazarus 3.6 able to be build with FPC 3.2.3 (3.2.2 fixes):
Code: [Select]
    sed -i -e 's/{$IF FPC_FULLVERSION>=30203}/{$IF FPC_FULLVERSION>30203}/g' "./src/lazarus/components/lazutils/graphtype.pp"
    sed -i -e 's/{$IF FPC_FULLVERSION>=30203}/{$IF FPC_FULLVERSION>30203}/g' "./src/lazarus/components/lazutils/uitypes.pas"
    sed -i -e 's/{$IF FPC_FULLVERSION>=30203}/{$IF FPC_FULLVERSION>30203}/g' "./src/lazarus/lcl/controls.pp"
    sed -i -e 's/{$IF FPC_FULLVERSION >= 30203}/{$IF FPC_FULLVERSION>30203}/g' "./src/lazarus/lcl/controls.pp"
    sed -i -e 's/{$IF FPC_FULLVERSION>=30203}/{$IF FPC_FULLVERSION>30203}/g' "./src/lazarus/lcl/dialogs.pp"
    sed -i -e 's/{$IF FPC_FULLVERSION>=30203}/{$IF FPC_FULLVERSION>30203}/g' "./src/lazarus/lcl/graphics.pp"
    sed -i -e 's/{$if FPC_FullVersion < 30203}/{$if FPC_FullVersion <= 30203}/g' "./src/lazarus/lcl/lazcanvas.pas"
    sed -i -e 's/{$IF FPC_FullVersion < 30203}/{$IF FPC_FullVersion <= 30203}/g' "./src/lazarus/lcl/lazcanvas.pas"
😫


EDIT:
Problem solved: 3.2.3 in repo <> FPC fixes _3_2


PS: *sight*
startup-dialog, searching for sources, answer:
/home/admin/Games/Heroic/Prefixes/default/LEGO The Lord of the Rings/dosdevices/z:/media/remote/buzz/home/apps/fpc/3.2.2/source

Please, just stop doing these things !
« Last Edit: October 29, 2024, 12:57:27 am by TRon »
I do not have to remember anything anymore thanks to total-recall.

pleumann

  • Jr. Member
  • **
  • Posts: 97
Re: Lazarus Release 3.6
« Reply #38 on: November 12, 2024, 07:13:31 pm »
Awesome! And 4.0 is around the corner. Thanks, Lazarus team, for this awesome IDE!

c600g

  • New Member
  • *
  • Posts: 45
Re: Lazarus Release 3.6
« Reply #39 on: December 24, 2024, 12:42:27 am »
The packages are probably being built on newer versions of Debian. The packagers need to build for Debian 11 and earlier if needed.

I got the same error when I tried to install the current version of libQtPas on a Debian 11 system and had to use the same workaround.

Debian 11 also depends on earlier glibc-2.31.

The same issue occurs with Ubuntu 20.04. It looks as if 3.4 and earlier work, but 3.6 does not due to the GLIBC compatibility issues.

dbannon

  • Hero Member
  • *****
  • Posts: 3203
    • tomboy-ng, a rewrite of the classic Tomboy
Re: Lazarus Release 3.6
« Reply #40 on: December 28, 2024, 12:52:21 am »
The same issue occurs with Ubuntu 20.04. It looks as if 3.4 and earlier work, but 3.6 does not due to the GLIBC compatibility issues.

Its not a FPC problem, not a distribution problem c600g, its a GLIB 'issue'. Code built on the newer version of GLIBC will not run on older operation systems. It has been widely discussed on this forum and elsewhere. Very widely....

In terms of distributions, its all about when that distribution updated to the new version of glibc. So, for example, Debian 11, U20.04 and their derivatives should be used to build binaries that will be distributed. There are similar 'boundaries' in all distributions.

I recommend you keep, for example, U20.04 in Virtual Machine and build your releases there. U20.04 was a very good release, it worked well, did not have too much SNAP pollution and has the earlier glibc.

Davo

Lazarus 3, Linux (and reluctantly Win10/11, OSX Monterey)
My Project - https://github.com/tomboy-notes/tomboy-ng and my github - https://github.com/davidbannon

c600g

  • New Member
  • *
  • Posts: 45
Re: Lazarus Release 3.6
« Reply #41 on: January 03, 2025, 09:24:58 pm »
The same issue occurs with Ubuntu 20.04. It looks as if 3.4 and earlier work, but 3.6 does not due to the GLIBC compatibility issues.

Its not a FPC problem, not a distribution problem c600g, its a GLIB 'issue'. Code built on the newer version of GLIBC will not run on older operation systems. It has been widely discussed on this forum and elsewhere. Very widely....

I'm aware of the issue, which is why it was mentioned in the message. Perhaps I did a poor job of explaining the issue, so let me try again, with added background information on what I am trying to accomplish.

1. I am attempting to automate a build/release process on GitHub using GitHub actions, building the software for multiple operating systems (Windows, Linux), distributions (Ubuntu, Debian, etc.), and (eventually) architectures (x86 and aarch64).

2. To do this, GitHub spins up an instance of each OS-distribution-version-architecture that we want to support. I then need to install FPC / Lazarus and execute our build/release script.

3. Instead of being stuck with the versions of FPC / Lazarus that are included in each Linux distribution, it would be nice to be able to use the most up to date version of FPC / Lazarus across them all. Ubuntu 20.04 only has FPC 3.0.4, and there have been many bug fixes since that release. With this in mind, I've been using the .deb files provided by Lazarus on the Sourceforge page.

What I don't understand is why the Lazarus .deb files provided by the Lazarus project on Sourceforge for versions up to and including 3.4 were built with the older glibc compatibility and 3.6 was not.

Perhaps I should scrap the idea of using the latest version of FPC and Lazarus across all platforms, however I worry about using different versions of the compiler.

Cheers!

TRon

  • Hero Member
  • *****
  • Posts: 3844
Re: Lazarus Release 3.6
« Reply #42 on: January 03, 2025, 09:33:44 pm »
What I don't understand is why the Lazarus .deb files provided by the Lazarus project on Sourceforge for versions up to and including 3.4 were built with the older glibc compatibility and 3.6 was not.
Simply because the buildsystem gebnrating those deb files was being upgraded.

Quote
Perhaps I should scrap the idea of using the latest version of FPC and Lazarus across all platforms, however I worry about using different versions of the compiler.
The idea is good but the approach (e.g. chosen shortcut) is wrong  :)

Build the (new) compiler from source. One (release) version at a time if required.
I do not have to remember anything anymore thanks to total-recall.

c600g

  • New Member
  • *
  • Posts: 45
Re: Lazarus Release 3.6
« Reply #43 on: January 03, 2025, 09:53:33 pm »
The idea is good but the approach (e.g. chosen shortcut) is wrong  :)

Build the (new) compiler from source. One (release) version at a time if required.

If there was a simple and automated CLI way of doing so (e.g. rustup), I'd be happy to do it although the build overhead is not something that is ideal.

Thanks for the confirmation on the build system change, at least.

dbannon

  • Hero Member
  • *****
  • Posts: 3203
    • tomboy-ng, a rewrite of the classic Tomboy
Re: Lazarus Release 3.6
« Reply #44 on: January 04, 2025, 01:07:58 am »
....
3. Instead of being stuck with the versions of FPC / Lazarus that are included in each Linux distribution, it would be nice to be able to use the most up to date version of FPC / Lazarus across them all. Ubuntu 20.04 only has FPC 3.0.4, and there have been many bug fixes since that release. With this in mind, I've been using the .deb files provided by Lazarus on the Sourceforge page.

OK, I see what you are doing. All I can think of is a script that first installs the U20.04 repo FPC, downloads, perhaps 3.2.4rc1 and builds it (from memory 3.0.4 will build 3.2.4rc1 but maybe not ?). Then, download Lazarus 3.6 source and build that. It does sound complicated but once scripted, easy enough and probably quite reliable.

What I don't understand is why the Lazarus .deb files provided by the Lazarus project on Sourceforge for versions up to and including 3.4 were built with the older glibc compatibility and 3.6 was not.
I don't understand that either. Bit sad.

Quote
Perhaps I should scrap the idea of using the latest version of FPC and Lazarus across all platforms, however I worry about using different versions of the compiler.

If you are using things like ssl then a newer FPC is a pretty good idea. And each release of Lazarus is usually just a bit better in lots of different ways. I most certainly insist on using the latest possible. On an official Debian build for example, that means FPC322 and Lazarus 3.6 because its Trixie and the glib issue does not exist. But for my "one size fits all" packages, I build on a U20.04 VM with the updated FPC/Lazarus manually installed.

Instead of building on a Github runner, I understand (actually, I don't understand) you can use a prebuilt docker image, maybe self hosted ?  That way, the messy process of setting un the U20.04 machine is only done once.

One more wild suggestion, getting dodgy here I am afraid. As I build quite a lot of VMs for testing, I got sick of the "install an old compiler and then use that to build a new one" model, slow and disk consuming. So, I keep some prebuilt FPC3.2.4rc1 "images" https://github.com/davidbannon/FPC_Laz_Install that gets me a ready to run FPC324rc1 compiler without the intermediate steps. Its personalised for me although you are welcome to use them (you should allow me to update that repo first). Or you just copy the idea. It works for me !

Davo

Lazarus 3, Linux (and reluctantly Win10/11, OSX Monterey)
My Project - https://github.com/tomboy-notes/tomboy-ng and my github - https://github.com/davidbannon

 

TinyPortal © 2005-2018