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

ports-mgmt/portupgrade 2.4.16_4,2

FreeBSD ports/packages administration and management tool suite

Port info

Maintainer
bdrewery@FreeBSD.org
Packages
latest: 2.4.16_4,2
Upstream
up to date
Last update
to 2.4.16_4,2 · b9ccc3cf4a
Quarterly
2026Q4: 2.4.16_4,2
Formerly
sysutils/portupgrade until 2007-02-05
WWW
https://wiki.freebsd.org/portupgrade
Links
cgit · VuXML · Report wrong data

Install

Package
# pkg install portupgrade
installs 2.4.16_4,2 from latest; from quarterly (2026Q4) 2.4.16_4,2
Port
# cd /usr/ports/ports-mgmt/portupgrade && make install clean
# make -C /usr/ports/ports-mgmt/portupgrade config  # change options first
Size
95 KiB download · 341 KiB installed
Depends on
databases/ruby-bdb 0.6.6_9, lang/ruby34 3.4.9_2,1
License
BSD3CLAUSE
Options
1 of 1 on in the package: DOCS

Packages by version and architecture

latest

FreeBSD versionamd64aarch64i386
FreeBSD 162.4.16_4,22.4.16_4,2–
FreeBSD 152.4.16_4,22.4.16_4,2–
FreeBSD 142.4.16_4,22.4.16_4,22.4.16_4,2

quarterly (2026Q4)

FreeBSD versionamd64aarch64i386
FreeBSD 152.4.16_4,22.4.16_4,2–
FreeBSD 142.4.16_4,22.4.16_4,22.4.16_4,2

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 2.4.16_4,2.

Fixed (1)

Show 1 fixed
VuXML entries whose affected range the packaged version has left.

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

PRSummaryStatusChanged
284053maintainer-feedback? ports-mgmt/portupgrade: Installs insecure databases/db5 as a dependencyNew2025-01-14
227747ports-mgmt/portupgrade: quick&dirty FLAVOR supportIn Progress2024-11-21
280104maintainer-feedback? ports-mgmt/portupgrade: http://pkgtools.github.com/ 404 not foundNew2024-10-04
257406maintainer-feedback? ports-mgmt/portupgrade: no support for .pkgNew2023-04-21
248019maintainer-feedback? ports-mgmt/portupgrade: Fails to upgrade ports: Copy failed!New2022-10-03
Show all 6
PRSummaryStatusChanged
223943maintainer-feedback? ports-mgmt/portupgrade and the ICU-librariesIn Progress2021-10-30

Commits (350)

Akinori MUSHA (knu) · 20010812
Update to 20010812, just a minor update.

- Reword and fix documents.
- Make portsdb -U not imply -u.
60adc2eea9
Akinori MUSHA (knu) · 20010811_1
Update pkg-comment and pkg-descr.
d62ad1dfb1
Akinori MUSHA (knu) · 20010811_1
Add a hotfix to support the "MD5 (file) = IGNORE" case.
68b126ec35
Akinori MUSHA (knu) · 20010811
Update to 20010811.

portsclean:
  - Rewrite in Ruby and implement the distfiles cleaner. [new]

portsdb:
  - Show a progress message while updating INDEX.*.
  - Record version information into INDEX.rdo.
  - Record category information into INDEX.rdo and enhance the API
    accordingly.
  - Introduce the automatic PORTS_DBDIR selector.  Now it will use
    whichever writable directory in the following ones: $PORTS_DBDIR,
    $PORTS_DIR, /usr/ports, $PKG_DBDIR, /var/db/pkg, $TMPDIR, /var/tmp,
    /tmp (checked in the order named)

portcvsweb:
  - New tool: a tool to open CVSweb to view a CVS log. [new]
6bb28a13bd
Akinori MUSHA (knu) · 20010809
Update to 20010809.

pkg_deinstall:
	- Bring in most of the options of pkg_delete(1).
	- Add a new option `-P', which preserves shared libraries.
	- List failed packages if any.
	- Obsolete GNU style long options, which take space and would
	  only rarely be used.

portupgrade:
	- Make portupgrade use pkg_deinstall instead of pkg_delete, to
	  utilize its -P option.

	- Now portupgrade always uninstalls old packages, but
	  preserves shared libraries by default.  The -u option has
	  been changed to mean "Do not preserve old shared libraries".
	  Note, however, that its behavior is the same as before, it
	  is just the default behavior that has been changed.

	  With this change, portupgrade no longer leaves extra garbage
	  even if you don't specify -u, but only old versions of
	  shared libraries for safety. :)

	- Utilize $tmpdir properly for pkg_tarup. (previously
	  PKGREPOSITORY was used prior to PKG_TMPDIR or TMPDIR)

	- Add a notice regarding the disk space for backup files.

Since it's my birthday today, I just wish this update doesn't contain
terrible bugs.. ;)
cff77daeb5
Akinori MUSHA (knu) · 20010802
Update to 20010802, only a minor update.

overall:
- Fix commands not to quit when user answers ^D to a yes/no question.
- Call pkg_* commands in fullpaths.

portupgrade:
- When -s is specified, run sudo to build & install dependent ports
  when some are missing, too.

portsclean:
- This is a new command which cleans ports' working directories.
032137d53e
Akinori MUSHA (knu) · 20010730
Update to 20010730 with some enhancements.

portupgrade:
- Make portupgrade a little bit more fail-safe by restoring modified
dependency info on installation failure.

portversion:
- Make portversion refer to the ports database and run several times
faster. (!)

portsdb:
- Do not immediately fail in error when it finds an error in the INDEX
  file, but skip the line and continue.
9bcd672114
Akinori MUSHA (knu) · 20010727
Update to 20010727 with a couple of new commands added. (No changes have been made to the existing utilities)

pkg_deinstall:	This is a package deinstaller with wildcards and
		dependency recursion support.

pkg_glob:	This is a package glob expander with wildcards and
		dependency recursion support.
2ee75b5cf1
Akinori MUSHA (knu) · 20010714
Update to 20010714, a maintenance release.

2001-07-14 17:05  knu

	* misc/zsh/: _pkgdepfix, _portupgrade, _portversion: Improve zsh
	compdefs.

2001-07-14 16:40  knu

	* portupgrade.1: Fix manpage.
	[Submitted by: Sean Chittenden <sean@chittenden.org>]

2001-07-03 14:26  knu

	* pkgdepfix.1, portsdb, portsdb.1, portsdb.rb, portupgrade.1:
	Introduce a new environment variable PORTS_DBDIR, which specifies
	an alternative ports database directory.  This is useful when
	/usr/ports is on a readonly filesystem.
	[Requested by: Makoto MATSUSHITA <matusita@jp.freebsd.org>]

	Warn and abort the update if PORTS_DBDIR is not writable,
	instead of just failing in error.
62f0245b8c
Akinori MUSHA (knu) · 20010627
Update to 20010627.  Enhance the behaviors of some flags:

-B CMD
    --beforebuild CMD	Run the sapecified command before each build.  If the
			command exits in failure, the port/package will be
			skipped.  Here is some typical uses:

			portupgrade -B 'cvs update' 'gnome*'

			portupgrade -aB 'test ! `make -V IS_INTERACTIVE`'

    -x GLOB
    --exclude GLOB	Exclude packages matching the specified glob pattern.
			Exclusion is performed after recursing dependency in
			response to -r and/or -R, which means, for example,
			the following command will upgrade all the packages
			depending on XFree86 but leave XFree86 as it is:

			portupgrade -rx XFree86 XFree86
9caf58e05d
Akinori MUSHA (knu) · 20010622
Update to 20010622, a maintenance release with better diagnostic messages.
c74e098113
Akinori MUSHA (knu) · 20010617b
Whoops, 20010617 had an installation problem.
a86edf2a86
Akinori MUSHA (knu) · 20010617
Revise pkg-descr.
3eab80a70e
Akinori MUSHA (knu) · 20010617
Update to 20010617.

portupgrade:
  Add a new option: -N/--new.  If it is specified, portupgrade
  installs a new one when a specified package is not installed.

portinstall:
  New command equivalent to `portupgrade -N'.  You can specify a port
  origin to name the one you want to install, too:
    e.g. `portinstall shells/zsh'
396b2f3afd
Akinori MUSHA (knu) · 20010615
Update to 20010615.

This is a maintenance release.

  - Manpages provided.
  - Ports DB got faster.
  - Wording fixed.
  - New feature added to portsdb(1): you can use it to expand
    port/pkgname globs. (archivers/p5-*, zsh, gnome*, etc.)
a3b2597105
Akinori MUSHA (knu) · 20010611
Oops, wrong checksum.
aa878d3f24
Akinori MUSHA (knu) · 20010611
Update to 20010611, with many changes and enhancements. Beware of bugs, just in case. ;)

portupgrade:
  - Sort packages by default and remove -s/--sort.
  - Rename -y/--yield/-Y/--yield-command to -s/--sudo/-S/--sudo-command.
  - Implement -a/--all.
  - Implement -x/--exclude=GLOB.
  - Exit on OptionParser::ParseError immediately.
  - Do not call "make fetch-recursive" but just "make fetch", now that
    portupgrade does recursion itself.
  - In fetch mode, specify -DPACKAGE_BUILDING for ports that define
    IS_INTERACTIVE. [Submitted by: Jimmy Olgeni <olgeni@uli.it>]]

portversion:
  - Exit on OptionParser::ParseError immediately.

portsdb:
  - New tool: which updates INDEX and INDEX.db in the ports directory.

pkgdepfix:
  - Implement origin fixer with intelligent guessing, finally!
    (-o/--fix-origin)
  - Make pkgdep guessing more intelligent.
da51098583
Akinori MUSHA (knu) · 20010607b
Clarify that portupgrade can do upgrade by means of both the port and the package.
c2e939e56c
Akinori MUSHA (knu) · 20010607b
Change pkg_tarup to ${LOCALBASE}/sbin/pkg_tarup in RUN_DEPENDS.

Found by:	bento
b718988ce7
Akinori MUSHA (knu) · 20010607b
Update to 20010607b.

portupgrade:
  - Change the meaning of -P/--use-packages.  If specified once, it
    uses packages whenever available or uses ports.  If specified
    twice, it never try to use ports but only uses packages.

  - The package directory is now specified via the environment
    variable, by PKGREPOSITORY and PKGREPOSITORYSUBDIR.

Print the usages to stdout instead of stderr.
322fde13d1
Akinori MUSHA (knu) · 20010607
Update to 20010607.

portupgrade:
  - Implement -P/--use-packages, which everyone bugged me with. :>

pkgdepfix:
  - Add "delete" to the choices as to how to deal with a stale
    dependency.
  - Alter the prompt message.
  - Add zsh compdef.
ea9d950857
Akinori MUSHA (knu) · 20010606b
Update to 20010606b.

pkgdepfix:
  - Implement automatic guessing.
  - Add yes-to-all to the choices of yes/no prompt.
  - Do "stty sane" on interrupt.

portupgrade:
  - Backing up +REQUIRED_BY must have been done before pkg_delete.
    [Submitted by: SASAKI Katuhiro <sahiro@vanilla.freemail.ne.jp>]

Because of the portupgrade bug, portupgrade -u would have broken some
of your +REQUIRED_BY files.  Please fix them up with pkgdepfix.
d10d546f44
Akinori MUSHA (knu) · 20010606
From now on I use release dates for this port's version numbers, and this is version 20010606.

A new tool pkgdepfix is added.  It allows you to interactively fix
/var/db/pkg's @pkgdep / +REQUIRED_BY discrepancies.  Run this
periodically to let portupgrade properly trace dependencies.
3f909a39ff
Akinori MUSHA (knu) · 1.42
Update portupgrade to 1.42.

I think I have finally fixed the problem some people have seen that it
deletes a package registry in some cases!  At the same time, -m and -p
now works properly again.

Those problems were all due to Shellwords::shellwords' destroying its
given string.  Thanks to Tadayuki OKADA <tadayuki@mediaone.net> for
sending me a report that made me realize what the problem was.
551a15f1e3
Akinori MUSHA (knu) · 1.40
De-typo (s/priviledge/privilege/g) with no PORTREVISION bump.
e9a5e89b99
Akinori MUSHA (knu) · 1.40
Update portupgrade to 1.40.  A bug with pkgdep has been fixed.

I'd like to call this a stable release, and take a rest for a while
until the next stable release. ;)
4fea95ebd9
Akinori MUSHA (knu) · 1.39
Update portupgrade to 1.39.

* Fix file permissions and owners of replaced files.
* Stop raising a false alarm. (which was harmless, though..)
435ce6fdea
Akinori MUSHA (knu) · 1.36
Update portupgrade to 1.36.

* No need to recurse @pkgdep search, really.
* Support the latest pkg_tarup.
* Backup +REQUIRED_BY a bit earlier, just in case.
* If it fails to copy the new +REQUIRED_BY to the package's dbdir,
  emit a message and save the file in TMPDIR.
5ce67365d6
Akinori MUSHA (knu) · 1.34_1
Apply a hotfix against a critical bug that +CONTENTS are lost when you do upgrade as root and TMPDIR and /var/db/pkg are on different filesystems.
002a0185d3
Akinori MUSHA (knu) · 1.34
Update to 1.34.  Now it never tries to yield root priviledges unless -y is specified.
caa8a3b243
Akinori MUSHA (knu) · 1.33
Update to 1.33.  More operations need root priviledges.
a01e84a0c6
Akinori MUSHA (knu) · 1.31
Update portupgrade to 1.31 and portversion to 1.7.

* Fix the Makefile/PKGNAME error detection.
  [Reported by:	Tadayuki OKADA <tadayuki@mediaone.net>]

* Implement -y/--yield which yields root priledges where needed.

* Implement -Y/--yield-command which specifies the command to yield
  root priledges. (default: sudo)
bec4f9dede
Akinori MUSHA (knu) · 1.29
Update to portupgrade 1.29.

portupgrade:
	- Fix a bug that -s/--sort didn't work.  D'oh!
	- Make -u/--uninstall fail-safe.  It backs up old
	  installations with the help of pkg_tarup and restores on
	  installation failure.
        - Show option errors more gracefully.
        - Die on signals more gracefully.

portversion:
	- Show option errors more gracefully.
        - Die on signals more gracefully.
a47f237214
Akinori MUSHA (knu) · 1.28
Update to 1.28 which fixes a bug when a package does not have @pkgdep or +REQUIRED_BY.

Reported by: Jimmy Olgeni <olgeni@uli.it>

I'll debug harder next time.  Sorry for this. :(
459053e850
Akinori MUSHA (knu) · 1.27
Update to portupgrade 1.27.

Everything should now be fine while bug reports and thoughtful
suggestions are always welcome.
a3b1fbaca7
Akinori MUSHA (knu) · 1.26_1
Apply a hotfix to fix a couple of bugs/misfeatures.
cbe50db5a9
Akinori MUSHA (knu) · 1.26
Update portupgrade to 1.26 and portversion to 1.4. This is a milestone release for me.  Enjoy. :>

portupgrade changes:
  - Implement -s/--sort which sorts packages in the dependency order.
  - Implement -R/--upward-recursive, and get -r/--recursive working for
    upgrading as well. (Finally!)
  - Add -DBATCH to the make fetch' commandline to prevent ports from
    dumbly waiting for user input.

  Greatly inspired by: Jimmy Olgeni <olgeni@uli.it> (Thanks!!)

portversion changes:
  - Make command output optimal by using portupgrade's -s option.
  - Report possible ports' Makefile breakage.
5b36cf09a5
Akinori MUSHA (knu) · 1.25
Fix a rmdir line so it never fails.

Submitted by:	Jimmy Olgeni <olgeni@FreeBSD.org>
1e3888f0dc
Akinori MUSHA (knu) · 1.25
Update to 1.25.
5c13f9369e
Akinori MUSHA (knu) · 1.23
Update to 1.23.

- Add BSD-style license notice.
- Show the revision on help (-h).
- Do distclean before each fetch if -c is specified with -F.
1070496ff8
Akinori MUSHA (knu) · 1.20
Update to 1.20.

2001-04-18 03:36  knu

	* misc/zsh/_portupgrade: Add -F.

2001-04-18 03:35  knu

	* portupgrade: Add -F/--fetch option to make dial-up users happy.

	Submitted by:	Jimmy Olgeni <olgeni@uli.it>
			(He suggested -e, but I prefered -F)

	Show what version a package is upgraded to to help a user decide
	whether to upgrade or not.

	Submitted by:	Timothy Smith <tim@mysql.com>

Resurrect portversion for what it's worth as a reference code.  The
problems that kept it from working has been addressed and will
hopefully be fixed soon. :)
3be9dc4719
Akinori MUSHA (knu) · 1.19_1
Get rid of the mention of portversion in pkg-descr.
7d94ccfe39
Akinori MUSHA (knu) · 1.19_1
Say good-bye to portversion.  Now we have new pkg_version(1) which does handle versions correctly.

By the way, I'll have to find a workaround for the ruby's thread
vs. libc_r (stdio/malloc) problem exposed by portversion...  Hmm.
a736e4aa4e
Akinori MUSHA (knu) · 1.19
Reword pkg-comment and pkg-descr to make it clearer. (README will be fixed in the next release)

Submitted by:	obrien
85441a23ad
Akinori MUSHA (knu) · 1.19
Update to 1.19.

2001-03-23 04:08  knu

        * portupgrade: Change the timing of the invocation of the
        beforebuild command so that "portupgrade -B'cvs update' foo" works.

        Reported by:    Ollivier Robert <roberto@eurocontrol.fr>

2001-03-23 04:06  knu

        * portversion: Fix the implication of a '*'. (portversion -v did
        nothing ;)

        Reported by:    Tadayuki OKADA <tadayuki.okada@windriver.com>

2001-03-23 04:04  knu

        * pkgdb.rb: Skip packages with illegal names showing an informative
        message rather than dying of an error.

        Reported by:    Ollivier Robert <roberto@eurocontrol.fr>
6756e56e52
Akinori MUSHA (knu) · 1.18
Update portupgrade to 1.18.  Now it comes with portversion, which is the Porter's Handbook compliant version of pkg_version with a little bit better performance and better usability.

2001-03-22 06:13  knu

        * README, portupgrade, misc/zsh/_portupgrade: Add a couple of new
        options:   -A [command to run after each installation]   -B
        [command to run before each build]

2001-03-22 05:49  knu

        * README, install.rb, portversion, misc/zsh/_portversion: Add
        portversion.

2001-03-22 05:43  knu

        * portupgrade: Use make(1) arguments specified with -m for "make -V
        PKGNAME" too.

        Ignore the difference of the name parts when it compares the
        package versions.

2001-03-22 05:36  knu

        * misc/zsh/_portupgrade: Add a missing closing bracket.
8e4cb7c968
Akinori MUSHA (knu) · 1.16
Update to 1.16.

- Use Dir.entries(dir).each instead of Dir.glob(dir) so it does not
  hit the just installed packages.
- Add -p option. [make package as well when each port is installed]
  (Requested by: Ollivier Robert <roberto@eurocontrol.fr>)
- Sort options in alphabetical order.
56c06bcbe7
Akinori MUSHA (knu) · 1.15
Fix a bug when the origin of a package is unknown.

Submitted by:   Leif Neland <leifn@neland.dk>
600e52d351
Akinori MUSHA (knu) · 1.14
D'oh, the checksum was not the correct one's.  Sorry.
07e81a9663
Akinori MUSHA (knu) · 1.14
Add portupgrade, a tool to upgrade installed packages with ports.

It upgrades ports without reinstalling dependent packages by directly
modifying the package info recorded in the files under /var/db/pkg.

e.g.
	portupgrade gtk
	portupgrade -cC gnome\*

It currently has many design flaws (to me at least) but I am releasing
this because it's functionally stable enough to use. (I believe.. ;)

Use with care, at your own risk.
230a5071f6