diff -r 55fecd7b4ba7 -r 7fe7c089c1f2 virtualenv/res/lib/lib_create_env.py --- a/virtualenv/res/lib/lib_create_env.py Fri Mar 28 15:44:39 2014 +0100 +++ b/virtualenv/res/lib/lib_create_env.py Mon Nov 10 02:29:47 2014 +0100 @@ -19,9 +19,9 @@ 'EDCSA': {'setup': 'edcsa', 'url':'https://github.com/warner/python-ecdsa/archive/python-ecdsa-0.11.tar.gz', 'local':'ecdsa-0.11.tar.gz', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}}, 'WSGIREF': {'setup': 'wsgiref', 'url':'https://pypi.python.org/packages/source/w/wsgiref/wsgiref-0.1.2.zip', 'local':'wsgiref-0.1.2.zip', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}}, 'PYCRYPTO': {'setup': 'pycrypto', 'url':'http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/pycrypto-2.6.1.tar.gz', 'local':'pycrypto-2.6.1.tar.gz', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}}, - 'PARAMIKO' : {'setup': 'paramiko', 'url':'https://github.com/paramiko/paramiko/archive/v1.12.3.tar.gz', 'local':'paramiko-1.12.3.tar.gz', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}}, - 'FABRIC': {'setup': 'fabric', 'url':'https://github.com/fabric/fabric/archive/1.8.3.tar.gz', 'local':'fabric-1.8.3.tar.gz', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}}, - 'MERCURIAL': {'setup': 'mercurial', 'url':'http://mercurial.selenic.com/release/mercurial-2.9.1.tar.gz', 'local':'mercurial-2.9.1.tar.gz', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}}, + 'PARAMIKO' : {'setup': 'paramiko', 'url':'https://github.com/paramiko/paramiko/archive/v1.15.1.tar.gz', 'local':'paramiko-1.15.1.tar.gz', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}}, + 'FABRIC': {'setup': 'fabric', 'url':'https://github.com/fabric/fabric/archive/1.10.0.tar.gz', 'local':'fabric-1.10.0.tar.gz', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}}, + 'MERCURIAL': {'setup': 'mercurial', 'url':'http://mercurial.selenic.com/release/mercurial-3.2.tar.gz', 'local':'mercurial-3.2.tar.gz', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}}, } class ResourcesEnv(object): @@ -94,53 +94,6 @@ shutil.copy(os.path.join(psycopg2_src_path, 'psycopg2-2.4.5-py2.7.egg-info'), os.path.abspath(os.path.join(home_dir, 'Lib/site-packages', 'site-packages'))) -def install_mysql(option_str, extra_env, res_source_key, home_dir, lib_dir, tmp_dir, src_dir, res_env, logger, call_subprocess, filter_python_develop): - - args = [os.path.abspath(os.path.join(home_dir, 'bin', 'pip')), 'install', res_env.URLS['MYSQL'][res_source_key]] - if option_str : - args.insert(4,option_str) - call_subprocess(args, - cwd=os.path.abspath(tmp_dir), - filter_stdout=filter_python_develop, - show_stdout=True, - extra_env=extra_env) - - mysqlconfig_output = [] - - call_subprocess(['mysql_config', '--libmysqld-libs'], - cwd=os.path.abspath(tmp_dir), - filter_stdout=lambda line: mysqlconfig_output.append(line), - show_stdout=True) - - mysqlconfig_output = "".join(mysqlconfig_output) - m = re.search("\-L[\'\"]?([\w\/]+)[\'\"]?", mysqlconfig_output) - if m: - repdylibpath = m.group(1) - else: - repdylibpath = '/usr/local/mysql/lib' - - dyliblist = glob.glob(repdylibpath+"/libmysqlclient.*.dylib") - def key_func(s): - m = re.match(repdylibpath+"/libmysqlclient\.([\d]+)\.dylib", s) - if m: - return int(m.group(1)) - else: - return sys.maxint - dyliblist.sort(key=key_func) - - if dyliblist: - dylibpath = dyliblist[0] - else: - dylibpath = '/usr/local/mysql/lib/libmysqlclient.18.dylib' - - dylibname = os.path.basename(dylibpath) - sopath = os.path.join(os.path.abspath(lib_dir), 'site-packages', '_mysql.so') - - call_subprocess(['install_name_tool', '-change', dylibname, dylibpath, sopath], - cwd=os.path.abspath(tmp_dir), - filter_stdout=filter_python_develop, - show_stdout=True) - def gen_install_comp_lib(lib_name, lib_key, configure_options=[]): @@ -177,7 +130,9 @@ install_libjpeg = gen_install_comp_lib("libjpeg", "LIBJPEG", ['--enable-shared']) install_zlib = gen_install_comp_lib("zlib", "ZLIB", []) - + +#osx_extra_env = {'ARCHFLAGS': '-Wno-error=unused-command-line-argument-hard-error-in-future', 'CFLAGS': '-Qunused-arguments', 'CPPFLAGS': '-Qunused-arguments'} +osx_extra_env = {} def lib_generate_install_methods(path_locations, src_base, run_base, Logger, call_subprocess, normal_installs, options_to_add=None, urls= None): @@ -308,10 +263,13 @@ if 'TMPDIR' not in extra_env: extra_env['TMPDIR'] = os.path.abspath(tmp_dir) if system_str == 'Darwin': - archflags = extra_env.get('ARCHFLAGS', '') - if '-Wno-error=unused-command-line-argument-hard-error-in-future' not in archflags: - archflags += " -Wno-error=unused-command-line-argument-hard-error-in-future" - extra_env['ARCHFLAGS'] = archflags.strip() + for flag_key, flag_value in iter(osx_extra_env.items()): + flags = extra_env.get(flag_key, '') + if flag_value not in flags: + #flags += " -Wno-error=unused-command-line-argument-hard-error-in-future" + flags += " "+flag_value + extra_env[flag_key] = flags.strip() + #isinstance(lst, (list, tuple)) if key not in ignore_packages: logger.notify("install %s with method %s" % (key, repr(method)))