find_expired() is used with -F (report on all expired ports using the
format "date category/port: reason") and -a (remove all expired ports).
Some speedups:
- only calculate the deprecation reason for -F
- use nested loops instead of nested recursion for traversing all ports.
The nested recursion would also stop after finding the first port.
Approved by: maintainer (crees) (implicit, fixit)
Instead of grepping port Makefiles for EXPIRATION_DATE, evaluate this variable
using make. Also find ports by evaluating SUBDIR recursively instead of using
find on Makefile\*
Submitted by: crees (maintainer)
Approved by: crees (maintainer)
- allow PORTSDIR to be a symbolic link when looking for expired ports or
dependent ports
- allow for trailing slashes when specifying ports as cat/name. This prevents
the port being a false positive for itself when the Makefile mentions the
port name (e.g., in PLIST_FILES)
- fetch possibly open PRs via Bugzilla, GNATS is long gone. Remove the
version that used freefall. Thanks to crees for pretty-printing the results.
- forcibly delete the temporary checkout to prevent rm(1) from asking for
confirmation on each file in .svn
- add myself as author
Approved by: maintainer (crees)
Differential Revision: https://reviews.freebsd.org/D6396
Approved by: vd (maintainer)
- Make the diff output work
- Use cdiff if exists, otherwise stick with $EDITOR
- Stop trying to remove CVSROOT; hasn't been checked out since modules
support was removed by erwin
with very long arguments (>400000 characters).
The problem reveals for example if
/usr/ports/Tools/scripts/rmport -d print/ghostscript-gnu
is executed - it does
printf "%s\n" "... 451109 chars ..."
Spotted by: rafan
and continue with removal anyway. Requested by miwi@
* Pipe dependencies information (if any) through a PAGER because INDEX lines
are very long and hard to read when wrapped
to be removed, possibly with the expiration date and deprecated reason
* If port is not marked for expiration than put "Removed" in ports/MOVED
entry instead of "Has expired"
* Implement -a option to remove all expired ports
* Ask if the cvs diff output should be recreated/reviewed again thus
giving the committer a chance to edit files by hand and view diff
results afterwards
* Cosmetic changes
When removing category/port - look if other ports' Makefiles contain
`/port' rather than `category/port', since the later misses things
like `${.CURDIR}/../port'