Package Generation Notes for gsutil

Gsutil can be distributed in one of three ways:

1. legacy mode - User unpacks archive file into a private directory tree 
and maintains his/her own private copy of gsutil, boto, etc. This is the 
only supported installation mode for Windows users.

2. enterprise mode - User unpacks the gsutil archive file and runs
'python setup.py install' (as root), which installs everything into 
a shared directory tree (/usr/share/gsutil) with a symlink from 
/usr/bin/gsutil to /usr/share/gsutil/gsutil to provide easy access to
the shared gsutil command. In enterprise mode, the software gets installed 
in one shared location, which makes it easier to install, update and 
manage gsutil for a community of users.

NOTE: Enterprise mode (installing gsutil via setup.py) is no longer 
officially supported - unpacking the zip file into a directory is the 
preferred method for installing gsutil for both shared and private 
configurations.

3. rpm mode - User installs the gsutil rpm package file on a Red Hat
Linux system using the rpm command. The resulting installation image 
looks precisely the same as the results of installing with enterprise 
mode, i.e. a shared directory tree (/usr/share/gsutil) with a symlink 
from /usr/bin/gsutil. rpm mode is intended for enterprises that want 
a stable release that does not necessarily contain the latest changes.

All three modes derive their inventory from a common text file called
MANIFEST.in. If you want to add one or more new files or directories, 
you only need to edit that one file and all three installation modes
will automatically inherit the change(s). 

GENERATING PACKAGE FILES

First update the VERSION file and the gsutil.spec files to reflect the 
new version number.

Legacy mode and enterprise mode are both embodied in the same gsutil
archive file, the only difference being that the latter entails running 
one additional command after unpacking the gsutil archive file. So the
same archive file we've always distributed for gsutil will be used for
both legacy and enterprise installation modes.

For rpm mode, there's a new tool call pkg_gen.sh, which when run with no
arguments creates an rpm file at this location:

  $HOME/rpmbuild/RPMS/noarch/gsutil-2.0-1.noarch.rpm

