Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2023-11

Building lazarus broken ?

7 messages · 2 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Michael Van Canneyt

Hi,

I did some changes to the fpcunit support. All worked in the IDE.

In order to push my changes, I did a git pull.

The change broke the "make bigide" command, so I was told by the CI/CD.

Turns out the makefiles did not respect the lazarus dependencies in the packages: the new dependency on the codetools package was not taken into account by the makefiles. (how an uninitiated heathen like me is supposed to know this is probably only known to the happy initiated... ;))

I managed to fix that, fix is pushed so 'make bigide' works again.

However, the git pull destroyed building the IDE in the IDE. For some reason, the IDE (I'm on linux mint) thinks it needs to build a cocoa version of the LCL.

This is the lcl.pas as generated by the build procedure:

uses
   AllLCLIntfUnits, CocoaConfig, CocoaCursor, CocoaMenus, LazarusPackageIntf;

In the build settings, I did specify gtk2,linux,x86_64 as the platform settings.

So why does the IDE insist on recreating a cocoa version of lcl.pas ?

Michael.

Reply by email

Michael Van Canneyt
to Michael Van Canneyt
Michael Van Canneyt wrote 29 lines
Hi, I did some changes to the fpcunit support. All worked in the IDE. In order to push my changes, I did a git pull. The change broke the "make bigide" command, so I was told by the CI/CD. Turns out the makefiles did not respect the lazarus dependencies in the packages: the new dependency on the codetools package was not taken into account by the makefiles. (how an uninitiated heathen like me is supposed to know this is probably only known to the happy initiated... ;)) I managed to fix that, fix is pushed so 'make bigide' works again. However, the git pull destroyed building the IDE in the IDE. For some reason, the IDE (I'm on linux mint) thinks it needs to build a cocoa version of the LCL. This is the lcl.pas as generated by the build procedure: uses AllLCLIntfUnits, CocoaConfig, CocoaCursor, CocoaMenus, LazarusPackageIntf; In the build settings, I did specify gtk2,linux,x86_64 as the platform settings. So why does the IDE insist on recreating a cocoa version of lcl.pas ?

Well, as usual I found the answer myself after asking the question :/

This is the culprit:

---
commit f821ad251b945f3435303f208b2e7de045749424
Author: rich2014
Date: Sun Nov 19 18:36:11 2023 +0800

Lcl: udpate lcl lpk and cocoa unit files
---

I undid that commit:

Clearly, the LCL package should not use any platform/wigetset specific units.

Maybe time to introduce 'conditional inclusion' of units at least for the widgetset/platform ?

Michael.

Reply by email

Maxim Ganetsky
to Michael Van Canneyt

19.11.2023 19:21, Michael Van Canneyt via lazarus ?????:

Show quoted text 49 lines
On Sun, 19 Nov 2023, Michael Van Canneyt via lazarus wrote: > > Hi, > > I did some changes to the fpcunit support. All worked in the IDE. > > In order to push my changes, I did a git pull. > > The change broke the "make bigide" command, so I was told by the CI/CD. > > Turns out the makefiles did not respect the lazarus dependencies in the > packages: the new dependency on the codetools package was not taken into > account by the makefiles. (how an uninitiated heathen like me is > supposed to > know this is probably only known to the happy initiated... ;)) > > I managed to fix that, fix is pushed so 'make bigide' works again. > > However, the git pull destroyed building the IDE in the IDE. > For some reason, the IDE (I'm on linux mint) thinks it needs to build a > cocoa version of the LCL. > > This is the lcl.pas as generated by the build procedure: > > uses > ?AllLCLIntfUnits, CocoaConfig, CocoaCursor, CocoaMenus, > LazarusPackageIntf; > > In the build settings, I did specify gtk2,linux,x86_64 as the platform > settings. > > So why does the IDE insist on recreating a cocoa version of lcl.pas ? Well, as usual I found the answer myself after asking the question :/ This is the culprit: --- commit f821ad251b945f3435303f208b2e7de045749424 Author: rich2014 Date:?? Sun Nov 19 18:36:11 2023 +0800 ??? Lcl: udpate lcl lpk and cocoa unit files --- I undid that commit:

No need to do this.

Clearly, the LCL package should not use any platform/wigetset specific units.

I changed settings for newly added units, they should not be included in lcl.pas just like other ones in LCL interfaces.

Also I added link to the package you added.

Build works fine now.

Best regards, Maxim Ganetsky mailto:

Reply by email

Maxim Ganetsky
to Michael Van Canneyt: I did some changes to the fpcunit support. All worked in the IDE. In order to push my…

19.11.2023 19:07, Michael Van Canneyt via lazarus ?????:

Show quoted text 16 lines
Hi, I did some changes to the fpcunit support. All worked in the IDE. In order to push my changes, I did a git pull. The change broke the "make bigide" command, so I was told by the CI/CD. Turns out the makefiles did not respect the lazarus dependencies in the packages: the new dependency on the codetools package was not taken into account by the makefiles. (how an uninitiated heathen like me is supposed to know this is probably only known to the happy initiated... ;)) I managed to fix that, fix is pushed so 'make bigide' works again.

Makefiles are updated by updatemakefiles tool:

Make sure *Additions and Overrides* are empty and run

FPCDIR=/path/to/fpc/src/trunk PATH=/path/trunk/fpc/utils/fpcm/bin/x86_64-linux/:$PATH ./tools/updatemakefiles

Best regards, Maxim Ganetskymailto: -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20231119/1d1dd04f/attachment.htm>

Reply by email

Michael Van Canneyt
to Maxim Ganetsky: 19.11.2023 19:21, Michael Van Canneyt via lazarus ?????: No need to do this. I changed…
Maxim Ganetsky wrote 51 lines
19.11.2023 19:21, Michael Van Canneyt via lazarus ?????: > > > On Sun, 19 Nov 2023, Michael Van Canneyt via lazarus wrote: > >> >> Hi, >> >> I did some changes to the fpcunit support. All worked in the IDE. >> >> In order to push my changes, I did a git pull. >> >> The change broke the "make bigide" command, so I was told by the CI/CD. >> >> Turns out the makefiles did not respect the lazarus dependencies in the >> packages: the new dependency on the codetools package was not taken into >> account by the makefiles. (how an uninitiated heathen like me is >> supposed to >> know this is probably only known to the happy initiated... ;)) >> >> I managed to fix that, fix is pushed so 'make bigide' works again. >> >> However, the git pull destroyed building the IDE in the IDE. >> For some reason, the IDE (I'm on linux mint) thinks it needs to build a >> cocoa version of the LCL. >> >> This is the lcl.pas as generated by the build procedure: >> >> uses >> ?AllLCLIntfUnits, CocoaConfig, CocoaCursor, CocoaMenus, >> LazarusPackageIntf; >> >> In the build settings, I did specify gtk2,linux,x86_64 as the platform >> settings. >> >> So why does the IDE insist on recreating a cocoa version of lcl.pas ? > > Well, as usual I found the answer myself after asking the question :/ > > This is the culprit: > > --- > commit f821ad251b945f3435303f208b2e7de045749424 > Author: rich2014 > Date:?? Sun Nov 19 18:36:11 2023 +0800 > > ??? Lcl: udpate lcl lpk and cocoa unit files > --- > > I undid that commit: No need to do this.

Well, it broke the build.

Show quoted text 5 lines
> Clearly, the LCL package should not use any platform/wigetset specific > units. I changed settings for newly added units, they should not be included in lcl.pas just like other ones in LCL interfaces.

Also good. Thank you.

Still, I think this is the single failure of the lazarus package system that needs to be addressed:

The missing ability to include units or requirements for certain widgetsets/platforms.

(and similarly in Delphi, obviously)

Michael.

Reply by email

Michael Van Canneyt
to Maxim Ganetsky: 19.11.2023 19:07, Michael Van Canneyt via lazarus ?????: Makefiles are updated by…
Maxim Ganetsky wrote 25 lines
19.11.2023 19:07, Michael Van Canneyt via lazarus ?????: > > Hi, > > I did some changes to the fpcunit support. All worked in the IDE. > > In order to push my changes, I did a git pull. > > The change broke the "make bigide" command, so I was told by the CI/CD. > > Turns out the makefiles did not respect the lazarus dependencies in the > packages: the new dependency on the codetools package was not taken into > account by the makefiles. (how an uninitiated heathen like me is supposed > to > know this is probably only known to the happy initiated... ;)) > > I managed to fix that, fix is pushed so 'make bigide' works again. Makefiles are updated by updatemakefiles tool: Make sure *Additions and Overrides* are empty and run FPCDIR=/path/to/fpc/src/trunk PATH=/path/trunk/fpc/utils/fpcm/bin/x86_64-linux/:$PATH ./tools/updatemakefiles

Thank you.

Maybe this should be documented somewhere ?

Michael

Reply by email

Maxim Ganetsky
to Michael Van Canneyt

20.11.2023 0:51, Michael Van Canneyt via lazarus ?????:

Show quoted text 33 lines
On Sun, 19 Nov 2023, Maxim Ganetsky via lazarus wrote: > 19.11.2023 19:07, Michael Van Canneyt via lazarus ?????: >> >> Hi, >> >> I did some changes to the fpcunit support. All worked in the IDE. >> >> In order to push my changes, I did a git pull. >> >> The change broke the "make bigide" command, so I was told by the CI/CD. >> >> Turns out the makefiles did not respect the lazarus dependencies in the >> packages: the new dependency on the codetools package was not taken into >> account by the makefiles. (how an uninitiated heathen like me is >> supposed to >> know this is probably only known to the happy initiated... ;)) >> >> I managed to fix that, fix is pushed so 'make bigide' works again. > > Makefiles are updated by updatemakefiles tool: > > Make sure *Additions and Overrides* are empty and run > > FPCDIR=/path/to/fpc/src/trunk > PATH=/path/trunk/fpc/utils/fpcm/bin/x86_64-linux/:$PATH > ./tools/updatemakefiles Thank you. Maybe this should be documented somewhere ?

Actually it was a copy-paste from Lazarus release management page in Wiki: https://wiki.freepascal.org/Lazarus_3.0_fixes_branch#Tagging_release

So it is documented. :)

But documentation can be improved indeed.

Best regards, Maxim Ganetsky mailto:

Reply by email