How To Package your Project

Author: Steffen Ploetz

Prepare the creation of installation packages

After your project can be started in the Gambas IDE and works to your satisfaction and also if you want to make it available to other users, the next steps should be:
  • You need to make sure that your project can be easily installed in other environments. To do this, the project folder must not contain any spaces, because the project folder will later determine the name of the installation package. For example, you should change the folder ~/Projects/Gambas/GB Dia to ~/Projects/Gambas/GB-Dia.

  • You can internationalize your project. (see: How To Translate A Gambas Project)

  • You can test your project locally. To do this, compile your project in the Gamnas IDE. First you should check the settings in the Project | Configure executable menu. You can then create an executable program directly from this dialog or via the Project | Make executable menu. If you have created the executable program from your project in a folder of your choice, for example ~/Projects/Gambas/GB-Dia, you can open a terminal and start the program in this directory with ./GB-Dia.gambas.

Now it's time to actually create the installation packages (you can also test your installation packages locally as soon as they have been created).

Creation of installation packages

Gambas3 can make installation packages for various target distro's out of the box.

At the time of writing, the latest version is Gambas Version 3.19.1. Most of the installation packages, that can be made, consists of multiple files. (Older Gambas versions behave different. Version 3.18.0, for example, only creates one file per target distro and can't create installation package targeting AppImage.)

Let's have a look at two samples, Archlinux / Manjaro ... and OpenSUSE:

Target distro: Archlinux / Manjaro ... Target distro: OpenSUSE Description
gb-dia-0.1.0-1-any.pkg.tar.zst / gb-dia-0.1.0-1.src.tar.gz gb-dia-0.1.0-1.suse.noarch.rpm / gb-dia-0.1.0-1.suse.src.rpm Program installation package / Source code installation package
gb-dia-gtk-0.1.0-1-any.pkg.tar.zst / gb-dia-gtk-0.1.0-1.src.tar.gz gb-dia-gtk-0.1.0-1.suse.noarch.rpm / gb-dia-gtk-0.1.0-1.suse.src.rpm GTK2 program package metadata / GTK2 source code package metadata
gb-dia-gtk3-0.1.0-1-any.pkg.tar.zst / gb-dia-gtk3-0.1.0-1.src.tar.gz gb-dia-gtk3-0.1.0-1.suse.noarch.rpm / gb-dia-gtk3-0.1.0-1.suse.src.rpm GTK3 program package metadata / GTK3 source code package metadata
gb-dia-qt4-0.1.0-1-any.pkg.tar.zst / gb-dia-qt4-0.1.0-1.src.tar.gz gb-dia-qt4-0.1.0-1.suse.noarch.rpm / gb-dia-qt4-0.1.0-1.suse.src.rpm QT4 program package metadata / QT4 source code package metadata
gb-dia-qt5-0.1.0-1-any.pkg.tar.zst / gb-dia-qt5-0.1.0-1.src.tar.gz gb-dia-qt5-0.1.0-1.suse.noarch.rpm / gb-dia-qt5-0.1.0-1.suse.src.rpm QT5 program package metadata / QT5 source code package metadata

In summary up to 10 files (e.g. 10 files for Archlinux, Fedora, OpenSUSE, but only one file Autotools and Slackware) are created per target distro.

I recommend creating the installation packages in several runs, distro by distro, into different target folders. The following table contains an overview of all supported target distributions and a selection of distributions including the installation packages, that can be created on them.

Distro Target: Archlinux / Manjaro ... Target: Debian Target: Mageria Target: OpenSUSE Target: Ubuntu / Kubuntu / Mint ... Target: Autotools Target: Fedora / RedHat / CentOS Target: Slackware Target: AppImage (requires Gambas 3.19.0 at least)
Create on: Manjaro 23.1.4 native support needs debhelper needs rpm-tools, can be found in Add/remove Software needs rpm-tools, can be found in Add/remove Software needs debhelper needs autoconf, can be found in Add/remove Software needs rpm-tools, can be found in Add/remove Software native support needs appimage-builder
Create on: Debian 12 needs makepkg, can be found in Synaptic Package Manager but doesn't run through native support native support native support native support native support native support native support -
Create on: Ubuntu Version 22.04 - native support native support, but doesn't run through native support native support native support, but doesn't run through native support native support -
Create on: OpenSUSE Leap 15.5 - - native support, but doesn't run through native support - native support, but doesn't run through native support native support -

The creation of installation packages can be started with the Project | Make installation package ... menu. This pops up the Make installation package wizard. The wizard consists of 10 pages.

  • Package informationen (vendor, maintainer, description, license)

  • Changelog

  • Target distribution

  • Package group (package groups are usually used to facilitate installation and to bundle installation packages that depend on or belong to each other)

  • Menu entry (in which start menu entry can the application be found after installation)

  • Desktop configuration file

  • Extra dependencies

  • Extra files

  • Destination directory

  • Creation log

It is impressive how easy it can be to create installation packages. I tested the Archlinunx installation package and called it from Add/Remove Software and it worked immediately.


Page revisions


How To Package your Project by: Steffen Ploetz - April 13th, 2024