view tool_dependencies.xml @ 2:50ffd429060b draft

Uploaded
author wolma
date Tue, 26 Apr 2016 12:24:47 -0400
parents 040f60d3c15b
children 87b8dcebce9b
line wrap: on
line source

<?xml version="1.0"?>
<tool_dependency>
  <package name="zlib" version="1.2.8">
      <repository changeset_revision="63a4a902cda2" name="package_zlib_1_2_8" owner="iuc" prior_installation_required="True" toolshed="https://toolshed.g2.bx.psu.edu" />
  </package>
  
  <package name="sqlite" version="3.8.3">
    <repository changeset_revision="706b1f3b1fc0" name="package_sqlite_3_8_3" owner="iuc" prior_installation_required="True" toolshed="http://toolshed.g2.bx.psu.edu" />
  </package>
  
  <package name="python3" version="3.4">
      <install version="1.0">
          <actions>
              <action type="download_by_url">https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tgz</action>
              
                <action type="set_environment_for_install">
                  <repository changeset_revision="63a4a902cda2" name="package_zlib_1_2_8" owner="iuc" toolshed="https://toolshed.g2.bx.psu.edu">
                      <package name="zlib" version="1.2.8" />
                  </repository>
                    
                  <repository changeset_revision="706b1f3b1fc0" name="package_sqlite_3_8_3" owner="iuc" toolshed="http://toolshed.g2.bx.psu.edu">
                    <package name="sqlite" version="3.8.3" />
                  </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" \
          &amp;&amp; make \
          &amp;&amp; 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>
                    <!-- fix too strict compiler settings under Python 3.4 -->
                    <environment_variable action="set_to" name="CFLAGS">"$ENV[CFLAGS] -Wno-error=declaration-after-statement"</environment_variable>
                </action>
            </actions>
        </install>
        <readme>
      The Python programming language version 3.4

      http://www.python.org


      A lean build of Python 3.4.x.
      
      This package receives bug fixes within the 3.4 release series!
      
      It contains the zlib and sqlite3 modules as the only stdlib modules with 
      external dependencies (handled in here by depending on package_zlib_1_2_8 
      and package_sqlite_3_8_3). 
      
      In particular, this build does not compile Python's ssl module (which 
      would cause dependency on openssl and, in turn, on Perl).
      
      This means that **the pip installation tool will not be available with 
      this build** !! 
      
      For a full build (including the ssl module) look at 
      https://toolshed.g2.bx.psu.edu/view/jankanis/package_python3_4 
      written by jankanis, of which this package is a shameless plagiarism. 

      This version of Python 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:

      &lt;action type="set_environment_for_install"&gt;
        &lt;repository name="package_python3_zlib_dependent_1_0" owner="wolma"&gt;
          &lt;package name="python3" version="3.4" /&gt;
        &lt;/repository&gt;
        &lt;!-- other install time dependencies --&gt;
      &lt;/action&gt;

      &lt;action type="shell_command"&gt;        
        
        # Create virtual environment MY_TOOL_venv
        # pip cannot be used for installation because it depends on ssl, 
        # which this build does not provide
        
        pyvenv --without-pip $INSTALL_DIR/MY_TOOL_venv
        
        # install python packages
        # assuming you are in the download directory of the package
        
        $INSTALL_DIR/MY_TOOL_venv/bin/python3 setup.py install 
      &lt;/action&gt;
      
    For an example of how this could used by a package look at the 
    tool_dependencies file of:
    
    https://toolshed.g2.bx.psu.edu/view/wolma/mimodd
    
    </readme>
  </package>
</tool_dependency>