annotate tool_dependencies.xml @ 14:59b33d253163 draft

re-export LD_LIBRARY_PATH so that the required libraries can also be found at runtime
author jankanis
date Mon, 26 May 2014 09:28:34 -0400
parents 9dbfc4fcef0a
children 5972e67030fd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
1 <?xml version="1.0"?>
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
2 <tool_dependency>
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
3 <package name="openssl" version="1.0.1g">
7
34e257e3aceb add prior_installation_required
jankanis
parents: 6
diff changeset
4 <repository changeset_revision="23ebff671a20" name="package_openssl" owner="jankanis" prior_installation_required="True" toolshed="http://toolshed.g2.bx.psu.edu" />
0
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
5 </package>
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
6
6
321cacd4ae43 Add dependencies and settings for sqlite and gdbm, so that python can build its packages for those.
jankanis
parents: 5
diff changeset
7 <package name="sqlite" version="3.8.3">
7
34e257e3aceb add prior_installation_required
jankanis
parents: 6
diff changeset
8 <repository changeset_revision="706b1f3b1fc0" name="package_sqlite_3_8_3" owner="iuc" prior_installation_required="True" toolshed="http://toolshed.g2.bx.psu.edu" />
6
321cacd4ae43 Add dependencies and settings for sqlite and gdbm, so that python can build its packages for those.
jankanis
parents: 5
diff changeset
9 </package>
321cacd4ae43 Add dependencies and settings for sqlite and gdbm, so that python can build its packages for those.
jankanis
parents: 5
diff changeset
10
321cacd4ae43 Add dependencies and settings for sqlite and gdbm, so that python can build its packages for those.
jankanis
parents: 5
diff changeset
11 <package name="gdbm" version="1.11">
7
34e257e3aceb add prior_installation_required
jankanis
parents: 6
diff changeset
12 <repository changeset_revision="15e7435c2663" name="package_gdbm_1_11" owner="iuc" prior_installation_required="True" toolshed="http://toolshed.g2.bx.psu.edu" />
6
321cacd4ae43 Add dependencies and settings for sqlite and gdbm, so that python can build its packages for those.
jankanis
parents: 5
diff changeset
13 </package>
321cacd4ae43 Add dependencies and settings for sqlite and gdbm, so that python can build its packages for those.
jankanis
parents: 5
diff changeset
14
321cacd4ae43 Add dependencies and settings for sqlite and gdbm, so that python can build its packages for those.
jankanis
parents: 5
diff changeset
15
0
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
16 <package name="python3" version="3.4.1">
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
17 <install version="1.0">
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
18 <actions>
1
09faf0ae581b Fix some whitespace
jankanis
parents: 0
diff changeset
19 <action type="download_by_url">https://www.python.org/ftp/python/3.4.1/Python-3.4.1.tgz</action>
9
d3ea5f1b4d79 Another attempt at getting the environment settings right.
jankanis
parents: 8
diff changeset
20
0
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
21 <action type="set_environment_for_install">
7
34e257e3aceb add prior_installation_required
jankanis
parents: 6
diff changeset
22 <repository changeset_revision="23ebff671a20" name="package_openssl" owner="jankanis" toolshed="http://toolshed.g2.bx.psu.edu">
0
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
23 <package name="openssl" version="1.0.1g" />
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
24 </repository>
7
34e257e3aceb add prior_installation_required
jankanis
parents: 6
diff changeset
25 <repository changeset_revision="706b1f3b1fc0" name="package_sqlite_3_8_3" owner="iuc" toolshed="http://toolshed.g2.bx.psu.edu">
6
321cacd4ae43 Add dependencies and settings for sqlite and gdbm, so that python can build its packages for those.
jankanis
parents: 5
diff changeset
26 <package name="sqlite" version="3.8.3" />
321cacd4ae43 Add dependencies and settings for sqlite and gdbm, so that python can build its packages for those.
jankanis
parents: 5
diff changeset
27 </repository>
7
34e257e3aceb add prior_installation_required
jankanis
parents: 6
diff changeset
28 <repository changeset_revision="15e7435c2663" name="package_gdbm_1_11" owner="iuc" toolshed="http://toolshed.g2.bx.psu.edu">
6
321cacd4ae43 Add dependencies and settings for sqlite and gdbm, so that python can build its packages for those.
jankanis
parents: 5
diff changeset
29 <package name="gdbm" version="1.11" />
321cacd4ae43 Add dependencies and settings for sqlite and gdbm, so that python can build its packages for those.
jankanis
parents: 5
diff changeset
30 </repository>
0
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
31 </action>
6
321cacd4ae43 Add dependencies and settings for sqlite and gdbm, so that python can build its packages for those.
jankanis
parents: 5
diff changeset
32
9
d3ea5f1b4d79 Another attempt at getting the environment settings right.
jankanis
parents: 8
diff changeset
33 <action type="shell_command">
12
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
34 # The python build system doesn't check CPATH / C(PLUS)_INCLUDE_PATH which is set by the depended-upon
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
35 # tool definitions for these sources, but it does check CPPFLAGS / LDFLAGS
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
36 # Currently not whitespace-safe, but galaxy itself isn't whitespace-safe either so it doesn't matter (yet)
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
37 oldifs="$IFS"
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
38 IFS=:
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
39 for p in $CPLUS_INCLUDE_PATH
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
40 do
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
41 CPPFLAGS="$CPPFLAGS -I$p"
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
42 done
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
43 for p in $LD_LIBRARY_PATH
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
44 do
13
9dbfc4fcef0a Fix LDFLAGS. This version is not yet safe against paths containing whitespace.
jankanis
parents: 12
diff changeset
45 LDFLAGS="$LDFLAGS -L$p"
12
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
46 done
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
47 IFS="$oldifs"
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
48 export CPPFLAGS
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
49 export LDFLAGS
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
50
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
51 # Clear variables that may be used in Galaxy's extenal python 2 environment
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
52 unset PYTHONPATH
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
53 unset PYTHONHOME
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
54
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
55 ./configure --prefix="$INSTALL_DIR" --with-ensurepip --enable-loadable-sqlite-extensions \
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
56 &amp;&amp; make \
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
57 &amp;&amp; make install
4091cf3b81e5 Uploaded
jankanis
parents: 11
diff changeset
58 </action>
6
321cacd4ae43 Add dependencies and settings for sqlite and gdbm, so that python can build its packages for those.
jankanis
parents: 5
diff changeset
59
1
09faf0ae581b Fix some whitespace
jankanis
parents: 0
diff changeset
60 <action type="set_environment">
09faf0ae581b Fix some whitespace
jankanis
parents: 0
diff changeset
61 <environment_variable action="prepend_to" name="PATH">$INSTALL_DIR/bin</environment_variable>
14
59b33d253163 re-export LD_LIBRARY_PATH so that the required libraries can also be found at runtime
jankanis
parents: 13
diff changeset
62 <environment_variable action="prepend_to" name="LD_LIBRARY_PATH">$ENV[LD_LIBRARY_PATH]</environment_variable>
6
321cacd4ae43 Add dependencies and settings for sqlite and gdbm, so that python can build its packages for those.
jankanis
parents: 5
diff changeset
63 <!-- empty PYTHONPATH, otherwise we will get Galaxy's Python 2 libraries in the Python 3 path -->
1
09faf0ae581b Fix some whitespace
jankanis
parents: 0
diff changeset
64 <environment_variable action="set_to" name="PYTHONPATH" />
09faf0ae581b Fix some whitespace
jankanis
parents: 0
diff changeset
65 <environment_variable action="set_to" name="PYTHONHOME">$INSTALL_DIR</environment_variable>
4
9491d3c0dbe6 Add --with-ensurepip
jankanis
parents: 3
diff changeset
66 <environment_variable action="prepend_to" name="PKG_CONFIG_PATH">$INSTALL_DIR/lib/pkgconfig</environment_variable>
1
09faf0ae581b Fix some whitespace
jankanis
parents: 0
diff changeset
67 </action>
0
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
68 </actions>
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
69 </install>
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
70
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
71 <readme>
14
59b33d253163 re-export LD_LIBRARY_PATH so that the required libraries can also be found at runtime
jankanis
parents: 13
diff changeset
72 Python 3.4.1
0
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
73
14
59b33d253163 re-export LD_LIBRARY_PATH so that the required libraries can also be found at runtime
jankanis
parents: 13
diff changeset
74 This build of python is configured with --enable-loadable-sqlite-extensions and a --prefix, any other settings are default. This build does not include modules for lzma, Tkinter and dbm, but does include ssl, gdbm and sqlite. Adding the missing modules should not be very difficult but requires wrapping the external sources that these modules require inside galaxy.
59b33d253163 re-export LD_LIBRARY_PATH so that the required libraries can also be found at runtime
jankanis
parents: 13
diff changeset
75
59b33d253163 re-export LD_LIBRARY_PATH so that the required libraries can also be found at runtime
jankanis
parents: 13
diff changeset
76 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:
0
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
77
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
78 &lt;action type="set_environment_for_install"&gt;
1
09faf0ae581b Fix some whitespace
jankanis
parents: 0
diff changeset
79 &lt;repository name="python3" owner="jankanis"&gt;
0
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
80 &lt;package name="python3" version="3.4.1" /&gt;
1
09faf0ae581b Fix some whitespace
jankanis
parents: 0
diff changeset
81 &lt;/repository&gt;
0
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
82 &lt;/action&gt;
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
83 &lt;action type="shell_command"&gt;
1
09faf0ae581b Fix some whitespace
jankanis
parents: 0
diff changeset
84 # Unset any saved environment settings from parent virtual
09faf0ae581b Fix some whitespace
jankanis
parents: 0
diff changeset
85 # environments, e.g. for python 2 or if Galaxy itself is running
09faf0ae581b Fix some whitespace
jankanis
parents: 0
diff changeset
86 # from within a virtual environment.
09faf0ae581b Fix some whitespace
jankanis
parents: 0
diff changeset
87 unset _OLD_VIRTUAL_PATH; unset _OLD_VIRTUAL_PYTHONHOME
3
d71cfcee2977 Fix openssl search path in setup.py
jankanis
parents: 2
diff changeset
88 pyvenv {{\$MY_PACKAGE_NAME}}
d71cfcee2977 Fix openssl search path in setup.py
jankanis
parents: 2
diff changeset
89 . {{\$MY_PACKAGE_NAME}}/bin/activate
d71cfcee2977 Fix openssl search path in setup.py
jankanis
parents: 2
diff changeset
90 pip3 install {{\$PYTHON-PACKAGE}}
0
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
91 &lt;/action&gt;
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
92 &lt;action type="set_environment"&gt;
3
d71cfcee2977 Fix openssl search path in setup.py
jankanis
parents: 2
diff changeset
93 &lt;environment_variable name="PYTHONPATH" action="prepend_to"&gt;\$INSTALL_DIR/lib/python3.4/site-packages&lt;/environment_variable&gt;
0
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
94 &lt;/action&gt;
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
95
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
96 </readme>
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
97
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
98 </package>
e9407b729a69 Uploaded
jankanis
parents:
diff changeset
99 </tool_dependency>