[Lazarus] Can I rebuild Lazarus installed via apt on an RPi4B?
Mattias Gaertner
nc-gaertnma at netcologne.de
Thu Dec 7 11:50:41 CET 2023
On 07.12.23 11:22, Bo Berglund via lazarus wrote:
>[...]
> Also looked at the /usr/bin dir and it is owned by root so no chance of
> installing as a user there...
Yes, see
https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
> I thought that perhaps when running apt without sudo it would change install
> path to something inside the $HOME location, but apparently not...
You can extract a debian package anywhere, but you can install it only
as root to fixed folders.
>>> So how does this work?
>>
>> Lazarus tests before compiling a package if the output directory is
>> writable and if not redirects to a sub directory of its config directory.
>> This is a feature of the IDE and lazbuild.
>> The makefiles do not support this, so a "make" fails.
>
> So to rebuild Lazarus from the command line I should use lazbuild, right?
> What arguments are needed for lazbuild?
>
> I looked here: https://wiki.lazarus.freepascal.org/lazbuild
>
> So will this be sufficient:
>
> lazbuild --build-ide="Normal IDE" --pcp="$HOME/.lazarus_2.2.6"
> --compiler=$HOME/bin/ppcarm
Seeing all your experiments I don't know if it is sufficient for you. It
sounds right.
Although if you don't want to use the defaults, then I recommend to
*not* install Lazarus from apt, but simply download the git, create a
lazarus.cfg and "make clean all".
> ...
> If I use sudo apt install lazarus, will that also pull fpc as a dependency
Yes.
> or
> should I use:
>
> sudo apt install fpc lazarus
>
> instead?
> And what about the lazarus sources, are they pulled in as well with the sudo apt
> install lazarus command?
Yes.
>[...]
> I have been building Fpc/Lazarus from sources since many years, also tested
> fpcupdeluxe a few times. So getting/using the sources is known.
>
> I usually download the tarballs with a release tag from gitlab using wget.
> After I have built fpc and symlinked into $HOME/bin I build Lazarus like this:
>
> cd $HOME/devtools/lazarus/2.2.6/
> make clean PP=$HOME/bin/ppcarm && make bigide PP=$HOME/bin/ppcarm
Shorter:
make clean bigide PP=$HOME/bin/ppcarm
>[...] > New fpc?
> Being able to upgrade fpc on the side without disruption of Lazarus is also an
> issue for me, is there some setting/config within the pcp directory that I can
> change to point Lazarus to a new fpc compiler and it will then be possible to
> rebuild Lazarus with that new compiler?
For compiling your project set the compiler in Project Options. Use
build modes for multiple platforms.
For compiling the IDE with different fpc versions, install the fpc
sources in paths that only differ in version number, so you can use the
IDE macro $(FPCVer). Then you can easily switch the used fpc in Tools /
Options / Env / Files.
> And what about day-to-day project compiles if I want to use the new compiler?
> Is it as simple as changing the symlink of $HOME/bin/ppcarm to point to the new
> compiler? It would affect all user installs utilizing the ppcarm compiler.
Using build modes sounds easier.
Mattias
More information about the lazarus
mailing list