overlint: Static analysis for your Gentoo overlay
While repoman does a good job of finding smells in ebuilds, a tool to evaluate an overlay with respect to the state of the Gentoo main tree has to my knowledge been missing so far. overlint is a simple command line tool. From a technical view point it reports
- which version bumps from the overlay are missing from the main tree (e.g. the overlay has 7.1 but the main tree has 7.0, only),
- which revision bumps are missing from the main tree (e.g. the overlay has 3.0-r1 but the main tree has 3.0, only), and
- which exact same revisions exist in both trees with differing ebuilds.
On a higher level these findings often indicate that
- certain changes are still to be integrated with the Gentoo main tree to benefit a wider audience and/or that
- an ebuild appeared in an overlay first but can be removed now as the Gentoo main tree has grown an equivalent (or identical) copy.
As a consequence overlint has two main use cases, each with a different user audience:
- Overlay maintainers can use overlint to better keep their overlay in shape.
- Gentoo developers and proxy maintainers can use overlint to detect valuable patches missing from the main tree.
Here is example output of overlint 0.4.1 for the calculate overlay:
# overlint-cli /var/lib/layman/calculate/ =============================================================== Version bumps missing from Gentoo main tree =============================================================== net-misc/ italc :: 1.0.13, 2.0.0 net-print/ foo2zjs :: 20081129, 20110512 net-wireless/ madwifi-ng :: 0.9.4.4178.20120131 madwifi-ng-tools :: 0.9.4.4178.20120131 =============================================================== Revision bumps missing from Gentoo main tree =============================================================== app-arch/ unzip :: 6.0-r9 app-text/ wgetpaste :: 2.18-r1 =============================================================== Ebuils that differ at same revision =============================================================== app-forensics/ unhide :: 20110113 dev-util/ bin_replace_string :: 0.2 qt-creator :: 2.4.1 sys-auth/ pam_keystore :: 0.1.3 sys-block/ tw_cli :: 9.5.3 sys-boot/ grub :: 1.99-r2 sys-libs/ talloc :: 2.0.7 virtual/ linux-sources :: 0
To get it run:
# sudo emerge -av app-portage/overlint
The source code is up on http://git.overlays.gentoo.org/gitweb/?p=proj/overlint.git;a=summary. For small patches just send them along, for bigger ones get in touch before the work, please. Thanks!