Gambas Documentation - /doc/release/2.99.5

/doc/release/2.99.5

# Gambas 3 RC5

- What's new

- ChangeLog

- Requirements

- Compilation & Installation

  - Check installation

  - Source package configuration

  - Compilation

  - Installation

  - Troubleshooting

  - Running Gambas

## What's new

This release is the fifth release candidate of Gambas 3.

More than thirty bugs were fixed, and some little enhancements and optimization were provided:

- Czech, french and russian translations were updated.

- Interpreter collection were fixed.

- String binary comparison, string locale-aware comparison, event handler search and string array search were optimized.

- Stock icons were updated, and a new Application theme named "Gambas" refer to them.

- Key.Code now always return zero to indicate that a modifier key was pressed.

As usual, please report any compilation and packaging problem on the mailing-list!

Thanks in advance.

## ChangeLog

    [CONFIGURATION]
    * BUG: Fix mime type registration.

    [DEVELOPMENT ENVIRONMENT]
    * BUG: Fix database manager field creation.
    * BUG: Run projects inside a virtual terminal.
    * BUG: Project treeview is drawn in the project open dialog the same way as
      in the main window.
    * BUG: Fix new Report creation.
    * BUG: Saving a project inside its own directory is now forbidden.
    * NEW: Update czech translation
    * NEW: Support for "Gambas" icon theme.
    * NEW: Javascript compression now compress local variable names.
    * NEW: Use Key.Escape instead of Key.Esc. Key.Esc will be removed sooner
      or later.
    * NEW: In the form editor, a control being created now has its handles.
    * NEW: The form editor selection frame is transparent now.
    * NEW: Move an option in the option dialog.
    * NEW: Save executable path as a relative path when it is located inside
      the project directory.
    * NEW: Update russian translation.

    [WEB SITE MAKER]
    * NEW: Update czech translation.

    [EXAMPLES]
    * BUG: Fix create CD-ROM class a to netbook without CD-ROM.
    * BUG: Fix the Evaluator example so that the initial values are localized,
      and the computed expression always use Float values.
    * BUG: Fix Puzzle1To8 example key handling.
    * NEW: Update czech translation for GNUBoxWorld.
    * NEW: Update czech translation for CDPlayer.

    [INTERPRETER]
    * BUG: Initialize the locale before loading any class.
    * BUG: Collection keys are now hashed with their eight last characters.
    * BUG: Internal Collection automatic resizing was disabled. Re-enable it!
    * BUG: Fix internal collection hash table resizing.
    * BUG: Fix internal UTF-8 to Unicode conversion routine.
    * BUG: Correctly check how a system file descriptor is opened when
      watching it.
    * BUG: Fix GB.System.Charset() API.
    * BUG: Try to not lose the value of 'errno' if the select() system call
      fails inside the event loop.
    * NEW: Disable echo by defaut when running a child process inside a virtual
      terminal.
    * OPT: Optimization of locale-aware string comparison routine.
    * OPT: Do not use sprintf() for searching event handlers in symbol tables.
    * OPT: String[].Find() and String[].Exist() are now twice faster for ASCII
      binary and case insensitive comparisons.
    * OPT: Do not use sprintf() when searching a file inside Gambas archives.
    * OPT: Unroll a loop to speed up binary string identity comparison a little
      bit.

    [COMPILER]
    * BUG: Purge .info and .list file from classes with no bytecode object each
      time a source file is compiled.
    * BUG: Really support reserved words in form control names.

    [GB.CAIRO]
    * BUG: Remove debugging messages.

    [GB.DB.FORM]
    * NEW: Update czech translation.

    [GB.DESKTOP]
    * NEW: Use Gnome keyring for storing passwords on LXDE desktops.

    [GB.FORM]
    * NEW: Update czech translation.
    * NEW: Some little clean-up in stock icons management.
    * NEW: Use Key.Escape instead of Key.Esc.

    [GB.FORM.DIALOG]
    * NEW: Update czech translation.

    [GB.FORM.MDI]
    * NEW: Update czech translation.

    [GB.FORM.STOCK]
    * BUG: Fix the stock icons.
    * NEW: Add an "hardware" stock icon.
    * NEW: Add an "heart" stock icon.
    * NEW: Remove the "modem" icon.
    * NEW: Use elementary icons instead of ubuntu ones.

    [GB.GTK]
    * BUG: Fix an infinite resizing loop in GridView scrollbar layouting.
    * BUG: Form key event handlers catch key events before the control now.
    * BUG: Always add an alpha channel to loaded images, because gdk-pixbuf
      RGB images rowstride is rounded up to a four bytes multiple. The gb.image
      component does not support that yet!
    * BUG: Fix arrangement when there is no place for expanded controls.
    * NEW: Key.Code now returns zero when a modifier key is pressed. That way,
      you can detect if we are pressing (or releasing) a modifier key.
    * NEW: Color.TooltipBackground and Color.TooltipForeground are two new
      properties that return the color used by tooltips.

    [GB.IMAGE.IO]
    * BUG: Always add an alpha channel to loaded images, because gdk-pixbuf
      RGB images rowstride is rounded up to a four bytes multiple. The gb.image
      component does not support that yet!

    [GB.NET.SMTP]
    * BUG: Fix a typo mistake in configure.ac file.

    [GB.QT4]
    * BUG: Fix GridView Row and Column property.
    * BUG: Fix GridView Change event in single selection mode.
    * BUG: Remove an apparently now useless trick in GridView Change event
      management.
    * BUG: Form key event handlers catch key events before the control now.
    * BUG: Fix arrangement when there is no place for expanded controls.
    * NEW: Key.Code now returns zero when a modifier key is pressed. That way,
      you can detect if we are pressing (or releasing) a modifier key.
    * NEW: Color.TooltipBackground and Color.TooltipForeground are two new
      properties that return the color used by tooltips.

    [GB.REPORT]
    * NEW: Update czech translation.

    [GB.WEB]
    * BUG: Be robust against malformed cookies.

## Requirements

To compile Gambas, you must install the following libraries on your system :

Component | Requirements
--- | ---
Compilation | `gcc` `g++` `automake` `autoconf` `libtool > 2.0`
Interpreter | `libffi`
`gb.compress.bzlib2` | `libbz2.so`
`gb.compress.zlib` | `libz.so`
`gb.cairo` | `cairo`
`gb.crypt` | `libcrypt.so`
`gb.db.mysql` | `libmysqlclient.so`, `libz.so`
`gb.db.odbc` | `libodbc.so`
`gb.db.postgresql` | `libpq.so`
`gb.db.sqlite2` | `libsqlite.so`
`gb.db.sqlite3` | `libsqlite3.so`
`gb.desktop` | `libXtst.so`
`gb.gtk` | All GTK+ libraries >= 2.10 `librsvg2.so` `cairo`
`gb.image.io` | `gdk-pixbuf`
`gb.image.imlib` | `imlib`
`gb.net.curl` | `libcurl.so`
`gb.opengl` `gb.opengl.glsl` | `libGL.so`, `libGLEW.so`
`gb.opengl.glu` | `libGLU.so`
`gb.pcre` | `libpcre.so`
`gb.pdf` | `libpoppler.so`
`gb.qt4` `gb.qt4.ext` `gb.qt4.opengl` `gb.qt4.webkit` | All qt 4 libraries >= Qt 4.5
`gb.sdl` | `libSDL.so`, `libSDL_ttf.so`, `libGL.so`, `libGLEW.so`
`gb.sdl.sound` | `libSDL.so`, `libSDL_mixer.so`
`gb.v4l` | `libjpeg.so`, `libpng.so`,Video4Linux >= 2.0
`gb.xml` | `libxml-2.0`
`gb.xml.xslt` | `libxslt`

And do not forget to install all related development packages!

Try to always use a recent version of these libraries.

In order to compile the development environment, you have to compile the following components:

- gb.db

- gb.db.form

- gb.debug

- gb.desktop

- gb.eval

- gb.eval.highlight

- gb.form

- gb.form.dialog

- gb.form.mdi

- gb.image

- gb.image.effect

- gb.qt4

- gb.qt4.ext

- gb.qt4.webkit

- gb.settings

You must have the right to write to `/tmp`, otherwise Gambas will not work.

This package was done with the following versions of GNU tools on Ubuntu 10.10:

- `automake` 1.11.1

- `autoconf` 2.67

- `libtool` 2.2.6b

## Compilation & Installation

### Check installation

First, check that you installed all the needed libraries, and especially all the development packages.

Do not forget to look at the Compilation & Installation page. Maybe you will find important information specific to your distribution.

### Source package configuration

When you are sure that everything is installed, type the following magic sentences in a shell.

`'$'` represents your shell prompt, and `'...'` are the messages printed during the configuration and compilation.

First, type that to create the configuration scripts.

    $ ./reconf-all

Then type that to analyze the current system and configure the package:

    $ ./configure -C
    ...

If a library or a development package is missing, then you will be warned that some components are disabled.

There are more 'configure' specific explanations in the `INSTALL` file located in the top-level source directory. I invite you to read them.

### Compilation

If everything is configured without error, then run this command to compile the program:

    $ make
    ...

### Installation

If everything compiles without error, then enter this command to install everything:

You must be `root` to install Gambas on your system.

    $ su -c "make install"
    Password: <Type the root password here>
    ...

or

    $ sudo make install
    Password: <Type your password here>
    ...

### Troubleshooting

If you did several successive compilations, after having updated the source from the subversion repository for example, and if something fails during all this process, you can try to "reconfigure" the configuration scripts by typing the following command:

    $ ./reconf-all

Then you can run `./configure -C` again

If it does not work, I need to know what happened exactly. To do so, type the following command :

    $ ( ./configure -C; make; make install ) > output.txt 2>&1

And send me the file "output.txt" by mail, with every other detail about your computer and your distribution you find useful.

### Running Gambas

If everything was fine, type "gambas3" to run the development environment.

Enjoy it !

### See also

- Compilation & Installation