Packaging specifications for Gambas version 3.0 to 3.7
REVISION: 2014-09-28
Here are the noticeable changes between Gambas 3 and Gambas 2 specifications:
-
Now components can have control icons. These are
PNG files that must be installed in a $(INSTALL)/share/gambas3/control/$(COMPONENT) directory, where $(COMPONENT) is the name of the component.
-
There is no help packages anymore.
-
The /wiki/howto/comp/gb.debug component does not have its own package anymore. It is located in the runtime package instead.
Gambas binary packages must have the following names and contents:
The runtime package
This package includes the Gambas interpreter needed to run Gambas
applications.
It contains:
-
The interpreter:
gbx3.
-
The symbolic link on
gbx3: gbr3.
-
The internal component description:
gb.component, gb.info and gb.list.
-
The readme files,
TODO files, and so on.
And the following components:
-
The
gb.debug component: gb.debug.info, gb.debug.list, gb.debug.component, gb.debug.so.*, gb.debug.la.
-
The
gb.eval component: gb.eval.info, gb.eval.list, gb.eval.component, gb.eval.so.*, gb.eval.la.
-
The
gb.geom hidden component: gb.geom.info, gb.geom.list, gb.geom.so.*, gb.geom.la.
-
The
gb.draw hidden component: gb.draw.info, gb.draw.list, gb.draw.so.*, gb.draw.la.
-
The
gb.gui component: gb.gui.info, gb.gui.list, gb.gui.component, gb.gui.so.*, gb.gui.la.
-
The
gb.gui.base hidden component: gb.gui.base.info, gb.gui.base.list, gb.gui.base.gambas.
-
The
gb.gui.opengl component: gb.gui.opengl.info, gb.gui.opengl.list, gb.gui.opengl.component, gb.gui.opengl.so.*, gb.gui.opengl.la.
Its name must be
gambas3-runtime.
This package must register the
application/x-gambas3 mime type as specified by the
application-x-gambas3.xml file and
the
application-x-gambas3.png icon.
Note that gb.la, gb.so, gb.so.0 and gb.so.0.0.0
do not need to be distributed. They are temporary files used for generating
gb.info and gb.list only.
The components included in this package have no dependency on any other components.
The gbr3 symbolic link MUST be in the PATH, otherwise executables will not work.
gb.gui.base is a component written in Gambas that is actually cannot be used on its own.
It implements many GUI controls for GUI components, and it is explicitely loaded by them (like gb.draw).
The development package
This package includes all tools needed to compile Gambas projects without
having to install the complete development environment.
It contains:
-
The compiler:
gbc3.
-
The archiver:
gba3.
-
The informer:
gbi3.
Its name must be
gambas3-devel.
On Debian distributions, the package is named gambas3-dev.
The scripter package
This package includes the scripter program that allows to write script files in Gambas
and to serve Gambas webpages when run with another name.
It contains:
-
The scripter:
gbs3.gambas.
-
The symbolic link on it:
gbs3.
-
Another symbolic link on it with a specific name:
gbw3.
Its name must be
gambas3-scripter.
It depends on the following Gambas packages:
-
gambas3-runtime.
-
gambas3-devel.
This package must register the
application/x-gambasscript mime type as specified by the
application-x-gambasscript.xml file and
the
application-x-gambasscript.png icon.
The gbs3 symbolic link MUST be in the PATH, otherwise scripts will not work.
The component packages
Each gambas component must have its own package.
The package of a component contains:
-
The shared library files:
gb.XXX.la, gb.XXX.so, gb.XXX.so.0, gb.XXX.so.0.0.0.
-
The component file:
gb.XXX.component.
-
The information file:
gb.XXX.info and gb.XXX.list.
-
Sometimes a part written in Gambas:
gb.XXX.gambas.
...where
gb.XXX is the name of the component
Then name of a component package
MUST BE gambas3-gb-XXX where
gb-XXX is
the name of the component, the point being replaced by a minus sign.
For example, the
gb.qt4 component package name is
gambas3-gb-qt4.
It must include:
-
gb.qt4.la
-
gb.qt4.so
-
gb.qt4.so.0
-
gb.qt4.so.0.0.0
-
gb.qt4.component
-
gb.qt4.gambas
-
gb.qt4.info
-
gb.qt4.list
Some component are entirely written in Gambas, i.e. they have only a Gambas part.
These components are located in the
comp directory of the source archive.
You must follow the previous rules for these components, except that there is no
shared library files inside.
If a component is written in Gambas, or has a Gambas part, then it must depend on gambas3-runtime.
Note that gb.debug, gb.eval, gb.draw, gb.geom, gb.gui, gb.gui.base and gb.gui.opengl do not have their own package, as they are distributed with
the gambas3-runtime package.
The development environment package
This package includes the complete Gambas Development Environment.
It contains:
-
The development environment:
gambas3.gambas.
-
The symbolic link on it:
gambas3.
It depends on the following Gambas packages:
-
gambas3-runtime.
-
gambas3-devel.
-
The packages of the components needed by the IDE.
-
gambas3-gb-clipper
-
gambas3-gb-db
-
gambas3-gb-db-form
-
gambas3-gb-desktop
-
gambas3-gb-desktop-x11
-
gambas3-gb-eval-highlight
-
gambas3-gb-form
-
gambas3-gb-form-dialog
-
gambas3-gb-form-mdi
-
gambas3-gb-form-stock
-
gambas3-gb-image
-
gambas3-gb-markdown
-
gambas3-gb-qt4
-
gambas3-gb-qt4-ext
-
gambas3-gb-qt4-webkit
-
gambas3-gb-settings
You
MAY make this package depend on all Gambas components, so that they are all installed,
but this is not recommended.
Its name must be
gambas3-ide.
The IDE relies on the following external tools:
-
The GNU translation tools for translating a project.
-
The rpm tools for creating RPM packages.
-
The deb tools for creating DEB packages.
-
The ARCH tool for creating ARCH packages.
-
The
tar & gzip tools for creating *.tar.gz archives.
-
The
wget utility for downloading offline help from the wiki.
So you must add the dependencies on the packages that provide these tools. The name of these
packages depends on the distribution.
For example, on Mandriva, they are:
-
gettext
-
rpm-build
-
gzip
-
tar
-
wget
The examples package
This package includes all the example projects provided with Gambas.
When packaging the examples, be careful that a Gambas project includes some hidden files and directories.
These are:
-
.project file.
-
.startup file.
-
.gambas directory.
-
.lang directory.
-
.directory file.
-
.icon.png file.
It depends on the following Gambas packages:
-
gambas3-runtime.
-
gambas3-ide.
-
All gambas components.
Its name must be
gambas3-examples.
Package list
Here is the list of all packages that must be made:
|
Package
|
Depends on these packages
|
gambas3-devel
|
|
gambas3-runtime
|
|
gambas3-ide
|
gambas3-runtime gambas3-devel gambas3-gb-clipper gambas3-gb-db gambas3-gb-db-form
gambas3-gb-desktop gambas3-gb-desktop-x11 gambas3-gb-eval-highlight gambas3-gb-form gambas3-gb-form-dialog
gambas3-gb-form-mdi gambas3-gb-form-stock gambas3-gb-image gambas3-gb-markdown gambas3-gb-qt4
gambas3-gb-qt4-ext gambas3-gb-qt4-webkit gambas3-gb-settings
|
gambas3-scripter
|
gambas3-runtime gambas3-devel
|
gambas3-examples
|
gambas3-runtime
gambas3-ide
All components packages.
|
gambas3-gb-args
|
|
gambas3-gb-cairo
|
gambas3-gb-image
|
gambas3-gb-chart
|
gambas3-gb-form
|
gambas3-gb-clipper
|
|
gambas3-gb-complex
|
|
gambas3-gb-compress
|
|
gambas3-gb-compress-zlib
|
gambas3-gb-compress
|
gambas3-gb-compress-bzlib2
|
gambas3-gb-compress
|
gambas3-gb-crypt
|
|
gambas3-gb-data
|
|
gambas3-gb-db
|
|
gambas3-gb-db-form
|
gambas3-gb-db gambas3-gb-form
|
gambas3-gb-db-mysql
|
gambas3-db-db
|
gambas3-gb-db-odbc
|
gambas3-db-db
|
gambas3-gb-db-postgresql
|
gambas3-db-db
|
gambas3-gb-db-sqlite2
|
gambas3-db-db
|
gambas3-gb-db-sqlite3
|
gambas3-db-db
|
gambas3-gb-dbus
|
|
gambas3-gb-desktop
|
gambas3-gb-image
|
gambas3-gb-desktop-gnome
|
gambas3-gb-desktop
|
gambas3-gb-eval-highlight
|
|
gambas3-gb-form
|
|
gambas3-gb-form-dialog
|
gambas3-gb-form
|
gambas3-gb-form-mdi
|
gambas3-gb-form gambas3-gb-settings
|
gambas3-gb-form-stock
|
gambas3-gb-form
|
gambas3-gb-gmp
|
|
gambas3-gb-gsl
|
|
gambas3-gb-gtk
|
|
gambas3-gb-gtk-opengl
|
gambas3-gb-gtk gambas3-gb-opengl
|
gambas3-gb-httpd
|
|
gambas3-gb-image
|
|
gambas3-gb-image-effect
|
gambas3-gb-image
|
gambas3-gb-image-imlib
|
gambas3-gb-image
|
gambas3-gb-image-io
|
gambas3-gb-image
|
gambas3-gb-jit
|
|
gambas3-gb-libxml
|
|
gambas3-gb-logging
|
|
gambas3-gb-map
|
gambas3-gb-net gambas3-gb-net-curl
|
gambas3-gb-markdown
|
|
gambas3-gb-media
|
|
gambas3-gb-memcached
|
|
gambas3-gb-mime
|
|
gambas3-gb-mysql
|
gambas3-gb-db gambas3-gb-db-mysql
|
gambas3-gb-ncurses
|
|
gambas3-gb-net
|
|
gambas3-gb-net-curl
|
gambas3-gb-net
|
gambas3-gb-net-pop3
|
gambas3-gb-net gambas3-gb-mime
|
gambas3-gb-net-smtp
|
gambas3-gb-net
|
gambas3-gb-openal
|
|
gambas3-gb-opengl
|
|
gambas3-gb-opengl-glu
|
gambas3-gb-opengl
|
gambas3-gb-opengl-glsl
|
gambas3-gb-opengl
|
gambas3-gb-opengl-sge
|
gambas3-gb-opengl
|
gambas3-gb-openssl
|
|
gambas3-gb-option
|
|
gambas3-gb-pcre
|
|
gambas3-gb-pdf
|
|
gambas3-gb-qt4
|
|
gambas3-gb-qt4-ext
|
gambas3-gb-qt4
|
gambas3-gb-qt4-opengl
|
gambas3-gb-qt4 gambas3-gb-opengl
|
gambas3-gb-qt4-webkit
|
gambas3-gb-qt4
|
gambas3-gb-report
|
|
gambas3-gb-sdl
|
|
gambas3-gb-sdl-sound
|
|
gambas3-gb-settings
|
|
gambas3-gb-signal
|
|
gambas3-gb-v4l
|
|
gambas3-gb-vb
|
|
gambas3-gb-web
|
|
gambas3-gb-xml
|
|
gambas3-gb-xml-html
|
gambas3-gb-xml
|
gambas3-gb-xml-rpc
|
gambas3-gb-xml
|
gambas3-gb-xml-xslt
|
gambas3-gb-xml
|
You may have a gambas3-debug package to store the debugging information of all previous packages.