He's not dead, he's resting
Classifying Repository Masks
In the olden days, when carpaskis roamed the earth and people still used CVS, Gentoo’s package.mask looked like this:
Then people started putting in comments:
# S. Lacker <firstname.lastname@example.org> (1 Apr 2001) # Randomly makes giant space monkeys attack you with # pointy sticks on startup. =some-cat/some-pkg-1.23 =some-cat/some-pkg-data-1.23
Since the comments were in a standard format, Portage then started parsing the comments to be able to show the text to users. Paludis also supports this, and Exherbo originally copied Gentoo’s convention.
This is of course disgusting. Recently Exherbo has switched to a new mask format:
( some-cat/some-pkg[=2.34] some-cat/some-pkg-data[=2.34] ) [[ *author = [ S. Lacker <email@example.com> ] *date = [ 29 Feb 2011 ] *token = [ testing ] *description = [ Seems to be a bit iffy. Needs more testing. ] ]]
Which is consistent with how annotations are used in exheres-0. Of particular note is the token field.
When unmasking a package, it’s very easy to accidentally unmask more than what you were after. For example, you might be wanting to unmask testing releases for something, but not also unmask scm or insecure versions. Since masks on Gentoo aren’t classified, there’s no way of doing that. But on Exherbo it’s now possible — masks are now marked with a token (such as scm, testing, broken or insecure), and in package_unmask.conf users can do this:
# Unmask only testing versions (and not scm) x11-drivers/xf86-video-nouveau testing x11-dri/libdrm testing # Ignore security masks for PHP, since otherwise we'd never be # able to use it at all. But don't unmask scm or broken versions. dev-lang/php security
If we can encourage users to make use of this, it should lead to a large reduction in people breaking their systems or getting horrible resolutions by overly broad unmasking.