diff --git a/zh_CN.GB2312/books/porters-handbook/Makefile b/zh_CN.GB2312/books/porters-handbook/Makefile index 33ac3f1306..9eccfb3749 100644 --- a/zh_CN.GB2312/books/porters-handbook/Makefile +++ b/zh_CN.GB2312/books/porters-handbook/Makefile @@ -1,7 +1,8 @@ # # The FreeBSD Simplified Chinese Project # -# Original Revision: 1.7 +# Original Revision: 1.9 +# # $FreeBSD$ # # Build the FreeBSD Porter's Handbook. @@ -39,6 +40,17 @@ IMAGES_LIB+= callouts/7.png IMAGES_LIB+= callouts/8.png IMAGES_LIB+= callouts/9.png IMAGES_LIB+= callouts/10.png +IMAGES_LIB+= callouts/11.png +IMAGES_LIB+= callouts/12.png +IMAGES_LIB+= callouts/13.png +IMAGES_LIB+= callouts/14.png +IMAGES_LIB+= callouts/15.png +IMAGES_LIB+= callouts/16.png +IMAGES_LIB+= callouts/17.png +IMAGES_LIB+= callouts/18.png +IMAGES_LIB+= callouts/19.png +IMAGES_LIB+= callouts/20.png +IMAGES_LIB+= callouts/21.png URL_RELPREFIX?= ../../../.. DOC_PREFIX?= ${.CURDIR}/../../.. diff --git a/zh_CN.GB2312/books/porters-handbook/book.sgml b/zh_CN.GB2312/books/porters-handbook/book.sgml index e6ead99581..642e327440 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.1092 + Original Revision: 1.1117 $FreeBSD$ --> @@ -33,6 +33,7 @@ 2008 2009 2010 + 2011 The FreeBSD Documentation Project @@ -51,6 +52,7 @@ 2008 2009 2010 + 2011 &cnproj.freebsd.org; @@ -1058,15 +1060,24 @@ PORTEPOCH= 1 <makevar>LATEST_LINK</makevar> + LATEST_LINK 在编译包的过程中用于确定可以为 + pkg_add -r 使用的缩短的名字。 举例来说, + 在安装最新版本的 perl 的时候, 只需指定 + pkg_add -r perl 而无需知道具体的版本号。 + 这个名字应该是独一无二的, 并且对用户而言应该是显而易见的名字。 + 有时, 在 ports 套件中可能会存在同一程序的多个版本。 索引和预编译包的联编系统都需要能够将它们视为不同的软件包, 尽管其 PORTNAMEPKGNAMEPREFIX, 以及 even PKGNAMESUFFIX 可能是一模一样的。 遇到这种情况时, 就需要将除了 port 之外的其他 port 中的 LATEST_LINK 变量设为不同的值 - — 请参见 editors/vim5 和 - editors/vim port, 以及 + — 请参见 lang/gcc46 和 + lang/gcc port, 以及 www/apache* 系列, 以了解它的用法。 + 如果设置了 NO_LATEST_LINK, + 则系统便不会生成对应的连接, 对于非 + port 来说是一个可行的选择。 需要注意的是, 如何确定 版本 — 最流行受支持最好变动最少, 等等 — 已经超过了本书能够给出的建议范围; @@ -1167,13 +1178,15 @@ PORTEPOCH= 1 这个方法是为了更容易得凭版本号来排序 port。 特别注意的是, 确保版本号之间的每部分都由小数点来分隔, 如果日期也是版本号的一部分, 就用这样的格式, - yyyy.mm.dd - 或者 - dd.mm.yyyy + 0.0.yyyy.mm.dd 这样的格式, 而非 - yy.mm.dd, - 因为后者不适合表示千年的格式。 - + dd.mm.yyyy + 甚至 + yy.mm.dd + 这种不适合表示千年的格式。 在版本号上使用 + 0.0. 前缀十分重要, 因为当软件发行正式的版本时, + 其版本号数字很可能会小于表示年份的 + yyyy 数字。 @@ -1315,7 +1328,7 @@ PORTEPOCH= 1 就应把版本号设成 1.0 (就像前面 piewm 的例子那样)。 否则, 要求原始的作者加上版本号或使用日期 - (yyyy.mm.dd) + (0.0.yyyy.mm.dd) 来作为版本号。 @@ -1659,7 +1672,7 @@ PORTEPOCH= 1 - mbone + mbone* MBone 应用程序。 @@ -1978,7 +1991,7 @@ PORTEPOCH= 1 editors, 而不是其它的什么。 同样地, 您不应该列出 net, 如果 port 属于 ircmail、 - mbonenews、 + newssecurity, 或是 www, 因为 net 可以表示它们的超集。 @@ -3151,7 +3164,7 @@ ALWAYS_KEEP_DISTFILES= yes Makefile 中的 COMMENT 变量应该紧接着 MAINTAINER 变量出现。 - 请务必将 COMMENT 这行限制在 60 个字符之内, + 请务必将 COMMENT 这行限制在不超过 70 个字符之内, 因为这行内容会成为 &man.pkg.info.1; 呈现给用户的 port 的一句话简介。 @@ -4313,7 +4326,7 @@ PORTVERSION= 1.0 来避免 (参见 lang/moscow_ml 给出的例子), 或者用一个 shell 封装程序来在执行可执行文件之前设置 LD_LIBRARY_PATH, 类似 - www/mozilla 那样。 + www/seamonkey 那样。 当在 64-位系统上安装 32-位 的函数库时, 请使用 USE_LDCONFIG32 @@ -4466,7 +4479,7 @@ PORTVERSION= 1.0 USE_GMAKE=yes。 - 用于与 gmake 有关的 port 的变量 + 与 <application>gmake</application> 有关的 port 变量 @@ -4545,7 +4558,7 @@ PORTVERSION= 1.0
- 用于用到了 configure 脚本的 port 的变量 + 用于用到了 <command>configure</command> 脚本的 port 的变量 @@ -5865,8 +5878,8 @@ QT_COMPONENTS= qmake_build moc_build rcc_build uic_buildJAVA_VERSION用空格分开的适合 port 使用的 Java 版本。 可选的 "+" 可以用于指定某个范围的版本 (可以用: - 1.1[+] 1.2[+] 1.3[+] 1.4[+] 1.5[+] - 1.6[+])。 + 1.5[+] 1.6[+] 1.7[+] + )。 @@ -5878,8 +5891,8 @@ QT_COMPONENTS= qmake_build moc_build rcc_build uic_build JAVA_VENDOR 用空格分开的适应 port 的 JDK port 供应商 - (可以用: freebsd bsdjava sun ibm - blackdown)。 + (可以用: freebsd bsdjava sun + openjdk)。 @@ -5896,22 +5909,6 @@ QT_COMPONENTS= qmake_build moc_build rcc_build uic_build JAVA_EXTRACT 设置这个变量表示所选的 JDK port 应被列入 port 的解压缩支持依赖关系。 - - - USE_JIKES - port 是否应使用 - jikes bytecode 编译器进行联编。 - 如果没有设置, 则 port 将在 - jikes 可用的情况下在联编时使用它。 - 您也可以明确地禁止使用或要求使用 - jikes (通过将这个变量设置为 'no' - 或 'yes')。 后一种情形中, devel/jikes 将加入 port 的联编依赖关系。 - 任何情况下, 如果 jikes - 被作为 javac 使用, 则 - bsd.java.mk 会定义 - HAVE_JIKES 变量。 -
@@ -5933,32 +5930,32 @@ QT_COMPONENTS= qmake_build moc_build rcc_build uic_build JAVA_PORT JDK port 的名字 (例如 - 'java/jdk14')。 + 'java/diablo-jdk16')。 JAVA_PORT_VERSION JDK port 的完整版本 (例如 - '1.4.2')。 如果您只需要版本号的前两位, 则可用 + '1.6.0')。 如果您只需要版本号的前两位, 则可用 ${JAVA_PORT_VERSION:C/^([0-9])\.([0-9])(.*)$/\1.\2/} JAVA_PORT_OS 所用 JDK port 的操作系统 (例如 - 'linux')。 + 'native')。 JAVA_PORT_VENDOR 所用 JDK port 的供应商 (例如 - 'sun')。 + 'freebsd')。 JAVA_PORT_OS_DESCRIPTION 所用 JDK port 操作系统的描述 - (例如 'Linux')。 + (例如 'Native')。 @@ -5970,34 +5967,34 @@ QT_COMPONENTS= qmake_build moc_build rcc_build uic_build JAVA_HOME JDK 的安装目录 (例如 - '/usr/local/jdk1.3.1')。 + '/usr/local/diablo-jdk1.6.0')。 JAVAC 所用 Java 编译器的完整路径 (例如 - '/usr/local/jdk1.3.1/bin/javac' 或 - '/usr/local/bin/jikes')。 + '/usr/local/diablo-jdk1.6.0/bin/javac')。 + JAR 所用 jar 工具的完整路径 (例如 - '/usr/local/jdk1.3.1/bin/jar' 或 + '/usr/local/diablo-jdk1.6.0/bin/jar''/usr/local/bin/fastjar')。 APPLETVIEWER 所用 appletviewer 工具的完整路径 (例如 - '/usr/local/linux-jdk1.3.1/bin/appletviewer')。 + '/usr/local/diablo-jdk1.6.0/bin/appletviewer')。 JAVA 所用 java 执行文件的完整路径。 您应使用它来执行 Java 程序 (例如 - '/usr/local/jdk1.3.1/bin/java')。 + '/usr/local/diablo-jdk1.6.0/bin/java')。 @@ -6057,12 +6054,6 @@ QT_COMPONENTS= qmake_build moc_build rcc_build uic_build 所用 JDK 类文件目录的完整路径。 ${JAVA_HOME}/jre/lib/rt.jar - - - HAVE_JIKES - jikes 是否将被应用于 port - 的联编过程而定 (参见前述 USE_JIKES)。 - @@ -6124,10 +6115,6 @@ QT_COMPONENTS= qmake_build moc_build rcc_build uic_build 的设置执行 Ant。 这类似于 中介绍的关于 USE_GMAKE 的机制。 - jikes 被作为 - javac 使用 (参见 中的 - USE_JIKES), 则 Ant 会自动将其用于 port 的联编过程。 - @@ -8154,6 +8141,86 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" USE_XFCE= mcsmanager configenv + + 使用 Mozilla + + + 用到 Mozilla 的 port 使用的变量 + + + + + + USE_GECKO + + port 支持的 Gecko 后端。 可选值: + libxul (libxul.so)、 + seamonkey (libgtkembedmoz.so, + 过时, 新 port 应避免使用)。 + + + USE_FIREFOX + + port 需要使用 Firefox 作为运行环境依赖。 + 可选值: + yes (使用默认版本)、 + 4036、 + 35。 + 默认的依赖采用的是版本 + 40 + + + USE_FIREFOX_BUILD + + port 需要使用 Firefox 作为联编环境依赖。 + 可选值: 参见 USE_FIREFOX。 + 这个变量会自动设置 USE_FIREFOX 使用相同的值。 + + + USE_SEAMONKEY + + port 需要使用 SeaMonkey 作为运行环境依赖。 + 可选值: + yes (使用默认版本)、 + 2011 + (过时, 新 port 应避免使用)。 + 默认的依赖采用的是版本 + 20 + + + USE_SEAMONKEY_BUILD + + port 需要使用 SeaMonkey 作为联编环境依赖。 + 可选值: 参见 USE_SEAMONKEY。 + 这个变量会自动设置 USE_SEAMONKEY 使用相同的值。 + + + USE_THUNDERBIRD + + port 需要使用 Thunderbird 作为运行环境依赖。 + 可选值: + yes (使用默认版本)、 + 3130 + (过时, 新 port 应避免使用)。 + 默认的依赖采用的是版本 + 31 + + + USE_THUNDERBIRD_BUILD + + port 需要使用 Thunderbird 作为联编环境依赖。 + 可选值: 参见 USE_THUNDERBIRD。 + 这个变量会自动设置 USE_THUNDERBIRD 使用相同的值。 + + + + +
+ 可用变量的完整列表, 请参阅 + /usr/ports/Mk/bsd.gecko.mk +
+ + 使用数据库 @@ -8175,8 +8242,8 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" 如果这个变量为 yes, 则把 databases/db41 - 列为依赖关系。 这个变量还可以被设置成的值有: 2,3,40,41, - 42,43,45,46 或者 47。你可以声明可接受值的范围, + 列为依赖关系。 这个变量还可以被设置成的值有: 40,41, + 42、 43、 44、 46、 47、 48 或 51。 您可以声明可接受值的范围, USE_BDB=42+ 将寻找已安装的最高版本, 如果没有找到则退回到 42。
@@ -8185,9 +8252,9 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" USE_MYSQL 如果这个变量为 yes, - 则把 databases/mysql50-server + 则把 databases/mysql55-server 列为依赖关系。还有一个相关的变量,WANT_MYSQL_VER, - 可以设置的值有 323,40,41,50,51 或者 60。 + 可以设置的值有 323,40,41,50,51, 52, 55 或者 60。 @@ -8196,13 +8263,17 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" 如果设置成 yes,则把 databases/postgresql82 列为依赖关系。还有一个相关的变量,WANT_PGSQL_VER, - 可以设置的值有 73,74,80,81,82 或 83。 + 可以设置的值有 73,74,80,81,82, 83 或 90。 + 更多详情请参阅 + + bsd.database.mk + @@ -8349,9 +8420,7 @@ GROUPS= pulse pulse-access pulse-rt 某些 ports (例如可加载式内核模块) 需要内核的源文件才能编译。 下面是检测用户是否安装了源代码的例子: - SRC_BASE?= /usr/src - -.if !exists(${SRC_BASE}/sys/Makefile) + .if !exists(${SRC_BASE}/sys/Makefile) IGNORE= requires kernel sources to be installed .endif @@ -8568,13 +8637,13 @@ etc/orbit.conf.sample 接下来, 建立一个用于安装您的 port 的临时目录, 并在其中安装它所依赖的所有其他软件包: - &prompt.root; mkdir /var/tmp/$(make -V PORTNAME) -&prompt.root; mtree -U -f $(make -V MTREE_FILE) -d -e -p /var/tmp/$(make -V PORTNAME) -&prompt.root; make depends PREFIX=/var/tmp/$(make -V PORTNAME) + &prompt.root; mkdir /var/tmp/`make -V PORTNAME` +&prompt.root; mtree -U -f `make -V MTREE_FILE` -d -e -p /var/tmp/`make -V PORTNAME` +&prompt.root; make depends PREFIX=/var/tmp/`make -V PORTNAME` 将目录结构保存到一新文件中。 - &prompt.root; (cd /var/tmp/$(make -V PORTNAME) && find -d * -type d) | sort > OLD-DIRS + &prompt.root; (cd /var/tmp/`make -V PORTNAME` && find -d * -type d) | sort > OLD-DIRS 建立一空白 pkg-plist 文件: @@ -8583,12 +8652,12 @@ etc/orbit.conf.sample 如果您的 port 遵循 PREFIX (应该如此) 则接下来应安装该 port 并创建装箱单。 - &prompt.root; make install PREFIX=/var/tmp/$(make -V PORTNAME) -&prompt.root; (cd /var/tmp/$(make -V PORTNAME) && find -d * \! -type d) | sort > pkg-plist + &prompt.root; make install PREFIX=/var/tmp/`make -V PORTNAME` +&prompt.root; (cd /var/tmp/`make -V PORTNAME` && find -d * \! -type d) | sort > pkg-plist 此外还应把新建立的目录加入装箱单。 - &prompt.root; (cd /var/tmp/$(make -V PORTNAME) && find -d * -type d) | sort | comm -13 OLD-DIRS - | sort -r | sed -e 's#^#@dirrm #' >> pkg-plist + &prompt.root; (cd /var/tmp/`make -V PORTNAME` && find -d * -type d) | sort | comm -13 OLD-DIRS - | sort -r | sed -e 's#^#@dirrm #' >> pkg-plist 最后需要手工整理 packing list; 这一过程不是 完全 自动的。 联机手册应列入 port @@ -8615,12 +8684,12 @@ etc/orbit.conf.sample make depends。 然后联编和安装 port: - &prompt.root; make install PREFIX=/var/tmp/$(make -V PORTNAME) + &prompt.root; make install PREFIX=/var/tmp/`make -V PORTNAME` 然后让 plist 生成 pkg-plist 文件: - &prompt.root; /usr/ports/Tools/scripts/plist -Md -m $(make -V MTREE_FILE) /var/tmp/$(make -V PORTNAME) > pkg-plist + &prompt.root; /usr/ports/Tools/scripts/plist -Md -m `make -V MTREE_FILE` /var/tmp/`make -V PORTNAME` > pkg-plist 与前面类似, 如此生成的装箱单也需要手工进行一些清理工作。 @@ -8949,7 +9018,7 @@ as .putsy.conf and edit it. /usr/local 而不是正确的 PREFIX 中安装文件。 简单的测试方法是: - &prompt.root; make clean; make package PREFIX=/var/tmp/$(make -V PORTNAME) + &prompt.root; make clean; make package PREFIX=/var/tmp/`make -V PORTNAME` 如果有文件安装到了 PREFIX 以外的地方, 打包过程将抱怨找不到这些文件。 @@ -8957,7 +9026,7 @@ as .putsy.conf and edit it. 这一步骤并不能帮助发现内部引用, 或纠正在引用其它 port 中的文件时使用的 LOCALBASE。 您需要在 - /var/tmp/$(make -V PORTNAME) + /var/tmp/`make -V PORTNAME` 中测试安装好的软件, 才能够达到这样的目的。 您可以在自己的 Makefile 中改变 @@ -9040,7 +9109,8 @@ as .putsy.conf and edit it. &prompt.user; /usr/bin/diff something.orig something > something.diff - 还有一种办法是将目录整个复制到另一个目录, + 如果不是这样的话, 则您应使用 cvs diff + 的方法 (), 或将目录整个复制到另一个目录, 并使用 &man.diff.1; 比较两个目录时在目录中递归产生的输出结果 (例如, 如果您修改后的 port 目录的名字是 superedit 而原始文件的目录是 @@ -9097,6 +9167,121 @@ as .putsy.conf and edit it. 现在您已经了解了所需的所有操作, 您可能会像要阅读在 中关于如何保持最新的描述。 + + 使用 CVS 制作补丁 + + 如果可能的话, 请提交&man.cvs.1; diff; + 这种情形要比直接比较 新、旧 目录要容易处理。 + 此外, 这种方法也让您更容易看出到底改了什么, + 并在其他人更新了 Ports Collection 时容易合并这些改动, + 在提交之前, 这可以减少维护补丁所需的工作。 + + &prompt.user; cd ~/my_wrkdir +&prompt.user; cvs -d R_CVSROOT co pdnsd +&prompt.user; cd ~/my_wrkdir/pdnsd + + + + 当然, 这可以是您指定的任意目录; + 联编 port 并不局限于 + /usr/ports/ + 的子目录。 + + + + R_CVSROOT 是任何一个公共的 cvs 镜像服务器, 您可以在 &os; 使用手册 + 中挑选一个。 + + + + pdnsd 是 port 的模块名字; 通常说来它和 port 的名字一样, + 不过也有些例外, 特别是那些本地化类别 (german/selfhtml + 对应的模块名字是 de-selfhtml); 您可以通过 cvsweb 界面 + 查询, 或者也可以指定完整路径, 例如在我们这个例子中是 + ports/dns/pdnsd + + + + 在工作目录中, 您可以像往常一样进行任何更改。 + 如果您添加或删除了文件, 则需要告诉 + cvs 来追踪这些改动: + + &prompt.user; cvs add new_file +&prompt.user; cvs remove deleted_file + + 请反复检查 列出的事项并使用 + 进行检查。 + + &prompt.user; cvs status +&prompt.user; cvs update + + + + 这会合并 CVS 中其他人做的改动和您的补丁; + 在这个过程中, 您需要仔细观察输出。 + 文件名前面的那个字母会显示做了什么, 请参阅 + 中给出的说明。 + + + + + cvs update 文件名前字母前缀的含义 + + + + + U + + 文件更新无误。 + + + + P + + 文件更新无误 (通常只有在使用远程代码库时才会看到)。 + + + + M + + 文件有本地修改, 并合并成功而未产生任何冲突。 + + + + C + + 文件有本地修改, 进行了合并并产生了冲突。 + + + +
+ + 如果您在执行 + cvs update 时某些文件出现了 C, + 则说明有其他人在 CVS 中做了修改, 而 &man.cvs.1; 无法将这些改动与您本地的改动进行合并。 + 不过, 无论如何, 最好都检查一下合并的结果, + 因为 cvs 并不知道 port 应该是什么样子, + 因此它所做的合并无论是否产生了冲突, + 都有可能 (并且并不罕见) 产生没有意义的结果。 + + 最后一步是以 CVS 中的文件为基础生成 unified &man.diff.1;: + + &prompt.user; cvs diff -uN > ../`basename ${PWD}`.diff + + + 指定 十分重要, + 因为它确保了添加或删除的文件也出现在补丁中。 + 补丁将包含删除的文件, 在打上补丁时, + 这些文件会被清空, 所以最好在 PR 中提醒 committer + 删除它们。 + + + 根据 的指导提交您的补丁。 +
+ UPDATING 和 MOVED 文件 @@ -9206,13 +9391,13 @@ as .putsy.conf and edit it. 如果您是 committer, 则可以自行更新 VuXML 数据库。 这样, 您就能够同时帮助安全官团队, 并尽早将至关重要的信息传达给用户群体。 然而, 如果您不是 committer, - 或者您相信自己发现了一个异常严重的漏洞, 或者由于其它情况, - 请不要由于按照 FreeBSD 安全信息 页面上的方法联系安全官团队。 - 现在您选择了一条艰难的路。 正如其名称所暗示的那样, VuXML - 数据库本质上是一个 XML 文档。 其源文件 vuln.xml + 正如其名称所暗示的那样, VuXML + 数据库是一个 XML 文档。 其源文件 vuln.xml 被保存在 security/vuxml port 的目录中。 所以, 它的全名是 @@ -9296,11 +9481,7 @@ as .putsy.conf and edit it. 用于为此记录 (它包含的部分) 指定一个全局唯一标识符 (UUID)。 您应为每一个新的 vuXML 生成新的 UUID (而且别忘了要把模板中的 UUID 换成新的, 如果您不是从头开始的话)。 您可以使用 &man.uuidgen.1; - 来生成 VuXML UUID; 另外, 如果您使用的是 FreeBSD 4.x - 版本, 也可以用 devel/p5-Data-UUID 并执行: - - perl -MData::UUID -le 'print lc new Data::UUID->create_str' + 来生成 VuXML UUID。 @@ -9482,9 +9663,29 @@ as .putsy.conf and edit it. package clamav 的问题描述, 并且, 已经知道 0.65_7 版本修正了这个问题。
- 您需要做的准备工作, 是安装一个新版本的 - ports ports-mgmt/portaudit 程序以及 - ports-mgmt/portaudit-db + 您需要做的准备工作, 是 安装 一个新版本的 + ports ports-mgmt/portaudit 程序、 + ports-mgmt/portaudit-db, 以及 + security/vuxml + + + 要运行 packaudit, + 您必须拥有其 + DATABASEDIR, + 通常是 /var/db/portaudit + 的写入权限。 + + 您可以通过 + DATABASEDIR + 环境变量来指定一个不同的位置。 + + 如果您的工作目录是 + ${PORTSDIR}/security/vuxml + 以外的其它地方, 则应使用环境变量 + VUXMLDIR + 来指明 + vuln.xml 的位置。 + 首先, 检查一下是否已经有了关于这个漏洞的描述。 如果已经有过这样的记录, 那么它将匹配较早版本的 package, @@ -9493,12 +9694,6 @@ as .putsy.conf and edit it. &prompt.user; packaudit &prompt.user; portaudit clamav-0.65_6 - - 要运行 packaudit, 您必须拥有写入 - DATABASEDIR 目录, - 通常是 /var/db/portaudit 的权限。 - - 如果什么都没有发现, 您就可以考虑写一个新的记录来描述这个漏洞了。 现在可以生成一个新的 UUID (假设它是 74a9541d-5d6c-11d8-80e3-0020ed76ef5a), @@ -12537,7 +12732,8 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 800038 May 26, 2008 删去了 netatm 和 - ISDN4BSD 后的 8.0-CURRENT。 + ISDN4BSD 后的 8.0-CURRENT。 这个版本也表示增加了 + Compact C Type (CTF) 工具。 800039 @@ -13018,6 +13214,57 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 December 22, 2010 8.2-RELEASE 之后的 8.2-STABLE。 + + 802501 + February 28, 2011 + 合并了 DTrace 变动, 包含用户态跟踪支持之后的 8.2-STABLE。 + + + 802502 + March 6, 2011 + 在 libm 中合并了 log2 和 log2f 之后的 8.2-STABLE。 + + + 802503 + May 1, 2011 + 将 gcc 升级至 FSF gcc-4_2-branch 最后一个 + GPLv2 版本之后的 8.2-STABLE。 + + + 802504 + May 28, 2011 + 引入模块化拥塞控制支持基础设施和 KPI 之后的 8.2-STABLE。 + + + 802505 + May 28, 2011 + 引入了 Hhook 和 Khelp KPI 之后的 8.2-STABLE。 + + + 802506 + May 28, 2011 + 在 tcpcb 结构中增加 OSD 之后的 8.2-STABLE。 + + + 802507 + June 6, 2011 + 引入 ZFS v28 之后的 8.2-STABLE。 + + + 802508 + June 8, 2011 + 删去了 sv_schedtail struct sysvec 方法之后的 8.2-STABLE。 + + + 802509 + July 14, 2011 + 在 binutils 中合并了 SSE3 支持之后的 8.2-STABLE。 + + + 802510 + July 19, 2011 + rfork(2) 添加了 RFTSIGZMB 标志之后的 8.2-STABLE。 + 900000 August 22, 2009 @@ -13178,6 +13425,76 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 December 5, 2010 在 libm 中增加 log2 之后的 9.0-CURRENT。 + + 900028 + December 21, 2010 + 添加了 Hhook (Helper + Hook)、 Khelp (Kernel Helpers) 和 Object Specific Data + (OSD) KPI 之后的 9.0-CURRENT。 + + + 900029 + December 28, 2010 + 修改 TCP 协议栈使其允许 Khelp 模块通过 helper hook 指针, + 与 TCP 控制块交互并保存连接数据之后的 9.0-CURRENT。 + + + 900030 + January 12, 2011 + 将 libdialog 更新至版本 20100428 之后的 9.0-CURRENT。 + + + 900031 + February 7, 2011 + 添加了 pthread_getthreadid_np(3) 之后的 9.0-CURRENT。 + + + 900032 + February 8, 2011 + 删除了 uio_yield 函数原型和符号之后的 9.0-CURRENT。 + + + 900033 + February 18, 2011 + 将 binutils 更新至 2.17.50 之后的 9.0-CURRENT。 + + 900034 + March 8, 2011 + 修改了 struct sysvec (sv_schedtail) 之后的 9.0-CURRENT。 + + + 900035 + March 29, 2011 + 将基本系统中 gcc 和 + libstdc++ 升级至最后的 GPLv2 授权版本之后的 9.0-CURRENT。 + + + 900036 + April 18, 2011 + 在基本系统中删去了 libobjc 和 Objective-C 支持之后的 9.0-CURRENT。 + + + 900037 + May 13, 2011 + 在基本系统中引入了 libprocstat(3) + 函数库以及 fuser(1) 工具之后的 9.0-CURRENT。 + + + 900038 + May 22, 2011 + 为 VFS_FHTOVP(9) 添加锁标志参数之后的 9.0-CURRENT。 + + + 900039 + June 28, 2011 + 引入了来自 OpenBSD 4.5 的 pf 之后的 9.0-CURRENT。 + + + 900041 + August 13, 2011 + 实现了 Capsicum + capabilities 之后的 9.0-CURRENT。 fget(9) 新增了权限参数。 +