This page contains the FAQ for FreshPorts. Hopefully the questions are arranged from general to specific. The more you know, the further down you must read to find something you didn't already know.
Your primary FreshPorts tool is your watch list. This is the collection of ports which you have selected for FreshPorts to keep track of. You will be emailed when a change is found for one of your watched ports.
You can have more than one watch list. Most people would have one watch list for each machine they administer. I suggest giving the watch list the same name as the machine. Email notifications will contain headers with the list name. You can use that for any filtering you may want to do (e.g. procmail).
You should be familiar with the Ports section of The FreeBSD Handbook. Pay careful attention to the difference between a port and a package.
If you install the port, the source will be downloaded, patched if necessary, compiled and installed. You will have a chance to set any optional configuration items particular to that port. If the port is dependent upon another port, that port will also be installed. After installing, ports are identical to packages.
It is because of these compile time options that I prefer ports over packages.
A package is a compiled port. It is a binary. When you install the package, you will download a binary and it will be installed.
Packages often lag behind ports. That is usually because it takes time to compile the packages, etc. If you want the latest version, and the package is not available, then you should install the port.
Not all ports can have packages, often because of license restrictions that prevent binary distribution.
One-click watch list maintenance operates only upon your default watch lists. You can set one or more watch lists as being default.
git clone https://git.FreeBSD.org/ports.git /usr/ports
In the past, FreshPorts would parse the emails sent out for each commmit and then load the information into a database. In theory, it's fairly straight forward. In practice, there's much more to it than first meets the eye. The website was updated as soon as the message arrived.
<a href="https://www.freshports.org/">FreshPorts</A>
Here is a banner which you are free to use to link to this site:
[画像:FreshPorts -- The Place For Ports]
Here is the HTML for that graphic.
<img src="images/freshports-banner.gif" alt="FreshPorts -- The Place For Ports" title="FreshPorts -- The Place For Ports" width="468" height="60">
Please save this graphic on your website.
Homepage Homepage: a link to the Project Page / home page for this port. A port can have more than one homepage While I personally think the documentation does not specifically allow for this, I think it arose when WWW was moved from pkg-descr to Makefile.
pkg-fallout Fallout: a link to search the freebsd-pkg-fallout archives. If the resulting fallout list is empty: the port may have been skipped due to fallout of a related port.
View this port on Repology. Repology: a link to search the Repology packaging hub for this port.
Find issues related to this port Find Bugs: a link to search for open Problem Reports (issues/bugs) for this port.
Report an issue related to this port New Bug: a link to open a new Problem Reports (issue/bug) for this port.
new! New: This port has been recently added. A port is marked as new for 10 days.
Forbidden Forbidden: The port is marked as forbidden. If you view the port details,
you will see why. Most often, it is because of a security exploit. Packages for a forbidden port are not built
by the package cluster. Therefore, pkg install will not work.
Broken Broken: The port is marked as broken. Perhaps it won't compile. Maybe
it doesn't work under FreeBSD right now. If you view the port details,
you will see the reason why. Packages for a broken port are not built
by the package cluster. Therefore, pkg install will not work.
Deprecated Deprecated: The port is marked as deprecated. Perhaps it has exceeded its lifetime or is obselete.
Expiration Date Expiration Date: The port has an expiration date. A port may be removed from the tree after this date. Often added in conjunction with Deprecated.
Expired Expired: The port has passed the expiration date. A port may be removed from the tree after this date. Often added in conjunction with Deprecated.
Ignore Ignore: The port is marked as ignore. It probably does not build. Packages for an ignored port are not built
by the package cluster. Therefore, pkg install will not work.
files touched by this commit Files: If you click on this graphic, you will be taken to the list of files touched by the commit in question.
Refresh Refresh: The system is in the process of refreshing that port by inspecting the ports tree. You should rarely see this.
If you do see one, chances are that the port contains an error that prevents make(1) from running. For example:
$ make -V PORTVERSION
"Makefile", line 271: 1 open conditional
make: fatal errors encountered -- cannot continue
In such circumstances, the port committer is notified (if they have opted in to the FreshPorts Sanity Check Report) and they should fix the problem as soon as possible. Once you see a more recent commit without a refresh icon, then the problem has been fixed. The refresh icons will go away after FreshPorts has dealt with the old commits. This may take a few hours.
Deleted Deleted: This port has been removed from the ports tree.
Original commit These icons for for older commits. At one time, FreshPorts parsed emails. This icon will appear alongside commits before the repo moved from subversion to git. They appear along side the commit message in the comit history. This link will take you to the original message in the FreeBSD mailing list archives. Note that it can take a few minutes for the message to appear in the archives. This link will not appear for commit messages before 3 March 2002 (which is the date FreshPorts started to store the message-id).
Commit details FreshPorts commit message: This will take you to the FreshPorts commit
message and allow you to see all other ports which were affected by this commit. This link will not appear
for commit messages before 3 March 2002 (which is the date FreshPorts started to store the message-id).
NOTE: This link has been made redundant by recent advances in the Files link. See next icon.
Click to remove this from your default watch list[s] Item is on one of your default watch lists: This port is on one of your default watch lists. Click this icon to remove the port from your default watch lists. This icon appears only if you are logged in.
Click to add this to your default watch list[s] Add item to your default watch lists: This port is not on any of your default watch lists. Click this icon to add the port to your default watch lists. This icon appears only if you are logged in.
Encoding Errors (not all of the commit message was ASCII) Encoding Errors (not all of the commit message was ASCII): Some of the commit message may be altered because of character conversion problems. We display only UTF-8 and remove the offending characters. These errors may occur in the log message or elsewhere in the commit email.
on this many watch lists Watch List Count (WLC): This is the number of watch lists which are watching this port. This might give you an idea of the popularity of the port.
git Git Repository: This link will take you to the Git Repository entry for this version of the file.
Subversion SVN Repository: This link will take you to the Subversion Repository entry for this version of the file.
CVS log CVS Repository: Deprecated, and historical. Probably does not appear much any more. This link will take you to the CVS Repository entry for this version of the file. This is for much older commits.
This port version is marked as vulnerable. VuXML vulnerability. Click icon for details.
An older version of this port was marked as vulnerable. A past VuXML vulnerability. Click icon for details. NOTE: A feature of security/vuxml is it names the packages which a given vuln affects. If the port changes its package name, past vulnerabilities won't show up in FreshPorts. That's because FreshPorts does not store historical package names.
Restricted This port has some restrictions on it.
NO CDROM This port has some restrictions with respect to being included on a CD-ROM.
Is Interactive This port will require interaction during installation.
Search Dependency Search: Action depends on context. Click on this icon to search for ports depending on the current port, ports maintained by the current maintainer, or other commits by the current comitter.
View revision Revision details. Click on the Files icon in the commit history and you'll see what files in this port were touched by this commit. Click on the Revision details to view the revision of the file associated this commit.
Annotate / Blame Annotate: If you click on this graphic, you will be taken to a view of the file in question, with a listing of the commits that last changed each line.
View diff Diff. Click on the Files icon in the commit history and you'll see what files in this port were touched by this commit. Click on the Diff icon to view the diff between this revision of the file and the previous revision.
Sanity Test Failure Sanity Test Failures. The maintainers and committers are good. But sometimes a mistake slips through. This records the mistake to make it easier for others to correct it if it goes unnoticed. If you see this icon next to a commit, it failed a Sanity Test.
Commit Flagged Flagged Commit. This commit is on your list of flagged commits. Why would you flag a commit? Perhaps you want to review that commit. Perhaps you want to MFC it later. Click on this icon to remove the commit from your flag list.
Commit Not Flagged Click on this icon to add the commit to your flagged list.
Ascending OrderDescending Order Ascending / Descending: These icons appear on particular tables and allow changing the order rows are sorted by.
Many things changed between FP1 and FP2. The most major change
was in the underlying database schema. Not only did we move
from mySQL to
PostgreSQL, we made major
changes to the tables and the way in which the ports are stored
in the database. As a result of these changes, many internal IDs
and values are no longer valid. Therefore, URLs such as
/port-description.php3?port=1234 no longer
work.
If it is any consolation, the new URLs are transparent and permanent. They are of the form <category>/<port>.
Yes. Read all about it!
https://www.FreshPorts.org/ is the main page of this website. It contains a lot of information. You can trim this information by using parameters.
Try this URL: https://www.FreshPorts.org/index.php?num=30&days=0
Description URLThe last ten ports https://www.FreshPorts.org/index.php?num=10
Same as above, but show only two days of previous commits https://www.FreshPorts.org/index.php?num=10&days=2
Same as above, but show summaries instead of a link to another page https://www.FreshPorts.org/index.php?num=10&dailysummary=2
NOTE: Effective 13 November 2003, these parameters are no longer available.
Yes, you can. https://www.FreshPorts.org/date.php displays all the commits for today (relative to the current server time).
You can also pass a parameter and view the commits for a given day. For example, https://www.FreshPorts.org/date.php?date=2002年11月19日 will show all the commits for 19 November 2002
The date should be of the format YYYY/MM/DD but I'm sure different formats will work. If the code has trouble figuring out what date you mean, it will guess and let you know it adjusted the date.
You have clicked on the Click to add this to your default watch list[s] icon and it doesn't change to a Click to remove this from your default watch list[s]. Yes, I've had that happen too. What you need to do is check your watch list settings. You have probably selected "default watch list[s]" when you don't have any default watch list[s] set. To mark a watch list as a default, select it in the list, then click on the Set Default button.
NOTE: The Click to remove this from your default watch list[s] will only appear beside a port that is one on of your default watch lists. If the port is on one of your non-default watch list, the Click to add this to your default watch list[s] icon will appear instead. If you do not see what you expect, try setting the default watch lists in your watch list settings.
Please refer to the above question.
Some ports (for example net/gift) will have a section titled "Port Moves". FreshPorts obtains information about ports from the commits to the repository.
With subversion, there could be a manual change to the repository, not creating a commit email. Such moves were often referred to as a repo-copy, and might have moved a port from one category to another. Such a change was done to ensure the port history is retained.
With git, repo-copies do not occur; the changes are accomplished via commits.
Such moves/commits are documented in /usr/ports/MOVED. FreshPorts parses this file and records these changes in its database.
This new feature was added on 31 December 2003.
/usr/ports/UPDATING is similar to
/usr/src/UPDATING, but for ports,
not for the source tree.
FreshPorts parses this file and attempts to relate the entries to any ports it can find. Such relations are not always possible. We do the best we can. The net/openldap22-client port is a good example of what to expect.
Some ports are so similar to another port that it makes sense to maintain just one port
and specify the differences in the other port. This is slightly similar to the way
/etc/defaults/rc.conf is related to
/etc/rc.conf.
A good example is www/mod_php4. You can see that the master port for that is lang/php4. Conversely, lang/php4 lists several slave ports.
The ability to add this feature is because of this patch:
--- bsd.port.mk 10 Jun 2004 07:30:19 -0000 1.491
+++ bsd.port.mk 22 Jun 2004 13:48:33 -0000
@@ -913,6 +913,16 @@
MASTERDIR?= ${.CURDIR}
+# Try to determine if we are a slave port. These variables are used by
+# FreshPorts and portsmon, but not yet by the ports framework itself.
+.if ${MASTERDIR} != ${.CURDIR}
+IS_SLAVE_PORT?= yes
+MASTERPORT?= ${MASTERDIR:C/[^\/]+\/\.\.\///:C/[^\/]+\/\.\.\///:C/^.*\/([^\/]+\/[^\/]+)$/\1円/}
+.else
+IS_SLAVE_PORT?= no
+MASTERPORT?=
+.endif
+
# If they exist, include Makefile.inc, then architecture/operating
# system specific Makefiles, then local Makefile.local.
The FreeBSD tree has no defined method for handling master/slave ports. It is because of this that FreshPorts never attempted to refresh slave ports when a master port was updated. Now that we have a mostly-reliable method, all slave ports are refreshed when the master port is updated.
This method works for all but 40 ports which are involved in a master/slave relationship. It is hoped that those 40 are fixed soon. It is also hoped that the above patch is comitted to the tree.
Included within the port description is the instruction for adding the package. This information can be important when the package name does not match the port name. A good example is x11/XFree86-4-clients. The command to add this package is:
pkg install XFree86-clients
This normally isn't a problem, but for the 1900 or so ports which are different, this information is very useful.
If the pkg install information does not appear,
you'll be told why there is no package. This is controlled by the
NO_PACKAGE variable in the port's Makefile.
Broken, ignored, and forbidden ports are not built by the package
cluster. Therefore, there is no package for pkg install to use.
If you visit the search page, and you run a search, you'll find that the URL becomes very long. For example, this really long link.
Long URLs occur like that because the search form uses a GET. A long URL would not occur if it was using a POST. The long URLs are useful because they allow you to bookmark your favorite search. That is why a GET is used instead of a POST.
It also makes it easier to validate the HTML if you can provide a URL that exercises all the options that require testing.
For those familiar with the FreeBSD ports structure, the following fields indicate their origin:
PORTNAMEPKGNAMEPKGNAMEMAINTAINERCOMMENTpkg-descr1BUILD_DEPENDSLIB_DEPENDSRUN_DEPENDSmake.
For example:
$ cd /usr/ports/sysutils/bacula/
$ make -V PORTNAME
bacula
$
1 This value is obtained from a file in the port directory. For
example /usr/ports/sysutils/bacula/pkg-descr.
Like many FreshPorts features, this idea came from someone else. Florent Thoumie mentioned something about extending the ports system to include recommendations from maintainers/committers. Such a feature would allow a committer/maintainer to suggest, for example, that if you install Firefox, that you also install linuxflashplugin.
It was from this concept that I came up with "People watching this port...". This information is obtained by:
All of this takes about 55ms.
For some slave ports, you may see a message like this, just above the Commit History:
NOTE: This slave port may no longer be vulnerable to issues shown below because the master port has been updated.
Slave ports can be updated with a commit against the master port. A commit against the master port will affect any slave ports. If a VuXML vulnerability has been recorded against a slave port, any fix would be applied to the master port. However, the commit to the master port would not appear under the slave port, thereby giving a false impression that the slave port was still vulnerable.
The above notice serves as a reminder that the slave port may no longer be vulnerable.
Each port displays the master sites from which its distfiles can be downloaded. This information is obtained from "make master-sites-all". However, this is not the only list of master sites that a port knows about. Edwin Groothuis explains it in this email.
In short, FreshPorts displays the list of master sites that should contain all the distfiles. That is why we use that value, and not one of the other options.
FreshPorts used to obscure email addresses, but we don't any more. We realised that every email address on FreshPorts is already somewhere else first. For example:
In short, it doesn't make sense to obscure that which is freely available elsewhere.
Similarly, we do not entertain requests to remove information from our website. We only report upon what exists elsewhere.
This question refers to a port page.
This situation usually occurs with MASTER/SLAVE ports. The Master port is updated with a new REVISION. No commit is done against the Slave port. FreshPorts knows to refresh the Slave port when its Master port is updated. This refresh updates the PORTVERSION at the top of the page. This update reflects the REVISION you would get if you were to install the Slave port now that the Master has been upgraded.
Anchors in port pages include:
Anchors make it easier to link to sections within pages.
For example, this link – note the #history at its tail – takes you to the commit history for security/acme.sh:
security/acme.sh/#history
Browser extensions such as Display #Anchors and Anchors Reveal can help to visualise anchors that would otherwise be invisible.
Enjoy. We can add more anchors upon request.
Yes, yes, you can.
Not only can FreshPorts email you when one of your watched ports is updated, it can also email you when the package is ready to install.
FreshPorts polls the available FreeBSD repo builds on an hourly basis. It uses that information to display the packages available under various ABI (e.g. FreeBSD:14:amd64). NOTE: we do not display packages for the quarterly branch on the latest CURRENT of FreeBSD. Packages are not build for that ABI/package set combination. You may see CURRENT/quarterly listed on some pages. That is easier to do than to keep track of which branch is CURRENT.
To get new package notifications, follow these steps:
When the next updates arrive, you'll get an email.
FreshPorts covers the ABIs published at https://pkg.freebsd.org/index.html.
In general, the FreeBSD Project does not build quarterly branches for whatever branch is CURRENT.
At the time of writing (2024年08月24日), the code to extract those ABIs and the current ABI list was:
[15:25 dvl-ingress01 dvl ~/scripts] % cat ./current-list-of-valid-abi.sh #!/bin/sh fetch -qo - https://pkg.freebsd.org/index.html | \ grep FreeBSD: | sed -e 's@.*\(FreeBSD:[^ <]*\).*@1円@' | sort [15:25 dvl-ingress01 dvl ~/scripts] % sh ./current-list-of-valid-abi.sh FreeBSD:13:aarch64 FreeBSD:13:amd64 FreeBSD:13:armv6 FreeBSD:13:armv7 FreeBSD:13:i386 FreeBSD:13:powerpc FreeBSD:13:powerpc64 FreeBSD:13:powerpc64le FreeBSD:14:aarch64 FreeBSD:14:amd64 FreeBSD:14:armv6 FreeBSD:14:armv7 FreeBSD:14:i386 FreeBSD:14:powerpc FreeBSD:14:powerpc64 FreeBSD:14:powerpc64le FreeBSD:15:aarch64 FreeBSD:15:amd64 FreeBSD:15:armv7 FreeBSD:15:powerpc FreeBSD:15:powerpc64 FreeBSD:15:powerpc64le
| Login |
|---|
| User Login Create account |
Servers and bandwidth provided by
New York Internet, iXsystems, and RootBSD
| This site |
|---|
|
What is FreshPorts? About the authors Issues FAQ How big is it? Security Policy Privacy Blog Contact |
| Search |
|---|
|
more... |
| Latest Vulnerabilities |
|---|
|
electron42 Sep 03
libnjs Sep 03
nginx-full Sep 03
nginx-module-njs Sep 03
njs Sep 03
chromium Sep 02
jenkins Sep 02
jenkins-lts Sep 02
py-dj60-strawberry-graphql Sep 02
py-strawberry-graphql Sep 02
ungoogled-chromium Sep 02
erlang Sep 01
erlang Sep 01
erlang-runtime27 Sep 01
erlang-runtime27 Sep 01
30 vulnerabilities affecting 415 ports have been reported in the past 14 days |
|
* - modified, not new Last processed: |
| Ports |
|---|
|
Home Categories Deleted ports Sanity Test Failures Newsfeeds |
| Statistics |
|---|
|
Graphs NEW Graphs (Javascript) Calculated hourly: Port count 35095
Broken 77
Deprecated 328
Ignore 190
No CDROM 1
Vulnerable 44
Expired 16
Set to expire 251
new 7 days 31
new month 189
|