Portage writes a compressed copy of 'Packages' index file.
authorW-Mark Kubacki <wmark@hurrikane.de>
Wed, 8 Aug 2012 16:49:36 +0000 (18:49 +0200)
committerZac Medico <zmedico@gentoo.org>
Wed, 8 Aug 2012 20:18:43 +0000 (13:18 -0700)
commit11c0619c63b54346ee5c67cd67ab1ccb24f5f947
treef11059016c9b2e7b40b319eb414723abbb4b9c52
parent9168d4c184a16e9b992e22bb5d6f3d88b25309b9
Portage writes a compressed copy of 'Packages' index file.

This behaviour is enabled by FEATURES="compress-index". The
resulting file is 'Packages.gz' and its modification time will
match that of 'Packages'.

Web-servers use that copy to avoid repeated on-the-fly compression.

In order to re-use 'atomic_ofstream' usage of 'codecs.zlib_codec'
has been considered and discarded, because 'GzipFile' yields
smaller files. (According to Mark's tests 62% smaller.)

Example usage, Nginx:

  location =/Packages {
    gzip_static on;
    default_type text/plain;
  }

Apache httpd (use with caution):

  RewriteRule ^(.*)/Packages$ $1/Packages.gz [T=text/plain,E=GZIP:gzip,L]
  <FilesMatch "Packages\.gz$">
    Header set Content-Encoding gzip
  </FilesMatch>
man/make.conf.5
pym/portage/const.py
pym/portage/dbapi/bintree.py