0
|
1 <?xml version="1.0"?>
|
|
2 <tool_dependency>
|
|
3 <package name="zlib" version="1.2.8">
|
|
4 <repository changeset_revision="63a4a902cda2" name="package_zlib_1_2_8" owner="iuc" prior_installation_required="True" toolshed="https://toolshed.g2.bx.psu.edu" />
|
|
5 </package>
|
|
6
|
|
7 <package name="sqlite" version="3.8.3">
|
3
|
8 <repository changeset_revision="c8a5c11cc921" name="package_sqlite_3_8_3" owner="iuc" prior_installation_required="True" toolshed="https://toolshed.g2.bx.psu.edu" />
|
0
|
9 </package>
|
|
10
|
|
11 <package name="python3" version="3.4">
|
3
|
12 <install version="1.0">
|
|
13 <actions>
|
|
14 <action type="download_by_url">https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tgz</action>
|
|
15
|
|
16 <action type="set_environment_for_install">
|
|
17 <repository changeset_revision="63a4a902cda2" name="package_zlib_1_2_8" owner="iuc" toolshed="https://toolshed.g2.bx.psu.edu">
|
|
18 <package name="zlib" version="1.2.8" />
|
|
19 </repository>
|
|
20 <repository changeset_revision="c8a5c11cc921" name="package_sqlite_3_8_3" owner="iuc" toolshed="https://toolshed.g2.bx.psu.edu">
|
|
21 <package name="sqlite" version="3.8.3" />
|
|
22 </repository>
|
|
23 </action>
|
|
24
|
|
25 <action type="shell_command">
|
0
|
26 # The python build system doesn't check CPATH / C(PLUS)_INCLUDE_PATH which is set by the depended-upon
|
|
27 # tool definitions for these sources, but it does check CPPFLAGS / LDFLAGS
|
|
28 # Currently not whitespace-safe, I haven't found a way yet to quote the *FLAGS values so that they are
|
|
29 # correctly recognized by both the python build process and the compiler. But as galaxy itself isn't
|
|
30 # whitespace-safe either it doesn't really matter (currently).
|
|
31 oldifs="$IFS"
|
|
32 IFS=":"
|
|
33 for p in $CPLUS_INCLUDE_PATH
|
|
34 do
|
|
35 CPPFLAGS="$CPPFLAGS -I$p"
|
|
36 done
|
|
37 for p in $LD_LIBRARY_PATH
|
|
38 do
|
|
39 LDFLAGS="$LDFLAGS -L$p"
|
|
40 done
|
|
41 IFS="$oldifs"
|
|
42 export CPPFLAGS
|
|
43 export LDFLAGS
|
|
44
|
|
45 # Clear variables that may be used in Galaxy's extenal python 2 environment
|
|
46 unset PYTHONPATH
|
|
47 unset PYTHONHOME
|
|
48
|
4
|
49 echo "Python3 installation: preparing to install ..." \
|
|
50 && ./configure -q --prefix="$INSTALL_DIR" --without-ensurepip \
|
|
51 && echo "Python3 installation: entering build process ..." \
|
|
52 && make -s \
|
|
53 && echo "Python3 installation: installing ..." \
|
|
54 && make -s install
|
3
|
55 </action>
|
|
56
|
|
57 <action type="set_environment">
|
|
58 <environment_variable action="prepend_to" name="PATH">$INSTALL_DIR/bin</environment_variable>
|
|
59 <environment_variable action="prepend_to" name="LD_LIBRARY_PATH">$ENV[ZLIB_ROOT_PATH]/lib</environment_variable>
|
|
60 <environment_variable action="prepend_to" name="LD_LIBRARY_PATH">$ENV[SQLITE_ROOT_DIR]/lib</environment_variable>
|
|
61 <!-- clear PYTHONPATH, otherwise we will get Galaxy's Python 2 libraries in the Python 3 path. -->
|
5
|
62 <environment_variable action="set_to" name="PYTHONPATH">$INSTALL_DIR</environment_variable>
|
3
|
63 <environment_variable action="set_to" name="PYTHONHOME">$INSTALL_DIR</environment_variable>
|
5
|
64 <environment_variable action="set_to" name="PYTHONNOUSERSITE">True</environment_variable>
|
|
65 <environment_variable action="set_to" name="SITE_PACKAGES_RELPATH">lib/python3.4/site-packages</environment_variable>
|
3
|
66 <environment_variable action="prepend_to" name="PKG_CONFIG_PATH">$INSTALL_DIR/lib/pkgconfig</environment_variable>
|
|
67 </action>
|
|
68 </actions>
|
|
69 </install>
|
|
70
|
|
71 <readme>
|
0
|
72 The Python programming language version 3.4
|
|
73
|
|
74 http://www.python.org
|
|
75
|
|
76
|
|
77 A lean build of Python 3.4.x.
|
|
78
|
|
79 This package receives bug fixes within the 3.4 release series!
|
|
80
|
3
|
81 Currently, it contains the zlib and sqlite3 modules as the only stdlib
|
|
82 modules with external dependencies (handled in here by depending on
|
|
83 package_zlib_1_2_8 and package_sqlite_3_8_3).
|
0
|
84
|
|
85 In particular, this build does not compile Python's ssl module (which
|
|
86 would cause dependency on openssl and, in turn, on Perl).
|
|
87
|
|
88 This means that **the pip installation tool will not be available with
|
|
89 this build** !!
|
|
90
|
5
|
91
|
0
|
92 This version of Python includes a built-in virtual environment manager.
|
|
93 To create a Python 3 virtual env, include the following actions in your
|
|
94 tool_dependencies.xml, e.g. for a package MY_TOOL_venv:
|
|
95
|
|
96 <action type="set_environment_for_install">
|
3
|
97 <repository name="package_python_3_4_x_lean" owner="wolma">
|
0
|
98 <package name="python3" version="3.4" />
|
|
99 </repository>
|
|
100 <!-- other install time dependencies -->
|
|
101 </action>
|
|
102
|
5
|
103 <action type="shell_command">
|
0
|
104 # Create virtual environment MY_TOOL_venv
|
|
105 # pip cannot be used for installation because it depends on ssl,
|
|
106 # which this build does not provide
|
|
107
|
3
|
108 python3 -m venv --without-pip $INSTALL_DIR/MY_TOOL_venv
|
|
109
|
|
110 # optional: install setuptools if required
|
0
|
111
|
|
112 # install python packages
|
|
113 # assuming you are in the download directory of the package
|
|
114
|
|
115 $INSTALL_DIR/MY_TOOL_venv/bin/python3 setup.py install
|
|
116 </action>
|
|
117
|
5
|
118 <action type="set_environment">
|
|
119 <!-- prepend the bin directory of the virtual environment to PATH -->
|
|
120 <environment_variable name="PATH" action="prepend_to">$INSTALL_DIR/MY_TOOL_venv/bin</environment_variable>
|
|
121 <!-- prepend the site-packages directory of the virtual environment
|
|
122 to PYTHONPATH; using SITE_PACKAGES_RELPATH here makes it easy to migrate to
|
|
123 a different version of Python -->
|
|
124 <environment_variable name="PYTHONPATH" action="prepend_to">$INSTALL_DIR/MY_TOOL_venv/$SITE_PACKAGES_RELPATH</environment_variable>
|
|
125 </action>
|
|
126
|
|
127 Then, in your MY_TOOL.xml add the following requirements (in that order):
|
|
128
|
|
129 <requirements>
|
|
130 <requirement name="package" version="3.4">python3</requirement>
|
|
131 <requirement name="package" version="XXX">MY_TOOL</requirement>
|
|
132 </requirements>
|
|
133
|
|
134 For a concrete example look at the tool_dependencies file of:
|
0
|
135
|
3
|
136 https://toolshed.g2.bx.psu.edu/view/wolma/mimodd
|
0
|
137
|
|
138 </readme>
|
|
139 </package>
|
|
140 </tool_dependency>
|