PORTVERSION(1)

NAME
portversion - a tool to compare the versions of installed packages with the ones in the ports tree

SYNOPSIS
portversion [-hrOqRv] [-l limit_chars] [-L inv_limit_chars] [-x pkgname_glob] [pkgname_glob]
portversion [-v] -t ver0 ver1 [ver2 ...]

DESCRIPTION
portversion is used to produce a report of installed ports/packages.

Each package's version number is checked against the corresponding entry in the ports database to see if a newer version is available for upgrade. If a pacakge is not found in the database, portversion inspects the origin port to get the version.

portversion is very similar to pkg_version(1), but is optimized for portupgrade(1) and runs much faster than pkg_version(1) thanks to the ports database generated from the INDEX file. See portsdb(1) for details.

Each package name is printed, along with a one-character status flag:

=   The installed version of the package is current.

<   The installed version of the package is older than the current version.

>   The installed version of the package is newer than the current version. This situation can arise with using an out-of-date INDEX file, or when testing new ports.

?   The installed package does not appear in the database nor does the port directory exist. This could be because the port has been removed from the official ports tree, or because the package was installed from an unofficial (or not yet committed) port, or because the INDEX file has not been synchronized (updated) with the ports tree yet.

!   The installed package does not appear in the database, the port directory actually exists, the port's Makefile is broken and the latest version number cannot be obtained.

#   The installed package does not have an origin recorded. This could be because the package was installed before the concept of ‘origin’ was introduced. You can run “pkgdb -F” to complete missing origins.

You can resolve most out-of-date situations by updating the ports tree and running “portsdb -U”. (See portsdb(1) for details)

Before reading these instructions, you must understand that a port/package can have the following two types of related ports/packages:
required
    Ports/packages that a port/package needs for it to be built and/or run. Port Makefiles refer to this type of ports/packages using the BUILD_DEPENDS and RUN_DEPENDS macros, respectively.
dependent
    Ports/packages that need this port/package.

OPTIONS
The following command line arguments are supported:

pkgname_glob
    Specify one of these: a full pkgname, a pkgname without version, a shell glob pattern in which you can use wildcards ‘*’, ‘’?, and ‘[..]’, an extended regular expression preceded by a colon ‘’:, or a date range specification preceded by either ‘<’ or ‘>’. See pkg_glob(1) for details and concrete examples.

    If none is specified, portversion checks all the installed packages.

    In any case, the results will be listed in alphabetical order, not in dependency order as with other tools.

-h
--help
    Show help and exit.

-c
--command-output
    Enable command output. Command output includes a command of portupgrade(1) you should run to upgrade your installed packages to the latest versions in the ports system. This feature does not constitute an automated packages upgrading system. Edit the list of packages to upgrade and the options for portupgrade(1) and run it to perform the upgrade.

-C ARGS
--command-args ARGS
    Specify options to pass to portupgrade(1) to be used in the command output.

-l CHARS
--limit CHARS
    Only include the packages with the specified status flags.

-L CHARS
--inv-limit CHARS
    Exclude the packages with the specified status flags.

-O
--omit-check
    Omit sanity checks for dependencies. By default, portversion checks whether all packages it is to check have consistent dependencies, though it takes extra time to calculate dependencies. If you are sure you have run “pkgdb -F” in advance, you can specify this option to omit the sanity checks.

-q
--noconfig
    Do not read the configuration file. ($PREFIX/etc/pkgtools.conf)

-r
--recursive
    Check all packages depending on the given packages as well.

-R
--upward-recursive
    Check all packages required by the given packages as well.

-t
--test
    Compare the version with the following one(s), and print the result(s).

-v
--verbose
    Turn on verbose output.

-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 check for all the packages depending on XFree86 but not for XFree86:

    portupgrade -rx XFree86 XFree86

ENVIRONMENT
PKG_DBDIR
    Alternative location for the installed package database. The default is “/var/db/pkg”.

PORTSDIR
    Alternative location for the ports tree and the ports database files. The default is “/usr/ports”.

PKGTOOLS_CONF
    Configuration file for the pkgtools suite. The default is “$PREFIX/etc/pkgtools.conf”.

FILES

/var/db/pkg
    Default location of the installed package database.

/usr/ports
    Default location of the ports tree and the ports database files.

$PREFIX/etc/pkgtools.conf
    Default location of the pkgtools configuration file.

SEE ALSO
pkg_glob(1), pkg_info(1), pkg_sort(1), pkg_version(1), pkgdb(1), portsdb(1), portupgrade(1), pkgtools.conf(5), ports(7)

AUTHORS
Akinori MUSHA <knu@iDaemons.org>