Giter VIP home page Giter VIP logo

Comments (13)

neurolabusc avatar neurolabusc commented on June 16, 2024

1.) lazopenglcontext is an optional package, and is not installed by default. You need to install the package either using the graphical interface (IDE menu: Package/InstallPackages) or the command line
http://wiki.freepascal.org/Install_Packages

2.) It would be nice to see the command line call that generated this output and notes on the operating system you are using (macOS or Linux). It looks like you are trying to compile using to the GTK2 widgetset (-dLCLgtk2) with the 64-bit compiler (ppcx64). This is the default widgetset for Linux and should work well for that. It will create a lot of dependencies on macOS and is probably untested. For macOS, I would target either the Carbon widgetset (32-bit only) or the Cocoa widgetset (either 32 or 64 bit).

3.) Any reason you are not using lazarus 1.6.2? I build using the Lazarus development branch (currently 1.7 SVN revision 53559). In my experience, Lazarus has been very stable on Linux for a long time, but recent changes in the macOS debugger and security features have required a lot of changes in compilers (I use macOS 10.11).

4.) I have updated the README.md file to include links relevant for compiling the source code.

from mricrogl10_old.

TheChymera avatar TheChymera commented on June 16, 2024

2.) The command line call is lazbuild -B --lazarusdir="/usr/share/lazarus/" simplelaz.lpi || die (it is also listed in the paste above, though only at the end, where the summary states where the install failed. I am using Gentoo Linux, a distribution where the package manager uses the upstream source directly (BSD-ports style).

1.) I think I already have the file which the package is looking for:

chymera@zenbookhost ~ $ stat /usr/share/lazarus/components/opengl/lib/x86_64-linux/gtk2/openglcontext.ppu
  File: ‘/usr/share/lazarus/components/opengl/lib/x86_64-linux/gtk2/openglcontext.ppu’
  Size: 31961     	Blocks: 64         IO Block: 4096   regular file
Device: 804h/2052d	Inode: 13382548    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-10-23 19:08:20.670654233 +0200
Modify: 2016-10-23 19:08:20.671654236 +0200
Change: 2016-10-23 19:08:20.671654236 +0200
 Birth: -
chymera@zenbookhost ~ $ stat /usr/share/lazarus/components/opengl/openglcontext.pas 
  File: ‘/usr/share/lazarus/components/opengl/openglcontext.pas’
  Size: 20770     	Blocks: 48         IO Block: 4096   regular file
Device: 804h/2052d	Inode: 14431104    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-12-03 22:58:31.835569264 +0100
Modify: 2015-09-27 16:11:28.000000000 +0200
Change: 2016-12-03 22:58:47.078529319 +0100
 Birth: -

But it is not finding it. Why?
Am I missing something else? Here are all of the files the Gentoo lazarus package installs, as you can see a lot of extras are included.

3.) lazarus-1.6.0-r1 is the latest version available in the Gentoo package manager. I am not the maintainer of the package, but I can try to bump it if nothing else helps.

from mricrogl10_old.

neurolabusc avatar neurolabusc commented on June 16, 2024

You have the files but they are not compiled and installed into Lazarus. You need to install the package into Lazarus: http://wiki.freepascal.org/Install_Packages

For Linux I think the 1.6.0 will be fine.

from mricrogl10_old.

neurolabusc avatar neurolabusc commented on June 16, 2024

As I noted, I always add the package and recompile the IDE using the graphical interface, but you can do it from the command line. I think you will want to use the "--add-package" option (to compile the package) and "--build-ide" to re-compile Lazarus with the package.

http://wiki.freepascal.org/Install_IDE_packages_without_the_IDE

http://wiki.freepascal.org/lazbuild

http://stackoverflow.com/questions/9530029/installing-package-without-ide-on-lazarus-from-command-line

By the way, the full MRIcroGL build also requires the package "pascalscript.lpk" to be installed - this is also included with the Lazarus source but I am not sure if this package is installed by default. If it is not installed by default, you would need to "--add-package". This package enables MRIcroGL to be fully scriptable (e.g. either from the command line or using the View/Scripting menu item). I am not sure if the pascalscript package is installed by default or not.

So I think your build would look something like this:

$ lazbuild --add-package ~/lazarus/components/opengl/lazopenglcontext.lpk --add-package ~/lazarus/components/PascalScript/Source/pascalscript.lpk --build-ide=

$ lazbuild ./simplelaz.lpr

from mricrogl10_old.

TheChymera avatar TheChymera commented on June 16, 2024

So running this

lazbuild --add-package ~/lazarus/components/opengl/lazopenglcontext.lpk --add-package ~/lazarus/components/PascalScript/Source/pascalscript.lpk --build-ide=

will permanently modify my lazarus installation, right? Meaning that if I then want to compile MRIcroGL again, I won't have to re-run the above code, because lazarus now has kept the modifications - right?

from mricrogl10_old.

neurolabusc avatar neurolabusc commented on June 16, 2024

Yup, the "build-ide" compiles the Lazarus executable with your packages installed. They will remain part of the executable until you remove them and recompile the executable. If you launch the graphical user interface ("lazarus" or "startlazarus") and choose the Packages\Install/UninstallPackages menu item you will see lazopenglcontext and pascalscript listed in the "installed" column. By the way, I think you can just provide the package name, without the path, which makes creating a script that others can use easier:

lazbuild --add-package lazopenglcontext --add-package pascalscript --build-ide=

To put this into a bash script

lazbuild --verbose-pkgsearch lazopenglcontext --verbose-pkgsearch pascalscript
if [ $? -eq 0 ]
then
    echo "required packages already installed"
else
    echo "installing packages"
    lazbuild --add-package lazopenglcontext --add-package pascalscript --build-ide=
fi
if [[ "$OSTYPE" == "darwin"* ]]; then
	echo "macOS compiling for Cocoa, instead of default Carbon widgetset"
	lazbuild  -B --ws=cocoa ./simplelaz.lpr
else
	lazbuild -B ./simplelaz.lpi
fi

from mricrogl10_old.

TheChymera avatar TheChymera commented on June 16, 2024

If I run lazbuild --add-package lazopenglcontext --build-ide= and then lazbuild --add-package pascalscript --build-ide= - will that accomplis the same thing?

from mricrogl10_old.

neurolabusc avatar neurolabusc commented on June 16, 2024

The end result is the same, but in your example you are compiling the entire Lazarus project twice. It will be faster if you add both packages and compile once rather than twice:
lazbuild --add-package lazopenglcontext --add-package pascalscript --build-ide=

from mricrogl10_old.

TheChymera avatar TheChymera commented on June 16, 2024

also, I don't think I understand the output of lazbuild --verbose-pkgsearch lazopenglcontext

chymera@quiethost ~ $ lazbuild --verbose-pkgsearch lazopenglcontext
Info: (lazarus) Open dependency TLazPackageGraph uses FCL ...
Info: (lazarus) Open dependency: trying "FCL" in Global links: "/usr/share/lazarus/packager/registration/fcl.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/packager/registration/fcl.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [FCL]: Success: "/usr/share/lazarus/packager/registration/fcl.lpk"
Info: (lazarus) Open dependency TLazPackageGraph uses LazUtils ...
Info: (lazarus) Open dependency: trying "LazUtils" in Global links: "/usr/share/lazarus/components/lazutils/lazutils.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/lazutils/lazutils.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [LazUtils]: Success: "/usr/share/lazarus/components/lazutils/lazutils.lpk"
Info: (lazarus) Open dependency Package: LazUtils 1.0 uses FCL ...
Info: (lazarus) Open dependency [FCL]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses LCLBase ...
Info: (lazarus) Open dependency: trying "LCLBase" in Global links: "/usr/share/lazarus/lcl/lclbase.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/lcl/lclbase.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [LCLBase]: Success: "/usr/share/lazarus/lcl/lclbase.lpk"
Info: (lazarus) Open dependency Package: LCLBase 1.6.0.4 uses LazUtils ...
Info: (lazarus) Open dependency [LazUtils]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses LCL ...
Info: (lazarus) Open dependency: trying "LCL" in Global links: "/usr/share/lazarus/lcl/interfaces/lcl.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/lcl/interfaces/lcl.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [LCL]: Success: "/usr/share/lazarus/lcl/interfaces/lcl.lpk"
Info: (lazarus) Open dependency Package: LCL 1.6.0.4 uses LCLBase ...
Info: (lazarus) Open dependency [LCLBase]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses SynEdit ...
Info: (lazarus) Open dependency: trying "SynEdit" in Global links: "/usr/share/lazarus/components/synedit/synedit.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/synedit/synedit.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [SynEdit]: Success: "/usr/share/lazarus/components/synedit/synedit.lpk"
Info: (lazarus) Open dependency Package: SynEdit 1.0 uses LCL ...
Info: (lazarus) Open dependency [LCL]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses IDEIntf ...
Info: (lazarus) Open dependency: trying "IDEIntf" in Global links: "/usr/share/lazarus/components/ideintf/ideintf.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/ideintf/ideintf.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [IDEIntf]: Success: "/usr/share/lazarus/components/ideintf/ideintf.lpk"
Info: (lazarus) Open dependency Package: IDEIntf 1.0 uses LazControls ...
Info: (lazarus) Open dependency: trying "LazControls" in Global links: "/usr/share/lazarus/components/lazcontrols/lazcontrols.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/lazcontrols/lazcontrols.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [LazControls]: Success: "/usr/share/lazarus/components/lazcontrols/lazcontrols.lpk"
Info: (lazarus) Open dependency Package: LazControls 1.0.1 uses LCL ...
Info: (lazarus) Open dependency [LCL]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses DebuggerIntf ...
Info: (lazarus) Open dependency: trying "DebuggerIntf" in Global links: "/usr/share/lazarus/components/debuggerintf/debuggerintf.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/debuggerintf/debuggerintf.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [DebuggerIntf]: Success: "/usr/share/lazarus/components/debuggerintf/debuggerintf.lpk"
Info: (lazarus) Open dependency Package: DebuggerIntf 0.1 uses LCLBase ...
Info: (lazarus) Open dependency [LCLBase]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses LazDebuggerGdbmi ...
Info: (lazarus) Open dependency: trying "LazDebuggerGdbmi" in Global links: "/usr/share/lazarus/components/lazdebuggergdbmi/lazdebuggergdbmi.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/lazdebuggergdbmi/lazdebuggergdbmi.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [LazDebuggerGdbmi]: Success: "/usr/share/lazarus/components/lazdebuggergdbmi/lazdebuggergdbmi.lpk"
Info: (lazarus) Open dependency Package: LazDebuggerGdbmi 0.1 uses IDEIntf ...
Info: (lazarus) Open dependency [IDEIntf]: Success: was already loaded
Info: (lazarus) Open dependency Package: LazDebuggerGdbmi 0.1 uses DebuggerIntf ...
Info: (lazarus) Open dependency [DebuggerIntf]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses LazControls ...
Info: (lazarus) Open dependency [LazControls]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses CodeTools ...
Info: (lazarus) Open dependency: trying "CodeTools" in Global links: "/usr/share/lazarus/components/codetools/codetools.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/codetools/codetools.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [CodeTools]: Success: "/usr/share/lazarus/components/codetools/codetools.lpk"
Info: (lazarus) Open dependency Package: CodeTools 1.0.1 uses LazUtils ...
Info: (lazarus) Open dependency [LazUtils]: Success: was already loaded
Info: (lazarus) Open dependency Package: LazOpenGLContext 0.0.1 uses FCL (>=1.0) ...
Info: (lazarus) Open dependency [FCL]: Success: was already loaded
Info: (lazarus) Open dependency Package: LazOpenGLContext 0.0.1 uses LCL ...
Info: (lazarus) Open dependency [LCL]: Success: was already loaded
Hint: (lazarus) Missing state file of FCL 1.0.1: /usr/share/lazarus/packager/units/x86_64-linux/FCL.compiled
Hint: (lazarus) normal output directory of package FCL 1.0.1 is not writable: "/usr/share/lazarus/packager/units/x86_64-linux/"
TParsedCompilerOptions.SetOutputDirectoryOverride New=/home/chymera/.lazarus/lib/units/x86_64-linux
Hint: (lazarus) Missing state file of LazUtils 1.0: /usr/share/lazarus/components/lazutils/lib/x86_64-linux/LazUtils.compiled
Hint: (lazarus) normal output directory of package LazUtils 1.0 is not writable: "/usr/share/lazarus/components/lazutils/lib/x86_64-linux/"
TParsedCompilerOptions.SetOutputDirectoryOverride New=/home/chymera/.lazarus/lib/LazUtils/lib/x86_64-linux
Hint: (lazarus) Missing state file of LCLBase 1.6.0.4: /usr/share/lazarus/lcl/units/x86_64-linux/LCLBase.compiled
Hint: (lazarus) normal output directory of package LCLBase 1.6.0.4 is not writable: "/usr/share/lazarus/lcl/units/x86_64-linux/"
TParsedCompilerOptions.SetOutputDirectoryOverride New=/home/chymera/.lazarus/lib/LCLBase/units/x86_64-linux
Hint: (lazarus) Missing state file of LCL 1.6.0.4: /usr/share/lazarus/lcl/units/x86_64-linux/gtk2/LCL.compiled
Hint: (lazarus) normal output directory of package LCL 1.6.0.4 is not writable: "/usr/share/lazarus/lcl/units/x86_64-linux/gtk2/"
TParsedCompilerOptions.SetOutputDirectoryOverride New=/home/chymera/.lazarus/lib/units/x86_64-linux/gtk2
Hint: (lazarus) Missing state file of LazOpenGLContext 0.0.1: /usr/share/lazarus/components/opengl/lib/x86_64-linux/gtk2/LazOpenGLContext.compiled
Error: (lazarus) unable to create package output directory "/usr/share/lazarus/components/opengl/lib/x86_64-linux/gtk2" of package "LazOpenGLContext 0.0.1"
Hint: (lazarus) normal output directory of package LazOpenGLContext 0.0.1 is not writable: "/usr/share/lazarus/components/opengl/lib/x86_64-linux/gtk2/"
TParsedCompilerOptions.SetOutputDirectoryOverride New=/home/chymera/.lazarus/lib/LazOpenGLContext/lib/x86_64-linux/gtk2

How can I tell from that whether or not that package is compiled?
Is this the line that tells me it isn't there?

Hint: (lazarus) Missing state file of LazOpenGLContext 0.0.1: /usr/share/lazarus/components/opengl/lib/x86_64-linux/gtk2/LazOpenGLContext.compiled

I am looking for a way to test whether the modifications for the lazarus package, which I am working on, do indeed compile support for the missing packages. How can I best do that from the command line?

from mricrogl10_old.

neurolabusc avatar neurolabusc commented on June 16, 2024

The function "lazbuild --verbose-pkgsearch" will return either success or failure depending on whether or not your package is installed. In my example script, we only recompile lazarus if the required packages are not yet installed. In a bash script, the value $? is the value returned by the last command. You can always use echo $? to report if your last command was successful (0) or not (any other value). You can also look at the very last line reported by lazbuild prior to exiting. Notice the difference when I check for a default package (LCL) versus a non-existent package (missingpackage):

$lazbuild --verbose-pkgsearch LCL
...
Info: (lazarus) Open dependency [LazUtils]: Success: was already loaded
$lazbuild --verbose-pkgsearch missingpackage
...
ERROR: package not found: missingpackage

from mricrogl10_old.

TheChymera avatar TheChymera commented on June 16, 2024

For both LCL (which I assume I should have) and lazopenglcontext (which I assume I shouldn't) I get this sort of output:

chymera@quiethost ~ $ lazbuild --verbose-pkgsearch lazopenglcontext
Info: (lazarus) Open dependency TLazPackageGraph uses FCL ...
Info: (lazarus) Open dependency: trying "FCL" in Global links: "/usr/share/lazarus/packager/registration/fcl.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/packager/registration/fcl.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [FCL]: Success: "/usr/share/lazarus/packager/registration/fcl.lpk"
Info: (lazarus) Open dependency TLazPackageGraph uses LazUtils ...
Info: (lazarus) Open dependency: trying "LazUtils" in Global links: "/usr/share/lazarus/components/lazutils/lazutils.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/lazutils/lazutils.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [LazUtils]: Success: "/usr/share/lazarus/components/lazutils/lazutils.lpk"
Info: (lazarus) Open dependency Package: LazUtils 1.0 uses FCL ...
Info: (lazarus) Open dependency [FCL]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses LCLBase ...
Info: (lazarus) Open dependency: trying "LCLBase" in Global links: "/usr/share/lazarus/lcl/lclbase.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/lcl/lclbase.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [LCLBase]: Success: "/usr/share/lazarus/lcl/lclbase.lpk"
Info: (lazarus) Open dependency Package: LCLBase 1.6.0.4 uses LazUtils ...
Info: (lazarus) Open dependency [LazUtils]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses LCL ...
Info: (lazarus) Open dependency: trying "LCL" in Global links: "/usr/share/lazarus/lcl/interfaces/lcl.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/lcl/interfaces/lcl.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [LCL]: Success: "/usr/share/lazarus/lcl/interfaces/lcl.lpk"
Info: (lazarus) Open dependency Package: LCL 1.6.0.4 uses LCLBase ...
Info: (lazarus) Open dependency [LCLBase]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses SynEdit ...
Info: (lazarus) Open dependency: trying "SynEdit" in Global links: "/usr/share/lazarus/components/synedit/synedit.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/synedit/synedit.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [SynEdit]: Success: "/usr/share/lazarus/components/synedit/synedit.lpk"
Info: (lazarus) Open dependency Package: SynEdit 1.0 uses LCL ...
Info: (lazarus) Open dependency [LCL]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses IDEIntf ...
Info: (lazarus) Open dependency: trying "IDEIntf" in Global links: "/usr/share/lazarus/components/ideintf/ideintf.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/ideintf/ideintf.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [IDEIntf]: Success: "/usr/share/lazarus/components/ideintf/ideintf.lpk"
Info: (lazarus) Open dependency Package: IDEIntf 1.0 uses LazControls ...
Info: (lazarus) Open dependency: trying "LazControls" in Global links: "/usr/share/lazarus/components/lazcontrols/lazcontrols.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/lazcontrols/lazcontrols.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [LazControls]: Success: "/usr/share/lazarus/components/lazcontrols/lazcontrols.lpk"
Info: (lazarus) Open dependency Package: LazControls 1.0.1 uses LCL ...
Info: (lazarus) Open dependency [LCL]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses DebuggerIntf ...
Info: (lazarus) Open dependency: trying "DebuggerIntf" in Global links: "/usr/share/lazarus/components/debuggerintf/debuggerintf.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/debuggerintf/debuggerintf.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [DebuggerIntf]: Success: "/usr/share/lazarus/components/debuggerintf/debuggerintf.lpk"
Info: (lazarus) Open dependency Package: DebuggerIntf 0.1 uses LCLBase ...
Info: (lazarus) Open dependency [LCLBase]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses LazDebuggerGdbmi ...
Info: (lazarus) Open dependency: trying "LazDebuggerGdbmi" in Global links: "/usr/share/lazarus/components/lazdebuggergdbmi/lazdebuggergdbmi.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/lazdebuggergdbmi/lazdebuggergdbmi.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [LazDebuggerGdbmi]: Success: "/usr/share/lazarus/components/lazdebuggergdbmi/lazdebuggergdbmi.lpk"
Info: (lazarus) Open dependency Package: LazDebuggerGdbmi 0.1 uses IDEIntf ...
Info: (lazarus) Open dependency [IDEIntf]: Success: was already loaded
Info: (lazarus) Open dependency Package: LazDebuggerGdbmi 0.1 uses DebuggerIntf ...
Info: (lazarus) Open dependency [DebuggerIntf]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses LazControls ...
Info: (lazarus) Open dependency [LazControls]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses CodeTools ...
Info: (lazarus) Open dependency: trying "CodeTools" in Global links: "/usr/share/lazarus/components/codetools/codetools.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/codetools/codetools.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [CodeTools]: Success: "/usr/share/lazarus/components/codetools/codetools.lpk"
Info: (lazarus) Open dependency Package: CodeTools 1.0.1 uses LazUtils ...
Info: (lazarus) Open dependency [LazUtils]: Success: was already loaded
Info: (lazarus) Open dependency Package: LazOpenGLContext 0.0.1 uses FCL (>=1.0) ...
Info: (lazarus) Open dependency [FCL]: Success: was already loaded
Info: (lazarus) Open dependency Package: LazOpenGLContext 0.0.1 uses LCL ...
Info: (lazarus) Open dependency [LCL]: Success: was already loaded
Hint: (lazarus) Missing state file of FCL 1.0.1: /usr/share/lazarus/packager/units/x86_64-linux/FCL.compiled
Hint: (lazarus) normal output directory of package FCL 1.0.1 is not writable: "/usr/share/lazarus/packager/units/x86_64-linux/"
TParsedCompilerOptions.SetOutputDirectoryOverride New=/home/chymera/.lazarus/lib/units/x86_64-linux
Hint: (lazarus) Missing state file of LazUtils 1.0: /usr/share/lazarus/components/lazutils/lib/x86_64-linux/LazUtils.compiled
Hint: (lazarus) normal output directory of package LazUtils 1.0 is not writable: "/usr/share/lazarus/components/lazutils/lib/x86_64-linux/"
TParsedCompilerOptions.SetOutputDirectoryOverride New=/home/chymera/.lazarus/lib/LazUtils/lib/x86_64-linux
Hint: (lazarus) Missing state file of LCLBase 1.6.0.4: /usr/share/lazarus/lcl/units/x86_64-linux/LCLBase.compiled
Hint: (lazarus) normal output directory of package LCLBase 1.6.0.4 is not writable: "/usr/share/lazarus/lcl/units/x86_64-linux/"
TParsedCompilerOptions.SetOutputDirectoryOverride New=/home/chymera/.lazarus/lib/LCLBase/units/x86_64-linux
Hint: (lazarus) Missing state file of LCL 1.6.0.4: /usr/share/lazarus/lcl/units/x86_64-linux/gtk2/LCL.compiled
Hint: (lazarus) normal output directory of package LCL 1.6.0.4 is not writable: "/usr/share/lazarus/lcl/units/x86_64-linux/gtk2/"
TParsedCompilerOptions.SetOutputDirectoryOverride New=/home/chymera/.lazarus/lib/units/x86_64-linux/gtk2
Hint: (lazarus) Missing state file of LazOpenGLContext 0.0.1: /usr/share/lazarus/components/opengl/lib/x86_64-linux/gtk2/LazOpenGLContext.compiled
Error: (lazarus) unable to create package output directory "/usr/share/lazarus/components/opengl/lib/x86_64-linux/gtk2" of package "LazOpenGLContext 0.0.1"
Hint: (lazarus) normal output directory of package LazOpenGLContext 0.0.1 is not writable: "/usr/share/lazarus/components/opengl/lib/x86_64-linux/gtk2/"
TParsedCompilerOptions.SetOutputDirectoryOverride New=/home/chymera/.lazarus/lib/LazOpenGLContext/lib/x86_64-linux/gtk2
chymera@quiethost ~ $ echo $?
0
chymera@quiethost ~ $ lazbuild --verbose-pkgsearch LCL
Info: (lazarus) Open dependency TLazPackageGraph uses FCL ...
Info: (lazarus) Open dependency: trying "FCL" in Global links: "/usr/share/lazarus/packager/registration/fcl.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/packager/registration/fcl.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [FCL]: Success: "/usr/share/lazarus/packager/registration/fcl.lpk"
Info: (lazarus) Open dependency TLazPackageGraph uses LazUtils ...
Info: (lazarus) Open dependency: trying "LazUtils" in Global links: "/usr/share/lazarus/components/lazutils/lazutils.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/lazutils/lazutils.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [LazUtils]: Success: "/usr/share/lazarus/components/lazutils/lazutils.lpk"
Info: (lazarus) Open dependency Package: LazUtils 1.0 uses FCL ...
Info: (lazarus) Open dependency [FCL]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses LCLBase ...
Info: (lazarus) Open dependency: trying "LCLBase" in Global links: "/usr/share/lazarus/lcl/lclbase.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/lcl/lclbase.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [LCLBase]: Success: "/usr/share/lazarus/lcl/lclbase.lpk"
Info: (lazarus) Open dependency Package: LCLBase 1.6.0.4 uses LazUtils ...
Info: (lazarus) Open dependency [LazUtils]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses LCL ...
Info: (lazarus) Open dependency: trying "LCL" in Global links: "/usr/share/lazarus/lcl/interfaces/lcl.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/lcl/interfaces/lcl.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [LCL]: Success: "/usr/share/lazarus/lcl/interfaces/lcl.lpk"
Info: (lazarus) Open dependency Package: LCL 1.6.0.4 uses LCLBase ...
Info: (lazarus) Open dependency [LCLBase]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses SynEdit ...
Info: (lazarus) Open dependency: trying "SynEdit" in Global links: "/usr/share/lazarus/components/synedit/synedit.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/synedit/synedit.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [SynEdit]: Success: "/usr/share/lazarus/components/synedit/synedit.lpk"
Info: (lazarus) Open dependency Package: SynEdit 1.0 uses LCL ...
Info: (lazarus) Open dependency [LCL]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses IDEIntf ...
Info: (lazarus) Open dependency: trying "IDEIntf" in Global links: "/usr/share/lazarus/components/ideintf/ideintf.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/ideintf/ideintf.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [IDEIntf]: Success: "/usr/share/lazarus/components/ideintf/ideintf.lpk"
Info: (lazarus) Open dependency Package: IDEIntf 1.0 uses LazControls ...
Info: (lazarus) Open dependency: trying "LazControls" in Global links: "/usr/share/lazarus/components/lazcontrols/lazcontrols.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/lazcontrols/lazcontrols.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [LazControls]: Success: "/usr/share/lazarus/components/lazcontrols/lazcontrols.lpk"
Info: (lazarus) Open dependency Package: LazControls 1.0.1 uses LCL ...
Info: (lazarus) Open dependency [LCL]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses DebuggerIntf ...
Info: (lazarus) Open dependency: trying "DebuggerIntf" in Global links: "/usr/share/lazarus/components/debuggerintf/debuggerintf.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/debuggerintf/debuggerintf.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [DebuggerIntf]: Success: "/usr/share/lazarus/components/debuggerintf/debuggerintf.lpk"
Info: (lazarus) Open dependency Package: DebuggerIntf 0.1 uses LCLBase ...
Info: (lazarus) Open dependency [LCLBase]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses LazDebuggerGdbmi ...
Info: (lazarus) Open dependency: trying "LazDebuggerGdbmi" in Global links: "/usr/share/lazarus/components/lazdebuggergdbmi/lazdebuggergdbmi.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/lazdebuggergdbmi/lazdebuggergdbmi.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [LazDebuggerGdbmi]: Success: "/usr/share/lazarus/components/lazdebuggergdbmi/lazdebuggergdbmi.lpk"
Info: (lazarus) Open dependency Package: LazDebuggerGdbmi 0.1 uses IDEIntf ...
Info: (lazarus) Open dependency [IDEIntf]: Success: was already loaded
Info: (lazarus) Open dependency Package: LazDebuggerGdbmi 0.1 uses DebuggerIntf ...
Info: (lazarus) Open dependency [DebuggerIntf]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses LazControls ...
Info: (lazarus) Open dependency [LazControls]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses CodeTools ...
Info: (lazarus) Open dependency: trying "CodeTools" in Global links: "/usr/share/lazarus/components/codetools/codetools.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/codetools/codetools.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [CodeTools]: Success: "/usr/share/lazarus/components/codetools/codetools.lpk"
Info: (lazarus) Open dependency Package: CodeTools 1.0.1 uses LazUtils ...
Info: (lazarus) Open dependency [LazUtils]: Success: was already loaded
Hint: (lazarus) Missing state file of FCL 1.0.1: /usr/share/lazarus/packager/units/x86_64-linux/FCL.compiled
Hint: (lazarus) normal output directory of package FCL 1.0.1 is not writable: "/usr/share/lazarus/packager/units/x86_64-linux/"
TParsedCompilerOptions.SetOutputDirectoryOverride New=/home/chymera/.lazarus/lib/units/x86_64-linux
Hint: (lazarus) Missing state file of LazUtils 1.0: /usr/share/lazarus/components/lazutils/lib/x86_64-linux/LazUtils.compiled
Hint: (lazarus) normal output directory of package LazUtils 1.0 is not writable: "/usr/share/lazarus/components/lazutils/lib/x86_64-linux/"
TParsedCompilerOptions.SetOutputDirectoryOverride New=/home/chymera/.lazarus/lib/LazUtils/lib/x86_64-linux
Hint: (lazarus) Missing state file of LCLBase 1.6.0.4: /usr/share/lazarus/lcl/units/x86_64-linux/LCLBase.compiled
Hint: (lazarus) normal output directory of package LCLBase 1.6.0.4 is not writable: "/usr/share/lazarus/lcl/units/x86_64-linux/"
TParsedCompilerOptions.SetOutputDirectoryOverride New=/home/chymera/.lazarus/lib/LCLBase/units/x86_64-linux
Hint: (lazarus) Missing state file of LCL 1.6.0.4: /usr/share/lazarus/lcl/units/x86_64-linux/gtk2/LCL.compiled
Hint: (lazarus) normal output directory of package LCL 1.6.0.4 is not writable: "/usr/share/lazarus/lcl/units/x86_64-linux/gtk2/"
TParsedCompilerOptions.SetOutputDirectoryOverride New=/home/chymera/.lazarus/lib/units/x86_64-linux/gtk2
chymera@quiethost ~ $ echo $?
0

Which to me looks like a failure.

echo $?, however, indicates tat the command was successful. Interestingly, if I try this out with some invented package name, it does indeed return the error you just mentioned:

chymera@quiethost ~ $ lazbuild --verbose-pkgsearch inventedpackagename
Info: (lazarus) Open dependency TLazPackageGraph uses FCL ...
Info: (lazarus) Open dependency: trying "FCL" in Global links: "/usr/share/lazarus/packager/registration/fcl.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/packager/registration/fcl.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [FCL]: Success: "/usr/share/lazarus/packager/registration/fcl.lpk"
Info: (lazarus) Open dependency TLazPackageGraph uses LazUtils ...
Info: (lazarus) Open dependency: trying "LazUtils" in Global links: "/usr/share/lazarus/components/lazutils/lazutils.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/lazutils/lazutils.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [LazUtils]: Success: "/usr/share/lazarus/components/lazutils/lazutils.lpk"
Info: (lazarus) Open dependency Package: LazUtils 1.0 uses FCL ...
Info: (lazarus) Open dependency [FCL]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses LCLBase ...
Info: (lazarus) Open dependency: trying "LCLBase" in Global links: "/usr/share/lazarus/lcl/lclbase.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/lcl/lclbase.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [LCLBase]: Success: "/usr/share/lazarus/lcl/lclbase.lpk"
Info: (lazarus) Open dependency Package: LCLBase 1.6.0.4 uses LazUtils ...
Info: (lazarus) Open dependency [LazUtils]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses LCL ...
Info: (lazarus) Open dependency: trying "LCL" in Global links: "/usr/share/lazarus/lcl/interfaces/lcl.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/lcl/interfaces/lcl.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [LCL]: Success: "/usr/share/lazarus/lcl/interfaces/lcl.lpk"
Info: (lazarus) Open dependency Package: LCL 1.6.0.4 uses LCLBase ...
Info: (lazarus) Open dependency [LCLBase]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses SynEdit ...
Info: (lazarus) Open dependency: trying "SynEdit" in Global links: "/usr/share/lazarus/components/synedit/synedit.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/synedit/synedit.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [SynEdit]: Success: "/usr/share/lazarus/components/synedit/synedit.lpk"
Info: (lazarus) Open dependency Package: SynEdit 1.0 uses LCL ...
Info: (lazarus) Open dependency [LCL]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses IDEIntf ...
Info: (lazarus) Open dependency: trying "IDEIntf" in Global links: "/usr/share/lazarus/components/ideintf/ideintf.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/ideintf/ideintf.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [IDEIntf]: Success: "/usr/share/lazarus/components/ideintf/ideintf.lpk"
Info: (lazarus) Open dependency Package: IDEIntf 1.0 uses LazControls ...
Info: (lazarus) Open dependency: trying "LazControls" in Global links: "/usr/share/lazarus/components/lazcontrols/lazcontrols.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/lazcontrols/lazcontrols.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [LazControls]: Success: "/usr/share/lazarus/components/lazcontrols/lazcontrols.lpk"
Info: (lazarus) Open dependency Package: LazControls 1.0.1 uses LCL ...
Info: (lazarus) Open dependency [LCL]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses DebuggerIntf ...
Info: (lazarus) Open dependency: trying "DebuggerIntf" in Global links: "/usr/share/lazarus/components/debuggerintf/debuggerintf.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/debuggerintf/debuggerintf.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [DebuggerIntf]: Success: "/usr/share/lazarus/components/debuggerintf/debuggerintf.lpk"
Info: (lazarus) Open dependency Package: DebuggerIntf 0.1 uses LCLBase ...
Info: (lazarus) Open dependency [LCLBase]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses LazDebuggerGdbmi ...
Info: (lazarus) Open dependency: trying "LazDebuggerGdbmi" in Global links: "/usr/share/lazarus/components/lazdebuggergdbmi/lazdebuggergdbmi.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/lazdebuggergdbmi/lazdebuggergdbmi.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [LazDebuggerGdbmi]: Success: "/usr/share/lazarus/components/lazdebuggergdbmi/lazdebuggergdbmi.lpk"
Info: (lazarus) Open dependency Package: LazDebuggerGdbmi 0.1 uses IDEIntf ...
Info: (lazarus) Open dependency [IDEIntf]: Success: was already loaded
Info: (lazarus) Open dependency Package: LazDebuggerGdbmi 0.1 uses DebuggerIntf ...
Info: (lazarus) Open dependency [DebuggerIntf]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses LazControls ...
Info: (lazarus) Open dependency [LazControls]: Success: was already loaded
Info: (lazarus) Open dependency TLazPackageGraph uses CodeTools ...
Info: (lazarus) Open dependency: trying "CodeTools" in Global links: "/usr/share/lazarus/components/codetools/codetools.lpk" ...
Info: (lazarus) Open dependency: package file found: "/usr/share/lazarus/components/codetools/codetools.lpk". Parsing lpk ...
Info: (lazarus) Open dependency [CodeTools]: Success: "/usr/share/lazarus/components/codetools/codetools.lpk"
Info: (lazarus) Open dependency Package: CodeTools 1.0.1 uses LazUtils ...
Info: (lazarus) Open dependency [LazUtils]: Success: was already loaded
ERROR: package not found: inventedpackagename
chymera@quiethost ~ $ echo $?
1

So according to lazbuild --verbose-pkgsearch it seems I actually do have lazopenglcontext and pascalscript. Was then our initial evaluation wrong, as to why the MRIcroGL build is failing, or is the command not really checking whether the specified packages are compiled?

from mricrogl10_old.

neurolabusc avatar neurolabusc commented on June 16, 2024

Your results from echo $? show all is working well. As I noted, command line functions return 0 on success and any other number on failure. So when you checked for the package "inventedpackagename " the command said "ERROR: package not found: inventedpackagename" you got an error (the command return 1), whereas the packages "LCL" and "lazopenglcontext" were both present so the function returned 0. I assume on this machine you have already rebuilt Lazarus with the required packages. I assume you will now be able to compile MRIcroGL with the command lazbuild -B ./simplelaz.lpi

In your message above you assume a response of 0 is failure, but this is not the convention for Unix programs. For Unix programs and compilers the value for EXIT_SUCCESS is always 0. This makes sense if you think that there are many ways for a program to fail (so many possible error codes), whereas only a single possible way for success.

What do you see when you run lazbuild -B ./simplelaz.lpi

from mricrogl10_old.

TheChymera avatar TheChymera commented on June 16, 2024

So it turns out this was an issue with the lazarus version after all. The 20160930 MRIcroGL version (and all subsequent, I assume) requires >=lazarus-1.6.2 to compile under Linux, it seems.

The new MRIcroGL, with the appropriate dependency update will be available for Gentoo very soon.

from mricrogl10_old.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.