# check_old_rel_pkgs[_quick].sh
## Description
Small scripts to list ports/pkgs needs updating with base ABI change.
Could be helpful after major release upgrade.
## Usage
No command line arguments.
Simply run it as a bourne shell script.
Quick version has less functionality but much faster.
Output is directed to stdout, so redirect to file if needed.
### Quick version
Output format is as follows.
Port `origin` : `arch`
Only ABI major version part of arch is checked if it mathes `CURVERS` below or not,
and unmatched ports is listed.
Not flavor aware.
### Normal version
Output format is space separated as follows.
`origin arch lock removed`
Where:
* origin is the ports/pkgs origin. If any, @flavor is shown.
* arch is architecture string on pkg database like
FreeBSD:14:amd64
where:
* FreeBSD as operating system
* 14 as major OS release
* amd64 as CPU architecture
* lock is the pkg lock status.
* FREE for not locked.
* LOCKED for locked.
* removed for existence on ports tree.
* EXISTS for not deleted.
* DELETED for ports having MOVED entry without any successor.
If CPU architecture is "*", it means the port/pkg is independent from CPU architecture like fonts, documents and/or scripts.
Why FREE and EXISTS is shown?
It's for scripts to handle the output easier.
As the output is directed to stdout, you can connect to pipe for further processing, or to file to keep.
As `cut -w` handles multiple space characters as single, I decided to output verbosely.
## Configuring the script
### CURVERS
You need to specify current major release here.
13 for 13.*[-p*] or stable/13, 14 for 14.*[-p*] or stable/14.
For main branch, you should specify latest stable branch + 1.
When stable/14 is the latest, set it as 15.
### PORTSDIR
The directory where ports tree to be used exists.
Default is where vanilla FreeBSD expects: /usr/ports
This is not used for quick version.
## Sample output line
### Quick version
`Port editors/vim : FreeBSD:14:amd64`
### Normal version
`editors/vim@console FreeBSD:14:amd64 FREE EXISTS`