Package for Raspis

FeverBeaver's profile image FeverBeaver posted 1 month ago in Feature discussion Permalink

Hello Ansgar,

I am a daily user of Raspberry machines and I successfully compiled HeidiSQL for aarch64 and QT6, so I could use Heidi with the Raspis.

I wondered if you considered offering a .deb package for those machines? If so, I could offer my help if you need.

Kind regards, Guillaume

ansgar's profile image ansgar posted 1 month ago Permalink

I have limited knowledge about Raspis, but according to what you write the Raspi OS is not x86 based but uses QT6?

Why not, if it's not introducing issues I can't debug.

The QT6 binaries which I provide currently are for x64 Linux, and built through the quite simple build-qt6 step in this Makefile: https://github.com/HeidiSQL/HeidiSQL/blob/lazarus/Makefile

My guess is that step in the Makefile runs successfully on a Raspi, at least when Lazarus is installed, but that has to be tested: make clean build-qt6

The OS and environment is prepared before, through Github Actions. And that won't work with the dependent setup-lazarus action which is only compatible with x64 Linux: https://github.com/gcarreno/setup-lazarus#platforms For releases that would likely mean someone has to use a separate Raspi and execute the above make command on it.

Did you need to make modifications to the code or the project files for compiling?

FeverBeaver's profile image FeverBeaver posted 1 month ago Permalink

Hi,

Raspis are Arm-based running a Debian OS (called RaspberryOS, formerly Raspbian). Most recent models (late Pi2, Zero2 and so on) are based on an Arm 64-bit CPU. You have, give or take, all libraries from a Debian OS. libQt6pas is available for example.

What I did (I hope I won't be boring with too much useless details):

  • I installed/build a Lazarus 4.4 + FPC 3.3.1 package using fpcupdeluxe (https://github.com/LongDirtyAnimAlf/fpcupdeluxe)
  • downloaded the .ZIP file of the Git repo for the Lazarus branch of Heidi's code 12.17 (because git clone would not clone the root for some reasons, and I would not have the .lpi file among others)
  • ran the Lazarus pack, opened the LPI file, built the QT6 version using the menu (run/build), got an exec of 60ish MB because I had debug symbols enabled (d'oh), 17MB without debug & O3 optimization settings.
  • Most importantly: no code modification from my side.

So far, settings appart, everything worked as on a x86 machine. I just had, randomly, an error "list index out of range" when calling the file import (CSV) dialog, but it had not happened for a while.

I'll try building using the makefile and will keep you updated.

As I could not have it cross-compiled on a Linux x86-64, I use a Zero2 as build machine, and use the software on a Raspi 5.

FeverBeaver's profile image FeverBeaver posted 1 month ago Permalink

So, I downloaded the source for 12.18 (ZIP as the git clone would not work again, not much of an hassle), ran the make build clean-qt6 It compiled with just a few warnings (basically the ones I had already seen with the 12.17 code, like "xxx is deprecated, use xyz", "Case statement does not handle all possible cases" and so on, one must see when compiling for x86 too I imagine).

Here it is: welcome 12.18 for aarch64.

1 attachment(s):
  • 2026-06-14T14-31-20-491263057-02-00
ansgar's profile image ansgar posted 1 month ago Permalink

That sounds really promising, and the screen looks quite free from obvious issues.

I just think of getting me a Raspi box for testing and compiling purposes.

But how widely would HeidiSQL be used on a Raspi? What would you have used as an alternative to HeidiSQL? Are there good ones?

FeverBeaver's profile image FeverBeaver posted 1 month ago Permalink

The problem is, Raspis v5 prices have skyrocketed with the RAM shortages. The v4 albeit not cheap, is less expensive. So I don't know if a Heidi package would be of any interest for a mass of users, and I don't know if the platform has a wide adoption as desktop replacement.

What would I use? DBeaver, but I don't really like it: it is able to handle more DBMS, but is slower and has a not so great query completion.

I could handle compilation if that could help you.

ansgar's profile image ansgar posted 1 month ago Permalink

I gave AI a try today help me creating a build step for arm64 Linux in the Github actions workflow. After fixing a few weird compiler errors it has just produced a binary. In lack of a Raspi I would like to ask whether you could download it from here and see if that works: https://nightly.link/HeidiSQL/HeidiSQL/workflows/lazarus.yaml/lazarus

If that went well, the action should produce a tgz file during the next release, with translations and ini files as well. The zip file above just contains a naked binary.

ansgar's profile image ansgar posted 1 month ago Permalink

One additional note: the auto-build process uses Ubuntu 24.04 ARM64, not Raspberry Pi OS. The AI said the ARM aspect is compatible in both, but who knows.

FeverBeaver's profile image FeverBeaver posted 1 month ago Permalink

Of course I can :)

I just downloaded it, and it works as the one I compiled yesterday, so far. It behaves the same way. The binary is just a bit heavier than the one of yesterday, 12.2MB vs 11.8MB (neglectable).

So far, the only 2 differences I have seen between Linux x86-64 and RaspiOS "versions" are:

  • when connecting using PuTTY, there is a connection terminal window staying on, on the taskbar,
  • displaying a hint is seen as a new window, and you lose focus Both of which I consider as non-blockers. That may be related to the window manager as well, I don't use the same on a PC.
2 attachment(s):
  • 2026-06-15T19-47-24-487706646-02-00
  • 20260615_19h51m34s_grim
ansgar's profile image ansgar posted 4 weeks ago Permalink

v12.19 is just created and available for download. It includes a separate Linux/arm64 tgz with all files which would otherwise be installed by a package (translations, ini files, readme, ...).

FeverBeaver's profile image FeverBeaver posted 4 weeks ago Permalink

Hi Ansgar,

Great, thanks a lot! So I reproduced as on a Debian distro: unpacked to /usr/share/heidisql, it took the locale straight away and speaks French (system language on my machine).

The only issue I noticed (even with the ones I compiled myself, so that's not your archive generation) is the creation date on some tables is not filled, but is filled if you refresh DB (by pressing F5 for example).

That's very minor and I won't raise a bug ticket for this.

1 attachment(s):
  • 2026-06-21T13-31-23-137910202-02-00

Please login to leave a reply, or register at first.