When you notice that a port is out of date compared to the latest
version from the original authors, you should first ensure that you
have the latest
port. You can find them in the
ports/ports-current
directory of the FreeBSD FTP mirror
sites. However, if you are working with more than a few
ports, you will probably find it easier to use
CVSup to keep your whole ports collection
up-to-date, as described in the
Handbook.
This will have the added benefit of tracking all the ports'
dependencies.
The next step is to see if there is an update already pending.
To do this, you have two options. There is a searchable interface
to the
FreeBSD Problem Report (PR) database (also known as
GNATS
). Select ports
in the
dropdown, and enter the name of the port.
However, sometimes people forget to put the name of the port
into the Synopsis field in an unambiguous fashion. In that case,
you can try the
FreeBSD Ports Monitoring System (also known as
portsmon
). This system attempts to classify
port PRs by portname. To search for PRs about a particular port,
use the
Overview of One Port.
If there is no pending PR, the next step is to send an email
to the port's maintainer, as shown by
make maintainer
. That person may
already be working on an upgrade, or have a reason to not upgrade the
port right now (because of, for example, stability problems of the new
version); you would not want to duplicate their work. Note that
unmaintained ports are listed with a maintainer of
ports@FreeBSD.org
, which is just the general
ports mailing list, so sending mail there
probably will not help in this case.
If the maintainer asks you to do the upgrade or there is
no maintainer, then you have a chance to help out FreeBSD by
preparing the update yourself! Please make the changes and save
the result of the
recursive diff
output
of the new and old
ports directories (e.g., if your modified port directory is
called superedit
and the original is in our tree
as superedit.bak
, then save the result of
diff -ruN superedit.bak superedit
). Either
unified or context diff is fine, but port committers generally
prefer unified diffs. Note the use of the -N
option—this is the accepted way to force diff to properly
deal with the case of new files being added or old files being
deleted. Before sending us the diff, please examine the
output to make sure all the changes make sense. To
simplify common operations with patch files, you can use
/usr/ports/Tools/scripts/patchtool.py
.
Before using it, please read
/usr/ports/Tools/scripts/README.patchtool
.
If the port is unmaintained, and you are actively using it yourself, please consider volunteering to become its maintainer. FreeBSD has over 2000 ports without maintainers, and this is an area where more volunteers are always needed. (For a detailed description of the responsibilities of maintainers, refer to the section in the Developer's Handbook.)
最好的方式是使用 send-pr(1) 並附上 diff 一併回報(類別請選
ports
)。 若你是該 port 的維護者,請記得在 synopsis
那行的開頭註明 [maintainer update]
,並且在 PR 的
“Class” 分類填上 maintainer-update
。
否則,該 PR 的 “Class” 處就是填
change-request
。
Please mention any added or
deleted files in the message, as they have to be explicitly specified
to cvs(1) when doing a commit. If the diff is more than about 20KB,
please compress and uuencode it; otherwise, just include it in the PR
as is.
Before you send-pr(1), you should review the Writing the problem report section in the Problem Reports article; it contains far more information about how to write useful problem reports.
If your upgrade is motivated by security concerns or a
serious fault in the currently committed port, please notify
the Ports Management Team <portmgr@FreeBSD.org>
to request immediate rebuilding and
redistribution of your port's package. Unsuspecting users
of pkg_add(1) will otherwise continue to install the
old version via pkg_add -r
for several
weeks.
Now that you have done all that, you will want to read about how to keep up-to-date in 章 14, Keeping Up.
本文及其他文件,可由此下載: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。
若有 FreeBSD 方面疑問,請先閱讀
FreeBSD 相關文件,如不能解決的話,再洽詢
<questions@FreeBSD.org>。
關於本文件的問題,請洽詢
<doc@FreeBSD.org>。