He's not dead, he's resting

EAPI 3: Controllable Compression

This is part of a series on EAPI 3.

Gentoo is, as everyone knows, about choice. This means it is considered vitally important that users get to choose such earth-shatteringly important matters as which program is used to compress their documentation files. It doesn’t matter that blockers repeatedly confuse people, that the tree is an unmanageable mess or that there’s no way of handling USE flag requirements — ensuring that the user’s choice of compression is applied to a small number of documentation files in every case is critical to Gentoo’s future.

As such, EAPI 3 introduces controllable compression. It works like this:

  • The package manager maintains a list of things that may be compressed in some arbitrary way. By default, this list includes /usr/share/doc/, /usr/share/info and /usr/share/man.
  • The package manager also maintains a list of things to be excluded from the above compression. By default, this list includes /usr/share/doc/${PF}/html.
  • Inside src_install, packages can add things to the inclusion list using docompress blah, and to the exclusion list using docompress -x blah.
  • After src_install has finished, the package manager may apply some kind of compression to anything in the inclusion list that is not also in the exclusion list.

PMS is carefully worded to allow all of this nonsense to be a no-op.

Controllable compression is a Gentoo-original feature, and clear proof that there is no magic external cabal dictating Gentoo’s future, since they’d never let people get away with this if there were.


One response to “EAPI 3: Controllable Compression

  1. Pingback: What’s in EAPI 3? « Ciaran McCreesh’s Blag

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s