如何打包Gambas

请仔细阅读

这些页面不会向您解释如何制作软件包,但它们的结构 必须遵循。

Gambas**必须**按照本文件中所述的方式进行包装,因为 开发环境在创建包时依赖于此结构的一个gambas项目。

如果分发不符合此要求,则由开发环境生成的包将无法安装, 并且用户将非常不高兴。

目前并不是所有的发行版都制作了正确的gambas二进制包。 所以,如果你是这些发行版的打包者,如果你读到这篇文章的 文本,请告诉我们应该做些什么来帮助Gambas完成您的分发工作。

提前感谢!

SPECIFICATIONS FOR GAMBAS development version

Gambas开发版本规范

SPECIFICATIONS FOR GAMBAS <= 3.18

Packaging specifications for Gambas version 3.18

SPECIFICATIONS FOR GAMBAS <= 3.17

Packaging specifications for Gambas version 3.16 to 3.17

SPECIFICATIONS FOR GAMBAS <= 3.15

Packaging specifications for Gambas version 3.15

SPECIFICATIONS FOR GAMBAS <= 3.14

Packaging specifications for Gambas version 3.8 to 3.14

SPECIFICATIONS FOR GAMBAS <= 3.7

Packaging specifications for Gambas version 3.0 to 3.7

这个文件不会告诉你如何制作包,但是制作的包必须符合下面的结构。

在这篇文档中描述了*必须的*Gambas打包方式,因为开发环境创建一个Gambas项目包时依赖于这个结构。

如果一个发布不符合这个要求,那么开发环境生成的包将不能被安装,用户会很不高兴。

当前,并非所有的发行版制作的Gambas二进制包是规范的。 所以,如果你是某个发行版的打包人员,并且阅读了这些文字,请尽力帮助Gambas工作于你的发行版之上。

先行致谢,

Benoît.

GAMBAS 2.0说明

该说明类似于Gambas 1.0的,除了=lib.XXX.component=文件重新命名为=XXX.component=, 以及现在一个组件的一部分可以用Gambas编写。

Gambas二进制包必须有下列名称和内容:

运行时包

该包包含运行Gambas应用程序的 Gambas解释器。

包括:
  • 解释器:=gbx2=

  • gbx2=的符号链接:=gbr2

  • 内部组件描述:=gb.组件=,=gb.info=和=gb.list=

  • Readme文件,=TODO=文件,等等。

  • gb.debug=组件:=gb.debug.info=,=gb.debug.list=,=gb.debug.component=,=gb.debug.so.*=,=gb.debug.la

  • gb.eval=组件:=gb.eval.info=,=gb.eval.list=,=gb.eval.component=,=gb.eval.so.*=,=gb.eval.la.

  • gb.draw=组件:=gb.draw.info=,=gb.draw.list=,=gb.draw.component=,=gb.draw.so.*=,=gb.draw.la.

注意:不需要发布=gb.la=,=gb.so=,=gb.so.0=和=gb.so.0.0.0=。它们仅仅是用于生成=gb.info=和=gb.list=的临时文件。

包的名称必须是_gambas2-runtime

符号链接=gbr2=的位置*必须*位于=PATH=中,否则可执行文件不会工作。

开发包

该包包含不安装完整的开发环境时编译Gambas工程所需的全部工具。

包括:
  • 编译器:=gbc2=

  • 打包器:=gba2=

  • 通知器:=gbi2=

包的名称必须是_gambas2-devel

脚本包

该包包含允许用Gambas语言写脚本的脚本解释器程序。

包括:
  • 脚本解释器:=gbs2.gambas=

  • 脚本解释器的符号链接:=gbs2=

包的名称必须是_gambas2-script

该包依赖于下列Gambas包:
  • gambas2-runtime

  • gambas2-devel

该包必须被=application-x-gambasscript.xml=文件和=application-x-gambasscript.png=图标注册为指定的=application/x-gambasscript=多用途互连网邮件扩展(mime)类型。

符号链接=gbs2=的位置*必须*位于=PATH=中,否则脚本文件不会工作。

组件包

每个Gambas组件必须单独打包。

组件包包括:

  • 共享库文件:=gb.XXX.la=,=gb.XXX.so=,=gb.XXX.so.0=,=gb.XXX.so.0.0.0=。

  • 组件文件:=gb.XXX.component=。

  • 信息文件:=gb.XXX.info=和=gb.XXX.list=。

  • 有时用Gambas编写的部分:=gb.XXX.gambas=。

...其中=gb.XXX=是组件的名称。

组件包的名称*必须是*gambas2-gb-XXX_,其中=gb-XXX=是组件的名称,“.”将被替换成“-”。

例如,=gb.qt=组件包名为=gambas2-gb-qt=。

它必须包括:
  • gb.qt.la

  • gb.qt.so

  • gb.qt.so.0

  • gb.qt.so.0.0.0

  • gb.qt.component

  • gb.qt.gambas

  • gb.qt.info

  • gb.qt.list

一些组件完全用Gambas编写,也就是说,它们只有一个Gambas部分。 这些组件位于源代码归档中的=comp=目录。

对于这些组件必须遵循前面的命名规则,除非它们不是内部共享库文件。

注意:=gb.debug=,=gb.eval=和=gb.draw=没有自己的包,它们被发布于=gambas2-runtime=包中。

开发环境包

该包包含完整的Gambas开发环境,包括数据库管理器和帮助文件。

包括:
  • 开发环境:=gambas2.gambas=

  • 对开发环境的符号链接:=gambas2=

  • 数据库管理器:=gambas-database-manager.gambas=

该包依赖于下列Gambas包:
  • gambas2-runtime

  • gambas2-devel

  • IDE和数据库管理器所需的组件包

可以*让该包依赖于所有的Gambas组件,那么它们都会被安装,但是不建议这样。

包的名称必须是_gambas2-ide.

IDE依赖下列外部工具:
  • GNU翻译工具,用于翻译工程。

  • RPM工具,用于创建RPM包。

  • tar=和=gzip=工具,用于创建=*.tar.gz=归档。

所以必须添加对提供这些工具的包的依赖关系。这些包的名称与发行版有关。

例如,在Mandriva上,它们是:
  • gettext

  • rpm-build

  • gzip

  • tar

实例包

该包包含所有Gambas提供的实例工程。

打包实例时,注意Gambas工程包含一些隐藏文件和目录。

包括:
  • .project=文件

  • .gambas=目录

  • .lang=目录

  • .directory=文件

  • .icon.png=文件

该包依赖于下列Gambas包:
  • gambas2-runtime

  • gambas2-ide

  • 所有*Gambas组件

包的名称必须是_gambas2-examples.

帮助包

该包包含由位于http://gambaswiki.org的Wiki生成的帮助文件。

它们被安装在=$(INSTALL)/share/gambas2/help=目录,其中=$(INSTALL)必须被替换为Gambas安装路径。

帮助目录包含下列内容:
  • help=目录

  • 符号链接=image=和=img=

  • tree=目录

  • background.png=文件

  • style.css=文件

其他的所有文件是不需要的。

该包依赖于=gambas2-ide=包。

包的名称必须是_gambas2-help

包列表

这是所有必须制作的包的列表:

gambas2-devel
gambas2-examples
gambas2-gb-chart
gambas2-gb-compress
gambas2-gb-crypt
gambas2-gb-db
gambas2-gb-db-firebird
gambas2-gb-db-form
gambas2-gb-db-mysql
gambas2-gb-db-odbc
gambas2-gb-db-postgresql
gambas2-gb-db-sqlite2
gambas2-gb-db-sqlite3
gambas2-gb-desktop
gambas2-gb-form
gambas2-gb-form-dialog
gambas2-gb-form-mdi
gambas2-gb-gtk
gambas2-gb-gui
gambas2-gb-image
gambas2-gb-info
gambas2-gb-net
gambas2-gb-net-curl
gambas2-gb-net-smtp
gambas2-gb-opengl
gambas2-gb-option
gambas2-gb-pcre
gambas2-gb-pdf
gambas2-gb-qt
gambas2-gb-qt-ext
gambas2-gb-qt-kde
gambas2-gb-qt-kde-html
gambas2-gb-qt-opengl
gambas2-gb-report
gambas2-gb-sdl
gambas2-gb-sdl-sound
gambas2-gb-settings
gambas2-gb-v4l
gambas2-gb-vb
gambas2-gb-web
gambas2-gb-xml
gambas2-gb-xml-rpc
gambas2-gb-xml-xslt
gambas2-help
gambas2-ide
gambas2-runtime
gambas2-script

可以有一个存储前面所有包调试信息的=gambas2-debug=包。

未来GAMBAS 3的打包规范

现在,打包规范基本上与Gambas 2相同:

版本号增大:"gambas2"必须被换成"gambas3","gbx2"换成"gbx3",如此类推。

Components可以有控件图标。这些=PNG=文件必须被安装在=$(INSTALL)/share/gambas3/control/$(COMPONENT)目录下,在这里=$(COMPONENT)=是相应组件的名字。

gb.form=组件的MessageLabel控件图标是=messagelabel.png=文件,它必须被安装在=$(INSTALL)/share/gambas3/control/gb.form=目录下。

当心这是发展版本,而且因此主体会随时发生变化!