[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Debian and Gambas (long read)


Hi all,

I introduced Gambas3 around about 2012 in the company I was working for at that time.
Rolled out a network with Debian servers (I believe Debian 7 at that time) and some Linux Mint 17 clients.
I was running MySql (at that time) on servers, with several front end applications, running in a company that was open for 12 hours a day, 7 days a week.
So stability was a concern and I had stuff running on Windows 2003 servers and Windows XP clients, a dead end in my mind.

The Debian repositories at that time had Gambas 3.1, for Linux Mint I had the ppa with a higher version of course.
So I decided to give packaging a try and manged to package Gambas 3.6.2 at that time and even managed to set up a repository on the Debian servers, hosting Gambas3 internally.
Hell, I even patched some packaging code in there, that Benoit fixed in a later version and I needed in my 3.6.2 version. worked like a charm.

Now, I could develop in Gambas 3.6.2. for both the Mint clients and the Debian servers (I had me some Gambas daemons running there to manage stuff).
Oh, and I also had me banana-pi' s running Lubuntu 14 on armhf that run a Gambas3 written digital pricelist on a screen for customers to see .
The rasperry-pi's at that time couldn' t handle the graphical load of the pricelist, so hence the banana-pi's.

I stayed on Gambas 3.6.2. for quite a while as the whole project took me about 3 to 4 years to fully migrate (read re-code) my previous, on Windows XP and Windows 2003 servers, running backoffice.
So, I had two environments running, got the database on Debian and had the windows applications, not yes re-coded to Gambas3, use that as database.
Once all done and Windows gone, some fiddling over the next years to get it all very, very stable, compared to Windows.
Turned out very low maintenance in the end, so I stuck to it for quite a while.

Since I run all my GUI application on Qt (as that seems to work best), my next worry was when OSes needed upgrading and Qt4 would need replacement by Qt5.
Well, you get it, after many years, back to packaging Debian to a more recent Gambas3 version. So, Mint 19 was my choice for the client at that time, as on it you could still have both Qt4 and Qt5 available.
Good OS version for migrating about 6 big Qt4 applications and some tools, step by step, to Qt5, checking all screens, all situations, if positioning is correct, if stuff works as should and so on.

Well you guess it, we are years later again, in a new company that is running my software (version 1) and you guess it, it is time for some upgrading.
The Mint 19 doesn't support all new hardware properly. And I' m done with Ubuntu and it's derivatives, so leaving Mint as well.

And since I want stability over the latest gadgets, in the environment running my software, my choice was Debian, as I know it best, love it's stability and been running it on servers for well over a decade now.

So, I have been running Debian for a while on my laptop. At first I tried the Mint Debian (bullseye) and I was running Gambas 3.15.2, a bit too ancient for me, especially when bookworm was the latest stable.
So, I just went for Debian 12 with a Mate desktop and Gambas 3.18.0. This time I also wanted to take the time to go to a proper next major version of my own software running in the company.
You know, clean up old code, restructure things that might have grown a bit wild and the likes of that.

So, I have slowly been re-coding libraries and daemons I use to their new major version release. And it all seems to work well, until a week ago....

I installed my new daemon on the test server (only cli no gui of course) and it started pulling in gui dependencies!!!!!! WTF!!!
My daemon only needs gb,arg, gb,net and gb.net.curl. and gambas3.runtime.

Step 1: Checking the gambas packaging requirements, none of them should depend on a gui package.
Step 2: Checking the control file of the official debian 3.18.0 version I noticed that runtime is packaged with dependencies on gui component. I notives that gb-devel was still there instead of gb-dev-tools and some more stuff that wasn' t quite as packaging on the Gambas wiki tells how it should be.
Step 3: I had a look at the control file of Gambas 3.18.4 version of Gambas3 ppa and things were quite different there for several packages, when it comes to dependencies and such. I also noticed that, when installing gambas3 (complete package), less is installed by default on Debian, as it is packaged so that only that what runs on all architectures is included. You can still install the other gambas3 packages, they are just not by default installed when doing a apt-get install gambas3.

So, time for a change. Since I need this for production and been testing and re-coding in Gambas 3.18.0, I decided to package Gambas 3.18.4, as this is the latest and most stable one in the 3.18 branch.
I based my control file on the one of the gambas3 ppa (so my packages would have proper naming and dependencies, the Gambas3 way) and the rules file on the Debian official repo one.
I made the recipe to work for i386 and amd64, but added some stuff to make armhf and arm64 work to (not tested yet).

I successfully made gambas 3.18.4 packages, using the proper naming convention and dependencies as mentioned on gambas wiki.
I made them for bookworm (debian 12 stable) i386 and amd64
I made them for bullseye (debian 11 oldstable) i386 and amd64

I made package naming so that I can place them all in one repo for both bookworm and bullseye and all architectures.

I set up a repository on an old PC running as Debian test server at home and got all my systems hooked to the repo for their gambas.
So far so good, the debian12 gambas3 repo works just fine, still need to test bullseye gambas3 repo (will happen this week)

I still have to test the arm64 packaging, but gonna need to get me a Pi for that. Found a debian amd64 image for Pi4 latest model and I will take it from there.
I used qemu for packaging different debian versions and architectures, but it can' t run arm64. I tried. It would be easier to have a arm64 emulator for packaging.

My ultimate goal would be to have an online repository hosted for Debian, preferably provided by Gambas3 community.
So, the Ubuntu boys have their ppa and the debian boys have their gamabs3 hosted repository.
I would be willing to do the packaging, but might run a bit behind on the gambas3 ppa (matter of days or a week, not months)

All I would need is an account on the server, and key of mine on the server to rsync my new local packages to the server in a debian repo structure and signed.
All you need to do is host it on apache2 as virtual directory to a url. I can help you with setting it up as well, I have it running here and an older repo at work, that I am gonna upgrade soon.
Every rsync I do with new version will update the server repo. That is all that needs to be done. As long as webserver is up and hosting the repo all is well.

I was thinking of hosting 2 different repo's:
Example:
http://gambaswiki.org/gambas3-latest -> for latest gambas3 version (so currently 3.19.1). I might be a bit slower that Gambas3 ppa in packaging it, but it will be there.
http://gambaswiki.org/gambas3-longterm -> for gambas 3.18.4, meant for people running stuff in production and wanting to stick to a version for a longer period. So next version here might be gambas 3.20.x (where x is the highest point version of that release)

This manner, people can pick to their liking.

Packages would be for stable (debian 12) and oldstable (debain 11) in i386, amd64 and hopefully arm64/armhf as well, for the pi lovers...

Curious about what you guys think.
Is there a need for a debian repo with latest gambas3?
Is there a need for a somewhat more longterm gambas3 version ?
Is someone willing to host this on their server?

gbWilly

Sent with [Proton Mail](https://proton.me/) secure email.

Follow-Ups:
Re: Debian and Gambas (long read)T Lee Davidson <t.lee.davidson@xxxxxxxxx>