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