annotate tool_dependencies.xml @ 7:5cfafaafa263 draft default tip

streamlined documentation
author wolma
date Fri, 12 Dec 2014 06:40:11 -0500
parents 79f0803e3bbb
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
1 <?xml version="1.0"?>
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
2 <tool_dependency>
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
3 <package name="zlib" version="1.2.8">
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
4 <repository changeset_revision="9d017266c41e" name="package_zlib_1_2_8" owner="wolma" prior_installation_required="True" toolshed="https://testtoolshed.g2.bx.psu.edu" />
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
5 </package>
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
6
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
7 <package name="python3" version="3.4.1">
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
8 <install version="1.0">
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
9 <actions>
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
10 <action type="download_by_url">https://www.python.org/ftp/python/3.4.1/Python-3.4.1.tgz</action>
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
11
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
12 <action type="set_environment_for_install">
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
13 <repository changeset_revision="9d017266c41e" name="package_zlib_1_2_8" owner="wolma" toolshed="https://testtoolshed.g2.bx.psu.edu">
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
14 <package name="zlib" version="1.2.8" />
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
15 </repository>
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
16 </action>
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
17
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
18 <action type="shell_command">
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
19 # The python build system doesn't check CPATH / C(PLUS)_INCLUDE_PATH which is set by the depended-upon
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
20 # tool definitions for these sources, but it does check CPPFLAGS / LDFLAGS
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
21 # Currently not whitespace-safe, I haven't found a way yet to quote the *FLAGS values so that they are
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
22 # correctly recognized by both the python build process and the compiler. But as galaxy itself isn't
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
23 # whitespace-safe either it doesn't really matter (currently).
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
24 oldifs="$IFS"
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
25 IFS=":"
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
26 for p in $CPLUS_INCLUDE_PATH
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
27 do
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
28 CPPFLAGS="$CPPFLAGS -I$p"
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
29 done
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
30 for p in $LD_LIBRARY_PATH
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
31 do
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
32 LDFLAGS="$LDFLAGS -L$p"
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
33 done
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
34 IFS="$oldifs"
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
35 export CPPFLAGS
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
36 export LDFLAGS
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
37
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
38 # Clear variables that may be used in Galaxy's extenal python 2 environment
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
39 unset PYTHONPATH
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
40 unset PYTHONHOME
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
41
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
42 ./configure --prefix="$INSTALL_DIR" --with-ensurepip \
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
43 &amp;&amp; make \
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
44 &amp;&amp; make install
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
45 </action>
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
46
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
47 <action type="set_environment">
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
48 <environment_variable action="prepend_to" name="PATH">$INSTALL_DIR/bin</environment_variable>
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
49 <environment_variable action="prepend_to" name="LD_LIBRARY_PATH">$ENV[LD_LIBRARY_PATH]</environment_variable>
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
50 <!-- clear PYTHONPATH, otherwise we will get Galaxy's Python 2 libraries in the Python 3 path. -->
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
51 <environment_variable action="set_to" name="PYTHONPATH" />
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
52 <environment_variable action="set_to" name="PYTHONHOME">$INSTALL_DIR</environment_variable>
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
53 <environment_variable action="prepend_to" name="PKG_CONFIG_PATH">$INSTALL_DIR/lib/pkgconfig</environment_variable>
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
54 </action>
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
55 </actions>
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
56 </install>
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
57
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
58 <readme>
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
59 Python 3.4.1
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
60
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
61 The Python programming language version 3.
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
62
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
63 http://www.python.org
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
64
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
65
7
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
66 A lean build of python 3.4.1. It does not include modules with external dependencies except for the zlib module (handled in here by depending on package_zlib_1_2_8).
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
67
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
68 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**.
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
69
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
70 For a build with more modules (and also ssl) included look at
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
71 https://toolshed.g2.bx.psu.edu/view/jankanis/package_python3_4
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
72 written by jankanis, of which this package is a shameless plagiarism.
6
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
73
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
74 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:
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
75
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
76 &lt;action type="set_environment_for_install"&gt;
7
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
77 &lt;repository name="package_python3_zlib_dependent_1_0" owner="wolma"&gt;
6
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
78 &lt;package name="python3" version="3.4.1" /&gt;
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
79 &lt;/repository&gt;
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
80 &lt;!-- other install time dependencies --&gt;
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
81 &lt;/action&gt;
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
82
7
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
83 &lt;action type="shell_command"&gt;
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
84
6
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
85 # Create virtual environment MY_TOOL_venv
7
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
86 # pip cannot be used for installation because it depends on ssl,
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
87 # which this build does not provide
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
88
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
89 pyvenv --without-pip $INSTALL_DIR/MY_TOOL_venv
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
90
6
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
91 # install python packages
7
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
92 # assuming you are in the download directory of the package
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
93
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
94 $INSTALL_DIR/MY_TOOL_venv/bin/python3 setup.py install
6
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
95 &lt;/action&gt;
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
96
7
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
97 For an example of how this could used by a package look at:
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
98
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
99 https://testtoolshed.g2.bx.psu.edu/view/wolma/package_mimodd_0_1_5
5cfafaafa263 streamlined documentation
wolma
parents: 6
diff changeset
100
6
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
101 </readme>
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
102
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
103 </package>
79f0803e3bbb Uploaded
wolma
parents:
diff changeset
104 </tool_dependency>