View Issue Details

IDProjectCategoryView StatusLast Update
0000347Double CommanderDefaultpublic2016-06-26 12:01
Reportervo.x Assigned Tocobines  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionno change required 
ProjectionnoneETAnone 
Product Buildr4304 
Summary0000347: Fails tu build on Fedora 16
DescriptionTrying to build on Fedora 16, the build fails with following error:

NOTE: miscellaneous options file not found - using defaults
TLazPackageGraph.CheckIfPackageNeedsCompilation Compiler custom params changed for LazControls 0.0
  Old=" -MObjFPC -Scghi -O1 -gl -vewnhi -l -dLCL -dLCLgtk2"
  Now=" -MObjFPC -Scghi -O1 -gl -vewnhi -l -dLCL -dLCLgtk2 lazcontrols.pas"
TParsedCompilerOptions.SetOutputDirectoryOverride New=/builddir/.lazarus/lib/LazControls/x86_64-linux
[TExternalToolList.Run] CmdLine="/usr/bin/fpc -B -MObjFPC -Scghi -O1 -gl -vewnhi -l -Fu/usr/lib64/lazarus/lcl/units/x86_64-linux -Fu/usr/lib64/lazarus/lcl/units/x86_64-linux/gtk2 -Fu/usr/lib64/lazarus/packager/units/x86_64-linux -Fu/usr/lib64/lazarus/components/lazcontrols/ -Fu. -FU/usr/lib64/lazarus/components/lazcontrols/lib/x86_64-linux/ -dLCL -dLCLgtk2 lazcontrols.pas" WorkDir="/usr/lib64/lazarus/components/lazcontrols/"
Hint: Start of reading config file /etc/fpc.cfg
Hint: End of reading config file /etc/fpc.cfg
Free Pascal Compiler version 2.4.2 [2011/02/09] for x86_64
Copyright (c) 1993-2010 by Florian Klaempfl
Target OS: Linux for x86-64
Compiling lazcontrols.pas
Compiling dividerbevel.pas
dividerbevel.pas(184,1) Error: Can't create object file: /usr/lib64/lazarus/components/lazcontrols/lib/x86_64-linux/dividerbevel.o
dividerbevel.pas(184,1) Fatal: Can't create object /usr/lib64/lazarus/components/lazcontrols/lib/x86_64-linux/dividerbevel.o
TExternalToolList.Run Exception: /usr/lib64/lazarus/components/lazcontrols/dividerbevel.pas(184,1) Fatal: Can't create object /usr/lib64/lazarus/components/lazcontrols/lib/x86_64-linux/dividerbevel.o
ERROR: tool reported error
strip: 'doublecmd': No such file


It seems that Lazarus is trying to rebuild lazcontrols and it fails due to low right (and that's correct). But why it tries to recompile?

It seems that the dependency on LazControls was introduced in r4276, is it related?
TagsNo tags attached.
Attached Files
lazcontrols.diff (1,196 bytes)   
Index: lazcontrols.lpk
===================================================================
--- lazcontrols.lpk	(revision 36718)
+++ lazcontrols.lpk	(working copy)
@@ -10,6 +10,7 @@
         <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
       </SearchPaths>
       <Other>
+        <CustomOptions Value="$(IDEBuildOptions)"/>
         <CompilerPath Value="$(CompPath)"/>
       </Other>
     </CompilerOptions>
Index: Makefile.compiled
===================================================================
--- Makefile.compiled	(revision 36718)
+++ Makefile.compiled	(working copy)
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
 <CONFIG>
   <Makefile Value="True"/>
-  <Params Value=" -MObjFPC -Scghi -O1 -gl -vewnhi -l -Fu../../lcl/units/%(CPU_TARGET)-%(OS_TARGET);../../lcl/units/%(CPU_TARGET)-%(OS_TARGET)/%(LCL_PLATFORM);../../packager/units/%(CPU_TARGET)-%(OS_TARGET);. -Fi. -dLCL -dLCL%(LCL_PLATFORM)"/>
+  <Params Value=" -MObjFPC -Scghi -O1 -gl -vewnhi -l -Fu../../lcl/units/%(CPU_TARGET)-%(OS_TARGET);../../lcl/units/%(CPU_TARGET)-%(OS_TARGET)/%(LCL_PLATFORM);../../packager/units/%(CPU_TARGET)-%(OS_TARGET);. -Fi. -dLCL -dLCL%(LCL_PLATFORM) lazcontrols.pas"/>
 </CONFIG>
lazcontrols.diff (1,196 bytes)   
lazcontrols2.diff (2,184 bytes)   
Index: Makefile.fpc
===================================================================
--- Makefile.fpc	(wersja 37097)
+++ Makefile.fpc	(kopia robocza)
@@ -51,6 +51,6 @@
         -$(DEL) $(COMPILER_UNITTARGETDIR)/lazcontrols$(PPUEXT)
 
 compiled:
-        $(COPY) Makefile.compiled $(COMPILER_UNITTARGETDIR)/LazControls.compiled
+        $(CPPROG) -f Makefile.compiled $(COMPILER_UNITTARGETDIR)/LazControls.compiled
 
 all: cleartarget $(COMPILER_UNITTARGETDIR) lazcontrols$(PPUEXT) compiled
Index: Makefile.compiled
===================================================================
--- Makefile.compiled	(wersja 37097)
+++ Makefile.compiled	(kopia robocza)
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
 <CONFIG>
   <Makefile Value="True"/>
-  <Params Value=" -MObjFPC -Scghi -O1 -gl -vewnhi -l -Fu../../lcl/units/%(CPU_TARGET)-%(OS_TARGET);../../lcl/units/%(CPU_TARGET)-%(OS_TARGET)/%(LCL_PLATFORM);../../packager/units/%(CPU_TARGET)-%(OS_TARGET);. -Fi. -dLCL -dLCL%(LCL_PLATFORM)"/>
+  <Params Value=" -MObjFPC -Scghi -O1 -gl -vewnhi -l -Fu../../lcl/units/%(CPU_TARGET)-%(OS_TARGET);../../lcl/units/%(CPU_TARGET)-%(OS_TARGET)/%(LCL_PLATFORM);../../packager/units/%(CPU_TARGET)-%(OS_TARGET);.;.;lib/%(CPU_TARGET)-%(OS_TARGET) -Fi. -dLCL -dLCL%(LCL_PLATFORM) lazcontrols.pas"/>
 </CONFIG>
Index: Makefile
===================================================================
--- Makefile	(wersja 37097)
+++ Makefile	(kopia robocza)
@@ -2961,5 +2961,5 @@
 cleartarget:
 	-$(DEL) $(COMPILER_UNITTARGETDIR)/lazcontrols$(PPUEXT)
 compiled:
-	$(COPY) Makefile.compiled $(COMPILER_UNITTARGETDIR)/LazControls.compiled
+	$(CPPROG) -f Makefile.compiled $(COMPILER_UNITTARGETDIR)/LazControls.compiled
 all: cleartarget $(COMPILER_UNITTARGETDIR) lazcontrols$(PPUEXT) compiled
Index: lazcontrols.lpk
===================================================================
--- lazcontrols.lpk	(wersja 37097)
+++ lazcontrols.lpk	(kopia robocza)
@@ -10,6 +10,7 @@
         <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
       </SearchPaths>
       <Other>
+        <CustomOptions Value="$(IDEBuildOptions)"/>
         <CompilerPath Value="$(CompPath)"/>
       </Other>
     </CompilerOptions>
lazcontrols2.diff (2,184 bytes)   
Fixed in Revision
Operating systemLinux
WidgetsetGTK2
Architecture

Activities

cobines

2012-02-27 19:55

administrator   ~0000383

Do you have those files?
lib/x86_64-linux/dividerbevel.o and dividerbevel.ppu
Have you changed something in lazcontrols.lpk?
Besides, Lazarus should put compiled components somewhere in user home directory instead.

bkabrda

2012-03-09 15:45

reporter   ~0000407

Same issue for me, Fedora 17.
The files are present here:
/usr/lib64/lazarus/components/lazcontrols/lib/x86_64-linux/dividerbevel.o
/usr/lib64/lazarus/components/lazcontrols/lib/x86_64-linux/dividerbevel.ppu

I haven't changed lazcontrols.lpk.

cobines

2012-03-09 18:09

administrator   ~0000409

Which Lazarus version?
You cannot simply rebuild the package as root?

What if you open Lazarus IDE, menu Package/Open existing package, open LazControls and press Compile.

When Lazarus detects that it cannot write to the directory it puts the package binaries to user home directory: $HOME/.lazarus/lib/LazControls. Maybe something is wrong with your Lazarus, because it does work for me (with Lazarus trunk 35828):

TLazPackageGraph.CheckIfCurPkgOutDirNeedsCompile No state file for LazControls 0.0
TLazPackageGraph.CheckIfPackageNeedsCompilation normal output dir is not writable: /usr/lib/lazarus/components/lazcontrols/lib/i386-linux/
TLazPackageGraph.GetFallbackOutputDir LazControls: /home/devel/.lazarus/lib/LazControls/lib/i386-linux
TParsedCompilerOptions.SetOutputDirectoryOverride New=/home/devel/.lazarus/lib/LazControls/lib/i386-linux
TLazPackageGraph.CheckIfCurPkgOutDirNeedsCompile No state file for LazControls 0.0
[TExternalToolList.Run] CmdLine="/home/devel/fpc/fixes_2_6/bin/fpc -B -MObjFPC -Scghi -O1 -gw2 -gl -vewnhi -l -Fu/usr/lib/lazarus/lcl/units/i386-linux/gtk2 -Fu/usr/lib/lazarus/lcl/units/i386-linux -Fu/usr/lib/lazarus/components/lazutils/lib/i386-linux -Fu/usr/lib/lazarus/packager/units/i386-linux -Fu/usr/lib/lazarus/components/lazcontrols/ -FU/home/devel/.lazarus/lib/LazControls/lib/i386-linux -dLCL -dLCLgtk2 lazcontrols.pas" WorkDir="/usr/lib/lazarus/components/lazcontrols/"
Hint: Start of reading config file /home/devel/.fpc.cfg
Hint: End of reading config file /home/devel/.fpc.cfg
Free Pascal Compiler version 2.6.1 [2012/03/08] for i386
Copyright (c) 1993-2011 by Florian Klaempfl and others
Target OS: Linux for i386
Compiling lazcontrols.pas
Compiling dividerbevel.pas
Compiling extendednotebook.pas
Compiling listfilteredit.pas
Compiling treefilteredit.pas
1621 lines compiled, 0.9 sec
2 hint(s) issued
"Compiling package LazControls 0.0" completed

cobines

2012-03-10 22:27

administrator   ~0000432

Also, do you have a file:
/usr/lib64/lazarus/components/lazcontrols/lib/x86_64-linux/lazcontrols.compiled
and if you do what are the contents.

bkabrda

2012-03-15 13:27

reporter   ~0000462

Hmm, it seems that even the Lazarus ide won't start. I'll try to contact the Fedora Lazarus maintainer, maybe the problem is on his side...

cobines

2012-04-17 17:44

administrator   ~0000580

Any progress? It seems to be a problem with package in Fedora missing some files.

bkabrda

2012-04-17 17:56

reporter   ~0000581

I'm currently waiting for the Fedora Lazarus maintainer to recompile it against new fpc, then everything should work. I'll let you know as soon as it's done.

cobines

2012-04-17 18:08

administrator   ~0000582

OK, thanks for the update.

vo.x

2012-04-27 14:55

reporter   ~0000630

Hm, continuing with F17 and updated Lazarus package, I still have the same error. I was able to build Lazarus as a root and now I can build it also as a regular user. But that is not satisfactory, since I still cannot build Lazarus using Fedora build system.

In your log from comment 409, I see that you have customized /home/devel/.fpc.cfg. Might it influence the build process?

This is content of Fedora's "/usr/lib64/lazarus/components/lazcontrols/lib/x86_64-linux/lazcontrols.compiled":

<?xml version="1.0"?>
<CONFIG>
  <Makefile Value="True"/>
  <Params Value=" -MObjFPC -Scghi -O1 -gl -vewnhi -l -Fu../../lcl/units/%(CPU_TARGET)-%(OS_TARGET);../../lcl/units/%(CPU_TARGET)-%(OS_TARGET)/%(LCL_PLATFORM);../../packager/units/%(CPU_TARGET)-%(OS_TARGET);. -Fi. -dLCL -dLCL%(LCL_PLATFORM)"/>
</CONFIG>

Note that there are no special build options or patches applied to Lazarus package. You can see the Lazarus's build script here [1]. But what strikes me is still this part of the log:

TLazPackageGraph.CheckIfPackageNeedsCompilation Compiler custom params changed for LazControls 0.0
  Old=" -MObjFPC -Scghi -O1 -gl -vewnhi -l -dLCL -dLCLgtk2"
  Now=" -MObjFPC -Scghi -O1 -gl -vewnhi -l -dLCL -dLCLgtk2 lazcontrols.pas"

This is the reason why the lazcontrols package is rebuild. If I'd be able to identify how that comes, we would get to some solution.

Nevertheless, ATM, I would say that it is more likely Lazarus error then DoubleCmd error.



[1] http://pkgs.fedoraproject.org/gitweb/?p=lazarus.git;a=blob;f=lazarus.spec;h=412998cf7819fc0f33b5a33557ae25bc2b0516d1;hb=HEAD

cobines

2012-04-27 15:14

administrator   ~0000631

lazcontrols.compiled is missing "lazcontrols.pas" at the end. And this seems to be Lazarus problem.

Lazarus 0.9.30.5 components/lazcontrols/Makefile.compiled:
<?xml version="1.0"?>
<CONFIG>
  <Makefile Value="True"/>
  <Params Value=" -MObjFPC -Scghi -O1 -gl -vewnhi -l -Fu../../lcl/units/%(CPU_TARGET)-%(OS_TARGET);../../lcl/units/%(CPU_TARGET)-%(OS_TARGET)/%(LCL_PLATFORM);../../packager/units/%(CPU_TARGET)-%(OS_TARGET);. -Fi. -dLCL -dLCL%(LCL_PLATFORM)"/>
</CONFIG>

Lazarus 1.0 components/lazcontrols/Makefile.compiled:
<?xml version="1.0"?>
<CONFIG>
  <Makefile Value="True"/>
  <Params Value=" -MObjFPC -Scghi -O1 -g -gl -vewnhi -l -Fu../../lcl/units/%(CPU_TARGET)-%(OS_TARGET)/%(LCL_PLATFORM);../../lcl/units/%(CPU_TARGET)-%(OS_TARGET);../lazutils/lib/%(CPU_TARGET)-%(OS_TARGET);../../packager/units/%(CPU_TARGET)-%(OS_TARGET);. -dLCL -dLCL%(LCL_PLATFORM) lazcontrols.pas"/>
</CONFIG>

vo.x

2012-05-01 00:38

reporter   ~0000670

Hm, once I patch Lazarus to include the lazcontrols.pas, I got immediately different error :/

TLazPackageGraph.CheckIfPackageNeedsCompilation Compiler unit paths changed for LazControls 0.0
  Old="/usr/lib64/lazarus/lcl/units/x86_64-linux;/usr/lib64/lazarus/lcl/units/x86_64-linux/gtk2;/usr/lib64/lazarus/packager/units/x86_64-linux;/usr/lib64/lazarus/components/lazcontrols"
  Now="/usr/lib64/lazarus/lcl/units/x86_64-linux;/usr/lib64/lazarus/lcl/units/x86_64-linux/gtk2;/usr/lib64/lazarus/packager/units/x86_64-linux;/usr/lib64/lazarus/components/lazcontrols;/usr/lib64/lazarus/components/lazcontrols;/usr/lib64/lazarus/components/lazcontrols/lib/x86_64-linux"

cobines

2012-05-01 13:15

administrator   ~0000671

There's also line missing in lazcontrols.lpk. See attached patch.

vo.x

2012-05-02 12:19

reporter   ~0000674

Thank you for your outstanding support. I have tried to build Lazarus with your patch without success. The error is still the same.

I am not sure if we should not close this ticket, since it seems that the issue is Lazarus issue not DC issue.

cobines

2012-05-02 12:48

administrator   ~0000676

Did you do "make" in components/lazcontrols after applying patch? If you built Lazarus with "make" that should work too, I guess.

I apply the patch, build lazcontrols with "make", create an empty project that depends on "lazcontrols", the project is built OK and the package is not recompiled. I'm trying this with Lazarus 0.9.30.4 on Windows.

vo.x

2012-05-02 23:19

reporter   ~0000684

I am trying with Fedora 17 or possibly Rawhide. I applied the patch prior building Lazarus. I expect that the lazcontrols are build during the Lazarus build process.

cobines

2012-05-03 07:56

administrator   ~0000686

Maybe there's something wrong with the tools too (lazbuild) not only with files. I made it work on Debian Linux with some more changes (patch attached).
"make clean all" from Lazarus root dir rebuilds lazcontrols too.

vo.x

2012-05-10 11:14

reporter   ~0000735

Thank you. It seems that this patch fixes my issues. Would you mind to report this error upstream? I believe you have now better understanding of the issues than me. Thank you.

cobines

2012-05-10 18:12

administrator   ~0000740

OK, great.
I think there will be no more releases of Lazarus 0.9.30 and in upcoming Lazarus 1.0 it is fixed, so no need to report it.

Issue History

Date Modified Username Field Change
2012-02-23 16:52 vo.x New Issue
2012-02-27 19:55 cobines Note Added: 0000383
2012-03-06 16:44 cobines Assigned To => cobines
2012-03-06 16:44 cobines Status new => feedback
2012-03-09 15:45 bkabrda Note Added: 0000407
2012-03-09 18:09 cobines Note Added: 0000409
2012-03-10 22:27 cobines Note Added: 0000432
2012-03-15 13:27 bkabrda Note Added: 0000462
2012-04-17 17:44 cobines Note Added: 0000580
2012-04-17 17:56 bkabrda Note Added: 0000581
2012-04-17 18:08 cobines Note Added: 0000582
2012-04-27 14:55 vo.x Note Added: 0000630
2012-04-27 14:55 vo.x Status feedback => assigned
2012-04-27 15:14 cobines Note Added: 0000631
2012-05-01 00:38 vo.x Note Added: 0000670
2012-05-01 13:15 cobines File Added: lazcontrols.diff
2012-05-01 13:15 cobines Note Added: 0000671
2012-05-02 12:19 vo.x Note Added: 0000674
2012-05-02 12:48 cobines Note Added: 0000676
2012-05-02 23:19 vo.x Note Added: 0000684
2012-05-03 07:56 cobines Note Added: 0000686
2012-05-03 07:56 cobines File Added: lazcontrols2.diff
2012-05-10 11:14 vo.x Note Added: 0000735
2012-05-10 18:12 cobines Note Added: 0000740
2012-05-10 18:12 cobines Status assigned => resolved
2012-05-10 18:12 cobines Resolution open => no change required
2016-06-26 12:01 Alexx2000 Status resolved => closed