Mercurial > repos > wolma > package_python3_zlib_dependent_1_0
changeset 5:f16443335cba draft
Deleted selected files
author | wolma |
---|---|
date | Wed, 13 Aug 2014 08:30:25 -0400 |
parents | ecf7415d602c |
children | 79f0803e3bbb |
files | tool_dependencies.xml |
diffstat | 1 files changed, 0 insertions(+), 130 deletions(-) [+] |
line wrap: on
line diff
--- a/tool_dependencies.xml Tue Aug 12 12:05:14 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ -<?xml version="1.0"?> -<tool_dependency> - <package name="zlib" version="1.2.8"> - <repository changeset_revision="9d017266c41e" name="package_zlib_1_2_8" owner="wolma" prior_installation_required="True" toolshed="https://testtoolshed.g2.bx.psu.edu" /> - </package> - - <package name="python3" version="3.4.1"> - <install version="1.0"> - <actions> - <action type="download_by_url">https://www.python.org/ftp/python/3.4.1/Python-3.4.1.tgz</action> - - <action type="set_environment_for_install"> - <repository changeset_revision="9d017266c41e" name="package_zlib_1_2_8" owner="wolma" toolshed="https://testtoolshed.g2.bx.psu.edu"> - <package name="zlib" version="1.2.8" /> - </repository> - </action> - - <action type="shell_command"> - # The python build system doesn't check CPATH / C(PLUS)_INCLUDE_PATH which is set by the depended-upon - # tool definitions for these sources, but it does check CPPFLAGS / LDFLAGS - # Currently not whitespace-safe, I haven't found a way yet to quote the *FLAGS values so that they are - # correctly recognized by both the python build process and the compiler. But as galaxy itself isn't - # whitespace-safe either it doesn't really matter (currently). - oldifs="$IFS" - IFS=":" - for p in $CPLUS_INCLUDE_PATH - do - CPPFLAGS="$CPPFLAGS -I$p" - done - for p in $LD_LIBRARY_PATH - do - LDFLAGS="$LDFLAGS -L$p" - done - IFS="$oldifs" - export CPPFLAGS - export LDFLAGS - - # Clear variables that may be used in Galaxy's extenal python 2 environment - unset PYTHONPATH - unset PYTHONHOME - - ./configure --prefix="$INSTALL_DIR" --with-ensurepip \ - && make \ - && make install - </action> - - <action type="set_environment"> - <environment_variable action="prepend_to" name="PATH">$INSTALL_DIR/bin</environment_variable> - <environment_variable action="prepend_to" name="LD_LIBRARY_PATH">$ENV[LD_LIBRARY_PATH]</environment_variable> - <!-- clear PYTHONPATH, otherwise we will get Galaxy's Python 2 libraries in the Python 3 path. --> - <environment_variable action="set_to" name="PYTHONPATH" /> - <environment_variable action="set_to" name="PYTHONHOME">$INSTALL_DIR</environment_variable> - <environment_variable action="prepend_to" name="PKG_CONFIG_PATH">$INSTALL_DIR/lib/pkgconfig</environment_variable> - </action> - </actions> - </install> - - <readme> - Python 3.4.1 - - The Python programming language version 3. - - http://www.python.org - - - A lean build of python 3.4.1. It does not include modules with external dependencies except for the zlib module, which requires the zlib library installed on your system. For a build with more such modules included look at https://toolshed.g2.bx.psu.edu/view/jankanis/package_python3_4 written by jankanis, of which this package is a shameless plagiarism. - - Python as of version 3.3 includes a built-in virtual environment manager. To create a python 3 virtual env, include the following actions in your tool_dependencies.xml, e.g. for a package MY_TOOL_venv: - - <action type="set_environment_for_install"> - <repository name="python3" owner="wolma"> - <package name="python3" version="3.4.1" /> - </repository> - <!-- other install time dependencies --> - </action> - - <action type="shell_command"> - # Unset any saved environment settings from parent virtual - # environments, e.g. for python 2 or if Galaxy itself is running - # from within a virtual environment. - unset _OLD_VIRTUAL_PATH; unset _OLD_VIRTUAL_PYTHONHOME - # Create virtual environment MY_TOOL_venv - pyvenv MY_TOOL_venv - # install python packages - MY_TOOL_venv/bin/pip3 install {{NEEDED_PYTHON_PACKAGES}} - </action> - - <action type="set_environment"> - - <!-- Setting the PYTHONPATH correctly can be a bit tricky, because you must - make sure that the runtime PYTHONPATH from galaxy itself is not - included, as it probably points to python 2 code that can crash a - program if python 3 tries to load it. - - If you only use a single virtual environment that is created - specifically for a tool you are creating, you can just use a set_to - like below. - - If you create a virtual environment installation that is meant to be - reused by other packages, the virtual environment should probably - prepend its site-packages to the PYTHONPATH since a tool could be - using python modules from several virtual environments. But in such a - scenario the tool that uses these virtual environments should also - depend directly on the python3 package, and this dependency should be - listed before any virtual environment dependencies. This ensures that - the python3 environment settings that clear PYTHONPATH are sourced - first so galaxy's runtime PYTHONPATH is excluded. Virtual environments - can then prepend their PYTHONPATHs to each other. --> - <environment_variable name="PYTHONPATH" action="set_to">$INSTALL_DIR/MY_TOOL_venv/lib/python3.4/site-packages</environment_variable> - <!-- All that is really needed to use a specific virtual environment is that the - python interpreter in that environment is used, so add it to PATH --> - <environment_variable name="PATH" action="prepend_to">$INSTALL_DIR/MY_TOOL_venv/bin</environment_variable> - <!-- Clear incoming PYTHONHOME just like the venv's 'activate' command does --> - <environment_variable name="PYTHONHOME" action="set_to"></environment_variable> - <!-- To find shared libraries for python built-in modules such as libssl or libsqlite3 - we need to re-export LD_LIBRARY_PATH --> - <environment_variable name="LD_LIBRARY_PATH" action="prepend_to">$ENV[LD_LIBRARY_PATH]</environment_variable> - </action> - - - Then, in your MY_TOOL.xml add the following requirement: - - <requirements> - <requirement name="package" version="XXX">MY_TOOL_venv</requirement> - </requirements> - - </readme> - - </package> -</tool_dependency>