GDC 2.30 migration guide
This section describes differences you may encounter when upgrading to GDC 2.30.
RichText: html generation
GDC is now based on the Qt 4.6 line and we've noticed small changes in HTML produced by textedits:
ol
andul
(decimal and bullet list) tags now have margin information in style
style="-qt-list-indent: 1;"
style="margin-top: 0px; margin-bottom: 0px; margin-left:
0px; margin-right: 0px; -qt-list-indent: 1;"
Experimental frontcall (re)store size changes
GDC 2.21 introduced experimental front calls
to store and restore window size. To follow existing front
call names, the two front calls storeSize
and restoreSize
have
been renamed in lower case: storesize
and restoresize
.
End of RLOGIN protocol support
RLOGIN is an old and unsecured remote connection protocol. Until now, it was supported for legacy reasons, mainly to have an easy direct fgltty connection on really old UNIX™ servers which didn't have any access to a decent SSH server. SSH2 is now the default and recommended protocol for an fgltty direct connection.
The RLOGIN protocol raises serious issues, the most serious being the need of "root" privileges on UNIX to be able to open a tcp port below 1024. This creates a real security hole, because malicious code could take advantage of fgltty being launched as root to damage or take control of the system. In addition, more and more UNIX desktop environments (Gnome, KDE, macOS™ X, ...) simply forbid such programs to run in a graphical environment without being explicitly "accepted" by the end user (most forbid "sticky bit" completely and display a login box asking for the root password, which nullifies the passwordless login capability of RLOGIN). Moreover, as with TELNET, RLOGIN doesn't encrypt the communication, so passwords or other sensitive data are transmitted in "clear" channel through the network, another major flaw of the protocol.
For these reasons, it has been decided to remove rlogin support from GDC / fgltty.
End of RCP support
Such as RLOGIN, RCP is now de-supported mainly for security reasons. When RCP was enabled, GDC was allowing any rcp (remote copy) command even if it was not started by a 4GL program. Thus, you were likely to get some unexpected contents. For a similar result, you should rather use FGL_PUTFILE().
Linux®: minimum libc is 2.4
To support fancy GUI features introduced by recent Window Managers like KDE 4, Qt (and therefore GDC) needs to be compiled on a Linux libc 2.4 machine instead of 2.3. As a result:
- If you were running GDC on a Linux libc 2.3; GDC will not start anymore. You'll have to upgrade your system (glibc 2.4 has been released in 2006; we think that for desktop applications like GDC it's better to support recent WM features instead of old systems).
- The GDC theme may change; if you're running a libc 2.4 Linux and a theme which needs libc 2.4 features, GDC 2.2x was not able to load it. Now that GDC uses libc2.4 it will be supported, and the default look and feel will be adapted to your theme.
DateEdit: default date change
GDC 2.30 now supports the INCLUDE
attribute
for DateEdit. If the field is NULL, the default date of the
calendar will be the first date defined by the INCLUDE
attribute,
if the current date is not included. This prevents opening the calendar
with a date you can't select 10 years later than the last accepted
date.
Table: default different font size taken in account
By default, some systems are using a different font for table items than for simple form elements. For instance, on Windows™ 7, while the default font is Ms Shell Dlg, 8.25, Table font is Segoe UI, 9. GDC 2.2x is already using the different fonts, but has two issues:
- if you simply change the font size (e.g. to 12), the font family also changes (it becomes Ms Shell Dlg, 12 while it should be Segoe UI, 12)
- the row height was computed taking the wrong font size in account.
These two issues have been fixed in 2.30, but the side effect is that now the table row is taking the right font size, it's height may change depending on the system (from 17 to 18 pixels on Windows 7, for instance).