Gambas na Tumbleweed update

Tumbleweed dup naar 20260724

Na deze zypper dup opnieuw gambas3 geïnstalleerd met 1 click install van software.opensuse.org; met name de

Stable 3.22.0+20260714+1 

De IDE start nu perfect, starter bevat Gambas on development/ontwikkeling.


Voorheen: probleem Gambas3 na Tumbleweed update 20260609

Na een update van OpenSUSE Tumbleweed (zypper dup) naar 20260515 is Gambas3 verdwenen, en wel zo dat ook de runtime er niet meer is, waardoor voorheen gemaakte Gambas applicaties niet gestart kunnen worden!

Ik probeer de installatie voor Tumbleweed* van software.opensuse.org, daar zijn nu naast de oude Education (Experimental) 3.14.3 versie nu ook een aantal recente Gambas versies bijgekomen bij “Community”:

Ik kies de laaste, stable. Ik krijg hierbij de vraag om gambas-dev-tools (blijkbaar toch iets overgebleven van vorige versie) om te zetten van bron munix naar home:gambas, wat ik dan ook doe.

Nadien werken de links op de desktop naar uitvoerbaare Gambas apps weer (runtime) en heb ik Gambas 3.21.6 (weet niet meer welke versie het voordien was) inclusief IDE geïnstalleerd staan, zonder de voorbeelden.

* Ps: de laatset die ik er terugvind voor Leap onder “Unsupported distributions” is: openSUSE:Leap:15.2, naast de SUSE:SLE-15:GA versies…allemaal “The following distributions are not officially supported. Use these packages at your own risk.”

Samenvoegen broncode van project voor export, print

In Gambas2 had ik een tool om door mijn project te gaan, en ik had het uitgebreid om ook de broncode te printen, die geraakte wat in onbruik, maar bestaat ondertussen ook voor Gambas3: ProbableCause 3.0.2

Gambas3 heeft ondertussen zelf die mogelijkheden, bv statistiek van variabelengebruik, printen van het huidig geselecteerde broncodebestand. Maar niet: printen van het hele project.

Samenvoegen broncodebestanden

Om een “hardcopy” of print te maken van alle broncode kan je die eerst samenvoegen in 1 bestand met hulp van ProbableCause:

  • Start ProbableCause 3.0.2 of hoger
  • File, Open, kies project (directory), bevestig. Je ziet de lijst van Classes en Modules.
  • Kies “scan all” om door de bestanden te lopen.
  • Menu “Export”, “print prepare-compile all sources” maakt een .txt bestand en antwoordt met “File written as .. C-F-M.txt”
  • Aparte keuze voor verzameling van alleen Class, Form, of Module kan ook.

Hardcopy / print

  • Openen/importeren in LibreOffice in een eigen template/vooraf gemaakt standaardbestand met bv kolommmen, aangepast lettertype/grootte en headers/footers.
  • Voor 1 enkel bestand ben je beter af met de printfunctie in Gambas3 zelf: Menu Edit, Print of Bewerken, Afdrukken.
  • Printen in kleur met de gambas kleurmarkering kan ook vanuit Gambas3.
  • Wil je lijn-nummers kan je bv Kate gebruiken: open het (samengevoegd) bestand en kies je bij Afdrukken, tab Tekstinstellingen: “Regelnummering afdrukken”

LibreOffice template

Om zo papier-zuinig maar toch leesbaar mogelijk te printen kan je:

  • je blad A4 vertikaal in twee kolommen verdelen.
  • Het lettertype verkleinen, kies bv 9 punt
  • Een “broncodevriendelijk”-lettertype kiezen, bv Liberation Mono
  • Footer met projectnaam en bladnummering + totaal blz, print datum.

Driver name missing

Deze foutmelding bij een databaseverbinding komt veel voor en betekent weinig.

  • driver name: op het eerste zicht zou de optie van het type ontbreken hConnection.Type=”mysql” bv. Maar dat is het niet altijd.
  • dikwijls is het wel één van de andere gegevens van de connectie die niet kloppen (user, password, name =database name, niet user, ..) dus je kan die tonen om te debuggen
  • bron van de parameters: soms is er iets mis met waar die parameters vandaan komen, bv uit een config file: keyname/parameter juist, kleinen/hoofdletters, wachtwoord (dikwijls moeilijk leesbaar) …,
  • via een schakelmechanisme als DataContext; ook daar: naam van de context, dataset, klein/hoofdletters…

Shell van Gambas2 naar Gambas3

Er is een verschil in de manier hoe Gambas3 het SHELL commando verwerkt t.o.v. Gambas2. Er is een kleine aanpassing nodig om het te weer doen werken:

Gambas2:

SHELL "ping -c 3 192.168.1.1" FOR READ
Public Sub Process_Read()

Dim sLine as String

READ #Last, sLine, -256
DEBUG sLine

Gambas3:

sCommand = "ping -c 3 192.168.1.1"
Shell sCommand For Read As "Process"
Public Sub Process_Read()

DIM sLine as string

sLine = Read #Last, -256
DEBUG sLine

Gambas 3 op Arduino Uno Q

De Arduino Uno Q is een bord met naast de typische “uno” headers en een STM 32U585 processor, ook een “algemene” processor, van Qualcomm: Dragonwing, die 2 GB ter beschkking heeft, en er is 16 GB eMMC ruimte, wifi en bluetooth. Je hebt een uitbreiding nodig via de USB-C om scherm, muis, toetsenbord en eventueel ethernet aan te sluiten, en hem te starten als volledige “pc”.

Het voorgeïnstalleerde systeem is Linux, Debian, maar dat staat niet vermeld op het doosje. De desktop is XFCE, en via Synaptic package manager kan je gemakkelijk Gambas3 zoeken, kiezen (mark), en installeren (apply, apply changes). Resultaat is bv 3.20.2-1 hier bij mij. Gambas komt ook mooi mee in het Development menu te staan, naast Arduino App Lab. Er is 0,3 Gb ruimte in beslag genomen (van 7 naar 7,3 Gb used in df -h).

Ik heb geen Arduino dingen gebruikt, alleen geprobeerde of Gambas op zich werkt: een CLI test applicatie en een Graphic Application met een paar knoppen en een gridview; allebei geen probleem. Ik vermoed dat de “brug” naar de Arduino functionaliteit echter niet zo eenvoudig zal zijn. Maar als je een Arduino sketch maakt die ergens data schrijft, kan je met veel plezier daar een Gambas interface op los laten…


Settings bestand beschadigd

Op een paar momenten krijg ik een beschadigd configuratiebestand application.conf. Dat wordt gemaakt en ingevuld/uitgelezen door gebruik van de Settings component van gambas.

In het bestand wordt achteraan dit stuk test ingevoegd:

[gb.settings].Settings.Save.192: 

Dat gebeurt net voor de laatste “header” in het bestand, bv:

[gb.settings].Settings.Save.192: [Cam]
Imagedir="/home/cybr/Data/StockPiPictures-In"
WaitBeforePic=3
Current="raspistill"
Command="raspistill -t 1 -vf -hf -o /home/cybr/Camera/"

Ik heb het voorgehad bij twee verschillende projecten. Het is steeds dezelfde tekst, op dezelfde plaats. Die tekst komt niet in mijn project voor lijkt me, kan die toch niet vinden.

(todo: versies?)

3.19.3 @opensuse, @raspberrypiOs…

(todo: omstandigheden?)

Ik vindt in mijn code een paar keer een aanroep naar Settings.Save zonder haakjes, het moet zijn: Settings.Save().

Gambas op Raspberry Pi 500+ Debian 13.1

Gambas selecteren

Net zoals bij versie 12 komt Gambas helaas niet voor in de aanbevolen software, en moet je bij Preferences, add/remove software zoeken naar “gambas”. We vinden versie 3.20.2, en er wordt een hele rij sub-paketten getoond. Kies de complete Visual Development Enviroenment for Gambas, en de rest zal automatisch meekomen (hopelijk). “Apply”… de flikkerende aan/uitknop verraadt de aktiviteit van de installatie. Daarna is Gambas toegevoegd in het menu “Programming”.

Installatie

Het valt op dat een aantal gambas paketten niet mee geselecteerd werden, en misschien moeten we later iets apart toevoegen, maar we proberen eerst de standaard installatie uit zonder wijziging. We sluiten softwareinstallatie en starten Gambas. Handig in vergelijking met de pi400 of pi500 is hier echt wel dat je feedback krijgt van die led, ik weet dat Gambas aan het starten is en wacht rustig af. Gambas start mooi op met een gevangenispakje (horizontaal gestreepte achtergrond zoals voorheen ook dikwijls, maar dat verdwijnt meestal als je begint te werken, of bv het venster iets kleiner zet).

Gambas 3

Ik klik de Tip of the day weg, en ik kan kiezen uit verschillende mogelijheden om een nieuw project te starten: CLI, desktop, web….

  • new project, new commandline application, en main wordt automatisch gevuld met Print "Hello world"
  • . Run toont idd .. maar het flitst snel over het scherm. Kies onderaan het Console icoon om die terug zichtbaar te maken.
  • File, New project, Graphical. FMain een knop geven en een lijntje code
    Public Sub  Button1_Click()
    .
      Message.Info("Hello Gambas world")
    End

Fijn dat het installeren zo vlot verloopt. Later eens proberen een bestaand project te openen met wat meer code en libraries en zo…

.

Gambas3 op Raspberry Pi 5 Debian12

  • Raspberry Pi 5 Model B Rev 1.0 met 4 GB geheugen
  • Systeem: Bookworm + updates 20 okt 2025: Linux 6.12.47+rpt-rpi-2712 (Debian 12.2.0-14+deb12u1). ps: dus nog geen 13-Trixie Raspberry Pi OS
  • Spijtig genoeg is Gambas niet aanwezig in “Recommended software”; daar duikt wel Visual Studio Code op.
  • Preferences, Add/remove software; zoek “Gambas”: gambas3-3.18.0-4 aanwezig
  • Om ineens alles te installeren: “Complete visual development environment for Gambas” selecteren (niet de “Visual development environment; is alleen de IDE).
  • Gambas staat in menu onder “programming”, maar start niet. Op commandolijn gambas3 geeft foutmelding: “Cannot find interface or library “gb.gtk3.wayland”
  • Add/remove software; die staat inderdaad af; selecteer, installeer met “Apply”.
  • Gambas start nu wel uit het menu, IDE start (met horizontale strepen maar dat gaat terug weg).
  • Nieuw CLI project, hello world: werkt.
  • Nieuw Graphical application, button en message: werkt.

MariaDb verbinding zonder SSL

Cannot open database: TLS/SSL error: SSL is required, but the server does not support it

Sinds ongeveer OpenSUSE v. 15.6 à 16.0 dook het probleem op dat Gambas3 programma’s geen verbinding meer konden maken met een bestaande mariadb database op een computer in het lokaal netwerk, zonder SSL (zie Database verbinding gebroken). Ik vond het probleem niet bij Raspbian (Debian), voor andere distributies weet ik niet, misschien Red Hat?

Het probleem was terug te brengen tot de stap naar een nieuwe mariadb client lib…

zypper search -s libmariadb

libmariadb3 v. 3.4.5 

… waarbij het standaard gedrag van de MariaDB Connector/C 3.4 veranderde.

De gewone “skip-ssl” volstaat niet meer (Unable to disable TLS verification when using mariadb-connector-c >= 3.4.0).

Dit kan voor allerlei software die dit soort databaseverbinding maakt een fout/verandering opleveren; openoffice/libreoffice, python programma’s, …. niet alleen voor Gambas.

Omzeilen

Voor Gambas3 kan je het probleem omzeilen door een combinatie van

  • instellingen in een mariadb configuratiebestand op de client computer (waar het gambas programma draait)
  • aanroepen van de juiste opties vanuit je code voor het maken van de verbinding.

Mariadb client configuratie

De instellingen gebeuren normaal in het onzichtbare bestand .my.cfg in de home directory van de gebruiker:

~/.my.cfg

Daarin staat misschien al de instelling om op de CLI de SSL te omzeilen:

[client]
skip-ssl = true

Maak een nieuwe paragraaf aan, bv met de titel “gambasfixnossl” (nadien moet je naar deze header verwijzen in je code):

[gambasfixnossl]
ssl-verify-server-cert=0
ssl-mode=DISABLED

Gambas3 connection opties

Je hebt een combinatie van connection opties nodig om de fout te vermijden. Dit stond al in mijn code*:

With hConnection
.Host = Settings["Connection/Host"]
.User = Settings["Connection/User"]
.Name = Settings["Connection/Name"]
.Password = Settings["Connection/Password"]
.Type = Settings["Connection/Type", "mysql"]
End With

En dit heb ik er nu bijgevoegd:

  ...
.Options["READ_DEFAULT_GROUP"] = "gambasfixnossl"
.Options["PROTOCOL"] = 1
.Options["SSL_MODE"] = 0
.Options["SSL"] = False
.Options["CLIENT_FLAGS"] = 0
.Options["MYSQL_OPT_SSL_ENFORCE"] = 0
End With

Getest

  • Werkt op openSUSE Leap 16.0
  • Werkt op Tumbleweed 20251013

Nota’s: (*) Settings gebruik, Apart mariadb configuratiebestand, .. Continue reading →

Gambas3 op iMac/OSX

Gambas draait niet “native” op Mac OS/X. Maar je kan een virtual machine met Linux installeren, en daarin Gambas.

Een voorbeeld, geïnstalleerd in 2024: Apple M1 met 16 GB en macOS Sequoia versie 15.6.1 met UTM Version 4.5.3 (99), met daarin OpenSuse Leap 15.5.

Deze virtuele openSUSE werkt vlot, in een venster dat je op een deel van het scherm kan draaien, vergroten, enz. Het werkt niet helemaal perfect; zo zie ik dat Firefox een zwarte “rand” heeft, het lijkt wel een zwart “kader” rond het venster van de browser.

Maar er zijn ook wel een paar Gambas dingen die niet perfect werken. Na wat problemen met elementen op het scherm heb ik mijn gambas3 applicatie (voor de desktop) wat aangepast, in grote lijnen komt het er op neer dat ik een aantal typische QT dingen niet gebruik. Ik heb mijn desktop keuze in Gambas ingesteld op iets LXDE of XFCE achtig, en nu kan ik de software perfect draaien.

En het valt me op dat Gambas daar razendsnel op draait, ondanks dat het “maar” in een VM is…