From 1ff8df67b61b98649236515a3e942733c2de7738 Mon Sep 17 00:00:00 2001 From: Fukang Chen Date: Tue, 2 Oct 2007 02:56:37 +0000 Subject: MFen: books/porters-handbook/book.sgml 1.825 -> 1.872 Obtained from: The FreeBSD Simplified Chinese Project Merging work done by: delphij Approved by: delphij (mentor) --- zh_CN.GB2312/books/porters-handbook/book.sgml | 556 +++++++++++++++----------- 1 file changed, 314 insertions(+), 242 deletions(-) (limited to 'zh_CN.GB2312/books/porters-handbook') diff --git a/zh_CN.GB2312/books/porters-handbook/book.sgml b/zh_CN.GB2312/books/porters-handbook/book.sgml index 177a2f9f6b..0e24a355bc 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.825 + Original Revision: 1.872 $FreeBSD$ --> @@ -335,6 +335,12 @@ PLIST_DIRS= lib/X11/oneko 第三步以后, 检查是否所有新建的目录都被正确删除了。 在第四步以后, 试着运行一下所装的软件, 确保当它以 package 方式安装的时候也能正常工作。 + + 自动化这些步骤最简单的方法是通过 ports tinderbox + 来进行测试。 它可以维护 jails 并在其中完成全部测试工作, + 而不会破坏正在运行的系统的状态。 请参见 + ports/ports-mgmt/tinderbox + 以了解更多的信息。 @@ -1013,6 +1019,25 @@ PORTEPOCH= 1 PORTNAME 中。 + + <makevar>LATEST_LINK</makevar> + + 有时, 在 ports 套件中可能会存在同一程序的多个版本。 + 索引和预编译包的联编系统都需要能够将它们视为不同的软件包, 尽管其 + PORTNAMEPKGNAMEPREFIX, 以及 + even PKGNAMESUFFIX 可能是一模一样的。 遇到这种情况时, + 就需要将除了 port 之外的其他 port + 中的 LATEST_LINK 变量设为不同的值 + — 请参见 editors/vim5 和 + editors/vim port, 以及 + www/apache* 系列, 以了解它的用法。 + 需要注意的是, 如何确定 版本 — + 最流行受支持最好, + 变动最少, 等等 — 已经超过了本书能够给出的建议范围; + 这里只是向您介绍在选定了一个 + port 之后如何指定其他 port 的版本。 + + 包命名规则 @@ -1051,16 +1076,28 @@ PORTEPOCH= 1 name 部分的首字母应该 - 小写。 (余下的部分能包含大写字母, 所以当您 + 小写。 (余下的部分可以包含大写字母, 所以当您 要转换一个包含大写字母软件的名字时, 您需要 - 自己做出判断。) 对于perl 5 + 自己做出判断。) 对于 Perl 5 模块的命名, 有个传统的规则是, 在前面 加上 p5- 并把两个冒号的部分改为连字号, 如: - Data::Dumper 模块变成 - p5-Data-Dumper。 - 如果软件的名字里还有数字、 连字号、 下划线, - 您也可以把这些包括进来 (例如 kinput2)。 + Data::Dumper 模块对应的名字, 就应该是 + p5-Data-Dumper。 + + + + 确认 port 的名字和版本之间有清晰的分隔, 并放入 PORTNAME 和 + PORTVERSION 变量。 在 + PORTNAME 中包含版本部分的唯一理由是上游软件包真的采用这样的命名方式, + 类似 textproc/libxml2 或 + japanese/kinput2-freewnn port 这样。 否则, + 在 PORTNAME 中就不应包含任何版本信息。 + 许多 port 采用同样的 PORTNAME 名字是很正常的, + www/apache* port 便是如此; 在这种情况下, + 不同的版本 (以及不同的索引项) 是由 PKGNAMEPREFIX、 + PKGNAMESUFFIX, 以及 + LATEST_LINK 的值的不同而有所区别的。 @@ -1538,6 +1575,12 @@ PORTEPOCH= 1 + + kld* + 可加载内核模块。 + + + korean 韩语语言支持。 @@ -1860,6 +1903,12 @@ PORTEPOCH= 1 + + x11-drivers + X11 驱动程序。 + + + x11-fm X11 下的文件管理器。 @@ -1965,6 +2014,12 @@ PORTEPOCH= 1 + + 需要安装可加载内核模块的 port 应在其 CATEGORIES + 中归入虚拟分类 kld。 + + + misc 分类的 port 不能有其它非虚拟的分类。 @@ -3495,10 +3550,21 @@ ${MANPREFIX}/man/de/man3/baz.3.gz Info 文件 - 如果软件包需要安装 GNU 文件, - 则需要在 INFO 变量中列出 (不需要指定 - .info 后缀), 这样安装/卸载代码就会自动地在注册包时将它们加入到 - pkg-plist 了。 + 如果软件包需要安装 GNU info 文件, + 则需要在 INFO 变量中一一列出 (不需要指定 + .info 后缀)。 系统假定这些文件均会安装到 + PREFIX/INFO_PATH 目录中。 + 如果软件包有需要, 也可以通过修改 INFO_PATH 来指定不同的位置。 + 不过, 并不推荐这样做。 所有列出的项目均是相对于 + PREFIX/INFO_PATH 的文件路径。 + 例如, lang/gcc33 表示将 + info 文件安装到 + PREFIX/INFO_PATH/gcc33, + 因此 INFO 应写成类似这样: + INFO= gcc33/cpp gcc33/cppinternals gcc33/g77 ... + + 这样安装/卸载代码就会自动地在注册包之前将它们加入到临时的 + pkg-plist 中了。 @@ -3512,7 +3578,7 @@ ${MANPREFIX}/man/de/man3/baz.3.gz 支持这些特性可以让用户体验更好, 并达到事半功倍的效果。 - 开关 (<makevar>KNOBS</makevar>) + 开关 (Knobs) <makevar>WITH_<replaceable>*</replaceable></makevar> 和 @@ -3680,6 +3746,7 @@ ${MANPREFIX}/man/de/man3/baz.3.gz</programlisting> 而 <makevar>WITH_*</makevar> 和 <makevar>WITHOUT_*</makevar> 只有在引用了 <filename>bsd.port.pre.mk</filename> 之后才能开始检测。</para> + </sect3> <sect3> <title>例子 @@ -3702,6 +3769,7 @@ RUN_DEPENDS+= bar:${PORTSDIR}/bar/bar .include <bsd.port.post.mk> + @@ -3938,21 +4006,38 @@ PORTVERSION= 1.0 PREFIX/share/PORTNAME + + DATADIR_REL 会展开成 + share/PORTNAME + + DOCSDIR 会展开成 PREFIX/share/doc/PORTNAME + + DOCSDIR_REL 会展开成 + share/doc/PORTNAME + + EXAMPLESDIR 会展开成 PREFIX/share/examples/PORTNAME + + + EXAMPLESDIR_REL 会展开成 + share/examples/PORTNAME + - NOPORTDOCS 只控制将要装到 DOCSDIR - 的那些文档, 而不应影响标准的联机手册、 info 手册, 以及应装到 - DATADIREXAMPLESDIR 的文件。 + NOPORTDOCS 只控制将要安装到 DOCSDIR + 的那些文档, 而不应影响标准的联机手册以及 info 手册的安装。 安装到 + DATADIREXAMPLESDIR + 的文件则相应地受 NOPORTDATA 和 + NOPORTEXAMPLES 控制。 这些变量也会被导出到 PLIST_SUB 中。 @@ -3963,7 +4048,7 @@ PORTVERSION= 1.0 (更多的 pkg-plist 代换可以在 这里 找到。) - 所有的安装的文档文件和目录, + 所有非无条件安装的文档文件和目录, 都应在 pkg-plist 出现, 并且使用 %%PORTDOCS%% 前缀, 例如: @@ -3988,6 +4073,11 @@ PORTVERSION= 1.0 PORTDOCS= README.* ChangeLog docs/* + PORTDOCS 类似, + 对应于 DATADIR 和 + EXAMPLESDIR 的变量分别是 PORTDATA + 和 PORTEXAMPLES + 您也可以使用 pkg-message 这个文件, 来在安装时显示一些信息。 参见 关于使用 @@ -4253,6 +4343,8 @@ PORTVERSION= 1.0 GNU_CONFIGURE=yes。 如果希望传额外的参数给 configure 脚本 (默认参数为 --prefix=${PREFIX} + --infodir=${PREFIX}/${INFO_PATH} + --mandir=${MANPREFIX}/man ${CONFIGURE_TARGET}), 应通过 CONFIGURE_ARGS 来指定这些参数。 类似地, 可以通过 @@ -4410,12 +4502,10 @@ PORTVERSION= 1.0 可以同时指定多个不同的工具, 可以在一行中指定, 也可以用 Makefile 的 += 结构。 - 在开始介绍其它工具之前, 需要强调的是, 这些结构只能用于构建 port。 - 如果希望进行跨平台的开发, 例如在 IDE 中, 则应使用 - devel/gnu-{automake,autoconf,libtool} 这些 port。 devel/anjuta 以及 devel/kdevelop (分别对应于 GNOME 和 KDE) - 是关于如何做到这一点的良好范例。 + 最后, 可以使用一个特殊的名为 + autotools 的工具, + 它会安装全部可用的 autotools 版本, + 以适应跨平台开发的需要。 您可以通过安装 devel/autotools port 来达到这一目的。 @@ -4442,39 +4532,6 @@ PORTVERSION= 1.0 如果指定了 :env 操作符, 则表示只设置环境, 而跳过其他的操作。 - - - - - 先前的写法 - - 新的 USE_AUTOTOOLS 结构 - - - - - - USE_LIBTOOL_VER=15 - - libtool:15 - - - - USE_INC_LIBTOOL_VER=15 - - 已不再使用 - - - - WANT_LIBTOOL_VER=15 - - libtool:15:env - - - - - - 最后, LIBTOOLFLAGSLIBTOOLFILES 可以用来替换最常修改的参数, 以及将被 libtool 修补的文件。 多数 port 不需要这样做。 @@ -4498,27 +4555,6 @@ PORTVERSION= 1.0 协助开发人员消除在 USE_AUTOTOOLS 框架以外的, 对于 autotools port 的依赖。 这个工具并不提供其它的操作符。 - - - - - 先前的写法 - - 新的 USE_AUTOTOOLS 结构 - - - - - - USE_LIBLTDL=YES - - libltdl:15 - - - - - - @@ -4546,40 +4582,6 @@ PORTVERSION= 1.0 则表示只设置用于后续工作的环境。 如果不指定, 则会对 port 进行相应的修补和重新配置。 - - - - - 先前的写法 - - 新的 USE_AUTOTOOLS 结构 - - - - - - USE_AUTOCONF_VER=213 - - autoconf:213 - - - - WANT_AUTOCONF_VER=259 - - autoconf:259:env - - - - USE_AUTOHEADER_VER=253 - - autoheader:253 (implies - autoconf:253) - - - - - - 其它的可选变量, 如 AUTOCONF_ARGSAUTOHEADER_ARGS 可以通过 port 的 @@ -4625,42 +4627,8 @@ PORTVERSION= 1.0 :env 操作符表示仅仅设置用于后续使用的环境, 如果不设置, 则会对 port 进行重新配置。 - - - - - 先前的写法 - - USE_AUTOTOOLS construct - - - - - - USE_AUTOMAKE_VER=14 - - automake:14 - - - - WANT_AUTOMAKE_VER=15 - - automake:15:env - - - - USE_ACLOCAL_VER=19 - - aclocal:19 (implies - automake:19) - - - - - - - As with - autoconfautoheader、 + 对于 + autoconfautoheader 而言, automakeaclocal 提供了对应的可选参数变量 AUTOMAKE_ARGSACLOCAL_ARGS, 如果需要的话, @@ -4779,6 +4747,15 @@ PLIST_SUB+= NLS="@comment " 以上规则有一个例外, 即对应目录不存在或源码包不在那个目录中时, 允许使用作者的 id 作为 MASTER_SITE_SUBDIR + 所有这些选项均同时接受 YES + 和版本串, 类似 5.8.0+ 这样的写法。 使用 + YES 表示 port 能够配合所有受支持的 Perl 版本来使用。 + 如果 port 只能配合特定版本的 Perl 来使用, + 则可以用版本串来表示, 例如最低版本 + (如 5.7.3+)、 最高版本 (如 + 5.8.0-) 或某个具体的版本 (如 + 5.8.3)。 + 用于用到 <literal>perl</literal> 的 port 的变量 @@ -4903,37 +4880,68 @@ PLIST_SUB+= NLS="@comment " 使用 X11 - 变量定义 + X.Org 组件 + + 在 Ports 套件中提供的 X11 实现是 X.Org。 + 如果您的应用程序用到了 X 组件, 则应将 + USE_XORG 设为所需要的那些组件。 + 目前可用的组件包括: + + bigreqsproto compositeproto damageproto dmx dmxproto + evieproto fixesproto fontcacheproto fontenc fontsproto fontutil + glproto ice inputproto kbproto libfs oldx printproto randrproto + recordproto renderproto resourceproto scrnsaverproto sm trapproto + videoproto x11 xau xaw xaw6 xaw7 xaw8 xbitmaps xcmiscproto xcomposite + xcursor xdamage xdmcp xevie xext xextproto xf86bigfontproto + xf86dgaproto xf86driproto xf86miscproto xf86rushproto + xf86vidmodeproto xfixes xfont xfontcache xft xi xinerama + xineramaproto xkbfile xkbui xmu xmuu xorg-server xp xpm xprintapputil + xprintutil xpr oto xproxymngproto xrandr xrender xres xscrnsaver xt + xtrans xtrap xtst xv xvmc xxf86dga xxf86misc xxf86vm. + + 最新的列表, 可以在 + /usr/ports/Mk/bsd.xorg.mk 中找到。 + + The Mesa Project 是一个致力于自由的 OpenGL + 实现的计划。 您可以使用 USE_GL 变量来让 port 依赖其不同的组件。 + 可用的选项包括: glut, glu, glw, gl 和 + linux。 为了实现向前兼容, + 当使用 yes 时系统会自动将其映射为 glu + + + 使用 USE_XORG 的例子 + USE_XORG= xrender xft xkbfile xt xaw +USE_GL= glu + + + 许多 ports 会定义 USE_XLIB, + 这会导致 port 依赖 50 多个动态连接库。 由于它出现于 X.org + 模块化之前, 因此这个变量仅为向前兼容的原因提供, + 新的 port 不应再使用它。
用到 X 的 port 可以使用的变量 - - USE_X_PREFIX - - 此 port 将文件安装到 X11BASE_REL 而非通常的 - PREFIX - - USE_XLIB - 此 port 用到了 X 库。 + 此 port 用到了 X 库。 已过时 - 您应使用 USE_XORG 变量列出用到的 + X.Org 组件, 而不是使用这个变量。 - USE_MOTIF + USE_IMAKE - 此 port 使用 Motif 工具包。 + 此 port 用到了 imake - USE_IMAKE + USE_X_PREFIX - 此 port 用到了 imake。 这一变量也会自动设置 - USE_X_PREFIX + 已过时。 目前其作用与 + USE_XLIB 相同, 并可以直接用后者替换。 @@ -5121,10 +5129,7 @@ USE_XLIB= yes 通过下面的官方 hack, 预编译包构建集群将启动采用虚拟帧缓存的 X server。 这样, 编译过程将有可用的 DISPLAY。 - .if defined(PACKAGE_BUILDING) -BUILD_DEPENDS+= Xvfb:${X_VFBSERVER_PORT} \ - ${X11BASE}/lib/X11/fonts/misc/8x13O.pcf.gz:${X_FONTS_MISC_PORT} -.endif + USE_DISPLAY= yes @@ -5328,11 +5333,17 @@ MAKE_ENV+= QMAKESPEC="${QMAKESPEC}" 组件的选择 (仅限 Qt 4.x) - USE_QT_VER 设为 4 时, 可以通过 - QT_COMPONENTS 变量来指定 - Qt4 工具和函数库。 下表中列出了最重要的一些组件 (全部组件可以在 - /usr/ports/Mk/bsd.kde.mk 中的 - _QT_COMPONENTS_ALL 变量中找到): + 当把 USE_QT_VER 设为 4 时, 就可以通过 + QT_COMPONENTS 变量来指定对 + Qt4 工具和函数库的依赖了。 通过在组件的名称后面添加 _build_run + 这样的后缀, 则可相应地将这依赖关系限于联编或运行时刻。 + 在没有指定后缀时, 系统默认在联编和运行时刻均依赖该组件。 + 通常情况下在指明函数库一类的组件时应不使用后缀, + 联编工具类组件应使用 _build 后缀, + 而插件类组件, 则应使用 _run 后缀。 + 下表中列出了一些最常用的组件 (全部可用的组件, 则在 + /usr/ports/Mk/bsd.qt.mk + 中的 _QT_COMPONENTS_ALL 列出):
可用的 Qt4 函数库组件 @@ -5376,6 +5387,11 @@ MAKE_ENV+= QMAKESPEC="${QMAKESPEC}"单元测试函数库 + + script + 脚本函数库 + + sql SQL 函数库 @@ -5407,24 +5423,26 @@ MAKE_ENV+= QMAKESPEC="${QMAKESPEC}" moc - 元对象编译器 (几乎所有的 Qt 应用程序都需要这个) + 元对象编译器 (几乎所有的 Qt 应用程序在联编过程中都需要它) qmake - 用于 Qt 工程的联编工具 + Makefile 生成器 / 联编工具 rcc 资源编译器 (如果应用程序中包含 *.rc*.qrc - 文件) + 文件, 就需要它) uic - 用户界面编译器 (如果应用程序用到了 GUI) + 用户界面编译器 (如果应用程序中包含使用 Qt Designer + 创建的 *.ui 文件时就需要它 + - 一般说来 Qt 应用程序都会使用 GUI 的) @@ -5461,12 +5479,17 @@ MAKE_ENV+= QMAKESPEC="${QMAKESPEC}" 选择 Qt4 组件 - 下面是 port - editors/texmaker 中的一个片段, - 它用到了 Qt4 图形用户界面函数库 (这时会默认使用核心函数库) 及联编工具: + 在这个例子中, 我们将要移植的应用程序用到了 + Qt4 图形用户界面函数库、 Qt4 核心 (core) 函数库、 + 所有 Qt4 代码生成工具以及 Qt4 的 + Makefile 生成器。 由于 gui 函数库会自动附带对核心函数库的依赖, + 因此并不需要明确指出需要 corelib 的依赖关系。 Qt4 代码生成工具 moc、 + uic 和 rcc 以及 Makefile 生成器 + qmake 只在联编过程中才会用到, + 因此可以指定 _build 后缀: USE_QT_VER= 4 -QT_COMPONENTS= gui moc qmake rcc uic +QT_COMPONENTS= gui moc_build qmake_build rcc_build uic_build @@ -5515,21 +5538,6 @@ do-configure: - - 目前, 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> - @@ -6022,7 +6030,10 @@ LIB_DEPENDS+= QtCore:${PORTSDIR}/devel/qt4-corelib PREFIX/www/应用程序的名字。 为方便起见, 这个路径在 Makefilepkg-plist - 均以 WWWDIR 变量的形式提供。 + 均以 WWWDIR 变量的形式提供。 在 + Makefile 中可以使用 + WWWDIR_REL 来表示包含了 + PREFIX 的该变量值。web 服务器进程所用的用户和用户组, 分别以 WWWOWNWWWGRP 变量的形式提供, @@ -6704,6 +6715,7 @@ USE_SDL+= mixer
+
选择组件 @@ -7805,6 +7817,10 @@ run_rc_command "$1" Makefile 中使用。 最新版本的 &os; 并不为脚本名增加任何后缀, 但较早的版本则曾使用过 .sh 后缀。 + + 新增的脚本均不应使用 .sh + 后缀。 未来, 仍然包含这一后缀的脚本将被批量改名。 + 卸载时停止服务 @@ -8377,15 +8393,17 @@ as .putsy.conf and edit it. 实际上, port 会安装到 DESTDIR/PREFIX, 并注册到位于 DESTDIR/var/db/pkg - 的预编译包数据库中。 在撰写 port 时, 遵循 - DESTDIR 的配置十分重要。 + 的预编译包数据库中。 由于 DESTDIR 是由 + ports 框架藉由 &man.chroot.8; 来实现的, 您在撰写符合 + DESTDIR 规范的 ports 时并不需要什么额外的工作。 一般而言 PREFIX 会设为 LOCALBASE_REL (默认是 /usr/local)。 如果设置了 USE_X_PREFIXUSE_IMAKE, - 则 PREFIX 会设为 X11BASE_REL (默认是 - /usr/X11R6)。 如果设置了 + 则 PREFIX 会设为 X11BASE + (为了向前兼容, 这个变量的默认值是 LOCALBASE, + 未来它将被删除)。 如果设置了 USE_LINUX_PREFIX, 则 PREFIX 会设为 LINUXBASE_REL (默认是 /compat/linux)。 @@ -8435,47 +8453,6 @@ as .putsy.conf and edit it. -DPAGER=\"/usr/local/bin/less\"。 这种方法能够增加在系统管理员把整个 /usr/local 目录挪到其它位置时安装成功的机会。 - - 请注意 LOCALBASE、 - LINUXBASEX11BASE、 - DOCSDIREXAMPLESDIR、 - DATADIR 以及 DESKTOPDIR - 这些变量中已经包含了 DESTDIR。 使用 - DESTDIR LOCALBASE - 是错误的。 在您需要相对于 DESTDIR 的路径时, - 应使用 LOCALBASE_REL、 - LINUXBASE_RELX11BASE_REL。 - 为了使脚本撰写过程不过分地繁琐, 可以用 TARGETDIR - 来代替 DESTDIR PREFIX - - 以下是一些正确的用法: - - post-install: - ${INSTALL_PROGRAM} ${WRKSRC}/helper ${TARGETDIR}/bin/helper - ${INSTALL_DATA} ${WRKSRC}/guide.txt ${DOCSDIR} - - 在引用 port 的依赖关系时, 会用到 - LOCALBASE, 因为我们正在目标环境中进行工作。 - 如果必须在软件中将路径硬编码进去, - 则应使用 LOCALBASE_REL 的值, - 因为这些软件会在目标环境内使用。 - - 以下是一些正确的用法: - - RUN_DEPENDS= ${LOCALBASE}/share/gonzo/launch.dat:${PORTSDIR}/games/gonzo - -post-patch: - @${REINPLACE_CMD} -e 's|/usr/gonzo/launch.dat|${LOCALBASE_REL}/share/gonzo/launch.dat}' ${WRKSRC}/main.c - @${REINPLACE_CMD} -e 's|/etc/game.conf|${PREFIX}/etc/game.conf|' ${WRKSRC}/loader.c - -post-install: - @${INSTALL_DATA} ${WRKSRC}/example/conf ${TARGETDIR}/etc/game.conf - - 在装箱单和 pkg-* 脚本中, - %%LOCALBASE%%%%LINUXBASE%% - 和 %%X11BASE%% 在扩展时, - 会自动剔除 DESTDIR, - 因为这些文件都会在目标环境中使用。
@@ -8548,7 +8525,7 @@ post-install: 而这正是最需要志愿人员的领域。 (要了解关于维护者的任务描述, 请参见 - Makefile 中的 MAINTAINER 小节)。 + 开发手册中的相关部分。) 将 diff 发送给我们的最佳方式是通过 &man.send-pr.1; (category 一栏写 ports)。 如果您正维护那个 port, @@ -10561,6 +10538,11 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 支持之后的 6.1-STABLE。 601104 + + 由于 802.11 修正变动了 IEEE80211_IOC_STA_INFO ioctl API + 之后的 6.1-STABLE。 + 601104 + 6.2-RELEASE 602000 @@ -10610,6 +10592,20 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 MFC 了 readline 5.2 patchset 002 之后的 6.2-STABLE。 602109 + + MFC 了用于 amd64 和 i386 的 pmap_invalidate_cache()、 + pmap_change_attr()、 pmap_mapbios()、 pmap_mapdev_attr()、 + and pmap_unmapbios() 之后的 6.2-STABLE。 + 602110 + + + 由于 MFC 了 BOP_BDFLUSH 导致文件系统模块 KBI + 变化之后的 6.2-STABLE。 + 602111 + + 一系列 libutil(3) MFC 之后的 6.2-STABLE。 + 602112 + 7.0-CURRENT。 700000 @@ -10620,7 +10616,7 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 700001 - 为 dev_clone 处理出口函数中增加身份信息参数之后的 + 为 dev_clone 事件处理函数中增加身份信息参数之后的 7.0-CURRENT。 700002 @@ -10772,7 +10768,7 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 修改了 insmntque()、 - getnewvnode() 以及 vfs_hash_insert() 工作方式之后的 7.0-CURRENT。 + getnewvnode() 以及 vfs_hash_insert() 工作方式之后的 7.0-CURRENT。 700034 @@ -10787,9 +10783,85 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 新增了实现 Linux SCSI SG 直通设备 API 子集的 CAM 'SG' - 设备之后的 7.0-CURRENT。 + 设备之后的 7.0-CURRENT。 700037 + + 将 &man.getenv.3;、 &man.putenv.3;、 + &man.setenv.3; 和 &man.unsetenv.3; 改为符合 POSIX + 之后的 7.0-CURRENT。 + 700038 + + + 回退了 700038 中的变动之后的 7.0-CURRENT。 + 700039 + + + 在 libutil 中增加了 &man.flopen.3; 之后的 7.0-CURRENT。 + 700040 + + + 启用了符号版本, 并将 libthr 改为默认线程库之后的 7.0-CURRENT。 + 700041 + + + 引入了 gcc 4.2.0 之后的 7.0-CURRENT。 + 700042 + + + 将 RELENG_6 之后未修改过版本的共享库版本增加之后的 7.0-CURRENT。 + 700043 + + + 将 vn_open()/VOP_OPEN() 的参数由文件描述符数组下标改为 + struct file * 之后的 7.0-CURRENT。 + 700044 + + + 修改 &man.pam.nologin.8; 使其向 PAM + 框架提供帐号管理功能而非身份验证功能之后的 7.0-CURRENT。 + 700045 + + + 更新 802.11 无线支持之后的 7.0-CURRENT。 + 700046 + + + 增加 TCP LRO 网络接口能力之后的 7.0-CURRENT。 + 700047 + + + 在 IPv4 协议栈中加入了 RFC 3678 API 支持之后的 7.0-CURRENT。 + 先前 IP_MULTICAST_IF ioctl 的 RFC 1724 行为被删去; + 0.0.0.0/8 不再能够用于指定接口索引下标, 而应使用 + struct ipmreqn 代替。 + 700048 + + + 引入 OpenBSD + 4.1 的 pf 之后的 7.0-CURRENT。 + 700049 + + + 为 + FAST_IPSEC 增加 IPv6 支持, 删去 KAME IPSEC, 并将 + FAST_IPSEC 更名为 IPSEC 之后的 7.0-CURRENT。 + (未变动) + + + 将 setenv/putenv/等等调用, + 从传统 BSD 改为 POSIX 标准之后的 7.0-CURRENT。 + 700050 + + + 增加新的 mmap/lseek/等等这些系统调用之后的 7.0-CURRENT。 + 700051 + + + 将 I4B 头文件移动到 + include/i4b 之后的 7.0-CURRENT。 + 700052 + -- cgit v1.2.3