virtualenv/res/lib/lib_create_env.py
changeset 2 b380dc74b590
parent 0 896db0083b76
child 10 9ea5f8ba8e71
--- a/virtualenv/res/lib/lib_create_env.py	Thu May 26 17:17:04 2011 +0200
+++ b/virtualenv/res/lib/lib_create_env.py	Fri May 27 18:20:22 2011 +0200
@@ -29,14 +29,16 @@
         'JCC': {'setup': 'jcc', 'url': 'http://pylucene-win32-binary.googlecode.com/files/JCC-2.6-py2.6-win32.egg', 'local':"JCC-2.6-py2.6-win32.egg"},
         'PYLUCENE': {'setup': 'pylucene', 'url': 'http://pylucene-win32-binary.googlecode.com/files/lucene-3.0.2-py2.6-win32.egg', 'local':"lucene-3.0.2-py2.6-win32.egg"},
         'PIL': {'setup': 'pil', 'url': 'http://effbot.org/media/downloads/PIL-1.1.7.win32-py2.6.exe', 'local':"PIL-1.1.7.win32-py2.6.exe"},
-        'LXML': {'setup': 'lxml', 'url': 'http://pypi.python.org/packages/2.6/l/lxml/lxml-2.2.2-py2.6-win32.egg', 'local':"lxml-2.2.2-py2.6-win32.egg"}
+        'LXML': {'setup': 'lxml', 'url': 'http://pypi.python.org/packages/2.6/l/lxml/lxml-2.2.2-py2.6-win32.egg', 'local':"lxml-2.2.2-py2.6-win32.egg"},
+        'PYYAML' : { 'setup': 'PyYAML', 'url': 'http://pyyaml.org/download/pyyaml/PyYAML-3.09.win32-py2.6.exe', 'local': 'PyYAML-3.09.win32-py2.6.exe'},
     })
 else:
     URLS.update({
         'PSYCOPG2': {'setup': 'psycopg2','url': 'http://www.psycopg.org/psycopg/tarballs/PSYCOPG-2-4/psycopg2-2.4.tar.gz', 'local':"psycopg2-2.4.tar.gz"},
         'PYLUCENE': {'setup': 'pylucene', 'url': 'http://apache.crihan.fr/dist//lucene/pylucene/pylucene-3.1.0-1-src.tar.gz', 'local':"pylucene-3.1.0-1-src.tar.gz"},
         'PIL': {'setup': 'pil', 'url': 'http://effbot.org/downloads/Imaging-1.1.7.tar.gz', 'local':"Imaging-1.1.7.tar.gz"},
-        'LXML': {'setup': 'lxml', 'url':"lxml-2.3.tar.bz2", 'local':"lxml-2.3.tar.bz2"}
+        'LXML': {'setup': 'lxml', 'url':"lxml-2.3.tar.bz2", 'local':"lxml-2.3.tar.bz2"},
+        'PYYAML' : { 'setup': 'PyYAML', 'url': 'http://pyyaml.org/download/pyyaml/PyYAML-3.09.tar.gz', 'local': 'PyYAML-3.09.tar.gz'},
     })
 
 
@@ -197,6 +199,41 @@
     shutil.copytree(os.path.join(psycopg2_src_path, 'psycopg2'), os.path.abspath(os.path.join(home_dir, 'Lib/site-packages', 'psycopg2')))
     shutil.copy(os.path.join(psycopg2_src_path, 'psycopg2-2.0.14-py2.6.egg-info'), os.path.abspath(os.path.join(home_dir, 'Lib/site-packages', 'site-packages')))
 
+#TO DO does not work in virtual env
+def install_libyaml(option_str, extra_env, res_source_key, home_dir, lib_dir, tmp_dir, src_dir, res_env, logger, call_subprocess, filter_python_develop):
+    logger.notify("Get libyaml from %s " % res_env.URLS['LIBYAML'][res_source_key])
+    libyaml_src = os.path.join(src_dir,"libyaml.tar.gz")
+    if res_source_key == 'local':
+        shutil.copy(res_env.URLS['LIBYAML'][res_source_key], libyaml_src)
+    else:
+        urllib.urlretrieve(res_env.URLS['LIBYAML'][res_source_key], libyaml_src)
+    tf = tarfile.open(pylucene_src,'r:gz')
+    libyaml_base_path = os.path.join(src_dir,"libyaml") 
+    logger.notify("Extract libyaml to %s " % libyaml_base_path)
+    tf.extractall(libyaml_base_path)
+    tf.close()
+    
+    libyaml_src_path = os.path.join(libyaml_base_path, os.listdir(libyaml_base_path)[0])
+    
+    logger.notify("libyaml configure")
+    call_subprocess(['configure'],
+                    cwd=os.path.abspath(libyaml_src_path),
+                    filter_stdout=filter_python_develop,
+                    show_stdout=True)
+
+    logger.notify("libyaml make")
+    call_subprocess(['make'],
+                    cwd=os.path.abspath(libyaml_src_path),
+                    filter_stdout=filter_python_develop,
+                    show_stdout=True)
+
+    logger.notify("libyaml make install")
+    call_subprocess(['make', 'install'],
+                    cwd=os.path.abspath(libyaml_src_path),
+                    filter_stdout=filter_python_develop,
+                    show_stdout=True)
+    
+
 
 
 def lib_generate_install_methods(path_locations, src_base, Logger, call_subprocess, normal_installs, urls=None):