What is backported in Gambas 3.19.6+bpo?
Below an overview of what has been changed compared to official Gambas 3.19.6.
1. Language patch.
I run systems with language english, but metric, currency etc are all in dutch (see below). Debian shows my dates, metric etc. in the dutch format (as it should). Gambas on the other hand does not take into account these setting and thus for example dateboxes show US format.
Since this mix of languages is not taken into account by Gambas, but confusing for the people working on these sytems with my software. Note that the systems where only dutch was installed did not have this problem, only the systems with mixed languages (as most are in environments I manage).
Language: en_US
LC_NUMERIC: nl_NL
LC_TIME: nl_NL
LC_MONETARY: nl_NL
LC_PAPER: nl_NL
LC_MEASUREMENT: nl_NL
Benoit (the main developer of Gambas) fixed this, but thought it might be to intrusive to publish at that time (3.19.x).
I backported this fix, first into my 3.18.4 version and later into 3.19.6, packaged it into a repository and published it at my home intranet for testing purposed. It turned out to fix a lot of visual problems and small underlying problems, some I never knew I had, because I had created workarounds and always asumed this to be intended behaviour.
Language patch visualised
The changes.
In gbx_local.c (/gambas-3.19.6/main/gbx/gbx_local.c) I replaced parts of this gbx_local.c with parts of this gbx_local.c
TIP:
Use a tool like 'meld' if you want to compare the files and see the changes.
Note that not the entire gbx_local.c was replaced but just a small part in the function 'LOCAL_set_lang' that fixed my problem. The code was taken from commit c092fe7f 1
1.Source: https://gitlab.com/gambas/gambas/-/commit/c092fe7f7c5985604eeb7bfb02b2d25df3addd73
Status in official Gambas3.
This patch was released into Gambas 3.20.0 on official.
2. The IDE duplicate addition.
I requested for a new implementation in the Gambas-IDE that makes copy/paste (and duplicate) of forms, reports, classes and modules possible. This request was granted to me and thus became a part of Gambas.
I used the source code of the above 'gambas 3.19.6 with language patch', to ensure I have the language patch implemented, and added the code for making copy/paste possible to both Fmain.class and Project.module of the Gambas3 project. The code was taken from commit f50f8c7c.1
Next, I ran the modified IDE code from within my current IDE and all worked as a charm. I could copy/paste (or duplicate) forms, reports, classes and modules within my Gambas 3.19.6 IDE (see image below).
1.Source: https://gitlab.com/gambas/gambas/-/commit/f50f8c7c42ff27464bcd33877a2c107f534c3167
Duplicate in Gambas 3.19.6
The changes.
The downloadable 3.19.6+bpo recipes 1 include the changed source code.
From root of extracted source code go to 'app/src/gambas3/.src/Fmain.class' and 'app/src/gambas3/.src/Project.module'. Compare these with a, from original gambas-3.19.6 extracted, 'app/src/gambas3/.src/Fmain.class' and 'app/src/gambas3/.src/Project.module'.
TIP:
Use a tool like 'meld' if you want to compare the files and see the changes.
Status in official Gambas3.
This addition was released into Gambas 3.20.0 on official.
3. The Gambas farm patch.
On some older distributions Gambas3 Farm wasn't working as expected. It turned out to be a bug that got solved in commit e2bdd3d3 1. I used the source code with above backports included and added this backport to it.
1.Source: https://gitlab.com/gambas/gambas/-/commit/e2bdd3d352ffcb94c2891f708f324dbd74750fb6
The changes.
The fix was done in gb.net.curl and so all the changes are in gb.net.curl only. I compared the Gambas 3.19.6+bpo source files with those from above commit to find what exactly was changed. Next, I replaced the 3.19.6+bpo version files with the changed ones from above commit and started testing it all.
Files that have been changed.
In above screenshot you can see the files that where replaced in this release with those from commit e2bdd3d3.
Status in official Gambas3.
This fix has been released into Gambas 3.21.0 on official.
4. The gb.report2 patch.
When migrating reports from gb.report to gb.report2 I discovered a few things that worked in gb.report, but where bugged in gb.report2. They got fixed in 3.20.99 (master). Since I need these fixes I have backported them to this bpo version. The fixes where in commit 13e89aaf 1 and commit 3f50b0a7 2
1.Source: https://gitlab.com/gambas/gambas/-/commit/13e89aaff569e41bd89f7a8860dde6dd8af3600c
2.Source: https://gitlab.com/gambas/gambas/-/commit/3f50b0a725d0ef3e48cac61fc8a42fd90d0a18d4
The changes.
The fix was done in the gb.report2 ReportContainer.class. I compared the Gambas 3.19.6+bpo ReportContainer.class source with those from above commits to find what exactly was changed. Next, I replaced the 3.19.6+bpo ReportContainer.class with the changed ReportContainer.class from last commit mentioned above as it holds both fixes and started testing it all.
Commits containing the fixes.
Status in official Gambas3.
This fix has been released into Gambas 3.21.0 on official.
4. The gb.desktop patch.
A contributor to the GambOS project (where I use the 3.19.6+bpo in the GambOS repository) reported that Gambas Farm applications, when installed lacked a menu entry. I investigated the matter and it turned out that the desktop file made missed a Type entry. Adding this manualy, made the menu appear. So, I reported this as a bug.
When looking into the code of the Gambas IDE, I discovered where the desktop file was created. It turned out to be an unipmlemented property in the gb.desktop component. I added the property 'Type' to gb.desktop, adapted the desktop file creation code in IDE to include this property and tested it (all in Gambas 3.19.6+bpo). It worked, so I cloned most recent gambas master, added the fix and did a merge request. The fix was accepted in commit 5c6e5ce7 1.
1.Source: https://gitlab.com/gambas/gambas/-/commit/5c6e5ce721afcbdc2f1e4ff60220011ca40eb892
The changes.
The property 'Type' was added in the gb.desktop DesktopFile.class. Next, I adapted the CSoftware.class to add 'Type' to the desktop file when installing Gambas Farm applications.
The actual added code for the fix
Status in official Gambas3.
This fix has been released into Gambas 3.21.0 on official.