Recent

Author Topic: Fpcupdeluxe  (Read 957604 times)

thierrybo

  • Full Member
  • ***
  • Posts: 146
Re: Fpcupdeluxe
« Reply #2625 on: October 14, 2025, 08:26:11 pm »
Hi,

is there a way to force installation without additional packages (as in "make install") for an update to an existing installation ? This would allow to run Lazarus, change packages marked for installation, run OPM to updates some packages. And to avoid ending with no Lazarus binary because some packages failed.

DonAlfredo

  • Hero Member
  • *****
  • Posts: 1845
Re: Fpcupdeluxe
« Reply #2626 on: October 14, 2025, 09:25:46 pm »
Please file a feature request on GitHub.

af0815

  • Hero Member
  • *****
  • Posts: 1405
Re: Fpcupdeluxe
« Reply #2627 on: October 14, 2025, 09:27:38 pm »
Hi,

is there a way to force installation without additional packages (as in "make install") for an update to an existing installation ? This would allow to run Lazarus, change packages marked for installation, run OPM to updates some packages. And to avoid ending with no Lazarus binary because some packages failed.
IMHO is it better to install on bare metal. You can remove the lazarus tree and make a new try. The fastest way without have troubles with old fragments.
regards
Andreas

thierrybo

  • Full Member
  • ***
  • Posts: 146
Re: Fpcupdeluxe
« Reply #2628 on: October 14, 2025, 09:58:23 pm »
Please file a feature request on GitHub.
Done

thierrybo

  • Full Member
  • ***
  • Posts: 146
Re: Fpcupdeluxe
« Reply #2629 on: October 14, 2025, 10:01:25 pm »
IMHO is it better to install on bare metal. You can remove the lazarus tree and make a new try. The fastest way without have troubles with old fragments.

Yes  but for me it is the last solution. Because it is a pain to add all your IDE configuration, list of packages ...

Cascade

  • Jr. Member
  • **
  • Posts: 65
Re: Fpcupdeluxe
« Reply #2630 on: October 15, 2025, 11:40:10 am »
... And to avoid ending with no Lazarus binary because some packages failed.

When Lazarus requests a rebuild (due to package install) - it would be good if the IDE had the capability to rollback in the event of a rebuild failure, rather than leaving us with a broken installation.  Maybe it could create a backup copy of the main binary just before rebuilding.  Then if rebuild fails, the StartLazarus part of the app would notice the missing binary and reinstate the backup binary during launch.

fabiopesaju

  • Jr. Member
  • **
  • Posts: 97
Re: Fpcupdeluxe
« Reply #2631 on: November 11, 2025, 06:33:45 pm »
If I install using the "stable" option, will I automatically install version 4.4?

Thausand

  • Sr. Member
  • ****
  • Posts: 406
Re: Fpcupdeluxe
« Reply #2632 on: November 11, 2025, 06:48:17 pm »
If I install using the "stable" option, will I automatically install version 4.4?
No. Only when add you self  :)

Make edit configuration fpcupdeluxe.

Have read message Don Alfredo how do make: https://forum.lazarus.freepascal.org/index.php/topic,34645.msg560597.html#msg560597

Name for Lazarus is tag. Can read repo https://gitlab.com/freepascal.org/lazarus/lazarus/-/tags (example "lazarus_4_4", have note: case depend)

Josh

  • Hero Member
  • *****
  • Posts: 1425
Re: Fpcupdeluxe
« Reply #2633 on: November 12, 2025, 12:01:05 am »
For those wanting to try 3.2.4rc1 and Lazarus 4.4.

If you want to add custom FPC and Lazarus versions in fpcupdeluxe, you’ll need to edit the fpcup.ini file located in the same folder where you run fpcupdeluxe.

If this is a fresh installation, first run fpcupdeluxe once, then close it — this will automatically create the fpcup.ini file.

Next, open fpcup.ini in a text editor and find the sections:
[ALIASfpcTAG] and [ALIASlazTAG].

Add the following lines under each respective section, then save the file:

Code: Pascal  [Select][+][-]
  1. [ALIASfpcTAG]
  2. stable.gitlab=release_3_2_2
  3. 3.2.4.rc1.gitlab=release_3_2_4_rc1
  4. ; 3.2.4.gitlab=release_3_2_4
  5. 3.2.2.gitlab=release_3_2_2

Code: Pascal  [Select][+][-]
  1. [ALIASlazTAG]
  2. stable.gitlab=lazarus_4_2
  3. 4.4.gitlab=lazarus_4_4
  4. 4.2.gitlab=lazarus_4_2

When you restart fpcupdeluxe, you should now see 3.2.4.rc1 and 4.4 available for selection.
Choose these versions and click the Install FPC & Lazarus button to proceed.

Tip: Don’t forget to set the correct Install Folder Location before installing.

I've also attached a ZIP file containing the fpcup.ini from my Windows setup — hopefully it helps as a reference.


« Last Edit: November 12, 2025, 12:10:40 am by Josh »
The best way to get accurate information on the forum is to post something wrong and wait for corrections.

Cascade

  • Jr. Member
  • **
  • Posts: 65
Re: Fpcupdeluxe
« Reply #2634 on: November 13, 2025, 11:57:03 am »
After installing the macOS x86_64 cross-compilers to target Linux x86_64 and Linux Aarch64 with FpcUpDeluxe; When cross-compiling an app that uses the GTK3 widget set, the linker can't find the libraries associated with GTK3:

Code: [Select]
Error: …/cross/bin/aarch64-linux/aarch64-linux-ld: cannot find -lgdk-3: No such file or directory
Error: …/cross/bin/aarch64-linux/aarch64-linux-ld: cannot find -lcairo-gobject: No such file or directory
Error: …/cross/bin/aarch64-linux/aarch64-linux-ld: cannot find -lgio-2.0: No such file or directory
Error: …/cross/bin/aarch64-linux/aarch64-linux-ld: cannot find -lharfbuzz: No such file or directory
Error: …/cross/bin/aarch64-linux/aarch64-linux-ld: cannot find -lharfbuzz-gobject: No such file or directory
Error: …/cross/bin/aarch64-linux/aarch64-linux-ld: cannot find -lpangocairo-1.0: No such file or directory
MyProgram.lpr(28,0) Error: Error while linking

The libraries are actually present, and if I remove the numerical endings off the filenames (e.g. libgtk-3.so.0 renamed to libgtk-3.so) then these errors disappear :)

However, it's then looking for an additional file: libharfbuzz-gobject.so which is missing.  So I copied it directly off my target Linux installation, Fedora Gnome 43 Aarch64, but now I get:

Code: [Select]
…/cross/bin/aarch64-linux/aarch64-linux-ld: …/cross/lib/aarch64-linux//libharfbuzz-gobject.so: undefined reference to `hb_draw_funcs_destroy'
...so it's perhaps the wrong version.  I feel that I'm getting close to a successful cross-compile with GTK3 - any hints?  For reference GTK2 is working.

DonAlfredo

  • Hero Member
  • *****
  • Posts: 1845
Re: Fpcupdeluxe
« Reply #2635 on: November 13, 2025, 12:24:44 pm »
Fpcupdeluxe has its own set of standard-libs that are used when cross-compiling. These libs might be unsuited or outdated or whatever. So you need to supply your own libs.
Fpcupdeluxe has a tool (as sources): libraryscanner.
https://github.com/LongDirtyAnimAlf/fpcupdeluxe/tree/master/fpcuptools/libraryscanner
Compile (cross-compile) the commandline version and run it on your target-system. It will collect all needed libs and put them in a subdir of the scanner binary. Copy these libs into the cross/lib/somecpu-someos. Copy all extra libs needed also. You are ready to go !

CharlyTango

  • Full Member
  • ***
  • Posts: 169
Re: Fpcupdeluxe
« Reply #2636 on: November 13, 2025, 12:30:27 pm »
Yes  but for me it is the last solution. Because it is a pain to add all your IDE configuration, list of packages ...

You are absolutely right when it comes to IDE configuration.

What works for me is the following:
I use fpcupdeluxe to install new Lazarus instances. If fpcupdeluxe finds the file defmods.ini it installs all mentiones packages automatically. I use defmods.ini to install packages that were not listed in OPM includin OPM itself.

Next step is to open OPM in Lazarus, right click on the list -- "load packages". This way i can choose among several (prior saved) package lists to be installed.
That means, ideally, there are only two steps to installation. Fpcupdeluxe and OPM

I would like the IDE configuration with window positions, open windows, desktops, etc. to be just as easy to transfer, but that doesn't seem to be so simple.



Lazarus stable, Win32/64

Cascade

  • Jr. Member
  • **
  • Posts: 65
Re: Fpcupdeluxe
« Reply #2637 on: November 13, 2025, 03:47:27 pm »
Thanks DonAlfredo - I'm making progress.  The scanner created a /home/(user)/Documents/sysroot-fedora-aarch64/usr/lib64/ folder containing over 1000 libraries, which I've copied over to .../cross/lib/aarch64-linux on macOS.  Unfortunately each library in the folder is aliased e.g.

libcairo.so.2↗️ -> Link target: libcairo.so.2.11804.4 (the actual library)

...and on macOS the linker doesn't seem to recognise the aliases (file libcairo.so.2 not found - even though an alias of that name is present).  If I delete the alias, then rename libcairo.so.2.11804.4 to libcairo.so.2 then the linker seems to find it OK - but since that library typically references other libraries I've yet to rename, that causes even more 'not found' errors.  There's 1288 libraries, which might make renaming impractical.  Perhaps there's a better approach?

(Edit: If I move all the aliases into a separate folder, I can probably write a utility to batch rename the lib folder via filename stems...)
« Last Edit: November 13, 2025, 04:08:26 pm by Cascade »

DonAlfredo

  • Hero Member
  • *****
  • Posts: 1845
Re: Fpcupdeluxe
« Reply #2638 on: November 13, 2025, 04:35:31 pm »
Sorry about this. There were a few lingering buggers inside of the scanner cmd-only-version.
Please download the sources again, recompile and re-run.
The libs MUST be found in a libs-subdir inside the directory where the scanner-binary is run.
Not at any other location !!

Cascade

  • Jr. Member
  • **
  • Posts: 65
Re: Fpcupdeluxe
« Reply #2639 on: November 13, 2025, 05:32:37 pm »
@DonAlfredo

Excellent, that went well!  Thank you 😊

After running your updated scanner to collect the library files, I only had to rename a few libraries that the linker still couldn't find (I just removed the numerical .0 extension in each case, so each ended with .so instead).  And I added one missing library that wasn't collected in the scan: harfbuzz-gobject.so

I received a few Warnings during compilation:

Code: [Select]
MyProgram.lpr(28,0) Warning: "crti.o" not found, this will probably cause a linking failure
MyProgram.lpr(28,0) Warning: "crtbegin.o" not found, this will probably cause a linking failure
MyProgram.lpr(28,0) Warning: "crtend.o" not found, this will probably cause a linking failure
MyProgram.lpr(28,0) Warning: "crtn.o" not found, this will probably cause a linking failure

But despite those warnings, the app cross-compiled successfully and ran with the GTK3 widget set on Linux Fedora Gnome 43, Aarch64 :)
« Last Edit: November 13, 2025, 05:37:26 pm by Cascade »

 

TinyPortal © 2005-2018