MFen 1.594 -> 1.603
Obtained from: The FreeBSD Simplified Chinese Project CVS
This commit is contained in:
parent
294bade795
commit
51ad97a125
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=25493
1 changed files with 99 additions and 207 deletions
|
@ -2,7 +2,7 @@
|
|||
The FreeBSD Documentation Project
|
||||
The FreeBSD Simplified Chinese Project
|
||||
|
||||
Original Revision: 1.594
|
||||
Original Revision: 1.603
|
||||
$FreeBSD$
|
||||
-->
|
||||
|
||||
|
@ -177,14 +177,16 @@ asami@cs.berkeley.edu</programlisting>
|
|||
<sect2>
|
||||
<title><filename>pkg-plist</filename> (port 的装箱单)</title>
|
||||
|
||||
<para>这份文件列出了 port 安装的所有文件。
|
||||
之所以也被称为 装箱单 (“packing list”) 是因为 package
|
||||
的制作就是将这份列表里的文件打包。
|
||||
<para>这份文件列出了 port 所要安装的所有文件。 由于 package
|
||||
也是据此进行打包, 因此它也被称作 <quote>装箱单(packing list)</quote>.
|
||||
这个文件中, 路径是相对于安装的路径的 (通常是
|
||||
<filename>/usr/local</filename> 或
|
||||
<filename>/usr/X11R6</filename>)。 如果您使用
|
||||
<makevar>MAN<replaceable>n</replaceable></makevar>
|
||||
变量的话, 请不要在这里列出任何联机手册。</para>
|
||||
变量的话, 请不要在这里列出任何联机手册。 假如 port
|
||||
在安装过程中会创建一些目录, 请务必增加对应的
|
||||
<literal>@dirrm</literal> 行,
|
||||
以便在 package 被卸载时予以自动删除。</para>
|
||||
|
||||
<para>下面是一个简单的例子:</para>
|
||||
|
||||
|
@ -198,15 +200,12 @@ lib/X11/oneko/mouse.xpm
|
|||
<para>参考 &man.pkg.create.1; 的联机手册以获得更多有关装箱单的细节</para>
|
||||
|
||||
<note>
|
||||
<para>您应该在列表里列出所有的文件而不仅仅是目录名。
|
||||
如果这个 port 在安装的过程中给自己创建了目录,
|
||||
则一定要加入 <literal>@dirrm</literal> 以便在删除这个
|
||||
port 时能将这些目录也一并删除。</para>
|
||||
|
||||
<para>建议您将这个文件里的所有的文件名按字母排序。
|
||||
这样, 在升级这个port的时候就能够更方便地核实所做的修改。</para>
|
||||
</note>
|
||||
|
||||
<para>手工创建一份这样的文件列表将会是一件非常枯燥的事情。
|
||||
<note>
|
||||
<para>手工创建一份这样的文件列表是一件非常枯燥的事情。
|
||||
如果 port 要安装非常多的文件的话, 请参考 <link
|
||||
linkend="porting-autoplist">自动创建这个文件列表</link>
|
||||
一节, 会帮您省下不少时间。</para>
|
||||
|
@ -1591,7 +1590,7 @@ PORTEPOCH= 1</programlisting>
|
|||
|
||||
<row>
|
||||
<entry><filename>offix*</filename></entry>
|
||||
<entry><ulink url="http://leb.net/OffiX/">OffiX</ulink> 相关套件。</entry>
|
||||
<entry><ulink url="http://leb.net/offix/">OffiX</ulink> 相关的套件。</entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
|
||||
|
@ -1662,6 +1661,12 @@ PORTEPOCH= 1</programlisting>
|
|||
<entry></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>scheme*</filename></entry>
|
||||
<entry>与 Scheme 语言有关的 port。</entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>science</filename></entry>
|
||||
<entry>科学相关但不适合放在
|
||||
|
@ -1689,12 +1694,6 @@ PORTEPOCH= 1</programlisting>
|
|||
<entry></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>tcl76*</filename></entry>
|
||||
<entry>依赖于 Tcl 7.6 版运行的 port。</entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>tcl80*</filename></entry>
|
||||
<entry>依赖于 Tcl 8.0 版运行的 port。</entry>
|
||||
|
@ -1719,6 +1718,12 @@ PORTEPOCH= 1</programlisting>
|
|||
<entry></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>tcl84*</filename></entry>
|
||||
<entry>需要依赖 Tcl 8.4 版运行的 port。</entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>textproc</filename></entry>
|
||||
<entry>文本处理的实用程序。</entry>
|
||||
|
@ -1726,24 +1731,12 @@ PORTEPOCH= 1</programlisting>
|
|||
<filename>print</filename> 的桌面出版工具。</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>tk42*</filename></entry>
|
||||
<entry>依赖于 Tk 4.2 版运行的 port。</entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>tk80*</filename></entry>
|
||||
<entry>依赖于 Tk 8.0 版运行的 port。</entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>tk81*</filename></entry>
|
||||
<entry>依赖于 Tk 8.1 版运行的 port。</entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>tk82*</filename></entry>
|
||||
<entry>依赖于 Tk 8.2 版运行的 port。</entry>
|
||||
|
@ -1756,6 +1749,12 @@ PORTEPOCH= 1</programlisting>
|
|||
<entry></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>tk84*</filename></entry>
|
||||
<entry>依赖于 Tk 8.4 版运行的 port。</entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>tkstep80*</filename></entry>
|
||||
<entry>需要 TkSTEP 8.0 来运行的 port。</entry>
|
||||
|
@ -1824,6 +1823,12 @@ PORTEPOCH= 1</programlisting>
|
|||
<entry></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>x11-themes</filename></entry>
|
||||
<entry>X11 主题。</entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>x11-toolkits</filename></entry>
|
||||
<entry>X11 工具包。</entry>
|
||||
|
@ -1836,6 +1841,14 @@ PORTEPOCH= 1</programlisting>
|
|||
<entry></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>xfce*</filename></entry>
|
||||
<entry>与
|
||||
<ulink url="http://www.xfce.org/">Xfce</ulink>
|
||||
桌面环境有关的 port。</entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>zope*</filename></entry>
|
||||
<entry><ulink url="http://www.zope.org/">Zope</ulink> 相关的支持。</entry>
|
||||
|
@ -4819,14 +4832,21 @@ _DOCSDIR= .
|
|||
<entry><makevar>USE_PYTHON</makevar></entry>
|
||||
|
||||
<entry>此 port 需要 Python。 可以用
|
||||
<literal>2.3+</literal> 这样的形式来指定所希望的版本。</entry>
|
||||
<literal>2.3+</literal> 这样的形式来指定所希望的版本。
|
||||
除此之外, 也可以用横线来分隔两个版本号,
|
||||
以表示某个范围的版本, 例如: <literal>2.1-2.3</literal></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><makevar>USE_PYDISTUTILS</makevar></entry>
|
||||
|
||||
<entry>使用 Python distutils 来完成配置、 编译和安装。 对包含
|
||||
<filename>setup.py</filename> 的 port 而言这是必需的。</entry>
|
||||
<filename>setup.py</filename> 的 port 而言这是必需的。
|
||||
它会自动覆盖默认的
|
||||
<maketarget>do-build</maketarget> 和
|
||||
<maketarget>do-install</maketarget> 两个 target。
|
||||
如果没有定义 <makevar>GNU_CONFIGURE</makevar>,
|
||||
也会覆盖 <maketarget>do-configure</maketarget> 行为。</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
|
@ -4839,11 +4859,26 @@ _DOCSDIR= .
|
|||
<row>
|
||||
<entry><makevar>PYTHON_SITELIBDIR</makevar></entry>
|
||||
|
||||
<entry>全站 package 所在的目录。 一般用于安装
|
||||
Python 模块。 如果可能, 尽量在
|
||||
<entry>全站 package 所在的目录, 它包括了 Python
|
||||
的安装目录 (通常是 <makevar>LOCALBASE</makevar>)。
|
||||
而 <makevar>PYTHON_SITELIBDIR</makevar> 变量,
|
||||
对于安装 Python 模块则非常有用。</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><makevar>PYTHONPREFIX_SITELIBDIR</makevar></entry>
|
||||
|
||||
<entry>去掉了 PREFIX 部分的 PYTHON_SITELIBDIR。 应尽量在
|
||||
<filename>pkg-plist</filename> 中使用
|
||||
<literal>%%PYTHON_SITELIBDIR%%</literal>。 默认值:
|
||||
<literal>lib/python2.4/site-packages</literal></entry>
|
||||
<literal>%%PYTHON_SITELIBDIR%%</literal> 变量。
|
||||
<literal>%%PYTHON_SITELIBDIR%%</literal> 默认为
|
||||
<literal>lib/python%%PYTHON_VERSION%%/site-packages</literal></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><makevar>PYTHON_CMD</makevar></entry>
|
||||
|
||||
<entry>Python 解释器的命令行, 包括版本号。</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
|
@ -4855,7 +4890,8 @@ _DOCSDIR= .
|
|||
<row>
|
||||
<entry><makevar>PYXML</makevar></entry>
|
||||
|
||||
<entry>将 XML 扩展模块加入依赖关系。</entry>
|
||||
<entry>将 XML 扩展模块加入依赖关系。 (对于
|
||||
Python 2.0 和更高版本不再需要, 因为它已经成为了标准组件)。</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
|
@ -5113,176 +5149,6 @@ USE_SDL+= mixer
|
|||
</sect1>
|
||||
</chapter>
|
||||
|
||||
<!--
|
||||
|
||||
<chapter>
|
||||
<title>ELF support</title>
|
||||
|
||||
<para>Since FreeBSD changed to an ELF binary format shortly after
|
||||
3.0-RELEASE, we need to convert many ports that build shared
|
||||
libraries to support ELF. Complicating this task is that a 3.0
|
||||
system can run as both ELF and a.out, and we wish to unofficially
|
||||
support the 2.2 branch as long as possible. Below are the guidelines on
|
||||
how to convert a.out only ports to support both a.out and ELF
|
||||
compilation.</para>
|
||||
|
||||
<para>Some part of this list is only applicable during the conversion,
|
||||
but will be left here for a while for reference in case you have come
|
||||
across some old port you wish to upgrade.</para>
|
||||
|
||||
<sect1>
|
||||
<title>Moving a.out libraries out of the way</title>
|
||||
|
||||
<para>Any a.out libraries should be moved out of
|
||||
<filename>/usr/local/lib</filename> and similar to an
|
||||
<filename>aout</filename> subdirectory. (If you do not move them out
|
||||
of the way, ELF ports will happily overwrite a.out libraries.) The
|
||||
<maketarget>move-aout-libs</maketarget> target in the 3.0-CURRENT
|
||||
<filename>src/Makefile</filename> (called from
|
||||
<maketarget>aout-to-elf</maketarget>) will do this for you. It will
|
||||
only move a.out libs so it is safe to call it on a system with both
|
||||
ELF and a.out libs in the standard directories.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>Format</title>
|
||||
|
||||
<para>The ports tree will build packages in the format the machine is
|
||||
in. This means a.out for 2.2 and a.out or ELF for 3.0 depending on
|
||||
what <command>`objformat`</command> returns. Also, once users move
|
||||
a.out libraries to a subdirectory, building a.out libraries will be
|
||||
unsupported. (I.e., it may still work if you know what you are
|
||||
doing, but you are on your own.)</para>
|
||||
|
||||
<note>
|
||||
<para>If a port only works for a.out, set
|
||||
<makevar>BROKEN_ELF</makevar> to a string describing the reason
|
||||
why. Such ports will be skipped during a build on an ELF
|
||||
system.</para>
|
||||
</note>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title><makevar>PORTOBJFORMAT</makevar></title>
|
||||
|
||||
<para><filename>bsd.port.mk</filename> will set
|
||||
<makevar>PORTOBJFORMAT</makevar> to <literal>aout</literal> or
|
||||
<literal>elf</literal> and export it in the environments
|
||||
<envar>CONFIGURE_ENV</envar>, <envar>SCRIPTS_ENV</envar> and
|
||||
<envar>MAKE_ENV</envar>. (It is always going to be
|
||||
<literal>aout</literal> in 2.2-STABLE). It is also passed to
|
||||
<maketarget>PLIST_SUB</maketarget> as
|
||||
<literal>PORTOBJFORMAT=${PORTOBJFORMAT}</literal>. (See comment on
|
||||
<literal>ldconfig</literal> lines below.)</para>
|
||||
|
||||
<para>The variable is set using this line in
|
||||
<filename>bsd.port.mk</filename>:</para>
|
||||
|
||||
<programlisting>PORTOBJFORMAT!= test -x /usr/bin/objformat && /usr/bin/objformat || echo aout</programlisting>
|
||||
|
||||
<para>Ports' make processes should use this variable to decide what to
|
||||
do. However, if the port's <filename>configure</filename> script
|
||||
already automatically detects an ELF system, it is not necessary to
|
||||
refer to <makevar>PORTOBJFORMAT</makevar>.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>Building shared libraries</title>
|
||||
|
||||
<para>The following are differences in handling shared libraries for
|
||||
a.out and ELF.</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Shared library versions</para>
|
||||
|
||||
<para>An ELF shared library should be called
|
||||
<filename>libfoo.so.<replaceable>M</replaceable></filename>
|
||||
where <replaceable>M</replaceable> is the single version number,
|
||||
and an a.out library should be called
|
||||
<filename>libfoo.so.<replaceable>M</replaceable>.<replaceable>N</replaceable></filename>
|
||||
where <replaceable>M</replaceable> is the major version and
|
||||
<replaceable>N</replaceable> is the minor version number.
|
||||
Do not mix those; <emphasis>never</emphasis> install an ELF
|
||||
shared library called
|
||||
<filename>libfoo.so.<replaceable>N</replaceable>.<replaceable>M</replaceable></filename>
|
||||
or an a.out shared library (or symlink) called
|
||||
<filename>libfoo.so.<replaceable>N</replaceable></filename>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Linker command lines</para>
|
||||
|
||||
<para>Assuming <command>cc -shared</command> is used rather than
|
||||
<command>ld</command> directly, the only difference is that you
|
||||
need to add
|
||||
<option>-Wl,-<replaceable>soname,libfoo.so.M</replaceable></option>
|
||||
on the command line for ELF.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>You need to install a symlink from
|
||||
<filename>libfoo.so</filename> to
|
||||
<filename>libfoo.so.<replaceable>N</replaceable></filename> to make
|
||||
ELF linkers happy. Since it should be listed in
|
||||
<filename>pkg-plist</filename> too, and it will not hurt in the a.out case
|
||||
(some ports even require the link for dynamic loading), you should
|
||||
just make this link regardless of the setting of
|
||||
<makevar>PORTOBJFORMAT</makevar>.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title><makevar>LIB_DEPENDS</makevar></title>
|
||||
|
||||
<para>All port <filename>Makefile</filename>s are edited to remove minor numbers from
|
||||
<makevar>LIB_DEPENDS</makevar>, and also to have the regexp support
|
||||
removed. (E.g., <literal>foo\\.1\\.\\(33|40\\)</literal> becomes
|
||||
<literal>foo.2</literal>.) They will be matched using <command>grep
|
||||
-wF</command>.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title><filename>pkg-plist</filename></title>
|
||||
|
||||
<para><filename>pkg-plist</filename> should contain the short (ELF) shlib
|
||||
names if the a.out minor number is zero, and the long (a.out) names
|
||||
otherwise. <filename>bsd.port.mk</filename> will automatically add
|
||||
<literal>.0</literal> to the end of short shlib lines if
|
||||
<makevar>PORTOBJFORMAT</makevar> equals <literal>aout</literal>, and
|
||||
will delete the minor number from long shlib names if
|
||||
<makevar>PORTOBJFORMAT</makevar> equals
|
||||
<literal>elf</literal>.</para>
|
||||
|
||||
<para>In cases where you really need to install shlibs with two
|
||||
versions on an ELF system or those with one version on an a.out
|
||||
system (for instance, ports that install compatibility libraries for
|
||||
other operating systems), define the variable
|
||||
<makevar>NO_FILTER_SHLIBS</makevar>. This will turn off the editing
|
||||
of <filename>pkg-plist</filename> mentioned in the previous
|
||||
paragraph.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title><literal>ldconfig</literal></title>
|
||||
|
||||
<para>The <literal>ldconfig</literal> line in <filename>Makefile</filename>s should
|
||||
read:</para>
|
||||
|
||||
<programlisting>${SETENV} OBJFORMAT=${PORTOBJFORMAT} ${LDCONFIG} -m ....</programlisting>
|
||||
|
||||
<para>In <filename>pkg-plist</filename> it should read;</para>
|
||||
|
||||
<programlisting>@exec /usr/bin/env OBJFORMAT=%%PORTOBJFORMAT%% /sbin/ldconfig -m ...
|
||||
@unexec /usr/bin/env OBJFORMAT=%%PORTOBJFORMAT%% /sbin/ldconfig -R</programlisting>
|
||||
|
||||
<para>This is to ensure that the correct <command>ldconfig</command>
|
||||
will be called depending on the format of the package, not the
|
||||
default format of the system.</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
||||
-->
|
||||
|
||||
<chapter id="porting-masterdir">
|
||||
<title><makevar>MASTERDIR</makevar> (主 port 所在的目录)</title>
|
||||
|
||||
|
@ -7968,10 +7834,34 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00
|
|||
<entry>引入了 libpcap v0.9.1 之后的 6.0-CURRENT。</entry>
|
||||
<entry>600032</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>所有自 RELENG_5 以来没有修改过的共享库的版本递增之后的
|
||||
6.0-STABLE。</entry>
|
||||
<entry>600033</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>为 dev_clone 处理出口函数中增加身份信息参数之后的
|
||||
6.0-STABLE。</entry>
|
||||
<entry>600034</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>7.0-CURRENT。</entry>
|
||||
<entry>700000</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>所有自 RELENG_5 以来没有修改过的共享库的版本递增之后的
|
||||
7.0-CURRENT。</entry>
|
||||
<entry>700001</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>为 dev_clone 处理出口函数中增加身份信息参数之后的
|
||||
7.0-CURRENT。</entry>
|
||||
<entry>700002</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>将 memmem(3) 加入 libc 之后的 7.0-CURRENT。</entry>
|
||||
<entry>700003</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
@ -8285,6 +8175,7 @@ pgsql:*:70:70:PostgreSQL pseudo-user:/usr/local/pgsql:/bin/sh
|
|||
oracle:*:71:71::0:0:Oracle:/usr/local/oracle7:/sbin/nologin
|
||||
ircd:*:72:72:IRC daemon:/nonexistent:/nonexistent
|
||||
ircservices:*:73:73:IRC services:/nonexistent:/nonexistent
|
||||
simscan:*:74:74:Simscan User:/nonexistent:/sbin/nologin
|
||||
ifmail:*:75:66:Ifmail user:/nonexistent:/nonexistent
|
||||
www:*:80:80:World Wide Web Owner:/nonexistent:/sbin/nologin
|
||||
alias:*:81:81:QMail user:/var/qmail/alias:/nonexistent
|
||||
|
@ -8358,6 +8249,7 @@ xten:*:67:
|
|||
dialer:*:68:
|
||||
network:*:69:
|
||||
pgsql:*:70:
|
||||
simscan:*:74:
|
||||
www:*:80:
|
||||
qnofiles:*:81:
|
||||
qmail:*:82:
|
||||
|
|
Loading…
Reference in a new issue