CVE and update status of the FreeBSD ports tree3,864 unaddressed CVEs in 671 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

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)

Stefan Eßer (se) · 3.35
ports-mgmt/portmaster: update to version 3.35

Fix condition in a pkg query commend.

Reported by:	olegStreejak@github.com
8dbda5d791
Stefan Eßer (se) · 3.34
ports-mgmt/portmaster: update to version 3.34

This update adds support for FreeBSD pkgbase systems. Packages with
names that start with FreeBSD-* should be ignored by all operations.

Additional changes:
 * Deal with removed port directories when updating all installed
   ports.
 * Deal with ports that are installed with a flavour but where the
   port is no longer flavoured.
9a75833223
Stefan Eßer (se) · 3.33
ports-mgmt/portmaster: update to version 3.33

Merge pull request #73 from delphij/patch-1: Fix link for homepage

Fix bug 268397: Stop deleting the empty $LOCALBASE_COMPAT directory.
The patch suggested by Herbertz J. Skuhra (herbert@gojira.at) has been
applied to the source repository.

PR:		268397
777f936830
Stefan Eßer (se) · 3.32
ports-mgmt/portmaster: update to version 3.32

Changes in version 3.31:

Avoid use of -D due to an incompatbility with GNU make

Ports commit 755d190db121 by tijl (Tijl Coosemans) added a patch that
changed all uses of -DMACRO to MACRO=1 on make command lines, since
the MAKEFLAGS environment variable is passed to both BSD make and GNU
make (where selected) and the latter does not accept the -D option.

Changes in version 3.32:

Add -q option to --clean-distfiles
Fix small issues in the man page.
21fd81899f
Stefan Eßer (se) · 3.30
ports-mgmt/portmaster: allow unprivileged users to fetch distfiles

Allow portmaster -F to be run without requesting root privileges.

Keep the testing of the user id as a separate test in order to not
execute $PM_SU_CMD if $NO_ACTION" or $FETCH_ONLY is set.

The distfiles directory must be writeable to take advantage of this
change.

PR:		226506
Reported by:	David Wolfskill
ee6d1b3625
Tijl Coosemans (tijl) · 3.29_2
ports-mgmt/portmaster: Avoid make -D flag

Both FreeBSD make and GNU make pass command line flags to sub-makes
through the MAKEFLAGS environment variable, but the flags aren't
compatible and GNU make 4.4 exits with an error when it encounters
flags it doesn't understand, e.g. -D.

Avoid using the flag for now until ports run gmake with SETENVI.

PR:		272216, 277492
755d190db1
Baptiste Daroussin (bapt) · 3.29_1
MAN?PREFIX: eleminate its usage  and move man to share/man
e4610fcb8b
Stefan Eßer (se) · 3.29
ports-mgmt/portmaster: fix accidentially left in debug tracing

Remove "set -x" thathad been added to verify the previous fix.
6285a928cf
Stefan Eßer (se) · 3.28
ports-mgmt/portmaster: upgrade to version 3.28

This version supports TRYBROKEN passed in the process environment or
in a Makefile (or, e.g., in /etc/make.conf as a per port setting) and
treats it as equivalent to the --try-broken option.

PR:		275307
202ed6ce2a
Stefan Eßer (se) · 3.27
ports-mgmt/portmaster: Fix issue when updating from packages only

When using the -P or --package option to portmaster and all updates
can be performed without building at least one port, the $DI_FILES
variable may be unset.

In this situation portmaster stops after the installation of each
port. Entering a CR makes it continue.

This was reported by Vlad Markov with a suggested fix that has been
applied (with a white-space change).

PR:		273660
Reported by:	dvoich@aim.com (Vlad Markov)
a7ed2d6d98
Stefan Eßer (se) · 3.26
ports-mgmt/portmaster: Make --clean-packages consider port flavors

This commit fixes GutHub issue #55 which affected the cleaning of
stale package files for  flavored ports.

Some ports have package names that are prefixed by e.g. an interpreter
version (or where the interpreter version follows the name), but do
not support flavors. Such packages are not dealt with by this update,
since there is no generic way to do so.

The fix does not apply to --clean-packages used with --index or
--index-only, since the	INDEX file does	not record port flavors.
98b39a93ab
Stefan Eßer (se) · 3.25
ports-mgmt/portmaster: update to version 3.25

The previous update attempted to fix the deletion of stale distfiles
that have names with blank characters or shell glob characters.
It introduced a regression that affected the deletion of some files,
and it has been found to be incomplete.

Testing revealed that the stale distfile check could start before the
full list of relevant distfiles had been read in the background. This
could have lead to distfiles being removed that are still relevant for
other ports.

This update should contain fixes for all these issues.

Reported by:	Dan Allen <danallen46@gmail.com>
8e53bb8846
Stefan Eßer (se) · 3.24
ports-mgmt/portmaster: fix 2 issues in --clean-distfiles

There was no need to deal with distfile names that contained embedded
blanks or characters with special meaning in file glob patterns, but
this has changed with file names derived from repository URIs or other
naming systems.

This update fixes 2 issues reported by Daniel Rossberg on GitHub:
- issue #75: --clean-distfiles cannot handle paths with spaces
- issue #76: --clean-distfiles with paths containing square brackets

Reported by:	Daniel Rossberg
fe56366366
Stefan Eßer (se) · 3.23
ports-mgmt/portmaster: fix GitHub issue #38 (clean stale ports)

Version 1.19.1 of the pkg command removed a previously working
feature (combinations of "-e" with other options of "pkg query"),
causing the use of "pkg query -ae" to fail in "portmaster -Ds".

Reported by:	JulienDlq at GitHub
addff84030
Stefan Eßer (se) · 3.22
Remove WWW entries moved into port Makefiles

Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.

This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.

Approved by:		portmgr (tcberner)
fb16dfecae
Stefan Eßer (se) · 3.22
Add WWW entries to port Makefiles

It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.

Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.

There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.

This commit implements such a proposal and moves one of the WWW: entries
of each pkg-descr file into the respective port's Makefile. A heuristic
attempts to identify the most relevant URL in case there is more than
one WWW: entry in some pkg-descr file. URLs that are not moved into the
Makefile are prefixed with "See also:" instead of "WWW:" in the pkg-descr
files in order to preserve them.

There are 1256 ports that had no WWW: entries in pkg-descr files. These
ports will not be touched in this commit.

The portlint port has been adjusted to expect a WWW entry in each port
Makefile, and to flag any remaining "WWW:" lines in pkg-descr files as
deprecated.

Approved by:		portmgr (tcberner)
b7f05445c0
Stefan Eßer (se) · 3.22
ports-mgmt/portmaster: Fix an issue with flavored dependencies

Flavored run dependencies of an unflavored port could cause the
installation of the port to fail after it had been successfully
built.

This issue should be fixed by this update, which executes a previously
commented out function call to update the FLAVOR in the environment of
the make command used to install the port.

I do not remember why I had commented out that function call, a long
time ago - but I do not expect it to cause any regressions, since the
same FLAVOR is now set enforced during "make install" as had been used
to build the port.

PR:		265084
Reported by:	alt2600 at icloud.com
f15fe3ba81
Stefan Eßer (se) · 3.21
ports-mgmt/portmaster: update to version 3.21

Merge pull request #47 by Oleg Pudeyev:

Do not delete distfiles by default.

Merge pull request #59 by Babak Farrokhi:

Add -U alias for --update-if-newer

Merge pull request #71 by Kubilay Kocak:

Update IRC Channel Link (libera chat)

Fix issue #68 opened by Helmut1972

Make --no-confirm affect display of package messages

Any package messages of updated ports are displayed at the end of the
port updates, normally through a pager requiring conformation of each
page displayed.

This update makes --cno-confirm remove the need to confirm the display
of package messages.
78d6eee9a2
Stefan Eßer (se) · 3.20
ports-mgmt/portmaster: update to version 3.20

Add "I" to the getopt pattern to enable use of the already present
functionality.

Reported as https://github.com/freebsd/portmaster/issues/67.

Reported by:	Michael Schmiedgen via Github
793d87945d
Stefan Eßer (se) · 3.19_31
ports-mgmt/portmaster: Make compatible with pkg-1.17.0

The new pkg command uses the ".pkg" extension for all files,
independently of the archive format chosen.

This update adapts portmaster to that convention and removes all
support for other extensions. (This might be considered premature,
but supporting multiple extensions would require logic changes and
I expect all users to quickly convert their local repositories to
comply with the new naming.)

The package format can still be selected as before.

If you have package files in /usr/packages/* that you want to be
visible to portmaster, then rename them, e.g. from "*.txz" to "*.pkg".
(The "mmv" command (misc/mmv port) performs this renaming with the
following command in /usr/packages/All:

	  mmv "*.txz" =1.pkg
4812894fc1
Stefan Eßer (se) · 3.19_30
ports-mgmt/portmaster: Fix syntax error introduced in last commit

A last minute change from "case" to "if" caused a syntax error since
I had forgotten to remove a now stray ";;" ...

Reported by:	bsd@dino.sk
22b261986a
Stefan Eßer (se) · 3.19_29
ports-mgmt/portmaster: make --no-confirm omit the PAGER

As requested in Github issue #64 the pager should not be used if
portmaster is executed within a script. In order to not introduce
a new option, --no-conform will now imply that output will not be
halted waiting for user input to proceed when displaying the package
messages.

Reported by:	Michael Osipov (michael-o on Github)
94eb8d09b1
Stefan Eßer (se) · 3.19_28
ports-mgmt/portmaster: make CONFLICTS change catch more cases

As a performance optimization the list of conflicting ports was only
fetched if the port's Makefile contained a CONFLICTS* entry.

There are ports that only set some option defaults and then include
the Makefile of some generic port. No conflicts change was performed
in that case.

Fix the behavior by always checking all CONFLICTS definitions that
apply, even for ports that do not have such a line in their direct
Makefile. This removes a performance optimization, but is required to
correctly build and install ports that have dependencies that can be
satisfied by an alternative (e.g. ImageMagick6 is installed and the
port being built has a dependency on ImageMagick6-nox11, which does
not contain a CONFLICTS definition it its Makefile).
a18733148a
Mathieu Arnold (mat) · 3.19_27
One more small cleanup, forgotten yesterday. Reported by:	lwhsu
cf118ccf87
Mathieu Arnold (mat) · 3.19_27
Remove # $FreeBSD$ from Makefiles.
305f148f48
Stefan Eßer (se) · 3.19_27
Enable updating of locked ports

It was already possible to override the locked status of a package, but
the deinstallation of the old version failed and made the update fail.

After this change the package is temporarily unlocked during the upgrade.

Reported by:	rkoberman@gmail.com (Kevin Oberman)
d262ce88bc
Stefan Eßer (se) · 3.19_26
Correctly report package locks that prevent an upgrade

Reported by:	rkoberman@gmail.com (Kevin Oberman)
9d5f5c6780
Stefan Eßer (se) · 3.19_25
Fix regression that has been introduced in r524227

Revert part of the patch that introduced the --try-broken option, it
caused problems in combination with -m.

Submitted by:	Rudolf Cejka (cejkar at fit.vutbr.cz)
Approved by:	antoine (implicit)
e1260a7ab8
Stefan Eßer (se) · 3.19_24
Save the file with instructions how to restart portmaster after a failure to non-world-writable directory.

Save this file in the user's home directory instead of in /tmp to prevent
a possible sym-link attack against the user.

PR:		233378
Submitted by:	Robert Schulze
Approved by:	antoine (implicit)
a141fedd06
Stefan Eßer (se) · 3.19_23
Make the pre-build "make clean" use SU_CMD if appropriate.

Additionally document that PORTSDIR can be passed in the environment.

PR:		228439
Approved by:	antoine (implicit)
aed8c82ed5
Stefan Eßer (se) · 3.19_22
Make portmaster fall back to other locations if invoked in, e.g., /sys/conf.

PR:		237061
Approved by:	antoine (implicit)
09a6aa76b7
Stefan Eßer (se) · 3.19_21
Add option --try-broken

This option makes portmaster try to build ports that are marked as
BROKEN or IGNORE.

Passing this option implies the "-m -DTRYBROKEN" option.

The change is inspired by (but not based on) the patch suggested by
Walter Schwarzenfeld.

PR:		235793
Reported by:	Yasuhiro KIMURA
Approved by:	antoine (implicit)
fdbfc11b4d
Stefan Eßer (se) · 3.19_20
Do not re-build ports unneccessarily

The previous patch has not completely fixed the issue, according to some
reports (it did on my system and for my set of installed ports).

This version contains a further change suggested by Walter Schwarzenfeld.

Submitted by:	Walter Schwarzenfeld
Approved by:	antoine (implicit)
ab17e00297
Stefan Eßer (se) · 3.19_19
Attempt to fix a problem that leads to repeated building of some ports

There are build dependencies, that were compiled again and again even
though the latest version was already installed.

This fix is based on a patch suggested by Tatsuki Makino, with a small
change to better comply with the existing style used in this program.

An extended patch has been provided by Walter Schwarzenfeld, but in my
tests it did not make a difference. If further testing shows a need for
the additional commands suggested by Walter, I'll add them (or a variation)
in a follow-up commit.

PR:		241227, 242086, 243432
Submitted by:	Tatsuki Makino
Approved by:	antoine (implicit)
2dcb7d8bc2
Dmitry Marakasov (amdmi3) · 3.19_18
- Update WWW

Approved by:	portmgr blanket
690d3a7fac
Stefan Eßer (se) · 3.19_18
Remove reference to obsolete INDEX files for FreeBSD7-9 and report build time for successful builds, as suggested by Walter Schwarzenfeld.

Approved by:	antoine (implicit)
1ac413f57a
Stefan Eßer (se) · 3.19_17
Fix upgrades of moved ports.
ebbcf94e7e
Stefan Eßer (se) · 3.19_16
Make portmaster use "pkg-static" instead of "pkg". This prevents problems with inconsistent shared library references that may occur when openssl in base is upgraded to version 1.1.1 with 1.0.x installed from a port.

Approved by:	antoine (implicit)
cdc0f1d2c3
Stefan Eßer (se) · 3.19_15
Fix quoting of optional FLAVOR argument in some make invocations, which were uncovered by fixed quoting in the pm_make* functions.

Reported by:	tatsuki_makino at hotmail.com (Tatsuki Makino)
Approved by:	antoine (implicit)
672a731a16
Stefan Eßer (se) · 3.19_14
Make some sub-routines use "$@" instead of $* to correctly pass arguments with blanks to invoked commands. This fixes clean-up of shared library backups, where only one file was removed due to a parameter list being terminated by the first blank within one parameter.

Reported by:	tatsuki_makino at hotmail.com (Tatsuki Makino)
Approved by:	antoine (implicit)
b390554d5f
Stefan Eßer (se) · 3.19_13
Fix building of specific qt4 ports after qt5 has become the default flavor.

The ports infrastructure does not consistently deal with FLAVOR environment
variables set to an empty string. This caused the dependency check in
portmaster to fail for multimedia/phonon.

With FLAVOR="" in the environment, "make -V FLAVOR" returns "qt4", but the
dependency list produced by "make build-depends-list" assumes "qt5", even
though no user preferences for qt5 have been set.

Reported by:	Walter Schwarzenfeld <w.schwarzenfeld at utanet.at>
Approved by:	antoine (implicit)
6f1399c349
Stefan Eßer (se) · 3.19_12
Document --package-format=<fmt> option. I had implemented that option some time ago, but decided to not expose it in the man-page, since portmaster will not necessarily install the latest version if installing from local Jpackages is requested and there exist multiple package files that only differ in archive format. But since a non-standard package format allows to choose between an optimization 

Approved by:	antoine (implicit)
7e4c59fc9e
Stefan Eßer (se) · 3.19_11
Fix recursive building of ports (-r option). The match_flavor function was called before being defined.

The issue and cause has been reported by Herbert J. Skuhra. (Thanks!)

PR:		227882
Reported by:	Herbert J. Skuhra <herbert@gojira.at>
Approved by:	antoine (implicit)
955455de8e
Stefan Eßer (se) · 3.19_10
Fix previous attempt to cache some parameters in environment variables. The quoting was messed up by use of "eval" and the cached values did not match what the ports system expected.

Submitted by:	tijl
Reported by:	tijl
Approved by:	antoine (implicit)
be3e7a0e58
Stefan Eßer (se) · 3.19_9
Cache some build parameters in the environment that were recalculated over and over for individual ports. This significantly reduces the time to scan for updates if many ports with USES=compiler are present.

Based on a suggestion and code fragment provided by Tijl Coosemans.

While here commit a few changes present in my local version that should not
cause any functional change.

Submitted by:	tijl
Approved by:	antoine (implicit)
5782487054
Stefan Eßer (se) · 3.19_8
Make the -n option work better for non-root users.

Approved by:	antoine (implicit)
d8101cdd54
Stefan Eßer (se) · 3.19_7
Fix problem with debug output from export-flavor garbling the gen_dep_list result. The solution is different from the patch suggested in the PR, since the debug message was only meant to be used during early development of flavors support. In my local development version of portmaster, all output from pm_v is redirected to STDERR, but that change seemed to disruptive to apply to the "published" ve

Unrelated changes: make pm_isdir_pd more robust and fix variable name of
BACKUP_FORMAT option in sample file.

PR:             225843
Reported by:    John Hein
Approved by:    antoine (implicit)
9cf2f48781
Stefan Eßer (se) · 3.19_6
Fix typo (missing dash in find argument list).

Reported by:	Martin Birgmeier
Approved by:	antoine (implicit)
a1927b5d83
Stefan Eßer (se) · 3.19_5
Fix build for ports that have a LICENSE if DISABLE_LICENSES is defined.

The behavior of the ask-license target should be to silently succeed instead
of returning an error, IMHO, but I can test for this condition and skip the
ask-license phase in portmaster, too.

While here, I'm slightly simplifying the fix implemented in r460294.

PR:		225699
Submitted by:	dewayne@heuristicsystems.com.au
Approved by:	antoine (implicit)
35cca48cbe
Stefan Eßer (se) · 3.19_4
Fix a problem that could result in de-installation of a port that shares a prefix of the package name with a new port to be installed. The cause of this bug was that a pattern was applied without anchor at the end.

Testing revealed that "pkg info -x" ignores an anchor at the end of the
pattern (which might be a bug in pkg), therefore the output of the query
is now additionally filtered with egrep to obtain the desired result.

PR:		225496
Reported by:	Martin Birgmeier
Approved by:	antoine (implicit)
3452afb3c6