bgrabitmap / lazpaint

🎨 Cross-platform image editor with raster and vector layers similar to Paint.Net written in Lazarus (Free Pascal)
https://lazpaint.github.io/
GNU General Public License v3.0
407 stars 58 forks source link

FreeBSD and ARM RPi binary release of LazPaint 7.1.5 #209

Closed fredvs closed 3 years ago

fredvs commented 4 years ago

Hello everybody.

I am back near my machines.

What code should I use for producing the LazPaint 7.1.5 release?

The one from trunk or main or a other?

Fre;D.

circular17 commented 4 years ago

Hi Fred,

Basically as it is the latest release, you can use the releases of lazpaint and its libraries. Those are basically the master branches.

Regards

fredvs commented 3 years ago

Hello and sorry for the delay.

I try to compile Lazpaint using last commit of lazpaint-master, bgrabitmap-master and bgracontrols-master. FPC 3.2.0 is used and code of last (maybe?) Lazarus source.

But there is a error at compilation:

/home/fred/lazpaint-master/lazpaintcontrols/lcvectororiginal.pas(442,14):
Error: (3058) There is no method in an ancestor class to be overridden:
 "ConvertToSVG(const TAffineMatrix;out TPoint):TObject;"

/home/fred/lazpaint-master/lazpaintcontrols/lcvectororiginal.pas(478,20):
 Error: (3058) There is no method in an ancestor class to be overridden: 
"class CanConvertToSVG:Boolean;"

/home/fred/lazpaint-master/lazpaintcontrols/lcvectororiginal.pas(523,1):
 Fatal: (10026) There were 2 errors compiling module, stopping
 Fatal: (1018) Compilation aborted

What do I miss?

Thanks.

Fre;D

fredvs commented 3 years ago

Ooops, ok, it compiles now, sorry for the noise.

Did you change the resource of that new release (lazpaint.res)? (Because I have still problems to create lazpaint.res on Rpi and so I did use the one of previous release).

If you did change it, no problem, I will first compile it with Lazarus-Windows and use that lazpaint.res.

fredvs commented 3 years ago

Note that, in lazpaint.lpr at line 155:

Changing this:

{$R *.res}

With this:

{$R *.rc}

Make compilation with fpc 3.2.0 Linux ok and resource is included too (it seems fpc uses now fpcres for Linux and no more windres):

(9022) Compiling resource /home/fred/lazpaint-master/lazpaint/lazpaint.rc
(9022) Compiling resource units/lazpaint.or

[EDIT] Sorry, in fact my Linux machine was still using windres , the fpcres is not enabled in fpc 3.2.0 and is only in test in fpc 3.3.1.

Re-sorry for the noise.

So, to resume, no problem, I will compile the source for ARM Rpi and FreeBSD very soon using the lazpaint.res produced by fpc linux..

Cheers.

Fre;D

circular17 commented 3 years ago

Hi

There is a RES file for you in the resources directory

Also you can use the lazpaint-upstream repository

fredvs commented 3 years ago

There is a RES file for you in the resources directory

Not for me:

https://github.com/bgrabitmap/lazpaint/tree/master/resources

;-(

fredvs commented 3 years ago

Also you can use the lazpaint-upstream repository

Hum, ok, but is it synchro with lazpaint-master, it seems that some commits where done?

circular17 commented 3 years ago

There is a RES file for you in the resources directory

Not for me:

https://github.com/bgrabitmap/lazpaint/tree/master/resources

;-(

Look there: https://github.com/bgrabitmap/lazpaint-upstream/tree/master/resources

Also you can use the lazpaint-upstream repository

Hum, ok, but is it synchro with lazpaint-master, it seems that some commits where done?

Yeah, if there was a new version, there would be a new number etc.

Though something to check is that there is no error when you do Render > Water or something from that menu. That is related to a compiler error and is easy to fix: https://github.com/bgrabitmap/bgrabitmap/commit/d3d1fb0f882cf49053d42a72f0c23d71e104ac3b

fredvs commented 3 years ago

OK.

fredvs commented 3 years ago

Also you can use the lazpaint-upstream repository

Hum, ok, but is it synchro with lazpaint-master, it seems that some commits where done?

Yeah, if there was a new version, there would be a new number etc.

I did try to compile lazpaint from lazpaint-upstream but there are lot of error about uxxx.pas files.

fredvs commented 3 years ago

Hello.

Included release of LazPaint version 7.1.6 for FreeBSD 64 bit.

Note that cmem was added as first unit in lazpaint.lpr uses section otherwise the application crashed for each action.

Also optimization needed to be set as -O1.

lazpaint7 1 6_FreeBSD64

lazpaint7.1.6_freebsd64_no_install.tar.gz

PS: Release for Rpi comes asap (have problems with hdmi screen).

circular17 commented 3 years ago

I did try to compile lazpaint from lazpaint-upstream but there are lot of error about uxxx.pas files.

Missing files?

Included release of LazPaint version 7.1.6 for FreeBSD 64 bit.

Note that cmem was added as first unit in lazpaint.lpr uses section otherwise the application crashed for each action.

Also optimization needed to be set as -O1.

Ok. Thank you very much indeed.

PS: Release for Rpi comes asap (have problems with hdmi screen).

Alright

fredvs commented 3 years ago

did try to compile lazpaint from lazpaint-upstream but there are lot of error about uxxx.pas files.

Missing files?

No, methods that do not have same parameters as declared, different format of parameters, ... Bref, some (lot of) uxxx.pas files that are in lazpaint-upstream are not the same as those used with lazpaint-master.

So, to make it simpler, I did use the code of lazpaint-master, bgrabitmap-master and bgracontrols-master.

circular17 commented 3 years ago

Alright, whatever feels more comfortable

fredvs commented 3 years ago

Hello.

Included release of LazPaint version 7.1.6 for ArmRPi 32 bit.

I did not yet the Debian version, I have to remember how to do (or maybe there is a how-to ?).

lazpaint7_1_6_armRPi32

lazpaint7.1.6_arm-rpi32_no_install.tar.gz

circular17 commented 3 years ago

Thanks Fred you rock

About the Deb, normally you can do it with the makedeb script: https://github.com/bgrabitmap/lazpaint/tree/master/lazpaint/release/debian

fredvs commented 3 years ago

About the Deb, normally you can do it with the makedeb script:

Ha, ok, I will try.

Hum, about the assert of lazpaint7.1.6_arm-rpi32_no_install.tar.gz and Raspbian...

They change the name of Raspbian to Raspberry-pi-OS.

https://unix.stackexchange.com/questions/602587/why-has-raspbian-apparently-been-renamed-into-raspberry-pi-os

PS: Not very important, only for the "purists".

fredvs commented 3 years ago

About the Deb, normally you can do it with the makedeb script:

Ha, this one was really OOTB, well done Circular.

Also installed the deb and all was ok, nice.

Included the binaries produced by makedeb script (.deb and _noinstall) and a screenshot.

Note that Github dont allow to upload .deb files, so _lazpaint7.1.6armhf.deb was renamed into _lazpaint7.1.6armhf.deb.zip. After downloading it, just remove the ".zip" extension.

lazpaint716_rpi_deb

lazpaint7.1.6_armhf_no_install.tar.gz

lazpaint7.1.6_armhf.deb.zip

circular17 commented 3 years ago

Thanks. I am not sure, but those are raspbian 64 basically, so different from raspbian 32?

fredvs commented 3 years ago

Thanks. I am not sure, but those are raspbian 64 basically, so different from raspbian 32?

It should be similar but I dont have find yet a last version of RPi 4, I still work with RPi 2.

fredvs commented 3 years ago

Or maybe I did not catch.

Indeed even Rpi 2 processor is 64 bit but when installing last release of Raspberry OS, It install a 32 bit release.

I have to study how to install the 64 bit OS.

fredvs commented 3 years ago

Ha, ok, I will try to install RPi OS 64 bit.

https://qengineering.eu/install-raspberry-64-os.html

Asap.

fredvs commented 3 years ago

Hello everybody.

About Raspberry Pi OS 64 bit.

OK, I was able to install it on a Rpi 3 machine. But... It is highly unstable, if you do a apt-get update, after the Rpi does not reboot.

Also many installed applications crash after few time and are much slower that the 32 bit equivalent.

I was able to install fpc for aarch64. But...

Only simple console application are working (application that uses threads crash). For GUI application, I was able to compile simple fpGUI and MSEgui applications, but only with 1 main thread.

For Lazarus, like for the Raspberry OS 32 bit, I was not able to compile it and install it on Rpi OS 64 bit. (If I was able to compile lazpaint for Rpi 32 bit, it is because I used ideU or command line.)

So I have very sad news, I give it up at the moment for Rpi OS 64 bit. It is very rare that I take such a decision, I am a explorer_warrior after all. But in that case I have to be realist, Rpi OS 64 bit and fpc aarch64 are too unstable for the moment.

https://raspberrypi.stackexchange.com/questions/43921/will-raspbian-move-to-64-bit

All that said, if people was able to compile+run lcl or fpGUI or MSEgui big applications on Rpi OS 64 bit, I am more than interested to know how to do and what to change.

Fre;D

fredvs commented 3 years ago

Hello.

Ok I went back to exploration:

Finally I was able to install Rpi OS aarch64 more or less stable. FPC runs ok, MSEgui applications included those using BGRABitmap can be compiled and run nicely.

Now about Lazpaint and LCL on aarch64-linux.

I have a coñpilation error at controls.pp.

/home/pi/lazarus/lcl/controls.pp(1186,17) Error: (5000) Identifier not found "TPopupMenu" /home/pi/lazarus/lcl/controls.pp(1186,27) Error: (5007) Error in type definition /home/pi/lazarus/lcl/controls.pp(1267,45) Error: (5000) Identifier not found "TPopupMenu" /home/pi/lazarus/lcl/controls.pp(1454,38) Error: (5000) Identifier not found "TPopupMenu" /home/pi/lazarus/lcl/controls.pp(1731,36) Error: (5000) Identifier not found "TPopupmenu" /home/pi/lazarus/lcl/controls.pp(2791,1) Fatal: (10026) There were 5 errors compiling module, stopping Fatal: (1018) Compilation aborted Error: /usr/bin/ppca64 returned an error exitcode

I really dont understand why because I checked source and in uses section "menus" is there.

Do you have a idea why Identifier not found "TPopupMenu" ?

I did try with source of lazarus 2.10 and trunk but same error.

Ho, yes, Happy New Year y Feliz Navidad et Joyeuses Fêtes and more.

Fre;D

fredvs commented 3 years ago

Toc, toc, toc, yakelkun ?

Identifier not found "TPopupMenu"

No idea?

circular17 commented 3 years ago

Personally I have no idea.

But Happy New Year and Joyeuses Pâques tout ça

fredvs commented 3 years ago

Allez, time to finish the year in beauté:

lazpaint_aarch64

Here the working compiled LazPaint for aarch64-linux, deb and no_install. Dont forget to remove the ".zip" extension of the deb file (due to github limitation)

[EDIT] Here LazPaint releases for aarch64 compiled with fpc-ootb-aarch64 (this to not oblige people to install tons of *-dev packages to make it work).

lazpaint7.1.6_arm64.deb.zip

lazpaint7.1.6_aarch64_no_install.tar.gz

Fre;D

circular17 commented 3 years ago

Ohh congrats! Thanks