benjamimgois / goverlay

GOverlay is an opensource project that aims to create a Graphical UI to help manage Linux overlays.
GNU General Public License v3.0
573 stars 42 forks source link

Unable to build maybe due to lazarus issues. #128

Open pallaswept opened 1 month ago

pallaswept commented 1 month ago

I packaged the new version for opensuse this morning and pushed it to the main repo. When I did this, I noticed that my 1.2 builds were failing for Leap 15.5 and 15.6. I also noticed those two distros' builds are now broken for the existing, previously working, goverlay 1.1.1 packages in suse's main repo.

It is interesting that it is failing even though as far as I can see, the lazarus and goverlay packages have not changed. It's also interesting that the exact same packages work fine on tumbleweed but not on Leap. I wonder what might be different between them, which could cause such errors? Are there specific compiler flags used, environment vars which need to be set, or something like that?

I built a temporary branch of the stock repository, it has new goverlay, and since I had the same results as stock with goverlay 1.1.1, I tried lazarus 3.4. In addition, I also backported the patch 0001 which is currently not in suse's lazarus 3.4 but is in fedora and debian's. It mentioned errors when trying to rebuild, due to attempting to write to /usr/lib - and that seems to be the error here? But the patch also doesn't work. Perhaps more is needed. It's possible there's already a patch upstream, such as it was for lazarus 3.2 when it had this same behaviour.

Speaking of that 3.2 bug, the ultimate cause of that, was the removal of a method from Qt6. Perhaps the same has happened again?

Here are logs in case they might be helpful: From stock opensuse: 1.1.1 with lazarus 3.2 on tumbleweed: https://build.opensuse.org/package/live_build_log/games:tools/goverlay/openSUSE_Tumbleweed/x86_64 1.1.1 with lazarus 3.2 on leap: https://build.opensuse.org/package/live_build_log/games:tools/goverlay/15.6/x86_64 From my temporary repo: 1.2 with lazarus 3.4 on on tumbleweed: https://build.opensuse.org/package/live_build_log/home:pallaswept:branches:games:tools/goverlay/openSUSE_Tumbleweed/x86_64 1.2 with lazarus 3.4 on on leap: https://build.opensuse.org/package/live_build_log/home:pallaswept:branches:games:tools/goverlay/15.6/x86_64

Hope I can help with this.

pallaswept commented 1 month ago

Putting a slice of the log here so that when it gets deleted next rebuild we will have something to search for:

[   74s] (3104) Compiling customdrawn_mac.pas
[   74s] (3104) Compiling lclexceptionstacktrace.pas
[   74s] (1008) 222171 lines compiled, 8.2 sec
[   74s] (1021) 24 warning(s) issued
[   74s] Warning: (lazarus) [TLazPackageGraph.ConvertPackageRSTFiles] skipping read only directory /usr/lib64/lazarus/lcl/languages/
[   74s] Hint: (11030) Start of reading config file /etc/fpc.cfg
[   74s] Hint: (11031) End of reading config file /etc/fpc.cfg
[   74s] Free Pascal Compiler version 3.2.2 [2024/05/21] for x86_64
[   74s] Copyright (c) 1993-2021 by Florian Klaempfl and others
[   74s] (1002) Target OS: Linux for x86-64
[   74s] (3104) Compiling lcl.pas
[   74s] /usr/lib64/lazarus/lcl/interfaces/lcl.pas(11,3) Fatal: (10022) Can't find unit AllLCLIntfUnits used by LCL
[   74s] Fatal: (1018) Compilation aborted
[   74s] Error: /usr/bin/ppcx64 returned an error exitcode
[   74s] Error: (lazarus) Compile package LCL 3.4: stopped with exit code 1
[   74s] Error: (lazarus) [TLazPackageGraph.CompileRequiredPackages] "Exit code 1"
[   74s] Error: (lazbuild) Project dependencies of /home/abuild/rpmbuild/BUILD/goverlay-1.2/goverlay.lpi
[   74s] make: *** [Makefile:9: goverlay] Error 2
[   74s] error: Bad exit status from /var/tmp/rpm-tmp.X6l8yS (%build)
benjamimgois commented 1 month ago

@pallaswept , sorry i know very little about opensuse. But, would it be possible to package the binary file ? I ask because AUR have 2 versions, the goverlay-git (code compiled from source) and goverlay-bin that is just the goverlay binary plus icons and .desktop file. Would it work for you ?

pallaswept commented 1 month ago

My bad! I had a feeling that I wasn't explaining this very well. I can tell you some good news first, the update to goverlay 1.2 for tumbleweed is in automated QA right now, so we should have it any day/hour now.

I believe the suse maintainers are aware of this build failure, I mostly filed this as a heads-up for you and others. The goverlay maintainer for sure saw the build failures when they accepted this update.

I guess it really seems like what we're seeing is a replay of #108. We had that same bug over on suse, it delayed goverlay 1.1.1 for a long time, and I feel terrible because I didn't realise it was happening to anyone else, and didn't report it here. I didn't even report it there, I just found the answer upstream that it was coming in the next version, and waited. After a few weeks I realised that I did not know their release schedule, so I backported the patch from upstream until lazarus 3.4 arrived. suse included the patch, goverlay built, and we were all good.

That bug happened because Qt6 had a minor version bump, and removed some deprecated methods, and lazarus' qt6pas would attempt to link to the missing methods, and fail.

After this, we had goverlay 1.1.1 building with both the patched lazarus 3.2, and then with lazarus 3.4 on tumbleweed (leap still has patched 3.2).

Suddenly, recently, it wouldn't build on Leap 15.6 any more, with nothing changing in either lazarus or goverlay - but we have updated Qt again...

I say "maybe due to lazarus issues" because even though it seems like a qt change triggered this, if this is #108 again, the patch would have to be to lazarus, to fix the calls to the missing method(s).

I'm not totally certain about this, but it sure looks identical. I don't know if it's been reported upstream yet, but I won't be surprised if this starts to effect other distros soon. I wanted to give people a chance to prepare or avoid it.