CVE and update status of the FreeBSD ports tree3,295 unaddressed CVEs in 670 portsAll times are CET
Port details

ports-mgmt/portmaster 3.35

Manage your ports without external databases or languages

Port info

Maintainer
se@FreeBSD.org
Packages
latest: 3.35
Upstream
up to date
Last update
to 3.35 · 8dbda5d791
Quarterly
2026Q4: 3.35
Formerly
sysutils/portmaster until 2007-02-05
WWW
https://portmaster.github.io/
Links
cgit · VuXML · Report wrong data

Install

Package
# pkg install portmaster
installs 3.35 from latest; from quarterly (2026Q4) 3.35
Port
# cd /usr/ports/ports-mgmt/portmaster && make install clean
# make -C /usr/ports/ports-mgmt/portmaster config  # change options first
Size
43 KiB download · 135 KiB installed
Depends on
nothing
License
BSD2CLAUSE
Options
2 of 2 on in the package: BASH ZSH

Packages by version and architecture

latest

FreeBSD versionamd64aarch64i386
FreeBSD 163.353.35–
FreeBSD 153.353.35–
FreeBSD 143.353.353.35

quarterly (2026Q4)

FreeBSD versionamd64aarch64i386
FreeBSD 153.353.35–
FreeBSD 143.353.353.35

version as in the ports tree (latest) or the most common one (quarterly) · different version · ✗ not built · – no packages for this platform. Package sets that have not been rebuilt for 60 days are left out.

Unaddressed and VuXML only (0)

No unaddressed CVE and nothing reported by pkg audit for the packaged version 3.35.

Fixed (0)

No VuXML entries for this package.

Problem reports (7) · open in Bugzilla, most recently changed first

PRSummaryStatusChanged
295355maintainer-feedback? ports-mgmt/portmaster terminates too early if installing multiple new ports on 15-STABLENew2026-05-17
281732maintainer-feedback? ports-mgmt/portmaster: fails to build ports with gmake error: : invalid option -- DNew2026-03-23
290829maintainer-feedback? ports-mgmt/portmaster: removes directories preventing pkg 2.4 fails to create its own packageIn Progress2026-03-01
269076maintainer-feedback? ports-mgmt/portmaster --delete-build-only leaves build only dependenciesNew2023-01-27
245840needs-qa maintainer-feedback? merge-quarterly? ports-mgmt/portmaster: -R is too agressive in removing PM_UPGRADE_DONE_FLAGIn Progress2021-04-20
Show all 7
PRSummaryStatusChanged
227276maintainer-feedback? ports-mgmt/portmaster --clean-packages ignore FLAVORNew2018-04-13
195304ports-mgmt/portmaster fails to auto delete deleted portsOpen2017-12-18

Commits (311)

Bryan Drewery (bdrewery) · 3.17.8
Update to 3.17.8.

Changes:
  - Fixes handling of PORTSDIR when /usr/ports is a symlink after head
    r272363 and stable/10 r287334.

Reported by:	dhw
ad40b192bb
Adam Weinberger (adamw) · 3.17.7
Use OPTIONS helpers, add a newline to quiet a half dozen portlint fatal messages, and make the installation commands more consistent.
0f89153b96
Bryan Drewery (bdrewery) · 3.17.7
I'm really not working on this. Please direct questions to ports@FreeBSD.org.

If someone else would like to maintain this please discuss with me and I will
get you access to the github account where the code lives.
8b25d0a634
Bryan Drewery (bdrewery) · 3.17.7
For the new USE_GITHUB with only GH_TAGNAME set default DISTNAME to include GH_PROJECT/GH_ACCOUNT/GH_TAGNAME. This prevents the distfile having the same name despite changing one of these values and causing a bad checksum.

Differential Revision:	https://reviews.freebsd.org/D2103
Reviewed by:	mat
With hat:	bdrewery
37a1520519
Bryan Drewery (bdrewery) · 3.17.7
Convert my ports to the new USE_GITHUB
511fe251f8
Bryan Drewery (bdrewery) · 3.17.7
Update USE_GITHUB so it does not require GH_COMMIT.

Using this new scheme allows only setting the _tag_ or _commit hash_ in
GH_TAGNAME and not having to know the hash for a tag.  This scheme will
download a tarball that has a different checksum than before due to a changed
directory name for extraction.

The following MASTER_SITES are provided to retain the old checksum and
directory structure (that require GH_COMMIT):
  GH -> GHL
  GITHUB -> GITHUB_LEGACY

Differential Revision:	https://reviews.freebsd.org/D748
Submitted by:	amdmi3
Reviewed by:	mat, swills, antoine, bdrewery
With hat:	portmgr
5b5a90256d
Baptiste Daroussin (bapt) · 3.17.7
cleanup plist
c73851221a
Bryan Drewery (bdrewery) · 3.17.7
- Update to 3.17.7

Changes:
  * Use PM_SU_CMD for pkg set -o
1fdb4ed0a7
Bryan Drewery (bdrewery) · 3.17.6
- Update to 3.17.6

Changes:
  * Speedup --list-origins with pkg
  * Use proper /usr/local/etc/portmaster.rc path in portmaster.8
  * Fix running from deleted dirs.
  * Fix losing control of building run-depends of staged ports
    (thus breaking -g and counts). [1]

PR:		189398 [1]
7b879fa85a
Bryan Drewery (bdrewery) · 3.17.5
- Update to 3.17.5

Changes:
  * Fix some issues with killing child processes
  * Use builtin kill(1)
a8b719b6ab
Bryan Drewery (bdrewery) · 3.17.4
- Update to 3.17.4

Changes:
  - Fix --check-depends with pkg [1]
  - Allow installing DEPRECATED ports

PR:		ports/186915 [1]
Submitted by:	kaltheat <kaltheat@gmail.com> [1] (based on)
0d3e691cd0
Bryan Drewery (bdrewery) · 3.17.3
- Update to 3.17.3

Changes:
 * Fix with pkg-devel which has broken pkg-info -O compatibility
11e80ffd08
Bryan Drewery (bdrewery) · 3.17.2
- Support STAGEDIR
da8811d66a
Bryan Drewery (bdrewery) · 3.17.2
- Add NO_STAGE until validated to be safe for upcoming staging support
2324655f20
Bryan Drewery (bdrewery) · 3.17.2
- Update to 3.17.2

Changes:
 - Fix detection of pkg-devel

PR:		ports/181813 [1]
Reported by:	Takanori Saneto <sanewo@ba2.so-net.ne.jp> [1], eadler
e4ce57f02e
Bryan Drewery (bdrewery) · 3.17.1
- Update to 3.17.1

Changes:
  * Fix --check-port-dbdir support after ports r321785 changed
    to /var/db/ports/category_port (OPTIONS_NAME) instead of
    UNIQUENAME [1]

Reported by:	many
0c28ddccc8
Bryan Drewery (bdrewery) · 3.17
- Update to 3.17

Changes:
  - Fix completion scripts when ports are not checked out.

PR:		ports/179098
Reported by:	Doug Barton <dougb@dougbarton.us>
dc8f131329
Bryan Drewery (bdrewery) · 3.16
- Remove temporary WRKSRC hack - Rename distfile and fix checksum errors. These errors   were due to renaming the upstream account, which changed   which directory the distfile untarred in. - Shuffle MASTER_SITES so that FreeBSD.org and other more   reliable mirrors come before github
f579b30bcd
Bryan Drewery (bdrewery) · 3.16
- Fix build with temporary fix

Reported by:	John Ko <john@johnko.ca>
4484e1151b
Bryan Drewery (bdrewery) · 3.16
Update MASTER_SITE to github.com/freebsd
830c8be52b
Bryan Drewery (bdrewery) · 3.16
- Update to 3.16

This fixes a regression with non-pkgng usage that would invoke
the bootstrapper when upgrading ports. My testing did not
cover systems with the bootstrapper that did not use pkgng, so
this was missed.

The impact of this was just a hung build during deinstall.

Reported by:	mandree
Pointyhat to:	bdrewery
ab2198cf03
Bryan Drewery (bdrewery) · 3.15
Mark BROKEN as I fix a reported regression
8dd2f7091d
Bryan Drewery (bdrewery) · 3.15
- Update to 3.15 - Add extra mirror - Remove PKGNGPATCH option

Changes:
  - The pkgng patch has been fully integrated upstream with its
    history copied from the pkgng repo over to portmaster's repo
  - Add extra messages before/after killing background processes so
    that 'Terminated' messages look less unexpected
  - Fix running from / trying to build the entire tree
  - pkgng: Fix -s not respecting the automatic flag
  - Fix "Argument list too long" errors
  - Add PM_SU_CMD documentation to the sample config file [1]
  - Fix -o not showing the specified origin [pkgng patch bug]

Submitted by: Oleg Pudeyev <oleg@bsdpower.com> [1]
3b9dc59b3f
Bryan Drewery (bdrewery) · 3.14_9
Remove standard descriptions for BASH/ZSH

Suggested by:	danfe
282a9890b6
Bryan Drewery (bdrewery) · 3.14_9
- Enable pkgng support by default. This is safe for   non-pkgng users as well.
d8d3b88b2b
Bryan Drewery (bdrewery) · 3.14_9
- Remove use of bsd.port.pre.mk - Reword pkg-message to try to be more clear
8d9524b3b8
Eitan Adler (eadler) · 3.14_9
Make it clear that pkgng is optional

Submitted by:	wblock
Approved by:	bdrewery (maintainer)
cc483cb5b0
Alex Kozlov (ak) · 3.14_9
- Fix all cases of 'No newline at end of file' in ports tree

Approved by: portmgr (bapt)
05a9235c98
Bryan Drewery (bdrewery) · 3.14_9
- Don't force pkg as a RUN_DEPENDS. The patch should be   safe for non-pkgng usage.   I am in the process of testing this and will be fully   integrating the patch upstream soon.
39224de87d
Bryan Drewery (bdrewery) · 3.14_8
- Add upstream patch for fixing bash completions with PKGNG   and to respect env PORTSDIR/PKG_DBDIR

Feature safe:	yes
8416505cff
Bryan Drewery (bdrewery) · 3.14_7
- Fix PKGNG patch trying to call pkg(8) when not   actually using pkgng due to improper short-circuit   logic

Submitted by:	John Hein <jhein@symmetricom.com>
Feature safe:	yes
4522cd5f2f
Bryan Drewery (bdrewery) · 3.14_6
- Update ZSH completions to work on CURRENT with pkgng [1] - Don't depend on ports-mgmt/pkg on 7.x with PKGNGPATCH option

Submitted by:	ume [1]
Feature safe:	yes
fc79661a53
Bryan Drewery (bdrewery) · 3.14_5
- Fix WITH_PKGNG detection on CURRENT, as it may   not be defined in /etc/make.conf.

Submitted by:	dim
Feature safe:	yes
2e25939099
Bryan Drewery (bdrewery) · 3.14_4
- Update ZSH completions with pkgng support [1] - Enable the PKGNG patch by default if WITH_PKGNG   is defined.

Submitted by:	ume [1]
Feature safe:	yes
138760a2b8
Bryan Drewery (bdrewery) · 3.14_3
- Add ports-mgmt/pkg as a RUN_DEPENDS if enabling pkgng support - Add UPDATING entry and pkg-message to assist in converting

Feature safe:	yes
395142568b
Bryan Drewery (bdrewery) · 3.14_2
- Rename PKGNG option to PKGNGPATCH to fix   this port confusing bsd.pkgng.mk into thinking   that WITH_PKGNG is defined and pkg(8) shoul be   used to register.

Pointyhat to:	bdrewery
Feature safe:	yes
c3b5b180ed
Bryan Drewery (bdrewery) · 3.14_1
- Add backup non-https mirror - Add PKGNG option to apply pkgng support patch. This will   be fully integrated upstream in the next version. This   functionality is only enabled when WITH_PKGNG is defined   in make.conf (or a recent CURRENT by default, see   UPDATING 20121010). Due to the compat OPTION handling,   defining WITH_PKGNG will also apply the patch by default.   The pkgng patch is contr

Feature safe:	yes
300c0a9c56
Bryan Drewery (bdrewery) · 3.14
- Move to new home, http://github.com/portmaster - Take maintainership - Convert to new options framework - Use USE_GITHUB for fetching - Add DISTNAME to avoid conflict with existing distfile as   the checksum of the distfile has changed now that it is   no longer modified for release. - Remove use of bsd.port.pre.mk
7821cd7798
Carlo Strub (cs) · 3.14
Add a temporary mirror
5630f5f09c
Doug Barton (dougb) · 3.14
Throw my ports back in the pool, and make my intentions clear for the various ports that I've created.

I bid fond fare well
A chapter closes for me
What opens for you?
deda664425
Doug Barton (dougb) · 3.14
Fix the problem of background fetches hanging forever when the background process to read the distinfo files encounters a fatal error.
6e5b73e7b1
Doug Barton (dougb) · 3.13.13
Update to 3.13.13:

Minor improvements:
===================
* Improve messages for processing of dependent ports when -r
* If there is an installed version, always print that message, not just
  when we're in the parent
* Optimize determination of $new_port:
 - When first set, let it be global
 - Use a function to incorporate/optimize the various tests from the
   2 different places that it was being set
* Use a more robust method of determining portdir from $PWD. This also
  works for bare 'portmaster' with no arguments now, if you're in a port
  directory.
* Various additional code cleanups

Bug fix:
========
Do read_distinfos() in the background for multiport() too, oops
22aca7c98c
Doug Barton (dougb) · 3.13.1
Update to version 3.13.1

Minor fixes/improvements
========================
* Turns out there are a non-zero number of distinfo files that have SIZE
  listed first, so in the code that parses them for the data to put into
  /var/db/pkg/$port/distfiles, handle this situation gracefully.

* If we trap while working on a child port do not remove that child from
  the PM_NEEDS_UPDATE list so that when it gets printed in the parent
  that child is still on the list.

* Use the count of total ports as $num_of_deps for -Faf

* For -av, add num_{roots|trunks|branches|leaves} values to the headers

* In multiport(), decrement the number of ports to work on and print a -v
  message if we have already seen a port in the worklist as a dependency
  of another port in the list.

* Many other minor code cleanups

Performance enhancement
=======================
* In read_distinfos*() use while read instead of grep. Avoids the fork
  and reduces the total time for building the list(s) of distfiles by 25%
323e0ff2eb
Doug Barton (dougb) · 3.13
Upgrade to version 3.13

Major updates/fixes to the distfile handling code
=================================================
* Make all parts of the code SUBDIR-safe (most were already)
  - Fix a few places where the relativity of the cwd was not respected,
    most often resulting in files not being deleted that should be
* Move the storage of the distfile info back to /var/db/pkg where it
  should have been all along. Mostly for correctness, but also to deal
  with the problem of non-UNIQUENAMEs causing the wrong files to be
  deleted with -d.
* Clean up the old /var/db/ports/*/distfiles files after reading them,
  and delete the directory if it's empty. Since we are doing this
  unconditionally now, there is no longer a need for delete_dist_list().
  The new ones will live and die with the rest of the package directory.
* Update some of the messages printed out for distfile-related things
  to make it more clear what's going on.
* Check DI_FILES to see if the distfile could be valid for another port
  in more places, so add a function to deal with the common ones.
* When checking DI_FILES, anchor the grep pattern with a ^ to
  avoid false positives

Other code changes
==================
* Make the whitespace more consistent
* Various minor improvements, mostly to avoid unnecessary forking

UI Change
=========
* When using -i and there is an +IGNOREME file, the default should be no
f428599ca5
Doug Barton (dougb) · 3.12.2
Minor improvements ================== * Restore the line from -av that prints each port as we work on it. * Print more useful information about ports that don't have distfiles,   or distfiles we're skipping due to duplicates when -F (especially   with -a).

Bug fixes
=========
* Consolidate all writing to the IPC_SAVE file into safe_exit()
  so that it always gets called. Also, zero out the file after
  reading it so that a parent process doesn't inadvertently
  read stale data during a trap (unlikely, but not impossible).
b3b3c80e67
Doug Barton (dougb) · 3.12.1
Upgrade to 3.12.1, removes pgrep since it's not safe to use on older versions of FreeBSD
f18b7d0bbb
Doug Barton (dougb) · 3.12
New Features ============ Print the same progress update that goes to the term title in-line, and apply various improvements to that code.

Move 'make clean' to the background. There is no point waiting around
for it to finish. In the case of very large work directories this may
cause some I/O contention during the unpacking of the next port to
build, but in most cases this should be lost in the noise.

Other Improvements
==================
Speed up the determination of WRKDIRPREFIX, and do not bother looking
for empty directories if we exited abnormally.

Add code to detect dependency loops created by moving part of a port
into another port, and CONFLICT'ing on previous versions of that port
(ala textproc/p5-XML-SAX -> p5-XML-SAX-Base). When a loop is detected
suggest that the user try pkg_updating.

Bug Fixes
=========
Improve error handling for mktemp

Improve handling of abnormal exits (such as ^C, failed port, etc.),
especially when the first exit happens in a child process.

If the second argument to -o is something that is completely non-existent,
report in the error message what the user typed on the command line.
Reported by:	avilla

In clean_build_only_list() remove ports that are already installed
when using --delete-build-only to prevent them from being spuriously
removed.
Reported by:	avilla
7fb2b1acb3
Doug Barton (dougb) · 3.11_2
Fix plist for bash completion file. Bump PORTREVISION for it as well.

Submitted by:	sunpoet
d8dcc077e7
Doug Barton (dougb) · 3.11_1
Move the Bash completion file to ${PREFIX}/etc/bash_completion.d Bump PORTREVISION for the WITH_BASH case

While here, remove the license info
7d6ad43b14
Doug Barton (dougb) · 3.11
New Features ============ 1. Add a feature to allow users to list files that should be    preserved across upgrades.

Various Improvements
====================
1. Add a verbose message for cleaning WRKDIRPREFIX

2. Improve the handling of the -F option with packages, especially with
   --packages-only:

 * In update_port() do better at saying what we're launching a child to do
 * In post_first_pass() make clear that we are fetch'ing, not building,
   installing, etc.
 * In multiport() call check_fetch_only when we're done
 * In the main body add fetch'ed ports to the CUR_DEPS list so that they
   are only fetched once.

3. Various typo fixes for the man page.

Bug Fixes
=========
1. If an update fails in a child port the parent needs to source the
   $IPC_SAVE file before it bails out to make sure that various lists are
   updated in the parent.  This is particularly important for the list(s)
   of work already completed, and especially to update PM_NEEDS_UPDATE for
   the message of how to resume from the point of failure.

2. For multiple -r, don't add a port to the list of dependents to rebuild
   if it was itself specified as a -r port.

3. In parent_exit() run the code to kill background processes if we're
   called with a non-zero exit code.  That will trigger it (for example)
   where the user answers no to the confirmation prompt and is either
   using -D, or the generation of the list of valid distfiles did not
   complete.

4. Until I can revamp the way dependencies are tracked, include all 3
   forms of CONFLICTS to make sure we catch alternates.
3e80fc4345