Hallo Forum,
heir mal ein Nischen-Thema: letztens kamen neue Lazarus-Pakete für ArchLinux raus. Dabei habe ich gesehen, dass es neben dem üblichen Gtk2-Paket auch ein Gtk3-Paket gibt. Da das ein Schritt in Richtung "moderner" ist, wollte ich das gerne probieren.
╭─[photor@Picard:~]
╰─>$ pikaur -Ss lazarus
Suche... [###]
extra/fpc-src 3.2.2-3 [installiert]
Sources for the FreePascal compiler (required by the Lazarus IDE)
extra/lazarus 3.0-2 [installiert]
Delphi-like IDE for FreePascal common files
extra/lazarus-gtk2 3.0-2 [installiert]
Delphi-like IDE for FreePascal gtk2 version
extra/lazarus-gtk3 3.0-2
Delphi-like IDE for FreePascal gtk3 version
extra/lazarus-qt5 3.0-2
Delphi-like IDE for FreePascal Qt5 version
extra/lazarus-qt6 3.0-2
Delphi-like IDE for FreePascal Qt6 version
extra/qt5pas 1:1.2.15-1
Free Pascal Qt5 binding library updated by lazarus IDE
extra/qt6pas 6.2.7-1
Free Pascal Qt6 binding library updated by lazarus IDE
...
Ich habe also alle Lazarus- und fpc-Pakete deinstalliert (auch weil es beim direkten Update zu Problemen - wohl wegen Inkonsistenzen mit der lokalen Config unter ~/.lazarus ) und anschließend die neuen Pakete installiert - aber mit dem Unterschied, dass extra/lazarus-gtk2 durch extra/lazarus-gtk3 ersetzt wurde.
Aber leider funktioniert Lazarus Gtk3 NICHT!
Wenn ich die IDE starten will, sehe ich ganz kurz das Start-Fenster (in beige-braun statt blau); dann aber passiert nichts mehr. Start aus der Konsole liefert die folgende Ausgabe:
╭─[photor@Picard:~]
╰─>$ lazarus
Hint: (lazarus) [TMainIDE.ParseCmdLineOptions] PrimaryConfigPath="/home/photor/.lazarus"
Hint: (lazarus) [TMainIDE.ParseCmdLineOptions] SecondaryConfigPath="/etc/lazarus"
(lazarus:9369): Gdk-CRITICAL **: 17:40:20.445: gdk_wayland_window_configure: assertion 'width > 0' failed
Gtk3WindowState: Hidden
AddDefaultRecentProjects: Adding default projects
NOTE: editor options config file not found - using defaults
Looking for code tools config file: "/home/photor/.lazarus/codetoolsoptions.xml"
NOTE: codetools config file not found - using defaults
Warning: (lazarus) incompatible Lazarus directory: /home/photor/
SearchLazarusDirectoryCandidates Value=. File=/home/photor/.lazarus
SearchLazarusDirectoryCandidates Value=/usr/lib/lazarus File=/usr/lib/lazarus
SearchLazarusDirectoryCandidates Value=/usr/share/lazarus File=/usr/share/lazarus
SearchLazarusDirectoryCandidates Value=/usr/local/share/lazarus File=/usr/local/share/lazarus
SearchLazarusDirectoryCandidates Value=/usr/local/lib/lazarus File=/usr/local/lib/lazarus
SearchLazarusDirectoryCandidates Value=/usr/local/lazarus File=/usr/local/lazarus
SearchLazarusDirectoryCandidates Value=/usr/lib/lazarus/3.0 File=/usr/lib/lazarus/3.0
SearchLazarusDirectoryCandidates Value=~/pascal/lazarus File=/home/photor/pascal/lazarus
SearchLazarusDirectoryCandidates Value=~/lazarus File=/home/photor/lazarus
SearchCompilerCandidates Value=fpc File=/usr/bin/fpc
SearchCompilerCandidates Value=ppcx64 File=/usr/bin/ppcx64
SearchCompilerCandidates Value=$(LazarusDir)/fpc/3.2.2/bin/x86_64-linux/fpc File=/usr/lib/lazarus/fpc/3.2.2/bin/x86_64-linux/fpc
SearchCompilerCandidates Value=$(LazarusDir)/fpc/bin/x86_64-linux/fpc File=/usr/lib/lazarus/fpc/bin/x86_64-linux/fpc
SearchCompilerCandidates Value=/usr/local/bin/fpc File=/usr/local/bin/fpc
SearchCompilerCandidates Value=/usr/bin/fpc File=/usr/bin/fpc
SearchCompilerCandidates Value=/opt/fpc/fpc File=/opt/fpc/fpc
Hint: [TPCTargetConfigCache.NeedsUpdate] TargetOS="" TargetCPU="" Options="" compiler file changed "/usr/bin/fpc" FileAge=1697476224 StoredAge=0
Hint: [TPCTargetConfigCache.NeedsUpdate] /usr/bin/fpc TargetOS= TargetCPU= CompilerOptions= ExtraOptions= PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/lib/rustup/bin
Hint: (lazarus) [RunTool] "/usr/bin/fpc" "-iWTOTP"
Hint: (lazarus) [RunTool] "/usr/bin/fpc" "-va" "compilertest.pas" "-Fr/home/photor/components/codetools/fpc.errore.msg"
Hint: [TPCTargetConfigCache.Update] has changed
Hint: (lazarus) [TBuildManager.SetBuildTarget] Old=x86_64-linux-gtk3 New=x86_64-linux-gtk3 Changed: OS/CPU=True LCL=False
SearchFPCSrcDirCandidates Value=$(LazarusDir)/fpc/$(FPCVer)/source File=/usr/lib/lazarus/fpc/3.2.2/source/
SearchFPCSrcDirCandidates Value=$Path($(CompPath))/../../source File=/source/
SearchFPCSrcDirCandidates Value=/usr/share/fpcsrc/$(FPCVer) File=/usr/share/fpcsrc/3.2.2/
SearchFPCSrcDirCandidates Value=/usr/local/share/fpcsrc/$(FPCVer) File=/usr/local/share/fpcsrc/3.2.2/
SearchFPCSrcDirCandidates Value=/usr/share/fpcsrc File=/usr/share/fpcsrc/
SearchFPCSrcDirCandidates Value=/usr/local/share/fpcsrc File=/usr/local/share/fpcsrc/
SearchFPCSrcDirCandidates Value=/usr/fpcsrc File=/usr/fpcsrc/
SearchFPCSrcDirCandidates Value=/usr/share/fpc/src File=/usr/share/fpc/src/
SearchFPCSrcDirCandidates Value=/usr/fpc/src File=/usr/fpc/src/
SearchFPCSrcDirCandidates Value=/usr/local/fpc/src File=/usr/local/fpc/src/
SearchFPCSrcDirCandidates Value=/usr/local/share/fpc/src File=/usr/local/share/fpc/src/
SearchFPCSrcDirCandidates Value=/usr/local/src/fpc File=/usr/local/src/fpc/
SearchFPCSrcDirCandidates Value=/usr/lib/fpc/src File=/usr/lib/fpc/src/
SearchFPCSrcDirCandidates Value=/usr/local/lib/fpc/src File=/usr/local/lib/fpc/src/
SearchFPCSrcDirCandidates Value=/vol/fpc/src File=/vol/fpc/src/
SearchFPCSrcDirCandidates Value=/vol/lib/fpc/src File=/vol/lib/fpc/src/
SearchFPCSrcDirCandidates Value=/usr/src/fpc File=/usr/src/fpc/
SearchFPCSrcDirCandidates Value=/vol/src/fpc File=/vol/src/fpc/
SearchMakeExeCandidates Value=make File=/usr/bin/make
(lazarus:9369): Gdk-CRITICAL **: 17:40:20.794: gdk_pixbuf_get_from_surface: assertion 'width > 0 && height > 0' failed
(lazarus:9369): GLib-GObject-CRITICAL **: 17:40:20.802: ../glib/gobject/gsignal.c:2625: signal 'event' is invalid for instance '0x46e8950' of type 'GtkCssCustomGadget'
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.802: gtk_widget_set_has_window: assertion 'GTK_IS_WIDGET (widget)' failed
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.802: gtk_widget_set_can_focus: assertion 'GTK_IS_WIDGET (widget)' failed
GtkNotebookSwitchPage Data 73458817EA50 Realized False pageNum=0
(lazarus:9369): GLib-GObject-CRITICAL **: 17:40:20.806: ../glib/gobject/gsignal.c:2625: signal 'event' is invalid for instance '0x4a4dc60' of type 'GtkCssCustomGadget'
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.806: gtk_widget_set_has_window: assertion 'GTK_IS_WIDGET (widget)' failed
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.806: gtk_widget_set_can_focus: assertion 'GTK_IS_WIDGET (widget)' failed
(lazarus:9369): GLib-GObject-CRITICAL **: 17:40:20.810: ../glib/gobject/gsignal.c:2625: signal 'event' is invalid for instance '0x4a98180' of type 'GtkCssCustomGadget'
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.810: gtk_widget_set_has_window: assertion 'GTK_IS_WIDGET (widget)' failed
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.810: gtk_widget_set_can_focus: assertion 'GTK_IS_WIDGET (widget)' failed
(lazarus:9369): GLib-GObject-CRITICAL **: 17:40:20.814: ../glib/gobject/gsignal.c:2625: signal 'event' is invalid for instance '0x4abda20' of type 'GtkCssCustomGadget'
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.814: gtk_widget_set_has_window: assertion 'GTK_IS_WIDGET (widget)' failed
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.814: gtk_widget_set_can_focus: assertion 'GTK_IS_WIDGET (widget)' failed
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.912: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkRadioButton
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.912: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkRadioButton
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.912: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.912: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkNotebook
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.912: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkNotebook
(lazarus:9369): Gtk-WARNING **: 17:40:20.912: Negative content width -8 (allocation 0, extents 4x4) while allocating gadget (node header, owner GtkNotebook)
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.913: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkNotebook
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.914: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar
GtkEventResize: InitialSetupDialog:TInitialSetupDialog Send=0 x=0 y=0 w=395 h=436
Gtk3WindowState: Hidden
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.951: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.951: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.952: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkNotebook
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.952: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkNotebook
(lazarus:9369): Gtk-WARNING **: 17:40:20.952: Negative content width -8 (allocation 0, extents 4x4) while allocating gadget (node header, owner GtkNotebook)
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.952: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkNotebook
(lazarus:9369): Gtk-CRITICAL **: 17:40:20.962: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkRadioButton
GtkEventResize: InitialSetupDialog:TInitialSetupDialog Send=0 x=0 y=0 w=1220 h=972
TApplication.HandleException: ERangeError
Range check error
Stack trace:
$00000000007543DF
$00000000005B6F05
$00000000006EDAB6
$00000000007977DC
$000000000076409C
$00000000006D0F11
$00000000006D0B4A
$00000000007B80A8
$00000000007B7E81
$0000000000798C1A
$000000000076EEEB
$000000000076EC8B
$000000000076E65B
$000000000051341F
$000000000077B3AE
$000000000078E862
$000000000078E8C9
```
Es gibt zum Schluss einen "_Range Check Error_", der wohl zum endgültigen Absturz führt. Die "_Gtk-CRITICAL_"-Sachen gibt es wohl auch sonst.
Meine Frage deshalb hier: gibt es jemand, der unter Arch(!) die neue IDE Lazarus-Gtk3 zum Laufen bekommen hat? Kann jemand mit den Ausgaben was anfanggen und mir eventuell einen Tipp geben? Oder umgekehrt: kann oder soll ich noch weitere Infos liefern, die helfen könne, das Problem einzugrenzen?
PS1: die Gtk2-Version läuft (nach den oben erwähnten Anfangsproblemen)
PS2: in dem (deutschen) Lazarus-Forum habe ich schon gefragt (und wenig zum Gkt3-Problem bekommen; da ging es aber auch mehr darum, die neue IDE überhaupt and laufen zu bekommen). Es könnte also auch ein Arch-spezifisches Problem sein - daher die Frage hier.
PS3: bin für jeden Tipp dankbar.
Ciao,
Photor
PS4: Hm. irgendwie kommt das mit dem Source-Code durcheinander; ich lass das trotzdem jetzt so stehen. Aber "Tschulligunk" dafür.