Skip to main content

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!