From d848230019ad7e529aa2b8dfbb3c28b4c28b01ca Mon Sep 17 00:00:00 2001 From: Xin LI Date: Thu, 22 Feb 2007 06:34:43 +0000 Subject: MFen 1.795 -> 1.803 Obtained from: The FreeBSD Simplified Chinese Project --- zh_CN.GB2312/books/porters-handbook/book.sgml | 451 ++++++++++++++++++++++---- 1 file changed, 389 insertions(+), 62 deletions(-) (limited to 'zh_CN.GB2312/books') diff --git a/zh_CN.GB2312/books/porters-handbook/book.sgml b/zh_CN.GB2312/books/porters-handbook/book.sgml index 56113a8ff2..9921e93736 100644 --- a/zh_CN.GB2312/books/porters-handbook/book.sgml +++ b/zh_CN.GB2312/books/porters-handbook/book.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.795 + Original Revision: 1.803 $FreeBSD$ --> @@ -341,7 +341,7 @@ PLIST_DIRS= lib/X11/oneko 用 <command>portlint</command> 来检查 port 请使用 portlint 命令来检查您的 port - 是否符合我们的规范。 devel/portlint + 是否符合我们的规范。 ports-mgmt/portlint 程序是 ports 套件的一部分。 这个程序的主要功能是帮助您检查 Makefile 的样式是否符合规范, @@ -1131,15 +1131,6 @@ PORTEPOCH= 1 没什么需要修改的 - - XFree86-3.3.6 - (空) - XFree86 - (空) - 3.3.6 - 没什么需要修改的 - - EmiClock-1.0.2 (空) @@ -3294,8 +3285,9 @@ ALWAYS_KEEP_DISTFILES= yes 在依赖关系中指定最低版本 - 在依赖某个其他 port 时, 可以以下面的句法在 - *_DEPENDS 变量中指定最低版本: + 在依赖某个其他 port 时, 可以采用下面的句法, 通过除 + LIB_DEPENDS 之外的 + *_DEPENDS 变量来指定最低版本: p5-Spiffy>=0.26:${PORTSDIR}/devel/p5-Spiffy @@ -3865,11 +3857,6 @@ PORTVERSION= 1.0 则其它所有连接了受影响的库的 port 的 PORTREVISION 都应递增, 以强制它们采用新版本的库重新编译。 - 如果 port 要安装长版本号的共享库, - 例如 libfoo.so.0.2.9, 则 ports - 构建基础架构会自动尝试重命名这些文件。 如果需要禁用这一行为, 则应定义 - NO_FILTER_SHLIBS - @@ -4955,57 +4942,366 @@ BUILD_DEPENDS+= Xvfb:${X_VFBSERVER_PORT} \ 使用 KDE - - 用于用到 KDE 的 port 的变量 + + 变量及其含义 - - - - USE_QT_VER +
+ 用于使用 KDE 的 port 的变量 - 表示您的 port 使用了 Qt。 可选的值是 - 1 和 - 3; 它们表示所用的 Qt 的主版本号。 - 这个变量将自动把 MOC 和 - QTCPPFLAGS 默认设置为适当的值。 - + + + + USE_KDELIBS_VER - - USE_KDELIBS_VER + 表示 port 用到了 KDE 库。 这个变量可以指定使用的 KDE 的主版本, + 如果定义了这个变量, 则系统会自动将 + USE_QT_VER 设为适当的值。 + 目前唯一一个可用的值是 + 3 + - 表示您的 port 有使用 KDE 库。 可选的值是 - 3; 它表示所用 KDE 的主版本号。 - 这个变量会自动将 USE_QT_VER - 设置为合适的版本。 - + + USE_KDEBASE_VER - - USE_KDEBASE_VER + 表示 port 要用到 KDE 的基本系统。 这个变量可以指定使用的 KDE 的主版本, + 如果定义了这个变量, 则系统会自动将 + USE_QT_VER 设为适当的值。 + 目前唯一一个可用的值是 + 3 + + + +
- 表示您的 port 要使用 KDE 基本运行环境。 可选的值是 - 3; 它表示所用 KDE 的主版本号。 - 这个变量会自动将 USE_KDELIBS_VER - 设置为合适的版本。 - + - - MOC + + 在 port 中使用 Qt - 设置 moc 的路径。 - 默认的值, 与 USE_QT_VER - 有关。 - + + 用于使用 Qt 的 port 的变量 - - QTCPPFLAGS + + + + USE_QT_VER - 设置用于处理 Qt 代码的 CPPFLAGS。 - 默认设置与 - USE_QT_VER 的值有关。 - - - -
+ 表示 port 用到了 Qt 工具套件。 + 可用的值包括 34; + 用于指定使用的 Qt 的主版本。 此外, 系统会自动为 configure + 脚本和 make 命令提供必要的参数。 + + + + QT_PREFIX + + 这个变量会自动设为 Qt 的安装路径 (只读变量)。 + + + + MOC + + 这个变量会自动设为 moc 的路径 + (只读变量)。 默认值与 + USE_QT_VER 变量的值有关。 + + + + QTCPPFLAGS + + 通过 + CONFIGURE_ENV 传给 Qt 工具套件的编译参数。 + 默认配置与 + USE_QT_VER 有关。 + + + + QTCFGLIBS + + 通过 + CONFIGURE_ENV 传给 Qt 工具套件的连接库。 + 默认配置与 + USE_QT_VER 有关。 + + + + QTNONSTANDARD + + 禁止系统自动修改 + CONFIGURE_ENV、 + CONFIGURE_ARGS 和 + MAKE_ENV + + + + + + + + 其他用于使用 Qt 4.x 的变量 + + + + + QT_COMPONENTS + + 用于指定 Qt4 工具和函数库的依赖。 + 详情见后。 + + + + UIC + + 这个变量会自动设为 uic 的路径 (只读变量)。 + 默认值与 + USE_QT_VER 有关。 + + + + QMAKE + + 这个变量会自动设为 qmake 的路径 + (只读变量)。 其默认值与 + USE_QT_VER 有关。 + + + + QMAKESPEC + + 这个变量会自动设为 + qmake 配置文件的路径 (只读变量)。 + 其默认值与 USE_QT_VER + 有关。 + + + + +
+ + 当设置了 USE_QT_VER 时, + 系统自动会给 configure 脚本传一系列有用的参数: + + CONFIGURE_ARGS+= --with-qt-includes=${QT_PREFIX}/include \ + --with-qt-libraries=${QT_PREFIX}/lib \ + --with-extra-libs=${LOCALBASE}/lib \ + --with-extra-includes=${LOCALBASE}/include +CONFIGURE_ENV+= MOC="${MOC}" CPPFLAGS="${CPPFLAGS} ${QTCPPFLAGS}" LIBS="${QTCFGLIBS}" \ + QTDIR="${QT_PREFIX}" KDEDIR="${KDE_PREFIX}" + + 如果将 USE_QT_VER 设为 4, + 则还会进行下列配置: + + CONFIGURE_ENV+= UIC="${UIC}" QMAKE="${QMAKE}" QMAKESPEC="${QMAKESPEC}" +MAKE_ENV+= QMAKESPEC="${QMAKESPEC}" + + + + + 组件的选择 (仅限 Qt 4.x) + + USE_QT_VER 设为 4 时, 可以通过 + QT_COMPONENTS 变量来指定 + Qt4 工具和函数库。 下表中列出了最重要的一些组件 (全部组件可以在 + /usr/ports/Mk/bsd.kde.mk 中的 + _QT_COMPONENTS_ALL 变量中找到): + + + 可用的 Qt4 函数库组件 + + + + + 名字 + 描述 + + + + + + corelib + 核心库 (在 port 只使用 corelib 而没有用到其他库时可以省略) + + + + gui + 图形用户界面库 + + + + network + 网络函数库 + + + + opengl + OpenGL 函数库 + + + + qt3support + Qt3 兼容支持函数库 + + + + qtestlib + 单元测试函数库 + + + + sql + SQL 函数库 + + + + xml + XML 函数库 + + + + +
+ + 您可以通过在成功编译之后, 通过在主可执行文件上运行 + ldd 来确定所需的库。 + + + 可用的 Qt4 工具组件 + + + + + 名字 + 描述 + + + + + + moc + 元对象编译器 (几乎所有的 Qt 应用程序都需要这个) + + + + qmake + 用于 Qt 工程的联编工具 + + + + rcc + 资源编译器 (如果应用程序中包含 + *.rc*.qrc + 文件) + + + + uic + 用户界面编译器 (如果应用程序用到了 GUI) + + + + +
+ + + 可用的 Qt4 插件组件 + + + + + 名字 + 描述 + + + + + + iconengines + SVG 图标引擎插件 (如果应用程序使用 SVG 图标) + + + + imageformats + 用于 GIF、 JPEG、 MNG 和 + SVG 的 imageformat 插件 (如果应用程序使用图片文件) + + + + +
+ + + 选择 Qt4 组件 + + 下面是 port + editors/texmaker 中的一个片段, + 它用到了 Qt4 图形用户界面函数库 (这时会默认使用核心函数库) 及联编工具: + + USE_QT_VER= 4 +QT_COMPONENTS= gui moc qmake rcc uic + +
+ + + 其他考虑 + + 如果应用程序没有提供 + configure 文件, 而是给了一个 .pro + 文件, 则应这样: + + HAS_CONFIGURE= yes + +do-configure: + @cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} \ + ${QMAKE} -unix PREFIX=${PREFIX} texmaker.pro + + 请注意, 这与系统提供的 BUILD.sh + 中的 qmake 类似。 传递 + CONFIGURE_ENV 能够确保 qmake + 可以看到 QMAKESPEC 变量, + 否则它可能无法正常工作。 qmake 会生成标准的 + Makefile, 因此无需自行编写 + build target。 + + Qt 应用程序通常会编写为能够跨平台使用, 通常 X11/Unix 并不是开发它的平台, + 有时这会导致一些边边角角的问题, 例如: + + + + 缺少必要的 includepaths。 + 许多应用程序会使用托盘图标支持, 但忽略了这些头或库文件需要在 X11 + 目录中查找。 您可以通过命令行告诉 qmake + 将这些头文件和函数库加入到搜索路径中, 例如: + + ${QMAKE} -unix PREFIX=${PREFIX} INCLUDEPATH+=${X11BASE}/include \ + LIBS+=-L${X11BASE}/lib sillyapp.pro + + + + 有问题的安装路径。 + 有时, 类似图标或 .desktop 文件这样的一些数据, 默认情况下没有安装到 + XDG-兼容的程序会扫描的路径中。 editors/texmaker + 就是一个这样的例子 - 请参考这个 port 的 files + 目录中的 patch-texmaker.pro, + 以了解如何在 Qmake 工程文件中修正这个问题。 + + + + + 目前, bsd.kde.mk 还不支持 pre/postmk, + 也就是说, 在使用了 bsd.port.pre.mk 之后, 就不能再指定 + USE_QT_VERQT_COMPONENTS + 了。 如果您的 port 需要这样做, 请以传统方式编写依赖关系, 例如: + + .include <bsd.port.pre.mk> + +.if defined(WITH_QT) +BUILD_DEPENDS+= moc4:${PORTSDIR}/devel/qt4-moc +LIB_DEPENDS+= QtCore:${PORTSDIR}/devel/qt4-corelib +.endif + +.include <bsd.port.post.mk> + +
@@ -7741,6 +8037,22 @@ as .putsy.conf and edit it. 请写信询问 &a.ports;。
+ + 使用 Port Tools 来完成测试 + + 在 Ports 套件中, 提供了一个 ports-mgmt/porttools + 程序。 + + port 是一个能够帮助您简化测试工具的前端脚本。 + 如果希望对新增的 port 或更新 port 时进行测试, 可以用 + port test 来完成这些测试工作, 这也包含了 + portlint + 检查。 这个命令会检测并列出没有在 pkg-plist 中列出的文件。 + 具体用法请参见下面的例子: + + &prompt.root; port test /usr/ports/net/csup + + <makevar>PREFIX</makevar> (安装时的顶级目录名) 和 <makevar>DESTDIR</makevar> @@ -7862,7 +8174,7 @@ post-install: 如果您是非常热心的 ports 参与者, 则可以看看 Tinderbox。 这是一个强大的用于构建和测试 ports 的系统, 它基于 Pointyhat 的脚本。 您可以使用 - misc/tinderbox port 来安装 + ports-mgmt/tinderbox port 来安装 Tinderbox。 请一定仔细阅读随它安装的文档, 因为配置并不简单。 @@ -8322,8 +8634,8 @@ post-install: 已经知道 0.65_7 版本修正了这个问题。 您需要做的准备工作, 是安装一个新版本的 - ports security/portaudit 程序以及 - security/portaudit-db + ports ports-mgmt/portaudit 程序以及 + ports-mgmt/portaudit-db首先, 检查一下是否已经有了关于这个漏洞的描述。 如果已经有过这样的记录, 那么它将匹配较早版本的 package, @@ -10019,6 +10331,10 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 节点的新压缩及加密模式之后的 6.2-STABLE。 602104 + + MFC 了从 NetBSD 移植的 BSD 授权的 &man.gzip.1; 之后的 6.2-STABLE。 + 602105 + 7.0-CURRENT。 700000 @@ -10159,6 +10475,11 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 7.0-CURRENT。 700029 + + 在 IPv4 多播转发代码中删去了 IPIP 隧道封装 (VIFF_TUNNEL) 之后的 + 7.0-CURRENT。 + 700030 + @@ -10347,6 +10668,12 @@ post-install: + + NOPORTDOCS 只控制将要装到 DOCSDIR + 的那些文档, 而不应影响标准的联机手册、 info 手册, 以及应装到 + DATADIREXAMPLESDIR 的文件。 + + 这些变量也会被导出到 PLIST_SUB 中。 只要可能, 它们的值就将在那里以相对于 PREFIX 的路径形式出现。 -- cgit v1.2.3