[Lazarus] lazbuild CheckIfCurPkgOutDirNeedsCompile Missing state file for

Mattias Gaertner nc-gaertnma at netcologne.de
Sun Mar 15 21:09:03 CET 2015


On Sun, 15 Mar 2015 18:50:01 +0100
Péter Gábor <ptrg at freemail.hu> wrote:

> Also I noticed that there is some "duplicate file" not only "duplicate
> unit" messages. I tried to find different kinds of "duplicate file/unit"
> warnings.
> (home+base path is replaced with ~ symbol for easier reading)

Thanks.

 
> Warning: Duplicate unit "ZUpdateSqlEditor" in "zcore 7.1", orphaned ppu
> "~/_components/zeoslib/packages/lazarus/lib/i386-linux/ZUpdateSqlEditor.ppu"
> Warning: Duplicate unit "ZUpdateSqlEditor" in "zcomponent 7.1",
> source="~/_components/zeoslib/src/component/ZUpdateSqlEditor.pas"

"Orphaned" means here: no corresponding source file was found in the
package.

It seems ZUpdateSqlEditor belongs to package zcomponent, but the ppu is
in the output directory of package zcore.
Either this a "bug" in the packages or you forgot to clean
up.

Note: "bug" may be too harsh. It probably works most of the time
because of the order of unit paths. But it can mean trouble:
- when compiling packages in parallel
- The IDE and its addons do not work in the same way as the
  compiler. The compiler is called multiple times, each time with
  different search paths and only seeing the ppu files of the other
  packages. The IDE and addons mostly work on the sources and they
  search with combined search paths. Duplicates can lead to different
  results.
- This can lead to strange errors and is confusing for the user.

 
> Warning: Duplicate unit "ZSybaseToken" in "zcore 7.1", orphaned ppu
> "~/_components/zeoslib/packages/lazarus/lib/i386-linux/ZSybaseToken.ppu"
> Warning: Duplicate unit "ZSybaseToken" in "zparsesql 7.1",
> ppu="~/_components/zeoslib/packages/lazarus/lib/i386-linux/ZSybaseToken.ppu",
> source="~/_components/zeoslib/src/parsesql/ZSybaseToken.pas"

Same, with different packages.

 
> Warning: Duplicate unit "registersqlite" in "sqlite3laz 0.4",
> ppu="~/Lazarus-trunk/components/sqlite/lib/i386-linux/gtk2/registersqlite.ppu",
> source="~/Lazarus-trunk/components/sqlite/registersqlite.pas"
> Warning: Duplicate unit "registersqlite" in "sqlitelaz 0.4",
> ppu="~/Lazarus-trunk/components/sqlite/lib/i386-linux/gtk2/registersqlite.ppu",
> source="~/Lazarus-trunk/components/sqlite/registersqlite.pas"

Maybe you should only use one of these packages: either sqlite or
sqlite3?

 
> Warning: Duplicate unit "main" in "#IDE",
> ppu="~/Lazarus-trunk/units/i386-linux/gtk2/main.ppu",
> source="~/Lazarus-trunk/ide/main.pp"
> Warning: Duplicate unit "main" in "SdpoDynmatrix 1.0",
> source="~/_components/Sdpo/SdpoDynmatrix/main.pas"

Oh.
Hopefully main.ppu of SdpoDynmatrix is not used at design time.

 
> Warning: Duplicate unit "fpolebasic" in "laz_fpspreadsheet 1.5",
> ppu="~/lazarus-ccr/components/fpspreadsheet/lib/i386-linux/fpolebasic.ppu",
> source="~/lazarus-ccr/components/fpspreadsheet/fpolebasic.pas"
> Warning: Duplicate unit "fpolebasic" in "laz_fpspreadsheet_visual 1.5",
> ppu="~/lazarus-ccr/components/fpspreadsheet/lib/i386-linux/fpolebasic.ppu",
> source="~/lazarus-ccr/components/fpspreadsheet/fpolebasic.pas"

The two packages use the same sources. Either this is a
"bug" in the packages or you are not supposed to use both.

 
> Warning: Duplicate file "" in "sqlite3laz 0.4",
> path="~/Lazarus-trunk/components/sqlite/lib/i386-linux/gtk2/sqlitecomponenteditor.lfm"
> Warning: Duplicate file "" in "sqlitelaz 0.4",
> path="~/Lazarus-trunk/components/sqlite/sqlitecomponenteditor.lfm"

The "" is a bug. I fixed this.
See above about sqlite/sqlite3.


Mattias




More information about the Lazarus mailing list