View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0015218||Lazarus CCR||IDE||public||2009-11-29 23:53||2014-10-13 16:24|
|Reporter||Phil||Assigned To||Dmitry Boyarintsev|
|Platform||Windows and Intel OS X||OS||Window / OS X||OS Version||XP / 10.5|
|Summary||0015218: Checksum changes when installing package|
|Description||Try installing this package:|
I get an error with a line number that is meaningless (to me):
"htmlview.pas (79,12) Fatal: Can't find unit Htmlview used by HTMLUn2".
Above this it indicates that it's trying to recompile Htmlview because it's checksum changed. But the package was just compiled, so why has the checksum changed?
Others are having what looks like the same problem:
Note that this occurs on Windows and Intel Mac, but does not occur on PowerPC Mac.
Possibly it has something to do with dependencies:
- htmlun2.pas uses htmlview in its implementation uses.
- htmlview.pas uses htmlun2 in its interface uses.
Maybe Lazarus (FPC?) is getting confused by this.
|Tags||No tags attached.|
what fpc version are you using?
* the open the package's compiler options, add "/" at the end of Units output dir.
* try to install the package
The / is auto appended by the IDE when passed to the compiler. If not, then you found a bug in the IDE.
Installing a package does the same as compiling. If this fixes compiling, then you found a bug in the IDE
The checksum can change if some 'inline' procedure or 'generic' type was used before its implementation. Do not use inline procedures when using uses sections in implementation sections.
I'm not sure if "/" is actually a cure or not. But it seems, that compilation goes different if the package compiler options are changed in anyway (i.e. deleting output path made the package compile and install as well).
The component is hard for the compiler itself due to lot of interface/implementation interdependencies
I tested with Laz 0.9.28.2 / FPC 2.2.4 on both Windows and Intel Mac.
I also built Laz from SVN and FPC 2.5.1 from SVN trunk - same problem.
Mattias: I don't see any use of inline or generic keywords in this code - it's old Delphi code.
Dimitry: I can't find any other package that has "/" at end of output directory and none of them have this problem.
I can confirm the problem, but i've managed to compile and install the package (OSX Intel, fpc 2.5.1, lazarus trunk) by playing with the compiler options. Try to remove output unit path, and see if it works for you.
Not sure how to fix it or what exactly is causing the problem.
||It is an FPC bug.|
||"no changes required" then? (with the instruction how to make Lazarus to install the package)|
Compiling a second time "fixed" the problem on my machine.
Create a FPC bug report instead.
I created an FPC bug report referencing this bug report.
Dimitry: I tried deleting the \units\i386-win32 folder and also added "/" after the directory in the .lpk, but neither made any difference on Windows. Only a second compilation allowed installation to proceed, which is the workaround suggested in the wiki. However, I believe I've seen this problem occur again on subsequent IDE builds, forcing an interruption in the build, going back and recompiling the package, then rebuilding the IDE again.
Very well then. The solution is published in the wiki and it's not Lazarus issue.
I was having the exact same problem today in fpbrowser, and I solved it with the following things:
1> The project had a hardcoded path to the printers ppus, I removed that and added a correct dependency. fpbrowser is based in the thtmlport examples, so they have this problem.
2> Removed the trailling path delim in the output dir in thtmlport (not sure if this was really necessary)
||Nope, it solved it only temporarely =( It's back again... and on both fpc 2.4.3 and 2.5.1|
I just remembered something about circular dependencies in the Delphi THtmlViewer project. Look at the comments at the top of this file:
Maybe restructuring the units to eliminate some of the circular dependencies would solve our compile problem.
Note: Mantis rejected (and deleted) my note twice so I had to re-open the issue to post this.
||Changed to 0.9.30.2 to evaluate if this bug still exists, before release|
||Removed target since this issue is fpc specific. Resolve when fpc issue is resolved.|
FPC no longer recompiles units based on the availability of the bodies of inline functions, see 0024121 . I'm not aware of any outstanding issues that could cause the recompilation of units.
0007370 is about FPC giving a hint when it *doesn't* inline something, and/or about adding functionality to FPC to automatically keep recompiling units until there's nothing left to inline. Neither are required to resolve the issue at hand.
True, this was connected to a wrong FPC issue. I replaced the link.
Could somebody please test THtmlPort with FPC trunk.
FPC x86 svn r28813
laz svn r46545
htmlport current from laz ccr r3645
Package/compile went ok
Build IDE: Exit code 2, Errors: 1, Warnings: 1
Warning: Recompiling htmlview, checksum changed for htmlun2
htmlview.pas(72,12) Fatal: Can't find unit htmlview used by htmlun2
Deleting all thmlport *.ppus, opening loaded package, lpk compile+install gives same result.
Deleting all thmltport *.ppus, opening loaded package, just pressing install (without compile) gives:
Build IDE: Exit code 2, Errors: 1
lazarus.pp(1,1) Fatal: Cannot find unit htmlcomp used by Lazarus. Check if package HtmlComp creates htmlcomp.ppu, check nothing deletes this file and check that no two packages have access to the unit source..
Well, I was wrong earlier, there /is/ one situation left of which I know that it changes the interface crc: if you have a procedure/function declared normally in the interface, or as "forward;" in the implementation, and then later "implement" it as "external". That's not easy to fix though.
|2009-11-29 23:53||Phil||New Issue|
|2009-11-29 23:53||Phil||Widgetset||=> Carbon|
|2009-11-30 14:35||Dmitry Boyarintsev||Status||new => assigned|
|2009-11-30 14:35||Dmitry Boyarintsev||Assigned To||=> Dmitry Boyarintsev|
|2009-11-30 15:01||Dmitry Boyarintsev||Note Added: 0032593|
|2009-11-30 15:18||Dmitry Boyarintsev||LazTarget||=> -|
|2009-11-30 15:18||Dmitry Boyarintsev||Status||assigned => feedback|
|2009-11-30 15:18||Dmitry Boyarintsev||LazTarget||- => 0.9.30|
|2009-11-30 15:31||Mattias Gaertner||Note Added: 0032594|
|2009-11-30 16:33||Dmitry Boyarintsev||Note Added: 0032595|
|2009-11-30 16:41||Phil||Note Added: 0032597|
|2009-11-30 16:58||Dmitry Boyarintsev||Note Added: 0032598|
|2009-11-30 17:18||Mattias Gaertner||Note Added: 0032599|
|2009-11-30 17:56||Dmitry Boyarintsev||Note Added: 0032600|
|2009-11-30 18:10||Mattias Gaertner||Note Added: 0032601|
|2009-11-30 18:50||Phil||Note Added: 0032602|
|2009-11-30 21:09||Dmitry Boyarintsev||Status||feedback => resolved|
|2009-11-30 21:09||Dmitry Boyarintsev||Resolution||open => no change required|
|2009-11-30 21:09||Dmitry Boyarintsev||Note Added: 0032608|
|2011-07-01 15:01||Felipe Monteiro de Carvalho||Note Added: 0049558|
|2011-07-01 15:36||Felipe Monteiro de Carvalho||Note Added: 0049560|
|2011-07-01 15:41||Felipe Monteiro de Carvalho||Relationship added||related to 0007370|
|2011-07-06 01:32||Phil||Status||resolved => assigned|
|2011-07-06 01:32||Phil||Resolution||no change required => reopened|
|2011-07-06 01:32||Phil||Note Added: 0049707|
|2011-10-21 18:01||Zeljan Rikalo||LazTarget||0.9.30 => 0.9.30.2|
|2011-10-21 18:01||Zeljan Rikalo||Note Added: 0053246|
|2012-02-04 14:24||Zeljan Rikalo||LazTarget||0.9.30.2 => -|
|2012-02-04 14:24||Zeljan Rikalo||Note Added: 0056449|
|2014-10-12 13:15||Juha Manninen||Relationship replaced||child of 0007370|
|2014-10-12 23:51||Jonas Maebe||Note Added: 0078184|
|2014-10-13 01:00||Juha Manninen||Relationship added||child of 0024121|
|2014-10-13 01:00||Juha Manninen||Relationship deleted||child of 0007370|
|2014-10-13 01:02||Juha Manninen||Note Added: 0078186|
|2014-10-13 01:02||Juha Manninen||Status||assigned => feedback|
|2014-10-13 10:15||Juha Manninen||Project||Lazarus => Lazarus CCR|
||Note Added: 0078192|
|2014-10-13 16:24||Jonas Maebe||Note Added: 0078194|
|2014-10-13 16:24||Jonas Maebe||Note Edited: 0078194||View Revisions|