6.9.使用 X11
6.9.1. X.Org组件
The Ports 中提供的 X11 实现是 X.Org。如果应用程序依赖于 X 组件, 则应添加 USES= xorg
并在所需组件列表中设置 USE_XORG
。完整的列表可以在 xorg
中找到。
Mesa 项目是一项提供免费 OpenGL 实现的努力。要指定对这个项目的各种组件的依赖性, 请使用 USES= gl
和 USE_GL
。请参阅 gl 以获取可用组件的完整列表。为了向后兼容,yes
的值映射为 glu
。
例子 72.
USE_XORG
例子
表15. 使用 X 的 Port 的变量
| 该 Port 使用 |
| 如果不在 |
例73. 使用与 X11 相关的变量
6.9.2. 需要Motif的 Port
如果 port 需要一个 Motif 库, 应在 Makefile 中定义 USES= motif
。默认的 Motif 实现是 x11-toolkits/open-motif。用户可以通过在 make.conf 中设置 WANT_LESSTIF
来代替 x11-toolkits/lesstif。同样,也可以通过在 make.conf 中设置 WANT_OPEN_MOTIF_DEVEL
来选择 x11-toolkits/open-motif-devel。
MOTIFLIB
会被 motif.mk 设置为引用适当的 Motif 库。请对 port 的源代码打上补丁, 以便在原始 Makefile 或 Imakefile 中引用 Motif 库时使用 ${MOTIFLIB}
。
有两种常见的情况:
如果 port 在其 Makefile 或 Imakefile 中将 Motif 库称为
-lXm
, 则应将其替换为${MOTIFLIB}
。如果 port 在其 Imakefile 中使用了
XmClientLibs
, 应将其改为${MOTIFLIB} ${XTOOLLIB} ${XLIB}
。
注意,MOTIFLIB
(通常)会扩展为 -L/usr/local/lib -lXm -lXp
或 /usr/local/lib/libXm.a
,所以没有必要在前面加上 -L
或 -l
。
6.9.3. X11字体
如果 port 安装了 X 窗口系统的字体, 应把它们放在 LOCALBASE/lib/X11/fonts/local
中。
6.9.4. 用 Xvfb 获得一个假的 DISPLAY
DISPLAY
一些应用程序需要一个可以工作的 X11 显示器才能编译成功。这给无头操作的机器带来了问题。当使用这个变量时,构建基础设施将启动虚拟帧缓冲区的X服务器。然后,工作的 DISPLAY
会被传递给编译。参见 USES=display
的可能参数。
6.9.5. 桌面条目
桌面条目(Freedesktop 的一个标准)提供了一种在安装新程序时自动调整桌面功能的方法,不需要用户干预。例如,新安装的程序会自动出现在兼容桌面环境的应用程序菜单中。桌面条目起源于 GNOME 桌面环境,但现在是一种标准,也适用于 KDE 和 Xfce。这一点自动化为用户提供了真正的好处,对于可以在桌面环境中使用的应用程序,我们鼓励使用桌面条目。
6.9.5.1. 使用预定义的 .desktop 文件
包含预定义 *.desktop 的 port 必须在 pkg-plist 中加入这些文件, 并将其安装到 $LOCALBASE/share/applications 目录中。INSTALL_DATA
宏对于安装这些文件非常有用。
6.9.5.2.更新桌面数据库
如果一个 port 在其 portname.desktop 中有一个 MimeType 项, 在安装和卸载之后必须更新桌面数据库。要做到这一点, 请定义 USES
= desktop-file-utils。
6.9.5.3. 用 DESKTOP_ENTRIES
创建桌面条目
DESKTOP_ENTRIES
创建桌面条目通过使用 DESKTOP_ENTRIES 可以很容易地为应用程序创建桌面条目。一个名为 name.desktop 的文件将被创建、安装,并自动添加到 pkg-plist。语法是:
可能的类别列表可以在 Freedesktop 网站上找到。StartupNotify
表示应用程序是否与启动通知兼容。这些通常是一个像时钟一样的图形指示器,出现在鼠标指针、菜单或面板上,给用户一个程序启动的指示。一个与启动通知兼容的程序在启动后会清除该指示器。与启动通知不兼容的程序永远不会清除指示器(有可能使用户感到困惑和愤怒),必须将 StartupNotify
设置为假,这样指示器就根本不会显示。
例子:
最后更新于