view tool_dependencies.xml @ 1:c322db44259d draft

build sqlite3; updated readme
author wolma
date Fri, 22 Apr 2016 09:27:14 -0400
parents 1c337560fa56
children 34b2ffc538de
line wrap: on
line source

<?xml version="1.0"?>
<tool_dependency>
  <package name="zlib" version="1.2.8">
      <repository changeset_revision="dce22a65bac2" name="package_zlib_1_2_8" owner="wolma" 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.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="dce22a65bac2" name="package_zlib_1_2_8" owner="wolma" 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" --with-ensurepip \
          &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>
                </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 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.1" /&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>