Mercurial > repos > jankanis > package_python3_4
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 |
rev | line source |
---|---|
0 | 1 <?xml version="1.0"?> |
2 <tool_dependency> | |
3 <package name="openssl" version="1.0.1g"> | |
7 | 4 <repository changeset_revision="23ebff671a20" name="package_openssl" owner="jankanis" prior_installation_required="True" toolshed="http://toolshed.g2.bx.psu.edu" /> |
0 | 5 </package> |
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 | 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 | 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 | 16 <package name="python3" version="3.4.1"> |
17 <install version="1.0"> | |
18 <actions> | |
1 | 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 | 21 <action type="set_environment_for_install"> |
7 | 22 <repository changeset_revision="23ebff671a20" name="package_openssl" owner="jankanis" toolshed="http://toolshed.g2.bx.psu.edu"> |
0 | 23 <package name="openssl" version="1.0.1g" /> |
24 </repository> | |
7 | 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 | 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 | 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 | 34 # The python build system doesn't check CPATH / C(PLUS)_INCLUDE_PATH which is set by the depended-upon |
35 # tool definitions for these sources, but it does check CPPFLAGS / LDFLAGS | |
36 # Currently not whitespace-safe, but galaxy itself isn't whitespace-safe either so it doesn't matter (yet) | |
37 oldifs="$IFS" | |
38 IFS=: | |
39 for p in $CPLUS_INCLUDE_PATH | |
40 do | |
41 CPPFLAGS="$CPPFLAGS -I$p" | |
42 done | |
43 for p in $LD_LIBRARY_PATH | |
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 | 46 done |
47 IFS="$oldifs" | |
48 export CPPFLAGS | |
49 export LDFLAGS | |
50 | |
51 # Clear variables that may be used in Galaxy's extenal python 2 environment | |
52 unset PYTHONPATH | |
53 unset PYTHONHOME | |
54 | |
55 ./configure --prefix="$INSTALL_DIR" --with-ensurepip --enable-loadable-sqlite-extensions \ | |
56 && make \ | |
57 && make install | |
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 | 60 <action type="set_environment"> |
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 | 64 <environment_variable action="set_to" name="PYTHONPATH" /> |
65 <environment_variable action="set_to" name="PYTHONHOME">$INSTALL_DIR</environment_variable> | |
4 | 66 <environment_variable action="prepend_to" name="PKG_CONFIG_PATH">$INSTALL_DIR/lib/pkgconfig</environment_variable> |
1 | 67 </action> |
0 | 68 </actions> |
69 </install> | |
70 | |
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 | 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 | 77 |
78 <action type="set_environment_for_install"> | |
1 | 79 <repository name="python3" owner="jankanis"> |
0 | 80 <package name="python3" version="3.4.1" /> |
1 | 81 </repository> |
0 | 82 </action> |
83 <action type="shell_command"> | |
1 | 84 # Unset any saved environment settings from parent virtual |
85 # environments, e.g. for python 2 or if Galaxy itself is running | |
86 # from within a virtual environment. | |
87 unset _OLD_VIRTUAL_PATH; unset _OLD_VIRTUAL_PYTHONHOME | |
3 | 88 pyvenv {{\$MY_PACKAGE_NAME}} |
89 . {{\$MY_PACKAGE_NAME}}/bin/activate | |
90 pip3 install {{\$PYTHON-PACKAGE}} | |
0 | 91 </action> |
92 <action type="set_environment"> | |
3 | 93 <environment_variable name="PYTHONPATH" action="prepend_to">\$INSTALL_DIR/lib/python3.4/site-packages</environment_variable> |
0 | 94 </action> |
95 | |
96 </readme> | |
97 | |
98 </package> | |
99 </tool_dependency> |