Sumary: CentOS 5.1 GMVault install very complicated, but worked, Ubuntu 10.04 install worked and was easier.
(Higher CentOS and Ubuntu versions claimed to work because of higher Python version)

So I tried to install GMVault (gmail backup software) on my linux CentOS 5.1. But there are issues, i will try to sumarize everything there, trying to install gmvault on my centos. Maybe it can help anyone, if you have ideas, please share if you can..

GMVult downloads: http://gmvault.org/download.html
I used this version: https://bitbucket.org/gaubert/gmvault-official-download/downloads/gmvault-v1.8.1-beta-src.tar.gz
Valid for all platforms (Linux, Mac OSX, Windows) if you have a Python 2.7.x or 2.6.x preinstalled.
This is the installation recommended for Linux.
Install procedure:
wget https://bitbucket.org/gaubert/gmvault-official-download/downloads/gmvault-v1.8.1-beta-src.tar.gz
tar xvzf gmvault-v1.8.1-beta-src.tar.gz
cd gmvault-1.8.1-beta;ls
MANIFEST.in PKG-INFO README.txt RELEASE-NOTE.txt build dist etc gmvault.egg-info python-pip-0.8-1.el5.noarch.rpm setup.cfg setup.py src
python setup.py install
Output:
PATH = ./src/gmv/gmvault_utils.py

1.8.1-beta
Gmvault version = 1.8.1-beta


running install
running bdist_egg
running egg_info
writing requirements to gmvault.egg-info/requires.txt
writing gmvault.egg-info/PKG-INFO
writing top-level names to gmvault.egg-info/top_level.txt
writing dependency_links to gmvault.egg-info/dependency_links.txt
reading manifest file 'gmvault.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'gmvault.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
creating build/bdist.linux-x86_64/egg
creating build/bdist.linux-x86_64/egg/gmv
copying build/lib/gmv/imap_utils.py -> build/bdist.linux-x86_64/egg/gmv
copying build/lib/gmv/__init__.py -> build/bdist.linux-x86_64/egg/gmv
copying build/lib/gmv/test_utils.py -> build/bdist.linux-x86_64/egg/gmv
copying build/lib/gmv/gmv_cmd.py -> build/bdist.linux-x86_64/egg/gmv
copying build/lib/gmv/credential_utils.py -> build/bdist.linux-x86_64/egg/gmv
copying build/lib/gmv/cmdline_utils.py -> build/bdist.linux-x86_64/egg/gmv
copying build/lib/gmv/gmvault_export.py -> build/bdist.linux-x86_64/egg/gmv
copying build/lib/gmv/gmvault_const.py -> build/bdist.linux-x86_64/egg/gmv
copying build/lib/gmv/progress_test.py -> build/bdist.linux-x86_64/egg/gmv
copying build/lib/gmv/collections_utils.py -> build/bdist.linux-x86_64/egg/gmv
copying build/lib/gmv/validation_tests.py -> build/bdist.linux-x86_64/egg/gmv
creating build/bdist.linux-x86_64/egg/gmv/conf
copying build/lib/gmv/conf/__init__.py -> build/bdist.linux-x86_64/egg/gmv/conf
copying build/lib/gmv/conf/exceptions.py -> build/bdist.linux-x86_64/egg/gmv/conf
creating build/bdist.linux-x86_64/egg/gmv/conf/utils
copying build/lib/gmv/conf/utils/__init__.py -> build/bdist.linux-x86_64/egg/gmv/conf/utils
copying build/lib/gmv/conf/utils/struct_parser.py -> build/bdist.linux-x86_64/egg/gmv/conf/utils
copying build/lib/gmv/conf/utils/struct_parser_tests.py -> build/bdist.linux-x86_64/egg/gmv/conf/utils
copying build/lib/gmv/conf/conf_tests.py -> build/bdist.linux-x86_64/egg/gmv/conf
copying build/lib/gmv/conf/conf_helper.py -> build/bdist.linux-x86_64/egg/gmv/conf
copying build/lib/gmv/log_utils.py -> build/bdist.linux-x86_64/egg/gmv
copying build/lib/gmv/gmvault_utils.py -> build/bdist.linux-x86_64/egg/gmv
copying build/lib/gmv/blowfish.py -> build/bdist.linux-x86_64/egg/gmv
copying build/lib/gmv/mod_imap.py -> build/bdist.linux-x86_64/egg/gmv
copying build/lib/gmv/gmvault_db.py -> build/bdist.linux-x86_64/egg/gmv
copying build/lib/gmv/gmvault.py -> build/bdist.linux-x86_64/egg/gmv
byte-compiling build/bdist.linux-x86_64/egg/gmv/imap_utils.py to imap_utils.pyc
byte-compiling build/bdist.linux-x86_64/egg/gmv/__init__.py to __init__.pyc
byte-compiling build/bdist.linux-x86_64/egg/gmv/test_utils.py to test_utils.pyc
byte-compiling build/bdist.linux-x86_64/egg/gmv/gmv_cmd.py to gmv_cmd.pyc
File "build/bdist.linux-x86_64/egg/gmv/gmv_cmd.py", line 437
parsed_args['two_legged'] = True if options.two_legged_oauth_token == 'empty' else False
^
SyntaxError: invalid syntax
byte-compiling build/bdist.linux-x86_64/egg/gmv/credential_utils.py to credential_utils.pyc
byte-compiling build/bdist.linux-x86_64/egg/gmv/cmdline_utils.py to cmdline_utils.pyc
byte-compiling build/bdist.linux-x86_64/egg/gmv/gmvault_export.py to gmvault_export.pyc
byte-compiling build/bdist.linux-x86_64/egg/gmv/gmvault_const.py to gmvault_const.pyc
byte-compiling build/bdist.linux-x86_64/egg/gmv/progress_test.py to progress_test.pyc
byte-compiling build/bdist.linux-x86_64/egg/gmv/collections_utils.py to collections_utils.pyc
byte-compiling build/bdist.linux-x86_64/egg/gmv/validation_tests.py to validation_tests.pyc
byte-compiling build/bdist.linux-x86_64/egg/gmv/conf/__init__.py to __init__.pyc
byte-compiling build/bdist.linux-x86_64/egg/gmv/conf/exceptions.py to exceptions.pyc
File "build/bdist.linux-x86_64/egg/gmv/conf/exceptions.py", line 53
% (lineno, location, msg) if lineno != - 1 \
^
SyntaxError: invalid syntax
byte-compiling build/bdist.linux-x86_64/egg/gmv/conf/utils/__init__.py to __init__.pyc
byte-compiling build/bdist.linux-x86_64/egg/gmv/conf/utils/struct_parser.py to struct_parser.pyc
byte-compiling build/bdist.linux-x86_64/egg/gmv/conf/utils/struct_parser_tests.py to struct_parser_tests.pyc
byte-compiling build/bdist.linux-x86_64/egg/gmv/conf/conf_tests.py to conf_tests.pyc
byte-compiling build/bdist.linux-x86_64/egg/gmv/conf/conf_helper.py to conf_helper.pyc
File "build/bdist.linux-x86_64/egg/gmv/conf/conf_helper.py", line 54
self._cli_arg = a_cli_argument.lower() if a_cli_argument is not None else None
^
SyntaxError: invalid syntax
byte-compiling build/bdist.linux-x86_64/egg/gmv/log_utils.py to log_utils.pyc
byte-compiling build/bdist.linux-x86_64/egg/gmv/gmvault_utils.py to gmvault_utils.pyc
File "build/bdist.linux-x86_64/egg/gmv/gmvault_utils.py", line 600
with open(home_conf_file) as curr_fd:
^
SyntaxError: invalid syntax
byte-compiling build/bdist.linux-x86_64/egg/gmv/blowfish.py to blowfish.pyc
byte-compiling build/bdist.linux-x86_64/egg/gmv/mod_imap.py to mod_imap.pyc
File "build/bdist.linux-x86_64/egg/gmv/mod_imap.py", line 313
typ, data = self._imap.append(self._encode_folder_name(folder) if folder else None,
^
SyntaxError: invalid syntax
byte-compiling build/bdist.linux-x86_64/egg/gmv/gmvault_db.py to gmvault_db.pyc
File "build/bdist.linux-x86_64/egg/gmv/gmvault_db.py", line 435
gmvault_utils.buffered_write(data_desc, data) if len(data) > 4194304 else data_desc.write(data)
^
SyntaxError: invalid syntax
byte-compiling build/bdist.linux-x86_64/egg/gmv/gmvault.py to gmvault.pyc
File "build/bdist.linux-x86_64/egg/gmv/gmvault.py", line 122
% (the_id, (gmail_id if gmail_id else "cannot be read")))
^
SyntaxError: invalid syntax
creating build/bdist.linux-x86_64/egg/EGG-INFO
installing scripts to build/bdist.linux-x86_64/egg/EGG-INFO/scripts
running install_scripts
running build_scripts
creating build/bdist.linux-x86_64/egg/EGG-INFO/scripts
copying build/scripts-2.4/gmvault -> build/bdist.linux-x86_64/egg/EGG-INFO/scripts
changing mode of build/bdist.linux-x86_64/egg/EGG-INFO/scripts/gmvault to 755
copying gmvault.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying gmvault.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying gmvault.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying gmvault.egg-info/requires.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying gmvault.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
zip_safe flag not set; analyzing archive contents...
gmv.conf.conf_tests: module references __path__
creating 'dist/gmvault-1.8.1_beta-py2.4.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing gmvault-1.8.1_beta-py2.4.egg
removing '/usr/lib/python2.4/site-packages/gmvault-1.8.1_beta-py2.4.egg' (and everything under it)
creating /usr/lib/python2.4/site-packages/gmvault-1.8.1_beta-py2.4.egg
Extracting gmvault-1.8.1_beta-py2.4.egg to /usr/lib/python2.4/site-packages
File "/usr/lib/python2.4/site-packages/gmvault-1.8.1_beta-py2.4.egg/gmv/gmv_cmd.py", line 437
parsed_args['two_legged'] = True if options.two_legged_oauth_token == 'empty' else False
^
SyntaxError: invalid syntax
File "/usr/lib/python2.4/site-packages/gmvault-1.8.1_beta-py2.4.egg/gmv/gmvault_utils.py", line 600
with open(home_conf_file) as curr_fd:
^
SyntaxError: invalid syntax
File "/usr/lib/python2.4/site-packages/gmvault-1.8.1_beta-py2.4.egg/gmv/mod_imap.py", line 313
typ, data = self._imap.append(self._encode_folder_name(folder) if folder else None,
^
SyntaxError: invalid syntax
File "/usr/lib/python2.4/site-packages/gmvault-1.8.1_beta-py2.4.egg/gmv/gmvault_db.py", line 435
gmvault_utils.buffered_write(data_desc, data) if len(data) > 4194304 else data_desc.write(data)
^
SyntaxError: invalid syntax
File "/usr/lib/python2.4/site-packages/gmvault-1.8.1_beta-py2.4.egg/gmv/gmvault.py", line 122
% (the_id, (gmail_id if gmail_id else "cannot be read")))
^
SyntaxError: invalid syntax
File "/usr/lib/python2.4/site-packages/gmvault-1.8.1_beta-py2.4.egg/gmv/conf/exceptions.py", line 53
% (lineno, location, msg) if lineno != - 1 \
^
SyntaxError: invalid syntax
File "/usr/lib/python2.4/site-packages/gmvault-1.8.1_beta-py2.4.egg/gmv/conf/conf_helper.py", line 54
self._cli_arg = a_cli_argument.lower() if a_cli_argument is not None else None
^
SyntaxError: invalid syntax
gmvault 1.8.1-beta is already the active version in easy-install.pth
Installing gmvault script to /usr/bin


Installed /usr/lib/python2.4/site-packages/gmvault-1.8.1_beta-py2.4.egg
Processing dependencies for gmvault==1.8.1-beta
Searching for gdata==2.0.17
Reading http://cheeseshop.python.org/pypi/gdata/
Reading http://code.google.com/p/gdata-python-client/
Reading http://cheeseshop.python.org/pypi/gdata/2.0.18
No local packages or download links found for gdata==2.0.17
error: Could not find suitable distribution for Requirement.parse('gdata==2.0.17')
Commentary from GMVault support regarding above error:
It seems that you are using a very old version of python 2.4 which is from 2004 (10 years old). Gmvault is compliant with python 2.6 and 2.7 and probably 2.5 but it has not been tested.
You should upgrade your python distribution.
and really, # python -V
Python 2.4.3

# cat /etc/issue
CentOS release 5.10 (Final)

So on CentSO i ended up with buggy installation thanks to incompatible application GMVault to the old Python 2.4.3 which i have on my CentOS, yum wont upgrade Python, and its advised not to upgrade old python manually at CentOS (because it can cause some issues, rather installing from archive, so i did installed it this way (executing commands one by one):

mkdir pythoninstall_tempdelete;cd pythoninstall_tempdelete
wget http://www.python.org/ftp/python/2.7/Python-2.7.tgz;tar xvzf Python-2.7.tgz;cd Python-2.7
./configure
make
make install

then new python 2.7 version should be ready.

Now try to install from gmvault folder again using command:

python2.7 setup.py install (note python2.7, not python)

and it returns a message like at ubuntu:
Traceback (most recent call last):
File "setup.py", line 20, in <module>
from setuptools import setup, find_packages
ImportError: No module named setuptools
So i installed module "setuptools" manually:
# wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c8.tar.gz#md5=0e9bbe1466f3ee29588cc09d3211a010 --no-check-certificate
# tar xvzf setuptools-0.6c8.tar.gz;cd setuptools-0.6c8
# python2.7 setup.py build
# python2.7 setup.py install

If you got "RuntimeError: Compression requires the (missing) zlib module", try command: yum install zlib zlib-devel

then again:
# python setup.py install (we are still in setuptools* directory)

in my case it finished without errors.

Then go back to gmvault directory and trying setup again on CentOS:
# python setup.py install

it appears it succeeded without errors. so gmvault install was finished, now try to launch gmvault itself, i have the script at /root/gmail/gmvault-1.8.1-beta/etc/scripts/gmvault

# ./gmvault sync [email protected]

Result:
Odd. Use default python2.7.x or 2.6.x distribution.
Traceback (most recent call last):
File "/tmp/gmvault.bootstrap.11914", line 1, in <module>
import gmv.gmv_cmd as runner
ImportError: No module named gmv.gmv_cmd
what now? We need to install ZLib module into Python?

Here is the way how programmer continues and managed to make GMVault working:

It is now working.I recompiled a python2.7 and it is under /root/python2.7.6/bin
I also had to install openssl dev on your machine to make the setup tools working.
I have install gmvault and you can run it by doing:
$>gmvault


I have added /root/python2.7.6/bin in your path in your bash_profile.


You will now have to create an OAUTH token and for that you need a browser as impose by Gmail.
If you cannot launch a browser on your machine do it on your local workstation and copy the token generated in .gmvault


You can also use your Gmail password instead but it isn't recommended.


I would appreciate if you could chip-in and support Gmvault to allow releasing further versions.
And quick synopsis of his steps:
Install zlib zlib-devel
install openssl openssl-dev


Download python2.7.x
compile it


install the setuptools and pip
install gmvault using pip
If anyone have exact commands, please kindly share it and i will include it in this manual.

===============

I tried also Ubuntu... (AND IT WORKED there):

cat /etc/issue
Ubuntu 10.04.1 LTS \n \l

python -V
Python 2.6.5 ! <-- that can be better

Doing same GMVault install proces like on CentOS..
# python setup.py install
Traceback (most recent call last):
File "setup.py", line 20, in <module>
from setuptools import setup, find_packages
ImportError: No module named setuptools
So i installed module setuptools, according to this manual:
# wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c8.tar.gz#md5=0e9bbe1466f3ee29588cc09d3211a010 --no-check-certificate
# tar xvzf setuptools-0.6c8.tar.gz;cd setuptools-0.6c8
# python setup.py build
# python setup.py install

and then it went somewhat thru the install process (on Ubuntu where is Python 2.6.5)..
# python setup.py install

then i launched gmvault app from folder gmvault-1.8.1-beta/etc/scripts:
# ./gmvault sync [email protected]

It needed to authenticate to gmail first time (Oauth..), it launched w3m linux internet browser, but it never logged me into gmail, so i did key "q" as quit (as Jasnon N intoroduced) and coppied & run Oauth URL in my MS Windows browser manually. The Oauth URL should be seen when you quit w3m browser. (https://www.google.com/accounts/OAuthAuthorizeToken?oauth_token=****************** *************) but when you do CTRL+C, it quit the gmvault session and on next run generate another OAuth. So you need to copy URL the way that you select URL by mouse for example and then click right click. (in Putty ssh client right click saves the selected text into clipboard (memory). So you can paste Ctrl+V into windows browser.


then after authenticated, hit Enter key in terminal and it started to download emails into /root/gmvault-db folder. My 90K emails taken around 4 hours.