6.10.使用 GNOME

6.10.1. 简介

这一章将解释 ports 所使用的 GNOME 框架。这个框架可以松散地分为基本组件、 GNOME 桌面组件, 以及一些用于简化 port 维护者工作的特殊宏。

6.10.2. 使用USE_GNOME

在 port 中加入这个变量可以使用 bsd.gnome.mk 中定义的宏和组件。bsd.gnome.mk 中的代码会增加所需的联编时、 运行时或库的依赖性, 或对特殊文件的处理。FreeBSD 下的 GNOME 应用程序使用 USE_GNOME 架构。将所有需要的组件作为一个空格分隔的列表包括在内。USE_GNOME 组件被划分为这些虚拟列表: 基本组件, GNOME 3 组件和传统组件。如果 port 只需要 GTK3 库,这是最简短的定义方法:

USE_GNOME=	gtk30

USE_GNOME 组件会自动添加它们需要的依赖关系。请参阅 GNOME 组件,了解所有 USE_GNOME 组件的详尽清单,以及它们意味着哪些其他组件和它们的依赖关系。

PORTNAME=	regexxer
DISTVERSION=	0.10
CATEGORIES=	devel textproc gnome
MASTER_SITES=	GNOME

MAINTAINER=	kwm@FreeBSD.org
COMMENT=	Interactive tool for performing search and replace operations
WWW=		http://regexxer.sourceforge.net/

USES=		gettext gmake localbase:ldflags pathfix pkgconfig tar:xz
GNU_CONFIGURE=	yes
USE_GNOME=	gnomeprefix intlhack gtksourceviewmm3

GLIB_SCHEMAS=	org.regexxer.gschema.xml

.include <bsd.port.mk>

注意

没有任何参数的 USE_GNOME 宏不会为 port 添加任何依赖关系。USE_GNOME 不能在 bsd.port.pre.mk 之后设置。

6.10.3. 变量

本节解释了哪些宏是可用的以及如何使用它们。像它们在上面的例子中的使用。GNOME 组件有一个更深入的解释。必须设置 USE_GNOME,这些宏才会有用武之地。

GLIB_SCHEMAS

port 所安装的所有 glib 模式文件的列表。这个宏将把这些文件添加到 port 的 plist 中, 并在安装和卸载时处理这些文件的注册事宜。

glib 模式文件是用XML编写的,以 gschema.xml 扩展名结尾。它们被安装在 share/glib-2.0/schemas/ 目录中。这些模式文件包含了所有应用程序的配置值和它们的默认设置。应用程序使用的实际数据库是由 glib-compile-schema 构建的,它由 GLIB_SCHEMAS 宏运行。

GLIB_SCHEMAS=foo.gschema.xml

注意

不要将 glib 模式添加到 pkg-plist 中。如果它们被列在 pkg-plist 中,它们将不会被注册,应用程序可能无法正常工作。

GCONF_SCHEMAS

列出所有的 gconf 模式文件。该宏将把这些模式文件添加到 Port plist中,并在安装和卸载时处理它们的注册。

GConf 是基于 XML 的数据库,几乎所有 GNOME 应用程序都使用它来存储它们的设置。这些文件被安装到 etc/gconf/schemas 目录中。这个数据库是由已安装的模式文件来定义的, 这些文件用于生成 %gconf.xml 关键文件。对于每个由 port 安装的模式文件, 在 Makefile 中必须有一个条目:

GCONF_SCHEMAS=my_app.schemas my_app2.schemas my_app3.schemas

注意

Gconf 模式被列在 GCONF_SCHEMAS 宏中, 而不是 pkg-plist。如果它们被列在 pkg-plist 中,它们将不会被注册,应用程序可能无法正常工作。

INSTALLS_OMF

开源元数据框架(OMF)文件通常由GNOME 2应用程序使用。这些文件包含了应用程序的帮助文件信息,并且需要 ScrollKeeper/rarian 进行特殊处理。为了在从软件包中安装 GNOME 应用程序时正确注册 OMF 文件,请确保 omf 文件被列在 pkg-plist 中,并且 Port Makefile 中定义了 INSTALLS_OMF

INSTALLS_OMF=yes

设置后,bsd.gnome.mk 会自动扫描 pkg-plist,并为每个 .omf 添加适当的 @exec@unexec 指令,以追踪 OMF 注册数据库。

最后更新于

FreeBSD 中文社区