Aaron Griffin wrote:
This is a little "heads up" email to all the package maintainers out there.
Pacman 3.1 has support for versioned provisions. But what this also means is that there's going to be some breakages in packages.
Let me explain by way of example:
package foo depends=(bar>=1.2) package omg provides=(bar)
In the past, you could install both foo and omg at the same time and everything would be satisfied. Not now. Now, the provision of "omg" will fail, because it's not providing the right version.
What does this mean? Well, a few things. First and foremost, versioned provisions are a little broken in 3.1.0, but 3.1.1 will fix all this py allowing you to say: provides=(bar=1.2)
Did I get this right? Dan, Xavier?
Yes, I only want to clarify that packagers need to wait for 3.1.1 to be released before starting to update their packages. And this feature is useful because in the above case, omg package could be at version 0.1. pacman 3.0 deduced from this that omg package provided bar-0.1 But there was no way to specify that omg actually provided bar-1.2, and thus satisfied the bar>=1.2 dependency of foo package. There is one point that wasn't appreciated by several people though. When no provision version is specified, pacman no longer defaults to the package version. Why? Consider for example in the above case that the package omg is at version 2.0, but doesn't provide 1.2 version of bar, only 1.0. With the old behavior, pacman would still accept to install omg package as a dependency of foo, which would result in a broken system. Finally, there are quite a few cases where the package version and the provision version are not related. You can have a look at all provides lines in the /var/abs tree : find /var/abs -name PKGBUILD | xargs egrep '^provides|^pkgname|^pkgver' |grep provides -B2 First, there are virtual provisions, like sh, cron, smtp-server. But there are other good candidates, here are a few ones: nvidia-utils and fglrx-utils provide libgl avahi provides howl and mdnsresponder python provides python-ctypes gamin provides fam etc... And then consider all the devel packages (cvs, svn, etc).