view tool_dependencies.xml @ 13:9dbfc4fcef0a draft

Fix LDFLAGS. This version is not yet safe against paths containing whitespace.
author jankanis
date Mon, 26 May 2014 05:26:11 -0400
parents 4091cf3b81e5
children 59b33d253163
line wrap: on
line source

<?xml version="1.0"?>
<tool_dependency>
  <package name="openssl" version="1.0.1g">
    <repository changeset_revision="23ebff671a20" name="package_openssl" owner="jankanis" prior_installation_required="True" toolshed="http://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="gdbm" version="1.11">
    <repository changeset_revision="15e7435c2663" name="package_gdbm_1_11" 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="23ebff671a20" name="package_openssl" owner="jankanis" toolshed="http://toolshed.g2.bx.psu.edu">
            <package name="openssl" version="1.0.1g" />
          </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>
          <repository changeset_revision="15e7435c2663" name="package_gdbm_1_11" owner="iuc" toolshed="http://toolshed.g2.bx.psu.edu">
            <package name="gdbm" version="1.11" />
          </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, but galaxy itself isn't whitespace-safe either so it doesn't matter (yet)
          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 --enable-loadable-sqlite-extensions \
          &amp;&amp; make \
          &amp;&amp; make install
        </action>

        <action type="set_environment">
          <environment_variable action="prepend_to" name="PATH">$INSTALL_DIR/bin</environment_variable>
          <!-- empty 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. Configured with the default settings, using --prefix=$INSTALL_DIR.

      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:

      &lt;action type="set_environment_for_install"&gt;
        &lt;repository name="python3" owner="jankanis"&gt;
          &lt;package name="python3" version="3.4.1" /&gt;
        &lt;/repository&gt;
      &lt;/action&gt;
      &lt;action type="shell_command"&gt;
        # 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
        pyvenv {{\$MY_PACKAGE_NAME}}
        . {{\$MY_PACKAGE_NAME}}/bin/activate
        pip3 install {{\$PYTHON-PACKAGE}}
      &lt;/action&gt;
      &lt;action type="set_environment"&gt;
        &lt;environment_variable name="PYTHONPATH" action="prepend_to"&gt;\$INSTALL_DIR/lib/python3.4/site-packages&lt;/environment_variable&gt;
      &lt;/action&gt;

    </readme>
    
  </package>
</tool_dependency>