Warn when PKGBUILD provides an unversioned package
TL;DR: Pacman gives up on version bounds checking if a package provides a package unversioned, warn against such behaviour to make pacman more robust.
Consider the following common scenario. A package D' which is a variant of D is made (eg a VCS nightly package).
The packager adds provides=(D) to D''s PKGBUILD so that packages depending on D can work with D' instead.
Now a package P needs some version guarantees on D -- maybe it's tightly coupled with particular versions of D
and needs D=$verD1, maybe it needs a bugfix in D only provided in a certain version2 (in particular, a nightly D' in AUR
might be ahead of D in the official repos and might provide that version). So P adds depends=('D>=$verD)`.
Unfortunately, this combination does not work -- on a system with D' installed, attempting to install P will fail with target not found: D>=$verD. Pacman's blindness to the existing D' is confusing and hard to diagnose if one is unaware of this behaviour.
(To be fair to pacman, this conservatism makes sense -- perhaps eg the upstream changed versioning schemes when it changed names)
To make avoiding these kinds of situations easier, namcap should warn against unversioned provides in a PKGBUILD, ie bare provides=(pkg) lines with no versioning information.
See also pacman#225 This was also (mistakenly) reported at: archlinux/devtools#265 (closed)