Can't compile TMS FNC UI Pack in Lazarus

I got a message dialog with the following message:

The file "/home/tobias/Programme/Lazarus/TMSTest/tools/TMS FNC UI Pack/" of package LCLTMSFNCUIPackPkg 3.3 was not found

I can ignore this but stop at the same error like before...

Hi,

We have tested this here but haven't experienced issues. It's unclear exactly what happens. This could be an issue inside Lazarus as well with dependent packages. Can you try to ONLY compile the Designtime packages so:

  1. Open and compile LCLTMSFNCCorePkgDE.lpk
  2. Open and compile LCLTMSFNCUIPackPkgDE.lpk, then click on install

So do NOT compile nor install other packages.

Dear Pieter,

please read my post with the step-by-step documentation carefully. I wrote:

New clean installation without any addons...

  1. Created a complete new stable environment with FPCUPdeluxe (Lazarus 2.0.12 GTK2, FPC 3.2.2), no modules, no additional comonents, ...
  2. Opened the "LCLTMSFNCCorePkgDE.lpk" as package and click on compile -> No Problem -> Works
  3. Opened the "LCLTMSFNCUIPackPkgDE.lpk" as package and click on compile -> Error
Messages, Warnings: 4
Warning: other unit files search path (aka unit path) of "LCLTMSFNCCorePkgDE 2.5" contains "/home/tobias/Programme/Lazarus/TMSTest/tools/TMS FNC Core", which belongs to package "LCLTMSFNCCorePkg"
Warning: other unit files search path (aka unit path) of "LCLTMSFNCUIPackPkg 3.3" contains "/home/tobias/Programme/Lazarus/TMSTest/tools/TMS FNC UI Pack", which belongs to package "LCLTMSFNCUIPackPkgDE"
Warning: other unit files search path (aka unit path) of "LCLTMSFNCCorePkg 2.5" contains "/home/tobias/Programme/Lazarus/TMSTest/tools/TMS FNC Core", which belongs to package "LCLTMSFNCCorePkgDE"
Warning: other unit files search path (aka unit path) of "LCLTMSFNCUIPackPkgDE 3.3" contains "/home/tobias/Programme/Lazarus/TMSTest/tools/TMS FNC UI Pack", which belongs to package "LCLTMSFNCUIPackPkg"
Compile package LCLTMSFNCUIPackPkg 3.3: Exit code 1, Errors: 1, Warnings: 1, Hints: 43
Hint: Start of reading config file /home/tobias/Programme/Lazarus/TMSTest/fpc/bin/x86_64-linux/fpc.cfg
Hint: End of reading config file /home/tobias/Programme/Lazarus/TMSTest/fpc/bin/x86_64-linux/fpc.cfg
Verbose: Free Pascal Compiler version 3.2.2-r49371 [2021/07/04] for x86_64
Verbose: Copyright (c) 1993-2021 by Florian Klaempfl and others
Verbose: Target OS: Linux for x86-64
Verbose: Compiling LCLTMSFNCUIPackPkg.pas
Verbose: Compiling LCLTMSFNCCustomGrid.pas
Verbose: Compiling LCLTMSFNCEdit.pas
Verbose: Compiling LCLTMSFNCToolBar.pas
Verbose: Compiling LCLTMSFNCBitmapSelector.pas
Verbose: Compiling LCLTMSFNCCustomSelector.pas
fgl.pp(930,1) Hint: "inherited" not yet supported inside inline procedure/function
fgl.pp(930,1) Hint: Inlining disabled
fgl.pp(945,1) Hint: "inherited" not yet supported inside inline procedure/function
fgl.pp(945,1) Hint: Inlining disabled
fgl.pp(1005,1) Hint: "inherited" not yet supported inside inline procedure/function
fgl.pp(1005,1) Hint: Inlining disabled
fgl.pp(1010,1) Hint: "inherited" not yet supported inside inline procedure/function
fgl.pp(1010,1) Hint: Inlining disabled
fgl.pp(963,1) Hint: "inherited" not yet supported inside inline procedure/function
fgl.pp(963,1) Hint: Inlining disabled
fgl.pp(968,1) Hint: "inherited" not yet supported inside inline procedure/function
fgl.pp(968,1) Hint: Inlining disabled
fgl.pp(950,1) Hint: "inherited" not yet supported inside inline procedure/function
fgl.pp(950,1) Hint: Inlining disabled
fgl.pp(955,1) Hint: "inherited" not yet supported inside inline procedure/function
fgl.pp(955,1) Hint: Inlining disabled
fgl.pp(997,1) Hint: "inherited" not yet supported inside inline procedure/function
fgl.pp(997,1) Hint: Inlining disabled
fgl.pp(1023,7) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Add(const Item:TTMSFNCCustomSelectorDisplayItem):LongInt;" marked as inline is not inlined
fgl.pp(1023,20) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Get(Index:LongInt):<record type>;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(499,23) Hint: Local variable "itposarr" of a managed type does not seem to be initialized
LCLTMSFNCCustomSelector.pas(546,11) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Add(const Item:TTMSFNCCustomSelectorDisplayItem):LongInt;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(801,40) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Get(Index:LongInt):<record type>;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(845,26) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Get(Index:LongInt):<record type>;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(879,26) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Get(Index:LongInt):<record type>;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(896,26) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Get(Index:LongInt):<record type>;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(921,26) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Get(Index:LongInt):<record type>;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(922,127) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Get(Index:LongInt):<record type>;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(923,38) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Get(Index:LongInt):<record type>;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(923,64) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Get(Index:LongInt):<record type>;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(924,27) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Get(Index:LongInt):<record type>;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(940,26) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Get(Index:LongInt):<record type>;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(965,26) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Get(Index:LongInt):<record type>;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(966,129) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Get(Index:LongInt):<record type>;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(967,38) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Get(Index:LongInt):<record type>;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(967,64) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Get(Index:LongInt):<record type>;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(967,102) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Get(Index:LongInt):<record type>;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(1240,26) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Get(Index:LongInt):<record type>;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(1243,29) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Get(Index:LongInt):<record type>;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(1298,34) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Get(Index:LongInt):<record type>;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(1300,28) Note: Call to subroutine "function TFPGList<LCLTMSFNCCustomSelector.TTMSFNCCustomSelectorDisplayItem>.Get(Index:LongInt):<record type>;" marked as inline is not inlined
LCLTMSFNCCustomSelector.pas(81,30) Verbose: Parameter "Sender" not used
LCLTMSFNCCustomSelector.pas(164,27) Verbose: Parameter "Sender" not used
LCLTMSFNCCustomSelector.pas(163,27) Verbose: Parameter "Sender" not used
LCLTMSFNCCustomSelector.pas(165,29) Verbose: Parameter "Sender" not used
LCLTMSFNCBitmapSelector.pas(52,29) Verbose: Parameter "Sender" not used
Verbose: PPU Loading /home/tobias/Programme/Lazarus/TMSTest/tools/TMS FNC Core/lib/x86_64-linux/LCLTMSFNCPopup.ppu
Verbose: PPU Source: LCLTMSFNCPopup.pas not found
Verbose: PPU Source: LCLTMSFNCDefines.inc not available
Warning: Recompiling LCLTMSFNCPopup, checksum changed for /home/tobias/Programme/Lazarus/TMSTest/tools/TMS FNC Core/lib/x86_64-linux/LCLTMSFNCCustomComponent.ppu
LCLTMSFNCToolBar.pas(35,3) Fatal: Cannot find LCLTMSFNCPopup used by LCLTMSFNCToolBar, incompatible ppu=/home/tobias/Programme/Lazarus/TMSTest/tools/TMS FNC Core/lib/x86_64-linux/LCLTMSFNCPopup.ppu, package LCLTMSFNCCorePkg
Verbose: Compilation aborted
Verbose: /home/tobias/Programme/Lazarus/TMSTest/fpc/bin/x86_64-linux/ppcx64 returned an error exitcode
  1. Try compile with the -vu -vt parameters:
    grafik

If I ignore this, I got the same message as above...

Hi,

We were able to reproduce this, but apparently, in Ubuntu / Lazarus 2.0.12 the installation is different.

  1. Remove all LIB folders generated in TMS FNC Core & TMS FNC UI Pack
  2. Open ALL packages in Lazarus, LCLTMSFNCCorePkg, LCLTMSFNCCorePkgDE, LCLTMSFNCUIPackPkg & LCLTMSFNCUIPackPkgDE
  3. Compile the first package LCLTMSFNCCorePkg
  4. Compile and install the second package LCLTMSFNCCorePkgDE, let Lazarus rebuild
  5. Open all Packages again, compile the first package, the second package again (do not install)
  6. Compile LCLTMSFNCUIPackPkg
  7. Compile and install LCLTMSFNCUIPackPkgDE, let Lazarus rebuild

Sorry, not realy. :-( Created again a new environment. So, it was not necessary to remove the lib folders.

  1. opened all four packages.
  2. compile the first one -> works
  3. try to compile and install the second one -> error

Yes, but you also need to compile and install the TMS FNC Core packages first. then rebuild Lazarus. Then recompile them again, do not install, then compile and install TMS FNC UI Pack. So you need to install twice.

OK, again what I have done...

  1. create a complete new, clean environment
  2. opened all for packages
  3. compiled the first one, LCLTMSFNCCorePkg -> worked
  4. compiled the LCLTMSFNCCorePkgDE -> worked
  5. Rebuild Lazarus (Tools -> Rebuild Lazarus with Profile: Normal IDE) -> worked
  6. opened all four packages again
  7. compiled LCLTMSFNCCorePkg and LCLTMSFNCCorePkgDE again -> worked
  8. compiled the LCLTMSFNCUIPackPkg - failed
LCLTMSFNCUIPackPkg.pas(98,48) Fatal: Cannot find LCLTMSFNCPasslockReg used by LCLTMSFNCUIPackPkg. Check search path of package LCLTMSFNCUIPackPkg, try a clean rebuild, check implementation uses sections..

Complete output at Pastebin

Maybe it's
Reanme LCLTMSFNCPasslockReg to LCLTMSFNCPassLockReg (lower case l )

1 Like
  1. change LCLTMSFNCPasslockReg to LCLTMSFNCPassLockReg in LCLTMSFNCUIPackPkg
  2. compiled LCLTMSFNCUIPackPkg -> worked
  3. compiled LCLTMSFNCUIPackPkgDE -> worked
  4. try to install LCLTMSFNCUIPackPkgDE -> failed
  5. try to recompile Lazarus -> failed
lazarus.pp(1,1) Fatal: Cannot find LCLTMSFNCUIPackPkg used by Lazarus, incompatible ppu=/home/tobias/Programme/Lazarus/TMSTest/tools/TMS FNC UI Pack/lib/x86_64-linux/LCLTMSFNCUIPackPkg.ppu, multiple packages: LCLTMSFNCUIPackPkg, LCLTMSFNCUIPackPkgDE

Sorry but this is very very very frustrating! I am working now for a week to get this working! It is no free component. This is a paid one which support and so this should work out of the box!

I would like you to succeed.
For me, it works on a 64-bit debian 10 LXDE

LCLTMSFNCUIPackPkg.pas
Reanme LCLTMSFNCPasslockReg to LCLTMSFNCPassLockReg

(LCLTMSFNCUIPackPkg.pas(98,48) Fatal: Cannot find LCLTMSFNCPasslockReg used by LCLTMSFNCUIPackPkg
)

Thank you Zeljko for your reply. I renamed it and I can compile the LCLTMSFNCUIPackPkgDE. But then I failed to install it and also failed to compile the IDE.

Did you have the problem with the lower case also?

I am using ArchLinux with Mate (x64).

with linux this is a real problem, sometimes i report it
https://support.tmssoftware.com/t/lcltmsfncpasslockreg-lcltmsfncpasslockreg-l-to-l-change-case/14502/4

OK, but if @Pieter_Scheldeman realy tested my problem on a Linux system, he should also have this problem. Why did he not write this here??? Sorry again but this is a paid component!

When I have a problem installing the package:
InstallPackage

Use > Install and error
double click: Required Packages : LCLTMSFNCCorePkg (open package) and Compile (not install)
when I compile
return to LCLTMSFNCUIPackPkg
and
Use > Install
then I succeed

My english google transalte

1 Like

Hi,

First of all I understand your frustration. I want to explain the miscommunication here on my part. I had effectively looked into the issue and had the same compiler issues like you described in the previous posts. Initially, I thought the error was due to the packages or files being in a different location, therefore I asked to remove the LIB folders. Additionally, as this didn't help, I also further investigated and thought that the sequence on Linux for package compilation is different to that of Windows so I then started compiling packages in a different order. Apparently, as this is not always clear in Lazarus, the LCLTMSFNCMapsPkg package was still open, and clicked on compile, mistakenly thinking I installed the LCLTMSFNCUIPackPkg. I looked no further and only noticed now after reviewing this case that I only installed TMS FNC Core & TMS FNC Maps. I apologize for this misunderstanding. This doesn't make of an excuse, but the case sensitivity error handling is not always helpful in Lazarus and the various undocked windows neither.

Either way, I also noticed my colleague did not fully fix the issue as @Zeljko_Cvijanovic mentioned in the other post (LCLTMSFNCPasslockReg > LCLTMSFNCPassLockReg (l to L change case) - #4). I have now fixed the package, tested and attached the correct version as well as a screenshot of the installed packages indicating I have been able to succesfully fix the issue. To make sure you can install all packages, you need to open all packages and compile them one by one starting with LCLTMSFNCCorePkg, then LCLTMSFNCCorePkgDE, LCLTMSFNCUIPackPkg and LCLTMSFNCUIPackPkgDE, then you can install the last package you compiled to rebuild the IDE and have the packages available.

Attached is the fixed package

LCLTMSFNCUIPackPkg.zip (6.0 KB)

and the screenshot indicating installed packages.

Again my apologies for this frustrating experience!

Additional important info. It seems that Lazarus 2.0.12 has issues compiling packages. A user reported he went back to Lazarus 2.0.8 and was succesfully able to compile without incompatible ppu error messages.

Additional important info. It seems that Lazarus 2.0.12 has issues compiling packages. A user reported he went back to Lazarus 2.0.8 and was succesfully able to compile without incompatible ppu error messages.

Hm, then only with your packages. I have different free and commercial packages and no problems with the 2.0.12 release.

Installation of the components

I can install the package now with the instruction @Zeljko_Cvijanovic gave me in the post above. Thank you for that!

I also got different mails from TMS, e.g. from @brunofierens. But I am not sure if I am would like to use the components in professional programs if I have difficulties like this with every new release of Lazarus/FPC and/or the TMS components. I use commercial components to have not problems like this...

Upgrading packages is a hassle and can sometimes be an issue. It seems 2.0.12 is more sensitive so that can be an issue in the future, when recompiling / upgrading packages. This is something not related to our packages at all and not related to the issue with the lower case bug. The "incompatble PPU issue" pops up now and then and can be fixed by opening up all packages, recompiling them from scratch.

Having this out of the way, I can only say that my colleagues and I have been helping you fixing the issue from day one. We always try to fix issues as soon as possible but sometimes there is this one issue that takes a while longer. FNC supports multiple frameworks and platforms, running in multiple IDEs. Multiple people are working on it on a daily basis and even though the build system is trying to detect as much compiler errors are possible, there is always a small change that something slips through. In this case, it was a small typo on Windows that we didn't immediately see on Linux. We are currently working on improving our build system as we speak to avoid such issues in the future.

I use two virtualbox lazarus installations

OS: Debian 10 LXDE 64bit
Lazarus 2.0.12
FPC 3.2.0
(So I can report problems)

OS: Debian 10 LXDE 64bit
Lazarus 2.1.0
FPC 3.3.1

cross compile:
aarch64-linux
arm-linux
i386-win32
x86_64-win64

I tested on orange pi and raspberry pi and
win32 and of course on debian 64
The components behave equally on all platforms